
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.217.4] |
![]() |
|
![]() |
Прикр. сообщ.
#1
,
|
|
Текущая версия: 0.3a
Скачать OfflineFAQa3.rar (~48кб) Содержание Offline-FAQ Народ, те кто хочет помочь - присылайте решения проблем на Паскале без ассемблерных вставок. Основные топики: Примеры должны быть ориентированы на сегодняшний день, поэтому не принимаются примеры по Оформление: Только в документах DOC, HTML, или в сообщении в форуме. И не забудьте о соответствующих комментариях к коду программ! Если лень открывать редактор, то напишите описание прямо в своём сообщении. Выделите ключевые слова, подчеркните, где надо. Сам я не могу оформлять каждый присланный документ. Дополнения к ФАКу прикрепляйте в архиве к своему сообщению. А ещё неплохо собрать в HTML то, что лежит на сайте http://pascal.sources.ru/ : Pascal FAQ и Russian SWAG |
![]() |
Сообщ.
#1
,
|
|
Значится так. Давайте обсудим детали нашего Offline FAQ.
|
Сообщ.
#2
,
|
|
|
Насчет просмотра и файлов:
предлагаю сделать отдельно оболочку и базу данных. Сделать, к сожалению, пока не могу - мало знанийи опыта в Delphi. Пример - DrWeb 4.32b. Кстати автообновление тоже можно сделать. |
Сообщ.
#3
,
|
|
|
Цитата Romtek, 21.11.04, 00:29 Какие материалы поместим в ФАК ? Можно создать 2 раздела. В одном описать решение задач на логику (чуток отклонение в сторону алгоритмов), в другом задачи на синтаксис (обязательно включить сюда задачи по массивам и файлам!! ![]() А еще можно создать третий раздел, в котором пойдет чистое описание синтаксиса (сюда типы данных, например). Ну и наконец, четвертый. Здесь можно поместить особенности программирования железа, графики, звука и т.д. |
![]() |
Сообщ.
#4
,
|
|
Я пришел к выводу, что лучше взять формат CHM, как сделан Delphi Russian Knowledge Base.
|
Сообщ.
#5
,
|
|
|
насчет материалов - мне кажется было бы лучше разбить весь материал на главы, разделы и темы точь в точь как это сделано в каком-нибудь хорошем учебнике. так будет легче искать пользователям тот или иной вопрос, так как навигация и поиск по книге всем привычен, а в хорошем учебнике оглавдение очень хорошо продумано и структурировано.
в качестве основы можно прямо взять какой-нибудь конкретный учебник и продумать какие FAQи могут возникнуть по каждой теме и каждому параграфу. это, что касается основ и синтаксиса что касается полезных алгоритмов - тут сложнее. их можно разделить по принципу: геометрические задачи, выч.мат, работы с массивами(сортировки и т.д.), работа с дин. списками, работа с файлами, работа с устройствами... Добавлено насчет обновления и проверки - можно сделать плюс к оффлайн версии онлайн версию. на сайте сделать раздел: замеченные баги сюда, готовые дополнения сюда, новые вопросы для рассмотрения сюда. и пусть в этом участвуют все, кто хотят(добавляют, пытаются улучшить), но только нужет кто-то, а лучше несколько человек, чтобы это проверять и одобрять или браковать Добавлено рад буду помочь ![]() |
Сообщ.
#6
,
|
|
|
Romtek, может, чистый HTML? Для комфортной работы с CHM нужно иметь Windows и IE. А у меня этого Виндовса уже давно нет. +Есть наладонник, на каотором хотелось бы иметь копию ФАКа. Он не понимает CHM, то есть придется декомпилировать его.
Добавлено А вообще, есть тупой вариант: создаем WIKI. В нем делаем ФАК. Иногда делаем копии WIKI, которые пакуем и распространяем. ИМХО, ошибки будут находить быстрее, проще будет контрлировать изменение и рост ФАКа и т.д. и т.п. |
Сообщ.
#7
,
|
|
|
я могу ошибаться, но по-моему для наладонником вообще еще нет нормальной СУБД -> можно сделать утилиту, которая переделывает FAQ в текстовый формат или что-то вроде него. А сам FAQ лучше делать в таком виде, как предложил Hubba-Bubba, чтобы пользователям не надо было устанавливать какие-либо дополнительные программы или службы для корректной работы FAQ, которых у него по той или иной причине может не быть
|
Сообщ.
#8
,
|
|
|
Я согласен с mikv, в том, что стоит сделать оффлайн ФАК на HTML т.к. Делать это на паскале или дельфе займет больше времени, а сделать что-то лучшее вряд-ди получится.
В качестве раздела можно поместить полную копию фака из PASCAL FAQ |
![]() |
Сообщ.
#9
,
|
|
Один из вопросов - это использование чужих материалов, т.е. копирайты.
Есть некоторая инфа, скачанная с сайтов. Как быть? Спросить их авторов, можно ли включить в наш ФАК ихние материалы? |
Сообщ.
#10
,
|
|
|
А зачем нам использовать чужие материалы? У нас есть онлайн фак, в форуме есть много людей(таких как я), которые рады дать свои статьи...
|
Сообщ.
#11
,
|
|
|
Цитата Азат, 21.11.04, 23:48 В качестве раздела можно поместить полную копию фака из PASCAL FAQ ![]() Т.е., что бы уж и копирайта не было, можно посоздавать (написать, скомпоновать или отредактировать) статьи по каждой теме. |
![]() |
Сообщ.
#12
,
|
|
Вот-вот. Я о том же думал.
|
Сообщ.
#13
,
|
|
|
Ну и что в итоге?
|
![]() |
Сообщ.
#14
,
|
|
Цитата KiRiK, 21.11.04, 23:08 Т.е., что бы уж и копирайта не было, можно посоздавать (написать, скомпоновать или отредактировать) статьи по каждой теме. B) Оно самое. |
Сообщ.
#15
,
|
|
|
Кто готов заняться?
![]() Вот такой вотпрос: в какие сроки нужно все это безобразие организовать? А то тут, знаете ли, экзамены не за горами. ![]() А так я готов способствовать. B) |
![]() |
Сообщ.
#16
,
|
|
Бум оформлять в виде HTML. А потом, ещё чего-нибудь придумаем.
Вот, первые материалы. Добавлено Сроки неограничены. Каждый помогает, как может. Прикреплённый файл ![]() |
Сообщ.
#17
,
|
|
|
Если честно, то меня не вдохновил интерфейс err_table.htm.
![]() А вот objpas.html и pascoding.htm, хоть и довольно безграфически, но смотрятся хорошо. ![]() |
Сообщ.
#18
,
|
|
|
1. Если FAQ рассчитывается на разные платформы (смотреть то будут его не только под IE), то следует использовать только стандартные HTML теги <CENTER>, <B>, <U>,<I>,<BR>, <HR>, <UL>, <OL>, <LI>, <PRE>, <H1>...<H6>, <A>, <P> и др., которые гарантированно корректно обрабатываются браузерами. Конечно, возможно, сейчас это уже и не имеет смысла (мало у кого остались такие браузеры).
В любом случае размер HTML файла можно значительно уменьшить, если удалить лишние теги, оставляемые визуальными редакторами. Кроме того очень удобно было бы планировать документы так, чтобы их можно было удобно распечатать (оптимальные отступы между строками, размеры шрифтов и т.д.). 2. Т.к. база планируется большая, и возможно будет желание произвести глобальную замену шрифтов, фона, частей страниц, и т.д. Чтобы эти замены можно было вести не вручную настоятельно рекомендую использовать CSS, и следить чтобы все страницы имели единый стиль HTML кода. Для этого лучше всего создать один единый шаблон по которому будут построены все страницы, например: ![]() ![]() <HTML> <HEAD> <TITLE>FAQ PASCAL</TITLE> <LINK rel="stylesheet" type="text/css" href="style.css"> </HEAD> <BODY> <CENTER class="topmenu"><A HREF="index.html">| Главная |</A> <A HREF="http://">| Форум|</A> <A HREF="mailto:">| Отправить e-mail автору |</A></CENTER> <H1>ЗДЕСЬ СОДЕРЖАНИЕ СТРАНИЦЫ.</H1> <HR> <P ALIGN="RIGHT"><B><I>Разработано : .... при использовании материала ссылка на сайт обязательна"</I></B></P> </BODY> </HTML> Лучше один раз потратить время на приведение всех страниц к единому виду, чем делать это потом. Конечно делать вручную все непредставляется возможным, а визуальные редакторы - FrontPag, Composer и др. оставляют очень много лишнего. Наиболее оптимальный код с минимальными затратами времени можно получить используя прогу, которая будет проводить глобальную замену в файлах в указанном фодере с указанной маской. 3. Прелестью визуальных HTML редакторов являются сслыки вида file://C:/WINDOWS/Рабочий стол/... об этом тоже следует помнить. Наиболее рекомендуемый комплект для работы - HTML редактор+Notepad+самодельная прога для рихтовки файлов. |
![]() |
Сообщ.
#19
,
|
|
Цитата DoctorGenius, 22.11.04, 02:24 Рассчитывается под другие платформы тоже.Если FAQ рассчитывается на разные платформы Цитата DoctorGenius, 22.11.04, 02:24 Есть достаточно неплохих альтернатив IE6, но это уже *другая* тема.Конечно, возможно, сейчас это уже и не имеет смысла (мало у кого остались такие браузеры). Цитата DoctorGenius, 22.11.04, 02:24 В таком случае, нужен тот кто напишет единый CSS для страничек. Для этого лучше всего создать один единый шаблон по которому будут построены все страницы Добавлено Цитата KiRiK, 21.11.04, 23:37 Меня этот вариант вполне устраивает.Если честно, то меня не вдохновил интерфейс err_table.htm. Предложи свой, может у тебя лучше выйдет. ![]() |
Сообщ.
#20
,
|
|
|
Цитата Romtek, 22.11.04, 10:02 Предложи свой, может у тебя лучше выйдет. С удовольствием бы.. только ни разу не занимался созданием страничек ![]() |
Сообщ.
#21
,
|
|
|
Я все же вновь предлагаю для создания FAQ и его дальнейшего развития использовать технологию WIKI.
ИМХО, отличный способ скоординировать работу группы людей над текстами - этакий эквивалент CVS, но не для исходников, а для текстов. Хороший пример - Википедия (http://www.wikipedia.org). Сайт - онлайн вариант FAQ-а, а скажем автоматически раз в сутки будет делаться "слоепок" сайта и выкладываться в виже архива. |
![]() |
Сообщ.
#22
,
|
|
Ух ты! То, что надо!
|
Сообщ.
#23
,
|
|
|
Цитата Romtek, 22.11.04, 16:31 Ух ты! То, что надо! Да, смотрится неплохо. ![]() |
![]() |
Сообщ.
#24
,
|
|
Вот кое-что уже есть
![]() - Математика и числа - (ссылка поправлена) Слева в меню есть "edit page" - можете подправить код, и добавить что-то от себя! ![]() |
![]() |
Сообщ.
#25
,
|
|
Повторюсь еще раз с рекомендацией:
Лучше не лепить несколько вопросов/ответов на одну страничку, а размещать каждый вопрос в виде отдельного топика. Так будет легче и искать, и читать. |
Сообщ.
#26
,
|
|
|
Онлайн вариант FAQ вполне успешно может храниться, скажем там где и сейчас - на форуме. Готовые же обсуждения можно всегда добавлять в базу. А вообще я бы сделал все это в виде сайта, используя технологии SSI. Каждая страница может быть построена следующим образом:
![]() ![]() <HTML> <HEAD> <TITLE>Pascal FAQ</TITLE> <LINK rel="stylesheet" type="text/css" href="style.css"> </HEAD> <BODY> <!--#include virtual="top.txt"--> Содержание страницы. <HR align=center width=490 color=#ffffff> <!--#include virtual="bottom.txt"--> </BODY> </HTML> В нижней части страницы можно разместить форму для отправки комментариев пользователей. Как например это сделано на http://delphibase.endimus.ru. или же замечания и коменнтарии могут отправляться на e-mail администратору сайта. Таким образом когда имея "исходные" страницы автор позаменяет verh1 и verh2 на меню, элементы дизайна и др. (на сервере такая вставка происходит автоматически при каждом запросе страницы). Далее автор это все может прекрасно выложить в виде архива. Таким образом, не нужно будет делать никаких "слепков" с сайта и отдельно тратить время на оптимизацию FAQ для off-line и для on-line версии, делать "слепки" сайтов и др. Просто берем преобразуем материалы в HTML, вставляем в шаблон, и все. Что же касается создания CSS, и вообще сайтов, советую посетить свою страницу. http://www.drgenius.h1.ru Я использую SSI и CSS стиль, благодаря этому возможно изменение дизайна всего сайта (около 100 страниц) изменением всего 3-х файлов. Работа SSI выполняется на стороне сервера, поэтому нет никакой разницы использовали SSI или нет. Это удобство исключительно для создателя сайта. Еще одна проблема состоит в том, что далеко не каждый бесплатный хостинг поддерживает SSI, рекомендую http://www.holm.ru P.S. Почему сайт - быстрее, лучше, меньше траты on-line времени на скачивание, закачивание инфы и т.д. Вообще оптимальным было бы сделать все на PHP, с использованием mySQL, но это уже получиться новый форум, а не FAQ. Если есть вопросы относительно "web-строительства" - пишите doctogenius@mail.ru |
Сообщ.
#27
,
|
|
|
Программа на Delphi для проведения глобальной замены в файлах.
Прикреплённый файл ![]() |
![]() |
Сообщ.
#28
,
|
|
Цитата DoctorGenius, 24.11.04, 00:29 Программа на Delphi для проведения глобальной замены в файлах. Несколько замечаний: |
![]() |
Сообщ.
#29
,
|
|
Цитата DoctorGenius, 24.11.04, 01:04 в виде сайта, используя технологии SSI. Именно так и построен сейчас этот сайт... Холм.ру нам пока не требуется, да и не согласятся они захостить пару гигов нахаляву ![]() |
Сообщ.
#30
,
|
|
|
А кто сможет скачать off-line FAQ размером в пару гигов?
|
Сообщ.
#31
,
|
|
|
А численные методы на pascal нужны? Встречалось немало вопросов по этой теме.
|
![]() |
Сообщ.
#32
,
|
|
Цитата DoctorGenius, 25.11.04, 00:34 А численные методы на pascal нужны? Нужны. |
![]() |
Сообщ.
#33
,
|
|
Цитата Guest, 24.11.04, 23:31 А кто сможет скачать off-line FAQ размером в пару гигов? Его пока не существует, рано говорить. Присылай материалы, а мы выберем самые интересные. Предполагаемый размер Offline FAQ вряд ли будет свыше 5 МБ. |
Сообщ.
#34
,
|
|
|
Ну наконец то собрались сделать оффлайн фак!!!
По поводу подсветки синтаксиса предлагаю делать её на лету с помощью моего js скрипта ![]() ![]() Это сильно сократит объём страниц оффлайн фака. Вы посмотрите на объём FAQ'а Vit'a это из за того что подсветка там статическая и при том выполнена корявенько (в основном это пробелы через ) Demo Подробности тут Подсветка синтаксиса |
![]() |
Сообщ.
#35
,
|
|
Mixxx, большое спасибо за подсветку кода. Я тоже хотел подсветку отделить от HTML, но не знал у кого спрашивать.
То что надо. ![]() Но всё-таки хотелось бы, чтобы обсуждали не будущий интерфейс, а как заполнить ФАК нужными материалами. |
Сообщ.
#36
,
|
|
|
Цитата как заполнить ФАК нужными материалами. я думаю, чтобы это дело пошло качественнее и быстрее, чтобы надо было меньше одбирать и смотреть чужой код(который может оказаться немного не по теме или просто не к месту), надо спланировать структуру ФАКа и сообщать народу конкретно какие темы и примеры программ нужны. "Может у кого нибудь есть то-то и то-то?". Просто посмотрел что есть у меня по паскалю(в основном лабы конечно, а ведь они-то и первые кандидаты в ФАК) и никак не могу решить, что может понадобиться, а что нет... а все подряд комментировать, делать описание к прогам, объяснять и пояснять не охота, тем более, что велика вероятность, что эта именно моя и именно эта прога, например, в факе не окажется. |
![]() |
Сообщ.
#37
,
|
|
Цитата shipbrother, 25.11.04, 15:45 Его струкруру я уже описал в сообщении наверху.надо спланировать структуру ФАКа Цитата shipbrother, 25.11.04, 15:45 и сообщать народу конкретно какие темы и примеры программ нужны. "Может у кого нибудь есть то-то и то-то?". Да ,но пока никто ничего не присылал. Цитата shipbrother, 25.11.04, 15:45 Согласен. Поэтому опиши что выполняет каждая программа. А я и другие решим что надо, а что - нет. никак не могу решить, что может понадобиться, а что нет... а все подряд комментировать, делать описание к прогам, объяснять и пояснять не охота, тем более, что велика вероятность, что эта именно моя и именно эта прога, например, в факе не окажется. Добавлено P.S. Забыл про DoctorGenius. Не хочу пренебрегать его попыткой дополнить FAQ. ![]() |
Сообщ.
#38
,
|
|
|
предлагаю свою помощь (хотя мне как модеру здесь самое место работать
![]() есть пара программ по буферизованному чтению файла для ТР/ВР, нужны? еще могу доработать статью про объекты (из онлайна) с добавлением виртуальных методов (можно и экспертный уровень включить, хотя ты и говорил, что лучше без АСМа) про строки вообще-то у нас хорошая тема... ![]() т.е. мне ![]() |
![]() |
Сообщ.
#39
,
|
|
Пойдут почти любые примеры, которые часто спрашиваются (строки, матрицы, файлы).
Особенно вычислительные: интегралы, сумма ряда. Добавлено Уже есть кое-что из ФАКа: CRT: Error 200, devision by zero. Fast CPU. MATH: Почему умножение дает неверный результат (Longint) FIL: Как узнать из программы, в каком каталоге лежит EXE FIL: Как вставить/удалить строку внутри файла FIL: Как вывести текст на экран из файла FIL: Как найти строку в текстовом файле FIL. Как найти файлы на ВСЕХ дисках FIL. Как найти файлы на диске FIL. Как обойти все вложенные подкаталоги FIL. Как открыть на запись ReadOnly файл FIL. Как переименовать/удалить открытый файл FIL. Как получить путь к файлу GRF. Как работать с графическими файлами KBD. Как очистить буфер клавиатуры KBD. Как прочитать нажатия клавиш Ctrl, Alt, Shift MATH: перевод в 16-ричное число MAT. Как вычислить ArcSin KBD. Как узнать код функциональной клавиши по ReadKey MAT. Как вычислить X^3 или корень N-й степени MEM. Как пользоваться "MEM" MEM. Как создать массив заранее неизвестной длины STR. Как вытащить N-е слово из строки STR. Как преобразовать строку в число и обратно |
![]() |
Сообщ.
#40
,
|
|
Цитата Vesper, 25.11.04, 17:03 есть пара программ по буферизованному чтению файла для ТР/ВР, нужны? Давай! Цитата Vesper, 25.11.04, 17:03 еще могу доработать статью про объекты (из онлайна) с добавлением виртуальных методов (можно и экспертный уровень включить, хотя ты и говорил, что лучше без АСМа) А это пока не печёт. Редко встречается. |
Сообщ.
#41
,
|
|
|
Отправляю кое-что по численным методам. Это так сказать основные, во всяком случае широко применяется в учебной практике
как то вычмат, информатика. Есть еще материалы по данной теме - описания, реализации и др., пишите на e-mail - вышлю. Добавлено Посмотрел скрипт для подсветки кода. Самое то, что надо! Используется стандартный тег <PRE>. Если даже посмотреть страницу старым браузером, который не поддерживает CSS и JS, то скрипт просто не сработает, а само форматирование исходника сохраниться. Отсутсвие же подсветки кода при использовании допотного браузера вряд-ли можно считать большой проблемой. Также большим плюсом является то что в данном случае код можно вытащить открыв страницу текстовым редактором - блокнотом (чего не сделаешь при использовании тегов <font color=...> и ). Так что данный скрипт просто замечательная вещь! Также надо следить за тем, чтобы в самом оформлении HTML страницы не было тегов, которые могут вызвать серьезные нарушения читабельности страницы, особенно это относиться к таблицам, т.к. не исключена ситуация, что страницу могут просматривать и под IE 3.0 - не секрет что для выполнения "повседневных задач" - как то лабораторок на Pascal, Excel, Word, и др. вполне достаточно железа вроде i486dx2-66, Win95, IE3.0. И FAQ должно корректно смотреться везде. А вообще неплохим средством для проверки страниц "на устойчивость" является NN4.5, т.к. там даже незначительные ошибки в коде (которые не замечаются другими браузерами) приводят к серьезным нарушениям дизайна и читабельности страницы. Еще можно заметить, что страницы то будут в кодировке koi-8, win-1251 - неважно, а комментарии и сообщения в программе при копировании исходников в Turbo Pascal надо будет переводить в DOS кодировку. Конечно кто знает - это не проблема (в Pascal FAQ я уже описывал как выполнять подобные преобразования с помощью стандартного средства - Internet Explorer'a). Но тем не менее эту сторону дела тоже нельзя упускать из виду. Прикреплённый файл ![]() |
Сообщ.
#42
,
|
|
|
Ладненько, раз уж на то дело пошло, я чувствую какаю тему стоит делать мне, а именно мышинную
![]() ![]() |
Сообщ.
#43
,
|
|
|
Забыл об одной очень важной детали: Все символы < и > (логические операции в исходниках) должны быть заменены их эквивалентами в HTML соответственно: < и >
Скобки, образующие теги в языке HTML в некоторых случаях могут не вызывать проблем, например эта строчка: ![]() ![]() if a>b then writeln('test!'); Но, чтобы убедиться предлагаю следующий пример: ![]() ![]() if (a<b) or (a>c) then writeln('123'); if a<>b then writeln('456'); Поэтому с целью избежания проблем с отображением исходников всегда следует делать глобальную замену. Естественно, что при использовании визуальных редакторов данная проблема не возникает. |
Сообщ.
#44
,
|
|
|
так, вот обещанная прога, переработал ее под объекты, разница только в том, что нельзя непосредственно подсмотреть скажем буфер. Работает оно вот как: assign связывает файл с именем и сразу открывает его (потому как объект предназначен для чтения, соответственно метод открытия есть всего один - reset(f,1) без попытки менять данные), после чего можно читать через метод read, параметры - буфер и его длина. Метод Seek позволяет сместить указатель, при этом немедленного чтения не осуществляется. Функция eof возвращает истину, если достигнут конец прочитанного буфера при условии, что занятая часть буфера меньше 256 байт (вообще-то это немного некорректно, если файл имеет длину 512 байт и на самом деле уже достигнут конец файла, т.е. из буфера прочитаны все данные, смещение начала буфера в файле 256, c_offset 0, ready=false, ф-я eof не вернет истину, хотя должна). Метод close просто закрывает файл.
Более подробное описание объекта Объект TBufferedInput имеет 7 частных полей: hidden:file - сам инкапсулированный файл; buffer:array[byte] of byte - буфер данных, 256 байт; opflag:boolean - признак открытого файла; ready:boolean - признак наличия данных в буфере; c_offset:byte - текущее смещение позиции файла внутри буфера; l_offset:longint - смещение начала буфера в файле, кратно 256; last_read:word - размер занятой части буфера в байтах (0-256, из-за чего word). Метод Assign проверяет файл на существование и если файл существует, открывает его на чтение с гранулярностью данных 1 байт (так как мы передаем данные из файла с точностью до байта). Метод Read читает данные из файла в буфер пользователя, используя промежуточный буфер длиной 256 байт для уменьшения количества обращений к диску. В случае наличия требуемого объема данных в буфере они просто копируются, смещается "короткий" индекс c_offset и возвращается запрошенный размер. В случае конца буфера передается остаток буфера и выполняется его заполнение вызовом метода из System. В случае явного конца файла (длина занятой части буфера меньше 256 байт) наружу передается остаток занятой части буфера и возвращается количество переданных байт. Если только что был выполнен Seek, то сначала выполняется заполнение буфера, а уже потом - проверка на конец буфера и размер данных. Процедура не способна передавать наружу блоки данных больше 64 Кбайт (ограничение налагается менеджером памяти реального режима). Метод Seek устанавливает текущую позицию в файле и буфере. В случае ошибки позиция не изменяется. Метод Close закрывает файл. Добавлено В соседнем файле (BufView.pas) пример использования буферизованного ввода для быстрого вывода BMP файла на экран. Добавлено Модуль VESA тащить вот отсюда: Вывод BMP на экран Прикреплённый файл ![]() |
![]() |
Сообщ.
#45
,
|
|
Нужен пример сортировки списка (Vesper,
![]() С подробными комментариями, пожалуйста! Добавлено Кстати, и слияния двух в один, тоже. Добавлено А ещё простой пример по управлению клавишами: по нажатию на определённую клавишу что-то делается (пофантазируйте ![]() В том числе, стрелками (может, с применением ООП, в графике?) |
![]() |
Сообщ.
#46
,
|
|
Вот и первые плоды Оффлайн-ФАК (простенький вариант-шаблон).
Запускать Index.html Прикреплённый файл ![]() |
Сообщ.
#47
,
|
|
|
Недостатки:
Довольно таки неплохо сделано. Замечания: 1. Подсветка синтаксиса с использованием тегов font, и др. сильно увеличивает размер документа. Исходники которые весят 20 КБ весят 80 КБ. Пока их 5 штук вроде ничего страшного. При бОльшем числе исходников это будет уже ощутимо. Использование парсера на js значительно сокращает размер файла, но при этом возникает 2 проблемы: а) если исходник большой, то это очень тормозит браузер. Исходник 8 КБ обрабатывается секунд 5-7 на celeron 700. б) в старых браузерах это вообще не работает. Для решения проблемы предлагаю отказаться от "подробной" подсветки кода, для выделения ключевых слов можно использовать теги <B>...</B>, для комеентариев и др. <I>...</I>. "Раскрасить" их можно используя СSS. В результате размер документа значительно сократиться. 2. Нет единой структуры HTML файлов, что-то сделано в одном редакторе, что-то в другом, даже кодировки различные кое-что выполнено в koi-8, некоторые страницы в win-1251. 3. Нет кнопки на главную. Предлагаю Вашему вниманию более оптимизированный вариант FAQ (до оптимизиации 308 К, после оптимизации - 134 КБ. (распакованный объем). Прикреплённый файл ![]() |
Сообщ.
#48
,
|
|
|
Цитата DoctorGenius, 30.11.04, 02:53, 527621 Недостатки: Довольно таки неплохо сделано. ![]() ![]() Сорь за оффтоп - бессоница напала, а тут такое ![]() |
Сообщ.
#49
,
|
|
|
Столько флейма читать не смог сразу и полностью.
vot, а если, скажем, оплатить хостинг, ну.. лет на 10 вперед? Вообще, если есть такая необходимость, то стукни в асю или ПМ (Ася предпочтительней). |
![]() |
Сообщ.
#50
,
|
|
DoctorGenius, спасибо за помощь.
Вот несколько деталей: Короче, пока дизайн не самое главное. были бы материалы. Народ, вы присылать исходники будете, или где ? ![]() |
Сообщ.
#51
,
|
|
|
вот программка, сортирующая список методом выбора. надеюсь подойдет.
Добавлено есть еще проги, которые суммируют и делят столбиком многочлены, коэффициенты и степени которых лежат в списках. если нужны - говорите Прикреплённый файл ![]() |
Сообщ.
#52
,
|
|
|
Можете разместить мою статью про длинную арифметику
Мне не жалко ![]() Добавлено Люди!!!!!!!!!!!!!! А почему в этом ЧАВО только исходники? А кто статьи переносить будет? Без статей это всего лишь какой-то набор исходников, который лучше было бы поместить в формате PAS! |
Сообщ.
#53
,
|
|
|
вот пример сортировки списка (там два метода, пузырьком и выбором, выбор вообще просто реализуется)
Добавлено shipbrother, это вроде не метод простого выбора, а метор простых вставок ![]() Прикреплённый файл ![]() |
![]() |
Сообщ.
#54
,
|
|
Цитата Азат, 30.11.04, 10:23, 527921 Люди!!!!!!!!!!!!!! А почему в этом ЧАВО только исходники? А кто статьи переносить будет? Без статей это всего лишь какой-то набор исходников, который лучше было бы поместить в формате PAS! Да знаю я. Писал уже, что нужны подробные комментарии к коду, и, заодно, описание. Хоть короткое: что делает, как делает. и желательно алгоритм. Добавлено Между прочим, а кто оформлять будет? Пушкин? Хоть выделите ключевые слова. Форум ведь располагает всеми необходимыми для этого средствами! |
Сообщ.
#55
,
|
|
|
ага, а отлаживать код тоже прямо в ворде?
![]() Процедура BubbleSort сортирует список методом пузырька (если элемент больше, чем следующий за ним, выполняет обмен). Возможно проще в таких случаях обменивать местами данные, а не ссылки, но в случае сложных данных (например объекты) такой обмен уже может быть некорректным. Процедура ChoiceSort сортирует список методом простого выбора, пересобирая список в новый (с головой в другой переменной) из элементов старого, сначала ищется максимум в оставшейся части списка, затем найденный элемент исключается из старого списка и добавляется в голову нового списка, таким образом новый список отсортирован по неубыванию. Данные (elem) не меняют своего физического расположения. [Romtek:: ChoiceSort: правильнее SelectionSort] |
Сообщ.
#56
,
|
|
|
Vesper, точно! ошибочка вышла.. но тем лучше, другой алгоритм
Romtek, да я вроде везде комментарии написал, правда на английском, на русском не было возможности... если этот код пойдет и если нужно, напиши, я переделаю, чтобы вам не париться самим еще прога есть, которая линию по экрану двигает как подставочку в арканоиде, но прога древняя, написана с помощью crt, я, как переделаю, постараюсь скинуть |
Сообщ.
#57
,
|
|
|
есть у меня прога, которая двигает крест в графике по экрану как прицел от курсорных клавиш, но там юзается модуль, который обрабатывает INT09, соответственно не подходит
![]() |
Сообщ.
#58
,
|
|
|
могу кстати еще написать заметку про типизированные файлы и в добавок - маленькую лабу, которая в файл пишет всевозможные переменные паскалевского типа. это для того, если кому-нибудь интересно посмотреть как представляются данные в машине(могут быть вопросы в отношении типа real например)
вы только пишите, если это действительно нужно(можно на почту или в приват, чтобы форум не засорять), а то не охота делать что-нибудь в пустую. време6ни не так много... |
Сообщ.
#59
,
|
|
|
shipbrother, а разница? там от crt используются две ф-и, keypressed и readkey, обе малюются на асме вне модуля и все
![]() как ни крути без асма в ТР7.0 никуды ![]() |
Сообщ.
#60
,
|
|
|
да, но просили-то проги без ассемблерных вставок.
я видел где-то исправленный crt, только не пробывал... |
Сообщ.
#61
,
|
|
|
вот 3 проги + описание к ним в доке
1. суммирование и деление многочленов в столбик (на списках) 2. очередь на файлах 3. 2 функции для строк (удаление и копирование N последних символов Добавлено еще есть следующее(довольно банальное): однонаправленный стек на списках, двунаправленная очередь на списках, организация списка с произвольным доступом(ох уж эти лабы - основа основ). все в виде модулей. по памяти еще есть перевод чисел из двоичной системы в 10, из десятичной в пятеричную и шестеричную. банально, но может быть полезно если надо - пишите. Прикреплённый файл ![]() |
![]() |
Сообщ.
#62
,
|
|
Цитата shipbrother ![]() ![]() Assign(f,str); {назначаем файловой переменной имя файла} rewrite(f); {открывает файл для записи <=> создаем пустой} close(f); {закрываем файл} А где обработка ошибок? ![]() Кстати, не надо в описании добавлять большие исходники. Достаточно самих PAS файлов. |
Сообщ.
#63
,
|
|
|
Цитата В Мозилле нет фона (будто не работает CSS) Потестил страницы в аналоге mozilla - Netscape 6. Фона небыло. Все дело было в отсутсвии символа # перед кодом цвета. Например конструкция background: ffffff отлично работает в IE, Opera и др. В Netscape же возникла данная проблема. Зная что Mozilla является его аналогом под linux, думаю теперь все будет нормально. Цитата Ссылку на твой сайт замени на своё мыло. Кстати, и автора забыл ![]() "Разработка HTML и CSS" - тут я не согласен. Замени уж лучше на "Оформление и дизайн" Я сделал единый шаблон для всех страниц. Это удобно, т.к. можно управлять всеми страницами, таким образом чтобы если захочется вставить что-либо (менюшки, подключить какие-либо js, css, добавить, или удавлить любые элементы дизайна) можно используя программу для глобальной замены ( текста (на Delphi) присланную мною ранее. Например ищем </BODY> заменяем на <P ALIGN="RIGHT">Разработчики: _______</P></BODY>. Вот и все. Главное подобрать правильную замену, а также всегда иметь резервную копию редактируемых страниц. Имея единую структуру всех страниц мы всегда можем ими управлять, не редактируя каждую страницу в отдельности, если захочется что-либо добавить, или изменить в дизайне и т.д. Если все страницы взятые из разных источников будут иметь совершенно разную структуру, то автоматическая замена значительно усложнится. Поэтому лучше один раз потратить время на приведение ВСЕХ страниц под один стиль, и тогда можно быть уверенным в том, что автоматическая замена будет проведена во всех страницах абсолютно правильно. Цитата Я не хочу, например, выделять вручную каждое ключевое слово в коде программ. Может, есть какие-то предназначенные для этого программы? Вариант самый простой. Берешь исходник .pas затем поочередно берешь мою проргаммку вводишь ключевые слова var, begin, {comments} и др. и заменяешь их на <b>var</b>, <b>begin</b>, <i>{comments}</i>. А вообще нетрудно сделать программку, которая во-первых будет проводить такие замены глобально, за один проход, во-вторых будет нечувствительна к регистру, чтобы к примеру Var и var было одно и тоже. Можно сделать и полную подкраску тегов, с помощью программы. Возьми предложенный выше js парсер и посмотри как он сделан, сделай такую же штуку, только чтобы она парсила не "на лету", а в файлах. Но как я уже говорил "полноценная" подкраска тегов занимает очень много места. Вот единый шаблон, для всех страниц данного сайта: 1. HTML ![]() ![]() <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251"> <TITLE>Pascal FAQ :Оглавление</TITLE> <link REL="STYLESHEET" TYPE="text/css" HREF="style.css"> </HEAD> <BODY> <H1>Pascal FAQ</H1> <HR> Здесь содержание страницы <HR> <CENTER><A HREF="index.html">< Оглавление</A></CENTER> <P ALIGN="RIGHT"><I>Разрабочики</I></P> </BODY> </HTML> 2. CSS (исправлен). ![]() ![]() BODY { background: #FFFFFF url(background.gif); background-attachment: fixed; font-family: Monospace; font-size: 16px;} A { color: 0000ff; text-decoration: none; } A:hover { color: ff0000; text-decoration: none; } CENTER { font-weight: bold; text-decoration: underline; } PRE { font-size: 14px; } H1 { font-size: 24px; font-weight: bold; text-align: center; } B { color: 0000ff } I { color: 003399; font-weight: bold; } HR { color: 003399; width: 80%; } P { font-size: 10px; } Также немелано бы разместить информацию по численным методам. Вот основные темы, по которым возникают частозадаваемые вопросы. Основные темы: 1. Решение СЛАУ. Методы Гаусса, Крамера, простой итерации, Зейделя. 2. Решение нелинейных уравнений. Методы: хорд, Ньютона, и др. 3. Решение ОДУ. Методы Эйлера, Рунге-Кутта, Адамса. 4. Приближение функций. Аппроксимация, интерполяция. 5. Численное дифференцирование. 6. Вычисление интегралов. Методы: прямоугольников, Симпсона, Гаусса, методы Монте-Карло и др. Также следует рассмотреть линейную и матричную алгебру, в частности вычисление определителей. Информацию по данным темам можно найти в моих постах на данном форуме, а также см. на Студенческом форуме в моем разделе "Вычислительная математика". Также (см. выше) я запостил методичку по численным методам, в ней тоже много чего расписано с примерами на Pascal. Есть еще много чего. Могу выслать, только проблематично постить в форуме (ограничение в 200 КБ). Лучше отправить по e-mail. |
Сообщ.
#64
,
|
|
|
Я оптимизнул свой скрипт, теперь он работает быстрее.
+ цвета подсветки стали как у Romtek'a в его редакторе. Для демонстрации её работы в аттаче сырцы из альфа версии фака. Прикреплённый файл ![]() |
![]() |
Сообщ.
#65
,
|
|
Вторая версия альфа
Немного добавил материала, вставил парсер Mixxx'а ![]() Слегка по другому оформил страницу (валидировал) и стили (объединил 2 стиля, тоже валидировал), учитывая советы от shipbrother и DoctorGenius. Оцените, как смотрится код на Паскале, и вообще. Прикреплённый файл ![]() |
Сообщ.
#66
,
|
|
|
Как я уже говорил в исходнике символы <, > надо заменить их эквивалентами < >. Что получится, если этого не сделать - см. исходник с интегралами. Т.к. заменять прямо в HTML довольно затруднительно, бери прямо в файлах, .pas, .txt проведи глобальную замену вышеуказанных символов на их HTML-эквиваленты.
Парсер работает намного быстрее, так что с этим все нормально. Так же как я уже говорил, следует все делать по единому шаблону. см. исправленную версию FAQ (HTML+добавлено несколько исходников по численным методам). И все-таки я думаю в ближайшее время стоит: 1. Преобразовать (переработать) всю инфу которая есть в Pascal FAQ на форуме в off-line вариант. 2. К численным методам (да и другим исходникам тоже) добавить подробное описание. 3. Сделать on-line вариант данной базы (сайт) пусть даже на holm.ru, т.к. в скором времени размер данной базы превысит 200 КБ и тогда ее уже не прикрепишь так просто к посту в форуме. Прикреплённый файл ![]() |
![]() |
Сообщ.
#67
,
|
|
Цитата DoctorGenius, 2.12.04, 02:35, 529824 Пока редактирование статей меня мало интересует. Как я уже говорил в исходнике символы <, > надо заменить их эквивалентами < >. Цитата DoctorGenius, 2.12.04, 02:35, 529824 Я один не справлюсь, к тому же у меня есть другие дела. А ты, похоже, единственный, кто решил помочь. Поэтому, спасибо тебе.Преобразовать (переработать) всю инфу которая есть в Pascal FAQ на форуме в off-line вариант. Надеюсь, не всем параллельно. ![]() Цитата DoctorGenius, 2.12.04, 02:35, 529824 Может потом. Главная цель - оффлайн-версия.Сделать on-line вариант данной базы (сайт) И ещё: найти бы что-то типа проектов CVS для коллективного пополнения ФАКа. А то неудобно как-то. Wiki по идее подходит, но как его связать с форумом и есть ли возможность в нём писать тексты программ на Паскале? Добавлено Да, забыл: пока нет ничего другого в замену - если есть какие-то дополнения к FAQ, не прикрепляйте неизменённые файлы в архиве. Т.к. размер файла потихоньку увеличивается, и нет смысла качать то, что уже готово и не изменялось. |
Сообщ.
#68
,
|
|
|
1. Вот что наклепал в HTML.
Конечно, все требует серьезной доработки - форматирование текста, и т.д. Вообщем 197 КБ (zip-архивы я выкинул, т.к. иначе не помещалось). Правда осталось еще несколько вопросов которые я не сдеалал: Сделайте мне русский в Паскале !!! Графика в различных режимах Как замерять время выполнения кода? Изучаем IDE Turbo Pascal 7.0 Как вывести Real в понятном виде? их надо просто дорабоатать, переписать заново, и т.д. 2. Не понимаю, зачем нужен CVS, WIKI, и т.д. Для коллективных обсуждений есть форум, и в любом случае то что сделали (где бы не деалали) придется редактировать, переделывать HTML и помещать в offline FAQ. 3. Почему бы не преобразовать HTML в CHM - потом всегда можно преобразовать обратно. Прикреплённый файл ![]() |
![]() |
Сообщ.
#69
,
|
|
DoctorGenius, мне больше нравится мой начальный вариант главной странички, структурный.
Вообще, если дополняешь новыми материалами, то лучше просто оформи их как следует (пример: "Поиск данных" и "Математика"). А в главную страницу я сам буду добавлять. Совсем не устраивает оформление текстов по Вычислительной Математике - по ним нужно пройтись Source-formatter'ом. Я пришёл к выводу, что основная задача Offline-FAQ - это не теория, а короткие примеры в ответ на вопросы (типа их задают). Поэтому нет смысла переводить все материалы в FAQ. Многие статьи в разделе Pascal FAQ имеют теоретический характер. Offline-FAQ должен быть справочником по Паскалю (в основном, для студентов). Насчёт исходников: я не вижу необходимости таскать ещё и ZIP-файлы вместе с FAQ. Громоздких текстов мы в него помещать не будем, и будет достаточно скопировать из странички текст программы обычным способом. |
![]() |
Сообщ.
#70
,
|
|
Цитата DoctorGenius,6.12.04, 03:51 @ Я ищу самый лёгкий способ совместного пополнения примерами, а средств форума недостаточно, чтобы каждый мог оценить/исправить и дополнить чем-то своим без скачивания архива.Не понимаю, зачем нужен CVS, WIKI, и т.д. Для коллективных обсуждений есть форум, и в любом случае то что сделали (где бы не деалали) придется редактировать, переделывать HTML и помещать в offline FAQ. Цитата DoctorGenius,6.12.04, 03:51 @ Готовая версия будет в двух вариантах: HTML и CHM. Почему бы не преобразовать HTML в CHM - потом всегда можно преобразовать обратно. |
Сообщ.
#71
,
|
|
|
Цитата DoctorGenius, мне больше нравится мой начальный вариант главной странички, структурный. Вообще, если дополняешь новыми материалами, то лучше просто оформи их как следует (пример: "Поиск данных" и "Математика"). А в главную страницу я сам буду добавлять. Совсем не устраивает оформление текстов по Вычислительной Математике - по ним нужно пройтись Source-formatter'ом. Я пришёл к выводу, что основная задача Offline-FAQ - это не теория, а короткие примеры в ответ на вопросы (типа их задают). Цитата Поэтому нет смысла переводить все материалы в FAQ. Многие статьи в разделе Pascal FAQ имеют теоретический характер. Offline-FAQ должен быть справочником по Паскалю (в основном, для студентов). Статьи теоретического плана тоже нужны, например, для защиты курсовых и лабораторных работ, и т.д. С другой стороны если в FAQ мы рассматриваем программы для математических вычислений, то помещать туда же учебник по математике с теорией данных методов не представляется возможным. Есть одна неплохая книга по Pascal в формате .doc. Здесь запостить не могу (весит ~300 КБ). Может быть стоит взять ее за основу. http://www.yourpascal.com/forum25.html - мой раздел студенческого форума. см. Книги и ресурсы для начинающего праграммера на TP. А вообще, я думаю Pascal Faq неплохо было бы сделать как drkb, только для Паскаля. Если HTML писать корректно, то можно сделать весьма солидный (информативный) справочник, который без труда будет умещаться на дискету. Цитата Насчёт исходников: я не вижу необходимости таскать ещё и ZIP-файлы вместе с FAQ. Громоздких текстов мы в него помещать не будем, и будет достаточно скопировать из странички текст программы обычным способом. Есть некоторая информация, которая весит немного, но не может быть помещена прямо на странице - пример тому - руссификатор для DOS (используется для руссификации клавиатуры в TP под WinXP), можно привести и другие примеры инфы, которую не рационально хранить в виде HTML. Цитата Я ищу самый лёгкий способ совместного пополнения примерами, а средств форума недостаточно, чтобы каждый мог оценить/исправить и дополнить чем-то своим без скачивания архива. Не понимаю почему средств форума недостаточно? Форум - онлайн версия FAQ. В off-line FAQ для каждого раздела я указывал автора ответа и источник материала. Таким образом в онлайне может вестись работа над статьями и исходниками (дополнение, исправление ошибок, и т.д.), а также если читатель заметит ошибки в исходнике, захочет предложить свой, допустим более оптимальный вариант решения данной проблемы, то он сможет просто перейти по ссылке на "родную" страницу в on-line FAQ и написать это в форуме. В конце концов чтобы не использовать форум есть еще один вариант: создать шаблонный сайт к примеру narod.ru, sitecity.ru, и т.д., чтобы у каждого из тех, кто работает над FAQ был логин и пароль для доступа к аккаунту. Авторам не потребуется знание HTML, и опыта настройки CGI, PHP скриптов. В этих бесплатных сервисах есть множество предустановленных скриптов (анкеты, форумы, гостевые книги). Это все можно прикрутить, чтобы посетители могли отправлять свои исходники, высказывать пожелания, замечания, сообщать об ошибках в предложенных материалах. Все это можно будет скачать, и выложить в виде архива. |
![]() |
Сообщ.
#72
,
|
|
Цитата DoctorGenius,8.12.04, 01:13 @ Не понимаю почему средств форума недостаточно? Форум - онлайн версия FAQ. Почти-что достаточно... Но не совсем... Я пытался сделать нечто вроде структурированного ФАК в стиле созданного у нас по Дельфи. На сегодня есть всего пара проблем - это ограниченная глубина подразделов и невозможность прикрепления нескольких файл-аттачей. Идея ВИКИ мне не очень по душе, поскольку никто не застрахован от действий недоброжелателей или просто безграмотных людей, которые могут вам ТАКОГО наредактировать - что мало не покажется ![]() На тему коллективного доступа - движок форума уже сейчас позволяет назначить в раздел _группового модератора_, т.е. все, входящие в определенную группу, могут править/удалять посты. |
![]() |
Сообщ.
#73
,
|
|
Версия 0.3 с некоторыми добавлениями.
Добавлено Содержание Pascal FAQ ------------------------------------ 1. {Как правильно оформить программу} 2. {Сообщения и коды ошибок} 3. Основы Паскаля * {Процедуры и функции Pascal} * {Примеры работы с указателями} * {Динамические массивы} * Очереди, списки, стеки * Списки * Работа с файлами * Есть ли на диске файл с данным именем? 4. Математика и алгоритмы * {Базовые понятия} * Как упорядочить массив по возрастанию? Алгоритмы сортировки * {Метод пузырька} * {Метод выбора} * {Метод быстрой сортировки} * {Метод простых вставок} * {Метод бинарных вставок} * Поиск подпоследовательности в массиве * {Алгоритм СДВИГ-И} * {Бинарный поиск в упорядоченном массиве} * {Нечёткий поиск. Расстояние Левенштейна} * {Как работать с отдельными битами?} * Численные методы * {Приближённое представление числа в виде дроби} * {Вычисление интегралов различными методами} * {Разложение функций в степенные ряды} 5. {Как упорядочить данные по возрастанию?} 6. {Простая база данных} 7. {Модуль для работы с длинными числами} 8. Графика * Построение графика функции в * {декартовой С.К.} * {параметрической С.К.} * {полярной С.К.} * Работа с картинками. Обработка спрайтов, работа с BMP для TMT * Фракталы и хаос * {Множество Джулии} * Множество Мандельброта 9. Объектно-Ориентированное Программирование (ООП) * Объекты * Виртуальные методы * Turbo Vision 10. Советы программисту (Code Tuning) Прикреплённый файл ![]() |
![]() |
Сообщ.
#74
,
|
|
Что мне не нравится в текущей системе форума - то, что надо зарегистрироваться для того, чтобы посмтореть FAQ.
![]() Цитата vot,8.12.04, 08:59 @ Идея ВИКИ мне не очень по душе, поскольку никто не застрахован от действий недоброжелателей или просто безграмотных людей, которые могут вам ТАКОГО наредактировать - что мало не покажется Вики позволяет ограничивать доступ к ресурсам, поэтому можно прикрутить такую фишку к форуму, чтобы зарегеные пользователи (скажем, начиная с юниоров) смогли править тексты и добавлять свои. |
![]() |
Сообщ.
#75
,
|
|
Кто напишет задачку для Оффлайн-ФАК ?
Имеются сведения о студентах N учебных группах со своими реквизитами (имя, группа_номер, оценка по 4-ём предметам). Кол-во студентов заранее не известно. Определить и вывести на экран группы с самым высоким средним баллом. Оформить красиво (с отступами), комментариями и имеющими смысл именами переменных. Использовать процедуры и функции, например InputData; CalcAverageMarks; OutputHighMarks; без модуля CRT. |
![]() |
Сообщ.
#76
,
|
|
А ещё нужна програмка, отображающая меню при помощи модуля CRT.
Добавлено Функция Menu должна возвращать индекс выбранного элемента. Для начала, пусть при выборе выводится название элемента. Не забыть предусмотреть выход... ![]() |
![]() |
Сообщ.
#77
,
|
|
Вот навалял прогу для работы с записями и указателями. Также используется сортировка записей по двум критериям.
Зацените. Что нужно добавить/изменить? Хочу поместить в Offline-FAQ. Есть идея написать тоже самое с использованием объектов, коллекций (ООП). Ну и добавить междумордие (интерфейс)... ![]() Прикреплённый файл ![]() |
Сообщ.
#78
,
|
|
|
Меню
вертикальное цвет выбирать нельзя заголовок непишет P.S. Писал для других нужд, переделать и доработать лень, но хоть что-то. Прикреплённый файл ![]() |
![]() |
Сообщ.
#80
,
|
|
Цитата Dima_R @ 22.12.04, 10:33 В общем, что-то высвечивает, конечно, но код немного непродуман. Можно сделать и компактнее, и понятнее, и красивее. Меню вертикальное цвет выбирать нельзя заголовок непишет P.S. Писал для других нужд, переделать и доработать лень, но хоть что-то. ![]() Сам могу написать, но хочется, чтобы и другие поучаствовали. ![]() Но всё равно спасибо! Vesper, хорошо. Только чего комменты на английском? ![]() ![]() Чуток оформил программу и добавил функцию CalcStudAverage Прикреплённый файл ![]() |
Сообщ.
#81
,
|
|
|
Romtek, не люблю транслит и кривые кодировки :-)))))
ладно, пришел еще админ, терь будет время динамическое меню наваять |
![]() |
Сообщ.
#82
,
|
|
Пример базы данных с использованием ООП (продолжение от 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. Прикреплённый файл ![]() |
![]() |
Сообщ.
#83
,
|
|
Цитата Romtek @ 21.12.04, 20:52 Всё ещё нужна. см. (сообщ. #78)А ещё нужна програмка, отображающая меню при помощи модуля CRT. Также нужна программа, которая выводит текстовый файл на экран. При нажатии на пробел окно должно прокручиваться на размер экрана (без лишних наворотов, просто и понятно). |
Сообщ.
#84
,
|
|
|
Ура! Сдал первый экзамен. Вот написал, правда, снова не идеал, но намного лучше чем в прошлый раз. Плюс программка для чтения файлов.
Прикреплённый файл ![]() |
![]() |
Сообщ.
#85
,
|
|
Спасибо! Именно то, что надо.
![]() Замечания к программе MENU.PAS : |
![]() |
Сообщ.
#86
,
|
|
Цитата Vesper @ 30.11.04, 19:27 есть у меня прога, которая двигает крест в графике по экрану как прицел от курсорных клавиш, но там юзается модуль, который обрабатывает INT09, соответственно не подходит ![]() А прога где ? ![]() |
![]() |
Сообщ.
#87
,
|
|
Неотёсанные топики (Сообщ. #22) "Определение принадлежности точки к многоугольнику"
Кто может, проверьте почему при некоторых значениях выдаётся неверный результат. |
Сообщ.
#88
,
|
|
|
Romtek, завис
![]() |
Сообщ.
#89
,
|
|
|
вот, только без комментов
Прикреплённый файл ![]() |
![]() |
Сообщ.
#90
,
|
|
Чуток оформил твой код...
Надо только дополнить комментами. ![]() ![]() uses graph, crt; procedure InitGraphics; Const PathToBGI = 'e:\bp\bgi'; var gd, gm, ErrorCode: Integer; begin gd := VGA; gm := VGAHi; InitGraph (gd, gm, PathToBGI); ErrorCode := GraphResult; if ErrorCode <> grOk then begin Writeln ('Graphics error: ', GraphErrorMsg (ErrorCode)); Readln; Halt (1); end; end; Const Border = 5; var i, x, y, mx, my :integer; eexit:byte; c:char; procedure DrawCursor; begin line (x - 15, y, x - 1, y); line (x, y - 15, x, y - 1); line (x + 15, y, x + 1, y); line (x, y + 15, x, y + 1); end; begin eexit := 0; InitGraphics; mx := GetMaxX; my := GetMaxY; x := mx div 2; y := my div 2; OutText ('Press Esc to exit'); setcolor (Yellow); DrawCursor; repeat c := readkey; if c=#27 then eexit := 1; if c=#0 then begin c := readkey; setcolor (Black); DrawCursor; case c of 'K': begin dec (x, 5); if x <= Border then x := Border; end; 'M': begin inc (x, 5); if x >= mx - Border then x := mx - Border; end; 'H': begin dec (y, 5); if y <= Border then y := Border; end; 'P': begin inc (y, 5); if y >= my - Border then y := my - Border; end; end; setcolor (Yellow); DrawCursor; end; until eexit > 0; closegraph; end. |
![]() |
Сообщ.
#91
,
|
|
![]() ![]() Program Animation; uses Crt,Graph; const Triangle: array[1..4] of PointType = ((X: 50; Y: 100), (X: 100; Y:100), (X: 150; Y: 150), (X: 50; Y: 100)); var Gd, Gm, Ap: Integer; Xpos : integer; STab : Array[0..199] of integer; Procedure Retrace; begin while (Port[$03DA] and $8 = 0) do; end; Procedure Flip; begin SetActivePage(Ap); Ap := (Ap + 1) and 1; SetVisualPage(Ap); end; Function InitializeGraph : boolean; begin Gd := VGA; InitGraph(Gd, Gm,'..\bgi'); if GraphResult <> grOk then Halt(1); If (Gd = HercMono) or (Gd = EGA) or (Gd = EGA64) or (Gd = VGA) then begin InitializeGraph := True; Flip; end else begin OutText('No paging supported.'); InitializeGraph := False; end; end; begin If InitializeGraph then begin For Stab[0] := 1 to 199 do Stab[Stab[0]] := round(50*Sin( (Stab[0] * (360/199)*pi) / 180)); Stab[0] := 0; repeat Xpos := (Xpos +1) mod 200; ClearDevice; Circle(Xpos+50,100,50); Circle(250-Xpos,100,50); DrawPoly(SizeOf(Triangle) div Sizeof(PointType), Triangle); Triangle[1].Y := 50+Stab[Xpos] div 2; Triangle[1].X := 100-Stab[Xpos] div 2; Triangle[2].Y := 100+Stab[Xpos]; Triangle[2].X := 100-Stab[Xpos]; Triangle[3].X := 150+Stab[Xpos]; Triangle[4] := Triangle[1]; Line(60-Stab[Xpos],50,60+Stab[Xpos],10); Retrace; Flip; until keypressed; end; Readkey; CloseGraph; end. Кто может составить статью по применению видеостраниц для анимации? Описать всё популярным языком. |
![]() |
Сообщ.
#92
,
|
|
Цитата Vesper @ так, вот обещанная прога, переработал ее под объекты, разница только в том, что нельзя непосредственно подсмотреть скажем буфер. Цитата Vesper @ В соседнем файле (BufView.pas) пример использования буферизованного ввода для быстрого вывода BMP файла на экран. Vesper, а не мог бы ты составить простой пример без графики? сообщ. №46 |
Сообщ.
#93
,
|
|
|
ну задач таких немного, где обязательно читать информацию разными блоками... ядро в принципе одно и то же, только его использование нужно менять
надо подумать над такой задачей (подобрать нормальный пример) |
Сообщ.
#94
,
|
|
|
Вот видел нужен модуль для работы с БМП из ТМТ. Кидаю...
Прикреплённый файл ![]() |
Сообщ.
#95
,
|
|
|
![]() |
Сообщ.
#96
,
|
|
Цитата Arsuit @ Я же просил не кидать, а оформлять как следует.Кидаю... Хочу видеть статьи, готовые к выпуску, а не модуль с программой. |
Сообщ.
#97
,
|
|
|
Цитата Romtek @ Я же просил не кидать, а оформлять как следует. Ну там есть небольшая документация |
![]() |
Сообщ.
#98
,
|
|
Цитата Arsuit @ Я видел, разумеется. Ну там есть небольшая документация ![]() Но описание нужно ведь оформить, а кто этим должен заниматься? Можешь прямо здесь, в этой теме, написать сообщение с оформленным средствами форума описанием. |
Сообщ.
#99
,
Сообщение отклонено: B.V. -
|