Другие языки программирования и технологии
помогите пожалуйста срочно надо
Составьте программу используя подпрограмм функцию. В двумерном массиве A[1..10, 1..10] случайных чисел вычислить количество положительных элементов главной диагонали.
program N86815362;
const
n = 10;
type
TArray = array [1 .. n, 1 .. n] of integer;
function Count(a: TArray; n: byte): byte;
const
Res: byte = 0;
var
i: byte;
begin
for i := 1 to n do
inc(Res, ord(a[i, i] > 0));
Count := Res
end;
var
a: TArray;
i, j: byte;
begin
randomize;
writeln('Дан массив: ');
for i := 1 to n do
begin
for j := 1 to n do
begin
a[i, j] := random(201) - 100;
write(a[i, j]:6)
end;
writeln
end;
writeln(#13#10'Кол-во положительных на главной диагонали: ', Count(a, n));
write(#13#10'Для завершения работы нажмите Enter...');
readln
end.
P.S. Подпрограмма Георгия из-за невнимательности при назначении идентификаторов является бесконечно рекурсивной с ошибкой (отсутствуют параметры вызова) .
Программа Ярослава неоптимальна. Ни к чему просматривать весь массив, что бы посчитать элементы на главной диагонали.
const
n = 10;
type
TArray = array [1 .. n, 1 .. n] of integer;
function Count(a: TArray; n: byte): byte;
const
Res: byte = 0;
var
i: byte;
begin
for i := 1 to n do
inc(Res, ord(a[i, i] > 0));
Count := Res
end;
var
a: TArray;
i, j: byte;
begin
randomize;
writeln('Дан массив: ');
for i := 1 to n do
begin
for j := 1 to n do
begin
a[i, j] := random(201) - 100;
write(a[i, j]:6)
end;
writeln
end;
writeln(#13#10'Кол-во положительных на главной диагонали: ', Count(a, n));
write(#13#10'Для завершения работы нажмите Enter...');
readln
end.
P.S. Подпрограмма Георгия из-за невнимательности при назначении идентификаторов является бесконечно рекурсивной с ошибкой (отсутствуют параметры вызова) .
Программа Ярослава неоптимальна. Ни к чему просматривать весь массив, что бы посчитать элементы на главной диагонали.
type mas=array[1..10,1..10] of integer;
var a:mas;
function k(a:mas; n:integer):integer;
begin
k:=0;
for i:=1 to n do
if a [ i,i ]> 0 then k:=k+1;
end;
и т. д
var a:mas;
function k(a:mas; n:integer):integer;
begin
k:=0;
for i:=1 to n do
if a [ i,i ]> 0 then k:=k+1;
end;
и т. д
Главная часть программы
for i:=1 to 10 do begin
for j:=1 to 10 do begin
if i=j then k:=k+1;
for i:=1 to 10 do begin
for j:=1 to 10 do begin
if i=j then k:=k+1;
Похожие вопросы
- Помогите пожалуйста срочно!
- Помогите пожалуйста СРОЧНО, проблема с переустановкой windows7
- Задали по украинскому языку написать целый лист А4 "просторічних слів" помогите пожалуйста срочно!!!!
- плиииииииз помогите пожалуйста, срочно. . Написать скрипт, выполняющий архивацию файлов и каталогов..
- Помогите пожалуйста! Срочно нужно! Весь интернет прошарила.
- Помогите, пожалуйста, срочно надо (С#).
- ПОМОГИТЕ ПОЖАЛУЙСТА СРОЧНО НАДО А ЯЗЫКЕ С++
- помогите маленькое соченение по информатике!!! роль информации в жизни общесва СРОЧНО!! ! пожалуйста срочно!!!
- СРОЧНО ПОМОГИТЕ, ПОЖАЛУЙСТА . Минимальную заработную плату как найти ?
- Помогите срочно. При включение ноутбука стоит черный экран и сверху на левом углу мигает белый тире. помогите пожалуйста