48621 (Разработка программ в среде программирования Turbo Pascal 7.0), страница 2

2016-07-30СтудИзба

Описание файла

Документ из архива "Разработка программ в среде программирования Turbo Pascal 7.0", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "48621"

Текст 2 страницы из документа "48621"

X:=y;

z:=a+b;

r:=( i>0) and (i<100);

Оператор безусловного перехода goto . Использование меток.

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

Метки, используемые в паскале должны быть двух типов:

  • целым числом в пределах от 0 до 9999;

  • обычным идентификатором.

Структурированными операторами являются такие операторы, которые состоят из других операторов:

  • составной

  • условный оператор if

  • условный оператор case

  • оператор цикла repeat

  • оператор цикла while

  • оператор цикла for

  • оператор над записями with

Cоставной оператор

Составной оператор представляет из себя совокупность последовательно выполняемых операторов, заключенных в операторные скобки begin и end;

begin

оператор1;

оператор2;

.................

операторn;

end;

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

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

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

Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие.Таким образом,условный оператор-это средство ветвле-ния вычислительного процесса.

Структура условного оператора имеет следующий вид:

IFTHENELSE,

где IF, THEN, ELSE - зарезервированные слова (англ.если,то,иначе);

-произвольное выражение логического типа;

,-любые операторы Паскаля.

Условный оператор работает по следующему алгоритму.Вначале

выполняется условное выражение.Если результат есть TRUE,то вы-

полняется ,апропускается; если результат есть FALSE,то,наоборот, пропускается,а выполняется .

Часть оператора ELSE может быть опущена.Тогда при значении условного выражения ТRUE выполняется , в противном случае этот оператор пропускается.

Поскольку каждый из операторов и может быть оператором любого типа,в том числе и условным,а в то же время не каждый из “вложенных” условных операторов может иметь часть ELSE,то возникает неоднозначность трак-товки условий. Эта неоднозначность в Паскале решается следующим образом: любая встретившаяся часть ELSE соответствует ближайшей к ней “сверху” части THEN условного оператора. Например:

Пример программы, анализирующей принадлежит ли точка с координатами x,y прямоугольнику с координатами вершин x1,x2,y1,y2.

СТРОКИ

ОПИСАНИЕ ТИПА

Для обработки последовательностей символов в ТУРБО-ПАСКАЛЕ предусмотрены строчные типы. Строчные типы - это структурные типы. Количество символов в строке (длина строки) может динамически изменяться от 0 до 255. Для определения данных строкового типа используется идентификатор string, за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки данного типа. Если размер строки не указан, то он считается равным 255.

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

Допускается смешение в одном выражении операндов строкового и литерного типа. Если при этом литерной переменной присваивается значение строкового типа, длина строки должна быть равна единице, иначе возникает ошибка выполнения. К отдельным символам строки, можно обратиться по номеру (индексу) данного символа в строке. Индекс определяется выражением целочисленного типа, которое записывается в квадратных скобках сразу за идентификатором строковой переменной или константы.

ПРОЦЕДУРЫ

Delete(St,Pos,N) - удаление N символов строки St, начиная с

позиции Pos. Если значение Pos > 255, возникает ошибка.

Значение St Выражение Результат

'река Волга' Delete(Str, 1, 5); 'Волга'

Insert(Str1,Str2,Pos) - вставка строки Str1 в строку Str2,

начиная с позиции Pos.

П р и м е р:

Var S1, S2, S3 : string[11];

...

S1 := ' ЕС '; S2 := 'ЭВМ1841 '; S3 := Insert(S1,S2,4);

Р е з у л ь т а т:

'ЭВМ ЕС 1841'.

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

Значение Выражение Результат

4.8E+03 Str(IBR:10,St); ' 4800'

Val(St,IBR,Cod) - преобразует значение St в величину целочисленного или вещественного типа и помещает результат в IBR. Значение St не

должно содержать незначащих пробелов в начале и в конце. Cod - целочисленная переменная.

Если во время операции преобразования ошибки не обнаружено, значение Cod равно нулю, если ошибка обнаружена, Cod будет содержать номер позиции первого ошибочного символа, а значение IBR не определено.

Записи.

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

Например, чтобы описать в программе время суток (10.45 утра или 7.15 вечера) , можно использовать структуру данных следующего формата:

часы

минуты

до полудня

в которой 10.45 утра может храниться как

10

45

true

а 7.15 вечера :

7

15

false

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

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

К каждому компоненту записи можно обратиться, используя имя переменной типа записи и имя поля, разделенные точкой: now.hour, later.befornoon;

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

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

год продажи: целое в диапазоне 1900..2099;

код продукции: четырехзначное целое ;

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

Массивы записей.

Ввести список студентов из 5 человек, включающий в себя фамилию (10 символов), год рождения ( четырехзначное целое), оценки ( массив из 5 целых чисел).

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

ПРОЦЕДУРЫ и ФУНКЦИИ

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

Для обеспечения большей компактности программы и повышения её наглядности язык Паскаль позволяет выделить любой частный алгоритм из программы и записать его только один раз, представив этот частичный алгоритм в качестве самостоятелной программной единицы , называемой процедурой.

ПОДПРОГРАММА-ПРОЦЕДУРА

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

  • раздел описаний (меток , констант , типов , переменных процедур и функций);

  • раздел операторов, представляющий собой составной оператор BEGIN-END.

Процедура состоит , аналогично программе , из заголовка и тела процедуры.

Заголовок процедуры имеет вид:

PROCEDURE имя (список формальных параметров);

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

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

PROCEDURE имя;

Всякая подпрограмма-процедура может содержать свои внутренние или вложенные процедуры.Степень вложенности определяется возможностями машины.

Заканчивается блок процедуры точкой с запятой.

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

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

имя (список формальных параметров);

где имя-имя вызываемой процедуры;

список формальных параметров-перечень конкретных зна чений (выражений) и имен , передаваемых из основной программы в процеду-

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

ФУНКЦИИ

Заголовок содеpжит заpезеpвиpованное слово

FUNCTION,идентификатоp(имя) функции,заключенный в кpуглые скобки,необязатель-ный список фомальных паpаметpов и тип возвpащаемого функцией значения. FUNCTION {(фоpмальные паpаметpы)}:;

Имя функции-уникальный идентификатоp в пpеделах блока.Возвpащаемый pезультат может иметь любой скаляpный тип,тип string и тип “указатель”. Тело функции пpедставляет собой локальный блок,по стpуктуpе аналогичный пpогpамме:

function{(фоpмальные паpаметpы)}:;

begin

end;

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

Процедурные типы данных.

В Turbo Pascale процедуры и функции можно рассматривать как некоторые параметры и можно использовать переменные, принимающие значение процедуры или функциию С этой целью вводятся процедурные типы, которые указывают , какой вид подпрограммы можно использовать в качестве параметра и с какими параметрами должны быть эти одпрограммы.

Описание переменных процедурного типа:

type имя_типа1=procedure( формальные_параметры);

имя_типа2=function(формальные параметры): тип;

var имя1:имя_типа1;

имя2:имя_типа2;

Все процедуры и функции , имена которых присваиваются процедурным переменным, необходимо транслировать в режиме { $F+}. Вложенные функции и процедуры, т.е. , описанные внутри других процедур , с процедурными переменными использовать нельзя.Это не должны быть также стандартные роцедуры и функции.

ОПЕРАТОРЫ ВВОДА - ВЫВОДА

Для ввода данных в языке ПАСКАЛЬ предусмотрены стандартные процедуры READ и

READLN. Разлличают три вида операторов ввода:

а) READ(a1,a2,...,aN)-каждое вводимое значение поллучают послледовательно переменные a1,a2,...,aN

б) READLN(A1,A2,...,An)-переменным A1,A2,...,An присвиваются последовательно вводимые значения, после чего следующий оператор ввода вводит данные с новой строки.

в) READLN-переход на новую строку при вводе.

В языке ПАСКАЛЬ допускается вводить целые,действительные и символьные данные. Логические данные вводить не разрешается.

ВВОД ЧИСЛОВЫХ ДАННЫХ

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

При выполнении программы происходит останов программы привстрече

READ(A,B,C), на клавиатуре необходимо набрать три действительных числа, после чего с новой строки два целых числа соответственно оператору

READ(K,T),например:

0.5 6.23 -7.1 [enter]

3 48 [enter]

ВВОД СИМВОЛЬНЫХ ДАННЫХ

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

Пример ввода:

var a,b,c:char;

...........

read(a,b,c);

Если при вводе ввести данные -- SNR [enter] -- получим:A='S',B='N',C='R'

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Нет! Мы не выполняем работы на заказ, однако Вы можете попросить что-то выложить в наших социальных сетях.
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
4123
Авторов
на СтудИзбе
667
Средний доход
с одного платного файла
Обучение Подробнее