Раздел 4. структуры данных
Тема 4.1. Массивы
ЗАДАНИЕ 1
Ответьте на предложенные вопросы:
1.1 Массив, это:
Это набор одинаковых данных, расположенных в переменных, пронумерованных индексами. ____________________________
1.2 Одномерный массив (вектор), это:
Это массив, в котором элементы нумеруются одним индексом (т.е. ранг равен единице) ____________________________
1.3 Двумерный массив (матрица), это:
Это структурированный тип данных в виде прямоугольной таблицы.
__________________________
ЗАДАНИЕ 2
Заполнить одномерный массив чисел так, чтобы значения элементов совпадали с их индексами.
Programgeforce;
Usescrt;
Var
a:array[1..7] ofinteger;
i:integer;
Begin
Fori:=1 to7 do
Begin
Write('A[',i,']=');
Readln (A[i]);
End;
Fori:=1 to7 do
Writeln('A[',i,']=',A[i]);
Readln;
End.
ЗАДАНИЕ 3
Найти min и max значения главной диагонали квадратной матрицы.
Var
a:array[1..100,1..100] ofinteger;
i,j,max,min,n:integer;
Begin
write ('Введите порядок матрицы: ');readln(n);
randomize;
fori:=1 ton do begin
forj:=1 ton do begin
a[i,j]:=random(25)-9;
write (a[i,j]:4);
end;
writeln;
end;
max:=a[1,1];
min:=a[1,1];
fori:=2 ton do
ifa[i,i]>max thenmax:=a[i,i] else
ifa[i,i]<min thenmin:=a[i,i];
writeln ('Max: ',max);
writeln ('Min: ',min);
readln;
end.
ЗАДАНИЕ 4
Выполните тест. Из предложенных ответов выберите правильный.
1. Массив – это:
a) Именованный набор, состоящий из фиксированного количества однотипных данных;
b) именованная область на диске;
c) множество элементов одного типа;
d) специальная программа, предназначенная для работы с числовыми данными.
2. Укажите правильное описание массива:
a) a: array [1…n, 1…n] of real;
b) a: array {1..n} of integer;
c) a: array [1..n, 1..m] of real;
d) a: aray [1..n, 1..m] of integer.
3. Если элементы массива D[1..5] равны соответственно 3, 4, 5, 1, 2, то значение выражения D[ D[3] ] - D[ D[5] ] равно...
a) -2 b) 2 c) -1 d) 3
4. Определите, какая задача решается с помощью данной последовательности операторов:
M:=a[1];
For I:=2 to n do
If a[I]>m then m:=a[I];
a)ищется минимальный элемент массива А;
b) ищется максимальный элемент массива А;
c)ищется сумма элементов;
d) ищется минимальный элемент и его индекс.
5. В программе описана матрица
A: array [1..n,1..m] of integer;
где m и n – целые константы
Во время работы программы формируется вектор, в который в порядке возрастания помещаются все элементы матрицы. Определить какое из приведённых ниже описаний подходит для данного вектора.
a) b: array [1..n+m] of integer;
b) b: array [1..n*m] of integer;
c) b: array [n+m] of integer;
d) b: array [1..2*(m+n)] of integer.
6. Определите, какая задача решается с помощью данной последовательности операторов:
m:=a[1];
for I:=1 to n do
if a[I]<m then m:=a[I];
a) ищется минимальный элемент массива;
b) ищется максимальный элемент массива;
c) ищется сумма элементов массива;
d) количество минимальных элементов.
7. Определите, какая задача решается с помощью данной последовательности операторов:
S:=0;
For I:=1 to n do
S:=s+a[I];
a) ищется сумма элементов массива А;
b) ищется положительная сумма элементов массива А;
c) ищемся минимальный элемент массива А;
d) ищется максимальный элемент массива А.
8. Дан двумерный массив А, состоящий из шести строк и пяти столбцов. Необходимо получить доступ к элементу, расположенному в 3 строке и 2 столбце
a)A[2,3];
b) A[3,2];
c)A[6,5];
d) A[3/2].
9. Дан двумерный массив А, состоящий из пяти строк и пяти столбцов. Необходимо получить доступ к элементу, расположенному во 2-й строке и 3-м столбце
a) A[2,3];
b) A[2;3];
c) A[3;2];
d) A[3/2].
10. Определите, какая задача решается с помощью данной последовательности операторов:
S:=0;
For I:=1 to n do
If a[I]<0 then S:=S+a[I];
а) ищется минимальный элемент массива А;
б) ищется максимальный элемент массива А;
в) ищется сумма отрицательных элементов массива А;
г) ищется количество отрицательных элементов массива А.
11. Определите, какая задача решается с помощью данной последовательности операторов:
S:=0;
K:=0;
For I:=1 to n do
If a[I]>0 then begin
S:=s+a[I];
K:=k+1;
End
а) ищется минимальный элемент массива А;
б) ищется максимальный элемент массива А;
в) ищется сумма и количество положительных чисел;
г) ищется сумма и количество отрицательных чисел.
12. Что определяет для массива X[1..n] следующий алгоритм
P:= 0;
For k:= 1 to n do
If X[k] =T then P:=k;
a) номер последнего элемента массива, не равного T;
b) количество элементов массива, не равных T;
c) номер первого элемента массива, не равного T;
d) номер последнего элемента массива, равного T;
e) количество элементов массива, равных T.
Критерии оценки теста
100%-95% – 5(отлично)
94%-75% – 4(хорошо)
74%-60% – 3(удовлетворительно)
Менее 60%– 2(неудовлетворительно)
Тема 4.2. Строки
Выполните тест. Из предложенных ответов выберите правильный. Верных ответов может быть несколько
1. Отметьте все правильные объявления символьных строк.
a) var s: string;
b) var string: s;
c) var s, s1, s2: array[1..10] of char;
d) var s1, s2: integer;
e) var s, s1, s2: string;
2. Каким из типов описывается переменная строкового типа длиной не более 255 символов?
a) integer;
b) word;
c) string;
d) string[20];
e) char.
3. Какая функция находит длину символьной переменной?
a) n:=copy(s,m,n);
b) n:=length(s);
c) n:=str(ch,s);
d) n:=val(s,ch,k);
e) n:=delete(s,n,m);
4. Каким из типов описывается переменная символьного типа (один символ)?
a) integer;
b) word;
c) string;
d) string[20];
e) char.
5. Какая из процедур позволяет удалять данной строки s m символов, начиная с n-ого символа?
a) delete(s,m,n);
b) delete(s,n,m);
c) copy(s,m,n);
d) copy(s,n,m);
e) insert(s,m,n);
6. Результатом работы программы будет слово:
Program T34;
Var x: string[6];
Begin
x:='мим'+'озадаченный';
Writeln(x)
End.
a) Мимозадаченный;
b) Мим озадаченный;
c) Озадаченный мим;
d) Озадаченныймим;
e) мимоза.
7. Какое значение примет переменная S при выполнении данной программы?
Var S : String;
Begin
S:='abcdef';
S:=Copy(S, 2, 3);
End.
a) cda
b) baf
c) bcd
d) efb
e) acd
8. Какое значение примет переменная S при выполнении данной программы?
Var S : String;
Begin
S:='unix & windows forever!';
Delete(S, 6, 10);
WriteLn(S);
End.
a) forever!
b) unix
c) windows forever!
d) funix forever!
e) unix forever!
9. Какие значения примут переменные x1 и x2, если
s := 'Система Turbo Pascal';
x1 := pos('Pascal', s);
x2 := pos('Basic', s);
x1 =15
x2 =0
Критерии оценки теста
100%-95% – 5(отлично)
94%-75% – 4(хорошо)
74%-60% – 3(удовлетворительно)
Менее 60%– 2(неудовлетворительно
Тема 4.3 Множества
ЗАДАНИЕ 1
Ответьте на предложенные вопросы:
1.1 Множества представляют собой ограниченный набор однотипных логически связанных друг с другом объектов.
____________________________
1.2 Конструктор множества, это:
Это заключённый в квадратные скобки перечень элементов, разделённых запятыми.
____________________________
1.3 Операция IN, это:
Это операция, операндами которой должны выступать элемент множества и множество.
____________________________
ЗАДАНИЕ 2
Соотнесите операции над множествами с их обозначениями.
1. 2. 3. | A. 3) Разность B. 1) Пересечение C. 2) Объединение |
ЗАДАНИЕ 3
Какие получим результаты выражений после выполнения операций над множествами A и B
Значение А | Значение B | Выражение | Результат |
[1,3 ,5] [0, 1, 3 ,5, 7] [1,3 ,4, 5, 6] | [1,3 ,4, 5, 6] [1,3 ,4, 5, 6] [1, 3 , 8] | A+B A-B A*B |
Тема 4.4 Записи
ЗАДАНИЕ 1
Анкетные данные о студенте представлены в виде информационной структуры
Описание анкеты студента в Паскале:
Type Anketa=Record;
FIO: String [51];
Pol: Char;
Dr: String [8];
Adres: String [50];
Curs: [1...5];
Grupp: String [3];
end;
ЗАДАНИЕ 2
Данные о студенте представлены в виде информационной структуры
Описание анкеты студента в Паскале:
Type anketa1=record
Fio: string [45];
Pol: char;
dat_r: record;
God: integer;
Mes: string [10];
Den: 1..31;
End;
Adres: record
Gorod: string [25];
Ulica: string [20];
Dom, kv: integer;
End;
Curs: 1..5;
Grupp: string[3];
End;
После выполнения задания обведите соответствующий Вашему настроению смайлик:
J - у меня получилось; J - не всё получилось, но я справился (лась) с заданием;
L - было трудно, надо больше заниматься.
Тема 4.5 Файлы
ЗАДАНИЕ 1
Язык Турбо Паскаль предлагает три вида представления физического файла в программе:
1) Типизированные файлы это тип файлов, для которого нет поддержки в OS и VCL. (Задаются предложением FILE OF…).
2)Текстовые файлы представляют собой последовательность строк, а строки - последовательность символов. (Определяются типом TEXT).
3)Не типизированные файлы представляют собой каналы ввода-вывода нижнего уровня, используемые в основном для прямого доступа к любому файлу на диске, независимо от его типа и структуры. (Определяются типом FILE).
ЗАДАНИЕ 2
Укажите названия процедур работы с файлами, которые соответствуют перечисленным ниже определениям:
1. Rewrite (f) – устанавливает файл в начальное состояние режима записи.
2. Write (f, x) – записывает в файл очередную компоненту, равную значению заданного выражения, после чего окно сдвигается на следующую позицию файла.
3. Reset(<имя_ф_переменной>) – переводит файл в режим чтения и устанавливает окно для чтения в первую позицию файла.
4. Assign – устанавливает связь между конкретным физическим файлом на диске и переменной файлового типа, являющейся представителем этого файла в программе.
5. FaleSize – возвращает общее число элементов файла.
ЗАДАНИЕ 3
Дан фрагмент программы. Определить результат его выполнения в том случае, когда файл f не содержит ни одного числа (файл существует, если успешно открыт для чтения, но пуст)
A:=0;
Repeat
Read (f,a);
Writeln (a);
Until eof (f);
________________________________
________________________________
ЗАДАНИЕ 4
Определите тип файла D:
VAR D: FILE OF TEXT; T: FILE OF CHAR;
Тема 4.6 Указатели
ЗАДАНИЕ 1
Ответьте на предложенные вопросы:
1.1 Динамическая память, это:
Это оперативная память ПК, предоставляемая программе при ее работе, за вычетом сегмента данных (64 Кбайт), стека (обычно 16 Кбайт) и собственно тела программы. ____________________________
1.2 Указатель, это:
Переменная, диапазон значений которой состоит из адресов ячеек памяти или специального значения — нулевого адреса. ____________________________
1.3 Сегмент, это:
Это участок памяти, имеющий длину 65536 байт (64 Кбайт) и начинающийся с физического адреса, кратного 16 (т.е. 0, 16, 32, 48 и т.д.). Смещение указывает, сколько байт от начала сегмента необходимо пропустить, чтобы обратиться к нужному адресу.
___________________________
1.4 Смещение, это:
Выравнивание данных называется смещением. ____________________________