Контрольная работа по «Информатике»

Автор работы: Пользователь скрыл имя, 24 Февраля 2014 в 16:52, контрольная работа

Краткое описание

Какие символы входят в алфавит языка Pascal?
Расскажите о стандартных типах языка.
Каковы правила записи арифметического выражения.
Какова последовательность действий при выполнении арифметического оператора присваивания?
Чем отличаются процедуры read и readln?
В чем разница между полной и сокращенной формами записи условного оператора?

Вложенные файлы: 1 файл

Информатика1.doc

— 144.00 Кб (Скачать файл)

Это указание естественно сформулировать с использованием отношения x>y. Если это отношение при текущих значениях x и y справедливо (принимает значение true), то для исполнения должен выбираться оператор z:=x; в противном случае для исполнения должен выбираться оператор z:=y (при x=y безразлично, какой оператор выполнять, так что выполнение оператора z:=y в этом случае даст правильный результат).

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

if B then S1 else S2

Здесь if (если), then (то) и else (иначе) являются служебными словами, В – логическое выражение, а S1 и S2 – операторы.

Выполнение такого условного оператора в Паскале сводится к выполнению одного из входящих в него операторов S1 или S2: если заданное в операторе условие выполняется (логическое выражение В принимает значение true), то выполняется оператор S1, в противном случае выполняется оператор S2.

Алгоритм решения упомянутой выше задачи вычисления z= max( x, y) можно задать в виде условного оператора Паскаля

if x>y then z:= x else z:= y

При формулировании алгоритмов весьма типичной является такая ситуация, когда на определенном этапе вычислительного процесса какие-либо действия надо выполнить только при выполнении некоторого условия, а если это условие не выполняется, то на данном этапе вообще не нужно выполнять никаких действий. Простейшим примером такой ситуации является замена текущего значения переменной х на абсолютную величину этого значения: если x<0, то необходимо выполнить оператор присваивания x:= - x; если же x>=0, то текущее значение х должно остаться без изменений, т.е. на данном этапе вообще не надо выполнять каких-либо действий.

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

if B then S

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

В языке программирования Паскаль в условном операторе между then и else, а также после else по синтаксису может стоять только один оператор. Если же при выполнении (или невыполнении) заданного условия надо выполнить некоторую последовательность действий, то их надо объединить в единый, составной оператор, т.е. заключить эту последовательность действий в операторные скобки begin... end (это важно!). Если, например, при x< y надо поменять местами значения этих переменных, то условный оператор будет записан следующим образом в Паскале:

if x<y then begin r:=x; x:=y; y:=r end

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

if B1 then if B2 then S1 else S2

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

как полный условный оператор Паскаля вида

if B1 then begin  
if B2 then S1 end 
else S2

как сокращенный условный оператор Паскаля вида

if B1 then begin 
if B2 then S1 else S2 end

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

 

  1. Может ли условный оператор содержать в себе другие условные операторы?

 

 

 

 

 

  1. Как выполняется программа при наличии оператора перехода?

 

Определены четыре оператора перехода: return, goto, break и continue. Операторы return и goto можно использовать в любом месте внутри функции. Операторы break и continue можно использовать в любом из операторов цикла.

Оператор return

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

Общая форма оператора return следующая:

return выражение;

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

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

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

Оператор goto

Кроме goto, в языке С есть другие операторы управления (например break, continue), поэтому необходимости в применении goto практически нет. В результате чрезмерного использования операторов goto программа плохо читается, она становится "похожей на спагетти". Чаще всего такими программами недовольна администрация фирм, производящих программный продукт. То есть оператор goto весьма непопулярен, более того, считается, что в программировании не существует ситуаций, в которых нельзя обойтись без оператора goto. Но в некоторых случаях его применение все же уместно. Иногда, при умелом использовании, этот оператор может оказаться весьма полезным, например, если нужно покинуть глубоко вложенные циклы[1]. В данной книге оператор goto рассматривается только в этом разделе.

Для оператора goto всегда необходима метка. Метка — это идентификатор с последующим двоеточием. Метка должна находится в той же функции, что и goto, переход в другую функцию невозможен.

Оператор break

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

Когда внутри цикла встречается оператор break, выполнение цикла безусловно (т.е. без проверки каких-либо условий.) прекращается и управление передается оператору, следующему за ним.

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

Оператор break вызывает выход только из внутреннего цикла.

Если оператор break присутствует внутри оператора switch, который вложен в какие-либо циклы, то break относится только к switch, выход из цикла не происходит.

Функция exit()

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

Общая форма функции exit() следующая:

void exit (int код_возврата);

Значение переменной код_возврата передается вызвавшему программу процессу, обычно в качестве этого процесса выступает операционная система. Нулевое значение кода возврата обычно используется для указания нормального завершения работы программы. Другие значения указывают на характер ошибки. В качестве кода возврата можно использовать макросы EXIT_SUCCESS и EXIT_FAILURE (выход успешный и выход с ошибкой). Функция exit() объявлена в заголовочном файле <stdlib.h>.

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

Оператор continue

Можно сказать, что оператор continue немного похож на break. Оператор break вызывает прерывание цикла, a continue — прерывание текущей итерации цикла и осуществляет переход к следующей итерации. При этом все операторы до конца тела цикла пропускаются. В цикле for оператор continue вызывает выполнение операторов приращения и проверки условия цикла. В циклах while и do-while оператор continue передает управление операторам проверки условий цикла.

Каждый символ строки сравнивается с пробелом. Если сравниваемый символ не является пробелом, оператор continue передает управление в конец цикла for и выполняется следующая итерация. Если символ является пробелом, значение переменной space увеличивается на 1.

Функция code предназначена для кодирования сообщения путем замены каждого символа символом, код которого на 1 больше кода исходного символа в коде ASCII. Например, символ А заменяется символом В (если это латинские символы.). Функция прекращает работу при вводе символа $. При этом переменной done присваивается значение 1 и оператор continue передает управление на условие цикла, что и прекращает выполнение цикла.

 

  1. Какова структура оператора варианта?

 

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

Оператор варианта

Case <порядковая переменная> Of

<константа1> : <оператор1>;

<константа2> : <оператор2>;

...

<константа n> : <оператор n>;

[ Else <оператор>; ]

End;


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

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

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

 

  1. Какие формы оператора цикла с параметром вам известны?

 

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

перед началом цикла задать начальное значение параметра;

внутри цикла изменять параметр цикла с помощью оператора присваивания;

проверять условие повторения или окончания цикла;

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

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

Оператор цикла с параметром

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

For параметр := a to b do тело цикла;

For параметр := a downto b do тело  цикла;

где a и b - величины целого типа, причем а - начальное значение, а b - конечное значение переменой - параметра.

Сначала вычисляются значения выражений а и b. Если а окажется меньшим или равным b, то параметр последовательно принимает значения, равные а, а+1, …, b-1, b, и для каждого из этих значений выполняется тело цикла. Если же а>b, то тело цикла не будет выполнено ни разу, и управление будет передано следующему оператору программы.

Оператор

For параметр := a downto b do тело  цикла;

выполняется аналогичным образом, но параметр принимает значения, равные а, а-1, …, b+1, b. Если тело цикла состоит из нескольких операторов, то операторы тела цикла заключаются в операторные скобки begin - end. Например:

 

For x: =1 to 10 do writeln (x); 
For i: =10 to 100 do y: =y+5;


 

Оператор while

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

Оператор имеет вид:

While условие do тело цикла;

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

Информация о работе Контрольная работа по «Информатике»