Составьте программу, которая формирует массив из двадцати случайных целыъ от -15 до 15 и уменьшает в 3 раза числа, кратные 3, а остальные увеличивает в 2 раза
Var - список переменных переменные а,с присваивают тип integer, т.е. целые числа; b присваивает тип string, т.е строковый тип begin - начало программы readln - оператор ввода, окончание ln осуществляет переход на новую строку str(a,b) - т.е. преобразовать данные числа в строку переменная b так же присваивает тип строковый Val(b,a,c) где: b- строка, а-результат, с-позиция с которой произошла ошибка преобразования или 0 writeln(а) - оператор вывода, окончание ln осуществляет переход на новую строку end. - конец программы
Сначала надо избавиться от ошибок (пункт №3) иначе не сможем выполнить 1 и 2 пункт задания. Исправляем if N mod 10 k:=N mod 10; на if (N mod 10 < k) then k:=N mod 10; Исправляем N:N div 10; на N:= N div 10;
После исправления ошибок при вводе 537 получим 3 Программа будет работать правильно для любого числа, у которого вторая цифра слева меньше первой цифры, например: 7193
Чтобы программа работала правильно для всех чисел надо изменить это: while N > 10 do на while N > 0 do
После всех исправлений код программы стал таким: var N, k: integer; begin readln(N); k := 9; while N > 10 do begin if (N mod 10 < k) then k := N mod 10; N := N div 10; end; write(k) end.
var a:array[1..20] of integer;
i: integer;
begin
write(' Исходный массив: ');
for i:=1 to 20 do
begin
a[i]:=random(31)-15;
write (a[i]:3,' ')
end;
writeln;
write('Преобразованый массив: ');
for i:=1 to 20 do
begin
if (a[i] mod 3 = 0) then a[i]:=a[i] div 3
else a[i]:= a[i]*2;
write (a[i]:3,' ')
end
end.