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

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

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

 
 Ответить  Открыть новую тему 
> Плиз хелп, Задача на записи
nblazhko
сообщение 29.11.2007 15:12
Сообщение #1


Новичок
*

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

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


Нужно написать программу по типо записной книжки,чтобы в нее добовлялось ФИО,телефон и хобби,и чтобы в ней был поиск по телефону,я написал вроде прогу но когда она выводит на показ запись то вместо номера она пишет 0,а при поиске ищет правельный контакт т.е. я задал контакт с номером 465 при поиске ввожу 465 и он находит этот контакт но на экрате все равно 0. Вот программа:
Program Adress_Book;
uses
Crt;
type
AdressItem = record
Fio: String;
Adress: String;
Phone: LongInt;
Ph:LongInt;
end;


var
Book: Array [1..10] of Adressitem;
Nums, I: Byte;
Code: Integer;
C: Char;
Quit: Boolean;
IntToSt:String;
StrNum:String;
Ph:LongInt;
tind:Integer;
Tel:LongInt;

Function Search(TelNum:LongInt):Integer;
Var
Phone:LongInt;
i:Integer;
StrNum:String;
IntToStr:String;
Begin
Phone:=Ph;
Search:=-1;
StrNum:=IntToStr;
for i:=1 to 10 do
If Book[i].Phone=1
Then
Begin
Search:=i;
Break
end;
end;

Procedure New_Item;
var
F, A, Em: String;
Ph: LongInt;
begin
ClrScr;
Inc(Nums);
if Nums > 10 then
begin
Write('MAx kol-vj zapisey!');
exit;
end;

Writeln('Zapis N', Nums); Writeln;
Write('Vvedite FIO: ');
Readln(F);
Write('Vvedite Xobbu: ');
Readln(A);
Write('Vvedite telefon: ');
Readln(Ph);
Writeln;
with Book[Nums] do
begin
Fio := F;
Adress := A;
Phone := Ph;
end;
Write('NEW запись успешно добавлена!');
end;

{ процедура отображения данных отдельной записи }
Procedure List_Item(N: Byte);
begin
if N > Nums then
begin
Write('Nevernui nomer');
exit;
end;

With Book[N] do
begin
Writeln('Zapis N', N); Writeln;
Writeln('FIO: ', Fio);
Writeln('Hobbu: ', Adress);
Writeln('Telefon: ', Ph);
Writeln;
end;
Readln;
end;

begin
Quit := False;
Nums := 0;
repeat
ClrScr;
Writeln('Tel. kniga"');
Writeln('==========================='); Writeln;
Writeln('Zapisi: ');
Writeln('--------------------');
if Nums = 0 then Writeln('Zapisey net')
else
For I := 1 to Nums do
Writeln(I, ' - FIO: ', Book[I].Fio);
Writeln('--------------------'); Writeln; Writeln;
Writeln('''a'' - Dobavit zapis');
WriteLn ('''b'' - Poisk po tel.');
Writeln('Nomer - Pokazat zapis');
Writeln('Esc - Exit');
Writeln;
Write('Vash vubor: ');
C := ReadKey;
case C of
'1'..'9': begin
Val(C, I, Code);
List_Item(I);
end;
'a': New_Item;
'b': begin
Write ('VVedite Tel.: ',Tel);
ReadLn(Tel);
tind:=Integer(Tel);
Search(Tel);
If tind <> -1 then
WriteLn(Search(Tel));

List_Item(i);

WriteLn('Telefon Ne nayden: ');
end;

'1'..'9': Begin
Val (C,I,Code);
end;
#27: Quit := true;
end;
until Quit;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 29.11.2007 15:40
Сообщение #2


Гость






{ процедура отображения данных отдельной записи }
Procedure List_Item(N: Byte);
...
With Book[N] do begin
Writeln('Zapis N', N); Writeln;
Writeln('FIO: ', Fio);
Writeln('Hobbu: ', Adress);
Writeln('Telefon: ', Phone); { <--- А что у тебя было? }
Writeln;
end;
Readln;
end;

Ты же при заполнении записи записываешь значение только в поле Phone, вот и читай оттуда же... А вообще - программа как будто специально написана на тему "Области видимости и конфликты имен": не стоит вообще пользоваться глобальными переменными, но уж если возникла такая необходимость - дай им имена, отличные от полей записи...
 К началу страницы 
+ Ответить 

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

 



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