Меню Закрыть

Задачи на цикл пока

Приветствуем читателей learnpascal.ru! Продолжаем наш марафон по решению задач. На очереди задачи while1-14.

Чтобы решить все нижеприведенные задачи, вам надо знать материал трех уроков: div, mod, функции; логические выражения; циклы.

While1°. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка A.

Умножение — это некоторое количество сложений.

While2. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти количество отрезков B, размещенных на отрезке A.

Добавляем счетчик в предыдущую задачу.

While3. Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а также остаток от этого деления.

While4°. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести True, если не является — вывести False.

Число будет степенью числа, если деля заданное число нацело на 3, получится N = 1.

While5. Дано целое число N (> 0), являющееся некоторой степенью числа 2: N = 2 K . Найти целое число K — показатель этой степени.

Используем метод из предыдущей задачи.

While6. Дано целое число N (> 0). Найти двойной факториал N: N! = N·(N–2)·(N–4)·… (последний сомножитель равен 2, если N — четное, и 1, если N — нечетное). Чтобы избежать целочисленного переполнения, вычислять это произведение с помощью вещественной переменной и вывести его как вещественное число.

While7°. Дано целое число N (> 0). Найти наименьшее целое положительное число K, квадрат которого превосходит N: K 2 > N. Функцию извлечения квадратного корня не использовать.

While8. Дано целое число N (> 0). Найти наибольшее целое число K, квадрат которого не превосходит N: K 2 ≤ N. Функцию извлечения квадратного корня не использовать.

While9. Дано целое число N (> 1). Найти наименьшее целое число K, при котором выполняется неравенство 3K > N.

Аналагично while 7.

While10. Дано целое число N (> 1). Найти наибольшее целое число K, при котором выполняется неравенство 3K

While11°. Дано целое число N (> 1). Вывести наименьшее из целых чисел K, для которых сумма 1 + 2 + … + K будет больше или равна N, и саму эту сумму.

Действуем аналогично предыдущим задачам.

Читайте также:  Программа для удаления служб windows 10

While12°. Дано целое число N (> 1). Вывести наибольшее из целых чисел K, для которых сумма 1 + 2 + … + K будет меньше или равна N, и саму эту сумму.

While13. Дано число A (> 1). Вывести наименьшее из целых чисел K, для которых сумма 1 + 1/2 + … + 1/K будет больше A, и саму эту сумму.

Такая же как while11.

While14. Дано число A (> 1). Вывести наибольшее из целых чисел K, для которых сумма 1 + 1/2 + … + 1/K будет меньше A, и саму эту сумму.

Такая же как while12.

На сегодня все! Если у вас возникли вопросы, не стесняйтесь, задавайте их в комментариях. И не забывайте кликать по кнопочкам.

лабораторные работы и задачи по программированию и информатике, егэ по информатике

Pascal операторы цикла — Repeat

var a,b,temp,c:integer; flag: boolean; begin writeln(‘A=’); readln(a); writeln(‘B=’); readln(b); temp:=a; repeat temp:=temp-b; inc(c); until temp-b>=0; writeln(‘result: ‘,c); end.

Pascal операторы цикла — While

P:=1; i:=3; while i 1) 1
2) 3
3) 9
4) 24

S:=0; i:=7; while i > 1 do begin S := S + i div 2; i := i — 1; end;

Варианты:
1) S = 0
2) S = 7
3) S = 12
4) S = 24

Решение данного задания смотрите в видео уроке по Паскалю:

var n, k,c: integer; begin writeln(‘N:’); readln(n); writeln(‘K:’); readln(k); c:=0; while n>=k do begin n:=n-k; c:=c+1; end; writeln(‘частное: ‘,c, ‘остаток: ‘, n); end.

var number:integer; flag: boolean; begin writeln(‘введите целое число (number>0) number=’); readln(number); flag:=false; while (number div 10)>0 do begin if (number mod 10) = 2 then flag:=true; number:=number div 10; end; writeln(flag); end.

var N,K,Temp :Integer; begin Write(‘Введите N: ‘); Readln(N); K:=0; Temp:=3; while Temp

* Из задачника М. Э. Абрамян (While14)

var Temp:Real; A,K :Integer; begin Write(‘Введите A: ‘); Readln(A); K:=0; Temp:=0; while Temp Проверить:

Читайте также:  Игра адреналин экстрим шоу

var i,R,K:Longint; begin write(‘Введите K : ‘); readln(K); R:=1; i:=0; while(R<>0) do begin write(‘Введите число из набора: ‘); Readln(R); if R Проверить:

var P, S, D:Real; K :Integer; begin Write(‘Введите процент: ‘); Readln(P); K:=1; D:=10; S:=10; while S Pascal операторы цикла — For

var c,m:real; i:integer; begin writeln(‘Цена?’); readln(c); m:=0.1; for i := 1 to 10 do begin writeln(‘ price of ‘,m, ‘ kg = ‘,c*m); m:=m+0.1; end; end.

var a, b, i: integer; begin writeln(‘A:’); readln(a); writeln(‘B:’); readln(b); for i:= b-1 downto a+1 do write(i:3 ); writeln; writeln(‘kolvo: ‘,b-a-1); end.

* Из задачника М. Э. Абрамян (For11)

var N, Rez,i :Integer; begin Write(‘Введите N: ‘); Readln(N); rez:=0; For i:=0 to N do Rez:=Rez+sqr(N+i); Writeln(Rez); end.

Сейчас предлагаем решить сложную олимпиадную задачу на Паскале:

var c,n,s,k,i:integer; begin c:=0; s:=0; readln(n); for i:=2 to n do begin k:=i; while k>0 do begin if i mod k = 0 then c:=c+1; k:=k-1; end; if c= 5 then s:=s+i; c:=0; end; writeln(s); end.

Добрый вечер. В первом задании у вас не правильный код. Постоянно 1 выдаёт.
У меня получился вот такой:

var a,b,k:integer;
begin
write(‘Введите длину отрезка А (a>b) — ‘);
readln(a);
write(‘Введите длину отрезка Б (b at 19:20

ваш код в задачке while 4 на числа, начинающиеся на двойку(например 233) выдаёт false. я написал так(про булеан ещё не знал, ведь он в следующей главе):
var a,a1,z,i,j,i2:integer;

begin
write(‘vvedite chislo:’);
readln(a);
i:=1;
a1:=a;
z:=0;
while a1>=10 do begin
a1:=a1 div 10;
inc(i);
end;
a1:=a;
while i>0 do begin
i2:=1;j:=1;
while i2

Как мы уже говорили, в паскале существуют 3 способа организации цикла (типа):

2) Цикл с постусловием

3) Цикл с предусловием

Тело цикла выполняется пока условие ИСТИННО.

Если в теле цикла действий несколько — используются операторные скобки begin … end;

Рассмотрим пример, аналогичный рассмотренному в теме «Цикл со счетчиком», но реализуем его с помощью цикла WHILE.

Требуется на экране вывести:

Привет
Привет
Привет
Привет

Для реализации данного примера с помощью цикла с предусловием нам потребуется переменная n:

Читайте также:  Флешка только для чтения как изменить

Данный цикл будет выполнять команду writeln(‘Привет’) бесконечное число раз. Почему? Потому что переменная n не изменяется и всегда будет меньше 4. Поэтому необходимо в цикле добавить код, изменяющий переменную n. Например: n:=n+1.

Теперь переменная n будет изменяться с каждым выполнением команд тела цикла (с каждой итерацией).

Нужно запомнить: чтобы не произошло зацикливание в цикле WHILE — необходимо проследить за тем, чтобы переменная из условия изменялась в теле цикла. В цикле со счетчиком такого не случится (зацикливание), т.к. мы указываем точное число итераций.

Рассмотрим несколько задач, где число повторений в цикле явно не известно.

Считать сумму введенных с клавиатуры чисел до тех пор, пока не будет введен ноль.

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

Зачем два раза используем ввод числа а (readln(a);)? Первый раз вводим число а для того, чтобы войти в цикл с некоторым значением переменной a, которое будет использоваться в условии цикла WHILE. Второй раз команда readln(a) используется внутри цикла — вводим числа до тех пор, пока не введем ноль.

Даны два отрезка А и B (A>B). Не используя операции умножения и деления, определить, сколько отрезков В уместится в отрезке А.

Информатика в школе. Цикл WHILE

Т.е. из рисунка видно, что нам нужно складывать длины отрезка A до тех пор, пока сумма не станет больше длины отрезка В. В этом нам поможет цикл с предусловием — цикл while.

Рассмотрим работу программы на примере: А=5, В=21. Рассуждения запишем в таблицу:

Информатика в школе. Цикл WHILE

Используя алгоритм Евклида, найти НОД двух чисел.

Рассмотрим блок-схему алгоритма Евклида:

Запишем данной алгоритм с помощью Паскаля, опираясь на данную блок-схему. Как видим, у нас имеется цикл с предусловием (M>N). Внутри цикла еще одно условие (M>N), т.е. оператор IF… THEN.

Аналогично задаче 2 можно проверить данный алгоритм, записав рассуждения в таблицу.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.