[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]

Пример 2.3. В баскетбольную команду могут быть приняты ученики, рост которых превышает 170 см. Составьте список кандидатов в команду из учеников класса.
 
Система тестов
 
Номер 
теста
Проверяемый 
случай
Число 
учеников
Фамилии
Рост
Результаты
1
Есть 
кандидаты
3
Кулов 
Чехин 
Уваров
171
165
178
Кулов 
Уваров
2
Нет 
кандидатов
2
Ершов 
Иванов
170
165
Нет 
кандидатов
 
Демонстрация
Школьный АЯ
алг Баскетбол (арг цел N, арг лит таб Фам[1:N], арг вещ
               таб Рост[1:N], рез лит таб Канд [1:N] )
нач цел i, k
  k:=0
  нц для i от 1 до N | запись фамилий кандидатов в таблицу Канд
    если Рост[i]>170
      то k:=k+1; Канд [k] := Фам [i]
    все
  кц
  если k=0
    то вывод "В КЛАССЕ НЕТ КАНДИДАТОВ В КОМАНДУ."
    иначе нц для i от 1 до k
            вывод Канд [i]
          кц
 все
кон
 
Исполнение алгоритма
 
N теста
i
Рост[i] > 170
K
Кондидаты в команду
1
1
2
3
+
-
+
0
1
2
Кулов  
Уваров
2
1
2
-
-
0
-
 
TurboPascal
Program BascetBall;
  Uses Crt;
  Var
     SurName : Array [1..30] of String;  { фамилии учеников }
     Height  : Array [1..30] of Real;    { рост учеников }
     Cand    : Array [1..30] of String;  { фамилии кандидатов }
     NPupil, i, K : Integer;             { NPupil - число учеников,
                                           K - количество зачисленных}
BEGIN ClrScr;
  Write('В КОМАНДУ ЗАЧИСЛЯЮТСЯ УЧЕНИКИ, ');
  WriteLn('РОСТ КОТОРЫХ ПРЕВЫШАЕТ 170 СМ.'); WriteLn;
  Write('Сколько всего учеников ? ');
  ReadLn(NPupil);
  WriteLn('Введите фамилии и рост учеников :');
  For i := 1 to NPupil do
    begin Write(i, '. Фамилия - '); ReadLn(SurName[i]);
          Write('     Рост - ');    ReadLn(Height[i]);
    end; WriteLn;
  K:=0; { Составление списка команды }
  For i := 1 to NPupil do
    If Height[i]>170 then
      begin K:=K+1; Cand[K] := SurName[i] end;
  If K=0 then WriteLn('В КЛАССЕ НЕТ КАНДИДАТОВ В КОМАНДУ.')
    else
      begin WriteLn('КАНДИДАТЫ В БАСКЕТБОЛЬНУЮ КОМАНДУ :');
            For i := 1 to K do WriteLn( i, '. ' , Cand[i]);
      end;
  ReadLn
END.
 
QBasic
CLS : PRINT "В КОМАНДУ ЗАЧИСЛЯЮТСЯ УЧЕНИКИ, ";
PRINT "РОСТ КОТОРЫХ ПРЕВЫШАЕТ 170 СМ." : PRINT
INPUT "Сколько всего учеников ? " , NPupil
DIM SurName$(NPupil), Height(NPupil), Cand$(NPupil)
PRINT "Введите фамилии и рост учеников :"
FOR i = 1 TO NPupil
  INPUT "Фамилия - " , SurName$(i)
  INPUT "Рост - " , Height(i)
NEXT i : PRINT
K = 0
FOR i = 1 TO NPupil
  IF Height(i) > 170 THEN K = K + 1 : Cand$(K) = SurName$(i)
NEXT i
IF K = 0 THEN
    PRINT "В КЛАССЕ НЕТ КАНДИДАТОВ В КОМАНДУ."
  ELSE
    PRINT "КАНДИДАТЫ В БАСКЕТБОЛЬНУЮ КОМАНДУ :"
    FOR i = 1 TO K
      PRINT i ; ". " ; Cand$(i)
    NEXT i
END IF
END
 

[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]