Предмет: Информатика,
автор: rina5678
Найти сумму и количество элементов в каждом столбце матрицы, являющихся простыми числами.
Если можно, то с объяснениями, пожалуйста. Заранее благодарна!
Ответы
Автор ответа:
0
const
m=5; //число строк
n=10; //число столбцов
var
i,j:integer;
s,k:array[1..n]of integer; //s для суммы, k для количества простых чисел
a:array[1..m,1..n]of integer;
function prost(x:integer):boolean; //функция определения простого числа
var i:integer;
begin
result:=true;
for i:=2 to (x div 2) do
if (x mod i=0) and (i<>x) then result:=false;
end;
begin
//заполнение случайными числами и вывод массива
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(20)+1;
write(a[i,j]:5);
end;
writeln;
end;
//Просмотр по столбцам и подсчет s и k
for j:=1 to n do
begin
for i:=1 to m do
if prost(a[i,j]) then
begin
s[j]:=s[j]+a[i,j];
k[j]:=k[j]+1;
end;
end;
writeln('Количество простых чисел по столбцам:' );
for i:=1 to n do write(k[i]:5);
writeln;
writeln('Сумма простых чисел по столбцам:' );
for i:=1 to n do write(s[i]:5);
end.
m=5; //число строк
n=10; //число столбцов
var
i,j:integer;
s,k:array[1..n]of integer; //s для суммы, k для количества простых чисел
a:array[1..m,1..n]of integer;
function prost(x:integer):boolean; //функция определения простого числа
var i:integer;
begin
result:=true;
for i:=2 to (x div 2) do
if (x mod i=0) and (i<>x) then result:=false;
end;
begin
//заполнение случайными числами и вывод массива
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(20)+1;
write(a[i,j]:5);
end;
writeln;
end;
//Просмотр по столбцам и подсчет s и k
for j:=1 to n do
begin
for i:=1 to m do
if prost(a[i,j]) then
begin
s[j]:=s[j]+a[i,j];
k[j]:=k[j]+1;
end;
end;
writeln('Количество простых чисел по столбцам:' );
for i:=1 to n do write(k[i]:5);
writeln;
writeln('Сумма простых чисел по столбцам:' );
for i:=1 to n do write(s[i]:5);
end.
Приложения:

Автор ответа:
0
Я проверила программу, исправила свои ошибки и всё получилось. Огромное Вам спасибо!!!
Автор ответа:
0
Ну и замечательно! Пожалуйста
Автор ответа:
0
А как сделать без функции boolean?
Автор ответа:
0
Вообще без функции или просто булевский тип в ней не использовать?
Автор ответа:
0
Вообще без функций
Автор ответа:
0
var
a: array [1..250, 1..250] of integer; // матрица с числами.n, m, i, j: integer;
function prime(a: integer):boolean; //Проверка на простоту.vari: integer;f: boolean;begin for i := 2 to trunc(sqrt(a)) do if (a mod i = 0) then begin f := true; break; end;prime := f;end;beginreadln(n, m); // Ввод размера матрицы.for i := 1 to n dobeginfor j := 1 to m doread(a[i][j]);readln;end;for i := 1 to m do for j := 1 to n do if (not prime(a[j][i])) then begin inc(a[n + 1][i]); inc(a[n + 2][i], a[j][i]); end;for i := 1 to m do writeln(a[n + 1][i],' ',a[n + 2][i]); // Вывод суммы и кол - ваreadln;end.
Приложения:

Автор ответа:
0
Спасибооооо :-)
Автор ответа:
0
Не за что =)
Интересные вопросы
Предмет: История,
автор: ekskskskakakakkskwka
Предмет: Литература,
автор: elmar240205
Предмет: Другие предметы,
автор: aktolkynsakizada
Предмет: История,
автор: nikakurilenko
Предмет: Алгебра,
автор: Артур998