Курсовая работа учителя
393 лицея Кировского района
Зелениной Светланы Борисовны
e-mail:
szel@mail.ru
Метод проектов известен и используется давно, материалов по нему много, поэтому рекомендую ознакомиться, например, с такими:
http://distant.ioso.ru/project/meth%20project/metod%20pro.htm - д.п.н., проф. ПОЛАТ Е.С., ИОСО РАО. Метод проектов
http://www.likt590.ru/projects/method.php - метод проектов на сайте ЛИКТ 590
http://www.nachalka.com/node/178 - библиография и ссылки по поектному методу
yadykin_upravlenie_obucheniem.ppt
надпредметный проект
magerin_project.ppt межпредметный проект
sazanov_zashita.ppt предметный проект
Необходимо восстановить:
Материалы можно найти по ссылке: указатели, динамическая память
Список - это совокупность объектов, называемых элементами списка, в которой каждый объект содержит информацию о местоположении связанного с ним объекта
Здесь необходимо обсудить отличие понятия «список» в программировании от бытового понятия (например, список в журнале).
Сведения по теме можно подчерпнуть:
списки - общие сведения, графические иллюстрации и примеры на C++
изложение темы применительно к языку Паскаль
Списки бывают различными. Наиболее простыми для реализации являются линейные односвязные списки, т.е. списки в которых каждый элемент содержит ссылку ровно на один другой элемент списка (кроме последнего, хвоста списка - который содержит «пустую» ссылку NIL), и в которых на каждый элемент указывает ровно один другой элемент (кроме первого, головы, на который не указывает ни один элемент списка).
Линейные односвязные списки подразделяют на СТЕКИ (МАГАЗИНЫ) и ОЧЕРЕДИ, в зависимости от порядка добавления и удаления элементов.
Структура типа «стек» является часто используемой «компьютерной» структурой. В ней элементы добавляются и удаляются с одной и той-же стороны списка (обычно - к «голове». хотя возможны варианты), соответственно последний добавленный элемент первым и уходит. Такая дисциплина носит название LIFO (Last In - First Out).
Здесь необходимо вспомнить о передаче параметров процедуре, особенно при рекурсивном вызове (в этом случае слово «стек» особенно легко всплывает в памяти учащихся).
Структура «очередь» наоборот реализует дисциплину FIFO (First In - First Out) и похожа на очередь в бытовом смысле. Добавление и удаление элементов происходит «с разных сторон.
Пример программы создания односвязного линейного списка:
program primer_work_with_list; type pt = ^client; client = record name : string[20]; next : pt; end; var head, actual : pt; temp_name : string[20]; begin {создание списка} head:=nil; repeat actual:=head; write('name? '); readln(temp_name); if temp_name<>'' then begin new(head); head^.next:=actual; head^.name:=temp_name; end until temp_name=''; {вывод списка} actual:=head; while actual <> nil do begin writeln(actual^.name); actual:=actual^.next; end; {дальше можно продолжить по усмотрению...} end.
Наибольшую сложность вызывает обращение к произвольному элементу списка, а также - добавление и удаление произвольного элемента.
{удаление элемента} temp:=actual^.next; actual^.next:=temp^.next; dispose(temp);
{добавление элемента} new(temp); temp^.next:=actual^.next; actual^.next:=temp;
Имеет смысл в качестве практической работы предложить набрать и проверить работу фрагментов программ по созданию и выводу списка. Далее - дополнить программу подсчетом количества элементов в списке. Другие возможные несложные дополнения - чтение данных из файла и запись в файл.
Дополнить программу возможностью выбора одной из операций:
Кроме перечисленных выше источников информации можно предложить также:
Турбо паскаль 7.0. Динамическая память