вторник, января 09, 2007

Ученье - свет

В нашем славном АлтГТУ выращивают программистов по методичкам,
в одной из котрой содержатся такого рода рекомендации по написанию кода (Delphi):

procedure tsclad.put_trans(var trans:ttransistor);
// Помещает транзистор на склад
var i:integer;
  begin
    i:=self.Transistors_count;// определяем количество, содержащихся
        // в хранилище транзисторов.
    setlength(self.Transistors,i+1); // Увеличиваем на
        //единицу размерность
        // безразмерного массива

    self.Transistors[i]:=trans;// Копируем в конец
        //массива (i указывает
        //на конец массива) транзистор,
        // переданный в процедуру по ссылке (используется var в заголовке процедуры)

    self.Transistors_count:=i+1; // увеличиваем счетчик
        //количества транзисторов

    trans:=nil; // присваиваем объекту-транзистору пустой адрес,
        //и он перестает существовать вне хранилища

    trans.free; //очистить память от объекта
  end;

(C) Е.М. Патрушев, Методические указания к лабораторным и курсовым работам по курсу
«Теория и технология программирования»
для студентов специальности 190900
«Информационно-измерительная техника и технологии» Часть 2


Где ttransistor - class. Зачем так уродовать людей "на корню"?
Может я плохой знаток делфака, но
// присваиваем объекту-транзистору пустой адрес,
//и он перестает существовать вне хранилища

помоему - это уже слишком!
И почему сразу не научить людей использовать коллекции - тот же TList

1 комментарий:

Unknown комментирует...

А вот, e2e4, название параграфа где был обнаружен этот кусок кода:

Лабораторная работа №1
«Создание простейшего объектно-ориентированного Windows-приложения»


А задача следующая:

Пример: Создать программу, для учета радиодеталей, имеющихся на складе. Необходимо выполнить следующие требования:
1 Описать класс TDiode для диодов, содержащий, следующие свойства: марка диода (типа String), описание (типа String), максимальная рассеиваемая мощность (типа Real). Создать не менее трех диодов (объектов класса TDiode) и установить уникальные свойства для каждого из них.
2 Описать класс TTransistor для транзисторов, содержащий, следующие свойства: марка транзистора (типа String), описание (типа String). Создать не менее трех транзисторов (объектов класса TTransistor) и установить уникальные свойства для каждого из них.
3 Описать класс TSclad для склада радиоэлементов, в котором предусмотреть хранилища для диодов и транзисторов (безразмерные массивы), методы для помещения диодов и транзисторов в склад, метод для отображения содержимого склада.
4 Создать произвольное заполнение склада и вывести его содержимое.