Задача №1 var a:array[1..4, 1..5] of integer; i,j,k:integer; begin writeln('Заполните матрицу'); for i:=1 to 4 do for j:=1 to 5 do begin read(a[i,j]); if (a[i,j] mod 3=0) and (a[i,j]>20) then k:=k+a[i,j]; end; writeln('Сумма элементов кратных 3-м и > 20 = ',k); end.
Задача №2 var a:array[1..5, 1..5] of integer; i,j,k:integer; begin writeln('Заполните матрицу'); for i:=1 to 5 do for j:=1 to 5 do begin read(a[i,j]); if i=j then k:=k+a[i,j]; end; writeln('Сумма элементов главной диагонали = ',k); end.
. в нужно вывести все составные числа из промежутка [2; n]. код программы:
program lab3;
var i,n,j,s,l: integer;
m: real;
begin
readln (n);
for i: =2 to n do
begin
s: =trunc (sqrt (i));
for l: =2 to s do
begin
m: = i mod l;
if m=0 then
write (' ',i);
end;
end;
end.
но проблема - как только s становится больше 2, составные числа начинают несколько раз повторятся, т.к., например 12 делится и на 2 и на 3. вопрос: как мне сделать выход из цикла после первого успешного деления?
var a:array[1..4, 1..5] of integer;
i,j,k:integer;
begin
writeln('Заполните матрицу');
for i:=1 to 4 do
for j:=1 to 5 do begin
read(a[i,j]);
if (a[i,j] mod 3=0) and (a[i,j]>20) then k:=k+a[i,j];
end;
writeln('Сумма элементов кратных 3-м и > 20 = ',k);
end.
Задача №2
var a:array[1..5, 1..5] of integer;
i,j,k:integer;
begin
writeln('Заполните матрицу');
for i:=1 to 5 do
for j:=1 to 5 do begin
read(a[i,j]);
if i=j then k:=k+a[i,j];
end;
writeln('Сумма элементов главной диагонали = ',k);
end.
ответ:
. в нужно вывести все составные числа из промежутка [2; n]. код программы:
program lab3;
var i,n,j,s,l: integer;
m: real;
begin
readln (n);
for i: =2 to n do
begin
s: =trunc (sqrt (i));
for l: =2 to s do
begin
m: = i mod l;
if m=0 then
write (' ',i);
end;
end;
end.
но проблема - как только s становится больше 2, составные числа начинают несколько раз повторятся, т.к., например 12 делится и на 2 и на 3. вопрос: как мне сделать выход из цикла после первого успешного деления?
var
i, n, j, s, l: integer;
m: real;
begin
readln(n);
for i : = 2 to n do
begin
s : = trunc(sqrt(i));
for l : = 2 to s do
begin
m : = i mod l;
if m = 0 then
begin
write(' ', i);
break;