![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Slim |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Сделал индивидуалку - Записная книжка!
Пришёл сдавать, препод сказал что необходим ещё поиск! Как создать поиск "по телефону"? (Ввожу номер телефона который уже есть в базе данных, и программа выводит на экран, все данные которые находяться в записити с введенным телефоном.) Сама программа без поиска: Код Program Adress_Book; uses Crt; type AdressItem = record Fio: String; Adress: String; Phone: LongInt; Email: String; end; var Book: Array [1..10] of Adressitem; Nums, I: Byte; Code: Integer; C: Char; Quit: Boolean; { процедура добавления новой записи } 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('Запись N', Nums); Writeln; Write('Введите FIO: '); Readln(F); Write('Введите адресс: '); Readln(A); Write('Введите телефон: '); Readln(Ph); Write('Введите E-mail: '); Readln(Em); Writeln; with Book[Nums] do begin Fio := F; Adress := A; Phone := Ph; Email := Em; 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('Запись N', N); Writeln; Writeln('ФИО: ', Fio); Writeln('Aдрес: ', Adress); Writeln('Tелефон: ', Phone); Writeln('E-mail: ', Email); Writeln; end; Readln; end; begin Quit := False; Nums := 0; repeat ClrScr; Writeln('Книга"'); Writeln('==========================='); Writeln; Writeln('Записи: '); Writeln('--------------------'); if Nums = 0 then Writeln('Записей НЕТ. Книжка пуста.') else For I := 1 to Nums do Writeln(I, ' - ФИО: ', Book[I].Fio); Writeln('--------------------'); Writeln; Writeln; Writeln('''a'' - добавить запись'); [B]WriteLn ('''b'' - найти запись по телефону'); [/B] Writeln('Номер - показать запись'); Writeln('Esc - выход'); Writeln; Write('Ваш выбор: '); C := ReadKey; case C of '1'..'9': begin Val(C, I, Code); List_Item(I); end; 'a': New_Item; #27: Quit := true; end; until Quit; end. |
![]() ![]() |
Slim |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Код function Search(TelNum : LongInt):integer; var i : integer; begin Result := -1; for i:=1 to 10 do if Book[i].Phone = TelNum then begin Result:= i; break; end; end; Rezult - это Дельфа! А как написать поиск без Rezult? Прочитал про строки - не помогло! И ещё желательно, сделать умный поиск!Чтоб вводишь первые две цифры телефона, он мне выводит ту запись где совпадают первые две цифры! |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 14:18 |