Задачи
по теме «Циклы» 8 класс
ЗАДАЧА
Ввести с клавиатуры ряд чисел, признак окончания ввода – число 0. Найти сумму чисел.
Решение.
Program Sum;
Var c, S: integer;
Begin
S:= 0;
Repeat
Write (‘Введи число ’);
Readln (c);
S := S + c;
Until c =
0;
Writeln (‘Сумма = ’, S);
End.
Чтобы разделить число на отдельные
цифры, воспользуемся операциями div и mod:
х mod 10 - получим правую цифру числа
х div 10 - получим левую часть числа (без одной цифры).
Повторяя эти операции многократно, можно по очереди справа
налево выделять все цифры числа по одной до тех пор, пока не получим крайнюю
слева цифру.
ЗАДАЧА. Ввести с клавиатуры
натуральное число. Найти сумму его цифр.
Решение:
Program Sum;
Var c,t, S: integer;
begin
Write ('введи число');
Readln (c);
S:=0;
Repeat
t:=c mod 10;
S:=S+t;
c:=c div 10
Until c=0;
Writeln ('сумма цифр=
', S);
end.
ЗАДАЧА Ввести с клавиатуры несколько
дробных чисел, признак окончания ввода – число 1000. Найти и напечатать целую
часть каждого числа.
Program zadacha;
Var c: real;
Tr: integer;
Begin
Write (‘Введи число ’);
Readln (c);
While c
<> 0 do
begin
Writeln
(‘Целая часть
= ’, Trunc (c));
Write
(‘Введи число
’);
Readln
(c)
End;
End.
ЗАДАЧА Ввести с клавиатуры a и
b. Найти сумму целых чисел, принадлежащих отрезку [a, b].
Решение
Program Summafor;
Var S, x, a, b: integer;
begin
Write ('Введи a и b ');
Readln (a, b);
S := 0;
For x:=a to b do
begin
Write ('Введи число ');
Readln (x);
S := S + x;
end;
Writeln ('сумма=', S);
end.
ЧИСЛА ФИБОНАЧЧИ
Рассмотрим последовательность чисел: 1, 1, 2, 3, 5, 8, … В этом ряду
каждое новое число – это сумма двух предыдущих, а первое и второе равны 1.
Последовательность, составленная таким образом, называется рядом Фибоначчи, а
каждое из чисел – числом Фибоначчи.
Составим цикл для нахождения N-ого
числа этой последовательности:
Program zadacha;
Var
x0, x1, x, k,n: integer;
Begin
write('n=');
readln(n);
x0 := 1;
x1 := 1;
k := 3;
While k <= n do
Begin
x := x0 + x1;
x0 := x1;
x1 := x;
k := k + 1
end;
Writeln (n, '-ое число Фибоначчи = ', x);
End.
Задача. НОД
чисел – Алгоритм Евклида
var
m, n: integer;
begin
Writeln('Введите
два числа');
Readln(m, n);
repeat
if m > n then m := m-n
else n := n-m
until (m =n);
writeln('НОД = ', m);
end.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.