Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
задачник по программированию.doc
Скачиваний:
25
Добавлен:
03.11.2018
Размер:
1.94 Mб
Скачать

Система тестов

Обозначения:

N - количество игроков в команде "Спартак";

M - количество игроков в команде "Зенит";

S(N) - массив ростов игроков команды "Спартак" (см);

Z(N) - массив ростов игроков команды "Зенит" (см).

Алгоритмический язык

алг Рост (арг цел N, M, арг целтаб S[1:N], Z[1:M], резлит Otvet)

нач цел i, j, лит Flag

i:=1; Flag:="Нет"

нц пока (i<=N) и (Flag="Нет") |цикл по игрокам "Спартака"

j:=1

нц пока (j<=M) и (Flag="Нет") |цикл по игрокам "Зенита"

если S[i]=Z[j] | проверка равенства ростов

то Flag:="Да"

иначе j:=j+1

все

кц

i:=i+1

кц

если Flag="Да"

то Otvet:="Есть игроки одинакового роста"

иначе Otvet:="Нет игроков одинакового роста"

все

кон

Turbo Pascal

Program EqualHeight;

Uses Crt;

Type Mas = Array [1..20] of Integer;

Var

Spart, Zenit : Mas; {массивы ростов игроков}

N, M, i, j : Integer; {N - к-во игроков "Спартака", M -"Зенита"}

Flag : Boolean;

Name : String; {название команды}

{------------------------------------------}

Procedure Input(NCommand : Integer; Var Number : Integer; Var Rost:Mas);

{NCommand - номер команды (равен 1 или 2)}

Begin {описание процедуры ввода данных по команде}

If NCommand=1 then Name:='Спартак' else Name:='Зенит';

Write('Введите количество игроков команды ', Name, ': ');

ReadLn(Number);

WriteLn('Введите роста игроков:'); Блок-схема (фрагмент)

For i:= 1 to Number do

begin Write(i, ' игрок - ');

ReadLn(Rost[i])

end;

WriteLn;

End;

{------------------------------------------}

Procedure Search; {описание процедуры поиска решения задачи}

Begin

i:=1; Flag:=FALSE;

While (i<=N) and not Flag do {цикл по игрокам Спартака}

begin

j:=1;

While (j<=M) and not Flag do {цикл по игрокам Зенита}

If Spart[i]=Zenit[j] then Flag:=TRUE

else j:=j+1;

i:=i+1;

end;

End;

{------------------------------------------------------------}

Procedure OutResult; {описание процедуры вывода результата}

Begin

Write('О т в е т : в командах Спартак и Зенит ');

If Flag then Write('есть игроки ') else Write('нет игроков');

WriteLn('одинакового роста.');

ReadLn;

End;

{------------------------------------------}

BEGIN ClrScr; {вызов процедур}

Input(1, N, Spart); {ввод данных для первой команды}

Input(2, M, Zenit); {ввод данных для второй команды}

Search; {поиск решения задачи}

OutResult; {вывод результата}

END.

Пример 5.4. Из партии шин отобрать две шины, диаметры которых отличаются не

более, чем на D см, а вес — не более, чем на W грамм.