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

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

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

Контрольная работа №1

по дисциплине «информатика-1»

Вариант 27.

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

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

  2. В языке PASCAL к порядковому относятся все скалярные типы, кроме вещественных, т.е. к порядковому типу относятся все целочисленные типы, символьный, логический и ограниченные типы. Ещё интервальный (диапазон) и перечисляемый.

  3. Отличие символьного типа от строкового:

а) для описания символьного типа используется зарезервированное слово CHAR, а для определения данных строкового типа используется слово STRING.

б) символьный тип определяется множеством значений кодовой таблицы компьютера, а строковый тип последовательностью символов кодовой таблицы компьютера, в том числе и символа пробела.

в) в строковом типе можно производить операции сложения.

  1. Допустимые диапазоны значений у целочисленных типов:

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. С логическим (BOOLEAN) типом можно использовать все операторы, где есть логическое выражение REPEAT. Возвращают значение логического типа операторы or, and.

  2. Переменные перечислимого типа задаются перечислением предметов и относятся к порядковым типам.

  3. Максимальное число элементов перечислимого типа составляет не более 256, т.к. данные этих типов в памяти занимают 1 байт.

  4. index – ограниченный тип данных.

  5. Нельзя использовать вещественные числа в качестве элементов ограниченного типа.

  6. Максимально возможна длина строки 255. Вообще под строку отводят 256, но первый - нулевой.

  7. Порядок выполнения арифметических операций таков: * / + - <>.

  8. not, and, or, xor.

  9. or, and, not – у логических операций, у операций отношения: =; <>; >; < ;>=; <=.

  10. В программе, содержащей строку IF Z THEN Y:=A=B; Y и Z логического типа, т.к. А=В. Если Z – истина, тогда положим в ячейку Y- истину, а если Z – ложь, тогда ничего не произойдёт.

  11. В качестве параметров цикла FOR…TO…DO можно использовать все порядковые типы: целые, символьные, логический и ограниченный (диапазон) и перечислимый, интервальный.

  12. Отличие циклов WHILE…DO и REPEAT…UNTIL таков: оператор цикла с предусловием WHILE работает следующим образом, пока условие имеет логическое значение истина (TRUE), происходит циклическое выполнение оператора до тех пор, пока значение условия не станет ложным (FALSE). Поэтому в теле цикла есть условие вывода из цикла, для того, чтобы цикл не выполнялся бесконечно. А у оператора REPEAT проверка условия осуществляется после выполнения оператора и выход из цикла происходит, если значение условия – истина. Ещё в операторе WHILE тело цикла может не выполняться, то в REPEAT оно выполняется хотя бы один раз.

  13. Присвоение переменной цикла FOR…TO…DO какого либо значения – ГРЕХ.

  14. Массив – это агрегативная структура данных, состоящая из элементов одного и того же типа, каждый из которых имеет упорядоченный индекс.

  15. В качестве индексов можно использовать: целые типы, логический, CHAR и т.д. (главное, чтобы они были порядковые).

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

  17. Структура программы:

Program<имя>; {заголовок программы}

Uses<список подключаемых модулей>; {*раздел описаний подключаемых модулей}

Const<имя>=<значение>; {раздел описаний констант}

Type<имя>=<тип>; {раздел описаний типов определяемых пользователем}

Var<имя>:<тип>; {раздел описаний переменных}

Begin

<операторы>;

End.

22.Составной (оператор скобки) оператор нужен, чтобы объединить группу операторов в единое целое, т.е. используется в качестве составной части других операторов, где требуется применение нескольких операторов вместо одного.

23.Операторы цикла используются и для организации циклических действий. Для организации ветвления алгоритма используется логический (условный) оператор.

2. Переведите числа 83 и 482 в двоичный и шестнадцатеричный вид.

83

2

82

41

2

1

40

20

2

1

20

10

2

0

10

5

2

0

4

2

2

1

2

1

0

83

16

80

5

3

482

2

482

241

2

0

240

120

2

1

120

60

2

0

60

30

2

0

30

15

2

0

14

7

2

1

6

3

2

1

2

1

1

482

16

480

30

16

2

16

1

14

3. Составить программу в которой с помощью оператора WHILE посчитать сумму ряда до тех пор, пока член ряда не будет меньше 0.005.

Программа.

CONST Eps = 0.005;

VAR summa, sl: Real;

Begin

Summa:=0; I:=6;

Sl:=(I+1)/(I-3)/(sqr(I)*I+10);

While Sl>Eps Do

Begin

Summa:=summa+sl;

I:=I+1;

Sl:=(I+1)/(I-3)/(sqr(I)*I+10);

End;

Write (Summa);

End.

Summa=0, I=6,

Sl=(I+1)/(I-3)/(sqr(I)*I+10)

Eps=0.005

Нет

Да

Summa=summa+sl

4. Составить программу, в которой с помощью оператора WHILE организовать цикл в которой значения параметра t менялись от 0.5 до 5 с шагом h = 0.1. Вывести на экран значения t и функции

1/sin (t) для t

y =

t для t > 3

Программа.

CONST Start = 0.5;

Finish = 5;

Step = 0.1;

VAR T, Y: Real;

Begin

T:= Start;

While T<= Finish Do

Begin

IF T<=3 Then Y:= 1/sin(T);

Else Y:=T;

Write ln (T:3:1,’’,Y:11:8);

T:= T+Step;

End;

End.

Y=T

T = T+Step

Нет

Да

Нет

Д

5. Составить программу, в которой с помощью оператора FOR подсчитать сумму ряда .

Программа.

VAR Summa: Real;

I: Byte;

Begin

Summa:= 0;

For I:= 2 To 77 Do

Summa:= Summa + (1-I)/(1-sqr(I));

Write (‘S =’, Summa);

End.

Summa:= 0

I:= 2

Нет

Да

6. Составить программу, в которой с помощью оператора REPEAT протабулировать функцию y = 1+exp(2*x) в диапазоне от 1 до 5 с шагом 0.25.

Программа.

СОNST Start = 1;

Finish = 5;

Step = 0.25;

VAR X, Y: Real;

Begin

X:= Start;

Repeat

Y:= 1+ exp(2*X)

Write ln (X:3:1,’’,Y:11:8);

X:= X+Step;

Until (X>5);

End.

Нет

Да

7. Составить программу, в которой сформировать одномерный массив А [1..100] из случайных чисел. Скопировать массив А в массив В [1..100] таким образом, чтобы B [1] = A [51], B [2] = A [52],… B [50] = A [100], B [51] = =A[1], B [52] = A [2],… B [100] = A [50].

Программа.

USES CRT;

CONST n = 100;

TYPE Index = 1..n;

Massiv = array [1..n] of Integer;

VAR A, B: Massiv;

I: Index;

Begin

CLRSCR; Randomize;

For I:= 1 TO N DO A [I]:= Random (100);

For I:= 1 TO N DIV 2 DO B [I]:= A [50+I];

For I:= n DIV 2 +1 TO n DO B [I]:= A [I-50];

For I:= 1 TO n DO Write (‘B [’, I:2),’] = B [I]”);

End.

N = 100

I:= 1

I:= 1

Нет

I:= I+1

Да

Да

I:= n div 2 + 1

B [I]:=A [I - 50]

I:= I + 1

Нет

I:= 1

I:= I +1

Да

Да

Нет

8. Составить программу, в которой сформировать двумерный целочисленный массив A [1..50, 1..30] из случайных чисел и определить максимальное и минимальное числа в массиве.

Программа.

USES CRT;

CONST

N = 50;

M = 30;

TYPE

Massiv = Array [1..N, 1..M] of Real;

VAR

A: Massiv;

I: 1..N;

J: 1..M;

Min, max: Real;

Begin

CLRSCR; Randomize;

FOR I:= 1 TO n DO

Begin

FOR J:= 1 TO m DO

Begin

A [I, J]:= Random (100);

Write (A [I, J]: 3);

End;

Write ln;

End;

Min:= A[1,1]; Max:= A[1,1];

FOR I:=1 TO n DO

FOR J:=1 TO m DO

Begin

IF A[I, J] > max then max:= A[I, J];

IF A[I, J] < min then min:= A[I, J];

End;

Write (‘max=’, max, ‘min=’, min);

End.

I:= 1

J:= 1

A[I]:= Random

J:= J + 1

I:= I + 1

Max:= A[1,1]

Min:= A[1,1]

Нет

Да

I:= 1

Нет

J:= J + 1

Да

Да

I:= I + 1

Нет

Да

Max:= A[I,J]

Да

Нет

Да

Min:=A[I,J]

Нет

Соседние файлы в папке Контрольная работа 1