- •Структура программы
- •Раздел var;
- •Типы величин
- •Ввод / вывод в Паскале.
- •Лабораторная работа№1
- •5. Ветвление. Формат оператора.
- •6.Применение ветвлений при решении задач Неполная форма ветвления
- •Составной оператор
- •Оператор выбора
- •Цикл c предусловием.
- •Цикл с постусловием
- •10 Решение задач на циклы.
- •11. Цикл с параметром.
- •12. Накопление суммы, произведения, количества.
- •13. Сочетание циклов и разветвлений.
- •14. Вычисление рекуррентных последовательностей
- •14. Задачи на поиск.
- •15. Поиск минимального/ максимального элемента.
Цикл c предусловием.
Формат оператора:
While <Логическое выражение> Do <Оператор>;
Сначала вычисляется <Логическое выражение> Пока его значение равно true , выполняется <Оператор> — тело цикла. Здесь <Оператор> может быть как простым, так и составным.
Ввести целое число и определить, сколько в нем цифр.
Для решения этой задачи обычно применяется такой алгоритм. Число делится на 10 и отбрасывается остаток, и так до тех пор, пока результат деления не равен нулю. При этом счетчик считает, сколько раз выполнилось деление – столько цифр и было в числе. Понятно, что нельзя заранее определить, сколько цифр в числе, сколько раз выполнится деление, поэтому надо использовать цикл с условием. Выход из цикла произойдет, когда исходное число кончится (=0). Результатом послужит значение счетчика.
Требуется вычислить сумму целых чисел от М до N путем прямого суммирования. Здесь M и N — целые числа. Задачу можно сформулировать так:
Алгоритм и программа решения этой задачи с использованием структуры цикл-пока представлены на рисунке:
Program Adding;
Var I,M,N,Summa: I n t e g e r;
Begin Write('M=');
ReadLn(M);
Write ( ' N = ' );
ReadLn(N);
Summa:=0;
I:=M;
While K=N Do
Begin
Summa:=Summa+I;
I : = S u c c ( I )
End;
WriteLn('Сумма равна', Summa)
End.
Цикл с постусловием
Ф
ормат
оператора:
Repeat <оператор> Until <Логическое выражение>
Здесь используется условие окончания цикла. Когда оно становится истинным, цикл заканчивает работу. Такой цикл, в отличие от цикла с предусловием, всегда выполнится, хотя бы один раз.
Найти сумму всех элементов последовательности
…
которые по модулю не меньше, чем 0,001.
Эта задача имеет решение только тогда, когда элементы последовательности убывают по модулю и стремятся к нулю. Поскольку мы не знаем, сколько элементов войдет в сумму, надо использовать цикл с проверкой условия.
В следующем фрагменте программы на Паскале вычисляется сумма конечного числа членов гармонического ряда:
Суммирование прекращается, когда очередное слагаемое становится меньше или целая переменная i достигает значения Maxint.
Program Adding;
Var I, MaxInt: Integer;
Eps, S:Real;
S:=0;
I : = 1 ;
While (l/I>=Eps) And (I<MaxInt) Do
Begin
S:=S+1/i;
I:=I+1
End;
WriteLn('Сумма равна', S);
End.
Задача на проверку ввода. Даны два числа x и y, неравные друг другу. Вычислить:
Составьте программу, которая будет запрашивать пароль до тех пор, пока он не будет правильно введен.
10 Решение задач на циклы.
Дана последовательность случайных чисел из диапазона (-50; 50). Найти первое отрицательное число и его номер.
Дана последовательность целых случайных чисел из [-100; 100]. Найти первое нечетное число и выяснить, будет ли оно двухразрядным.
Д/з:
Дана последовательность целых случайных чисел из диапазона [-50; 50]. Найти первое нечетное число и выяснить, будет ли оно двухразрядным.
Найти все члены арифметической прогрессии (a=1, d=3), не превышающие по величине р.
Дана последовательность случайных чисел из диапазона [-100; 100]. Найти первое отрицательное число и его номер.
Дано число b>0. Последовательность а1, а2, а3,…образована по закону:
а1=10, ai=2ai-1+1, где i=1, 2, 3,… Получить все а<b.
Дано натуральное (многоразрядное) число n. Определить:
сколько цифр в числе;
сумму цифр;
найти первую цифру числа.
Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой путь он пробежит на седьмой день?
