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

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> помогите исправить и разобраться. ООП., задача простенькакя, а я совсем новичок в этом деле, хотелось бы понят
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Женский
Реальное имя: Nastya

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


задача простенькакя, а я совсем новичок в этом деле, хотелось бы понять и разобраться.
Состроить описание класса, содержащего информацию о почтовом адресе организации. Предусмотреть возможность:
раздельного изменения составных частей адреса;
создания объектов этого класса;
уничтожения объектов этого класса.
поиска необходимого адреса по названию
Написать программу, демонстрирующую работу с этим классом.
type
pochta=class
index,dom:integer;
oblast,gorod,ulica:string;
procedure Changeindex(a:integer);
procedure Changedom(b:integer);
procedure Changeoblast(c:string);
procedure Changegorod(d:string);
procedure Changeulica(f:string);
procedure Input ; //процедура для ввода данных
procedure ShowInfo; //процедура демонстрируящая информацию
end;
var adres:pochta;a,b:integer;
c,d,f:string;
procedure pochta.Changeindex(a:integer);//изменение номера индекса
begin
index:=a;
end;
procedure pochta.Changedom(b:integer);//изменение номера дома
begin
dom:=b;
end;
procedure pochta.Changeoblast(c:string);//изменение области
begin
oblast:=c;
end;
procedure pochta.Changegorod(d:string);//изменение города
begin
gorod:=d;
end;
procedure pochta.Changeulica(f:string);//изменение улицы
begin
ulica:=f;
end;
procedure pochta.input;
begin
write('Oblast- ');
readln(oblast);
write('Gorod- ');
readln(gorod);
write('Ulica- ');
readln(ulica);
write('Dom- ');
readln(dom);
write('Index- ');
readln(self.index);
end;
procedure pochta.ShowInfo;
begin
writeln('oblast- ',oblast,' gorod- ',gorod,
' ulica- ',ulica,' dom- ',dom,' index- ',index);
end;
begin
adres:=pochta.create;
adres.Input;
write('Vvedite a= ');
readln;
adres.Changeindex(a);
adres.ShowInfo;
write('Vvedite b= ');
readln;
adres.Changedom(b);
adres.ShowInfo;
write('Vvedite c= ');
readln;
adres.Changeoblast©;
adres.ShowInfo;
write('Vvedite d= ');
readln;
adres.Changegorod(d);
adres.ShowInfo;
write('Vvedite f= ');
readln;
adres.Changeulica(f);
adres.ShowInfo;
adres.Free;
writeln('enter for exit');
readln;



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 1)
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

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


Ну, во-первых, в приведенном коде я не увидел ни создания, ни уничтожения объекта, как того требует задание. Поиска, кстати, тоже.
Во-вторых, такой способ представления информации крайне неудобен. Логичнее было бы ввести отдельный класс области (индекс; название; возможно, список городов), города (индекс; индекс области; название; возможно, список улиц), отдельный класс улицы (индекс; индекс города; название; возможно, список или диапазон номеров домов), дом (индекс; индекс улицы (предусмотреть для дома минимум 2 адреса - для домов, находящихся на пересечении улиц; предусмотреть возможность буквенного окончания и номера корпуса).
Сщбственно, так и поиск по адресу будет реализовать значительно проще.
Кроме того, в процедурах изменения нужно предусмотреть контроль на допустимость значения. Например, номер дома не может быть отрицательным.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 20.04.2024 20:21
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name