- •Алфавит языка, имена, числа, строки.
- •Структура программы.
- •3. Тип Integer.
- •4. Тип Real.
- •5. Тип Boolean и Char.
- •6. Описательная часть программного блока.
- •7. Процедуры ввода/вывода
- •8. Оператор присваивания.
- •9. Условный оператор
- •X, y, max: integer;
- •10. Оператор цикла с перечислением
- •11. Циклы с предусловием
- •12. Циклы с постусловием
- •13. Оператор варианта.
- •14. Классификация типов данных.
- •15. Перечислимые типы данных
- •16. Ограниченые типы данных.
- •17. Регулярные типы данных.
- •18. Многомерные массивы.
- •19. Комбинированные типы данных
- •20. Оператор with.
- •21 Записи с вариантами
- •22 Множественные типы данных.
- •23 Операции над данными множесвенного типа
- •24 Файловые типы данных
- •25 Текстовые файлы
- •26 Ссылочные типы данных
- •27 Оператор new
- •28 29 Процедуры и функции
- •30. Параметры процедур и функций.
- •31. Локальные и глобальные объекты в процедуах и функциях
- •32. Рекурсии в процедурах и функциях.
- •33. Структурное представление основных конструкций языка.
- •38. Данные с фиксированной точкой
- •1111111101000111(2)- Инвертируем биты - 0000000010111000(2)
- •39. Внутреннее представление чисел с плавающей точкой.
- •40. Внутреннее представление символьных и строковых данных.
- •41. Реализация алгоритма сортировки с применением метода "часового".
- •42. Сортировка методом "пузырька".
- •43. Сортировка выбором min элемента.
X, y, max: integer;
BEGIN
...
IF X>MAX THEN
Y:=MAX
ELSE
Y:=X;
...
Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение <условие>. Если результат есть TRUE (истина, т.е. условие выполняется), то выполняется <оператор_1>, а <оператор_2> пропускается; если результат есть FALSE (ложь, т.е. условие не выполняется), наоборот, <оператор_1> пропускается, а выполняется <оператор_2>.
10. Оператор цикла с перечислением
ПЕРЕЧИСЛЯЕМЫЙ ТИП
Перечисляемый тип задается перечислением тех значений, которые он может получать. Каждое значение должно являться идентификатором (смотри главу Алфавит языка) и располагаться в круглых скобках через запятую. Количество элементов в перечислении не более 65536. Вводить и выводить переменные перечисляемого типа запрещено. Перечислимый тип является порядковым (смотри главу Типы данных), поэтому к переменным такого типа можно применять функции Ord, Pred, Succ. Функция Ord возвращает порядковый номер значения начиная с нуля.
ПРИМЕР: Объявление перечисляемых типов.
Type Colors = (Red,Green,Blue);
Numbers = (Zero,One,Two,Three,Four,Five);
var c:Colors; n:Numbers;
begin
c:=Red; write(Ord(c)); {0}
n:=Four; write(Ord(n)); {4}
c:=Succ(c); {c=Green}
for n:=One to Five do write(Ord(n)); {12345}
end.
Следует отметить, что стандартные типы byte, word, char и boolean также можно считать вариантами перечислимого типа.
11. Циклы с предусловием
Цикл с предусловием: сначала проверяется условие, затем, в зависимости от того, истинно оно или ложно, либо выполняется тело цикла, либо следует переход к оператору, следующему за телом цикла. После завершения тела цикла управление вновь передается на проверку условия. Естественно, предполагается, что в теле цикла было обеспечено некоторое изменение входящих в условие переменных – в противном случае произойдет зацикливание и программа "зависнет".
x:=1;
while x<=20 do begin
{операторы расчета}
x:=x+1;
end;
цикл с предусловием может не выполняться ни разу, если условие сразу же окажется ложным.
12. Циклы с постусловием
Цикл с постусловием: сначала выполняется тело цикла, затем управление передается на проверку условия. В зависимости от истинности или ложности условия, тело цикла выполняется повторно или же происходит переход к оператору, следующему за телом цикла. Всё, сказанное о возможном зацикливании для цикла с предусловием, справедливо и для цикла с постусловием.
x:=1;
repeat
{операторы расчета}
x:=x+1;
until x>20;
цикл с постусловием гарантированно выполняется хотя бы раз
13. Оператор варианта.
Оператор варианта (casе) состоит из выражения (переключателя) и списка операторов, каждому из которых предшествует одна или более констант (они называются константами выбора) или ключевое слово else. Переключатель (селектор) должен иметь порядковый тип (размером в байт или слово). Таким образом, строковый тип и длинный целый тип являются недопустимыми типами переключателя. Все константы выбора должны быть уникальными и иметь порядковый тип, совместимый с типом переключателя.
Структура оператора выбора такова:
CASE <ключ_выбора> OF <список_выбора> ELSE <оператор> END
Оператор выбора работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности операторов <список_выбора> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается оператору, стоящему за словом ELSE.
case I of 0, 2, 4, 6, 8: Writeln('Четная цифра'); 1, 3, 5, 7, 9: Writeln('Нечетная цифра'); 10..100: Writeln('Между 10 и 100'); end;
