1. задано некоторое натуральное число n. составить алгоритм s=1+2+3+…+n 2. подсчитать количество отрицательных элементов в каждой строке матрицы размером мхn.

winterwhite123 winterwhite123    2   02.09.2019 23:20    1

Ответы
Мадина1111111112 Мадина1111111112  06.10.2020 13:26
// PascalABC.NET 3.2, сборка 1478 от 10.06.2017
// Внимание! Если программа не работает, обновите версию!

№1

begin
  var n:=ReadInteger('n=');
  Writeln('S=',n*(n+1) div 2)
end.

Пример
n= 15373
S=118172251

№2

begin
  var m:=ReadInteger('Количество строк в матрице:');
  var n:=ReadInteger('Количество столбцов в матрице:');
  Writeln('*** Исходная матрица [',m,',',n,'] ***');
  var a:=MatrRandom(m,n,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  Writeln('Количество отрицательных элементов построчно:');
  a.Rows.Select(r->r.Where(x->x<0).Count).Println
end.

Пример
Количество строк в матрице: 5
Количество столбцов в матрице: 8
*** Исходная матрица [5,8] ***
  88  43  64  50 -27  -9  48  55
   1  40 -39 -99 -45 -54  17 -77
 -33  99 -38 -19 -93  18 -19 -24
  17   4 -36  90  98  69  68  35
 -35  18  85  54 -74 -69  14 -62

Количество отрицательных элементов построчно:
2 5 6 1 4
ПОКАЗАТЬ ОТВЕТЫ
Pacan4ikForever Pacan4ikForever  06.10.2020 13:26
1)

Var
   S:real;
   N:longint;
Begin
Write('n = ');
Read(n);
S:=0;
For n:= 1 to n do
    S:=S+n;
WriteLn('S = ',S);
End.

2)

Вариант первый:

Var
   A:array[1..10000,1..10000] of shortint;
   M,N,j,k:word;
Begin
Randomize;
Write('M = ');ReadLn(M);
Write('N = ');ReadLn(N);
WriteLn('Исходная матрица:');
For M:= 1 to M do
    Begin
    k:=0;
    For j:= 1 to N-1 do
        Begin
        A[M,j]:=random(21)-10;
        Write(A[M,j]:3,' ');
        if A[M,j] < 0 then k:=k+1
        End;
    A[M,j]:=random(21)-10;
    Write(A[M,j]:3);
    if A[M,j] < 0 then k:=k+1;
    WriteLn(', k = ',k)
    End;
End.

Вариант второй:

uses Crt;
///На всех версиях, кроме PascalABC.NET эту процедуру следует удалить
procedure Window(x, y, w, h: integer);
begin
  System.Console.WindowLeft:=x;
  System.Console.WindowTop:=y;
  System.Console.WindowWidth:=w;
  System.Console.WindowHeight:=h;
end;
Var
   A:array[1..13,1..13] of integer;
   N,M,i,j,t,o,k:integer;
Begin
Randomize;
TextBackGround(15);
TextColor(0);
Repeat
N:=random(13)+1;
M:=random(13)+1;
t:=3000 div (N*M);
if frac(Ln(N*M)/Ln(10)) = 0 then o:=1+Trunc(Ln(N*M)/Ln(10))
else o:=2+Trunc(Ln(N*M)/Ln(10));
Window(0,0,90,25);
ClrScr;
For i:= 1 to N do
    Begin
    For j:= 1 to M do
        Begin
        A[i,j]:=random(N*M*2+1)-(N*M);
        Delay(t);
        Write(A[i,j]:o,' ')
        End;
    WriteLn;
    End;
TextBackGround(10);
For i:= 1 to N do
    Begin
    k:=0;
    For j:= 1 to M do
        Begin
        if A[i,j] < 0 then
           Begin
           TextBackGround(14);
           GotoXY(j*(o+1)-o,i);
           Write(A[i,j]:o,' ');
           TextBackGround(10);
           k:=k+1
           End
        else
           Begin
           GotoXY(j*(o+1)-o,i);
           Write(A[i,j]:o,' ');
           End;
        Delay(t);
        End;
        TextBackGround(12);
        GotoXY(j*(o+1),i);
        Write(', k = ',k);
        TextBackGround(10);
    End;
TextBackGround(15);
GotoXY(1,N+1);
Write('1 - повторить, 0 - Выйти.');
Until ReadKey = '0'
End.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика