Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1билет. Информация и информатика. Информационна...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
945.66 Кб
Скачать

Тело процедуры

END;

FUNCTION_имя(формальные параметры:тип):тип результата;

BEGIN

Тело функции

END;

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

BEGIN

Операторы программы через ;

END.

Билет 34 Пунктуация в программах на Паскале Алфавит и словарь языка

Правила пунктуации.

  1. точка с запятой не ставиться после зарезервированных слов unit, label, uses, type, const, var и ставиться после завершения каждого описания;

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

  3. точка с запятой является разграничителем операторов, ее отсутствие вызывает ошибку компиляции;

  4. в операторах цикла точка с запятой не ставится после слов while, repeat, do и перед until;

  5. в условных операторах точка с запятой не ставиться после then и перед else.

Алфавит и словарь языка.

Символы языка – элементарные знаки, используемые для составления текстов. Они составляют алфавит языка. Программа на Паскале формируется с помощью конечного набора знаков, образующих алфавит языка, и состоит из букв, десятичных цифр и специальных символов.

В качестве букв используются прописные и строчные буквы латинского алфавита, знак подчеркивания. Также при написании программ используются специальные символы: +, -, *, /, =, <, >, [ ], { }, ( ), @, ., ,, :, ;, ‘, #, $,^. Комбинации специальных символов могут образовывать составные символы:

:= - присваивание;

<> - не равно;

.. - диапазон значений;

<= - меньше или равно;

>= - больше или равно.

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

Зарезервированное или служебное слово – это слово, которое в языке программирования имеет определенное смысловое значение (на экране в среде Паскаль такие слова выделяются белым цветом

Билет 35 константы и переменные. Типы данных

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

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

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

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

CONST_идентификатор=значение константы;

Пример 2.

CONST а=2.2; s=3;

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

Каждая переменная и константа в программе принадлежит к определенному типу данных. Тип констант автоматически распознается компилятором без предварительного описания. Тип переменных должен быть обязательно (в отличие от ТВ) описан в разделе описания типов данных (см. структуру программы). Для описания переменных служит команда:

VAR_идентификатор : тип;

Пример 3.

VAR: n, I, j: integer; x, z: real;

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

Классификация типов данных представлена на рис.1.

Рис.1. Классификация типов данных.

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

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

Литерный (символьный) тип определяется множеством значений кодовой таблицы персонального компьютера. В программе значения переменных и констант типа char должны быть заключены в апострофы.

Булевский тип представлен двумя значениями True (истина) и False (ложь) и используется в логических выражениях и выражениях отношения.

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

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

Строка – это последовательность символов кодовой таблицы ЭВМ. При использовании в выражении строка заключается в апострофы. Над строковыми данными допустимы операции сцепления (+) и операции отношения (=, <>, <, >, >=, <=).

Билет 36 Массив – это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип. Элементами массива могут быть данные любого типа, число элементов массива фиксируется при описании и в процессе выполнения программы не может быть изменено. Доступ к каждому элементу массива осуществляется также как и в ТВ путем индексирования элементов массива, только в Паскале индексы элемента массива записываются в квадратных скобках. Ввод и вывод элементов массива производится поэлементно, обычно для этой процедуры используются циклы.

Для описания массива предназначено словосочетание ARRAY OF. Описать массив можно в разделе описания переменных или в разделе описания типов данных, используя следующие операторы:

1) TYPE_имя типа=ARRAY[тип индекса]_OF_тип элементов массива;

2) VAR_имя массива1[, имя массива2…]:имя типа;

Пример 4. а) Описание массивов в разделе описания типов данных (задаются одномерные массивы из пяти элементов вещественного типа с именами m1, rez).

TYPE mass=array [1..5]of real;

VAR m1, rez: massiv;

б) Описание массива в разделе описания переменных.

VAR matrix: array [1..5,1..7] of integer;

Билет 37 Выражения, операнды и операции.

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

Арифметические операции выполняют арифметические действия в выражениях над значениями операндов целочисленных и вещественных типов. Основные из них приведены ниже:

+ - сложение;

- - вычитание;

* - умножение;

/ - деление;

div – целочисленное деление (возвращает целую часть частного, дробная часть отбрасывается);

mod – деление по модулю (восстанавливает остаток, полученный при выполнении целочисленного деления).

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

= - равно;

<> - не равно;

> - больше;

< - меньше;

>= - больше или равно;

<= - меньше или равно.

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

not – логическое отрицание;

and – логическое И;

or – логическое ИЛИ;

xor – исключающее ИЛИ.

Выполнение операций происходит с учетом их приоритета: высший приоритет имеет операция отрицания, второй – операции типа умножения, третий – операции типа сложения, четвертый – операции типа отношения.

Билет 38. Простые операторы. языка Паскаль

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

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

Оператор присваивания (:=) предписывает выполнить выражение в его правой части, и присвоить результат переменной, идентификатор которой расположен в левой части:

идентификатор:=выражение;

Переменная и выражение должны иметь один и тот же тип.

Оператор безусловного перехода (GOTO) означает «перейти к» и имеет формат:

GOTO_метка;

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

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

имя процедуры[(список параметров)];

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

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

Билет 39 Структурные операторы. Составной оператор. Оператор условия

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

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

BEGIN

[Оператор1;

ОператорN]

END;

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

Условные операторы обеспечивают выполнение или невыполнение некоторого оператора, группы операторов или блока в зависимости от заданных условий.

Оператор условия может принимать одну из следующих форм:

IF_условие_THEN_оператор1_ELSE_оператор2;

IF_условие_THEN_оператор;

Условие – выражение булевского типа, при его записи могут использоваться все возможные операции отношения. Если значение выражения истинно, то выполняется оператор1, если ложно – оператор2. Во втором варианте, если выражение ложно, то выполняется оператор, следующий в программе сразу за оператором IF. Один оператор IF может входить в состав другого оператора IF, т.е. этот оператор может быть вложенным. При вложенности операторов каждое ELSE соответствует тому THEN, которое ему непосредственно предшествует.

Билет 40 Оператор повтора FOR Операторы повтора используются при организации циклов.

Оператор повтора FOR состоит из заголовка и тела цикла и может иметь два формата:

1. FOR_параметр-цикла:=S1_TO_S2_DO_оператор;

2. FOR_параметр-цикла:=S1_DOWNTO_S2_DO_оператор;

S1 и S2 – выражения, определяющие начальное и конечное значение параметра цикла. FOR…DO – заголовок цикла, оператор – тело цикла. Тело цикла может быть простым или составным оператором. Оператор FOR обеспечивает выполнение тела цикла с увеличением параметра цикла (TO) или с уменьшением параметра цикла (DOWNTO) на единицу.

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

Пример 9. 1)Вычисление переменных А и В, значения которых зависят от переменной цикла, и их печать.

FOR I:=1 TO 4

BEGIN A:=2*I; B:=4+I

WRITELN(A:3,B:4)

END;

2) Перевод угла в градусах в радианы.

WRITELN(‘угол в градусах угол в радианах’);

FOR I:=0 TO 18 DO BEGIN

GRAD:=I*20;

RAD:=GRAD*PI/180;

WRITELN(‘ ‘,GRAD:12:2,’ ‘,RAD:12:4);

END;

Билет 41 Оператор повтора WHILE Операторы повтора

Оператор повтора WHILE аналогичен оператору REPEAT, но проверка условия выполнения тела цикла производится в начале цикла. Оператор имеет формат:

WHILE_условие_DO_тело цикла;

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

Все операторы повтора могут быть вложенными.

Пример 11. 1) Увеличение переменной I на 2 до тех пор, пока она меньше 30.

I:=10;

WHILE I<30 DO I:=I+2;

2) Вычисление переменных А и N по заданным формулам до тех пор, пока 2*A не станет меньше или равно 3*N+1.

A:=1; N:=2;

WHILE 2*A<=3*N+1 DO

BEGIN A:=A*2;

N:=N+1;

END;

3) Перевод угла в радианах в градусы.

RAD:=0;

WRITELN(‘угол в радианах угол в градусах’);

WHILE RAD<6,28 DO BEGIN

GRAD:=RAD*180/PI;

WRITELN(‘ ‘,RAD:12:4,’ ‘,GRAD:12:2);

RAD:=RAD+0.1;

END

Билет 42 Оператор повтора REPEAT Операторы повтора

Оператор повтора repeat имеет формат:

REPEAT

тело цикла;

UNTIL_условие;

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

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

Пример 10. Вычисление y=x2 при x=8, 6, 4, 2.

X:=8

REPEAT

Y:=SQR(X);

WRITELN (X:3,Y:4);

X:=X-2

UNTIL X=0;

Билет 43-44 Ввод-вывод.

Процедуры ввода-вывода.

Для выполнения операций ввода-вывода служат четыре процедуры: READ, READLN, WRITE, WRITELN. Примеры использования этих процедур приведены в этой главе и в ранее рассмотренных примерах 6, 7, 9,11.

Очистка экрана осуществляется командой CLRSCR и может выполняться только в текстовом режиме работы экрана.

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

READ([имя-файла,] переменная1, переменная2,…переменнаяN);

Здесь переменные – переменные допустимых типов данных, значения этих переменных набираются минимум через один пробел на клавиатуре и высвечиваются на экране. Набираемые значения должны соответствовать типам переменных. После набора данных для процедуры READ нажимается клавиша ENTER. Имя-файла – имя файла, откуда будет выполнятся чтение. Число переменных в списке может быть любым, разделяются переменные запятыми.

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

Пример 12. При выполнении приведенных ниже операторов, после набора на клавиатуре значений А и В курсор автоматически перейдет на новую строку, где набирают значение переменной NOMER.

READLN(A,B);

READLN(NOMER);

Процедура записи WRITE производит вывод числовых данных, символов, строк и булевских значений и имеет формат:

WRITE([имя-файла,]переменная1, переменная2,…переменнаяN);

Имя-файла – имя файла, куда производится вывод. Для вывода на принтер имя-файла – LST, при выводе на экран дисплея этот параметр в команде отсутствует. Переменная – переменная типа INTEGER, BYTE, REAL, CHAR, BOOLEAN и т.д.

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

Для обработки текстовых файлов используются процедура READ, READLN и WRITE, WRITELN, обеспечивающие соответственно чтение и запись величин в текстовый файл. Общий формат этих процедур при работе с текстовым файлом:

READ(имя файловой переменной; переменная1, переменная2,…переменнаяN);

WRITE(имя файловой переменной; переменная1, переменная2,…переменнаяN);

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

После работы с файлом его необходимо закрыть командой:

CLOSE(имя файловой переменной);

В Паскале для обработки признака конце файла используется логическая функция EOF, аргументом которой является имя файловой переменной и которая принимает значение истина тогда, когда достигнут конец файла.

Билет 45 Процедуры и функции

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

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

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

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

Наиболее часто используемые арифметические встроенные функции:

ABS(X) – вычисление абсолютной величины Х;

ARСTAN(X) – вычисление угла, тангенс которого равен Х, значение угла представляется в радианах;

COS(X) – вычисление косинуса Х, параметр задает значение угла в радианах;

SIN(X) - вычисление косинуса Х, параметр задает значение угла в радианах;

EXP(X) – вычисления значения еХ;

INT(X) – вычисление целой части Х;

LN(X) – вычисление натурального логарифма Х;

SQR(X) – возведение значения Х в квадрат;

SQRT(X) – извлечение квадратного корня из Х;

PI – функция возвращает значение числа ;

RANDOM(N) – генерирует значение случайного числа в диапазоне от 0 до N, тип результата целочисленный;

RANDOM – генерирует значение случайного числа в диапазоне от 0 до 0,99, тип результата вещественный.

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

tg(x)=sin(x)/cos(x); ctg(x)=cos(x)/sin(x);

lg(x)0,43429ln(x); ;

; .

В Паскале нет функции возведения в степень, поэтому для вычисления ZX необходимо записать EXP(X*LN(Z)), причем число Z должно быть больше нуля.

Встроенные процедуры ввода-вывода (WRITE, WRITELN, READ, READLN) были рассмотрены в главе 4.