![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
LLIRIKS |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
Плиз!
Помогите доделать до конца... 2/3 задачи уже решил - и застрял... в общем, вот она, задача: Цитата Подготовить список из N наименований товаров. Конкретное значение N указано в варианте. Информация о каждом товаре содержит: 1. Название товара. 2. Цену. 3. Год выпуска. 4. Количество. Список должен быть упорядочен по одному из параметров, указанных в конкретном варианте. Сведения по каждому товару необходимо представить в виде записи. Разработать программу, которая заносит во внешний файл записи упорядоченного списка, и программу, которая добавляет в сформированный внешний файл данные об М товарах, при этом, не нарушая упорядоченности исходного файла. Если среди добавляемых товаров встречается товар, сведения о котором в файле уже есть, то необходимо их обновить, т. е. старую запись исключить. Варианты задания 7. Товары упорядочены по неубыванию цены, N=13, М=4. Не могу воплотить в жизнь последний этап задачи, т.е. добавлять в файл записи, не нарушая при этом упорядоченности файла и обновляя информацию об уже существующих товарах... Вот что у меня пока получилось: Исходный код uses crt; type TOVAR=record NAZV:string; ZENA:integer; GOD_VIP:integer; KOL:integer; end; const N=13; M=4; var F1,F2:file of TOVAR; S1,S2:TOVAR; I,K,J:integer; begin {################################-VVOD_DANNIH-##############################} assign(F1,'tovary.dat'); rewrite(F1); for I:=1 to N do begin with S1 do begin clrscr; writeln; writeln('-------------------------------------------------------'); writeln('Vvedite dannie ',I,'-go tovara:'); writeln('-------------------------------------------------------'); writeln('Vvedite nazvanie:'); readln(NAZV); writeln('Vvedite zenu:'); readln(ZENA); writeln('Vvedite god vipuska:'); readln(GOD_VIP); writeln('Vvedite kolichestvo:'); readln(KOL); end; write(F1,S1); end; close(F1); {@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-SORTIROVKA-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@} assign(F1,'tovary.dat'); reset(F1); K:=filesize(F1); seek(F1,0); for I:=K-1 downto 1 do for J:=1 to K-2 do begin seek(F1,J); read(F1,S1); seek(F1,J+1); read(F1,S2); if S1.ZENA>S2.ZENA then begin seek(F1,J); write(F1,S2); seek(F1,J+1); write(F1,S1); end; end; close(F1); {@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-VIVOD_DANNIH_1-@@@@@@@@@@@@@@@@@@@@@@@@@@@@} assign(F1,'tovary.dat'); reset(F1); clrscr; I:=1; while (not EOF(F1)) do begin read(F1,S1); with S1 do begin writeln; writeln('-------------------------------------------------------'); writeln('Dannie ',I,'-go tovara:'); writeln('-------------------------------------------------------'); writeln('Nazvanie: ',NAZV); writeln('Zena: ',ZENA); writeln('God vipuska: ',GOD_VIP); writeln('Kolichestvo: ',KOL); Inc(I); end; end; close(F1); {###########-DOBAVLENIE_DANNIH_BEZ_NARUSHENIYA_UPORYADOCHENNOSTI-###########} {ВОТ ЗДЕСЬ-ТО Я И НЕ ЗНАЮ, ЧТО ДЕЛАТЬ...} end. сложность состоит в том, что в файл нужно добавлять новые записи уже в нужное место... МОЖЕТ, МОЖНО КАК-НИБУДЬ РАЗДВИНУТЬ ЗАПИСИ В ФАЙЛЕ И МЕЖДУ НИМИ ВСТАВИТЬ НОВУЮ ЗАПИСЬ? -------------------- Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют... |
![]() ![]() |
LLIRIKS |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: ![]() ![]() ![]() |
ОГРОМНОЕ СТУДЕНЧЕСКОЕ СПАСИБО!
дальше уже все просто... P.S.: Вот, значит, где собака порылась... ;) -------------------- Я не люблю, когда мне лезут в душу,
Тем более, когда в нее плюют... |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 23:42 |