Задание 5.
Задание 5 имеет учебной целью закрепление пройденного материала по темам «Линейные алгоритмы», «Ввод-вывод данных», «Стандартные типы переменных и математические операции над ними», «Организация ветвей. Условный оператор», «Организация повторения. Операторы повторения»
Условие задания 5. Составить программу упорядочения трех чисел таким образом, чтобы .
Ход выполнения задания. Необходимо составить алгоритм решения поставленной задачи и затем реализовать его с помощью языка Pascal.
Это задание может быть выполнено двумя способами. Первый способ – используя последовательно условные операторы аналогично заданиям 3 и 4. Пример листинга такой программы приведен ниже.
1 |
program Lab5; |
2 |
usescrt; {использовать модуль crt} |
3 |
var s1,s2,s3: integer; |
4 |
Begin |
5 |
clrscr; {очистка экрана} |
6 |
writeln('Введите три числа->'); |
7 |
readln(s1,s2,s3); |
8 |
if (s1<s2) and (s1<s3) and (s2<s3) then |
9 |
write(s1,' ');write(s2,' ');writeln(s3); |
10 |
if (s1<s2) and (s1<s3) and (s3<s2) then |
11 |
write(s1,' ');write(s3,' ');writeln(s2); |
12 |
if (s2<s3) and (s2<s1) and (s1<s3) then |
13 |
write(s2,' ');write(s1,' ');writeln(s3); |
14 |
if (s2<s3) and (s2<s1) and (s3<s1) then |
15 |
write(s2,' ');write(s3,' ');writeln(s1); |
16 |
if (s3<s2) and (s3<s1) and (s2<s1) then |
17 |
write(s3,' ');write(s2,' ');writeln(s1); |
18 |
if (s3<s2) and (s3<s1) and (s1<s2) then |
19 |
write(s3,' ');write(s1,' ');writeln(s2); |
20 |
readln; |
21 |
end. |
Второй вариант решения поставленной задачи предусматривает использование оператора повторения For и массивов. Фактически ниже приведен пример работы с массивами и использование метода перестановки, называемого «методом пузырька». Подробное описание этого метода дано на лекциях.
1 |
program Zadanie5; |
2 |
Uses crt; |
3 |
const n=3; |
4 |
var i,j: integer; |
5 |
s: array[1..n] ofinteger; {описание массива целочисленных переменных} |
6 |
p: integer; |
7 |
begin |
8 |
clrscr;{очистка экрана} |
9 |
writeln('Введите три числа->'); |
10 |
fori:=1 tondobegin{использование оператора цикла для ввода переменных} |
11 |
readln(s[i]); |
12 |
end; |
13 |
for i:=1 to n-1 do |
14 |
for j:=i+1 to n do |
15 |
if s[i]>s[j] then begin |
16 |
p:=s[i]; |
17 |
s[i]:=s[j]; |
18 |
s[j]:=p; |
19 |
end; |
20 |
writeln('a b c'); |
21 |
for i:=1 to n do |
22 |
write (s[i],' '); |
23 |
readln; |
24 |
end. |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.