Лабораторная работа
Язык программирования Паскаль
Тема: Реализация алгоритмов c циклами в Паскале.
Порядок выполнения работы
Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ”.
Получить индивидуальное задание у преподавателя и разработать программу в соответствии с поставленной задачей.
Показать работающую программу преподавателю.
Ответить на контрольные вопросы.
Подготовить письменный отчет.
Форма представления отчета:
Тема работы.
Условия задания.
Текст программы и исходные данные при вводе.
Результаты выполнения программы.
Краткие теоретические сведения.
Цикл – многократное повторение одних и тех же действий.
1. Цикл с предусловием
Такой цикл называют «пока». Механизм его работы: пока условие истинно, повторять…
Пример. Вывести все «-» члены арифметической прогрессии -11; -7…
Пусть a – очередной член прогрессии.
а:=a+4 – следующий член прогрессии.
Пока a<0, повторять a:=a+4.
Цикл с предусловием может не выполниться ни разу, если условие сразу оказалось ложным.
Пример. Найти сумму первых десяти натуральных чисел.
S=1+2+…+10
S – сумма
а – очередное слагаемое.
S:=S+a a:=a+1 |
Выполнять, пока a<=10 |
2. Цикл с постусловием.
Механизм работы: повторять, пока условие не станет истинным.
Этот цикл всегда выполняется хотя бы 1 раз.
Пример. Найти сумму положительных членов арифметической прогрессии: 17; 11 …
S=a+S a:=a-6 |
тело цикла повторять до тех пор, пока не выполнится условие a<=0 |
П
ример.
Вычислить n!
F=F*k k=k+1 |
тело цикла повторять до тех пор, пока не выполнится условие k>N |
Циклы в Pascal
Паскаль предусматривает использование трех операторов цикла:
• оператор цикла с параметром for
• оператор цикла с предусловием while
• оператор цикла с постусловием repeat
1. Цикл с параметром
Цикл с параметром используется в тех случаях, когда число повторений заранее известно.
Общий вид: for <параметр>:=<начальное значение> to <конечное значение> do <оператор>;
Значение параметра меняется с шагом 1. Оператор представляет тело цикла, которое может быть простым или составным оператором.
Пример 1. Вывести квадраты первых десяти натуральных чисел.
Program primer;
Var i, x: integer;
begin
for i:=1 to 10 do begin {перебираем натуральные числа от 1 до 10}
x:=sqr(i); {возводим очередное число в квадрат}
write(x, ' '); {выводим полученное значение}
end;
end.
Результат:
1 4 9 16 25 36 49 64 81 100
Если необходимо, чтобы параметр цикла менялся с шагом -1, следует вместо to записать downto.
for i:=1 to 10 do begin
x:=sqr(i);
write(x, ' ');
end;
Результат:
100 81 64 49 36 25 16 9 4 1
Пример 2. Найти сумму 1 + 1/3 + 1/5 +...(N слагаемых).
Program primer;
Var I, N: integer;
S: real;
begin
Write('N='); Readln(N); {вводим количество слагаемых}
S:=0; {обнуляем сумму}
For I:=1 to N do {выполняем цикл N раз, добавляя к сумме по од ному слагаемому}
S:=S+1/(2*I-1);
Writeln('S=',S:5:2); {выводим значение суммы с двумя десятичными знаками}
end.
Пример 3. Подсчитать количество двузначных чисел, кратных 3.
Program primer;
Var i, k: integer;
begin
k:=0; for i:=10 to 99 do begin
if i mod 3=1 then k:=k+1;
end;
writeln ('k=', k);
end.
Пример 4. Найти сумму четных делителей введенного целого числа.
Program primer;
Var i, S, n: integer;
begin
Write (‘n=’); Readln(n);
S:=0;
for i:=2 to (n div 2) do
if (n mod i=0) and (i mod 2=0) then s:=s+i;
writeln('S=', S);
end.
