хелп! использовать подпрограммы (ввода, вывода, обрабатывающей части). дан массив целых чисел в(m,n), n,m< =10. переставить столбцы с максимальным и минимальным значениями суммы квадратов их элементов. предмет (программирование) pascalabc
Const m=5; n=6; type arr=array[1..m,1..n] of integer; procedure p1(var a:arr); var i,j:integer; begin for i:=1 to m do for j:=1 to n do a[i,j]:=random(51); end; procedure p2(var a:arr); var i,j:integer; begin for i:=1 to m do begin for j:=1 to n do write(a[i,j]:4); writeln; end; end; procedure p3(var a:arr); var i,j,s,max,min,jmax,jmin,c:integer; begin max:=0; min:=m*50*50; for j:=1 to n do begin s:=0; for i:=1 to m do s:=s+a[i,j]*a[i,j]; if s>max then begin max:=s; jmax:=j; end; if s<min then begin min:=s; jmin:=j; end; end; writeln('jmax = ',jmax,' jmin = ',jmin); for i:=1 to m do begin c:=a[i,jmax]; a[i,jmax]:=a[i,jmin]; a[i,jmin]:=c; end; end;
var b:arr; begin Randomize; p1(b); writeln('Исходный массив:'); p2(b); p3(b); writeln('Полученный массив:'); p2(b); end.
Суждение: 1. Все сосны являются деревьями. 2.Ни один кит - не рыба. 3.Все караси являются рыбами. 4. Все розы - это цветы. 5. Все мухи - это птицы.
Умозаключения: 1. Ты задал вопрос, вопрос задают когда не знают. Умозаключение: ты не знаешь. 2. Все прямоугольники-параллелограммы. Квадрат - это прямоугольник. Умозаключение: квадрат - это параллелограмм. 3. Все люди смертны. Сократ - человек. Умозаключение: Сократ смертен. 4. Звезды взрываются. Солнце - звезда. Умозаключение: Солнце взорвется. 5. У треугольника все углы равны. Умозаключение: треугольник равноугольный
Проще всего складывать в столбик как обычные десятичные числа, но если в сумме число получится больше 8 (система восмиричная), то мы отнимаем 8, смотрим: меньше ли получившийся остаток 8, если нет, то снова отнимаем восемь и тогда записываем остаток, а в "ум" запишем число отнятых восьмерок
574+467=1263 (все числа в восьмиричной системе счисления)
так, складывая 4 и 7, получаем 11, что больше 8, поэтому отняв 8, получим цифру 3, которую и записываем как последнюю цифру числа (3 пишем, 1 в уме), далее складываем 6 и 7 и не забываем про 1, потому что в раз мы отняли всего одну восьмерку, получаем 14, но записываем только 6, а 1 в уме, затем 5, 4 и 1 - 2 пишем, 1 в уме, далее просто приписываем единицу, получаем 1263
P.S. несмотря на то, что кажется сложно, это немногим отличается от десятичной системы сложения в столбик
type arr=array[1..m,1..n] of integer;
procedure p1(var a:arr);
var i,j:integer;
begin
for i:=1 to m do
for j:=1 to n do a[i,j]:=random(51);
end;
procedure p2(var a:arr);
var i,j:integer;
begin
for i:=1 to m do
begin
for j:=1 to n do write(a[i,j]:4);
writeln;
end;
end;
procedure p3(var a:arr);
var i,j,s,max,min,jmax,jmin,c:integer;
begin
max:=0; min:=m*50*50;
for j:=1 to n do
begin
s:=0;
for i:=1 to m do s:=s+a[i,j]*a[i,j];
if s>max then begin max:=s; jmax:=j; end;
if s<min then begin min:=s; jmin:=j; end;
end;
writeln('jmax = ',jmax,' jmin = ',jmin);
for i:=1 to m do
begin
c:=a[i,jmax]; a[i,jmax]:=a[i,jmin]; a[i,jmin]:=c;
end;
end;
var
b:arr;
begin
Randomize;
p1(b);
writeln('Исходный массив:');
p2(b);
p3(b);
writeln('Полученный массив:');
p2(b);
end.
Пример:
Исходный массив:
34 47 38 31 18 19
12 0 43 30 2 33
20 49 43 16 45 14
31 32 29 30 50 26
44 32 30 50 1 23
jmax = 3 jmin = 6
Полученный массив:
34 47 19 31 18 38
12 0 33 30 2 43
20 49 14 16 45 43
31 32 26 30 50 29
44 32 23 50 1 30