Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 20.01.2007, 16:06   #1
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
Сообщение Задача на объекты. Исправить код.

Один человек попросил помоч, а я чего то не понимаю... Есть такая задача:
Цитата:
Описать объект, включающий заданные поля и методы. Написать программу, которая создает массив объектов и список объектов и содержит процедуры, работающие с указанными структурами.
Объект - квартира. Параметры: площадь и стоимость. Методы: конструктор и процедура, которая определяет стоимость одного метра. Определить какие квартиры из предложенных, имеют стоимость метра меньше заданной. Реализовать два варианта (с массивом и списком).
И вот такое решение (не мое):

Код:
program laba14;

{$APPTYPE CONSOLE}

uses
  SysUtils;
Type  Tflat=Object
      s,cust:real;
      procedure init(asq,acust:real);
      function metrcust:real;
      end;
      procedure tflat.init;
      begin
      s:=asq;
      cust:=acust;
      end;
      function tflat.metrcust;
      begin
      metrcust:=cust/s;
      end;
Type ptelem=^telem;
     telem=record
     kvar:tflat;
     next:ptelem;
     end;

Var F:tflat;
dom:array[1..10] of tflat;
sq,c:real;
i,n,k:byte;
first,last,cur:ptelem;
begin
{
WriteLn('Vvedite kol-vo kvartir v dome');
ReadLn(n);
WriteLn('Vvedite dannie o kvartirah');
for i:=1 to n do
begin
  WriteLn('Kvartira №',i:3);
  Write('Plochad = ');readln(sq);
  Write('Stoimost = ');readLn(c);
  dom[i].init(sq,c);
end;
writeln('                    Dannye o dome');
writeln('____________________________________');
for i:=1 to n do
begin
  WriteLn('Kvartira №',i:3);
  Writeln('Plochad = ',dom[i].s:7:3);
  Writeln('Stoimost = ',dom[i].cust:7:3);
  writeln(' Cena metra=',dom[i].metrcust:7:3);
  writeln('____________________________________');
end;

  WriteLn('Vvedite stoimost 1 metra=');
  ReadLn(c);
  k:=0;
for i:=1 to N do
begin
  if c>=dom[i].metrcust then begin
  k:=k+1;
WriteLn('Kvartira №',i:3,' stoimost metra ',dom[i].metrcust:5:3,' plochad ',dom[i].s:7:3);
    end;
    end;
    if k=0 then WriteLn('Takoi kvartiri net!');
readln; }
WriteLn('Vvedite kol-vo kvartir');
readLn(n);
 WriteLn('Vvedite dannie o kvartirah');
i:=1;
  WriteLn('Kvartira N',i:3);
  Write('Plochad = ');readln(sq);
  Write('Stoimost = ');readLn(c);
  new(first);
  first^.kvar.init(sq,c);
  first^.next:=nil;
  last:=first;
  for i:=2 to n do begin
   WriteLn('Kvartira N',i:3);
   Write('Plochad = ');readln(sq);
   Write('Stoimost = ');readLn(c);
   new(cur);
   cur^.kvar.init(sq,c);
   cur^.next:=nil;
   last^.next:=cur;
   last:=cur;
   end;
   cur:=first;
   writeln('                    Dannye o dome');
writeln('____________________________________');
i:=0;
   while cur<>nil do
   begin
    i:=i+1;
    WriteLn('Kvartira N',i:3);
  Writeln('Plochad = ',Cur^.kvar.s:7:3);
  Writeln('Stoimost = ',Cur^.kvar.cust:7:3);
  writeln(' Cena metra=',Cur^.kvar.metrcust:7:3);
  writeln('____________________________________');
  cur:=cur^.next;
   end;
WriteLn('Vvedite stoimost 1 metra=');
  ReadLn(c);
cur:=first;
 writeln('               Result poisk');
i:=0;
   while cur<>nil do
   begin
    i:=i+1;
    if c>=Cur^.kvar.metrcust then
    begin
   WriteLn('Kvartira N',i:3);
  Writeln('Plochad = ',Cur^.kvar.s:7:3);
  Writeln('Stoimost = ',Cur^.kvar.cust:7:3);
  writeln(' Cena metra=',Cur^.kvar.metrcust:7:3);
  writeln('____________________________________');
  end;
  cur:=cur^.next;
   end;

ReadLN;

end.
Все вроде верно, но препод говорит что здесь что то лишнее... Подскажите плз.
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума
Старый 21.01.2007, 14:55   #2
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Извините что заставил мозги ломать, просто там было несоответствие условию. Тема закрыта.
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объекты или... Lich Общие вопросы Delphi 1 03.06.2008 23:22
объекты в си Барби Помощь студентам 1 13.05.2008 01:10
3D объекты в Си g0liath Помощь студентам 2 20.04.2008 21:39
Как стирать объекты? tolyan_baraban Общие вопросы Delphi 4 23.09.2007 15:17
com-объекты b-code Общие вопросы Delphi 0 15.03.2007 11:17