- •Содержание
- •Линейные алгоритмы
- •Язык программирования Turbo Passcal
- •Типы переменных в Паскале:
- •Стандартные операции и функции от скалярных данных.
- •Структура программы на Pascal
- •Команда присваивания
- •Команды ввода и вывода
- •Справка по работе с системой Turbo Pascal
- •Условный оператор, оператор множественного выбора Алгоритмы с ветвлением
- •Ветвление в Pascal Логические выражения
- •Логические операции
- •Команды ветвления
- •1. Условный оператор if
- •2. Оператор Case.
- •3. Команда безусловного перехода goto
- •Циклы Алгоритмы с циклами
- •1. Цикл с предусловием
- •2. Цикл с постусловием.
- •Циклы в Pascal
- •1. Цикл с параметром
- •2. Цикл с предусловием.
- •3. Цикл с постусловием
- •Вложенные циклы
- •Подпрограммы
- •Функции пользователя
- •Процедуры
- •Массивы Одномерные массивы
- •Стандартные задачи обработки массивов:
- •Двумерные массивы
- •Обработка строк и символов
- •Процедуры и функции обработки строк.
- •Основные алгоритмы обработки строк
- •Графика в Pascal
- •Основные графические процедуры и функции
- •Работа с файлами
- •Процедуры и функции для работы с файлами.
3. Цикл с постусловием
Repeat
<опреаторы>;
Until <условие>
Оператор повторяет последовательность команд пока условие не станет истинным. Этот цикл всегда выполняется хотя бы 1 раз.
Пример. Найти сумму цифр введенного натурального числа.
Program primer;
var
a, n, s: integer;
begin
Write(‘n=’); Readln(n);
S:=0;
repeat
a:=n mod 10;
s:=s+a;
n:=n div 10;
until n=0;
writeln(‘s=’, s);
readln;
end.
Пример 6. Протабулировать (вывести на экран таблицу значений) функции y=2x+1 интервале [-3; 3] с шагом 0.5.
x= - 3 y=…
x= - 2.5 y=…
…
x=3 y=…
Program primer;
var
x, y: real;
begin
x:=0;
repeat
y:=sqrt(sqr(sin(x)+2));
writeln(‘x=’, x:6:2, ‘y=’, y:8:4);
x:=x+0.2;
until x>1;
readln;
end.
Пример 7. Вычислить сумму с заданной точностью E=0.0001.
Program primer;
Var S, e, slag: real;
k: integer;
begin
e:=0.0001; s:=0; k:=1;
slag:= k/sqr(k+1);
repeat
s:=s+slag;
k:=k+1;
slag:=k/sqr(k+1);
until slag<e;
write (‘s=’, s:6:2);
readln;
end.
Вложенные циклы
Циклическая конструкция может содержать в теле цикла другой цикл. Такие конструкции называют вложенными циклами. Глубина вложения и тип циклов может быть различными.
Например, a) For . . . do – внешний цикл
While . . . do – внутренний цикл (в данном случае глубина = 2)
b) While . . . do
For . . . do
Repeat
. . .
Until (глубина =3)
Рассмотрим механизм работы вложенных циклов на примере:
For a:=1 to 2 do
For b:=1 to 3 do
Writeln(‘a=’, a, ‘ b=’, b);
a=1 a=1 a=1 |
b=1 b=2 b=3 |
выполняется внутренний цикл по b при a=1 |
a=2 a=2 a=2 |
b=1 b=2 b=3 |
выполняется внутренний цикл по b при a=2 |
Параметр внешнего цикла не меняет свое значение до тех пор, пока внутренний цикл не завершит свою работу.
Пример: вывести на экран таблицу Пифагора.
внутренний цикл |
||||||||||
внешний цикл |
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
1 |
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
7 |
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
|
9 |
|
|
|
|
|
|
|
|
|
Program primer;
var
i, j: integer;
begin
for i:=1 to 9 do
begin
for j:= 1 to 9 do
write(i*j:4);
writeln;
end;
readln;
end.
Внутренний цикл формирует каждую строку таблицы. Writeln – перевод курсора на новую строку.
Пример. Вводятся k натуральных чисел. Найти сумму цифр каждого из них.
повторить |
1. Ввести число N 2. Найти сумму его цифр 3. Вывести результат |
Program primer;
var
n, s, a, i, k: integer;
begin
write (‘k=’); readln(k);
for i:=1 to k do
begin
Write(‘n=’); readln (n); s:=0;
Repeat
a:=n mod 10;
s:=s+a;
n:=n div 10;
until n=0;
writeln (‘s=’,s);
end;
readln;
end.
операторы:
Оператор |
Назначение |
Синтаксис |
For |
Цикл с параметром |
For <перем>:=<начальное знач> to <кон.знач> do <оператор>; Значение переменной изменяется от начального значения к конечному с шагом 1. For <перем>:=<нач. знач> downto <конеч. знач> do <оператор>; Значение переменной изменяется от начального значения к конечному с шагом -1 |
While |
Цикл с предусловием |
While <условие> do <оператор>; Цикл выполняется, пока условие истинно. |
Repeat Until |
Цикл с постусловием |
Repeat <Операторы>; Until <условие>; Цикл выполняется, пока условие ложно. |