Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.227.48.102] |
|
Страницы: (7) « Первая ... 4 5 [6] 7 все ( Перейти к последнему сообщению ) |
Прикр. сообщ.
#1
,
|
|
|
Текущая версия: 0.3a
Скачать OfflineFAQa3.rar (~48кб) Содержание Offline-FAQ Народ, те кто хочет помочь - присылайте решения проблем на Паскале без ассемблерных вставок. Основные топики: Примеры должны быть ориентированы на сегодняшний день, поэтому не принимаются примеры по Оформление: Только в документах DOC, HTML, или в сообщении в форуме. И не забудьте о соответствующих комментариях к коду программ! Если лень открывать редактор, то напишите описание прямо в своём сообщении. Выделите ключевые слова, подчеркните, где надо. Сам я не могу оформлять каждый присланный документ. Дополнения к ФАКу прикрепляйте в архиве к своему сообщению. А ещё неплохо собрать в HTML то, что лежит на сайте http://pascal.sources.ru/ : Pascal FAQ и Russian SWAG |
Сообщ.
#76
,
|
|
|
Кто напишет задачку для Оффлайн-ФАК ?
Имеются сведения о студентах N учебных группах со своими реквизитами (имя, группа_номер, оценка по 4-ём предметам). Кол-во студентов заранее не известно. Определить и вывести на экран группы с самым высоким средним баллом. Оформить красиво (с отступами), комментариями и имеющими смысл именами переменных. Использовать процедуры и функции, например InputData; CalcAverageMarks; OutputHighMarks; без модуля CRT. |
Сообщ.
#77
,
|
|
|
А ещё нужна програмка, отображающая меню при помощи модуля CRT.
Добавлено Функция Menu должна возвращать индекс выбранного элемента. Для начала, пусть при выборе выводится название элемента. Не забыть предусмотреть выход... |
Сообщ.
#78
,
|
|
|
Вот навалял прогу для работы с записями и указателями. Также используется сортировка записей по двум критериям.
Зацените. Что нужно добавить/изменить? Хочу поместить в Offline-FAQ. Есть идея написать тоже самое с использованием объектов, коллекций (ООП). Ну и добавить междумордие (интерфейс)... Прикреплённый файлsortrec.rar (2.06 Кбайт, скачиваний: 281) |
Сообщ.
#79
,
|
|
|
Меню
вертикальное цвет выбирать нельзя заголовок непишет P.S. Писал для других нужд, переделать и доработать лень, но хоть что-то. Прикреплённый файлMENU.ZIP (0.94 Кбайт, скачиваний: 297) |
Сообщ.
#81
,
|
|
|
Цитата Dima_R @ 22.12.04, 10:33 В общем, что-то высвечивает, конечно, но код немного непродуман. Можно сделать и компактнее, и понятнее, и красивее. Меню вертикальное цвет выбирать нельзя заголовок непишет P.S. Писал для других нужд, переделать и доработать лень, но хоть что-то. Сам могу написать, но хочется, чтобы и другие поучаствовали. Но всё равно спасибо! Vesper, хорошо. Только чего комменты на английском? Чуток оформил программу и добавил функцию CalcStudAverage Прикреплённый файлStud_avg.zip (1.67 Кбайт, скачиваний: 345) |
Сообщ.
#82
,
|
|
|
Romtek, не люблю транслит и кривые кодировки :-)))))
ладно, пришел еще админ, терь будет время динамическое меню наваять |
Сообщ.
#83
,
|
|
|
Пример базы данных с использованием ООП (продолжение от SortRec)
При первом запуске создаёт коллекцию и сохраняет в файл, и при повторном выводит её в отсортированном виде. Примечательно то, что с использованием объектов уменьшился код програмы. К тому же, легче понять, что делает программа. unit Shop_obj; interface uses Objects; type TInfo = record Product: string [40]; { наименование товара } Price: integer; { цена } end; PInfo = ^TInfo; TProductInfo = object (TObject) TransferRecord: TInfo; constructor Load (var S: TStream); procedure Store(var S: TStream); end; PProductInfo = ^TProductInfo; TProductColl = object (TSortedCollection) function Compare (Key1, Key2: Pointer): Integer; virtual; end; PProductColl = ^TProductColl; procedure ListAll (C: PCollection); implementation Const RProductInfo: TStreamRec = ( ObjType: 54321; VmtLink: Ofs(TypeOf(TProductInfo)^); Load: @TProductInfo.Load; Store: @TProductInfo.Store ); constructor TProductInfo.Load(var S: TStream); begin inherited Init; S.Read(TransferRecord, SizeOf(TransferRecord)); end; procedure TProductInfo.Store(var S: TStream); begin S.Write(TransferRecord, SizeOf(TransferRecord)); end; {$I sortfunc.inc} function TProductColl.Compare(Key1, Key2: Pointer): Integer; begin { Compare := PProductInfo(Key2)^.TransferRecord.Price - PProductInfo(Key1)^.TransferRecord.Price; {} Compare := StrCmp ( PProductInfo(Key1)^.TransferRecord.Product, PProductInfo(Key2)^.TransferRecord.Product ) {} end; procedure ListAll (C: PCollection); var i: word; procedure ShowItem (P : PProductInfo); far; begin with P^.TransferRecord do begin inc (i); write ( I : 2 ); write ( ' ' : 4, Product ); writeln ( Price : 44 - Length (Product) ); end; end; begin writeln; writeln ('Product' : 13, 'Price' : 37); for I := 1 to 50 do write ('='); writeln; i := 0; C^.ForEach(@ShowItem); readln; end; begin RegisterType (RProductInfo) end. program Shop_OOP; uses Objects, shop_obj; Const Max = 5; var ProductColl: PProductColl; Info: PProductInfo; procedure InputData; var i, qnt: integer; begin repeat write ('Enter quantity of products: '); readln (qnt); if qnt = 0 then writeln ('Quantity must be > 0'); until qnt <> 0; {Randomize;} for i := 1 to qnt do begin Info := New (PProductInfo,Init); with Info^.TransferRecord do begin write ('Enter product name (up to 40 chars): '); readln (Product); write ('Enter price of product: '); readln (Price); {write ('Enter Name: '); readln (Product); Price := 1 + Random (20);} end; ProductColl^.Insert (Info); end; end; procedure Save; var F: TBufStream; begin F.Init ('shop_oop.dat', stCreate, 1024); ProductColl^.Store (F); if F.status <> stOk then writeln ('Error while writing to file.'); F.Done; end; function Loaded: boolean; var F: TBufStream; begin F.Init ('shop_oop.dat', stOpenRead, 1024); if F.status = stOk then begin ProductColl^.Load (F); Loaded := (F.status = stOk); end; F.Done; end; begin ProductColl := New (PProductColl, Init (20, 5)); if not Loaded then InputData; { заполнение коллекции } { форматированный вывод коллекции на экран } ListAll (ProductColl); { сохранение коллекции } Save; Dispose (ProductColl, Done); end. Прикреплённый файлshop_oop.zip (2.23 Кбайт, скачиваний: 284) |
Сообщ.
#84
,
|
|
|
Цитата Romtek @ 21.12.04, 20:52 Всё ещё нужна. см. (сообщ. #78)А ещё нужна програмка, отображающая меню при помощи модуля CRT. Также нужна программа, которая выводит текстовый файл на экран. При нажатии на пробел окно должно прокручиваться на размер экрана (без лишних наворотов, просто и понятно). |
Сообщ.
#85
,
|
|
|
Ура! Сдал первый экзамен. Вот написал, правда, снова не идеал, но намного лучше чем в прошлый раз. Плюс программка для чтения файлов.
Прикреплённый файлMenu_View.zip (2.29 Кбайт, скачиваний: 323) |
Сообщ.
#86
,
|
|
|
Спасибо! Именно то, что надо.
Замечания к программе MENU.PAS : |
Сообщ.
#87
,
|
|
|
Цитата Vesper @ 30.11.04, 19:27 есть у меня прога, которая двигает крест в графике по экрану как прицел от курсорных клавиш, но там юзается модуль, который обрабатывает INT09, соответственно не подходит в принципе переделать под обычный readkey не проблема, завтра займусь А прога где ? |
Сообщ.
#88
,
|
|
|
Неотёсанные топики (Сообщ. #22) "Определение принадлежности точки к многоугольнику"
Кто может, проверьте почему при некоторых значениях выдаётся неверный результат. |
Сообщ.
#89
,
|
|
|
Romtek, завис если не подвалят ченить ща будет
|
Сообщ.
#90
,
|
|
|
вот, только без комментов
Прикреплённый файлCONTMOV2.zip (0.42 Кбайт, скачиваний: 287) |