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

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

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

> Телефонная книга. Исправить ошибки, Ввод,поиск,сохранение записей.
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


просто человек
******

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

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


размер в байтах=filesize(твоего файла)*sizeof(элемент файла)


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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