Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program HelloWorld; //название программы
- Var
- a,b,c:string; //объявляем три переменные для входных данных
- Function minnum(a,b:integer):integer; //заголовок функции, возвращаю-
- //щей минимальное из двух чисел, формальные параметры и тип возвраща-
- //емого значения
- Var
- min:integer; //объявляем локальную переменную для минимального числа
- Begin //начало тела функции
- If(a<b) then //если a<b
- min:=a //а - меньшее
- else //иначе
- min:=b; //b - меньшее
- minnum := min; //возвращаемое значение теперь минимальное число
- end; //конец тела функции
- Function minstr(a,b:string):integer; //заголовок функции, возвращаю-
- //щей лексикографически минимальную из двух строк, формальные параметры
- //и тип возвращаемого значения
- //если возвращаемое значение равно 1 - первая строка лексикографически
- //меньшая, иначе (равно 2) вторая строка лексикографически меньшая
- Var
- min,l,i:integer; //объявляем локальные переменные минимальной длины
- //от двух строк, а также счетчика для цикла
- Begin //начало тела функции
- min:=0; //пока неизвестно, какая строка лексикографически
- //меньшая, поэтому переменная min равна нулю
- l := minnum(Length(a),Length(b)); //l - минимальная длина из двух строк
- For i:=1 to l do //сравниваем до l
- Begin
- If a[i]<b[i] then //если i-тый символ строки a
- //меньше i-того символа строки b
- min:=1; //минимальная строка - первая
- If a[i]>b[i] then //если i-тый символ строки a
- //больше i-того символа строки a
- min:=2; //минимальная строка - вторая
- end;
- if min=0 then //если подстроки a(0,l) и b(0,l)
- //равны
- If l=Length(a) then //если первая строка имеет меньшую длину
- min:=1 //она минимальна
- else
- min:=2; //иначе минимальна вторая
- minstr:=min; //возвращаемое значение - номер
- //минимальной строки
- end;
- Begin
- WriteLn('Input 3 lines');
- //ввод трех строк
- Readln(a);
- readln(b);
- readln(c);
- If (minstr(a,b)=1) and (minstr(a,c)=1) then //если а - минимум из трех
- Begin
- If minstr(b,c)=1 then //если b - минимум из остатка
- WriteLn(a,' ',b,' ',c)
- else
- WriteLn(a,' ',c,' ',b); //иначе с - минимум из остатка
- end;
- If (minstr(b,a)=1) and (minstr(b,c)=1) then //если b - минимум из трех
- Begin
- If minstr(a,c)=1 then //если a - минимум из остатка
- WriteLn(b,' ',a,' ',c)
- else
- WriteLn(b,' ',c,' ',a); //иначе с - минимум из остатка
- end;
- If (minstr(c,a)=1) and (minstr(c,b)=1) then //если c - минимум из трех
- Begin
- If minstr(a,b)=1 then
- WriteLn(c,' ',a,' ',b) //если a - минимум из остатка
- else
- WriteLn(c,' ',b,' ',a); //если b - минимум из остатка
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement