- •1.Массивы.
- •2.Строковые массивы.
- •4.Процедура без параметров.
- •5.Процедура с параметрами.
- •6.Использование параметров-значений и параметров-переменных в качестве входных. Параметры константы.
- •7. Ограничения, наложенные на формальные и фактические параметры.
- •8.Аппарат функций.
- •9. Побочный эффект в процедурах и функциях.
- •10)Рекурсия
- •11.Опережающее описание процедур
- •12.Параметры процедурного типа:
- •13.Внешние модули, реализованные на других языках программирования. Структура основной программы, вызывающей процедуру. Присоединение текстового файла.
- •14. Структура tpu- модуля и программы.
- •15.Ссылочные типы данных, работа со связанным списком.
- •16.Ссылочные типы данных, формирование списка студентов из файла.
- •17.Поиск элемента в списке.
- •18.Исключение и добавление
- •19.Включение в список.
- •20.Типизированный файл.
- •21.Текстовые файлы
- •22.Файлы прямого доступа:
- •1.Особенности языка Си. Программа печати текста.
- •2.Программа печати таблицы с циклом «пока».
- •3.Программа печати таблицы с арифметическим циклом.
- •4.Программа печати таблицы с арифметическим циклом при использовании символических констант.
- •5.Ввод, вывод символов. Копирование файла.
- •6.Подсчет числа символов в файле
- •7.Подсчет числа строк в файле.
- •8.Подсчет числа символов, строк и слов в файле.
- •9.Подсчет числа каждой цифры, символов пустых промежутков и всех остальных символов.
- •10.Функции
- •11.Методы передачи параметров в функциях
- •12.Заполнение массива одинаковыми значениями.
16.Ссылочные типы данных, формирование списка студентов из файла.
Program список;
Type ссылка=^элсписка;
элсписка=record
фам:string;
адрес:ссылка;
end;
var F:file of string;
начало, конец, очередэл, новэл, вспомэл: ссылка;
искфам, новфам: string;
begin
assign(F,’досье’);
reset(F);
начало:= NIL;
конец:=NIL;
while not eof(F) do
begin
if начало=NIL then {создание 1-ого элемента}
begin
New(очередэл);
read(F,очередэл^.фам);
очередэл^.адрес:=конец;
начало:=очередэл;
end;
else {очередной элемент}
begin
New(вспомэл);
read(F, вспомэл^.фам);
очередэл^.адрес:=вспомэл;
вспомэл^.адрес:=конец;
очередэл:=вспомэл;
end;
end; {от while}
end.
17.Поиск элемента в списке.
Считываем адрес и проверяем, не NIL ли он.
{закончили создание списка, переходим к поиску фамилии в списке}
read(искфам); {эту фамилию будем искать}
очередэл:=начало;
while (искфам< >очередэл^.фам) and
(очередэл< >NIL) do
{спускаемся вниз по списку}
очередэл:=очередэл^.адрес;
{когда мы вышли из цикла у нас 2варианта}
if очередэл^.фам=искфам then
writeln(‘есть’)
else
writeln(‘нет’);
end.
18.Исключение и добавление
Исключение:
{закончили создание списка, переходим к поиску фамилии в списке и ее исключению из рассмотрения}
read(искфам);
очередэл:=начало;
while (искфам<>очередэл^.фам) and (очередэл<>NIL) do
очередэл:=очередэл^.адрес;
if очередэл^.фам=искфам then
очередэл:=очеред^.адрес;
{«перепрыгиваем» через найденный элемент}
end.
Добавление:
{закончили создание списка}
read(новфам);
очередэл:=начало;
while очередэл< >конец do
очередэл:=очередэл^.адрес;
{спустились по списку до конца}
New(вспомэл);
очередэл^.адрес:=вспомэл;
{создали новый элемент и обеспечили на него ссылку предыдущего}
вспомэл^.фам:=новфам;
{записали введенную фамилию}
вспомэл^.адрес:=конец;
очередэл:=вспомэл;
end.
19.Включение в список.
Включение элемента в нужное место (на пример после искомой фамилии)
·Найдём место, то есть адрес элемента с искомой фамилией.
· Создание нового элемента.
·Организуем ссылку нового элемента на следующий за очередным
(оба элемента теперь ссылаются на один и тот же).
· Организуем ссылку очередного на новый.
{закончили создание списка}
readln(новфам);
readln(искфам);
очередэл:=начало;
while (очередэл< >конец) and
(очередэл^.фам<>искфам) do
очередэл:=очередэл^.адрес;
if очередэл^.фам=искфам then
begin
New(новэл);
{пока он без всяких связей}
новэл^.адрес:=очеред^.адрес;
{оба ссылаются на один и тот же элемент}
очеред^.адрес:=новэл;
новэл^.фам:=новфам;
очередэл:=новэл;
end;
else writeln(‘нет такой’)
end.