В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Rkkshv
Rkkshv
27.12.2021 18:28 •  Информатика

ИНФОРМАТИКА, МНОГО ! Задачи 1. Напишите функцию, которая находит максимальный элемент переданного ей динамического массива.

2. Напишите рекурсивную функцию, которая считает сумму значений переданного ей динамического массива.

номер два сделайте если можете, по желанию!

На языке Pascal ABC! (в пределах школьной программы 10-11 класса)
(С пояснениями)​

Показать ответ
Ответ:
TheBrayn
TheBrayn
21.01.2022 07:20
// 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 оценок)
Ответ:
romatopovsky
romatopovsky
21.01.2022 07:20
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.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота