ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Пример 5.4. Из партии шин отобрать две шины, диаметры которых отличаются неБолее, чем на D см, а вес — не более, чем на W грамм. Система тестов Алгоритмический язык алг МоиШины (арг цел N, арг вещ таб Диам[1: N], Вес[1: N], арг вещ ДопДиам, ДопВес, рез цел Шина1, Шина2, рез лит Otvet) нач цел i, j, лит Flag i:=1; Flag:="Нет" нц пока (i< =N-1) и (Flag="Нет") | цикл по первой шине из пары j:=i+1 нц пока (j< =N) и (Flag="Нет") | цикл по второй шине из пары если (abs(Диам[i] - Диам[j]) <= ДопДиам) | условие соче- и (abs(Вес[i] - Вес[j]) <= ДопВес) | таемости шин то Flag:="Да"; Шина1:=i; Шина2:=j иначе j:=j+1 Все Кц i:=i+1 Кц если Flag="Да" то Otvet:= "По параметрам подходят друг другу " + Шина1 + "-ая и " + +“Шина2 + "ая шины." иначе Otvet:= "Шин, подходящих друг другу, в партии нет." Все Кон Turbo Pascal Program MyTyres; Uses Crt; Type Mas = Array [1..100] of Real; Var Number, i, j: Integer; { Number - количество шин } Diameter, Weight: Mas; { массивы параметров шин } First, Second: Integer; { номера отобранных шин } Flag: Boolean; D, W: Real; {D, W - допуски по параметрам} {-------------------------------------------------------} Procedure InputOutput; {описание процедуры ввода-вывода данных} Begin ClrScr; Write('Количество шин: '); ReadLn(Number); WriteLn('Параметры шин: '); For i:= 1 to Number do begin Write(i, '-ая шина: Диаметр - '); ReadLn(Diameter[i]); Write(' Вес - '); ReadLn(Weight[i]); end; WriteLn; Write('Допуск по диаметру: '); ReadLn(D); Write('Допуск по весу: '); ReadLn(W); WriteLn; WriteLn(' Пapаметры шин '); WriteLn('N шины Диаметр Вес'); For i:= 1 to Number do WriteLn(i:4, Diameter[i]:10:1, Weight[i]:10:1); WriteLn; End; { of InputOutput } {----------------------------------------------------------} Procedure YesNo(Var First, Second: Integer; Var Flag: Boolean); Begin {описание процедуры поиска решения задачи} i:=1; Flag:= FALSE; While (i<=Number-1) and not Flag do {цикл по первой шине из пары} begin j:= i+1; While (j<=Number) and not Flag do {цикл по второй шине из пары} If (Abs(Diameter[i]-Diameter[j]) <= D) and (Abs(Weight[i]-Weight[j]) <= W) then begin Flag:=TRUE; First:=i; Second:=j; end else j:= j+1; i:=i+1; end; End; {of YesNo } {----------------------------------------------------------} BEGIN InputOutput; {Вызов процедуры ввода-вывода исходных данных} YesNo(First, Second, Flag);{Вызов процедуры поиска решения задачи} WriteLn('О т в е т:'); If Flag then WriteLn('По параметрам подходят друг другу ', First, '-ая и ', Second, '-ая шины.') else WriteLn('Шин, подходящих друг другу, в партии нет.'); ReadLn; END. Блок-схема (фрагмент) Не нашли, что искали? Воспользуйтесь поиском:
|