Задания № 2 по теме «Условный оператор цикла WHILE» 1. Напечатайте все точные квадраты натуральных чисел, не превосходящие данного числа п. (например, при вводе 50 программа должна вывести 149 16 25 36 49). 2. В первый день спортсмен пробежал х километров, а затем он каждый день увеличивал пробег на 10% от предыдущего значения. По данному числу у определите номер дня, на который пробег спортсмена составит не менее у километров. Например, при вводе 10 20 программа должна вывести 9. хиу – действительные числа, ответ – целое число. 3. Дано натуральное число п. Определите, является ли оно степенью числа 2, и выведите слово YES, если является и слово NO, если не является. І (см. на обороте)
Добавлю и объяснение. Алгоритм заполняет целочисленный массив из десяти элементов случайными числами. Возможны диапазон числе: от 1 до 60000. Затем в следующем цикле выискивается максимальное число, которое выдал генератор случайных чисел. В строке writeln выводится значение этого числа умноженное на три.
const n=5; var a:array[1..n,1..n] of integer; x:array[1..n] of double; i,j,k:byte; begin Randomize; Writeln('*** Исходный массив ***'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=Random(51)-25; Write(a[i,j]:4) end; Writeln end; Writeln('*** Массив x ***'); for j:=1 to n do begin x[j]:=0; k:=0; for i:=1 to n do if a[i,j] mod 2=0 then begin x[j]:=x[j]+a[i,j]; Inc(k) end; if k>0 then x[j]:=x[j]/k; Write(x[j]:0:5,' ') end; Writeln end.
var
a : array[1..10] of word;
max : word;
begin
randomize;
for I : byte := 1 to 10 do
a[i] := random(1, 60000);
max := 0;
for I : byte := 1 to 10 do
if a[i] > max then max := a[i];
writeln(max*3);
end.
Объяснение:
Добавлю и объяснение. Алгоритм заполняет целочисленный массив из десяти элементов случайными числами. Возможны диапазон числе: от 1 до 60000. Затем в следующем цикле выискивается максимальное число, которое выдал генератор случайных чисел. В строке writeln выводится значение этого числа умноженное на три.
const
n=5;
var
a:array[1..n,1..n] of integer;
x:array[1..n] of double;
i,j,k:byte;
begin
Randomize;
Writeln('*** Исходный массив ***');
for i:=1 to n do begin
for j:=1 to n do begin
a[i,j]:=Random(51)-25;
Write(a[i,j]:4)
end;
Writeln
end;
Writeln('*** Массив x ***');
for j:=1 to n do begin
x[j]:=0; k:=0;
for i:=1 to n do
if a[i,j] mod 2=0 then begin
x[j]:=x[j]+a[i,j]; Inc(k)
end;
if k>0 then x[j]:=x[j]/k;
Write(x[j]:0:5,' ')
end;
Writeln
end.
Тестовое решение:
*** Исходный массив ***
-10 18 -8 -15 5
-21 -18 6 -2 9
-7 22 -4 3 14
21 16 -10 -18 -9
17 3 -14 -18 12
*** Массив x ***
-10.00000 9.50000 -6.00000 -12.66667 13.00000