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

По примеру паскаль.Нужно сделать B и D(нудно написать программу.


По примеру паскаль.Нужно сделать B и D(нудно написать программу.
По примеру паскаль.Нужно сделать B и D(нудно написать программу.

Показать ответ
Ответ:
valerapolnikov2
valerapolnikov2
13.11.2021 03:21
Type
  M = array[,] of integer; // двумерный динамический
  V = array[1..2] of integer; // одномерный статический

function nPos(pm: M): integer;
var
  i, j, p: integer;
begin
  p := 0;
  for i := 0 to Length(pm, 0) - 1 do
    for j := 0 to Length(pm, 1) - 1 do
      if pm[i, j] > 0 then p := p + 1;
  nPos := p
end;

function nNeg(pm: M): integer;
var
  i, j, p: integer;
begin
  p := 0;
  for i := 0 to Length(pm, 0) - 1 do
    for j := 0 to Length(pm, 1) - 1 do
      if pm[i, j] < 0 then p := p + 1;
  nNeg := p
end;

procedure GetV(A: M; var C: V);
begin
  C[1] := nPos(A);
  C[2] := nNeg(A)
end;

procedure InitM(var A: M);
var
  i, j: integer;
begin
  for i := 0 to Length(A, 0) - 1 do
    for j := 0 to Length(A, 1) - 1 do
      A[i, j] := random(100) - 50
end;

procedure PrintM(A: M);
var
  i, j: integer;
begin
  for i := 0 to Length(A, 0) - 1 do
  begin
    for j := 0 to Length(A, 1) - 1 do
      write(A[i, j]:4);
    writeln
  end
end;

var
  A1, A2, A3: M;
  B1, B2, B3: V;
  n1, m1, n2, m2, n3, m3: integer;

begin
  Randomize;
  writeln('Введите число строк и столбцов массива');
  readln(n1, m1);
  SetLength(A1, n1, m1);
  InitM(A1);
  Writeln('массив А1');
  PrintM(A1);
  GetV(A1, B1);
  writeln('Количество положительных ', B1[1], ', количество отрицательных ', B1[2]);
  writeln('Введите число строк и столбцов массива');
  readln(n2, m2);
  SetLength(A2, n2, m2);
  InitM(A2);
  Writeln('массив А2');
  PrintM(A2);
  GetV(A2, B2);
  writeln('Количество положительных ', B2[1], ', количество отрицательных ', B2[2]);
  writeln('Введите число строк и столбцов массива');
  readln(n3, m3);
  SetLength(A3, n3, m3);
  InitM(A3);
  Writeln('массив А3');
  PrintM(A3);
  GetV(A3, B3);
  writeln('Количество положительных ', B3[1], ', количество отрицательных ', B3[2]);
end.

Тестовый прогон:

Введите число строк и столбцов массива
3 3
массив А1
   6  11 -46
  24 -41  36
  44   9  18
Количество положительных 7, количество отрицательных 2
Введите число строк и столбцов массива
2 4
массив А2
  37  -4  -2  43
 -18  36   0  44
Количество положительных 4, количество отрицательных 3
Введите число строк и столбцов массива
5 2
массив А3
   5 -15
  49  -1
 -40  35
 -33  -9
 -22 -31
Количество положительных 3, количество отрицательных 7
0,0(0 оценок)
Ответ:
АннаФилип270406
АннаФилип270406
09.04.2020 19:08
Const
  n=8;
var
  aNam, aFam, aDat: array[1..n] of string;
  i: integer;

begin
  aNam[1]:='Олег'; aFam[1]:='Бубенков'; aDat[1]:='1993';
  aNam[2]:='Игорь'; aFam[2]:='Бросов'; aDat[2]:='1991';
  aNam[3]:='Тимур'; aFam[3]:='Наружный'; aDat[3]:='1961';
  aNam[4]:='Анастасия'; aFam[4]:='Боброва'; aDat[4]:='1985';
  aNam[5]:='Михаил'; aFam[5]:='Тапаров'; aDat[5]:='1957';
  aNam[6]:='Евгений'; aFam[6]:='Костарева'; aDat[6]:='1992';
  aNam[7]:='Мария'; aFam[7]:='Никитин'; aDat[7]:='1977';
  aNam[8]:='Ксения'; aFam[8]:='Бабенкова'; aDat[8]:='1978';
  writeln('Лица, чьи фамилии начинаются на букву "Б"');
  for i := 1 to n do
    if aFam[i][1] = 'Б' then
      writeln(aNam[i],' ',aFam[i], ' (', aDat[i], ')')
end.

тестовый прогон:

Лица, чьи фамилии начинаются на букву "Б"
Олег Бубенков (1993)
Игорь Бросов (1991)
Анастасия Боброва (1985)
Ксения Бабенкова (1978)

Возможна также более "современная" запись программы

const
  n = 8;

type
  tP = record
    Nam: string;
    Fam: string;
    Dat: string
  end;

var
  M: array[1..n] of tP;
  i: integer;

begin
  with M[1] do begin Nam := 'Олег'; Fam := 'Бубенков'; Dat := '1993' end;
  with M[2] do begin Nam := 'Игорь'; Fam := 'Бросов'; Dat := '1991' end;
  with M[3] do begin Nam := 'Тимур'; Fam := 'Наружный'; Dat := '1961' end;
  with M[4] do begin Nam := 'Анастасия'; Fam := 'Боброва'; Dat := '1985' end;
  with M[5] do begin Nam := 'Михаил'; Fam := 'Тапаров'; Dat := '1957' end;
  with M[6] do begin Nam := 'Евгений'; Fam := 'Костарева'; Dat := '1992' end;
  with M[7] do begin Nam := 'Мария'; Fam := 'Никитин'; Dat := '1977' end;
  with M[8] do begin Nam := 'Ксения'; Fam := 'Бабенкова'; Dat := '1978' end;
  writeln('Лица, чьи фамилии начинаются на букву "Б"');
  for i := 1 to n do
    With M[i] do begin
      if Fam[1] = 'Б' then
        writeln(Nam, ' ', Fam, ' (', Dat, ')')
    end
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота