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

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

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

 
 Ответить  Открыть новую тему 
> Плиз хелп, Задача на записи
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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

 





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