Язык программирования Turbo Pascal

  • Вид работы:
    Реферат
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    20,62 Кб
  • Опубликовано:
    2016-03-20
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Язык программирования Turbo Pascal















Реферат

Язык программирования Turbo Pascal

1.      Структура программы в Turbo Pascal. Основные элементы языка

 

.1 Структура программы в Turbo Pascal


Программа в Turbo Pascal состоит из следующих разделов:

-   Заголовок программы, который является необязательной частью программы. Его описание:

Program <имя программы>;

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

-   Раздел меток (если они есть), который описывается следующим образом: Label <список меток>;

Список состоит из имен меток, отделенных друг от друга запятой. Например, Label m, n, kl;

объявлены 3 метки: m, n и kl. Именем метки является идентификатор или число от 0 до .

Метка помечает оператор в программе, которому следует передать управление в определенных случаях.

-   Раздел констант:

Const <список констант>;

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

<имя константы>=<значение константы>;

где именем константы является идентификатор, а значение можно задать в виде выражения.

Пример описания константы:

b=5;

g=exp(4)+sin(3)

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

- Раздел типов данных:

Type <список типов>;

где список типов содержит описание каждого типа данных следующим образом:

<имя типа>=<тип данных>;

где, в свою очередь, тип данных может быть либо стандартным, либо описанным выше в том же разделе Type. Подробнее о стандартных типах данных в Turbo Pascal будет рассказано в разделе 1.2.

- Раздел переменных:

Var <список переменных>;

где каждая переменная описывается следующим образом:

<имя переменной>:<тип переменной>,

где имя переменной является идентификатором, а тип - либо один из стандартных типов, либо тип, уже описанный в разделе Type.

Если две или более переменные являются переменными одного типа, то их можно объявить в одной строке, отделив их имена запятыми.

Переменные являются величинами, значение которых могут изменяться в течение выполнения программы.

Пример описания переменных:

Var a:integer;

b,c:real;

Здесь описаны 3 переменные: a типа integer, и b и c типа real.

- Раздел процедур и функций.

-   Раздел операторов, который является основной частью программы. В нем находятся операторы, заключенные в операторные скобки Begin … End.

Begin <оператор>

--------------

<оператор>

End.

Операторы друг от друга отделяются точкой с запятой, перед End точку с запятой можно не ставить.

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

 

.2 Типы данных


Типы данных в Turbo Pascal бывают стандартными и описанными пользователем в разделе type. Каждая переменная имеет тип и имя. Имя переменной является идентификатором.

Стандартные типы данных делятся на простые и структурированные. Простыми являются типы данных, в которых под одним именем переменной содержится одно значение: одно целое число, одно вещественное число, один символ, одно логическое значение: «да» или «нет».

- Тип integer - целочисленный тип. Переменной этого типа является целое число в пределах от -8 до 7.

Над данными целого типа можно выполнять следующие операции:

+ (сложение), - (вычитание), * (умножение), / (деление);

div - операция целочисленного деления;

mod - операция определения остатка от деления двух целых чисел;

pred - определение предыдущего числа;

succ - определение следующего числа.

Результат операции деления является вещественнозначным.

Примеры. 2+3=5;6 = 6;6 = 4;()=;()=.

- Тип char - символьный тип. Каждый символ имеет код в виде целого числа от 0 до 5. Над символами можно выполнять следующие операции:

ord - определение кода символа;

chr - наоборот, по введенному числу выдает символ, код которого соответствует этому числу;

pred - определение символа, код которого на единицу меньше кода данного символа;

succ - определение символа, код которого на единицу больше кода данного символа.

Символы можно сравнивать между собой, причем при сравнении символов сравниваются их коды. Символ в Turbo Pascal заключается в одинарные кавычки (апострофы).

- Тип boolean - логический тип данных. Переменные этого типа могут принимать 2 значения:

True («истина») - соответствует «да» или значению 1,

False («ложь») - соответствует «нет» или значению 0.

Над переменными логического типа можно осуществлять следующие операции: succ(false)=true; pred(true)=false. а также операции and, or, not, xor.

Операция and соответствует одновременной истинности двух логических выражений (см. таблицу 1).

Таблица 1. Таблица истинности функции AND

Переменная a

Переменная b

Результат a and b

0

0

0

1

0

1

0

0

1

1

1


Таблица 2. Таблица истинности функции OR

Переменная a

Переменная b

Результат a or b

0

0

0

0

1

1

1

0

1

1

1

1


Операция not соответствует противоположному значению логической переменной (см. таблицу 3).

Таблица 3. Таблица истинности функции NOT

Переменная a

Результат Not(a)

0

1

1

0


Операция xor соответствует истинности одного из двух логических выражений. Т.е. здесь исключен случай, когда истинны сразу 2 выражения (см. таблицу 4).

Таблица 4. Таблица истинности функции XOR

Переменная a

Переменная b

Результат a xor b

0

0

0

0

1

1

1

0

1

1

1

0


Приоритет операций: В первую очередь выполняются операции not, затем and, затем or и xor.

Пример. 1. Not 0 or 1 and 0 = 1 or 1 and 0= 1 or 0 = 1;

. Not (0 or 1 and 0) = Not (0 or 0) = Not (0)=1.

- Тип real - вещественный тип. Переменная вещественного типа является вещественным числом, которое представимо в виде m*p, где m - вещественное число, 1≤m<, а p - целое число от - до .

Над вещественными числами допустимы следующие операции:

+ (сложение), - (вычитание), * (умножение), / (деление);

а также следующие функции:

round - округление числа до ближайшего целого;

trunс - взятие целой части числа.

Примеры. Round(5.3)=5; Round(.8)=;(5.3)=5; Trunc(.8)=.

Заметим, что целая часть от дробной в вещественном числе в Паскале отделяется точкой, а не запятой.

Структурированными являются данные, в которых по одним именем содержатся сразу несколько значений. Рассмотрим три примера структурированных данных:

- Массивы - одно имя содержит несколько данных одного типа.

Пример. Массив T содержит данные о температуре воздуха за май.

T={; 7; 6; 9; 3; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; }.

- Строки - массивы символьного типа.

Пример. F=’Введите свое имя.’

Строки в Turbo Pascal заключаются в апострофы.

- Записи - под одним именем содержатся компоненты разного типа, тем не менее представляющих логически единое целое.

 

.3 Основные функции


Ниже приведены математические функции, определенные в Паскале (таблица 5).

Таблица 5. Основные функции в Turbo Pascal

Функция

Значение

Тип аргумента

Тип результата

Abs(x)

Модуль аргумента, |x|

Целый, вещественный

Целый, вещественный

Arccos(x)

Арккосинус аргумента, arcos x

Вещественный

Вещественный

Arcsin(x)

Арксинус аргумента, arcsin x

Вещественный

Вещественный

Arctan(x)

Арктангенс аргумента, arctg x

Вещественный

Вещественный

Sin(x)

Синус аргумента, sin x

Вещественный

Вещественный

Cos(x)

Косинус аргумента, cos x

Вещественный

Вещественный

Pi

Число π

Нет

Вещественный

Sqr(x)

Квадрат аргумента, x2

Вещественный

Вещественный

Sqrt(x)

Квадратный корень аргумента, ВещественныйВещественный



Exp(x)

Экспонента, ex

Вещественный

Вещественный

Ln(x)

Натуральный логарифм, ln x

Вещественный

Вещественный

 

.4 Примеры


Пример 1. Записать на Паскале следующее выражение:

.

Решение: (sin(sqrt(exp(x+a)+sqr(x)))-6)/abs(ln(cos(2*x)))-arctg(a/2).

Целый, символьный и логический типы являются порядковыми типами, для которых определены операции отношения (таблица 6).

Таблица 6. Операции отношения в Turbo Pascal

Операция

Описание

=

Равно

<> 

Не равно

Меньше

Больше

<=

Меньше или равно

>=

Больше или равно


Пример 2. Записать на Паскале следующие условия:

1.     

Решение. (x>=3)and(x<=6).

Решение. (x<3)or(x>6).

3.     

Решение. (x>=3)and(x<=6) or (x>=)and(x<) or (x>=).

4.  a - латинская буква (которая может быть как заглавной, так и строчной).

Решение. (a>=’a’)and(a<=’z’) or (a>=’A’) and (a<=’Z’).

5.  a - не латинская буква (то есть необходимо установить, что символ не является ни заглавной, ни строчной латинской буквой).

Решение. ((a<’a’)or(a>’z’)) and ((a<’A’) or (a>’Z’)).

(Напомним, что операция and выполняется раньше, чем or, именно поэтому (a<’a’)or(a>’z’) и (a<’A’) or (a>’Z’) следует заключить в скобки, чтобы сначала выполнились именно эти операции, а затем - операция and.)

 

2. Составление простейших программ на Turbo Pascal

 

.1 Операторы ввода


Ввод информации с клавиатуры в Turbo Pascal можно осуществлять одним из следующих операторов:

Read(список ввода);

Readln(список ввода);

Список ввода - переменные, отделенные между собой запятыми.

Эти 2 оператора отличаются друг от друга тем, что оператор Readln после ввода списка переменных осуществляет перевод курсора на следующую строку, а оператор read нет.

Вводить переменные логического типа с клавиатуры нельзя.

Примеры.

1.  Readln(a,b) - после ввода переменных a и b в одну строку курсор переходит на следующую строку.

2.      Read(с,d) - после ввода переменных в одну строку курсор остается в той же самой строке справа от позиции d.

 

.2 Операторы вывода


Вывод информации на экран в Turbo Pascal осуществляется одним из двух операторов:

Write(список вывода);

Writeln(список вывода);

которые отличаются друг от друга тем, что оператор writeln после вывода списка переводит курсор на новую строку.

Списком вывода являются переменные, выражения и строковые константы, отделенные друг от друга запятыми. Строковые константы используются для подсказок пользователю и заключаются в апострофы.

Переменные целочисленного типа можно выводить с отступом от предыдущего выведенного значения (форматированный вывод переменной целого типа):

Writeln(a:5);

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

Переменные вещественного типа можно выводить с отступом от предыдущего выведенного значения, а также с требуемым количеством знаков после запятой (форматированный вывод переменной вещественного типа).

Writeln(a:6:3);

где 6 - число позиций, выделенных на вывод числа a, а 3 - число выводимых знаков после десятичной точки. Если не использовать форматированный вывод вещественной переменной, то есть, вывести переменную a оператором Writeln(a); то выведется число а в виде mEp, который соответствует формату m*p, где m - вещественное число, 1≤m<.

Примеры. Пусть a и b - целочисленные переменные, c и d - вещественные переменные, f - логическая переменная, s1, s2 - символьные переменные. a=5, b= = -, с=1,5, d=0, f=true, s1=’k’, s2=’n’.

1.  Последовательность операторов

Write(a, b:4,c:8:2,d);(g,s1,s2);

выдаст на экран:

- 1.2.Е+TRUEkn

То есть, вся информация вывелась слитно, без разделений, кроме числа c, так как на него выделено 8 позиций, а оно с двумя знаками после запятой занимает 6 позиций, следовательно, перед ним выведено 2 пробела. Число - также не отделено от предыдущего, так как оно занимает 5 позиций, что больше, чем на него выделено программой - 4. Т.к. переменная d имеет вещественный тип, а число 0 можно представить как 2∙2, поэтому выводится эта переменная при неформатированном выводе как 2.E+.

2.  Чтобы все эти данные при выводе отделялись друг от друга, можно в списке параметров вывода после каждой переменной вставить пробел (в апострофах). Между переменными b и c можно пробел не ставить, так как эти переменные разделяются путем добавления 2-х пробелов. Последовательность операторов

Write(a,` `,b:4,c:8:2,` `d,` `);(g,` `,s1,s2);

выдаст на экран:

- 1. 2.Е+ TRUE kn

3.  Последовательность операторов

Writeln(a,` `,b:4,c:8:2,` `d,` `);(g,` `,s1,s2);

выдаст на экран:

5 - 1. 2.Е+

TRUE kn

т.к. первый оператор после вывода переменных a, b, c и d переводит курсор на новую строку.

4. Последовательность операторов

Writeln(`a=`,а);(`b=`,b:4);(`c=`,c:8:2);(`d=`,d);(`g=`,g);(‘символы ’,s1,s2);

выдает на экран:

a=5

b=-

c= 1.

d=2.Е+

g=TRUE

символы kn

то есть перед значением каждой переменной вывелось ее имя со знаком равно. То, что заключено в апострофы, выводится на экран без изменений.

5.  Операторы вывода часто используются как подсказка пользователю, что, как и в каком порядке надо вводить с клавиатуры.

Writeln(‘Введите 2 целых числа’);

Readln(a,b);

выведет на экран:

Введите 2 целых числа

Внизу курсор указывает на то, что от пользователя ожидается ввод каких-то данных.

Если же ограничиться оператором write, то есть,

Write(‘Введите 2 целых числа’);

Readln(a,b);

то выведется на экран:

Введите 2 целых числа_

То есть ввод будет осуществляться справа от выведенной строки, а не на следующей строке.

6. Можно выводить не только переменные, но и выражения, которые программой вычисляются, после чего их значения выводятся:

Writeln(5+3) выдаст на экран 8,

Writeln(5>3) выдаст на экран TRUE,

Writeln(a+b) в условиях предыдущих примеров выдаст -5 (т.к. a+b = =5+(-) = -5).

Имя переменной:=выражение;

Пример 1.

A:=B; (Здесь переменной A передается значение переменной B)

A:=3; (Здесь переменной A передается значение 3)

d:=3*f-sin(b)+k; (Здесь вычисляется значение выражения, стоящее справа от знака присваивания, после чего его значение передается переменной d)

Данные передаются «справа налево», то есть в левой части оператора должно стоять имя переменной, в которую заносится результат. Например, операторы A:=B; и B:=A; имеют разный смысл. В первом случае переменная A принимает значение переменной B, теряя свое предыдущее значение, а во втором случае (B:=A) переменная B принимает значение переменной A, теряя свое предыдущее.

Пример 2. Составить программу вычисления плотности населения страны по введенным данным о численности населения и площади территории страны.

Нам понадобятся 3 переменные: nas - численность населения, ter - площадь территории страны, pl_nas - плотность населения. Переменная nas будет целого типа, так как количество людей не может быть дробной величиной, а ter и pl_nas - вещественного типа, так как они могут принимать и дробные значения. Чтобы найти плотность населения, нужно численность населения поделить на площадь территории, т.е. . Но перед этим переменные nas и ter надо ввести при помощи оператора ввода readln. Составим программу:z1;nas:integer;, pl_nas:real; writeln(`Введите население и территорию страны`);

Readln(nas, ter);_nas:=nas/ter;(`Плотность населения страны: `,pl_nas)

End.

Пример 3. Вычислить значение выражения .

Нам понадобится 3 переменные x, a и y. Все они вещественного типа. Переменные x и a будем вводить с клавиатуры, а y вычислять.

Program z2;x,a,y:real; writeln(`Введите переменные x и a`);

Readln(x, a);:=sin(exp(x+1)-ln(abs(a-1)))+sqrt(sqr(sin(x)))(`Значение переменной y= `,y)

End.

 

.4 Работа в программе Turbo Pascal


Запустите программу Turbo Pascal. Перед вами откроется синий экран с верхней строкой меню. Во второй строке обычно пишется имя файла с программой, в данном случае открыт новый пустой файл, который еще не сохранен. Так что пока во второй строке записано вместо имени файла noname.pas (noname- ‘безымянный’, pas - расширение файлов, созданных в Turbo Pascal).

Наберите программу из первого примера. Чтобы запустить ее, нужно нажать Ctrl-F9. Введите необходимые данные (а именно, в данном случае это значения переменных nas и ter через пробел) и нажмите Enter. Перед вами появилось снова окно Turbo Pascal c набранной вами программой. Программа выполнилась, но чтобы просмотреть результат выполнения программы, нужно нажать Alt-F5. Посмотрев результат, нажмите любую клавишу. Тем самым вы вернетесь снова к тексту программы. Сохранить программу можно при помощи F2 или команды меню File - Save. Сохраните свою программу, допустим, под именем pr1.pas. Создать новую программу можно при помощи команды меню File - New. Наберите вторую программу, проверьте ее и сохраните под новым именем, допустим, pr2.pas. Чтобы открыть первую программу, нужно воспользоваться командой меню File - Open и выбрать имя той программы, которую необходимо открыть, и нажать Enter.

Чтобы выйти из Turbo Pascal, необходимо нажать Alt-X или воспользоваться командой меню File - Exit.

3. Применение условного оператора

 

.1 Условный оператор


Структура условного оператора:

IF условие THEN оператор1 ELSE оператор2;

где условием является логическое выражение или логическая переменная, оператор1 - оператор, который выполняется в случае выполнения условия, оператор2 - оператор, который выполняется в случае невыполнения условия. То есть, если условие выполняется, то выполняется оператор1, в противном случае выполняется оператор2.

Иногда используется сокращенная форма условного оператора:

IF условие THEN оператор;

В этом случае при выполнении условия выполняется оператор, а в случае невыполнения условия никаких действий не производится.

В структуре условного оператора предусмотрено лишь по одному оператору, которые выполняются в случаях истинности или ложности условия. Если необходимо в этих случаях выполнить несколько операторов, то их нужно заключить в операторные скобки Begin …….. End.

Примеры.

1.  Найти значение функции


Program z3;x,y:real;readln(x);(x>=2)and(x<=5) then y:=sin(x) else y:=cos(x);(y).

2.  Даны 2 числа a и b. Если первое число больше второго, то найти произведение и разность этих чисел.

Program z4;a,b,c,d:integer;readln(a,b);a>b thenc:=a*b;:=a-b;(c,d).

Здесь в случае выполнения условия (a>b) нужно выполнить сразу 2 действия: умножение и вычитание, поэтому эти 2 оператора нужно заключить в операторные скобки. В противном случае никаких действий производить не требуется, поэтому используем сокращенную форму условного оператора.

3.  Выяснить, по введенной температуре воздуха, есть ли мороз на улице.

Program z5;t:integer; writeln(`Введите температуру воздуха`);

Readln(t);t<0 then writeln(`на улице мороз`) else writeln(` мороза нет`);.

 

4. Применение сильноветвящихся алгоритмов

 

.1 Сложное ветвление


Если решение задачи зависит более, чем от двух случаев, то:

- можно применить несколько сокращенных условных операторов;

- можно применить вложение условного оператора в другой условный оператор. Но при этом надо помнить, что Else всегда относится к ближайшему Then.

Пример 1. Найти значение функции


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

Program z6;x,y:real;readln(x);x<2 then y:=sin(x/pi);(x>=2)and(x<5) then y:=sqrt(cos(x));x>=5 then y:=8;(y).

Второй вариант - использование одного условного оператора, включающего в свой состав другой условный оператор.

Program z6;x,y:real;readln(x);x<2 then y:=sin(x/pi) else If x<5 then y:=sqrt(cos(x)) else y:=8;

(y)

End.

Заметим, что при описании второй ветки (… else if x<5 …) уже нет необходимости указывать условие x>=2, т.к. оно является противоположным для условия первой ветки (x<2), тем самым оно автоматически включается в случай Else для первой ветки. То же самое относится к третьей ветке: нет необходимости писать условие x>=5, т.к. оно автоматически включено в случай Else для второй ветки.

 

.2 Оператор выбора


Еще один способ решения задач со сложными разветвлениями - использование оператора выбора Case.

Структура оператора Case:

CASE переменная OF

Значение1:оператор1;

----------------------------

ЗначениеN:операторN;

ELSE Оператор

END;

Работает этот оператор следующим образом: если выражение (или переменная) принимает значение1, то выполняется оператор1, если выражение принимает значение2, то выполняется оператор2, и т.д., если выражение не принимает ни одного значения из списка, то выполняется оператор, который следует за ключевым словом ELSE. Строка, соответствующая случаю ELSE, является необязательной в операторе Case.

Примеры. 1. По введенному номеру месяца, выяснить, является ли этот месяц зимним, осенним, летним или весенним?

Если введенное число находится в пределах от 3-х до 5, то месяц является

весенним, если в пределах от 6 до 8, то летним, если в пределах от 9 до , то осенним, если 1, 2 или , то зимним. Прочие значения не соответствуют ни одному времени года, и, следовательно, являются ошибочными, о чем мы оповестим пользователя в виде сообщения.

Program z7;n:integer;readln(n);n of

..5:writeln(‘Месяц весенний’);

..8:writeln(‘Месяц летний’);

..:writeln(‘Месяц осенний’);

,2,:writeln(‘Месяц зимний’); writeln(‘Такого месяца нет’)

End;

End.

5. Циклические операторы. Цикл с параметром

 

.1 Операторы цикла


Бывают ситуации, когда один и тот же оператор или последовательность операторов следует выполнить несколько раз. В этом случае можно операторы объединить в цикл.

Пример 1. Ввести 6 чисел.

Можно 5 раз использовать оператор Readln:

Readln(a1);(a2);(a3);(a4);

а можно использовать оператор цикла и тогда тело программы сведется к одной строке:

for i:=1 to 6 do readln(a).

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

 

.2 Цикл с параметром


Цикл с параметром применяется тогда, когда количество повторений заранее известно.

Структура циклического оператора:

FOR счетчик:=начало TO конец DO оператор;

где счетчик - переменная порядкового типа (из изученных типов целочисленный, логический или символьный). Начало и конец - выражения с результатом порядкового типа. Если необходимо выполнить в цикле более одного оператора, применяются операторные скобки Begin..End.

Пример 2. Вычислить значение выражения S=sin 1+sin 2+sin 3+…+sin n.

Накапливать сумму будем пошагово. То есть на первом шаге S = sin 1, на втором к этому значению добавим sin 2, тем самым получим sin 1 + sin 2, на следующем шаге к полученному значению прибавим sin 3, тем самым получим sin 1 + sin 2 + sin 3 и т.д. То есть на i-м шаге, чтобы получить сумму, нужно к уже накопленной сумме на предыдущем шаге прибавить sin i, то есть S=S+sin i. Номер шага i меняется от 1 до n. Но до начала подсчета суммы нам нужно S присвоить 0, чтобы на первом шаге получить sin 1 (S=S+sin i = 0 + sin 1 = sin 1).

Program z8;i, n:integer;:real;writeln(`Введите количество шагов n`);(n);:=0;i:=1 to n do S:=S+sin (i);(S)

End.

Заметим, что если бы надо было найти не сумму, а произведение (например, P = sin 1 · sin 2 · sin 3 · … · sin n), то за начальное значение произведения уже нельзя брать 0 (P=0), т.к. при выполнении оператора P:=P*sin(i) будет всегда получаться 0. В этом случае за начальное значение P берут 1, так как при умножении на 1 число не меняется. Программа в этом случае будет выглядеть следующим образом:

Program z8;

Var i, n:integer;:real; writeln(`Введите количество шагов n`);

Readln(n);:=1;i:=1 to n do P:=P*sin (i);(P)

End.

Пример 2. В области n населенных пунктов с населением a1, a2, a3, …, an. Найти общее население области.

Program z9;

Var i,n,S:integer;

Begin writeln(`Введите количество населенных пунктов в области`);

Readln(n);:=0;i:=1 to n do writeln(`Введите население`, i, `-го населенного пункта`);

Readln(a);:=S+a;;

Writeln(S)

End.

6. Циклы с предусловием и постусловием

 

.1 Цикл с предусловием


Если количество повторений цикла заранее предсказать невозможно, применяется цикл с предусловием или с постусловием.

Структура цикла с предусловием:

WHILE условие DO оператор;

Пока выполняется условие, выполняется тело цикла. Если на первом же шаге условие не выполнится, тело цикла, соответственно, не выполняется ни разу. Причем если тело цикла состоит из нескольких операторов, то их надо заключить в операторные скобки Begin … End.

Пример 1. Найти значение выражения S = sin 1 + sin 2 + sin 3 + … + sin n + … с точностью e, (т.е. пока очередное слагаемое не станет по модулю меньше e).

Сумма считается таким же образом, как и в примере 2 раздела 5, т.е. на каждом шаге цикла мы прибавляем к сумме, накопленной на предыдущем шаге, sin i, учитывая, что на каждом шаге i нужно увеличивать на 1. (Цикл FOR автоматически увеличивает значение счетчика на 1, а в циклах с пред- и постусловием это нужно делать самостоятельно). Условием продолжения цикла служит логическое выражение abs(sin(i))>=eps (т.к. использование греческих букв не допустимо в Turbo Pascal, переменную, отвечающую за e (“эпсилон”), назовем eps).

Program z;i:integer;, eps:real;readln(eps);:=1;:=0;abs(sin(i))>=eps doS:=S+sin i;:=i+1;;(S).

Пример 2. В местности проводятся операции по очищению водоема. Ежедневно измеряется концентрация загрязняющих веществ в реке до тех пор, пока она не уменьшится до допустимого уровня процентов.

Program z;conc: real; Writeln(`Введите концентрацию вещества в первый день`);

Readln(conc);

While conc> do

Begin Writeln(`Введите концентрацию вещества в следующий день`);

Readln(conc)

End;

Writeln(`Концентрация вещества достигла допустимого значения. Операции по очищению данного водоема прекращены`)

End.

 

.2 Цикл с постусловием


Цикл с постусловием работает следующим образом: тело цикла выполняется, пока нарушается условие выхода из цикла. Причем если тело цикла состоит из нескольких операторов, то их, в отличие от цикла с предусловием, не надо заключать в операторные скобки Begin … End. Служебные слова Repeat … Until являются аналогом операторных скобок.

Структура цикла с постусловием: Repeat

Тело цикла

Until условие;

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

Пример 1. Найти номер слагаемого, начиная с которого значение выражения S = sin 1 + sin 2 + sin 3 + … + sin n + …будет больше 4.

Сумма нахождения таким же образом, как и в предыдущем примере. Условием выхода из цикла служит логическое выражение S>4 (значение выражения больше 4).

Program z;i:integer;:real;i:=1;:=0;:=S+sin i;:=i+1;S>4;(i).

Пример 2. В местности проводятся операции по очищению водоема и ежедневно измеряется концентрация загрязняющих веществ в реке до тех пор, пока она не уменьшится до допустимого уровня процентов.

Program z;conc: real; repeat

Writeln(`Введите концентрацию вещества в следующий день`);

Readln(conc);

Until conc<;

Writeln(`Концентрация вещества достигла допустимого значения. Операции по очищению данного водоема прекращены`) End. меньше e).

7. Применение сочетания циклических и условных операторов

 

.1 Сочетание циклов с разветвлениями


Пример 1. На протяжении всего апреля каждые сутки в полдень измеряется температура в городе. Определить среднюю температуру морозных дней в апреле.

Решение. Так как температура измеряется каждый день в апреле, то есть раз, будем использовать цикл с параметром. При этом на каждом шаге цикла проверяем, является ли соответствующая суточная температура t отрицательной (морозной), тем самым внутри цикла используем условный оператор. И если t отрицательна, то добавляем ее значение в сумму sum и увеличиваем, соответственно, на единицу количество k. После выхода из цикла, поделив полученную сумму отрицательных температур sum на количество k, найдем среднюю температуру дней с отрицательной температурой srt.

Program z;

Var t, sum, srt: real;

i, k: integer;sum:=0;:=0;i:=1 to dowrite(`Введите температуру за `, i, `-е апреля `);(t);t<0 thensum:=sum+t;:=k+1;;;:=sum/k;(`Средняя температура морозных дней в апреле `,srt::2)

end.

Пример 2. В условиях предыдущей задачи определить максимальную температуру за апрель. Решение. Температуру за первое апреля вводим с клавиатуры и тут же примем ее за максимальное значение max. Все остальные температуры за апрель вводим в цикле от 2 до и сравниваем значение каждого введенного значения температуры с тем значением, которое на данном шаге является максимальным на данный момент. И если текущее введенное значение оказывается больше max, то теперь уже его считаем за max, в противном случае max не изменяется.

Program z;t, max: real;, k: integer;

Begin writeln(‘Введите температуру воздуха за 1-е апреля’);

Readln(t);:=t;i:=2 to do write(`Введите температуру за `, i, `-е апреля `);

readln(t);t>max then max:=t;;

writeln(`Максимальная температура в апреле `,max::2)

end.

Пример 3. Вычислить значение выражения

 для всех x на промежутке [0, 7] с шагом 0,5.

Program z;a,b,x,s:real;readln(a,b);:=0;x<=7 doIf x<2.8 then s:=(a+b)/cos(x) elsex<6 then s:=(a+b)/cos(x) else s:=sin(x)/(x+1);(`x=`,x:5:2,` y=`,y:5:2);:=x+0.5

end;

End.

turbo pascal программирование

Литература

1.     Getting Started with Jrun; San Francisco: Macromedia - Москва, - 8 c.

2.      Армстронг, ТActiveX: Создание Web-приложений (+ CD-ROM); Киев: BHV - Москва, - 2 c.

.        Бобровский, Сергей Delphi 7Учебный курс; СПб: Питер - Москва, - 6 c.

.        Вивек, Шарма; Раджив, Шарма Разработка Web-серверов для электронной коммерцииКомплексный подход; М.: Издательский дом Вильямс - Москва, - 0 c.

.        Гилман, Л.; Роуз, АКурс АПЛ: диалоговый подход; Мир - Москва, - 6 c.

.        Грунд, ФПрограммирование на языке ФОРТРАН IV; М.: Мир - Москва, - 3 c.

.        Гукин, Дэн C для "чайников"; М.: Вильямс - Москва, - 2 c.

.        Драммонд, ММетоды оценки и измерений дискретных вычислительных систем; М.: Мир - Москва, - 4 c.

.        Дронов, ВJavaScript в Web-дизайне; СПб: БХВ - Москва, - 0 c.

.        Дьяконов, В.ПСправочник по алгоритмам и программам на языке бейсик для персональных ЭВМ; М: Наука - Москва, - 0 c.

.        Жешке, Рекс Толковый словарь стандарта языка Си; СПб: Питер - Москва, - 1 c.

.        Калашников ОАссемблер? Это просто! Учимся программировать (+ CD-ROM); СПб: БХВ - Москва, - 4 c.

.        Калверт, ЧБазы данных в Delphi 4; Киев: ДиаСофт - Москва, - 4 c.

.        Касперски, К.; Рокко, ЕИскусство дизассемблирования; BHV - Москва, - 6 c.

.        Касьянов, В.НОптимизирующие преобразования программ; Наука - , - 6 c.

.        Кнут, ДИскусство программирования для ЭВМ; М.: Мир - Москва, - 9 c.

.        Кувыкин, В.А.; Коваль, И.Г.; Кувыкина, М.Ии дрПрикладное программирование в системе КАМА; М.: Финансы и статистика - , - 1 c.

.        Культин, Никита Основы программирования в Delphi 7; СПб: БХВ - Москва, - 8 c.

.        Кьоу, Дж.; Джеанини, МОбъектно-ориентированное программированиеПросто и понятно; СПб: Питер - Москва, - 8 c.

.        Либерти, Джесс Освой самостоятельно C++ за день; М.: Вильямс - Москва, - 6 c.

.        Муртаф, БСовременное линейное программирование; Мир - Москва, - 4 c.

.        Намиот, Д.ЕПрактическое использование MS Windows; Унитех - Москва, - 4 c.

.        Нейгел, КC# для профессионалов; Вильямс - Москва, - 4 c.

Похожие работы на - Язык программирования Turbo Pascal

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!