Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OsnovPaskal.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆
  1. Цикл c предусловием.

Формат оператора:

While <Логическое выражение> Do <Оператор>;

Сначала вычисляется <Логическое выражение> Пока его значение равно true , выполняется <Оператор> — тело цикла. Здесь <Оператор> может быть как простым, так и составным.

  1. Ввести целое число и определить, сколько в нем цифр.

Для решения этой задачи обычно применяется такой алгоритм. Число делится на 10 и отбрасывается остаток, и так до тех пор, пока результат деления не равен нулю. При этом счетчик считает, сколько раз выполнилось деление – столько цифр и было в числе. Понятно, что нельзя заранее определить, сколько цифр в числе, сколько раз выполнится деление, поэтому надо использовать цикл с условием. Выход из цикла произойдет, когда исходное число кончится (=0). Результатом послужит значение счетчика.

  1. Требуется вычислить сумму целых чисел от М до 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.

  1. Цикл с постусловием

Ф ормат оператора:

Repeat <оператор> Until <Логическое выражение>

Здесь используется условие окончания цикла. Когда оно становится истинным, цикл заканчивает работу. Такой цикл, в отличие от цикла с предусловием, всегда выполнится, хотя бы один раз.

  1. Найти сумму всех элементов последовательности

…

которые по модулю не меньше, чем 0,001.

Эта задача имеет решение только тогда, когда элементы последовательности убывают по модулю и стремятся к нулю. Поскольку мы не знаем, сколько элементов войдет в сумму, надо использовать цикл с проверкой условия.

  1. В следующем фрагменте программы на Паскале вычисляется сумма конечного числа членов гармонического ряда:

Суммирование прекращается, когда очередное слагаемое становится меньше  или целая переменная 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.

  1. Задача на проверку ввода. Даны два числа x и y, неравные друг другу. Вычислить:

  1. Составьте программу, которая будет запрашивать пароль до тех пор, пока он не будет правильно введен.

10 Решение задач на циклы.

  1. Дана последовательность случайных чисел из диапазона (-50; 50). Найти первое отрицательное число и его номер.

  2. Дана последовательность целых случайных чисел из [-100; 100]. Найти первое нечетное число и выяснить, будет ли оно двухразрядным.

Д/з:

  1. Дана последовательность целых случайных чисел из диапазона [-50; 50]. Найти первое нечетное число и выяснить, будет ли оно двухразрядным.

  2. Найти все члены арифметической прогрессии (a=1, d=3), не превышающие по величине р.

  3. Дана последовательность случайных чисел из диапазона [-100; 100]. Найти первое отрицательное число и его номер.

  4. Дано число b>0. Последовательность а1, а2, а3,…образована по закону:

а1=10, ai=2ai-1+1, где i=1, 2, 3,… Получить все а<b.

  1. Дано натуральное (многоразрядное) число n. Определить:

  • сколько цифр в числе;

  • сумму цифр;

  • найти первую цифру числа.

  1. Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой путь он пробежит на седьмой день?