Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы теория Паскаль билеты 1 -10.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
1.72 Mб
Скачать

Правила записи арифметических выражений

  1. Выражение записывается в одну строку, верхние и нижние индексы не допускаются.

  2. Нельзя пропускать знаки операций.

  3. Нельзя записывать подряд два знака операций.

  4. Число открывающихся скобок должно быть равно числу закрывающихся скобок.

Очередность выполнения операций в выражениях (приоритет)

  1. Функции.

  2. Операции в скобках.

  3. Умножение, деление, целочисленное деление, остаток от целочисленного деления.

  4. Сложение, вычитание.

2. Составить блок-схему алгоритма, реализующего заполнение двумерного массива.

БИЛЕТ 4

Логические выражения.

Логическое выражение — это такое выражение, которое может принимать только два значения: True или False.

Например: 1) (a<>b) and f , 2) 5=6*i, 3) s or (g>8).

Результатом выполнения логического (булевского) выражения является логическое значение True и False. Значение типа boolean занимает в памяти 1 байт. Операндами служат данные только логического типа.

а) операции отношений;

Операции отношения выполняют сравнение двух операндов и определяют, истинно значение выражения или ложно.

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

                                                   Операции отношения

Операция

Название

Выражение

Результат

=

Равно

A=B

True, если А равно В

<> 

Не равно

A<>B

True, если А не равно В

Больше

A>B

True, если А больше В

меньше

A<B

True, если А меньше В

>=

Больше или равно

A>=B

True, если А больше или равно В

<=

Меньше или равно

A<=B

True, если А меньше или равно В

В состав выражения отношения могут входить

-          один из знаков операций сравнения (отношения) (<|>|=|<>|<=|>=);

-          два операнда.

В качестве операндов могут выступать:

-          два любых арифметических выражения;

-          две величины (заданные переменными или константами) одного порядкового типа.

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

В языке Pascal операции отношения определены для величин любого порядкового типа (целые, символьный, логический, перечислимый, диапазон). Операции отношения могут быть выполнены также над строковыми выражениями. Сравнение двух строк выполняется посимвольно слева направо в соответствии с их лексикографической упорядоченностью в таблице кодов ASCII. Эта упорядоченность предполагает, что "1"<"2", "a"<"b", "B"<"C" и т.д. Как только в процессе попарных сравнений символов с одинаковой порядковой позицией обнаруживается больший по коду ASCII символ, данный процесс прекращается, и считается, что строка с этим символом соответственно больше другой строки. Если строки имеют разную длину и их символы совпадают до последнего знака, то считается, что более короткая строка меньше.

б) логические операции;

В логических выражениях используются логические операции, задаваемые следующими служебными словами: not - отрицание, and - логическое "и" (умножение), or - логическое "или" (сложение), xor - исключающее "или".

Операция not унарная (у нее один операнд, который пишется за ней). Например, если q - логическая переменная, то ее отрицание пишется как not q. Значение not q будет противоположно значению q. Если значение переменной q равно true, то not q = false. И наоборот.

Остальные операции бинарные, т.е. применяются к двум операндам подобно арифметическим операциям. Операция and даёт истину только в том случае, если значения обоих операндов истинно. Операция or дает истину, если значение хотя бы одного из операндов истинно. Наконец, операция xor дает истину, если значение одного из операндов истинно, а другого- ложно.

в) таблицы истинности логических операций;

Все перечисленные правила можно записать в виде таблицы истинности:

Операция

Действие

Выражение

А

В

Результат

Not

Логическое отрицание

not A

True

False

False

True

And

Логическое И

A and B

True

True

True

True

False

False

False

True

False

False

False

False

Or

Логическое ИЛИ

A and B

True

True

True

True

False

True

False

True

True

False

False

False

Xor

 

Исключающее ИЛИ

A xor B

True

True

False

True

False

True

False

True

True

False

False

False

г) правила записи и вычисления логических выражений.

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

- константы логического типа BOOLEAN;

- переменные логического типа BOOLEAN;

- функции, дающие результат логического типа BOOLEAN;

- выражения отношения (они всегда имеют результат логического типа BOOLEAN);

- знаки логических операций (NOT|AND|OR|XOR);

- круглые скобки () для изменения порядка выполнения операций.

Правила записи и вычисления для логических выражений общие для всех типов выражений: записываются в одну строку, используются только круглые скобки, в составном логическом выражении выражения отношения заключаются в круглые скобки. Например, (A>=160) and (B<=13).

Порядок действий при вычислении значения логического выражения:

1) вычисляются значения в скобках;

2) вычисляются значения функций;

3) выполняется унарные операции (операция NOT);

4) выполняется операция AND;

5) выполняются операции OR, XOR;

6) выполняются операции отношения.

Действия выполняются слева направо с учетом их старшинства. Желаемая последовательность операций обеспечивается путем расстановки скобок в соответствующих местах выражения.

2. Составить блок-схему алгоритма вычисления модуля числа.

БИЛЕТ 5

1. Операторы. Простые операторы Паскаля.

а) определение оператора;

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

Разделителем операторов служит точка с запятой.

б) подразделение операторов;

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

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

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

в) оператор вызова процедуры;

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

Пример:

ClrScr; {Вызов стандартной процедуры очистки экрана}

Summa(a,b,c); {Вызов пользовательской процедуры Summa с тремя параметрами a,b,c}

г) оператор присваивания;

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

Оператор присваивания имеет вид: <идентификатор>: = <выражение>; где идентификатор – имя переменной или функции; знак «: =» – знак операции присваивания (читается «присвоить»), его не следует путать с операцией отношения «=» (читается «равно»). Оператор присваивания позволяет заменить текущее значение переменной, стоящей слева, новым значением, задаваемым выражением, стоящим справа.

Пример:

а:=8; {Переменной а присвоить значение 8}

rezult:=a div b; {Переменной rezult присвоить результат целочисленного деления переменных а и b}

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

2. Составить блок-схему алгоритма, реализующего вывод двумерного массива в виде таблицы.

БИЛЕТ 6

Ввод-вывод в Паскале.

Ввод данных – это передача информации от внешнего носителя в оперативную память для обработки.

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

Как правило внешним носителем является клавиатура (для ввода данных) и монитор (для вывода данных).

а) процедуры Read и ReadLn;

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

Read (список ввода);

Readln (список ввода);

Список ввода должен состоять только из имен переменных.

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

Например: Read(a,b,c)

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

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

б) процедуры Write и WriteLn;

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

Write (список вывода);

Writeln (список вывода);

Список вывода может включать:

  • текст, заключенный в апострофы – выводится без изменений;

  • константы – выводятся без изменений;

  • переменные – выводится значение каждой переменной;

  • выражения – выводится результат.

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

Например:

a:=10; b:=12;

WRITELN(‘Сумма чисел ‘,a,’и’,b,’ равна ’,a+b);

На экран будет выведено: Сумма чисел 10 и 12 равна 22

в) форматированный вывод.

При использовании форматного вывода каждый элемент списка может быть представлен в одной из следующих форм: A:w или A:w:d,

где A - элемент списка вывода; w - целое положительное число, определяющее общую длину поля вывода; d - целое положительное число, определяющее длину дробной части выводимого вещественного числа.

1. Для целых данных (integer и др.) - формат задается одним числом, определяющим число позиций, отводимых на это число. Например:

Writeln(i:5);

выведет на экран значение переменной i, используя для этого 5 позиций. Если переменная i:=34, то на экран будут выведены 3 пустых позиции (они для наглядности показаны знаком подчеркивания) и число 34, т.о. всего 5 позиций: _ _ _ 34.

Если переменная i:=2345666, то данный формат будет просто игнорироваться и все значение переменной отобразиться на экране: 2345666.

2. Для вещественных данных (real и др.) - формат задается либо одним числом, определяющим число позиций, отводимых на это число в экспоненциальной форме; либо двумя числами, первое из которых обозначает общий размер поля, отведенного под это число, второе - число знаков после запятой, т.е. точность. Например: Writeln(p:12);    или     Writeln(p:6:2);

Если переменная p:=1234.,6789, то в первом случае на экране появится _1.2346E+004, а во втором 1234.68.

Еще один пример. Пусть значение переменной X равно 123.45678, тогда оператор

         Write(X);          выведет         "_1.23456780000000000E+02"

         Write(X:8:2);    выведет        "_ _123.46"

         Write(X:10:5);  выведет        "_123.45678"

         Write(X:10);     выведет        "_1.235E+02"

         Write(X:8);       выведет        "_1.2E+02"

         Write(X:1);       выведет        "_1.2E+02"

3. Для строковых и символьных данных (stringchar) - формат задается одним числом, определяющим число позиций, отводимых на значение этих данных (т.е. на символ или набор символов). Например, для строковой переменной ss:=’СТРОКА’ и для символьной переменной c:=’C’, операторы Writeln(ss:8); Writeln(c:4); выведут на экран _ _ СТРОКА и _ _ _ С

         Т.е. в первой строчке две первые позиции из восьми отводимых будут пустыми, а остальные занимаются словом СТРОКА. Во второй строке из 4 позиций отводимых под переменную, первые три будут свободными, а последняя занята символом С.

Может оказаться полезным, что оператор Write(' ':nвыведет на экран n пробелов. При n=6 будет _ _ _ _ _ _

 Если в разобранной выше задаче переписать оператор writeln, который выводит на экран значение времени и скорости троллейбуса, таким образом: writeln(‘ За ’,t:6:2,’ сек. скорость троллейбуса v=’,v:5:1,’ м/с,’); то на экране появится (знак подчеркивания показан для демонстрации пустых позиций форматированного вывода): За _ _1.00 сек. скорость троллейбуса v= _ _1.5 м/c,

2. Составить блок-схему нахождения максимума из трех чисел.

БИЛЕТ 7

1. Квадратный двумерный массив.

а) определение;

Квадратный массив- это двумерный массив, в котором количество строк равно количеству столбцов. Обращение к элементу происходит также, как и в обычном двумерном массиве A[i,j].

б) свойства элементов;

Квадратные массивы имеют главную и побочную диагонали. Например, для массива А на главной диагонали лежат элементы 1,4,9, на побочной - 45,4,12. 

Квадратный массив

Индексы элементов квадратного массива

Столбцы j

1

2

3

Строки i

1

1

31

45

2

10

4

18

3

12

10

9

Столбцы j

1

2

3

Строки i

1

1 1

1 2

1 3

2

2 1

2 2

2 3

3

3 1

3 2

3 3

Главная диагональ

Индексы элементов главной диагонали

1

31

45

10

4

18

12

10

9

1 1

1 2

1 3

2 1

2 2

2 3

3 1

3 2

3 3

i = j - элементы расположены на главной диагонали;

i > j - элементы расположены ниже главной диагонали;

i < j - элементы расположены выше главной диагонали;

i ≥ j - элементы расположены на главной диагонали и ниже;

i ≤ j - элементы расположены на главной диагонали и выше;

Побочная диагональ

Индексы элементов побочной диагонали

1

31

45

10

4

18

12

10

9

1 1

1 2

1 3

2 1

2 2

2 3

3 1

3 2

3 3

i+j = n+1 - элементы расположены на побочной диагонали;

i+j < n+1 - элементы расположены над побочной диагональю (выше);

i+j > n+1 - элементы расположены под побочной диагональю (ниже);

i+j ≤ n+1 - элементы расположены на побочной диагонали и выше;

i+j ≥ n+1 - элементы расположены на побочной диагонали и ниже.

Обращение к элементу главной диагонали выглядит как A[i,i], к элементу побочной как A[i,n-i+1], где n – количество строк матрицы.

в) транспонирование массива.

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

...

For i:=1 to Strok do {Просмотр всех строк матрицы}

For j:=i+1 to Stolb do {Просмотр всех элементов в строке, расположенных выше главной диагонали}

Begin {Обмен значений элементов, симметричных относительно главной диагонали}

c:=a[i,j];

a[i,j];= a[j,i];

a[j,i]:=c;

end;

1

31

45

10

4

18

12

10

9

исходный массив

1

10

12

31

4

10

45

18

9

транспонированный

2. Составить блок-схему алгоритма, определяющего является ли слово перевертышем (палиндромом).

БИЛЕТ 8

1. Условный оператор. Его формы

а) определение разветвляющегося алгоритма;

Разветвляющийся алгоритм - это алгоритм, в котором в зависимости от значения логического выражения выполняется та или иная последовательность команд.

б) блок-схемы двух форм ветвления;

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

Полная форма

Правила выполнения:

  1. Проверяется условие.

  2. Если условие истинно, то выполняется оператор 1, далее выполняется оператор, следующий за условным.

  3. Если условие ложно, то выполняется оператор 2, далее выполняется оператор, следующий за условным.

Краткая форма

Правила выполнения:

  1. Проверяется условие.

  2. Если условие истинно, то выполняется оператор 1, далее выполняется оператор, следующий за условным.

  3. Если условие ложно, то выполняется оператор, следующий за условным.

в) запись на Паскале;

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

Общий вид условного оператора. Полная форма.

If условие then

Оператор 1

else

Оператор 2 ;

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

If условие then

Оператор;

г) синтаксис.

  1. По правилам синтаксиса оператора IF … ELSE перед ELSE ; (точка с запятой) не ставится.

  2. Если по ветвям ИСТИНА или ЛОЖЬ должны выполниться несколько операторов, то они объединяются в один составной оператор. Составной оператор – группа операторов, заключенная в операторные скобки BEGIN ….. END.

2. Составить блок-схему алгоритма вычисления суммы N вводимых с клавиатуры чисел.

БИЛЕТ 9

1. Циклы. Цикл с предусловием.

а) определение циклического алгоритма;

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

Цикл – форма организации действий, при которой некоторая последовательность операторов может выполняться многократно.