Паскаль. 12.Дан массив А(3*4). Найти сумму первых отрицательных элементов в каждом...

0 голосов
23 просмотров

Паскаль.

12.Дан массив А(3*4). Найти сумму первых отрицательных элементов в каждом столбце.

13.Даны два массива А(3*3) и В(3*3). Вывести на экран тот из них, у которого меньше сумма элементов главной диагонали.

17.Дан массив А(3*4). Заменить все отрицательные элементы на противоположные.


Информатика (2.6k баллов) | 23 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
{12. Дан массив А(3*4). Найти сумму первых отрицательных элементов в каждом столбце.}

uses crt;
const N=3;
         M=4;
var a: array [1..N,1..M] of real;
     x,y:integer;
     min,sum:real;
begin
     sum:=0;
     for x:=1 to N do begin
         for y:=1 to M do begin
             a[x,y]:=random(10)-5;
             write(a[x,y]:3:0);
         end;
     writeln;
     end;
     writeln;
     for y:=1 to M do begin
         min:=0;
         for x:=N downto 1 do
             if a[x,y]<0 then min:=a[x,y];<br>             sum:=sum+min;
     end;
     writeln;
     writeln('Сумма первых отрицательных элементов в каждом столбце: ',sum);
end.

---
{
13. Даны два массива А(3*3) и В(3*3). Вывести на экран тот из них, у которого меньше сумма элементов главной диагонали.}

uses crt;
const N=3;
var a,b: array [1..N,1..N] of integer;
     x,y,sum1,sum2: integer;
begin
     sum1:=0; sum2:=0;
     for x:=1 to N do begin
         for y:=1 to N do begin
             a[x,y]:=random(10);
             if x=y then sum1:=sum1+a[x,y];
             write(a[x,y]:3); 
        end;
     writeln;
     end;
     writeln;
     for x:=1 to N do begin
         for y:=1 to N do begin
             b[x,y]:=random(10);
             if x=y then sum2:=sum2+b[x,y];
             write(b[x,y]:3);
         end;
     writeln;
     end;
     if sum1<>sum2 then begin
     writeln('Сумма элементов главной диагонали меньше в массиве: ');
     for x:=1 to N do begin
         for y:=1 to N do
             if sum1>sum2 then write(b[x,y]:3)
             else write(a[x,y]:3);
         writeln;
     end;
     end;
     if sum1=sum2 then writeln('Сумма элементов главной диагонали одинакова');
end.

---
{
17.Дан массив А(3*4). Заменить все отрицательные элементы на противоположные.}

uses crt;
const N=3;
         M=4;
var a: array [1..N,1..M] of real;
     x,y:integer;
begin
     for x:=1 to N do begin
         for y:=1 to N do begin
             a[x,y]:=random(10)-5;
             write(a[x,y]:3:0);
             if a[x,y]<0 then a[x,y]:=-a[x,y];<br>         end;
     writeln;
     end;
     writeln;
     for x:=1 to N do begin
         for y:=1 to N do
             write(a[x,y]:3:0);
     writeln;
     end;
end.
(7.2k баллов)
0

я когда-нибудь удалюсь с этого сайта только потому, что в программах приходится заново расставлять отступы.

0

Полностью с Вами согласен :)

0

Sky09, да да да) Я уже заливаю на pastebin. И синтаксис подсвечивает, и не удаляют пока.

0 голосов

Program asd;
USES crt;
Const n=3;
Const m=3;
Var A,B:array [1..n, 1..m] of integer; 
k,s,i,j,q:integer;
BEGIN
Clrscr;
For i:=1 to n do 
begin 
for j:=1 to m do 
 begin   
A[i,j]:=random(9);   
write(' ',A[i,j]:2); 
  end;   
  Writeln; 
   end; 
For i:=1 to n do 
 begin   
for j:=1 to m do 
  begin   
 If i=j then S:=S+A[i,i]; 
  end;   
end;   
Writeln('Matriza A: ',s); 
For i:=1 to n do 
begin   
for j:=1 to m do   
 begin   
 B[i,j]:=random(9); 
  Write(' ',B[i,j]:2); 
  end;

(1.1k баллов)