Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 70040.doc
Скачиваний:
5
Добавлен:
01.05.2022
Размер:
253.95 Кб
Скачать

ФГБОУВПО «Воронежский государственный технический университет»

Кафедра систем автоматизированного проектирования и информационных систем

Методические указания

к выполнению лабораторной работы

«Организация работы программ на Паскале»

по дисциплине «Программирование»

для студентов по направлению 230400

«Информационные системы и технологии»

(бакалавриат) очной формы обучения

Воронеж 2011

Составитель канд. техн. наук Ю.В.Литвиненко

УДК 681.3

Методические указания к выполнению лабораторной работы «Организация работы программ на Паскале» по дисциплине «Программирование» для студентов по направлению 230400 «Информационные системы и технологии» (бакалавриат) очной формы обучения / ФГБОУВПО «Воронежский государственный технический университет»; сост. Ю.В.Литвиненко. Воронеж, 2011. 30 с.

В методических указаниях приведено описание лабораторной работы «Организация работы программ на Паскале» по дисциплине «Программирование». Лабораторные работы проводятся на первом курсе. Содержащаяся информация является базовой для изучения основ программирование на языке Pascal.

Методические указания подготовлены в электронном виде в текстовом редакторе MS Word XP и содержатся в файле Программирование№2.doc.

Табл. 2. Библиогр.: 4 назв.

Рецензент канд. техн. наук, доц. А.В.Питолин

Ответственный за выпуск зав. кафедрой д-р техн. наук, проф. Я.Е.Львович

Издается по решению редакционно-издательского совета Воронежского государственного технического университета

© ФГБОУВПО «Воронежский государственный технический университет», 2011

Содержание

1. Организация работы программ на Паскале..……...………..2

1.1. Организация работы программ линейной

структуры..........................................................................2

1.2.Организация работы программ

циклической структуры ……………………………......9

1.2.1. Оператор цикла с предусловием

WHILE ... DO ………………………………...….11

1.2.2. Оператор цикла REPEAT ... UNTIL………....…13

1.2.3. Оператор цикла с параметром

(со счетчиком) FOR... DO……………...……….15

1.2.4. Вложенные циклы…………...……………….....17

1.3. Организация итерационных циклов в

программе.....................................................................19

2. Задание на лабораторную работу………….........................24

3. Контрольные вопросы к лабораторной работе……….…..28

Библиографический список………………...…...……...…….30

1. Организация работы программ на паскале

1.1. Организация работы программ линейной структуры

Рассмотрим простейшую структуру программы с условием (в сокращен­ной и полной форме записи). В разветвляющихся вычислительных процессах (алгоритм ветвления) используется оператор ветвления IF. Он используется для выбора одного из двух направлений дальнейшего хода программы (последовательности операторов, которые должны быть выполнены). Выбор последовательности операторов осуществляется во время вы­полнения программы в зависимости от выполнения «условия».

«Условие» - это выражение логического типа, которое может прини­мать одно из двух значений: TRUE (истина - условие выполняется) или FALSE (ложь - условие не выполняется). При помощи логических операций AND (логическое «и») и OR (логическое «или») из простых условий можно строить сложные.

Условный оператор IF ... THEN имеет две формы записи: полную и сокращенную. Полная форма записи оператора: IF «условие» THEN < оператор 1 > ELSE < оператор 2 >. В этом случае при истинности логического «условия» выполняется <оператор 1 >, в противном случае выполняется < оператор 2 >.

Например:

Вычислить max (X + Y + Z, XYZ), вывести на экран значение большего вычисленного числа.

Program maximum;

Uses Crt;

Var X, Y, Z,max: integer;

Begin

ClrScr;

WriteLn(‘Введите числа X, Y, Z');

Readln(X,Y,Z);

If X + Y + Z>X*Y*Z then max: = X + Y + Z

Else max: = X*Y*Z;

WriteLn ('Большее число = ', max);

End.

В сокращенной форме записи оператора IF допускается опускать служебное слово ELSE: IF < условие > THEN < оператор 1>;. Альтернативная конструкция отсутствует и заменена точкой с запятой, т. е. если логическое «условие» ложно, то ничто не выполняется; если логиче­ское «условие» истинно, то выполняется < оператор 1 >.

Например:

Вычислить значение функции f(x) в зависимости от значения аргумента х.

Program func;

Uses Crt;

Var X,Y: real;

Begin

ClrScr;

WriteLn('Bвeдитe x');

Read(x);

If x>0 Then y:=x;

If x=0 Then y:=0;

If x<0 Then y:=-sqr(x);

WriteLn ('Значение х =', x);

WriteLn('Значение f(x) =', y);

ReadLn;

End.

Если после Then или Else необходимо выполнить действия, описанные несколькими операторами, то эти операторы должны быть заключены в опе­раторные скобки begin - end. Такая конструкция называется составным опе­ратором. Операторы IF также могут быть вложенными.

Например:

Определить, попадает ли число X в интервал от Y до Z. Рассмотрим три программы для решения этой задачи.

Program interval1; {Способ 1}

Uses Crt;

Var X,Y,Z: Integer;

Begin

ClrScr;

WriteLn('Эта программа вычисляет попадание Х в интервал (Y,Z)');

WriteLn ('Введите значение X');

Read(X);

WriteLn ('Введите границы диапазона Y,Z');

Read(Y,Z);

If (X>Y) Then

If(X<Z) Then

WriteLn ('X = ', X, ' попадает в интервал (',Y,Z,`)’)

Else WriteLn(‘Число ’,X, ' не попадает в интервал, т.к. выходит за верхнюю границу диапазона')

Else WriteLn(‘Число ’,X, ' не попадает в интервал, т.к. меньше нижней границы диапазона');

ReadKey;

End.

Здесь мы видим, что два оператора IF вложены друг в друга. Вложен­ность операторов IF неограниченна.

Program interval2; {Способ 2}

Uses Crt;

Var X,Y,Z: Integer;

Begin

ClrScr;

WriteLn('Эта программа вычисляет попадание Х в интервал (Y,Z)');

WriteLn ('Введите значение X');

Read(X);

WriteLn ('Введите границы диапазона Y,Z');

Read(Y,Z);

If(X>Y)And(X<Z) Then

WriteLn('X = ', X,' попадает в интервал (',Y,Z,’)’)

Else

WriteLn('X = ', X,' не попадает в интервал (',Y,Z,’)’);

ReadKey;

End.

Program interval3; {Способ 3}

Uses Crt;

Var X,Y,Z: Integer;

Begin

ClrScr;

WriteLn('Эта программа вычисляет попадание Х в интервал (Y,Z)');

WriteLn ('Введите значение X');

Read(X);

WriteLn ('Введите границы диапазона Y,Z');

Read(Y,Z);

If(X>Y) And(X<Z) Then

Begin

Write ('X = ',X);

Write (' Попадает в интервал');

End

Else

Begin

Write ('X = ', X);

Write (' He попадает в интервал');

End;

ReadKey;

End.

Здесь из-за наличия двух операторов после THEN (два оператора вывода Write) в программе стоят опе­раторные скобки Begin - End.

Условный оператор IF позволяет выбирать только одно из двух возмож­ных действий в зависимости от логического выражения. Оператор выбора Case является обобщением оператора IF - он дает возможность выполнить одно из нескольких действий в зависимости от значения переключателя.

В качестве переключателя используется выражение, которое располага­ется между ключевыми словами CASE и OF. Результатом этого выражения может быть только значение порядкового типа, общее значение которого не превышает 65 535.

Оператор выбора Case имеет следующую структуру:

CASE < Переключатель > OF

Константа выбора 1 : ОПЕРАТОР 1;

Константа выбора 2 : ОПЕРАТОР 2;

Константа-выбора n : ОПЕРАТОР n

ELSE ОПЕРАТОР п+1;

End.

ELSE - необязательная ветвь и может быть опущена. Оператор выбора состоит из переключателя и списка операторов, каждый из которых помечен одной или несколькими константами выбора. Все константы выбора должны быть различными, и их тип должен быть идентичен типу переключателя. Переключатель может быть любым стандартным типом: Integer, Char, Boolean (за исключением типа Real). Вычис­ленное значение <Переключателя > определяет, какой из ОПЕРАТОРОВ должен быть выполнен. ОПЕРАТОР не будет выполняться в том случае, если значение переклю­чателя не совпало ни с одним из значений константы выбора 1 до константы выбора n-го. Тогда осуществляется переход на альтернативную ветку с Else и будет выполняться ОПЕРАТОР п + 1.

В неполной форме оператора CASE альтернативная всем преды­дущим вариантам выбора ветвь ELSE отсутствует. В этом случае, если значение переключателя не совпадает ни с одним из значений констант выбора, то не выполняется ни один из операторов, описанных в CASE, и управление передается оператору, стоящему непосредст­венно после ключевого слова end, замыкающего оператор CASE.

Например, написать программу, которая дает наименование школьных оценок, т. е. надо ввести оценку, а в результате получить ее название (например: «3 -удов­летворительно»). Если ввести число, не являющееся оценкой, то программа выведет: «Такой оценки нет».

Program ozenka;

Uses Crt;

Var X: integer;

Y: string [17];

Begin

ClrScr;

WriteLn ('Введите оценку:');

Read (X);

Case X of

1: Y: = 'Очень плохо';

2: Y: = 'Плохо';

3: Y: = 'Удовлетворительно';

4: Y: = 'Хорошо';

5: Y: = 'Отлично'

Else Y: = 'Такой оценки нет';

end;

WriteLn;

WriteLn ('Введенная оценка соответствует уровню', Y);

ReadLn;

End.

Например, определить, какая клавиша нажата на клавиатуре - цифра или буква.

Program simb;

Uses Crt;

Var Symbol: Char;

Begin

WriteLn (‘Введите любую буквенную или цифровую клавишу');

Symbol: = ReadKey;

Write(‘Нажатая клавиша -');

Case Symbol of

'0'..'9': WriteLn ('Это цифра');

'a'..'z': writeLn ('Это строчная латинская буква');

'A'..'Z': WriteLn ('Это прописная латинская буква');

'А'..'Я': WriteLn ('Это прописная русская буква');

'а'..'я': WriteLn ('Это строчная русская буква')

Else WriteLn ('Это другой символ');

End;

End.

Рассмотрим ещё три фрагмента использования оператора выбора:

1) case day of

1, 2, 3, 4, 5: write ('Рабочий день.') ;

6: write ('Суббота!');

7: write ('Воскресенье!');

end;

2) case day of

1..5: write ('Рабочий день.') ;

6: write('Cy66oтa!') ;

7: write ('Воскресенье! ') ;

end;

3) case day of

6: write ('Суббота!');

7: write ('Воскресенье!')

else write ('Рабочий день.');

end;