Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2009, 14:41   #1
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
Стрелка нужна помощь с процедурами!!

кто может, помогите составить к задаче 2 процедуры......пожалуйста!!!!!

1.процедуру ввода записей из текста файла(формат текстового файла задается самостоятельно)
2.процедуру удаления текущей или выделенной записи

Задача: выборка по жанру, отсортированная по авторам, с подсчетом кол-ва книг, выпущенных каждым автором в этом жанре.

Библиотечный каталог
а. ЖАНР
б. Автор
в. Название книги
г. Издательство
д. Год издания

Код:
type knigi=record;
Janr:string[8];
Avtor:string[20];
Nazvanie_knigi:string[15];
Izdatelstvo:string[8];
God_izdaniya:byte;
end;
const n=100;
var zap:knigi;
z:array[1..n] of knigi;
procedure vvod(var a:knigi);
begin
writeln('vvedite janr');
readln(a.janr);
writeln('vvedite Avtor');
readln(a.avtor);
writeln('vvedite Nazvanie knigi');
readln(a.Nazvanie knigi);
writeln('vvedite Izdatelstvo');
readln(a.Izdatelstvo);
writeln('vvedite God vipyska');
readln(a.God vipyska);
end;
написала процедуру ввода записей в диалоговом режиме с клавиатуры, а как быть с остальными двумя не знаю((

Последний раз редактировалось aiktz; 09.11.2009 в 14:49.
aiktz вне форума Ответить с цитированием
Старый 09.11.2009, 14:53   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
или выделенной записи
Что значит "выделенной"? Как выделяется?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2009, 15:01   #3
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
По умолчанию

тоже самое что текущей записи
aiktz вне форума Ответить с цитированием
Старый 09.11.2009, 15:49   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хорошо.
Предлагаю вариант популярный в СУБД: Ты создаешь в записи еще одно поле Boolean, которое помечаешь если нужно удалить запись.
После чего просмотрщик такие поля пропускает.
А специальной процедурой (отдельно) все эти записи выбразываются из файла - годится такое? Будет твоим преподавателем считаться это как "удаление"
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2009, 15:59   #5
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
По умолчанию

не сочтите за хамство но я вас не особо поняла......можете написать код, если не трудно???
aiktz вне форума Ответить с цитированием
Старый 09.11.2009, 16:15   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Весь код писать долгенько но:
Вот смтори, добавляешь поле:
Код:
type knigi=record;
  Deleted:boolean;
  Janr:string[8];
  Avtor:string[20];
  Nazvanie_knigi:string[15];
  Izdatelstvo:string[8];
  God_izdaniya:byte;
end;
Вводишь допустим:
Код:
procedure VvodA;
var k:knigi;f:file of knigi;i:integer;
begin
 Assign(f,'c:\temp\kg');Rewrite(f);;
 for i := 0 to 3 do begin
  vvod(k); {это твоя процедура ввода}
  write(f,k);
 end;
 Close(f);
end;
Получаешь запись по номеру:
Код:
procedure getkniga(i:integer;var k:knigi);
begin
 AssignFile(f,'c:\temp\kg'); Reset(f);
 Seek(f,i);
 if not Eof(f) then Read(f,k);
 CloseFile(f);
end;
А вывод делаешь не учитывая удаленные:
Код:
procedure Vivod;
var k:knigi;f:file of knigi;i:integer;
begin
 Assign(f,'c:\temp\kg');Reset(f);;
 while not Eof(f) do
  Read(f,k);
  if not k.Deleted then
   write(k.Nazvanie_knigi);
 end;
 Close(f);
end;
Насчет процедуры пометки удаления сделай сама на основе VvodA
Смысл понятен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2009, 16:29   #7
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
По умолчанию

спасибо более менее понятно!!
а как понять это: while not Eof(f) do
Read(f,k);
if not k.Deleted then
write(k.Nazvanie_knigi);


и это:Seek(f,i);
if not Eof(f) then Read(f,k);
CloseFile(f);


можно еще спросить?
в файл я делаю записи в таком виде:

ЖАНР: 1....
Автор: ....
Название книги:.....
Издательство:...
Год издания:.....

ЖАНР: 2....
Автор: ....
Название книги:.....
Издательство:...
Год издания:.....

и так далее????? просто меняю значения?

Последний раз редактировалось Stilet; 09.11.2009 в 16:34.
aiktz вне форума Ответить с цитированием
Старый 09.11.2009, 16:44   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
while not Eof(f) do
Read(f,k);
if not k.Deleted then
write(k.Nazvanie_knigi);
Пока не конец файла
Читаем в переменную k очередную запись
Если метка удаления у нее не стоит - выводим на экран
Цитата:
Seek(f,i);
if not Eof(f) then Read(f,k);
CloseFile(f);
Становимся в файле на i-тую позицию и если это не за пределами его читаем в переменку
Цитата:
в файл я делаю записи в таком виде:
Что ж ты сразу не сказала что у тебя нетипизированный файл то?
То что он текстовый не много означает.
Это совсем по другому делается...

Цитата:
(формат текстового файла задается самостоятельно)
А можно вместо этого типизированный файл применить, или задание жесткое?
I'm learning to live...

Последний раз редактировалось Stilet; 09.11.2009 в 16:46.
Stilet вне форума Ответить с цитированием
Старый 09.11.2009, 16:51   #9
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
По умолчанию

вот как звучит заголовок:
разработать структуру данных и содать типизиованный файл для указанной задачи, для этих данных реализовать след операции:
aiktz вне форума Ответить с цитированием
Старый 09.11.2009, 16:53   #10
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

типизированные файлы паскаль - пример!
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь!!! Гражданин.РФ Софт 0 31.08.2009 18:14
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) Farridjan Помощь студентам 1 03.07.2009 12:24
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) 5Paladin5 Помощь студентам 3 02.07.2009 09:12
Нужна помощь!!)) ТРОЯН=) Паскаль, Turbo Pascal, PascalABC.NET 2 29.12.2008 21:42