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

6. Линейные программы

Программы этого типа реализуют линейные алгоритмы и содержат операторы ввода, присваивания и вывода, которые выполняются в естественном порядке (в порядке расположения).

Пример. Ввести в ЭВМ трёхзначное число и вывести на экран в столбик его цифры, начиная со старшей.

Для выделения десятичных цифр воспользуемся операциями Div и Mod.

Алгоритм (вывод со старшей цифры)

1. Ввести число

2. Выделить и вывести на экран цифры

3. Закончить.

Уточняем п. 2 и получаем алгоритм.

1. Ввести число.

2.1. Ц1 = число div 100; {получение старшей цифры}.

2.2. Вывести Ц1;

2.3. Ц2 = (число mod 100) div 10; {получение средней цифры }.

2.4. Вывести Ц2;

2.5. Ц3 = число mod 10; {получение младшей цифры }.

2.6. Вывести Ц3;

3. Закончить.

Программа, реализующая алгоритм, будет иметь вид

Program cifra;

Const

d = 10;

s = 100;

Var

num, c1, c2, c3 : integer;

Begin

Writeln('Введите целое трехзначное число');

Read(num);

C1:= num div S;

Writeln ('Цифра 1: ', С1);

C2:= (num mod S) div d;

Writeln('Цифра 2: ', С2);

С3:= num mod d;

Writeln('Цифра 3: ', С3);

end.

7. Управляющие операторы

7.1. Разветвляющиеся алгоритмы. Оператор if (если)

Разветвляющийся алгоритм предполагает выполнение вычислений по одному из возможных направлений в зависимости от исходных данных или промежуточных результатов. Ветвление в таких алгоритмах производится при проверке некоторых условий. Для этой цели в Паскале используется специальный оператор - IF (если).

Правило записи оператора IF следующее:

IF условие then

Оператор 1

Else

Оператор 2;

Схема алгоритма его работы приведена на рис. 2.2.

Пример. Приводимому ниже фрагменту программы

if X<>0 then

Y:= A/X

else

Y:= A;

с

Рис. 2.2. Схема алгоритма работы оператора IF

оответствует следующий ход вычислений:

если в момент выполнения программы окажется, что X ≠ 0, то будет вычислено Y = A/X.

Если же окажется, что X = 0, то будет вычислено Y = А.

Оператор IF – это один оператор, поэтому ";" после оператора 1, т.е. перед Else, не ставится.

Часть со служебным словом Else может отсутствовать. В этом случае выполняется или не выполняется только оператор 1 (см. рис. 2.3).

Пример.

If X>0 Then

K:= K+1; {увеличение К на 1 (подсчет числа положительных Х)}

Если с помощью оператора IF необходимо управлять группой операторов, то эта группа заключается в блок вида

Begin

операторы

End;

Пример.

Рис. 2.3. Схема алгоритма работы неполного оператора IF

if Big<Littl then

Begin

A := Big; {перестановка чисел местами:}

Big := Littl; {Big – большее}

Littl := A; {Litll – меньшее}

End;

Операторы 1 и 2 могут быть любыми, в том числе и условными, т.е. допустима вложенность операторов IF друг в друга на любую глубину.

Пример.

if X>0 then

if Y>0 then

Z:= Sqrt(X*X+Y*Y)

else

Z:= X*X

else

Z:= Y*Y;

При этом важно не запутаться, какой Else к какому If относится.

В общем случае служебное слово Else связывается с ближайшим словом If, которое еще не связано со служебным словом Else. Для удобства чтения и понимания логики программы записывайте Else под соответствующим ему If.