Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Контрольная работа 1 / 1-14_Информатика

.doc
Скачиваний:
42
Добавлен:
23.06.2014
Размер:
70.14 Кб
Скачать

1. Ответить на контрольные вопросы:

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.