
Контрольная работа 1 / 1-14_Информатика
.doc1. Ответить на контрольные вопросы:
1.Пременными называются параметры программы, значения которых могут изменяться в процессе ее выполнения.
2.Все простые типы, за исключением вещественных, называются порядковыми типами.
3. Символьный тип определяется множеством значений кодовой таблицы компьютера, и занимает место в памяти 1 байт. Для его описания используется зарезервированное слово CHAR.
Сторока – это последовательность символов кодовой таблицы компьютера, в том числе и символ пробела. Для определения данных строкового типа используется слово STRING, за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки.
4.Целочисленный тип данных:
-
Тип
Диапазон
Требуемая память(байт)
Byte
Word
Integer
Shortint
longint
0..255
0..65535
-32768..+32767
-128..+127
-2147483648..+2147483647
1
2
2
1
4
Вещественный тип данных:
-
Тип
Диапазон
Мантисса
Требуемая память(байт)
Real
Single
Double
Extended
comp
2.9E-39…1.7E38
1.5E-45…3.4E38
5.0E-324…1.7E308
3.4E-4932…1.1E4932
9.2E-18…9.2E18
11-12
7-8
15-16
19-20
19-20
6
4
8
10
8
5. C логическим (Boolean) типом можно использовать операторы if, while, repeat.
6. Пользовательский тип задается непосредственно перечислением всех значений, которые может принимать переменная данного типа. Отдельные значения указываются через запятую, а весь список заключается в круглые скопки.
7. Кроме стандартных типов, TURBO PASCAL поддерживает скалярный типы, определяемые самим пользователем. К ним относятся перечисляемый и интервальный типы. Данные этих типов занимают в памяти один байт, поэтому любой пользовательский тип не может содержать более 256 элементов.
8. Задача. Поезд отправляется в путь в 22 ч и находится в пути 10 ч. Во сколько он прибывает на место назначения?
Программа:
VAR Otpravlenie, Pribitie :0..24;
Begin;
Otpravlenie:=22;
Pribitie:=Otpravlenie+10;
WriteLn(Pribitie)
END.
9. Интервальный (или ограниченный) тип позволяет задавать две константы, определяющие границы диапазона значений для данной переменной. Компилятор при каждой операции с переменной интервального типа генерирует подпрограммы, определяющие, остается ли значение внутри установленного диапазона. Обе константы должны принадлежать к одному из стандартных типов (тип REAL здесь недопустим).
10. Длина строки может динамически изменяться от 0 до 255. Для определения данных строкового типа используется слово STRING, за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки. Если значение не указывается, то по умолчанию максимальная длина строки равна 255.
11. Арифметические операции выполняют арифметические действия в выражениях над значениями операндов целочисленных и вещественных типов. Их можно разделить на бинарные и унарные операции. Арифметические операции приведены в таблице.
Операция |
Действие |
Типы операндов |
Тип результата |
Бинарные +
-
*
/
div
mod and shl shr or xhor
Унарные +
-
not |
Сложение
Вычитание
Умножение
Деление
Целочисленное деление Остаток от деления Арифметич. И Сдвиг влево Сдвиг вправо Арифметич. ИЛИ Исключающая дизьюнкция
Сохранение знака
Отрицание знака
Арифметич. отрицание |
Целый Вещественный Целый Вещественный Целый Вещественный Целый Вещественный Целый
Целый Целый Целый Целый Целый Целый
Целый Вещественный Целый Вещественный Целый |
Целый Вещественный Целый Вещественный Целый Вещественный Вещественный Вещественный Целый
Целый Целый Целый Целый Целый Целый
Целый Вещественный Целый Вещественный Целый
|
Если в выражении встречается несколько операций, тогда порядок выполняется с учетом приоритета. Вначале выполняются операции с Высшим приоритетом, затем по убыванию. Порядок приоритета для арифметических и логических операций приведен в таблице.
Операция |
Приоритет |
Вид операции |
Not
* / div mod and shl shr
+ - or xor
= <> < > <= >= in
|
Первый (высший)
Второй
Третий
Четвертый (низший) |
Унарная операция
Операция типа Умножения
Операция сложения
Операция отношения |
12. Логические операции применяются к величинам логического типа, результат операции - тоже логического типа. Действие логических операций приведены в таблице.
Операция |
Действие |
Выражение |
А |
В |
Результат |
Not
And
Or
Xor |
Логическое отрицание Логическое И
Логическое ИЛИ
Исключающее ИЛИ |
not A
A and И
A or В
A xor В |
True
True True False False
True True False False
True True False False |
TrueА False True False
TrueА False True False
TrueА False True False
|
False True True Falsу False False
True True True False
False True True False |
13. Операции отношения выполняют сравнение двух операндов и определяют, истинно значение или ложно. Сравниваемые величины могут принадлежать к любому скалярному типу данных, результат же всегда имеет булевский тип.
В логических операциях имеется одна унарная логическая операция not (отрицание) и три бинарные операции and (И), or (ИЛИ), xor (ИСКЛЮЧАЮЩАЯ ИЛИ). Операнды всегда логического типа (Boolean).
14. Строка IF Z THEN Y:=A=B. Это означает, что если введено будет Z, то нужно выполнить оператор Y:=A=B, в противном случае ничего не делать, а просто перейти к следующему оператору.
15. Оператор цикла FOR организует выполнение одного оператора заранее известное число раз. Существует два варианта оператора:
for Param:=Start to Finish do Unstruction;
for Param:=Start downto Finish do Instruction;
В этих операторах:
Param – параметр цикла, являющийся переменной порядкового типа;
Start – выражение, определяющее начальное значение параметра цикла;
Finish – выражение, определяющее конечное значение параметра цикла;
Instrucction – выполняемый оператор.
16. Отличия операторов Repeat и While между собой
Отличий три:
-
компьютер выходит из цикла оператора repeat тогда, когда условие истинно, а из цикла оператора while- когда условие ложно;
-
while может ни разу не выполнить оператор, стоящий после do; repeat же хотя бы раз операторы, стоящие между repeat и until, выполнит.
Так, фрагмент k:=8; repeat k:=1 until 3>2; WriteLn(k) напечатает 1. А фрагмент k:=8; while 2>3 do k:=1; WriteLn(k) напечатает 8;
-
при компиляции оператор while дает несколько более эффективную программу, чем оператор repeat.
17. Оператор цикла FOR еще называют оператором с фиксированным числом циклов, поскольку к началу выполнения оператора уже определено число циклов.
Оператор цикла WHILE работает следующим образом – пока условие имеет логическое значение TRUE, происходит циклическое выполнение оператора ( тело цикла) до тех пор, пока значение условия не станет FALSE ( т.е. ложным). Поэтому в теле цикла должно быть заложено условие выхода из цикла, иначе цикл будет выполняться бесконечно.
Оператор REPEAT аналогичен оператору WHILE, но проверка условия осуществляется после выполнения оператора и выход из цикла происходит, если значение условия равно TRUE. Если в операторе WHILE тело цикла может вообще не выполняться, то в операторе REPEAT оно выполниться минимум один раз.
18. Массивы – это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип и обозначенных общим идентификатором.
19. Индексы представляют собой выражения любого скалярного типа, кроме вещественного.
20. Индекс можно задать непосредственно значением, константой, переменной, выражением и функцией, главное условие только чтобы все они имели целочисленное значение, не превосходящее диапазон изменения индекса заданного массива.
21. В общем структура программы имеет следующий вид:
[PROGRAM <имя программы>; ]
[CONST
описание констант]
[TYPE
описание пользовательских типов]
[VAR
описание переменных]
begin
тело программы (или раздел исполняемых операторов)
end.
22. Составной оператор воспринимается как единое целое и обычно используется в качестве составной части других операторов, где требуется применение нескольких операторов вместо одного (обычно операторы IF, FOR, WHILE, и др.).
23. Операторы повтора (или операторы цикла) используются для организации циклов различных типов.
Условный оператор IF изменяет естественный порядок выполнения операторов программы:
IF <условие> THEN <оператор 1> ELSE <оператор 2>
Либо
IF <условие> THEN <оператор 1>
2. Перевести числа 62 и 874 в двоичный и шестнадцатеричный вид.
62=0011 11102=3Е16
874=0011 0110 10102=36А16
3. Составить программу, в которой с помощью оператора WHILE подсчитать сумму ряда
до тех пор, пока член ряда не будет меньше 0,005.
Program P1;
Var
s,y : real;
I : byte;
Begin
S:=0;
I:=1;
y:=1;
While y>0.005 do
Begin
y:=(i+s)/(i*i*i+i*i+i+3);
S:=S+y;
i:=i+1;
End;
writeln('S=',s:8:4);
END.
4. Составить программу, в которой с помощью оператора WHILE организовать цикл, в котором значение параметра t менялись от 0,5 до 5 с шагом h=0,1. Вывести на экран значения t и функции
у=
Const h=0.1;
Var
T,y: real;
Begin
T:=0.5;
Writeln ('t','y');
While t<5 do
Begin
if t<=3 then Y:=(t* t+t+1) else y:=(t-3);
T:=t+h;
Writeln (T:8:4, Y:8:4);
End;
Readln;
End.
5. Составить программу, в которой с помощью оператора FOR подсчитать сумму ряда
.
Var
I:byte;
Sum: real;
Begin
Sum:=0;
For i:=15 to 120 do
Sum:=Sum+(1/i+6);
Writeln (Sum:3:1);
Readln ;
END.
6. Составить программу, в которой с помощью оператора REPEAT протабулировать функцию у=cos(x/3+0.3) в диапазоне от 0 до 6 с шагом 0.2
const
h=0,2
Var
Y,х: real;
Begin
Writeln (‘x’,’y’);
X:=0;
Repeat
Y: = cos(x/3+0,3);
Writeln (x:5:2, у:7:3);
Х: =х+h;
until x>5;
readln ;
END.
7. Составить программу, в которой сформировать массив А[1..100], элементы которого равны а[i]=(2*i)/(i+5), где i-индекс массива, подсчитать их сумму.
Program P;
Const
Matr=100; {Задание размерности массива}
Var
A:array[1..Matr] of real; {Описание переменных}
Sum:real;
i:integer;
Begin
RANDOMIZE;
Sum:=0; {Присвоение начального значения суммы}
FOR i:=1 to Matr do A[i]:=(2*i)/(i+5); {Цикл от 1 до 100}
FOR i:=1 to Matr do {Цикл от 1 до 100}
Sum:=Sum+A[i]; {добавление к сумме А[i]}
WRITELN(i:5,'A=', A[i],Sum); {Печать}
end.
8. Составить программу, в которой сформировать двумерный целочисленный массив А[1..10,1..10] из случайных целых чисел и посчитать суммы строк массива.
Program P1;
Const
n=10;
Var
A:array[1..n,1..n] of integer;
Sum:integer;
i,j:integer;
Begin
RANDOMIZE;
Sum:=0;
FOR i:=1 to n do A[i,j]:=Random(5);
FOR j:=1 to n do
FOR i:=1 to n do
FOR j:=1 to n do
Sum:=Sum+A[i,n];
WRITELN(A[i,j], Sum);
end.