На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Друзья, соблюдайте, пожалуйста, правила форума и данного раздела:
Данный раздел не предназначен для вопросов и обсуждений, он содержит FAQ-заготовки для разных языков программирования. Любой желающий может разместить здесь свою статью. Вопросы же задавайте в тематических разделах!
• Если ваша статья может быть перенесена в FAQ соответствующего раздела, при условии, что она будет оформлена в соответствии с Требованиями к оформлению статей.
• Чтобы остальным было проще понять, указывайте в описании темы (подзаголовке) название языка в [квадратных скобках]!
Модераторы: Модераторы
Страницы: (7) 1 2 [3] 4 5 ... Последняя » все  ( Перейти к последнему сообщению )  
> Создаём Offline FAQ , [Pascal] сбор статей и исходников
    Текущая версия: 0.3a
    Скачать OfflineFAQa3.rar (~48кб)
    Содержание Offline-FAQ

    Народ, те кто хочет помочь - присылайте решения проблем на Паскале без ассемблерных вставок.

    Основные топики:
    1. Основы Паскаля (самый главный упор именно на него)
      • Строки
      • Типы данных
      • Работа с файлами
    2. Математика и алгоритмы
      • численные методы
      • и т.д.
    3. Графика и игры
    4. ООП
    5. Дата и время

    Примеры должны быть ориентированы на сегодняшний день, поэтому не принимаются примеры по
    • Interrupts (уже не актуально)
    • Hardware (как правило, используются прерывания и ассемблер)
    • TSR (уже не актуально)

    Оформление:
    Только в документах DOC, HTML, или в сообщении в форуме. И не забудьте о соответствующих комментариях к коду программ!
    Если лень открывать редактор, то напишите описание прямо в своём сообщении. Выделите ключевые слова, подчеркните, где надо. Сам я не могу оформлять каждый присланный документ.
    Дополнения к ФАКу прикрепляйте в архиве к своему сообщению.

    А ещё неплохо собрать в HTML то, что лежит на сайте http://pascal.sources.ru/ :
    Pascal FAQ и Russian SWAG
      А кто сможет скачать off-line FAQ размером в пару гигов?
        А численные методы на pascal нужны? Встречалось немало вопросов по этой теме.
          Цитата DoctorGenius, 25.11.04, 00:34
          А численные методы на pascal нужны?

          Нужны.
            Цитата Guest, 24.11.04, 23:31
            А кто сможет скачать off-line FAQ размером в пару гигов?

            Его пока не существует, рано говорить.
            Присылай материалы, а мы выберем самые интересные. Предполагаемый размер Offline FAQ вряд ли будет свыше 5 МБ.
              Ну наконец то собрались сделать оффлайн фак!!!
              По поводу подсветки синтаксиса предлагаю делать её на лету с помощью моего js скрипта :) честно говоря я писал его специально для этого случая :)
              Это сильно сократит объём страниц оффлайн фака. Вы посмотрите на объём FAQ'а Vit'a это из за того что подсветка там статическая и при том выполнена корявенько (в основном это пробелы через  )

              Demo
              Подробности тут Подсветка синтаксиса
                Mixxx, большое спасибо за подсветку кода. Я тоже хотел подсветку отделить от HTML, но не знал у кого спрашивать.
                То что надо. ;)


                Но всё-таки хотелось бы, чтобы обсуждали не будущий интерфейс, а как заполнить ФАК нужными материалами.
                  Цитата
                  как заполнить ФАК нужными материалами.

                  я думаю, чтобы это дело пошло качественнее и быстрее, чтобы надо было меньше одбирать и смотреть чужой код(который может оказаться немного не по теме или просто не к месту), надо спланировать структуру ФАКа и сообщать народу конкретно какие темы и примеры программ нужны. "Может у кого нибудь есть то-то и то-то?".

                  Просто посмотрел что есть у меня по паскалю(в основном лабы конечно, а ведь они-то и первые кандидаты в ФАК) и никак не могу решить, что может понадобиться, а что нет... а все подряд комментировать, делать описание к прогам, объяснять и пояснять не охота, тем более, что велика вероятность, что эта именно моя и именно эта прога, например, в факе не окажется.
                    Цитата shipbrother, 25.11.04, 15:45
                    надо спланировать структуру ФАКа
                    Его струкруру я уже описал в сообщении наверху.

                    Цитата shipbrother, 25.11.04, 15:45
                    и сообщать народу конкретно какие темы и примеры программ нужны. "Может у кого нибудь есть то-то и то-то?".

                    Да ,но пока никто ничего не присылал.

                    Цитата shipbrother, 25.11.04, 15:45
                    никак не могу решить, что может понадобиться, а что нет... а все подряд комментировать, делать описание к прогам, объяснять и пояснять не охота, тем более, что велика вероятность, что эта именно моя и именно эта прога, например, в факе не окажется.
                    Согласен. Поэтому опиши что выполняет каждая программа. А я и другие решим что надо, а что - нет.

                    Добавлено
                    P.S.
                    Забыл про DoctorGenius. Не хочу пренебрегать его попыткой дополнить FAQ. ;)
                      предлагаю свою помощь (хотя мне как модеру здесь самое место работать :))
                      есть пара программ по буферизованному чтению файла для ТР/ВР, нужны?
                      еще могу доработать статью про объекты (из онлайна) с добавлением виртуальных методов (можно и экспертный уровень включить, хотя ты и говорил, что лучше без АСМа)
                      про строки вообще-то у нас хорошая тема... :rolleyes:
                      т.е. мне :ph34r: нужна конкретика, я много что могу расписать, но описывать общЁ у меня не выходит
                        Пойдут почти любые примеры, которые часто спрашиваются (строки, матрицы, файлы).
                        Особенно вычислительные: интегралы, сумма ряда.

                        Добавлено
                        Уже есть кое-что из ФАКа:

                        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. Как преобразовать строку в число и обратно
                          Цитата Vesper, 25.11.04, 17:03
                          есть пара программ по буферизованному чтению файла для ТР/ВР, нужны?

                          Давай!
                          Цитата Vesper, 25.11.04, 17:03
                          еще могу доработать статью про объекты (из онлайна) с добавлением виртуальных методов (можно и экспертный уровень включить, хотя ты и говорил, что лучше без АСМа)

                          А это пока не печёт. Редко встречается.
                            Отправляю кое-что по численным методам. Это так сказать основные, во всяком случае широко применяется в учебной практике
                            как то вычмат, информатика.
                            Есть еще материалы по данной теме - описания, реализации и др., пишите на 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). Но тем не менее эту сторону дела тоже нельзя упускать из виду.
                            Прикреплённый файлПрикреплённый файлmetods.zip (113.89 Кбайт, скачиваний: 333)
                              Ладненько, раз уж на то дело пошло, я чувствую какаю тему стоит делать мне, а именно мышинную ;). Вы скажите, что нужно поправить в Онлайн статье, что добавить.. а я уж сделаю :).
                                Забыл об одной очень важной детали: Все символы < и > (логические операции в исходниках) должны быть заменены их эквивалентами в HTML соответственно: < и >
                                Скобки, образующие теги в языке HTML в некоторых случаях могут не вызывать проблем, например эта строчка:
                                ExpandedWrap disabled
                                  if a>b then writeln('test!');

                                Но, чтобы убедиться предлагаю следующий пример:
                                ExpandedWrap disabled
                                  if (a<b) or (a>c) then writeln('123');
                                  if a<>b then writeln('456');

                                Поэтому с целью избежания проблем с отображением исходников всегда следует делать глобальную замену.
                                Естественно, что при использовании визуальных редакторов данная проблема не возникает.
                                  так, вот обещанная прога, переработал ее под объекты, разница только в том, что нельзя непосредственно подсмотреть скажем буфер. Работает оно вот как: 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 на экран
                                  Прикреплённый файлПрикреплённый файлbufview.zip (2.41 Кбайт, скачиваний: 319)
                                  1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                  0 пользователей:


                                  Рейтинг@Mail.ru
                                  [ Script execution time: 0,0424 ]   [ 16 queries used ]   [ Generated: 18.07.25, 03:13 GMT ]