- •Общая функциональная схема эвм
- •Языки программирования
- •Этапы решения задач на эвм
- •Понятие алгоритма и его свойства
- •Типы алгоритмов
- •Ос эвм. Понятие о файловой системе
- •Команды ms dos
- •Программирование на языке паскаль
- •Структура программы на языке паскаль
- •Описание данных
- •1. Константы
- •2. Переменные
- •Комментарии
- •Операторы языка паскаль
- •Операторы обработки данных
- •1. Операторы ввода
- •2. Операторы вывода
- •3. Вычисление по формулам. Оператор присваивания
- •Линейные программы
- •Управляющие операторы
- •1. Разветвляющиеся алгоритмы. Оператор if (если)
- •2. Пример разветвляющейся программы
- •3. Оператор case
- •Циклические алгоритмы и программы
- •1. Общая схема цикла
- •2. Циклы со счетчиком
- •3. Итерационные циклы
- •3.1. Оператор цикла с пост-условием
- •3.2. Оператор цикла с пред-условием
- •Tипы данных, используемых в паскале
- •1.Представление данных в эвм
- •2. Стандартные функции Паскаля и Турбо Паскаля
- •3. Булевские переменные и выражения
- •4.Функции для работы с символами
- •5. Массивы
- •Примеры программ обработки массивов
- •Особенности алгоритмов и программ с накапливанием
- •Алгоритм нахождения минимума и максимума
- •Задача сортировки
- •Обработка многомерных массивов
- •Итерационные циклы
- •Типовые алгоритмы с итерационными циклами
- •1. Приближенное вычисление функций
- •2. Решение уравнений приближенными методами
- •2.1. Метод Ньютона
- •Программы обработки строк символов (текстов)
- •1. Простейшие алгоритмы и программы обработки строк
- •Типовые программы обработки строк
- •Задача 1 выделения слов из текста (слова разделены одним пробелом)
- •Задача 2 выделения слов из текста (слова разделены несколькими пробелами)
- •Алгоритмы поиска
- •Алгоритм линейного поиска
- •Библиографический список
- •Содержание
2. Циклы со счетчиком
Для их организации в Паскале используется оператор FOR (ДЛЯ), который в общем виде записывается так:
For Параметр:=Нач.значение to Кон.Значение do (1)
Оператор1;
For Параметр:=Нач.значен. downto Кон.Знач. do (2)
Оператор1;
Параметром цикла в этом операторе может служить переменная:
1) целого;
2) символьного типа.
Оператор (1) работает так. Параметр пробегает значения от начального до конечного через 1. При этом, конечное значение должно быть больше или равно начальному. В противном случае оператор не выполняется.
В операторе (2) использовано слово DOWNTO. При этом значения параметра убывают (изменяются от большего – начального, – значения до меньшего с шагом - 1).
Если начальное значение равно конечному, то в обоих случаях (при ТО и DOWNTO) оператор выполняется один раз.
В общем случае (если параметр пробегает несколько значений) оператор 1 выполняется несколько раз.
Операторам (1) и (2) соответствует схема цикла вида рис. 8,а) и б) соответственно.
а) б)
Рис.8. Схема выполнения операторов цикла For
Пример:
For i:= 1 To 10 Do
S:= S+i; {к величине S прибавляется
10 чисел от 1 до 10}
Если многократно нужно выполнить несколько операторов, то они помещаются в блок операторов – между служебными словами BEGIN и END.
Пример.
Ввести в ЭВМ 10 трёхзначных чисел и распечатать их цифры в обратном порядке.
Алгоритм
1. Для номера от 1 до 10
Ввести и обработать число
2. Конец.
Уточняем
1. Для номера от 1 до 10
1.1. Ввести число
1.2. Ц.1 = число mod 10
1.3. Число = число div 10 - выделение двух старших цифр
1.4. Ц.2 = число mod 10
1.5. Ц.3 = число div 10
1.6. Вывести Ц1,Ц2,Ц3
Программа для этого алгоритма будет иметь вид:
PROGRAM DIG;
Const
d=10;
VAR
Num,C1,C2,C3:INTEGRER; {исходное число и цифры}
i:INTEGRER; {Х номер числа }
BEGIN
For i:=1 To d Do
BEGIN
READLN(Num);
C1:=Num MOD d;
Num:=Num DIV d;
C2:=Num MOD d;
C3:=Num DIV d;
WRITELN(C1:2,C2:2,C3:2)
END;
END.
Пункты 1.2 – 1.6 можно также выполнить в цикле вида:
For C2:=1 To 3 do
BEGIN
C1:=Num MOD d;
WRITELN (C1);
Num:=Num DIV d;
END;
3. Итерационные циклы
Это циклы, количество повторений которых заранее неизвестно. Выход из цикла определяется условием, записанным относительно параметра. Пример: Изобразить (на экране или бумаге) степени двойки, не превышающие 10000 – количество степеней не известно заранее (это – решение задачи), но есть условие окончания их поиска: число меньше 10000.
Для циклов с неизвестным числом повторений в Паскале используются 2 оператора:
1) с пост-условием;
2) с пред-условием.
3.1. Оператор цикла с пост-условием
Это оператор REPEAT (ПОВТОРЯТЬ), который в общем виде записывается так:
Repeat
Операторы
Until условие;
Схема его работы представлена на рис. 9.
Ри.9. Схема выполнения оператора цикла Repeat
В теле цикла записывается один или несколько операторов, которые будут выполняться многократно. Они располагаются между служебными словами REPEAT и UNTIL, поэтому обрамлять их словами BEGIN и END не нужно. После слова UNTIL записывается условие выхода из цикла (по значению параметра).
Пример.
Если цикл выполняется пока число < 10000, то условие будет:
ЧИСЛО > 10000 - выход из цикла (пока НЕ)
При этом необходимо обязательно изменять параметр внутри цикла, иначе цикл будет выполняться бесконечно (произойдет "зацикливание"). В соответствии со схемой, цикл выполняется по крайней мере 1 раз.
Пример.
Изобразить степени двойки, не превышающие 10000.
Алгоритм
1. Положить число = 2.
2. Повторять:
2.1. Изобразить число.
2.2. Вычислить новое число = число * 2.
Пока число НЕ превысит 10000.
3. Конец
Программа для этого алгоритма будет иметь вид:
PROGRAM Two;
VAR
Num: Integer;
BEGIN
Num:=2;
REPEAT
WRITELN (Num);
Num:=Num*2;
UNTIL Num>1000;
END.
