Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы по информатике.doc
Скачиваний:
24
Добавлен:
23.05.2015
Размер:
288.77 Кб
Скачать

Var v1, v2, v3, …vn: т;

где v1 , v2 , v3 , vn имена переменных данного типа;

Т — тип переменных (REAL, INTEGER, CHAR, BOOLEAN и др.

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

VAR

A, D, Н, С: REAL;

N, M, T: INTEGER;

P, Q: CHAR;

B, S, V: BOOLEAN;

В общем виде простейшее описание массива выполняется следующим образом:

V: ARRAY [N..M] OF T;

где V — имя массива; N и М — нижний и верхний индексы массива; Т — тип массива, записываемый анало­гично типу простых переменных.

Пределы изменения индексов можно задавать в описании константами или именами целого типа. Так, массив состоящий из 50 элементов, описывается двумя способами:

VAR

1) A: ARRAY[. .50] OF REAL ;

2) CONST NMAX=50;

VAR A: ARRAY [1..NMAX] OF REAL;

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

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

CONST IMAX=10; JMAX=15;

VAR C: ARRAY [1..IMAX,1..JMAX] OF INTEGER;

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

Разделы определения типов описания функций процедур рассматриваются далее.

Раздел операторов состоит из составного оператора,

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

запятой.

1.4. Организация программ типовых структур

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

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

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

Общий вид записи оператора:

а : = b

где a – имя переменной; b – выражение.

Примеры записи операторов:

Х : = 0,25 Х : = Х + 0,25

Т : = - 10,6 А : = Т

Два оператора присваивания задают переменным Х и Т числовые значения. Оператор Х : = Х + 0,25 вычисляет новое значение Х, изменяя предыдущее значение Х : = 0,25 на величину 0,25. В операторе А : = Т; переменная А получает значение Т.

Переменная и выражение должны принадлежать одному типу. Допускаются два исключения:

  1. Переменная действительного типа, а выражения целого или ограниченного целого типа;

  2. Выражения ограниченного по отношению к переменной типа и наоборот

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

Для ввода используются операторы:

READ (b1, b2 ,…..bn) ;

READLN (b1, b2,….., bn) ;

Где b1, b2,….., bn – имена переменных, подлежащих вводу данных из стандартного входу файла INPUT, в результате которой имена переменных b1, b2,….., bn получают соответствующие значения. Типы вводимых переменных должны соответствовать типам вводимых значений.

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

Оператор READLN (b1, b2,….., bn) ; обеспечивает выборку данных из стандартного файла INPUT, но после окончания выборки последней переменной осуществляется переход к началу новой строки файла.

При вводе значений переменных целого и действительного типов операторы READ и REАDLN пропускают пробелы между значениями. Оператор READLN ; обеспечивает пропуск одной строки в стандартном файле INPUT и переход к началу новой строки.

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

REАD (A, B, C) ;

READLN (A, B, C) ;

Для ввода информации используются операторы:

WRITE (b1, b2,….., bn) ;

WRITELN (b1, b2,….., bn)

WRITELN;

Где b1, b2,….., bn – имена переменные, подлежащих выводу.

Оператор в WRITELN (b1, b2,….., bn): выполняет вывод значений, соответствующих именам b1, b2,….., bn, стандартный выходной файл OUTPUT и после вывода последнего значения осуществляет переход к новой строке файла OUTPUT.

Оператор WRITELN обеспечивает пропуск строки в файле и переход к началу следующий строки.

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

Примеры записи операторов:

WRITE (A, B, C) :

WRITELN (A, B, C) :

Ширина поля вывода определяется типом устройства, использующего в данной ЭВМ. Форма представления выводимых переменных определяется типом переменных: значение величин целого типа выводятся в обычной форме; значение величин действительного типа – в виде нормализованного числа действительного типа с порядком; значение логического типа – в виду логических значений TRUE и FALSE; значения символьных переменных – в виде соответствующих символов.

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

WRITE (b : m);

WRITELN (b ; m);

Где b – имя выводимой переменной; m – константа или выражение целого типа.

Пример записи:

WRITE (D: 6, IR : 8);

Значения переменных D и IR размещаются в одной строке и занимают соответственно шесть и восемь позиций. Каждое значение размещается в отведённом поле и занимает крайние правые позиции. При этом не заполненные позиции остаются свободными и образуют пробелы. Если значения переменной не размещаются в отведённом поле, то число позиций увеличивается.

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

WRITE ( b : m: n) ;

WRITELN ( b : m: n) ;

Где m – поле, отводимое под запись значения; n – часть поля, отводимого под дробную часть числа.

Пример записи :

WRITE( А : 8: 3) ;

В этом случае под значение А выделяется 8 позиций, три из которых отводятся под дробную часть числа. Если при выводе действительных значений количество позиций, отводимых под дробную часть числа, не указывается, то результат получается в нормализированном виде с десятичном порядком.

При выводе нескольких значений на одной строке для наглядности задаются необходимом количеством пробелов. Дл этого записывают оператор вывода в виде WRITE( ´ ´ :q) ; где q – константа целого типа указывающая число пробелов. Например:

WRITE( А, ´ ´ : 4, B) ;

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

Приведённые ниже примеры демонстрируют различные виды размещений информации при выводе:

PROGRAM PRIM1 (OUIPUT);

CONST PI=3, 141592;

T=401;

W=TRUE;

SIM=´ D´ ;

BEGINE

WRITELN( PI : 8 : 6);

WRITELN( T : 6, ´ ´ : 5, W : 4, ´ ´: 6 , SIM :1);

END.

Информация выводиться в две строки в виде .

3. 141592

401 TRUE D

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

PROGRAM PRIM2 (OUTPUT);

CONST PI=3,141592;

T=401;

W= TRUE;

SIM= ´ D ´;

C=125. 64 E – 3;

BEGINE

WRITELN ( ´ ´ : 5, ´ константы ´ );

WRITELN ( ´ PI = ´ ,PI : 8 : 5);

WRITELN (´ T= ´ , T : 4, ´ ´: 5, ´ W= ´: W = 4;

WRITELN (´ СИМВОЛ ´ ,SIM : 3, ´ ´: 5, ´ C= ´, C=11)

END.

Информация размещается в четырёх строках, первая из которых содержит заголовок:

КОНСТАНТЫ

PI = 3,141592

Т = 401 W = TRUE

СИМВОЛ D C = 0,12504 Е 00

Длина строки, используемой для вывода данных, зависит от типа устройства. Первый символ в списке вывода оператора WRITE служит для задания интервала между строками: + - не пропуска строки ; - пропуск одной строки; 0 – пропуск двух строк ; I – переход к новой страницы перед выводом.+

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

PROGRAM PIRAMIDA

VAR A, B, C, H, P, S, V: REAL;

BEGIN

READ (A,B,C,H);

P:= (A+B+C)/2.0;

S: = SQRT (P (P-A)*(P-B)*(P-C));

V:-S*H/3.01

Write (‘ ОБМЕН выражения V =’ ,V)

END.

Для организации разветвлений программах используются операторы перехода,

Условные и выбора.

Оператор перехода имеет общий вид записи GO TO n, где n – метка.

С Помошъю оператора перехода управление передается оператору, помеченному меткой n, далее выполняются операторы, стоящие за оператором перехода. Примеры записей: GO TO 2; GO TO 25;

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

IF; THEN или IF b THEN a, Else n;

Первая форма записи оператора позволяет организовать вычисление оператора a , если логическое выражение имеет значение TRUE в противном случае выполняется не оператор а , а стоящий за условным . В качестве операторов а, а1, и а2 используется любой простой или составной оператор.

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

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

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

FOR I : = m1 TO m2 DO s;

Где i параметр цикла ( может быть величиной только целого типа); м1 и м2 начальное и конечное параметра цикла; S – тело цикла, которое содержит один или несколько операторов. m1 и m2 можно записать константами или выражениями того же типа , что и тип переменный цикл.

Работа оператором заключается в следующем . Вычисляются выражения м1 и м2 .

Параметр цикла i принимает начальное значение( м1) и сравнивается с конечным значением (м2) . Если параметр цикла не превышает значения м2 , то управление передается в тело цикла и операторы выполняются. Затем параметр цикла меняет значения на 1 , и работа повторяется выход из цикла выполнится после того , как параметр цикла превысит конечное значение , при этом параметр цикла не сохранит свое конечное значение. Заменив в операторе цикла ключевое слово TO на DOWNTO, изменим параметр цикла в обратном порядке с шагом L . Общий вид записи оператора в этом случае имеет вид FOR I : - m1 DOWNTO m2 DO s;

Оператор FOR следует использовать в тех случаях когда заранее известно число повторений или его можно подсчитать. Для вычисления значений функции при изменении аргумента с постоянным шагом H в определенном интервале (от начального xn до конечного xn значения) количество повторений n = (

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

Оператор цикла WHILE позволяет организовать цикл с неизвестным числом повторений , так как оно зависит от вычислений в операторе.

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

Оператор цикла REPEAT позволяет организовать цикл с неизвестным числом повторений. В отличие от оператора WHILE в операторе REPEAT условие проверяется после каждой итерации ; обеспечивается выполнение, по крайней мере, одного вычисления в цикле ( когда значение логического выражения ЛОЖНО); тело цикла может содержать не один а несколько операторов без записи их в составном операторе. Эта особенность записи оператора объясняется тем, что компилятор воспринимает ключевые слово REPEAT BEGIN, а UNTIL как END UNTIL.