Предмет: Информатика, автор: ekaterinagolys

1. Задано некоторое натуральное число N. Составить алгоритм S=1+2+3+…+N
2. Подсчитать количество отрицательных элементов в каждой строке матрицы размером МхN.

Ответы

Автор ответа: Аноним
0
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.
Автор ответа: ekaterinagolys
0
огромное спасибо
Автор ответа: Аноним
0
Эту программу можно написать в 7, в 21, и в 63 строки=D
Автор ответа: Аноним
0
Можно и длиннее. Если заняться больше нечем.
Автор ответа: Аноним
0
// 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

Автор ответа: Аноним
0
Фуу, как коротко и просто...=))
Автор ответа: Аноним
0
"Учись, студент!" (с)
Автор ответа: Аноним
0
Мне больше нравится по-другому писать
Автор ответа: Аноним
0
У меня это прошло. Лет так 25 назад.
Автор ответа: Аноним
0
В родстве со всем, что есть, уверясь
И знаясь с будущим в быту,
Нельзя не впасть к концу, как в ересь,
В неслыханную простоту.

Но мы пощажены не будем,
Когда ее не утаим.
Она всего нужнее людям,
Но сложное понятней им

(Б.Пастернак)
Похожие вопросы
Предмет: Алгебра, автор: matvienkoalbina3