- •Кафедра Естественно-научных дисциплин учебно-методическое пособие по программированию
- •Глава 1. Алгоритмы линейной и разветвляющейся структуры
- •Результаты работы Pascal-программы
- •Система тестов
- •Система тестов
- •Система тестов
- •Результаты работы Pascal-программы:
- •Задачи для самостоятельного решения
- •Глава 2. Алгоритмы, реализуемые с помощью циклов типа для
- •Система тестов
- •Исполнение алгоритма
- •Задачи для самостоятельного решения
- •Глава 3. Алгоритмы, реализуемые с помощью вложенных циклов типа для
- •Пример 3.3. В заданной матрице a(n, m) поменять местами строки с номерами p и
- •Задачи для самостоятельного решения
- •Глава 4. Алгоритмы, реализуемые с помощью циклов типа пока
- •Цикл типа пока с прерыванием
- •Цикл типа пока без прерывания
- •Пример 4.1. Определить, является ли заданная последовательность чисел a1, a2, ..., aN монотонно убывающей. Система тестов
- •Система тестов
- •Результаты работы Pascal-программы
- •Система тестов
- •Задачи для самостоятельного решения
- •Глава 5. Алгоритмы, реализуемые с помощью вложенных циклов типа пока
- •Система тестов
- •Система тестов
- •Система тестов
- •Система тестов
- •Блок-схема (фрагмент)
- •Задачи для самостоятельного решения
- •Глава 6. Алгоритмы, реализуемые с помощью комбинации циклов типа для и пока
- •Система тестов
- •Система тестов
- •Исполнение алгоритма
- •Задачи для самостоятельного решения
- •Глава 7. Алгоритмы обработки символьной информации
- •Типы данных, используемые для обработки символьной информации
- •Функции и команды обработки строк
- •Система тестов
- •Исполнение алгоритма
- •Исполнение алгоритма
- •Система тестов
- •Задачи для самостоятельного решения
Система тестов
Алгоритмический язык
алг МоиШины (арг цел 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.