Раздел 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

Соотнесите операции над множествами с их обозначениями.

 
  раздел 4. структуры данных - student2.ru

1.

 
  раздел 4. структуры данных - student2.ru

2.

 
  раздел 4. структуры данных - student2.ru

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

Анкетные данные о студенте представлены в виде информационной структуры

раздел 4. структуры данных - student2.ru

Описание анкеты студента в Паскале:

Type Anketa=Record;
FIO: String [51];

Pol: Char;

Dr: String [8];

Adres: String [50];
Curs: [1...5];
Grupp: String [3];
end;

ЗАДАНИЕ 2

Данные о студенте представлены в виде информационной структуры

раздел 4. структуры данных - student2.ru

Описание анкеты студента в Паскале:

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 Смещение, это:

Выравнивание данных называется смещением. ____________________________

Наши рекомендации