Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

для телефона

.pdf
Скачиваний:
8
Добавлен:
14.05.2015
Размер:
562.74 Кб
Скачать

n :integer; Begin clrscr;

Writeln('Введите C, a, n'); Read(C, a, n);

Writeln('Результат:'); Writeln('t’:5,’y’:15); t:=0;

Repeat y:=C*exp(a*t)*cos(n*t); Writeln(t:4:1,’ ‘:5, y:10); t:=t+0.1;

Untile t>=1; End.

30.Реализация цикла с параметром в ЯП

Цикл – это многократно повторяющиеся фрагменты программ. Алгоритм циклической структуры – это алгоритм, содержащий циклы. В ТР существует три оператора цикла:цикл с предусловием, цикл с постусловием, цикл с параметром. Для всех циклов характерны следующие особенности:значения переменных используемых в цикле, и не изменяющиеся в нем д.б. определены до входа в цикл;вход в цикл возможен только через его начало;выход их цикла осуществляется как в результате его естественного окончания, так и с помощью операторов перехода.

Оператор цикла с параметром реализует следующую базовую конструкцию:

Формат записи:

1.For P:=Pn to Pk do OP;

2.For P:=Pk downto Pn do OP;

где: For - для;to – до;downto – уменьшая до;do – выполнить;OP – тело цикла; оператор (простой или составной); P - параметр цикла, переменная порядкового типа; Pn, Pk – начальное и конечное значение параметра. Работа оператора: Вычисляется начальное значение параметра цикла Pn и

присваивается параметру P. Проверяется условие P?Pk, и если

оно Trueвыполняются операторы тела цикла OP . После чего наращивается значение P на единицу и опять проверяется условие P?Pk . Если

условие False осуществляется выход из цикла.

В операторе с downto шаг изменения параметра цикла равен –1. Примеры записи:

For i:=1 to n do n:=sqr(i)+1;

For s:=’A’ to ‘Z’ do R:=R+ord(s)/127;

For L:=False to True do H:= (False or L) And Not (L);

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

где: C=2,7; a=0.5; t=0,1; 0<n<10; Dn=1. Program Ex_3;

Uses crt;

 

Var y, C, a, t :real; n

:integer;

Begin

 

clrscr;

 

Writeln('Введите C, a,

t');

Read(C, a, n);

 

Writeln('Результат:');

 

Writeln(‘n’:5,’y’:15);

 

For n:=1 to 10 do

 

Begin

 

y:=C*exp(a*t)*cos(n*t); Writeln(n:4,’ ‘:5, y:10); end;

End.

31. Процедуры и функции пользователя в ЯП.

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

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

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

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

состоит из зарезервированного слова procedure, идентификатора (имени) процедуры и необязательного, заключенного в круглые скобки, списка формальных параметров с указанием типа каждого параметра. Имя процедуры

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

procedure <имя> (Формальные параметры); const ...;

type ...; var ...; begin

<операторы процедуры> end;

Функции

Функция, определенная пользователем, состоит из заголовка и тела функции. Заголовок содержит зарезервированное слово function, идентификатор (имя) функции, заключенный в круглые скобки, необязательный список формальных параметров и тип возвращаемого функцией значения. Тело функции представляет собой локальный блок, по структуре аналогичный программе: function <имя> (Формальные параметры) : тип результата;

const ...; type ...; var ...; begin

<операторы функции> end;

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

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

32. Оператор безусловного перехода goto.

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

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

label1: оператор

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

label 1,2,3;

Например, в результате выполнения программы label 1,2;

begin var i := 5;

2: if i<0 then goto 1; write(i);

Dec(i); goto 2; 1: end.

будет выведено 543210.

Метка должна помечать оператор в том же блоке, в котором описана. Метка не может помечать несколько операторов.

Переход на метку может осуществляться либо на оператор в том же блоке, либо на оператор в объемлющей конструкции. Так, запрещается извне цикла переходить на метку внутри цикла.

Использование оператора безусловного перехода в программе считается признаком плохого стиля программирования. Для основных вариантов использования goto в язык Паскаль введены специальные процедуры: break - переход на оператор, следующий за циклом, exit - переход за последний оператор процедуры, continue - переход за последний оператор в теле цикла. Единственный пример уместного использования оператора goto в программе - выход из нескольких вложенных циклов одновременно. Например, при поиске элемента k в двумерном массиве:

var a: array [1..10,1..10] of integer;

...

var found := False; for var i:=1 to 10 do for var j:=1 to 10 do if a[i,j]=k then begin

found := True; goto c1;

end;

c1: writeln(found);

33. Общая схема структуры программы в ЯП.

Общая структура программы на языке Pascal имеет вид Program Имя программы;

Uses Подключаемые библиотеки (модули);

Label Список меток основной программы; Const Введение констант;

Type Описание новых типов;

Var Описание переменных и их типов; Определение процедур; Определение функций;

Begin

Тело основной программы; End.

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

Uses – в Паскале вспомогательные готовые программы собранные в библиотеки (модули). Например, процедуры рисования точек, линий, окружностей на экране содержатся в модуле graph. Модули объявляются в этом блоке. Если подключать дополнительные библиотеки не нужно, блок отсутствует. Большинство важнейших ключевых системных библиотек подключаются автоматически (по умолчанию).

Label – блок описания меток, содержит их имена перечисленные через запятую. Метки используются для организации переходов в программе. Если метки не нужны, блок отсутствует.

Const – блок описания простых и типизированных констант. Может отсутствовать если константы в программе не предусмотрены.

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

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

Begin - end. – служебные слова, обрамляющие тело основной программы, где находятся исполняемые операторы. Т.о. Begin начинает исполняемую часть

программы, а end. (точка в конце обязательна) – ее завершает. Т.о. теоретически в минимально возможном наборе программа может состоять только из пустого тела begin end.

34. Переменные.

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

Переменная имеет:Имя (x, text, bm,), значение (число, текст, символ ) ,тип (целый, вещественный, символьный, строковый)

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

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

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

Имя и тип разделяются двоеточием.

После объявления и описания переменной должен стоять символ ";". Концом блока описания будет начало какого-либо другого блока программы или описание процедур и функций.

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

Тип переменной

Целый тип (Byte, Integer)– для использования целых чисел Вещественный тип (Real)– для использования дробных чисел

Символьный тип (Char)– это любые буквы алфавита, символы и цифры 0-9 (один символ). Использование отдельных символов, заключаются в знаки апострофов, например 'а', '4', '+', '-', либо код символа #126

Строковый тип (составной) (String)– для использования наборов символов, заключенных в знаки апострофов, например 'тип', '123' Напомним, что каждый модуль (процедура, функция, программа) состоит из заголовка (procedure…, function…, program…) и блока.

Если блок какой-либо процедуры p1 содержит внутри процедуру p2, то говорят, что p2 вложена в p1.

Любые идентификаторы, введенные внутри какого-либо блока (процедуры, функции) для описания переменных, констант, типов, процедур, называются локальными для данного блока. Такой блок вместе с вложенными в него модулями называют областью действия этих локальных переменных, констант, типов и процедур.

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

35Константы

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

Константы подразделяются на два вида - истинные (true constants)

и типизированные (typed). Истинные константы - собственно и есть константы в чистом виде. Типизированные константы - константы которые могут содержать типизированные значения. Например можно объявить массив-константу или запись-константу.

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

изначально никакое значение, а константе изначально присвоено конкретное значение определенное в коде программы. Формат объявления типизированной константы:

ConstantIdent:DataType=ConstantExpression; ConstantIdent - идентификатор константы.

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

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

Пример объявления констант: const

A=10;

B='Linux must die'; E:Real=2.71; C=A+5;

D:array[0..4] of Integer=(5, A, 1, C, 123)

Константы могут быть встроенными и определяемыми, к слову константа Pi встроенная и для того чтобы использовать число 3,1415… в расчетах, нужно присвоить встроенную константу Pi переменной типа Real или просто использовать непосредственно в выражениях, нетрудно догадаться что встроенной константантой также является, например, число e.

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

36

37. Вывод данных в ЯП(на экран,в файл,на печать)

Вывод данных на экран и в файл в языке

программирования Pascal осуществляется с помощью процедурwrite() и writeln(). Здесь будет рассмотрен вывод только на экран.

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

Write() чаще используется, когда надо вывести для пользователя сообщение на экран, после чего получить данные, не переводя курсора на новую строку. Например, выводим на экран "Введи число: " и не переводим курсор на новую строку, а ждем ввода.

Еще один пример. В памяти компьютера хранятся данные. Из программы мы обращаемся к ним с помощью переменных num, fl и st. Вывести их значения на экран можно по-разному.

1)var

Num: integer; Fl; real;

St: string; Begin Num:=5; Fl:=2.84; Sl:=’box’; Writeln(num); Writeln(fl); Write(st); Readln

End.

2)var

Num: integer; Fl; real;

St: string; Begin Num:=5; Fl:=2.84;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]