Unicornssss
16.10.2021 20:08

Надо добавить если не один студент не соответствует условии выводить таких нет Uses crt;

Type anketa=record

FIO: string;

POL: string;

Dat_r: string[8];

Height: integer;

B1, B2, B3, B4: 2..5;

stipendia: integer;

adress: string[15];

end;

var

N: integer;

student: array [1..50] of anketa;

Procedure set_stud (N: integer);

var i: integer;

begin

for i:=1 to N do

with student[i] do

begin

writeln ('сведения о ',i,' студенте ');

write ('введите ФИО ');

readln(FIO);

write('введите пол ');

readln(POL);

write ('введите дату рождения ');

readln(Dat_r);

write ('введите рост ');

readln(height);

write ('введите оценки ');

read(B1, B2, B3, B4);

write ('введите стипендию ');

readln(stipendia);

write ('введите место жительства ');

readln(adress);

end;

end;

Procedure Choose (N:integer);

var i: integer;

begin

writeln();

for i:=1 to N do begin

with student[i] do if (POL='Ж') or (pol='ж') and ((B1=3) or (B2=3) or (B3=3) or (B4=3)) then Writeln(FIO)

end;

end;

begin

write ('введите число студентов в группе ');

readln(N);

set_stud(N);

writeln();

writeln('студенты заданного пола получившие хотя бы одну 3 ');

Choose(N);

End.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
partybally
27.09.2021 05:20

1. Max - это системная функция/ Не стоит называть таким именем свою.

2. Последнее условие в процедуре не совсем понятно. И для нахождения максимального значения оптимальнее это делать в одном цикле. В PascalABC так вообще можно написать     m:=a.max; и ВСЁ.  Но если хотите как на Pascal -  Я исправил.

3. Функция ищет максимальное значение в массиве.

Pascal

var

maxa:integer;

 procedure Getmax(c:integer; var m:integer);

 var

   i:integer;

   a: array [1..100] of integer;

 begin

for i:=1 to c do begin

     a[i]:= random (20);

     write(a[i],' ');

     if m<a[i] then

       m:=a[i];

   end;  

   writeln;

 end;

begin  

 Getmax(100,maxa);

 writeln('Max=', maxa);

end.

0,0(0 оценок)
Ответ:
wEnD11
15.03.2021 18:40
// PascalABC.NET 3.0, сборка 1088
const
  nn=30;
  mm=30;
var
  d:array[1..nn,1..mm] of integer;
  m,n,i,j,s,k:integer;
begin
  Writeln('Введите число строк и столбцов массива: '); Read(n,m);
  Randomize;
  Writeln('*** Исходный массив ***');
  s:=0; k:=0;
  for i:=1 to n do begin
    for j:=1 to m do begin
      d[i,j]:=Random(101)-50;
      Write(d[i,j]:4);
      if (d[i,j]>0) and (d[i,j] mod 3 = 0) then begin
        s:=s+d[i,j]; Inc(k)
        end
      end;
    Writeln
  end;
  Writeln('Искомое среднее равно ',s/n:0:5)
end.

Тестовое решение:
Введите число строк и столбцов массива:
10 12
*** Исходный массив ***
  23 -50  24 -15 -43  49 -50 -23  37 -42  36 -40
  13 -37 -47 -47 -17  18  27  39 -30 -13  44 -12
 -20  45   9  44  -6 -17  49  27   3 -19 -11  39
  37 -39  37   8   8 -16 -48 -28 -19  45   2 -30
   6 -19  17  17 -11  -7 -31 -15 -44 -15 -46 -38
 -11 -43  33   3 -40 -42   8 -18  24 -36 -34 -29
  32 -31 -20  37 -15  21 -43 -14  -8 -11 -12 -37
  16 -19 -12 -41 -38 -46  32   1 -43  25 -31   1
   1  -1 -38 -28 -13 -30  -4  -9 -36  -4  36 -31
 -37 -17 -50 -15 -22  18  20 -50  20  20  38  29
Искомое среднее равно 45.30000
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота