Программирование на языке Паскаль
Последовательное изложение основ программирования на примере алгоритмического языка Паскаль. Обзор структурной и объектно-ориентированной технологии программирования, методов проектирования, отладки и тестирования программ, использования структур данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | учебное пособие |
Язык | русский |
Дата добавления | 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Изучение истории создания языка Турбо-Паскаль, важнейшего инструмента для обучения методам структурного программирования. Анализ меню управления всеми ресурсами интегрированной инструментальной оболочки, зарезервированных слов, символьных переменных.
презентация [989,7 K], добавлен 06.12.2011Программирование на языке Паскаль: алфавит, решение задач, простейшие программы, разветвляющие программы, циклические программы, ввод-вывод, массивы, подпрограммы, строковые данные, записи, файлы, использование библиотеки CRT, графика в Паскале.
учебное пособие [211,1 K], добавлен 30.03.2008Рассмотрение общих сведений и уровней языков программирования. Ознакомление с историей развития, использования языков программирования. Обзор достоинств и недостатков таких языков как Ассемблер, Паскаль, Си, Си++, Фортран, Кобол, Бейсик, SQL, HTML, Java.
курсовая работа [759,5 K], добавлен 04.11.2014Особенности способов описания языков программирования. Язык программирования как способ записи программ на ЭВМ в понятной для компьютера форме. Характеристика языка Паскаль, анализ стандартных его функций. Анализ примеров записи арифметических выражений.
курсовая работа [292,0 K], добавлен 18.03.2013Сравнительный анализ языков программирования высокого уровня Си и Паскаль. Реализация алгоритма обработки данных. Тестирование и отладка программы или пакета программ. Структура программы на языке Турбо Паскаль. Указатели и векторные типы данных.
курсовая работа [233,5 K], добавлен 14.12.2012Программирование нестандартных функций, задач оптимизации, дифференциального уравнения и аппроксимации с помощью языка Паскаль. Алгоритм и программа операций над матрицами. Нахождение значения корней нелинейного уравнения по методу половинного деления.
курсовая работа [1,1 M], добавлен 12.08.2011Общая характеристика языков программирования. Описание языка Паскаль: основные субъекты языка; структура Паскаль-программы; типизация и объявление данных. Операторы присваивания и выражения. Структурные операторы, организация ветвлений и циклов.
дипломная работа [276,6 K], добавлен 26.01.2011Паскаль как язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля, история его разработки и функциональные особенности. Задача с использованием двумерного массива, составление блок-схемы решения.
контрольная работа [819,0 K], добавлен 12.03.2014Использование скриптового языка программирования для разработки web-приложений (сценариев). Изучение основ объектно-ориентированного программирования в языке PHP. Ознакомление со специальными методами для работы с классами. Назначение интерфейсов.
контрольная работа [25,1 K], добавлен 14.03.2015Описание конструкций языка программирования Паскаль, обеспечивающих ветвление. Организация циклических процессов. Создание программы для ввода последовательности вещественных чисел до появления 0, расчет среднего арифметического данной последовательности.
лабораторная работа [189,8 K], добавлен 17.04.2012