Основы программирования на C++, PASCAL
Then Flag:=False
Else Begin
Flag:=True;
X:=Beg;
Beg:=Beg^.P;
DISPOSE(X)
End
End;
Упражнения
1. В программе имеются описания
Var P,Q: ^Integer; R: ^Char;
Какие из следующих операторов неправильные и почему?
a)P:=Q; б)Q:=R; в)P:=Nil;
г)R:=Nil; д)Q:=P^; e)P^:=Nil;
ж)R^:=P^; з)Q^:=Ord(R^);
и) If R<>Nil Then R^:=Nil^;
к) If Q>Nil Then Q^:=P^;
Л) If P=Q Then Write (Q);
м) If Q<>R Then Read(R^),
2. В программе имеются описания
Type A^Char;
B=Record Fl: Char; F2: A End;
Var P: ^B; Q: A;
Определить значения всех указателей и динамических переменных после выполнения следующих операторов:
NEW(Q); Q^:='7';
NEW(P); P^Fl:=Succ(Q^) ; P^.F2:=Q;
3. Найти ошибки в следующей программе:
Program Example;
Var А,В: ^Integer;
Begin If A=Nil Then Read(A);
A^:=5; B:=Nil; B^:=2;
NEW(B); Read(B^); WriteLn(B,B^);
NEW(A); B:=A; DISPOSE(A); B^:=4
End.
4. Составить программу занесения в динамическую память вещественного массива из 10 000 чисел, хранящегося в файле на магнитном диске, а также поиска в нем значения и номера первого максимального элемента.
5. Решить предыдущую задачу при условии, что размер числового массива заранее не определен (т.е. определяется размером файла: предполагается, что размер файла не превышает размера динамической памяти). Данные в динамической памяти организовать в виде связанного списка.
6. Связанный список представляет собой символьную цепочку из строчных латинских букв. Описать процедуру или функцию, которая:
а) определяет, является ли список пустым;
б) заменяет в списке все вхождения одного символа на вхождения другого;
в) меняет местами первый и последний элементы непустого списка;
г) проверяет, упорядочены ли элементы списка по алфавиту;
д) определяет, какая буква входит в список наибольшее количество раз.
7. Составить тестовую программу, проверяющую правильность работы процедур INSTEK и OUTSTEK из задачи о стеке.
8. Очередью называется динамическая структура (связанная цепочка), в которой действует принцип: «Первым пришел — первым вышел». Напишите процедуры включения элемента в очередь и исключения элемента из очереди. Составьте тестовую программу, проверяющую работу процедур.