М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
wasgf
wasgf
26.02.2020 20:24 •  Информатика

Составить программу для вывода данных о n студентов и m оценок, после занесения данных удалить из списка студентов в которых ограничения и вывести на экран студентов pascalabc (динамическая память).

👇
Ответ:
arinaanisimova2
arinaanisimova2
26.02.2020
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

procedure View(fams:array of string; balls:array[,] of integer);
begin
  for var i:=0 to fams.Length-1 do begin
    Write(fams[i],': ');
    balls.Row(i).Println
    end
end;

begin
  var n:=ReadlnInteger('Количество студентов:');
  var m:=ReadlnInteger('Количество оценок у студента:');
  var afam:=new string[n];
  var aball:=new integer[n,m];
  for var i:=0 to n-1 do begin
    afam[i]:=ReadlnString('Студент '+(i+1)+':');
    Write('оценки студента: ');
    for var j:=0 to m-2 do Read(aball[i,j]);
    Readln(aball[i,m-1]);
    end;
  Writeln('*** Принятые сведения ***');
  View(afam,aball);
  var s:=aball.Rows.Select(x->x.All(y->y=5)).Numerate
      .Where(x->not x[1]).Select(x->x[0]-1).ToArray;
  var n1:=s.Count;
  if n1>0 then begin
    var t:=new string[n1];
    var t1:=new integer[n1,m];
    for var i:=0 to n1-1 do begin
      t[i]:=afam[s[i]];
      for var j:=0 to m-1 do t1[i,j]:=aball[s[i],j]
      end;
    afam:=Copy(t);
    aball:=copy(t1);
    Writeln('*** После удаления отличников ***');
    View(afam,aball);
    end
end.

Пример
Количество студентов: 5
Количество оценок у студента: 3
Студент 1: Иванов И.И.
оценки студента: 5 4 5
Студент 2: Петров П.П.
оценки студента: 5 5 5
Студент 3: Сидорова Т.С.
оценки студента: 5 5 5
Студент 4: Козлова К.К.
оценки студента: 4 4 3
Студент 5: Макаров М.М.
оценки студента: 4 5 4
*** Принятые сведения ***
Иванов И.И.: 5 4 5
Петров П.П.: 5 5 5
Сидорова Т.С.: 5 5 5
Козлова К.К.: 4 4 3
Макаров М.М.: 4 5 4
*** После удаления отличников ***
Иванов И.И.: 5 4 5
Козлова К.К.: 4 4 3
Макаров М.М.: 4 5 4
4,4(78 оценок)
Открыть все ответы
Ответ:
Uedo
Uedo
26.02.2020

Паша имеет выйгрушную стратегию и сможет выйграть за один ход, если s=27 тогда ему достаточно добавить один камень чтобы игра закончилась при 28 камнях в куче или если s=14,15,16,17,18,19,20,21,22(44/2 и 28/2 т.е от 14 до 22), тогда не обходимо удвоить количество камней в куче.

Объяснение:

Паша имеет выйгрушную стратегию и сможет выйграть за один ход, если s=27 тогда ему достаточно добавить один камень чтобы игра закончилась при 28 камнях в куче или если s=14,15,16,17,18,19,20,21,22(44/2 и 28/2 т.е от 14 до 22), тогда не обходимо удвоить количество камней в куче.

4,5(92 оценок)
Ответ:
maina342
maina342
26.02.2020
Const 
n=5;

Var
 ar:array[1..n] of integer;
 ar2:array[1..n] of integer;
 i,k:integer;

 function prost(a:integer):boolean;
 var i:integer;
 b:boolean;
  begin
  b:=true;
   for i:=2 to a div 2 do
    if a mod i=0 then
     begin;
      b:=false;
      break;
     end;
   if a=1 then b:=false;
  prost:=b;
 end;

  begin;
 randomize;
 k:=0;
  for i:=1 to n do
   begin;
    ar[i]:=random(101);
    write(ar[i]:4);
   end;
  writeln;
  for i:=1 to n do
  if prost(ar[i]) then
   begin;
    inc(k);
    ar2[k]:=ar[i];
    write(ar2[k]:4);
   end;
end.
4,6(58 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ