Программирование на языке Паскаль
Последовательное изложение основ программирования на примере алгоритмического языка Паскаль. Обзор структурной и объектно-ориентированной технологии программирования, методов проектирования, отладки и тестирования программ, использования структур данных.
| Рубрика | Программирование, компьютеры и кибернетика | 
| Вид | учебное пособие | 
| Язык | русский | 
| Дата добавления | 13.09.2017 | 
| Размер файла | 1,6 M | 
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Закон гласит о том, что любое событие либо состоится, либо его не будет, но какой-то из этих двух вариантов обязательно произойдет.
Закон противоречия
Этот закон выражается тавтологией:
А & ? 0
логическое произведение высказывания и его отрицания всегда ложно.
Закон противоречия третьего можно проверить таблицей истинности:
| 
 А  | 
 А&  | 
||
| 
 0  | 
 1  | 
 0  | 
|
| 
 1  | 
 0  | 
 0  | 
Пример: высказывание А=”Сегодня пятница”,
высказывание =”Сегодня НЕ пятница”,
конъюнкция этих высказываний А& = “ Сегодня пятница И сегодня НЕ пятница ”.
Сложное высказывание А& всегда ложно - не может быть в один и тот же день и пятница, и НЕ пятница, то есть любой другой день недели. Это абсурд, нонсенс, противоречие.
Закон двойного отрицания
Этот закон выражается тавтологией:
? А
двойное отрицание высказывания эквивалентно самому высказыванию.
Закон двойного отрицания можно проверить таблицей истинности:
| 
 А  | 
|||
| 
 0  | 
 1  | 
 0  | 
|
| 
 1  | 
 0  | 
 1  | 
Пример: высказывание А=”Сегодня пятница”,
высказывание =”Сегодня НЕ пятница”,
высказывание = “ Неверно, что сегодня НЕ пятница ”.
Высказывание “ Неверно, что сегодня НЕ пятница ” полностью эквивалентно исходному высказыванию ”Сегодня пятница”.
Закон контрапозиции
Этот закон выражается тавтологией:
(A=>B) ? (=>)
если из одного высказывания следует второе высказывание, то из отрицания второго высказывания следует отрицание первого высказывания.
Закон контрапозиции находит широкое применение в косвенных доказательствах “от противного”.
Пример: высказывание А=”Сегодня пятница”,
высказывание В=”Завтра суббота”,
высказывание A=>B = “ Если сегодня пятница, то завтра суббота”.
высказывание => = “Если завтра НЕ суббота, то сегодня НЕ пятница”.
Последнее высказывание эквивалентно высказыванию “ Если сегодня пятница, то завтра суббота”.
Закон расширенной контрапозиции
Этот закон выражается тавтологией:
(A&B=>C) ? (A&=>)
если из одновременной истинности двух высказываний следует третье высказывание, то из одновременной истинности первого и отрицания третьего высказывания следует отрицание второго высказывания.
Пример: высказывание А=”Сегодня 31 число”,
высказывание В=”Сейчас декабрь”,
высказывание С=”Завтра Новый Год”,
высказывание (A&В)=>С =”Если сегодня 31 число И сейчас декабрь, то завтра Новый Год”,
высказывание (A&=>) = Если сегодня 31 число И завтра НЕ Новый Год, то сейчас НЕ декабрь”.
Закон перестановки посылок
Этот закон выражается тавтологией:
A=>(B=>C) ? B=>(A=>C)
если из первого высказывания следует, что из второго высказывания следует третье, то из второго высказывания следует, что из первого высказывания следует третье.
Пример: высказывание А=” Сейчас декабрь ”,
высказывание В=” Сегодня 31 число”,
высказывание С=” Завтра Новый Год”,
высказывание A=>(B=>C) =”Если сейчас декабрь, то если сегодня 31 число, то завтра Новый Год”,
высказывание B=>(A=>C) = Если сегодня 31 число, то если сейчас декабрь, то завтра Новый Год”.
Закон силлогизма
Этот закон выражается тавтологией:
(A=>B )& (B=>C) ? (A=>C)
если из первого высказывания следует второе, а из второго третье, то из первого высказывания следует третье.
Пример: высказывание А=”Он сдает все работы в срок ”,
высказывание В=”Он получает зачет”,
высказывание С=” Он едет на каникулы”,
высказывание (A=>B )& (B=>C ) =”Если он сдает все работы в срок, то он получает зачет, И если он получает зачет, то он едет на каникулы”,
эквивалентно высказыванию (A=>C) =” Если он сдает все работы в срок, то он едет на каникулы”.
Закон де Моргана
Этот закон широко используется при минимизации переключательных функций и выражается формулами:
?&
?+
отрицание любого сложного высказывания эквивалентно сложному высказыванию, в котором исходные знаки дизъюнкции заменены знаками конъюнкции, знаки конъюнкции - знаками дизъюнкции, и все составляющие его аргументы - их отрицаниями.
Пример 1: высказывание А - любое, высказывание В=.
Тогда = = = 0, (под знаком отрицания - закон исключенного третьего)
&=&= &A = 0.
Пример 2: высказывание А=”Число заканчивается на 0”,
высказывание В=”Число заканчивается на 5”.
Тогда высказывание A + B =”Число заканчивается на 0 ИЛИ число заканчивается на 5”.
Это признак делимости числа на 5.
Тогда признак неделимости числа на 5 формулируется так =&=”Число НЕ заканчивается на 0 И число НЕ заканчивается на 5”.
Кроме законов, выраженных тавтологиями, в алгебре логики рассматриваются законы (теоремы), позволяющие упростить или преобразовать сложные логические выражения.
К таким законам относятся следующие:
- коммутативный (переместительный) закон:
A + B ? B + A
A & B ? B & A
- сочетательный закон:
A + (B + C) ? (A + B) + C
A & (B & C) ? (A & B) & C
- распределительный закон:
A & (B + C) ? A & B + A & C
A + B & C ? (A + B) & (A + C)
- закон поглощения:
A + A&B = A&(1 + B) = A
A&(A + B) = A&A + A&B = A + A&B = A&(1 + B) = A
- закон склеивания:
A&B + A& = A&(B + ) = A&1 = A
- две формы закона идемпотентности:
A + A = A
A & A = A
Кроме этих законов, в алгебре логики рассматриваются следующие соотношения:
A + 0 = A
A + 1 = 1
A & 0 = 0
A & 1 = A
Любую формулу алгебры логики можно представить таблицей истинности, перебрав все значения ее аргументов:
F = A& + A&B
| 
 A  | 
 B  | 
 F  | 
|
| 
 0  | 
 0  | 
 0  | 
|
| 
 0  | 
 1  | 
 0  | 
|
| 
 1  | 
 0  | 
 1  | 
|
| 
 1  | 
 1  | 
 1  | 
Любую таблицу истинности можно представить формулой алгебры логики:
| 
 A  | 
 B  | 
 F  | 
|
| 
 0  | 
 0  | 
 1  | 
|
| 
 0  | 
 1  | 
 0  | 
|
| 
 1  | 
 0  | 
 1  | 
|
| 
 1  | 
 1  | 
 0  | 
Оставляем в таблице только те строки, в которых значение функции истинно:
| 
 A  | 
 B  | 
 F  | 
|
| 
 0  | 
 0  | 
 1  | 
|
| 
 1  | 
 0  | 
 1  | 
Составляем сумму произведений аргументов, причем если значение аргумента ложно, то записываем его с отрицанием:
F = &+A&
Далее можно упростить эту формулу:
F = &+A&= &( + A) = & 1 =
Минимизация формул алгебры логики
Формулы алгебры логики, полученные с помощью таблиц истинности или другими способами, как правило, подлежат минимизации - упрощению.
Например, формулу
можно упростить, используя закон де Моргана для освобождения от отрицаний:
Минимизацию можно осуществить двумя группами методов.
Алгебраическими методами минимизации
Он предполагает использование законов алгебры логики, выраженных формулами:
закон исключенного третьего
закон противоречия
закон двойного отрицания
две формы закона де Моргана
A + A&B = A закон поглощения
A&B + A& = A закон склеивания
A+A + A
A&A = A две формы закона идемпотентности
а также формул преобразования логических операций:
импликации
эквивалентности
Пример:
Как видно, минимизация алгебраическими методами не всегда проста.
Табличными методами минимизации
Они предполагают использование в качестве исходной формулы ту, которая получена с помощью таблиц истинности - совершенную дизъюнктивную нормальную форму логической функции.
Возьмем любую логическую функцию двух аргументов:
| 
 X  | 
 Y  | 
 F  | 
|
| 
 0  | 
 0  | 
 1  | 
|
| 
 0  | 
 1  | 
 0  | 
|
| 
 1  | 
 0  | 
 1  | 
|
| 
 1  | 
 1  | 
 0  | 
Составляем сумму произведений аргументов тех строк, значение функции в которых истинно:
F =
Составляем таблицу, называемую диаграммой Вейча для функции двух аргументов:
Записываем единицы в тех ячейках таблицы, которые соответствуют произведениям:
Единицы, стоящие в ячейках, соприкасающихся сторонами, можно объединить (склеить). При этом вместо двух слагаемых остается одно, имеющее один аргумент, общий для объединяемых ячеек. В данном случае это . Результат минимизации:
F = =
При расстановке слагаемых так:
получаем следующую минимальную форму:
F = X
При такой расстановке слагаемых:
Имеются два объединения, которые соответствуют следующей минимальной форме:
Если таблица полностью заполнена единицами:
То после объединения четырех соприкасающихся ячеек получаем следующую минимальную форму: F = 1
Таким образом, объединять можно по две или по четыре ячейки, оставляя общий для них аргумент.
Диаграмма Вейча для функции трех аргументов имеет вид:
Здесь тоже можно объединять по две или четыре ячейки, соприкасающиеся сторонами. При этом остаются аргументы, общие для объединенных ячеек:
В этом случае имеются три объединения, образующие следующую минимальную форму:
F = X&Y + Y&Z + &Z
При объединении четырех соприкасающихся ячеек остается один общий для них аргумент:
В этом случае: F = Y
Можно объединять ячейки, находящиеся на противоположных концах диаграммы:
При этом остаются общие для них аргументы:
F = X&
В этом случае:
минимальная форма имеет вид:F =
Приложение 2
Системы счисления
Система счисления - совокупность приемов и правил однозначного обозначения чисел с помощью особых символов: 6, 1102, XI.
Символы, при помощи которых записываются числа, называются цифрами, а их совокупность - алфавитом системы счисления.
Количество цифр, составляющих алфавит, называется его размерностью.
Исторически первой системой счисления является односимвольная - использовалась только одна цифра:
*
**
***
Известны два типа систем счисления:
непозиционная
позиционная
В непозиционной системе счисления значение каждой цифры в изображении числа не зависит от ее положения (позиции) в нем. Примером такой системы счисления является римская система счисления, использующая следующие цифры:
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
Римская система счисления является аддитивной - число в ней получается как результат сложения и вычитания базовых цифр:
VI 6
IV 4
В этих числах используются две цифры - I и V. Независимо от того, где они стоят в числах, они обозначают цифры 1 и 5, только в первом случае они складываются, а во втором - вычитаются.
Недостатки непозиционных систем счисления:
большое количество цифр для изображения числа: MCMXCIII - 1993,
сложность выполнения арифметических операций.
В позиционных системах счисления значение каждой цифры в изображении числа зависит от ее позиции в нем:
354 = 3Ч100 + 5Ч10 + 4Ч1
В этой записи 3, 5 и 4 являются цифрами десятичной системы счисления, а 100, 10 и 1 - их веса в числе.
Количество цифр, используемых в конкретной системе счисления для изображения числа, называется основанием системы счисления.
В десятичной системе счисления, известной нам с детства, используется десять цифр, поэтому ее основание S=10:
354 = 3Ч102 + 5Ч101 + 4Ч100
Вес цифры в числе можно представить как основание системы счисления в степени, равной номеру разряда числа:
100 вес разряда единиц - номер разряда единиц всегда равен нулю!
101 вес разряда десятков,
102 вес разряда сотен, и так далее.
Нумерация разрядов в целых числах идет справа налево, начиная с нуля. Самый правый разряд называется младшим разрядом числа, а самый левый - старшим.
Представим веса разрядов в виде последовательности чисел, начиная с разряда единиц:
1, 10, 100, 1000, 10000,…
Такая последовательность чисел называется базисом системы счисления. В традиционных системах счисления базис образуют члены геометрической прогрессии. В нетрадиционных системах счисления базис может быть другим:
фибоначчиева:
алфавит - цифры 0, 1
базис - последовательность Фибоначчи: 1, 2, 3, 5, 8, 13, 21,…
факториальная:
базис - последовательность факториалов натуральных чисел: 1!, 2!, 3!,…
Двоичная система счисления
В ней для записи чисел используются только две цифры: 0 и 1.
Таким образом,
алфавит двоичной системы счисления - 0, 1
основание двоичной системы счисления S = 2
базис двоичной системы счисления образуют веса разрядов двоичных чисел - 20, 21, 22, 23, 24, … или
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024,…
Представим любое двоичное число через его цифры и веса разрядов:
10112 = 1Ч20 + 1Ч21 + 0Ч22 + 1Ч23 = 1 + 2 + 0 + 8 = 1110
Этим же способом любое двоичное число переводится в десятичную систему счисления.
Обратный перевод - из десятичной в двоичную систему счисления - осуществляется последовательным делением десятичного числа на основание двоичной системы счисления 2 и считыванием остатков от деления справа налево:
11/2 = 5, остаток 1
5/2 =2, остаток 1
2/2 =1, остаток 0
1/2 = 0, остаток 1, получаем 10112.
Восьмеричная система счисления
Алфавит: 0, 1, 2, 3, 4, 5, 6, 7
Основание S = 8
Базис - степени числа 8: 80, 81, 82, 83, … или 1, 8, 64, 512, …
Представим любое восьмеричное число через его цифры и веса разрядов:
35728 = 2Ч80 + 7Ч81 + 5Ч82 + 3Ч83 = 2Ч1 + 7Ч8 + 5Ч64 + 3Ч512 = 191410
Этим же способом любое восьмеричное число переводится в десятичную систему счисления.
Обратный перевод - из десятичной в восьмеричную систему счисления - осуществляется последовательным деление десятичного числа на основание восьмеричной системы счисления 8 и считыванием остатков от деления справа налево:
1914/8 = 239 остаток 2
239/8 = 29 остаток 7
29/8 = 3 остаток 5
3/8 = 0 остаток 3, получаем 35728.
Особый случай перевода - двоично-восьмеричный
Для перевода двоичного числа в восьмеричное необходимо:
1. разбить двоичное число справа налево по три цифры (недостающие слева дополнить нулями):
100110001012 = 010 011 000 1012
2. каждую тройку цифр представить числом в восьмеричной системе счисления:
010 011 000 1012 = 23058
2 3 0 5
Для перевода восьмеричного числа в двоичное необходимо каждую цифру восьмеричного числа представить ее трехразрядным двоичным эквивалентом:
23058 = 010 011 000 1012
2 3 0 5
Шестнадцатеричная система счисления
Алфавит: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F (буквы латинского алфавита заменяю недостающие цифры системы счисления и соответствуют числам 10, 11, 12, 13, 14, 15).
Основание S = 16
Базис - степени числа 16: 160, 161, 162, 163, …или 1, 16, 256, 4096, …
Представим любое 16-ричное число через его цифры и веса разрядов:
A5D16 = DЧ160 + 5Ч161 + AЧ162 = 13Ч1 + 5Ч16 + 10Ч256 = 265310
Этим же способом любое 16-ричное число переводится в десятичную систему счисления.
Обратный перевод - из десятичной в 16-ричную систему счисления - осуществляется последовательным деление десятичного числа на основание 16-ричной системы счисления 16 и считыванием остатков от деления справа налево:
2653/16 = 165 остаток 13, то есть D
165/16 = 10 остаток 5
10/16 = 0 остаток 10, то есть A, получаем A5D16.
Особый случай перевода - двоично-шестнадцатеричный
Для перевода двоичного числа в 16-ричное необходимо:
1. разбить двоичное число справа налево по четыре цифры (недостающие слева дополнить нулями):
100110001012 = 0100 1100 01012
2. каждую четверку цифр представить числом в 16-ричной системе счисления:
0100 1100 01012 = 4C516
4 12=C 5
Для перевода 16-ричного числа в двоичное необходимо каждую цифру 16-ричного числа представить ее четырехразрядным двоичным эквивалентом:
A5D16 = 1010 0101 11012
A 5 D
Для быстрого перевода чисел из одной системы счисления в другую полезно запомнить следующую таблицу соответствия:
| 
 10-я  | 
 0  | 
 1  | 
 2  | 
 3  | 
 4  | 
 5  | 
 6  | 
 7  | 
 8  | 
 9  | 
 10  | 
 11  | 
 12  | 
 13  | 
 14  | 
 15  | 
|
| 
 2-я  | 
 0  | 
 1  | 
 10  | 
 11  | 
 100  | 
 101  | 
 110  | 
 111  | 
 1000  | 
 1001  | 
 1010  | 
 1011  | 
 1100  | 
 1101  | 
 1110  | 
 1111  | 
|
| 
 16-я  | 
 0  | 
 1  | 
 2  | 
 3  | 
 4  | 
 5  | 
 6  | 
 7  | 
 8  | 
 9  | 
 A  | 
 B  | 
 C  | 
 D  | 
 E  | 
 F  | 
Арифметические операции в двоичной системе счисления
Таблица сложения двоичной системы счисления состоит из четырех строк:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10 (ноль в младшем разряде и единица переноса в старшем)
Сложим два двоичных числа:
1111 11 11 - переносы
10110110012
+
1110110112
-------------
100101101002
Вычтем одно двоичное число из другого, притом в старшем разряде при необходимости занимаем две единицы младшего:
10111110012
-
1110110112
-------------
1000111102
Результат вычитания можно проверить обратным сложением:
1000111102
+
1110110112
-------------
10111110012
Арифметические операции в восьмеричной системе счисления
Они выполняются по знакомым нам правилам вычислений в десятичной системе счисления, за исключением того, что старшая цифра не 9, а 7:
1 - перенос
5638
+
528
-----
6358
Рассмотрим образование следующей суммы:
68
+
58
---
138
Добавляем к первому слагаемому недостающее число до 8 - основания системы счисления. Это число 2, которое мы берем из второго слагаемого. Во втором слагаемом остается 3, которое и записывается в этот разряд, а единица переноса уходит в старший разряд суммы.
При вычитании чисел из старшего разряда при необходимости занимаем восемь единиц младшего:
5238
-
528
-----
4518
Арифметические операции в 16-ричной системе счисления
Они выполняются по знакомым нам правилам вычислений в десятичной системе счисления, за исключением того, что старшая цифра не 9, а F (15):
1 - перенос
9DA16
+
8216
-----
A5C8
Рассмотрим образование следующей суммы:
D16
+
816
---
1516
Добавляем к первому слагаемому (D=13) недостающее число до 16 - основания системы счисления. Это число 3, которое мы берем из второго слагаемого. Во втором слагаемом остается 5, которое и записывается в этот разряд, а единица переноса уходит в старший разряд суммы.
При вычитании чисел из старшего разряда при необходимости занимаем шестнадцать единиц младшего:
A5C8
-
8216
-----
9DA16
Приложение 3
1. Ошибки при компиляции
| 
 Номер ошибки  | 
 Сообщение  | 
 Значение  | 
|
| 
 1  | 
 Out of memory  | 
 Выход за границы памяти  | 
|
| 
 2  | 
 Identifier expected  | 
 Не указан идентификатор. На этом месте должен находиться идентификатор  | 
|
| 
 3  | 
 Unknown identifier  | 
 Неизвестный идентификатор. Идентификатор не был описан  | 
|
| 
 4  | 
 Duplicate identifier  | 
 Повторный идентификатор. Идентификатор уже описан  | 
|
| 
 5  | 
 Syntax error  | 
 Синтаксическая ошибка. В исходном тексте найден неверный символ  | 
|
| 
 6  | 
 Error in real constant  | 
 Ошибка в вещественной константе  | 
|
| 
 7  | 
 Error in integer constant  | 
 Ошибка в константе целого типа  | 
|
| 
 8  | 
 String constant exceeds line  | 
 Строковая константа превышает допустимые размеры строки  | 
|
| 
 9  | 
 Too many nested files  | 
 Слишком много вложенных файлов  | 
|
| 
 10  | 
 Unexpected end of file  | 
 Некорректный конец файла  | 
|
| 
 11  | 
 Line too long  | 
 Слишком длинная строка  | 
|
| 
 12  | 
 Type identifier expected  | 
 Требуется идентификатор типа  | 
|
| 
 13  | 
 Too many open files  | 
 Слишком много открытых файлов  | 
|
| 
 14  | 
 Invalid file name  | 
 Неверное имя файла. Имя файла неверно или указывает на несуществующий путь  | 
|
| 
 15  | 
 File not found  | 
 Файл не найден  | 
|
| 
 16  | 
 Disk full  | 
 Диск заполнен  | 
|
| 
 17  | 
 Invalid compiler directive  | 
 Неверная директива компилятора  | 
|
| 
 18  | 
 Too many files  | 
 Слишком много файлов. В компиляции программы или программного модуля задействовано слишком много файлов  | 
|
| 
 20  | 
 Variable identifier expected  | 
 Требуется идентификатор переменной  | 
|
| 
 21  | 
 Error in type  | 
 Ошибка в определении типа. Определение типа не может начинаться с этого символа  | 
|
| 
 22  | 
 Structure too large  | 
 Слишком большая структура. Максимальный размер структурного типа - 64К  | 
|
| 
 23  | 
 Set base type out of range  | 
 Базовый тип множества вышел за границы. Базовый тип множества должен представлять собой отрезок порядкового типа с границами 0…255 или перечисляемый тип с не более чем 256 значениями  | 
|
| 
 24  | 
 File components may not be files or objects  | 
 Компоненты файла не могут быть файлами или объектами  | 
|
| 
 25  | 
 Invalid string length  | 
 Неверная длина строки. Максимальная описываемая длина строки - 255 символов  | 
|
| 
 26  | 
 Type mismatch  | 
 Несоответствие типов  | 
|
| 
 27  | 
 Invalid subrange base type  | 
 Неверный базовый тип диапазона. Диапазон можно описывать для данных порядкового типа  | 
|
| 
 28  | 
 Lower bound greater than upper bound  | 
 Нижняя граница больше верхней  | 
|
| 
 29  | 
 Ordinal type expected  | 
 Требуется порядковый тип. Действительный, строковый, структурный и указательный типы в данном случае недопустимы  | 
|
| 
 30  | 
 Integer constant expected  | 
 Требуется целая константа  | 
|
| 
 31  | 
 Constant expected  | 
 Требуется константа  | 
|
| 
 32  | 
 Integer or real constant expected  | 
 Требуется целая или вещественная константа  | 
|
| 
 33  | 
 Pointer type identifier expected  | 
 Требуется идентификатор типа указателя  | 
|
| 
 34  | 
 Invalid function result type  | 
 Неверный тип результата функции. Правильными типами результатами функции являются все простые, строковые и ссылочные типы  | 
|
| 
 36  | 
 Begin expected  | 
 Требуется слово Begin  | 
|
| 
 37  | 
 End expected  | 
 Требуется слово End  | 
|
| 
 38  | 
 Integer expression expected  | 
 Требуется выражение целого типа  | 
|
| 
 39  | 
 Ordinal expression expected  | 
 Требуется выражение порядкового типа  | 
|
| 
 40  | 
 Boolean expression expected  | 
 Требуется выражение логического типа  | 
|
| 
 41  | 
 Operand types do not match operator  | 
 Типы операндов не соответствуют типу оператора  | 
|
| 
 42  | 
 Error in expression  | 
 Ошибка в выражении  | 
|
| 
 43  | 
 Illegal assignment  | 
 Неверное присваивание  | 
|
| 
 45  | 
 Object file too large  | 
 Объектный файл слишком большой - больше 64 К  | 
|
| 
 48  | 
 Code segment too large  | 
 Сегмент кода слишком большой - больше 64 К  | 
|
| 
 49  | 
 Data segment too large  | 
 Сегмент данных слишком большой - больше 64 К  | 
|
| 
 50  | 
 Do expected  | 
 Требуется слово Do  | 
|
| 
 54  | 
 OF expected  | 
 Требуется слово Of  | 
|
| 
 55  | 
 INTERFACE expected  | 
 Требуется интерфейсный раздел  | 
|
| 
 57  | 
 THEN expected  | 
 Требуется слово Then  | 
|
| 
 58  | 
 TO or DOWNTO expected  | 
 Требуется слово To или DownTo  | 
|
| 
 62  | 
 Division by zero  | 
 Деление на ноль  | 
|
| 
 63  | 
 Invalid file type  | 
 Неверный файловый тип  | 
|
| 
 64  | 
 Cannot Read or Write variables of this type  | 
 Нельзя считать или записать переменные данного типа  | 
|
| 
 65  | 
 Pointer variable expected  | 
 Требуется использовать переменную-указатель  | 
|
| 
 66  | 
 String variable expected  | 
 Требуется строковая переменная  | 
|
| 
 67  | 
 String expression expected  | 
 Требуется выражение строкового типа  | 
|
| 
 68  | 
 Circular unit reference  | 
 Циклическая ссылка на модуль. В интерфейсном разделе два модуля не могут ссылаться друг на друга  | 
|
| 
 69  | 
 Unit name mismatch  | 
 Несоответствие имен программных модулей. Имя программного модуля, найденное в файле .tpu , не соответствует имени, указанному в операторе Uses  | 
|
| 
 73  | 
 Implementation expected  | 
 Требуется раздел реализации - отсутствует ключевое слово Implementation  | 
|
| 
 74  | 
 Constant and case types do not match  | 
 Типы констант (меток) и тип выражения (переключателя) оператора Case не соответствуют друг другу  | 
|
| 
 75  | 
 Record variable expected  | 
 Требуется переменная типа запись  | 
|
| 
 76  | 
 Constant out of range  | 
 Константа выходит за границы допустимых значений  | 
|
| 
 77  | 
 File variable expected  | 
 Требуется файловая переменная  | 
|
| 
 78  | 
 Pointer expression expected  | 
 Требуется выражение типа указатель  | 
|
| 
 79  | 
 Integer or real expression expected  | 
 Требуется выражение целого или вещественного типа  | 
|
| 
 81  | 
 Label already defined  | 
 Метка уже определена  | 
|
| 
 82  | 
 Undefined label in processing statement part  | 
 Неопределенная метка в обрабатываемом разделе операторов  | 
|
| 
 84  | 
 Unit expected  | 
 Требуется слово Unit  | 
|
| 
 85  | 
 `;' expected  | 
 Требуется `;'  | 
|
| 
 86  | 
 `:' expected  | 
 Требуется `:'  | 
|
| 
 87  | 
 `,' expected  | 
 Требуется `,'  | 
|
| 
 88  | 
 `(' expected  | 
 Требуется `('  | 
|
| 
 89  | 
 `)' expected  | 
 Требуется `)'  | 
|
| 
 90  | 
 `=' expected  | 
 Требуется `='  | 
|
| 
 91  | 
 `:=' expected  | 
 Требуется `:='  | 
|
| 
 92  | 
 `['or `(` expected  | 
 Требуется `[' или `(`  | 
|
| 
 93  | 
 `]'or `)` expected  | 
 Требуется `]' или `)`  | 
|
| 
 94  | 
 `.' expected  | 
 Требуется `.'  | 
|
| 
 95  | 
 `..' expected  | 
 Требуется `..'  | 
|
| 
 96  | 
 Too many variables  | 
 Слишком много переменных  | 
|
| 
 97  | 
 Invalid FOR control variable  | 
 Недопустимый параметр цикла For - должен быть только порядкового типа  | 
|
| 
 98  | 
 Integer variable expected  | 
 Требуется переменная целого типа  | 
|
| 
 99  | 
 Files are not allowed here  | 
 Здесь не допускаются файлы  | 
|
| 
 100  | 
 String length mismatch  | 
 Несоответствие длины. Длина строковой константы не соответствует количеству элементов символьного массива  | 
|
| 
 102  | 
 String constant expected  | 
 Требуется константа строкового типа  | 
|
| 
 103  | 
 Integer or real variable expected  | 
 Требуется переменная целого или вещественного типа  | 
|
| 
 104  | 
 Ordinal variable expected  | 
 Требуется переменная порядкового типа  | 
|
| 
 106  | 
 Character expression expected  | 
 Предшествующее выражение должно иметь символьный тип  | 
|
| 
 108  | 
 Overflow in arithmetic operation  | 
 Переполнение при выполнении арифметической операции - результат операции вышел за диапазон LongInt  | 
|
| 
 109  | 
 No enclosing FOR, WHILE or REPEAT statement  | 
 Процедуры Break и Continue не могут использоваться вне операторов циклов  | 
|
| 
 112  | 
 CASE constant out of range  | 
 Метки оператора Case выходят за диапазон -32768…32767  | 
|
| 
 123  | 
 Too many symbols  | 
 Слишком много идентификаторов - программа описывает более 64 К идентификаторов  | 
|
| 
 124  | 
 Statement part too large  | 
 Слишком большой раздел операторов - более 24 К  | 
|
| 
 132  | 
 Cannot evaluate this expression  | 
 Невозможно вычислить данное выражение  | 
|
| 
 137  | 
 Structured variable are not allowed here  | 
 Не допускается использование структурной переменной  | 
|
| 
 140  | 
 Invalid floating-point operation  | 
 Недопустимая операция с плавающей точкой - получено переполнение или деление на ноль  | 
|
| 
 145  | 
 Too many nested scopes  | 
 Слишком большая вложенность  | 
|
| 
 146  | 
 File access denied  | 
 Файл недоступен. Файл не может быть открыт или создан  | 
|
| 
 147  | 
 Object type expected  | 
 Требуется объектный тип  | 
2. Ошибки времени выполнения
а) Ошибки системы MS-DOS
| 
 Номер ошибки  | 
 Сообщение  | 
 Значение  | 
|
| 
 2  | 
 File not found  | 
 Файл не найден  | 
|
| 
 3  | 
 Path not found  | 
 Путь к файлу не найден  | 
|
| 
 4  | 
 Too many open files  | 
 Слишком много открытых файлов  | 
|
| 
 5  | 
 File access denied  | 
 Нет доступа УК файлу  | 
|
| 
 15  | 
 Invalid driver number  | 
 Некорректный номер дискового устройства  | 
|
| 
 18  | 
 No more files  | 
 Нет файлов  | 
б)Ошибки ввода-вывода
При включенной директиве {$I-} номер ошибки ввода-вывода возвращается функцией IOResult
| 
 Номер ошибки  | 
 Сообщение  | 
 Значение  | 
|
| 
 100  | 
 Disk read error  | 
 Ошибка чтения диска  | 
|
| 
 101  | 
 Disk write error  | 
 Ошибка записи на диск  | 
|
| 
 102  | 
 File not assigned  | 
 Файл не назначен. Файловой переменной не поставлено в соответствие имя файла  | 
|
| 
 103  | 
 File not open  | 
 Файл не открыт  | 
|
| 
 104  | 
 File not open for input  | 
 Файл не открыт для ввода  | 
|
| 
 105  | 
 File not open for output  | 
 Файл не открыт для вывода  | 
|
| 
 106  | 
 Invalid numeric format  | 
 Неверный числовой формат - вместо чисел вводятся данные других типов  | 
в)Критические ошибки
| 
 Номер ошибки  | 
 Сообщение  | 
 Значение  | 
|
| 
 150  | 
 Disk is write protected  | 
 Диск защищен от записи  | 
|
| 
 151  | 
 Unknown unit  | 
 Неизвестный модуль  | 
|
| 
 152  | 
 Disk not ready  | 
 Дисковое устройство не готово к работе  | 
|
| 
 153  | 
 Unknown command  | 
 Неопознанная команда  | 
|
| 
 160  | 
 Device write fault  | 
 Ошибка при записи на устройство  | 
|
| 
 161  | 
 Device read fault  | 
 Ошибка при чтении с устройства  | 
|
| 
 162  | 
 Hardware failure  | 
 Сбой в оборудовании  | 
г)Фатальные ошибки
| 
 Номер ошибки  | 
 Сообщение  | 
 Значение  | 
|
| 
 200  | 
 Division by zero  | 
 Деление на ноль  | 
|
| 
 201  | 
 Range check error  | 
 Выход за пределы допустимых значений  | 
|
| 
 202  | 
 Stack overflow error  | 
 Переполнение стека  | 
|
| 
 204  | 
 Invalid pointer operation  | 
 Некорректная операция ссылки  | 
|
| 
 205  | 
 Floating point overflow  | 
 Переполнение при выполнении операции с плавающей запятой  | 
|
| 
 206  | 
 Floating point underflow  | 
 Исчезновение порядка при выполнении операции с плавающей запятой  | 
|
| 
 207  | 
 Invalid floating point operation  | 
 Недопустимая операция с плавающей запятой  | 
|
| 
 210  | 
 Object not initialized  | 
 Объект не инициализирован  | 
|
| 
 215  | 
 Arithmetic overflow  | 
 Арифметическое переполнение  | 
Размещено на Allbest.ru
Подобные документы
Логические конструкции в системе программирования Паскаль. Команды языка программирования, использование функций, процедур. Постановка и решение задач механики в среде системы Паскаль. Задачи статики, кинематики, динамики решаемые с помощью языка Паскаль.
курсовая работа [290,9 K], добавлен 05.12.2008Изложение основ информатики, вычислительной техники и технологии программирования на языке Паскаль. Эволюция средств вычислений. Классификация программного обеспечения ЭВМ. Кодирование информации в ЭВМ, системы счисления, принципы программирования.
учебное пособие [1,4 M], добавлен 25.12.2009Международный стандарт на язык программирования Паскаль. Приемы объектно-ориентированного программирования в Турбо Паскале. Символы языка, его алфавит. Этапы разработки программы. Понятие алгоритмов и алгоритмизации. Структура программ на Паскале.
курсовая работа [29,8 K], добавлен 28.02.2010Особенности программирования на языке Паскаль в среде Турбо Паскаль. Линейные алгоритмы, процедуры и функции. Структура данных: массивы, строки, записи. Модульное программирование, прямая и косвенная рекурсия. Бинарный поиск, организация списков.
отчет по практике [913,8 K], добавлен 21.07.2012История и основы структурного программирования в среде Turbo Pascal. Работа с различными типами данных. Операторы языка. Работа с символьными и строковыми переменами, одномерным, двумерным массивами. Классификация компьютерных игр. Игры на языке Паскаль.
курсовая работа [28,8 K], добавлен 06.05.2014Язык программирования Турбо Паскаль. Запись алгоритма на языке программирования и отладка программы. Правила записи арифметических выражений. Стандартное расширение имени файла, созданного системным редактором. Составной оператор и вложенные условия.
курсовая работа [75,0 K], добавлен 21.03.2013Изучение символьных и строковых типов данных, алгоритма задачи на языке программирования Паскаль. Описания получения и установки отдельного символа строки, изменения регистра символов. Анализ создания и просмотра файла, поиска и сортировки информации.
курсовая работа [440,7 K], добавлен 13.06.2011Основные сведения о системе программирования Турбо Паскаль. Структура программы на Паскале и ее компоненты. Особенности и элементы языка Турбо Паскаль. Порядок выполнения операций в арифметическом выражении, стандартные функции и оператор присваивания.
лекция [55,7 K], добавлен 21.05.2009Освоение технологии структурного программирования и применения стандартных методов работы с одномерными массивами при разработке и создании программы на языке Турбо Паскаль. Разработка программы методом пошаговой детализации с помощью псевдокода.
реферат [276,9 K], добавлен 27.02.2008Сущность понятия "тип данных". Объектно-ориентированный стиль программирования. Простые типы данных в языке Паскаль: порядковые, вещественные, дата-время. Булевский (логический) тип. Синтаксис определения ограниченного типа. Регулярные типы (массивы).
реферат [24,1 K], добавлен 01.12.2009
