procedure IsGreater(var p:V; m,T:integer; var r:boolean); var i:integer; begin i:=1; r:=True; while (i<=n) and r do begin r:=(p[i]>T); Inc(i) end end;
procedure Init(var p:V; m:integer); { инициализация и вывод массива } var i:integer; begin for i := 1 to m do begin p[i]:=Random(51)-25; Write(p[i]:4) end; Writeln end;
procedure Invert(var p:V; m:integer); { инвертирование элементов и вывод массива } var i:integer; begin Writeln('Текущие значения элементов массива'); for i := 1 to m do begin p[i]:=-p[i]; Write(p[i]:4) end; Writeln end;
var a,b:V; i,m1,m2,t:integer; res:boolean; begin Randomize; Write('Введите размеры массивов a и b: '); Read(m1,m2); Writeln('Введите пороговое значение T: '); Read(t); Writeln('Элементы массива A'); Init(a,m1); IsGreater(a,m1,t,res); if res then Invert(a,m1) else Writeln('Условие не выполнено'); Writeln('Элементы массива B'); Init(b,m2); IsGreater(b,m2,t,res); if res then Invert(b,m2) else Writeln('Условие не выполнено') end.
Тестовое решение: Введите размеры массивов a и b: 15 9 Введите пороговое значение T: -24 Элементы массива A 23 -9 -23 -25 -25 -4 -16 -2 -3 6 -8 -19 19 21 12 Условие не выполнено Элементы массива B -6 -9 -3 -23 14 4 -11 24 11 Текущие значения элементов массива 6 9 3 23 -14 -4 11 -24 -11
Приведенная программа принимает целые числа и выводит два значения: a - количество цифр в числе и b - произведение цифр, составляющих число. При вводе нуля программа завершает работу. Ввод отрицательных чисел игнорируется. 1) При исполнении этой программы на экран было сначала выведено число 2, затем число 15. НАИМЕНЬШЕЕ значение переменной x, для которого это возможно, равно С) 35 Здесь количество цифр равно двум, а их произведение равно 15. Число 15 представимо в виде произведения двух однозначных чисел только в виде 3х5 или 5х3. Следовательно, наименьшим числом могло быть только 35. 2) При исполнении этой программы на экран было сначала выведено число 2, затем число 15. НАИБОЛЬШЕЕ значение переменной x, для которого это возможно, равно B) 53 Решение аналогично предыдущему, но выбирается наибольшее число, т.е. 53. 3) НАИМЕНЬШЕЕ значение переменной b, которое может быть выведено на экран этой программой, равно Е) 0 Минимальное значение произведения n однозначных чисел будет равно нулю, если среди этих чисел встретить хотя бы один ноль. 4) При исполнении этой программы на экран было сначала выведено число 2. НАИБОЛЬШЕЕ значение переменной b, которое может быть выведено на экран, равно А) 81 Максимальное произведение двух однозначных чисел равно 9х9=81. 5) НАИМЕНЬШЕЕ значение переменной a, которое может быть выведено на экран этой программой, равно D) 1 Понятно, что чисел с количеством знаков, меньшим единицы, быть не может.
n=100;
type
V=array[1..n] of integer;
procedure IsGreater(var p:V; m,T:integer; var r:boolean);
var
i:integer;
begin
i:=1; r:=True;
while (i<=n) and r do
begin r:=(p[i]>T); Inc(i) end
end;
procedure Init(var p:V; m:integer);
{ инициализация и вывод массива }
var
i:integer;
begin
for i := 1 to m do
begin p[i]:=Random(51)-25; Write(p[i]:4) end;
Writeln
end;
procedure Invert(var p:V; m:integer);
{ инвертирование элементов и вывод массива }
var
i:integer;
begin
Writeln('Текущие значения элементов массива');
for i := 1 to m do
begin p[i]:=-p[i]; Write(p[i]:4) end;
Writeln
end;
var
a,b:V;
i,m1,m2,t:integer;
res:boolean;
begin
Randomize;
Write('Введите размеры массивов a и b: '); Read(m1,m2);
Writeln('Введите пороговое значение T: '); Read(t);
Writeln('Элементы массива A');
Init(a,m1);
IsGreater(a,m1,t,res);
if res then Invert(a,m1)
else Writeln('Условие не выполнено');
Writeln('Элементы массива B');
Init(b,m2);
IsGreater(b,m2,t,res);
if res then Invert(b,m2)
else Writeln('Условие не выполнено')
end.
Тестовое решение:
Введите размеры массивов a и b: 15 9
Введите пороговое значение T:
-24
Элементы массива A
23 -9 -23 -25 -25 -4 -16 -2 -3 6 -8 -19 19 21 12
Условие не выполнено
Элементы массива B
-6 -9 -3 -23 14 4 -11 24 11
Текущие значения элементов массива
6 9 3 23 -14 -4 11 -24 -11
1) При исполнении этой программы на экран было сначала выведено число 2, затем число 15. НАИМЕНЬШЕЕ значение переменной x, для которого это возможно, равно С) 35
Здесь количество цифр равно двум, а их произведение равно 15. Число 15 представимо в виде произведения двух однозначных чисел только в виде 3х5 или 5х3. Следовательно, наименьшим числом могло быть только 35.
2) При исполнении этой программы на экран было сначала выведено число 2, затем число 15. НАИБОЛЬШЕЕ значение переменной x, для которого это возможно, равно B) 53
Решение аналогично предыдущему, но выбирается наибольшее число, т.е. 53.
3) НАИМЕНЬШЕЕ значение переменной b, которое может быть выведено на экран этой программой, равно Е) 0
Минимальное значение произведения n однозначных чисел будет равно нулю, если среди этих чисел встретить хотя бы один ноль.
4) При исполнении этой программы на экран было сначала выведено число 2. НАИБОЛЬШЕЕ значение переменной b, которое может быть выведено на экран, равно А) 81
Максимальное произведение двух однозначных чисел равно 9х9=81.
5) НАИМЕНЬШЕЕ значение переменной a, которое может быть выведено на экран этой программой, равно D) 1
Понятно, что чисел с количеством знаков, меньшим единицы, быть не может.