
Томский государственный университет
СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Заочный факультет
(дистанционная форма обучения)
Кафедра автоматизированных систем управления (АСУ)
Информатика
Контрольная работа № 1
Дата выполнения работы
Дата проверки ______________________
Оценка ______________________
И. О. Фамилия преподавателя ______________________
Подпись преподавателя ______________________
Вариант № 10
Задание № 1
Составьте ответы по контрольным вопросам, заданным в методических указаниях.
Вопрос № 1.
Какого типа переменным можно присваивать значения переменных другого типа?
Ответ:
Внутри целочисленных типов следует руководствоваться «вложенностью» типов, то есть можно присваивать значению переменной какого-то целочисленного типа значения переменной другого целочисленного типа, являющегося подмножеством первого.
Аналогично проводится присваивание среди вещественных типов, если имеется 8087 процессор.
Также переменным вещественного типа можно присваивать значения переменных целочисленного типа, а переменным строкового типа можно присваивать значения переменных символьного типа.
Вопрос № 2
Какие типы в языке Pascal относятся к порядковым типам?
Ответ:
К порядковым типам относятся целые, логические, символьные, перечислимые и ограниченные. К любому из них применима функция ORD(X), возвращающая порядковый номер значения выражения Х.В языке Pascal существует 10 встроенных порядковых типов: Integer, Shortint, Longint, Byte, Word, Boolean, ByteBool, WordBool, LongBool и Char. А так же, два других класса определяемых программистом порядковых типов: перечислимый тип и ограниченный тип.
Вопрос № 3
Чем отличается символьный тип от строкового?
Ответ:
Строка – это последовательность символов кодовой таблицы включая пробел. Значением переменной строкового типа является последовательность символов от 0 до 255 с динамически изменяемой длиной строки символов. А значением переменной символьного типа является 1 символ, причём символы упорядочены в соответствии с набором символов кодовой таблицы ASCII.
Вопрос № 4
Назвать диапазоны допустимых значений для целых и вещественных типов данных.
Ответ:
Для целочисленных типов:
Byte (длиной в байт) – от 0 до 255;
Shortint (короткое целое) – от –128 до 127;
Word (длиной в слово)– от 0 до 65535;
Integer (целое) – от –32768 до 32767;
Longint (длинное целое) – от – 2147483648 до 2147483647.
Для вещественных типов:
Real (вещественные) – от 2.9*10-39 до 1.7*1038,
Single (с одинарной точностью) – от 1.5*10-45 до 3.4*1038
Double (с двойной точностью) – от 5.0*10-324 до 1.7*10308
Extended (с повышенной точностью)– от 1.9*10-4951 до 1.1*104932
Comp (сложный тип) – от -263 + 1 .. 263 - 1
Вопрос № 5
Какие операторы можно использовать с логическим (BOOLEAN) типом, какие операторы возвращают значения логического типа?
Ответ:
С логическим типом boolean можно использовать оператор присваивания (:=), оператор повтора while…do, оператор повтора repeat…until, оператор повтора for…to…do (for A:=False to B do), условный оператор if…then, оператор выбора case…of.
Операторы while…do, repeat…until, if…then, for…to…do возвращают значения логического типа.
Вопрос № 6
Как объявляются перечислимые типы данных?
Ответ:
Перечислимые типы объявляются посредством перечисления всех значений, которые может принимать переменная данного типа. Отдельные значения указываются через запятую, а весь список заключается в круглые скобки:
Type
Name = (Sergey, Igor, Nina, Maria, Michel, Stephan) ;
Вопрос № 7
Какое максимальное число элементов перечислимого типа?
Ответ:
Так как данные этого типа занимают в памяти 1 byte, то максимальное число элементов перечислимого типа не может превышать 256 элементов.
Вопрос № 8
Привести пример ограниченного типа данных.
Ответ:
В качестве ограниченного типа данных можно принять, например количество секунд в минуте:
Const
One = 1;
Sixty = 60;
Type
Second = One..Sixty;
Вопрос № 9
Можно ли в качестве элементов ограниченного типа использовать вещественные числа?
Ответ:
Нельзя использовать переменные вещественного типа для определения границ ограниченного типа, так как значения вещественных чисел являются приближёнными и не могут определить точных границ ограниченного типа.
Вопрос № 10
Какова максимально возможная длина строки и какова длина строки по умолчанию (без её явного объявления)?
Ответ:
Максимально возможная длина строки 255 символов. В случае, если длина строки явно не указана, то по умолчанию длина строки составляет 255 символов, то есть максимально возможную длину строки.
Вопрос № 11
Каков порядок выполнения арифметических операций?
Ответ:
Выделим три вида приоритетов для выполнения арифметических операций:
К первому (высшему) приоритету относится операция арифметического отрицания (not).
Ко второму приоритету относятся операции типа умножения: *(умножения), / (деления), div (целочисленное деление), mod (остаток от целочисленного деления), and (арифметическое И), shl (сдвиг влево), shr (сдвиг вправо).
К третьему относятся операции сложения: + (сложения), - (вычитания), or (арифметическое ИЛИ), xor (арифметическое исключающее ИЛИ).
Вопрос № 12
Каков порядок выполнения логических операций?
Ответ:
Выделим три вида приоритетов для выполнения логических операций:
К первому приоритету относится операция логического отрицания (not).
Ко второму приоритету относится операция логического И (and).
К третьему приоритету относятся операции логического ИЛИ (or) и операция логического исключающего ИЛИ (xor).
Вопрос № 13
Какой тип операндов у операций отношения и у логических операций?
Ответ:
У логических операций операнды всегда булевского типа (boolean).
У операций отношений операнды могут принадлежать к любому скалярному типу данных, результат операций отношения всегда булевский тип (boolean).
Вопрос № 14
Какого типа переменные Z и Y в программе, содержащей строку:
IF Z THEN Y:=A=B; и что будет происходить при выполнении этой строки программы?
Ответ:
Переменные Z и Y имеют булевский тип (boolean). В программе происходит следующее:используя условный оператор, проверяется значение переменной Z, если переменная имеет значение TRUE, тогда выполняется присваивание переменной булевского типа Y значения TRUE, если А=В, или FALSE, если А<>B. Если же переменная Z имеет значение FALSE, то выражение следующее после THEN игнорируется и переменная Y не изменит своё первоначальное значение.
Вопрос № 15
Переменные какого типа можно использовать в качестве параметров цикла FOR…TO…DO?
Ответ:
Переменные порядковых типов можно использовать в качестве параметров цикла FOR..TO..DO.
Вопрос № 16
В чем отличие циклов While…Do от Repeat…Until?
Ответ:
Цикл While...Do проверяет условие выполнения цикла в начале выполнения, если условие равно False, то цикл не будет выполняться. Цикл Repeat…Until выполнится как минимум один раз, так как условие повтора цикла проверяется в конце цикла.
Вопрос № 17
В каких операторах цикла допускается изменять параметр цикла, а в каких нет?
Ответ:
Допускается изменение параметра в циклах While…do и Repeat…Until.
Не допускается изменять параметр цикла For…to…do или For…downto…do, так как данный оператор сам изменяет параметр увеличивая (уменьшая) его на единицу. Изменение параметра в теле цикла For…to…do (For…downto…do) вызовет ошибку.
Вопрос № 18
Определение массива.
Ответ:
Массив – пронумерованная (проиндексированная) совокупность объектов одного типа.
Вопрос № 19
Переменные какого типа можно использовать в качестве индексов массива?
Ответ:
Индексы могут представлять собой выражения любого скалярного типа кроме вещественного.
Вопрос № 20
Какие объекты (переменные, выражения и т.д.) можно использовать в качестве индексов массива?
Ответ:
Индекс можно задавать функцией, константой, переменной, непосредственно значением, выражением, но все они должны иметь целочисленное значение и не превосходить диапазон значения индексов этого массива.
Вопрос № 21
Какова структура программы?
Ответ:
Структура программы состоит из нескольких необязательных и одного обязательного блока. К необязательным блокам можно отнести наименования программы, блока констант, блока пользовательских типов и блока переменных. К обязательному блоку относится тело программы. Например:
{Наименование программы (необязательный блок)}
Programm < имя программы >
{Блок объявления констант (необязательный блок)}
Const
<описание констант>
{Блок объявления пользовательских типов (необязательный блок)}
Type
<описание пользовательских типов>
{Блок объявления переменных (необязательный блок)}
Var
<описание переменных>
{Блок тела программы (обязательный блок)}
begin
<тело программы>
end.
Вопрос № 22
Для чего используется составной оператор?
Ответ:
Составные операторы задают порядок выполнения операторов, являющихся их элементами. Составной оператор воспринимается как единое целое и обычно используется в качестве составной части других операторов, где требуется выполнение нескольких операторов вместо одного.
Вопрос № 23
Для чего используются операторы цикла и логический оператор?
Ответ:
Операторы цикла используются для организации циклов различных типов. С помощью операторов повтора можно запрограммировать повторяющиеся фрагменты программы.
Логический оператор используется для изменения естественного порядка выполнения операторов программы. Он позволяет проверить некоторое условие и в зависимости от результата проверки выполнить то, или иное действие.