
Контрольная работа 1 / 1- 4_Информатика
.docМинистерство образования Российской Федерации
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Контрольная работа №1 по информатике (часть 1), автор А.И. Муравьёв
1. Составьте ответы по контрольным вопросам, заданным в методических указаниях.
1.1. Какого типа переменным можно присваивать значения переменных другого типа?
Переменным вещественного типа можно присваивать значения переменных или выражения целочисленного типа. Так же переменным строкового типа можно присваивать значения переменных символьного типа.
1.2. Какие типы в языке PASCAL относятся к порядковым типам?
К порядковому типу можно отнести все целочисленные типы, символьный, логический и ограниченный типы.
1.3. Чем отличается символьный тип от строкового типа?
Символьный тип определяется множеством значений кодовой таблицы компьютера, и занимают место в памяти 1 байт, а строка – это последовательность символов кодовой таблицы компьютера, в том числе и символ пробела. Для описания символьного типа используется слово CHAR, для строкового – STRING.
1.4. Назвать диапазоны допустимых значений для целых и вещественных типов данных.
Целочисленные типы данных:
Byte – 0…255
Word – 0…65535
Integer - -32768…32767
Shortint - -128…127
Longint - -2147483648…2147483647
Вещественные типы данных:
Real – 2.9E-39…1.7E38
Single – 1.5E-45…3.4E38
Double – 5.0E-324…1.7E308
Extended – 3.4E-4932…1.1E4932
Comp – 9.2E-18…9.2E18
1.5. Какие операторы можно использовать с логическим (BOOLEAN) типом, какие операторы возвращают значение логического типа?
Булевский тип используется в логических операторах, сравниваемые величины могут принадлежать к любому скалярному типу данных, результат же всегда имеет булевский тип.
1.6. Как объявляются перечислимые типы данных?
Перечисляемый тип данных задаётся непосредственно перечислением всех значений, которые может принимать переменная данного типа. Отдельные значения указываются через запятую, а весь список заключается в круглые скобки.
1.7. Какое максимальное число элементов перечислимого типа?
Данные перечислимого типа данных занимают в памяти компьютера 1 байт, поэтому этот тип данных не может содержать более 256 элементов.
1.8. Привести пример ограниченного типа данных.
CONST
Min=0;
Max=100;
TYPE
Temperature=Min…Max;
1.9. Можно ли в качестве элементов ограниченного типа использовать вещественные числа?
В качестве элементов ограниченного типа вещественные числа использовать нельзя.
1.10. Какова максимально возможная длина строки, и какова длина строки по умолчанию?
Длина строки может динамически изменяться от 0 до 255, если значение явно не указывается, то по умолчанию максимальная длина строки равна 255.
1.11. Каков порядок выполнения арифметических операций?
Вначале выполняются действия в скобках (при их наличии в выражении), затем слева направо выполняются умножение, деление, сложение и вычитание.
1.12. Каков порядок логических операций?
Первый приоритет имеет унарная операция «not», второй – операция умножения «and», третий – операции сложения «or», «xor», четвёртый – операции отношения «=», «<>», «<», «>», «<=», «>=», «in».
1.13. Какой тип операндов у операций отношения и у логических операций?
У операций отношения операнды могут принадлежать к любому скалярному типу данных, в логических операциях операнды всегда булевского типа.
1.14. Какого типа переменные Z и Y в программе, содержащей строку: IF Z THEN Y:=A=B и что будет происходить при выполнении этой строки программы?
Переменные Z и Y типа integer, при выполнении этой строки программы проверяется выполнение условия Z, при истинном значении выполнится оператор присвоения переменной Y значения A=B.
1.15. Переменные какого типа можно использовать в качестве параметров цикла FOR…TO…DO?
В качестве параметров цикла FOR…TO…DO можно использовать целочисленные переменные.
1.16. В чём отличие циклов WHILE…DO и REPEAT…UNTIL?
В операторе REPEAT…UNTIL проверка условия осуществляется после выполнения оператора и выход из цикла происходит, если значение условия равно TRUE. В отличие от оператора WHILE…DO, где тело цикла может вообще не выполняться, в операторе REPEAT…UNTIL оно выполняется как минимум один раз.
1.17. В каких операторах цикла допускается изменять параметр цикла, а в каких нельзя?
Параметр цикла можно изменять в цикле FOR…TO…DO, в циклах WHILE…DO и REPEAT…UNTIL параметр цикла менять нельзя.
1.18. Определение массива.
Массивы – это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип и обозначенных общим идентификатором.
1.19. Переменные какого типа можно использовать в качестве индексов?
Индексы представляют собой выражения любого скалярного типа, кроме вещественного.
1.20. Какие объекты можно использовать в качестве индексов массивов?
Индекс можно задавать непосредственно значением, константой, переменной, выражением или функцией.
1.21. Какова структура программы?
В общем случае программа имеет вид:
[PROGRAM <имя программы>;]
[CONST
описание констант]
[TYPE
описание пользовательских типов]
[VAR
описание переменных]
begin
тело программы
end.
1.22. Для чего используется составной оператор?
Составной оператор используется в качестве составной части других операторов, где требуется применение нескольких операторов вместо одного.
1.23. Для чего используются операторы цикла и логический оператор?
Операторы повтора (цикла) используются для организации циклов различных типов. Логический (условный) оператор изменяет естественный порядок выполнения операторов программы.
2. Перевести числа 542 и 863 в двоичный и шестнадцатеричный вид.
54310=0010000111102=21Е16
86310=0011010111112=35F16
3. Составить
программу, в которой с помощью оператора
WHILE
подсчитать сумму ряда
до тех пор, пока член ряда не будет меньше
0.005
Program Summa_R;
Const
M=0.005;
N1=2;
Var
S,CH_R:real; i:integer;
begin
S:=0; i:=N1;
CH_R:=i/(i*i+5);
WHILE CH_R>=M DO
begin
S:=S+CH_R;
WRITELN (`i=`,i:5,` CH_R=`,CH_R:7:3,` S=`,S:9:4);
i:=i+1;
CH_R:=i/(i*i+5);
end;
WRITELN (`Сумма ряда равна `,S:9:4);
end.
4. Составить
программу, в которой с помощью оператора
WHILE
организовать цикл, в котором значения
параметра t
менялись от 0.5 до 5 с шагом h=0.1.
Вывести на экран значения t
и функции
Program T_F;
Const
H=0.1;
Tmax=5.0;
Tmin=0.5;
Tgr=3.0;
Var
T,Y:real;
begin
T:=Tmin;
WHILE T<=Tmax DO
begin
IF T<Tgr THEN Y:=1/T ELSE Y:=T;
WRITELN (`T=`,T:4:1,` Y=`,Y:6:3);
T:=T+H;
end;
end.
5. Составить программу, в которой с помощью оператора FOR подсчитать сумму ряда
Program Summa_R;
Const
N1=5;
N2=50;
Var
i:integer; S,CH:longint;
begin
S:=0;
FOR i:=N1 TO N2 DO
begin
CH:=ii+1/i+1;
S:=S+CH;
WRITELN (`i=`,i:2,` CH=`,CH:6,` S=`,S:6);
end;
WRITELN (`Сумма ряда равна `,S:6);
end.
6. Составить программу, в которой с помощью оператора REPEAT протабулировать функцию y=2.5+sin(-x) в диапазоне параметра от 1 до 10 с шагом 0.5.
Program TAB_F;
Const
Xmin=1;
Xmax=10;
H=0.5;
Var
X,Y:real;
begin
X:=Xmin;
REPEAT
Y:=2.5+sin(-X);
WRITELN (`X=`,X:4:1,` Y=`,Y:6:2);
X:=X+H;
UNTIL X>Xmax;
end.
7. Составить
программу, в которой сформировать массив
A[1…100],
элементы которого равны a[i]=(2i)/(i+5),
где i
– индекс массива, и подсчитать их сумму.
Program Massive;
Const
N1=1;
N2=100;
Var
i:integer;
el_m:array [N1…N2] of real;
begin
S:=0;
FOR i:=N1 TO N2 DO
begin
el_m[i]:=(2i)/(i+5);
S:=S+el_m;
WRITELN (`i`,` el_m=`,el_m:8:4,` S=`,S:8:4);
end;
WRITELN (`Сумма элементов ряда равна `,S:8:4);
end.
8. Составить программу, в которой сформировать двумерный целочисленный массив A[1…50,1…50] с отрицательными и положительными числами и подсчитать количество элементов массива с отрицательными и положительными числами.
Program Massive;
Const
N1=1;
N2=50;
K1=1;
K2=50;
An=0;
Var
i,j,S_P,S_O:integer;
A:array [N1…N2,K1…K2] of integer;
begin
S_P:=0;
S_O:=0;
FOR i:=N1 TO N2 DO
FOR j:=K1 TO K2 DO
begin
A[i,j]:=-50+Random(N2K2);
WRITELN (`A[`,i:2,`;`,j:2,`]=`,A[i,j]:5);
IF A[i,j]>=An THEN S_P:=S_P+1 ELSE S_O:=S_O+1;
end;
WRITELN (`Количество отрицательных элементов массива `,S_O:5);
WRITELN (`Количество положительных элементов массива `,S_P:5);
end.