Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекция 12(new).doc
Скачиваний:
5
Добавлен:
16.07.2019
Размер:
123.39 Кб
Скачать

2009 г МОК, КазГАСА Информатика Заманова С.К.

Казахская головная архитектурно-строительная академия

Активный раздаточный материал

«Информатика»

ФОЕНП

3 кредита

1-й семестр 2009 – 2010 уч. года

Лекция №12: «Основные конструкции языка программирования Turbo-Pascal»

Ассистент профессора

Заманова Сауле Канабековна

Краткое содержание занятия

Рассмотрены основные конструкции языка программирования Turbo Pascal

Лекцияда Turbo Pascal тілінің негізгі құрылымдары қарастырылған.

Условный оператор предполагает исполнение одного из двух действий в зависимости от истинности некоторого условия. Условный оператор может использоваться в полной или в сокращенной форме:

  • полная форма:

if <условие> then <оператор_1>

else <оператор_2>;

Принцип работы оператора: проверяется условие. Если условие выполняется (т.е. результат истинен), то выполняется <оператор 1>, следующий за THEN, а <оператор 2> следующий за ELSE, игнорируется. Если же условие нарушается, т.е. не истинно, то <оператор 1> игнорируется и выполняется <оператор 2>.

  • сокращенная форма:

if <условие> then <оператор_1>;

Ключевые слова, используемые в операторе, имеют следующий смысл: if – если, then – то, else – иначе.

Пример 1. Составить программу вычисления значения функции у в зависимости от значения х.

Program prim1;

var x, y:real;

begin read(x);

if x<pi проверка условия

then y:=sin(x) вычисляется при выполнении условия

else y:=cos(x); вычисляется при невыполнении условия

write (x,y);

end.

Составной оператор. В условном операторе после ключевых слов then и else может стоять лишь ОДИН оператор. Чтобы обойти это ограничение, используют составной оператор следующей структуры:

begin <оператор_1> ;

. . .

<оператор_n> ;

end;

Ключевые слова begin и end выполняют роль операторных скобок. Тело любой программы представляет собой один составной оператор. Составной оператор можно помещать в любом месте программы, где по правилам языка можно использовать лишь один оператор, а по условию задачи требуется несколько.

Оператор безусловного перехода имеет следующий формат:

goto <метка>;

Оператор перехода может стоять в любом месте тела программы, в том числе использоваться и в качестве оператора в условном операторе. Любой оператор в программе может быть помечен. Метка оператора ставится перед ним и отделяется от него двоеточием. Метка - это идентификатор или целое число без знака, принадлежащее интервалу [0, 9999]. Все метки, используемые в программе, должны быть описаны в разделе описания меток. Этот раздел открывается ключевым словом label и имеет следующую структуру:

label <метка_1> , ... , <метка_n>;

Оператор варианта представляет собой обобщение условного оператора и дает возможность выполнить одно из нескольких действий в зависимости от значения некоторого выражения. Формат оператора:

case <селектор варианта> of

<метки_варианта_1>:<оператор_1>;

. . .

<метки_варианта_k>:<оператор_k>

else <оператор_q>

end;

Селектор варианта - переменная или выражение любого скалярного типа, кроме типа real. Метка варианта - константа, тип которой совпадает с типом селектора варианта.

Пример 2. Составить программу: введите букву, если это буква А – то компьютер должен выдать сообщение «Здравствуй», если В – «Доброе утро!», если С – «До свидания», в остальных случаях – «Занятие окончено».

Program prim2;

var m1:CHAR описание символьной (буквенной) переменной m1

begin

readln(m1);

case m1 of сравнение введенной буквы А1 со всеми предложенными до else

‘a’, ‘A’: writeln (‘Здравствуй’);

‘b’,’B’: writeln (‘Доброе утро!‘); выполняется при совпадении

‘c’,’C’: writeln (‘До свидания‘);

else writeln (‘Занятие окончено’); выполнение при несоответствии

end конец оператора case

end.

Операторы цикла. Одним из наиболее простых средств организации повторного выполнения серии команд являются циклы. В языке Паскаль возможна организация циклов трех видов:

1. циклы с предусловием (пока – while do);

2. циклы с параметром (для – for to/downto);

3. циклы с постусловием (до – repeat until).

Каждый из трех способов организации цикла имеет свои особенности, для каждого способа есть свой круг задач, наиболее естественно решаемых именно с его помощью.

1. Оператор цикла с предусловием (цикл пока) используют в том случае, когда необходимо, чтобы вначале проверялось некоторое условие, а затем, если условие истинно, выполнялись некоторые действия. Цикл ─ "пока" служит для организации n-кратного выполнения группы операторов (тела цикла) до тех пор, пока остается истинным условие выполнения цикла. Формат оператора:

while <условие> do < тело_цикла >;

Принцип работы оператора: вычисляется значение выражения - условия. Если оно истинно, то выполняется тело цикла. В противном случае выполняется оператор, стоящий после оператора цикла "пока" (т.е. тело цикла выполняется до тех пор, пока значение условия не станет равным FALSE).

Пример 3. Вычислить сумму следующего ряда: 1 + 1/2 + 1/3 + 1/4 + ... + 1/n с использованием оператора цикла с предусловием.

program WhileSer (Input, Output);

var Sum : real;

i, n : integer;

begin Write ( 'Введите количество членов ряда : ' );

Readln ( n );

i:= n;

Sum:= 0;

while ( i >= 1 ) do

begin

Sum:= Sum + 1/i;

i:= i - 1;

end;

writeln ( 'Сумма ', n, ' членов ряда равна ', Sum );

end.

2. Оператор цикла с параметром (цикл для) используется обычно в тех случаях, когда заранее (до начала выполнения цикла) можно определить количество повторений цикла. Цикл с параметром служит для организации n-кратного выполнения тела цикла для значений параметра цикла из некоторого упорядоченного дискретного множества. Оператор цикла с параметром имеет две формы записи:

1. for <параметр> := <выражение_1> to <выражение_2> do

<тело_цикла>;

2. for <параметр> := <выражение_1> downto <выражение_2> do

<тело цикла>;

Параметр (управляющая переменная, индекс, счетчик) - переменная дискретного типа. Чаще всего используются переменные типа integer (но допустимы char и boolean). Не разрешен к применению тип real. Выражение_1 и выражение_2 (начальное и конечное значения параметра) – это константа, переменная или выражение того же типа, что и параметр цикла. Тело цикла - это оператор, следующий за ключевым словом do. Если необходимо повторить несколько операторов, то они заключаются в операторные скобки begin и end, и телом цикла становится составной оператор.

Пример 4. Использование операторов цикла с параметром.

а) Вычислить сумму следующего ряда: 1 + 1/2 + 1/3 + 1/4 + ... + 1/n. Решение с помощью цикла forto.

program ForSer (Input, Output);

var Sum: real;

i, n : integer;

begin Writeln ( 'Введите количество членов ряда: ' );

Readln (n);

Sum:= 0;

for i:= 1 to n do

Sum := Sum + 1/i;

Writeln ( 'Сумма ', n, ' членов ряда равна ', Sum ) ;

end.

б) Вычислить значение n!. Решение с помощью цикла fordownto:

program FactN (Input, Output);

var Factorial, n, i : integer;

begin Writeln ('Введите натуральное число n: ' );

Readln (n);

Factorial:= 1;

for i := n downto 2 do

Factorial:= Factorial * i;

Writeln ( 'Факториал числа ', n, ' равен ', Factorial ) ;

end.

3. Оператор цикла с постусловием (цикл до) используется в том случае, когда целесообразно организовать повторение так, чтобы сначала выполнялась некоторая последовательность действий, а затем проверялось условие прекращения ее выполнения. Цикл - "до" служит для организации n-кратного выполнения группы операторов (тела цикла) до тех пор, пока условие завершения цикла не станет истинным. Формат оператора:

repeat

<оператор 1> ;

. . .

<оператор N> ;

until <условие> ;

Значение ключевых слов: repeat - повторять, until - до.

Пример 5. Вычислить сумму следующего ряда: 1 + 1/2 + 1/3 + 1/4 + ... + 1/n с использованием оператора цикла с постусловием.

program UntilSer (Input, Output);

var Sum : real;

i, n : integer;

begin Writeln ('Введите количество членов ряда: ');

Readln (n);

i:=n;

Sum:= 0;

repeat

Sum := Sum + 1/i;

i := i - 1;

until ( i < 1 );

Writeln ('Сумма ', N,' членов ряда равна', Sum);

end.