IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Требуеться помощь на тему: Простые объекты !
Aspire
сообщение 13.12.2006 23:22
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Помогите кто знает !!!!!


Тема: Простые объекты.

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

Зарание спасибо !!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Безумство
сообщение 20.04.2010 13:36
Сообщение #2


Гость






по поводу перво запостеной задачи вот что пока получилось


program lab14a;

{$APPTYPE CONSOLE}

uses
SysUtils;

Type TInt = object
znachenie : single;
zapis : string[30];
constructor Init;
function CountNumFromDot(): integer;
end;
Constructor TInt.Init;
Begin
readln(znachenie);
str(znachenie:18:12,zapis);
zapis:=trim(zapis);
End;

Function TInt.CountNumFromDot():integer;
var
pos: integer;
Begin
pos:=AnsiPos('.',zapis)-1;
CountNumFromDot:=pos;
End;


var
ObjM : array [1..100] of TInt;
i,summa_num, n: integer;
summa_all: single;

BEGIN

i:=0;
summa_all:=0;
summa_num:=0;

repeat
i:=i+1;
write('Vvedite Object(vixod:1000) ');
ObjM[i].Init;
until ObjM[i].znachenie=1000;

n:=i-1;

for i:=1 to n do
begin
summa_all:=summa_all+ObjM[i].znachenie;
summa_num:=summa_num+ObjM[i].CountNumFromDot;
end;

writeln('srednee = ',(summa_all/n):12:5,' ','srednee v celix = ', (summa_num/n):8:2);
readln;
end.



Ну хоть убейте мя компилятор Делфи 7 про стринги ничего не говорит (( может где-то включается отдельно?
и еще вычитал переключатель или как это называется
{H-} все строки считаются shortstring может быть его использовать..


и второй вариант (там просят с массивом и со списком)


program lab14b;

{$APPTYPE CONSOLE}

uses
SysUtils;

Type TInt = object
znachenie : single;
zapis : string[30];
constructor Init;
function CountNumFromDot(): integer;
end;
Constructor TInt.Init;
Begin
readln(znachenie);
str(znachenie:18:12,zapis);
zapis:=trim(zapis);
End;

Function TInt.CountNumFromDot():integer;
var
pos: integer;
Begin
pos:=AnsiPos('.',zapis)-1;
CountNumFromDot:=pos;
End;

Type tpoint = ^Spisok;
Spisok = record
val : TInt;
next : tpoint;
end;

var
fist, p, p1 : tpoint;
summa_num, n: integer;
summa_all: single;

BEGIN

n:=0;
summa_num:=0;
summa_all:=0;
p1:=nil;
new(fist);
fist^.next:=nil;

repeat
new(p);
if (fist^.next=nil) then fist^.next:=p
else p1^.next:=p;
write('Vvedite Object(vixod:1000) ');
p^.val.init;
p1:=p;
until p^.val.znachenie=1000;

p:=fist^.next;
while p^.next <> nil do
begin
n:=n+1;
p^.val.CountNumFromDot;
summa_num:=summa_num+p^.val.CountNumFromDot;
summa_all:=summa_all+p^.val.znachenie;
p:=p^.next;
end;

writeln('srednee = ',(summa_all/n):12:5,' ','srednee v celix = ', (summa_num/n):8:2);
readln;
end.


 К началу страницы 
+ Ответить 
Безумство
сообщение 20.04.2010 13:42
Сообщение #3


Гость






Цитата(TarasBer @ 20.04.2010 13:36) *

А зачем обнулять переменную num перед циклом? Компилятор удивился, потому и спрашивает.


Блин точно))) Спасибо)...
Ну это перестраховка)) просто при пробеге пошагово в Watch пишет
num: Variable 'num' inaccessible here due to optimization

:-[
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Aspire   Требуеться помощь на тему: Простые объекты !   13.12.2006 23:22
мисс_граффити   показывай, что пробовал делать   13.12.2006 23:36
Aspire   показывай, что пробовал делать Ты знаешь я не ...   14.12.2006 1:16
мисс_граффити   нет, я этого не знаю. но в таких ситуациях надо по...   14.12.2006 23:11
Серега   вот и я добрался до этой типовой задачки.. пока му...   16.04.2010 15:55
Серега aka Безумство =)   я намыслил так: program project-olo-lo; {$A...   16.04.2010 17:17
volvo   Нет, что ты... Мы будем восхищаться твоим шедевром...   17.04.2010 13:06
Безумство   То, что один объект инициализируется неоднократно...   17.04.2010 23:08
TarasBer   Очки должен протирать тот, кто НЕ видит то, что ес...   19.04.2010 10:16
volvo   А у меня слон под кроватью. Это не может компилиро...   19.04.2010 11:08
Безумство   Ну постановка задачки, уже описаны в первом посте ...   20.04.2010 13:23
TarasBer   А зачем обнулять переменную num перед циклом? Комп...   20.04.2010 13:36
Безумство   по поводу перво запостеной задачи вот что пока пол...   20.04.2010 13:36
Безумство   А зачем обнулять переменную num перед циклом? Ком...   20.04.2010 13:42
TarasBer   Ctrl+Shift+F11, вырубить оптимизацию, потом Alt+P ...   20.04.2010 13:47
Безумство   TarasBer Ого тонкости))) Спасибо снова, вы мне дв...   20.04.2010 14:05


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 10:06
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"