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

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

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

> Телефонная книга. Исправить ошибки, Ввод,поиск,сохранение записей.
Natalia
сообщение 20.12.2006 2:48
Сообщение #1


Новичок
*

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

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


Доброго времени суток! Помогите разобраться с задачей. Всё, что поняла, реализовала в программе.
Задача такая: Составьте программу, реализующую телефонную книгу. Каждая запись в книге включает фамилию, инициалы и три телефона (один домашний и два рабочих). Программа должна обеспечивать ввод и сохранение записей, вывод телефонов по введённой фамилии, а также вывод всех фамилий с указанием инициалов по введённому телефонному номеру.
Но у меня не выходит. wacko.gif

Код
program Telefonnaya_kniga;
uses crt;
const n=10;
type
       book=record
             first_name:string[20];
             inis:string[5];
             telrab1:shortInt;
             telrab2:shortint;
             teldom:shortint;
            end;
       Tel_Book=array[1..n] of book;
       Ffile=file of Tel_Book; {файл для хранения базы}
var f:Ffile;
    b:Tel_Book;
    t,k,tel:shortint;
    i:byte;
    s:string;
begin
  assign(f,'tel_book.txt');
  writeln('Ввод данных-0; поиск-1; сохранение-2; возврат в меню-".."');
  readln(t);
  if t=0 then begin
  append(f);
  writeln('Ввод данных в телефонную книгу:');
  while t<>'..' do
   with b[i] do begin
    write('Фамилия: ');
    readln(first_name);
    write('Инициалы: ');
    readln(inis);
    writeln('Домашний телефон: ');
    readln(teldom);
    writeln('Рабочий телефон 1: ');
    readln(telrab1);
    writeln('Рабочий телефон 2: ');
    readln(telrab2);
    writeln;
   end;
   write(f,b);
   close(f);
  end;
  if t=1 then begin
  reset(f);
  while k<>'..' do
   writeln('Поиск:')
   writeln('по фамилии-0');
   writeln('по телефону-1');
   readln(k);
  if k=0 then begin
   writeln('Введите фамилию');
   readln(s);
    for i:=1 to n do
     if s=b.first_name then writeln(b.first_name,b.inis,b.teldom,b.telrab1,b,telrab2);
    end;
  end;
  if k=1 then begin
   writeln('Введите телефон');
   readln(tel);
    for i:=1 to n do
     if tel=b.teldom then writeln(b.first_name,b.inis,b.teldom,b.telrab1,b,telrab2);
     if tel=b.telrab1 then writeln(b.first_name,b.inis,b.teldom,b.telrab1,b,telrab2);
     if tel=b.telrab2 then writeln(b.first_name,b.inis,b.teldom,b.telrab1,b,telrab2);
    end;
  end;
  close(f);
  end;
  readln;
  end.


И ещё вопрос: какой функцией воспользоваться, чтобы определить количество байтов, записанных в файл? FileSize - мне не помог. Нужна ли тут процедура FilePos?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 21.12.2006 12:02
Сообщение #2


Гость






Цитата
Я в твоем форматировании запуталась.
smile.gif Кстати, есть очень хорошая утилита - для переформатирования текстов программ, написанных на Паскале, с соблюдением отступов (из комплекта FPC) - иногда просто незаменима, если код довольно большой и плохо форматированный (или вообще без отступов):

Полезные программы и утилиты
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Natalia   Телефонная книга. Исправить ошибки   20.12.2006 2:48
Lapp   Но у меня не выходит. Слишком общо.. Что имен...   20.12.2006 9:20
Natalia   Основную проблему с append я знаю... У меня задани...   20.12.2006 16:57
мисс_граффити   хммм.... так что смело открывай reset   20.12.2006 18:18
Natalia   Поковырялась с файлом. Вот что вышло. По-крайней м...   20.12.2006 19:46
мисс_граффити   размер в байтах=filesize(твоего файла)*sizeof(элем...   20.12.2006 19:58
Natalia   размер в байтах=filesize(твоего файла)*sizeof(эле...   20.12.2006 21:51
Natalia   Подскажите, пожалуйста, в чём дело. Немного переде...   20.12.2006 21:36
мисс_граффити   var f:file; а речь вроде шла про работу с типизиро...   20.12.2006 21:57
Natalia   var f:file; а речь вроде шла про работу с типизир...   20.12.2006 22:24
Bokul   Держи универсальную функцию нахождения размера фай...   20.12.2006 22:46
Гость   Держи универсальную функцию нахождения размера фа...   20.12.2006 23:21
volvo   А что, в этом цикле где-то меняется значение T? ...   20.12.2006 22:52
Natalia   А что, в этом цикле где-то меняется значение T? ...   20.12.2006 23:31
мисс_граффити   а почему у тебя вложенные циклы по одной переменно...   21.12.2006 0:38
Natalia   а почему у тебя вложенные циклы по одной переменн...   21.12.2006 1:42
мисс_граффити   Я в твоем форматировании запуталась. они, оказывае...   21.12.2006 10:28
volvo   :) Кстати, есть очень хорошая утилита - для переф...   21.12.2006 12:02
Bokul   И как с ней работать?   22.12.2006 0:58
volvo   Запустить из консоли не пробовал? Она показывает Х...   22.12.2006 1:01
Natalia   Здравствуйте. Вот новая редакция программы)) Всё, ...   22.12.2006 7:06
volvo   Во-первых, ты ничего в файл не записываешь... Поче...   23.12.2006 1:00
Natalia   Во-первых, ты ничего в файл не записываешь... Поч...   23.12.2006 2:49


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

 



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