Запишите на языке Паскаль программы решения задач № 25-30 из & 2.4. Используйте оператор while.
25) Напишите алгоритм, под управлением которого Робот обойдет прямоугольную область, обнесённую стеной, по периметру и закрасит угловые клетки. Размеры области неизвестны.
26) Запас рыбы в пруду оценен в А тонн. Ежегодный прирост рыбы составляет 15%. Ежегодный план отлова — В тонн. Наименьший запас рыбы составляет С тонн. (Запас ниже С тонн уже не восстанавливается.) Составьте программу для подсчёта количества лет, в течение которых можно выдерживать заданный план.
27) Дана последовательность 5, 9, 13, 17, … . Составьте программу для определения числа слагаемых, сумма которых равна 324.
28) Составьте программу для определения количества цифр в записи произвольного натурального числа.
29) Сумма 10000 рублей положена в сберегательный банк, при этом прирост составляет 5% годовых. Составьте программу, определяющую, через какой промежуток времени первоначальная сумма увеличиться в 2 раза.
30) Одноклеточная амёба каждые 3 часа делится на 2 клетки. Составьте алгоритм вычисления времени, через которое будет X амёб.
Type
ty=array[1..60] of integer;
Var
a,b,c:array[1..20] of integer;
ar:ty;
n,m,k,i:integer;
procedure quicksort(var a:ty; Lo,Hi: integer);
procedure sort(l,r: integer);
var
i,j,x,y: integer;
begin
i:=l;
j:=r;
x:=a[random(r-l+1)+l];
repeat
while a[i]<x do
i:=i+1;
while x<a[j] do
j:=j-1;
if i<=j then
begin
if a[i] > a[j] then
begin
y:=a[i];
a[i]:=a[j];
a[j]:=y;
end;
i:=i+1;
j:=j-1;
end;
until i>=j;
if l<j then sort(l,j);
if i<r then sort(i,r);
end;
begin;
randomize;
sort(Lo,Hi);
end;
begin
readln(n);
for i:=1 to n do
begin
readln(a[i]);
ar[i]:=a[i];
end;
readln(m);
for i:=1 to m do
begin
readln(b[i]);
ar[i+n]:=b[i];
end;
readln(k);
for i:=1 to k do
begin
readln(c[i]);
ar[i+n+m]:=c[i];
end;
quicksort(ar,1,n+m+k);
writeln('Final array:');
for i:=1 to n+m+k do
write(ar[i]:4);
end.
Пример ввода:
3
1
2
3
3
1
2
3
3
1
2
3
Пример вывода:
Final array:
1 1 1 2 2 2 3 3 3
begin
var a:=MatrixRandom(3,2,-99,99);
Writeln('Массив А');
for var i:=0 to 2 do begin
for var j:=0 to 1 do Write(a[i,j]:4);
Writeln
end;
var b:=MatrixRandom(3,2,-99,99);
Writeln('Массив B');
for var i:=0 to 2 do begin
for var j:=0 to 1 do Write(b[i,j]:4);
Writeln
end;
var c:array[0..2,0..1] of real;
Writeln('Результирующий массив');
for var i:=0 to 2 do begin
for var j:=0 to 1 do begin
c[i,j]:=a[i,j]*b[i,j]/10; Write(c[i,j]:7:1)
end;
Writeln
end
end.
Тестовое решение
Массив А
-91 -93
-62 9
-97 6
Массив B
-64 18
57 -34
-65 -30
Результирующий массив
582.4 -167.4
-353.4 -30.6
630.5 -18.0