- •Министерство образования и науки российской федерации
- •Оглавление предисловие
- •Составление структурных схем алгоритмов и программ
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Пример 4
- •Пример 5
- •Задания
- •Алфавит языка pascal. Типы данных. Раздел описаний. Оператор присваивания. Ввод-вывод. Составление простейших программ
- •Стандартные процедуры
- •Стандартные функции
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Задания
- •Использование переменных логического типа. Логический оператор присваивания
- •Логический оператор присваивания
- •R операция_сравнения s
- •Пример 1
- •Задания
- •4. Программирование разветвляющихся структур
- •4.1. Использование в программах условного оператора
- •Пример 1
- •Задания
- •4.2. Использование в программах оператора варианта
- •Case выражение-селектор of метка_случая : оператор;
- •Пример 1
- •Задания
- •5. Использование переменных типа char
- •Задания
- •6. Реализация циклических структур
- •6.1. Применение оператора цикла с параметром
- •Шаг изменения параметра цикла:
- •Пример 1
- •Задания
- •Пример 2
- •Пример 3
- •Задания
- •Пример 4
- •Задания
- •Таким образом изображаются циклы в структурных схемах (в лабораторных работах, курсовых работах и т.Д.). Пример 5
- •Задания
- •Задания
- •Пример 6
- •Задания
- •Не смотря на то, что есть еще другие операторы цикла, обычно вводят и выводят массивы с помощью оператора цикла с параметром.
- •6.2. Применение оператора цикла с постусловием
- •Пример 1
- •Задания
- •6.3. Применение оператора цикла с предусловием
- •Основные различия между операторами циклов с постусловием и предусловием
- •Пример 1
- •Задания
- •6.4. Работа с двухмерными массивами.
- •Задания
- •Пример 1
- •Задания
- •7. Поиск и сортировка числовых данных
- •Пример 1
- •Задания
- •8. Решение задач с применением подпрограмм
- •Procedure имя(список параметров);
- •Var идентификаторы:имя типа;...; var идентификаторы: имя типа
- •Var идентификаторы:имя типа;...;var идентификаторы: имя типа;...; идентификаторы:имя типа;...;идентификаторы:имя типа
- •Идентификаторы:имя типа;идентификаторы:имя типа; ...;идентификаторы:имя типа
- •Локальные переменные доступны только внутри процедур, в которых они определены!
- •Пример 1
- •Задания
- •9. Использование переменных перечисляемого типа
- •Ввод и вывод значений переменных перечисляемого типа запрещен.
- •Задания
- •10. Использование переменных ограниченного типа
- •Задания
- •11. Использование переменных множественного типа
- •Var идентификатор : set of порядковый тип;
- •Запрещен.
- •Правила приоритета для множественных операций:
- •Задания
- •12. Использование записей
- •With префикс[,префикс [...]] do оператор
- •Пример 1
- •Задания
- •13. Работа со строками
- •Каждая переменная типа string вводится отдельной процедурой readln
- •Пример 1
- •Задания
- •14. Работа с файлами
- •Пример 1
- •Пример 2
- •Пример 3
- •Задания
- •Библиографический список
Шаг изменения параметра цикла:
1-й случай: TO - эквивалентен оператору: i:=succ(i);
2-й случай: DOWNTO - эквивалентен оператору: i:=pred(i).
Отсюда для целочисленного i получим:
1-й случай: TO - шаг равен 1,
2-й случай: DOWNTO - шаг равен -1.
Часть оператора без тела цикла (без s) называется заголовком цикла.
Цикл работает следующим образом. Сначала вычисляются и запоминаются начальное и конечное значения параметра цикла: a и b. Далее параметру цикла присваивается начальное значение: a. Затем значение параметра цикла сравнивается со значением b. Далее, пока параметр цикла меньше или равен конечному значению b (в первом варианте) или больше или равен конечному значению b (во втором варианте), выполняется тело цикла (после каждого выполнения тела цикла параметр цикла изменяется с указанным шагом (например, для целочисленных переменных, с шагом 1 (1-й случай) или -1 (2-й случай))); в противном случае происходит выход из цикла.
1-й случай: Если а>b, то оператор s не будет выполнен ни разу.
2-й случай: Если a<b, то оператор s не будет выполнен ни разу.
Изменить начальное и конечное значение параметра цикла в теле цикла невозможно, т.к. они вычисляются только один раз перед началом работы цикла. Хотя во многих учебниках по языку PASCAL написано, что изменять значение параметра цикла в теле цикла тоже нельзя, программисты на практике убедились, что на самом деле можно, но новое значение не должно превышать b (в первом случае) либо быть меньше b - (во втором).
В версии Turbo Pascal 7.0 для прекращения цикла можно использовать процедуру Break, которая передает управление следующему за этим циклом оператору, а также можно использовать процедуру Continue, которая прекращает текущую итерацию ближайшего охватывающего цикла и вызывает следующую итерацию.
Пример 1
Вывести на экран терминала числа от 0 до 9 в один столбик.
Решение
Так как числа должны выводиться в столбик, воспользуемся для их вывода процедурой WRITELN:
{ВЫВОД ЧИСЕЛ ОТ 0 ДО 9 В СТОЛБИК}
begin
Writeln(0);
Writeln(1);
Writeln(2);
Writeln(3);
Writeln(4);
Writeln(5);
Writeln(6);
Writeln(7);
Writeln(8);
Writeln(9)
end.
В этой задаче требовалось вывести десять чисел в столбик. Для этого мы воспользовались десятью процедурами WRITELN. А если бы от нас потребовали вывести пятьдесят чисел, например от 21 до 70? Неужели бы нам пришлось писать пятьдесят процедур WRITELN?! Конечно же нет, язык PASCAL дает нам возможность с помощью оператора цикла и всего лишь одной процедуры WRITELN вывести столько чисел, сколько нам надо. Как же это сделать? В нашей программе процедура вывода выполнялась десять раз, изменялась лишь выводимая информация. Давайте посмотрим, есть ли какая-то закономерность в этом изменении. Конечно, есть. Числа в скобках изменяются от 0 до 9 с шагом 1. То есть мы можем записать так:
процедуру WRITELN(i) надо выполнить 10 раз
при i, изменяющейся от 0 до 9 с шагом 1.
Перевернем немного эту фразу:
для i, изменяющейся от 0 до 9 с шагом 1,
выполнять процедуру WRITELN(i);
- и запишем ее на языке PASCAL:
FOR i:=0 TO 9 DO
WRITELN(i)
Запишем программу полностью. У нас появилась переменная i. Ее надо описать. Эта переменная целого типа.
{ВЫВОД ЧИСЕЛ ОТ 0 ДО 9 В СТОЛБИК}
var
i:integer;
begin
FOR i:=0 TO 9 DO
WRITELN(i)
end.
Как видите в приведенном выше примере, заголовок цикла записывается на одной строке, тело цикла – на другой со сдвигом на 2-3 символа.