Задача№ 2 Жители планеты Мури используют алфавит из 512 знаков, а жители планеты Клок — из 8 знаков. Для жителей какой планеты сообщение из 22 знаков несет больше информации и НА сколько? *
Процедуры, не связанные с объектами и событиями, называются процедурами пользователя или подпрограммами. Пользовательские процедуры можно использовать неоднократно. Если текст процедуры пользователя был записан в разделе General - в окне программного кода формы, то она будет доступна только для данной формы, но не доступна для других форм этого же приложения.
Чтобы процедура пользователя была доступна на всех формах приложения, ее текст следует записать в специальном окне
Module - модуль приложения. Программный код такой процедуры будет храниться в файлах приложения с расширением *.bas.
// PascalABC.NET 3.1, сборка 1200 от 13.03.2016 const n=5; type Matrix=array[1..n,1..n] of integer;
procedure DummySchool(var a:Matrix); begin Writeln('Ввод элементов матрицы'); for var i:=1 to n do begin Write(n,' элементов строки ',i,': '); for var j:=1 to n do Read(a[i,j]); end; Writeln('Сформирована матрица ',n,'x',n); for var i:=1 to n do begin for var j:=1 to n do Write(a[i,j]:5); Writeln end end;
begin var B:Matrix; DummySchool(B); var sn:=0; var sp:=0; for var i:=1 to n do for var j:=1 to n do if B[i,j]<0 then sn+=B[i,j] else if B[i,j]>0 then sp+=B[i,j]; Writeln('Сумма отрицательных ',sn); Writeln('Сумма положительных ',sp) end.
Процедуры, не связанные с объектами и событиями, называются процедурами пользователя или подпрограммами. Пользовательские процедуры можно использовать неоднократно. Если текст процедуры пользователя был записан в разделе General - в окне программного кода формы, то она будет доступна только для данной формы, но не доступна для других форм этого же приложения.
Чтобы процедура пользователя была доступна на всех формах приложения, ее текст следует записать в специальном окне
Module - модуль приложения. Программный код такой процедуры будет храниться в файлах приложения с расширением *.bas.
const
n=5;
type
Matrix=array[1..n,1..n] of integer;
procedure DummySchool(var a:Matrix);
begin
Writeln('Ввод элементов матрицы');
for var i:=1 to n do begin
Write(n,' элементов строки ',i,': ');
for var j:=1 to n do Read(a[i,j]);
end;
Writeln('Сформирована матрица ',n,'x',n);
for var i:=1 to n do begin
for var j:=1 to n do Write(a[i,j]:5);
Writeln
end
end;
begin
var B:Matrix;
DummySchool(B);
var sn:=0;
var sp:=0;
for var i:=1 to n do
for var j:=1 to n do
if B[i,j]<0 then sn+=B[i,j]
else
if B[i,j]>0 then sp+=B[i,j];
Writeln('Сумма отрицательных ',sn);
Writeln('Сумма положительных ',sp)
end.
Тестовое решение:
Ввод элементов матрицы
5 элементов строки 1: 6 23 -5 13 9
5 элементов строки 2: 42 0 -38 16 37
5 элементов строки 3: -5 -18 3 11 8
5 элементов строки 4: 9 13 -11 0 3
5 элементов строки 5: 19 -17 0 15 5
Сформирована матрица 5x5
6 23 -5 13 9
42 0 -38 16 37
-5 -18 3 11 8
9 13 -11 0 3
19 -17 0 15 5
Сумма отрицательных -94
Сумма положительных 232