Проектный метод в програмировании

Курсовая работа учителя
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 предметный проект



Работа со структурой типа "список". Добавление и удаление элемента

План урока

  1. Актуализация знаний по темам «Динамическая память. Указатели» и «Структурированные типы данных. Записи».
  2. Понятия «Список», «Стек» и «Очередь». Определение, примеры в реальной жизни. Использование в компьютерной технике.
  3. Создание списка (стека и очереди) в программе. Добавление и удаление элемента.
  4. Практическая работа.
  5. Домашнее задание.

Краткий конспект

Актуализация

Необходимо восстановить:

  • понятие динамической памяти
  • ограничения на использование статической и динамической памяти
  • тип данных «указатель»
  • тип данных «запись»
  • опережающее описание данных

Материалы можно найти по ссылке: указатели, динамическая память

Понятия "список", "стек", "очередь"

Список - это совокупность объектов, называемых элементами списка, в которой каждый объект содержит информацию о местоположении связанного с ним объекта
фрагмент линейного списка
Здесь необходимо обсудить отличие понятия «список» в программировании от бытового понятия (например, список в журнале).

Сведения по теме можно подчерпнуть:
списки - общие сведения, графические иллюстрации и примеры на 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;


Практическая работа

Имеет смысл в качестве практической работы предложить набрать и проверить работу фрагментов программ по созданию и выводу списка. Далее - дополнить программу подсчетом количества элементов в списке. Другие возможные несложные дополнения - чтение данных из файла и запись в файл.

Домашнее задание

Дополнить программу возможностью выбора одной из операций:

  1. добавление элемента в конец списка
  2. добавление элемента в произвольное место
  3. удаление элемента из произвольного места



Кроме перечисленных выше источников информации можно предложить также:
Турбо паскаль 7.0. Динамическая память

 
aktualnye_aspekty_prepodavanija_informatiki_v_profilnoj_shkole_2008/zelenina_svetlana_borisovna.txt · Последние изменения: 2009/04/29 11:28 От bragyna
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki