Тема: Анализ программы, содержащей циклы и ветвления. Задание 20
1) Укажите минимальное натуральное число, при вводе которого этот алгоритм напечатает сначала 7, а потом – 12.
var x, a, b: longint;
begin
readln(x);
a := 0; b := 1;
while x > 0 do begin
if x mod 2 > 0 then
a := a + x mod 12
else
b := b * (x mod 12);
x := x div 12;
end;
writeln(a); write(b);
end.
2) Укажите минимальное натуральное число, при вводе которого этот алгоритм напечатает число 11.
var x, a, b, d: longint;
begin
readln(x);
a := 0; b := 10;
while x > 0 do begin
d := x mod 7;
if d > a then a := d;
if d < b then b := d;
x := x div 7
end;
writeln(a+b)
end.
3) Укажите минимальное двузначное натуральное число, при вводе которого этот алгоритм напечатает число 8.
var x, a, b, d: longint;
begin
readln(x);
a := 0; b := 10;
while x > 0 do begin
d := x mod 6;
if d > a then a := d;
if d < b then b := d;
x := x div 6
end;
writeln(a+b)
end.
4) Получив на вход натуральное число x, этот алгоритм печатает два числа: a и b. Сколько существует таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 12?
var x, a, b: longint;
begin
readln(x);
a := 0; b := 1;
while x > 0 do begin
a := a+1;
if (x mod 14) <> 0 then
b := b*(x mod 14);
x := x div 14;
end;
writeln(a); write(b);
end.
5. Получив на вход натуральное число x, этот алгоритм печатает два числа: a и b. Укажите наибольшее трёхзначное натуральное число, при вводе которого алгоритм печатает сначала 4, а потом тоже - 4.
var x, a, b: longint;
begin
readln(x);
a := 0; b := 0;
while x > 0 do begin
if x mod 2 = 0 then
a := a + x mod 5
else
b := b + x mod 5;
x := x div 5;
end;
writeln(a); write(b);
end.
6. Получив на вход натуральное число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее четырёхзначное натуральное число, при вводе которого алгоритм печатает сначала 4, а потом тоже - 4.
var x, a, b: longint;
begin
readln(x);
a := 0; b := 0;
while x > 0 do begin
if x mod 2 > 0 then
a := a + x mod 9
else
b := b + x mod 9;
x := x div 9;
end;
writeln(a); write(b);
end.
7. Получив на вход натуральное число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее натуральное число, при вводе которого алгоритм печатает сначала 3, а потом 12.
var x, a, b: longint;
begin
readln(x);
a := 0; b := 1;
while x > 0 do begin
if x mod 2 > 0 then
a := a + x mod 13
else
b := b * (x mod 13);
x := x div 13;
end;
writeln(a); write(b);
end.
program runner;
var
n,sum:Real;
i:Integer;
begin
n:=10;
sum:=0;
i:=0;
for i:=1 to 11 do begin
sum := sum + n;
writeln(n:3:8);
n := n * 1.1;
end;
writeln(sum:3:2);
end.
Тело инструкции writeln можно заменить на обычный writeln(n) и writeln(sum) соответственно, но тогда будет вывод некрасивый
Пояснение: n - количество километров, которые пробегает бегун в текущий день (с самого начала равны изначальным десяти); sum - сумма; i - итератор цикла, здесь просто чтоб было именно 11 итераций - по одной на день.
В каждой итерации мы прибавляем к сумме текущий "пробег" (на первой итерации пробег инициализирован как 10, так что никаких операций производить не надо), выводим пробег на экран, после чего умножаем его на 110%.
Повторяем 11 раз.
Выводим сумму на экран.
Задание 1:
var a,b,c,p,s:real;
begin
write('Введите a: '); readln(a);
write('Введите b: '); readln(b);
write('Введите c: '); readln(c);
p:=(a+b+c)/2;
s:=sqrt(p*((p-a)*(p-b)*(p-c)));
writeln('Площадь: ',s);
end.
Задание 2:
а)
var a:real;
begin
a:=1/(1+(1/(2+(1/(2+(3/5;
writeln(a);
end.
ответ: 0.704545454545454
б)
var
a,b,c,d:real;
begin
write('Введите a: '); readln(a);
write('Введите b: '); readln(b);
write('Введите c: '); readln(c);
d:=(((-b)+sqrt(sqr(b)-4*a*c))/2*a);
writeln(d);
end.