Matroskinnn
24.01.2020 06:32

решить две задачи, или одну. ​


решить две задачи, или одну. ​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Aemond
12.03.2023 13:26
Borland Pascal 7.01
uses Crt;
const
  nn=20;
  mm=20;
var
  i,j,k,n,m:integer;
  c1,c2:string;
  c:array[1..mm,1..nn] of integer;
  a:array[1..mm*nn] of string[9];
begin
  ClrScr;
  { Инициализация }
  Randomize;
  Write('Введите количество строк и столбцов массива: '); Read(m,n);
  Writeln('*** Исходный массив ***');
  for i:=1 to m do begin
    for j:=1 to n do begin
      c[i,j]:=Random(51)-25;
      Write(c[i,j]:4)
    end;
    Writeln
  end;
  { Формирование одномерного массива }
  k:=0;
  for i:=1 to m do begin
    for j:=1 to n do
      if c[i,j]>0 then begin
    Inc(k);
    Str(i,c1); Str(j,c2);
    a[k]:='['+c1+','+c2+']'
      end;
    a[k]:=a[k]+#13+#10
  end;
  { Вывод результатов }
  Writeln('*** Компоненты массива с положительными членами ***');
  for i:=1 to k do
    if a[i][Length(a[i])]=#10 then Write(a[i])
    else Write(a[i],' ');
  Writeln;
  Readkey
end.

Тестовое решение:
Введите количество строк и столбцов массива: 8 10
*** Исходный массив ***
  25 -22  25   5 -11  -1 -10  -6 -19  -9
  24 -19  20 -10 -21  10 -19 -14  -6  14
 -25  23 -16  17 -22 -14 -20 -16  -8 -17
 -15  25 -24   6  -7  15 -11  14 -20  25
   8  12 -17 -21  -3  23  -5   9  25  14
  23   6   1 -10   5   9 -19   5 -20  23
 -24  13   1  -8 -11 -12  15 -14  -8 -16
  13 -18  -2  -8   1  16  -2 -23 -11 -12
*** Компоненты массива с положительными членами ***
[1,1] [1,3] [1,4]
[2,1] [2,3] [2,6] [2,10]
[3,2] [3,4]
[4,2] [4,4] [4,6] [4,8] [4,10]
[5,1] [5,2] [5,6] [5,8] [5,9] [5,10]
[6,1] [6,2] [6,3] [6,5] [6,6] [6,8] [6,10]
[7,2] [7,3] [7,7]
[8,1] [8,5] [8,6]
0,0(0 оценок)
Ответ:
Vlad8081
23.11.2021 11:41
1. Структура для хранения и обработки данных
Объект - Учащийся. Каждый учащийся характеризуется фамилией с инициалами и имеет набор из четырех отметок по результатам сдачи экзаменов - всего 5 параметров. Для простоты считаем, что фамилии с инициалами уникальны.
Объекты однородны, т.е. отличаются друг от друга только значениями параметров. Это позволяет объединить их в группу, осуществляя доступ к каждому объекту либо по его порядковому номеру в группе, либо по фамилии.
Поставленная задача не требует поиска конкретного учащегося по фамилии, поэтому достаточно предоставлять доступ к каждому учащемуся по порядковому номеру.
Объект "Учащийся" может быть представлен в виде записи (структуры) для случая реализации программы на алгоритмическом языке, либо в виде таблицы базы данных для случая реализации в среде СУБД. Не исключена также примитивная реализация в виде двух массивов, в одном из которых указываются фамилии с инициалами, а в другом отметки; связь учащегося с его оценками в этом случае поддерживается за счет использования одинакового номера строк в массиве.
Нам также понадобится где-то хранить средний учащегося, для того чтобы сделать необходимую по условию задачи выборку.

Запишем пример реализации для языка Паскаль.
а) Три массива.
var
   FIO: array[1..40] of string; { для фамилий и инициалов }
   ResBall: array[1..40,1..4] of byte; { для оценок }
   SrBall: array[1..40] of real; { для среднего  }
В этом случае объект "Учащийся" отображается связкой FIO[i], ResBall[i,j], SrBall[i] где i- номер учащегося, j - номер отметки в наборе отметок.
б) Запись
type
    tUch=record
        FIO: string;
        ResBall:array[1..4] of byte;
        SrBall:real
    end;
var
    Uch:array[1..40] of tUch;
В этом случае доступ к объекту "Учащийся" реализуется в виде Uch[i].FIO, Uch[i].ResBall[j], Uch[i].SrBall
в) Таблица базы данных с именем Uch
FIO символьный(20)
Ball1 целый
Ball2 целый
Ball3 целый
Ball4 целый
SrBall числовой
В этом случае доступ к объекту "Учащийся" реализуется в виде Uch.FIO, Uch.Ball1..Uch.Ball4, Uch.SrBall

2. Алгоритм обработки
Запрашиваем N - количество учащихся в группе, и организуем ввод данных по N учащимся. Попутно со вводом для каждого учащегося вычисляем сумму всех четырех его оценок, а также средний , равный найденной сумме, деленной на 4. Сумму отметок по всей группе накапливаем в некоторой переменной S, а средний записываем в структуру хранения.
После накопления в S суммы всех оценок находим Sg=S/N - средний по группе.
Организуем проход по всех группе и выводим фамилию и средний тех учащихся, у которых средний превышает Sg.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота