Реферат по предмету "Программирование"


Применение языков программирования высокого уровня для реализации численных методов

Министерство образования, культуры и здравоохранения Республики Казахстан Алматинский ВУЗ индустрии, экономики и кибернетики Факультет информатики Кафедра технической кибернетики Пояснительная записка к курсовой работе по предмету Языки и технологии программирования Тема Применение языков программирования высокого уровня для реализации

численных методов и прикладных программ Выполнил студент 2-го курса з.о. Гринев М.В. Принял ст. преп. Каф. ТК Муртазина А.У. Алматы 1998 г. Введение Внедрение ЭВМ во все сферы человеческой деятельности требует от специалистов разного профиля овладения навыками использования вычислительной техники. Повышается уровень подготовки студентов вузов, которые уже с первых курсов приобщаются к использованию

ЭВМ и простейших численных методов, не говоря уже о том, при что выполнении курсовых и дипломных проектов применение вычислительной техники становится нормой в подавляющем большинстве вузов. Вычислительная техника используется сейчас не только в инженерных расчетах и экономических науках, но и таких традиционно нематематических специальностях, как медицина, лингвистика, психология. В связи с этим можно констатировать, что применение

ЭВМ приобрело массовый характер. Возникла многочисленная категория специалистов - пользователей ЭВМ, которым необходимы знания по применению ЭВМ в своей отрасли - навыки работы с уже имеющимся программным обеспечением, а так же создания своего собственного ПО, приспособленного для решения конкретной задачи. И здесь на помощь пользователю приходят описания языков программирования высокого уровня далее

ЯВУ и численные методы далее ЧМ. ЧМ разрабатывают и исследуют, как правило, высококвалифицированные специалисты-математики. Для большинства пользователей главной задачей является понимание основных идей и методов, особенностей и областей применения. Однако, пользователи хотят работать с ЭВМ не только как с высокоинтеллектуальным калькулятором, а еще и как с помощником в повседневной работе, хранилищем информации с быстрым и упорядоченным доступом, а так же с источником и обработчиком графической

информации. Все эти функции современной ЭВМ я предполагаю продемонстрировать в настоящей курсовой работе. В первой части работы представлена программа по нахождению корней системы из двух нелинейных уравнений методами Ньютона и простых итераций. Во второй части моей работы представлена программа, демонстрирующая пользователю всю мощь и многообразие графических возможностей современных ПК на примере применения графических функций языка

С с использованием VGA-графики. В третьей части работы представлена программа Электронной записной книжки, которая имеет и практическое значение для пользователей маломощных персональных компьютеров и ПК блокнотов с малым дисковым ресурсом для которых нерентабельна эксплуатация ПО типа Lotus Organizer и подобных ПО с мощным графическим интерфейсом. К моему сожалению из-за отсутствия необходимого справочного материала мне не удалось продемонстрировать

в третьей части SUPER VGA-графику, но это дело недалекого будущего. Первая и вторая части работы выполнены с применение языка С фирмы Borland версии 3.1 для DOS и WINDOWS, а третья часть выполнена на ЯВУ Турбо Паскаль версии 7.0 для DOS и WIISION. Теоретическая часть.

Этапы решения задачи на ЭВМ. Наиболее эффективное применение ВТ нашла при проведении трудоемких расчетов в научных исследованиях и инженерных расчетах. При решении задачи на ЭВМ основная роль все-таки принадлежит человеку. Машина лишь выполняет его задания по разработанной программе. роль человека и машины легко уяснить, если процесс решения задачи разбить на перечисленные ниже этапы.

Постановка задачи. Этот этап заключается в содержательной физической постановке задачи и определении конечных решений. Построение математической модели. Модель должна правильно адекватно описывать основные законы физического процесса. Построение или выбор математической модели из существующих требует глубокого понимания проблемы и знания соответствующих разделов математики. Разработка ЧМ.

Поскольку ЭВМ может выполнять лишь простейшие операции, она не понимает постановки задачи, даже в математической формулировке. Для ее решения должен быть найден численный метод, позволяющий свести задачу к некоторому вычислительному алгоритму. В каждом конкретном случае необходимо выбрать подходящее решение из уже разработанных стандартных. Разработка алгоритма. Процесс решения задачивычислительный процесс записывается в виде последовательности элементарных арифметических и логических операций, приводящей к конечному результату

и называемой алгоритмом решения задачи. Программирование. Алгоритм решения задачи записывается на понятном машине языке в виде точно определенной последовательности операций - программы. Процесс обычно производится с помощью некоторого промежуточного языка, а ее трансляция осуществляется самой машиной и ее системой. Отладка программы. Составленная программа содержит разного рода ошибки, неточности, описки.

Отладка включает контроль программы, диагностику поиск и определение содержания ошибок, и их устранение. Программа испытывается на решении контрольных тестовых задач для получения уверенности в достоверности результатов. Проведение расчетов. На этом этапе готовятся исходные данные для расчетов и проводится расчет по отлаженной программе. при этом для уменьшения ручного труда по обработке результатов можно широко использовать удобные формы выдачи результатов в виде текстовой и графической информации, в понятном

для человека виде. Анализ результатов. Результаты расчетов тщательно анализируются, оформляется научно-техническая документация. Математические модели. Основное требование, предъявляемое к математической модели адекватность рассматриваемому процессу, явлению, т.е. она должна достаточно точно в рамках допустимой погрешности отражать характерные черты явления. Вместе с тем она должна обладать сравнительной простотой и доступностью исследования. Адекватность и сравнительная простота модели не исчерпывают предъявляемых

к ней требований. Необходимо обратить внимание на правильность оценки области применимости математической модели. Например, модель свободно падающего тела, в которой пренебрегли сопротивлением воздуха, весьма эффективна для твердых тел с большой и средней плотностью и формой поверхности, близкой к сферической. Вместе с тем, в ряде других случаев для решения задачи уже не достаточно известных из курса физики простейших формул. Здесь необходимы более сложные математические модели, учитывающие сопротивление воздуха

и прочие факторы. Отметим, что успех решения задачи в значительной степени определяется выбором математической модели здесь в первую очередь нужны глубокие знания той области, к которой принадлежит поставленная задача. Кроме того, необходимы знания соответствующих разделов математики и возможностей ЭВМ. Численные методы. С помощью математического моделирования решение научно-технической задачи сводится к решению математической задачи, являющейся ее моделью.

Для решения математических задач используются основные группы методов графические, аналитические, численные. Графические методы позволяют в ряде случаев оценить порядок искомой величины. Основная идея этих методов состоит в том, что решение находится путем геометрических построений. Например, для нахождения корней уравнения fx0 строится график функции yfx, точки пересечения которого с осью абсцисс и будут искомыми корнями. При использовании аналитических методов решение задачи удается

выразить с помощью формул. В частности, если математическая задача состоит в решении простейших алгебраических или трансцендентных уравнений, дифференциальных уравнений и т.п то использование известных из курса математики приемов сразу приводит к цели. К сожалению, на практике это слишком редкие случаи. Основным инструментом для решения сложных математических задач в настоящее время являются численные методы, позволяющие свести решение задачи к выполнению конечного числа арифметических действий над числами

при этом результаты получаются в виде числовых значений. Многие ЧМ разработаны давно, однако при вычислениях вручную они могли использоваться лишь для решения не слишком трудоемких задач. С появлением ЭВМ начался период бурного развития ЧМ и их внедрения в практику. Только вычислительной машине под силу выполнить за сравнительно короткое время объем вычислений в миллионы, миллиарды и более операций, необходимых для решения многих задач.

При счете вручную человеку не хватило бы жизни для решения одной такой задачи. ЧМ наряду с возможностью получения результата за приемлемое время должен обладать и еще одним важным качеством - не вносить в вычислительный процесс значительных погрешностей. Численные методы, используемые в данной работе. При написании программы решения системы из двух нелинейных уравнений мною использовались два известных и широко применяемых численных метода.

Это метод Ньютона и метод простых итераций. Метод Ньютона. Этот метод обладает быстрой сходимостью и сравнительно хорошей точностью вычислений. В случае одного уравнения Fx0 алгоритм метода был легко получен путем записи уравнения касательной к кривой yFx. В основе метода ньютона для системы уравнений лежит использование разложения функций Fix1,x2 xn в ряд Тейлора, причем члены, содержащие вторые и более высоких порядков производные, отбрасываются.

Пусть приближенные значения неизвестных системы уравнений F1x1,x2 xn0, F2x1,x2 xn0, 1 Fnx1,x2 xn0, например, полученные на предыдущей итерации равны соответственно a1,a2 an. Задача состоит в нахождении приращений поправок к этим значениям x1,x2 xn, благодаря которым решение системы 1 запишется в виде xiaix1, x2a2x2 xn,anxn. 2 Проведем разложение левых частей уравнений 1 в ряд

Тейлора, ограничиваясь лишь линейными членами относительно приращений F1x1,x2 xnF1a1 an F2x1,x2 xnF2a1 an Fnx1,x2 xnFna1 an . Поскольку в соответствии с 1 левые части этих выражений должны обращаться в нуль, то приравняем нулю и правые части. Получим следующую систему линейных алгебраических уравнений относительно приращений -F1 -F2 2 -Fn Значения F1,F2 Fn и их производные вычисляются при x1a1, x2a2 xnan.

Определителем системы 2 является якобиан J Для существования единственного решения системы 2 он должен быть отличным от нуля на каждой итерации. Таким образом, итерационный процесс решения системы уравнений 1 методом Ньютона состоит в определении приращений x1,x2 xn, к значениям неизвестных на каждой итерации. Счет прекращается, если все приращения становятся малыми по абсолютной величине maxxi . В методе i Ньютона также важен выбор начального приближения для обеспечения хорошей сходимости.

Сходимость ухудшается с увеличением числа уравнений системы. В качестве примера рассмотрим использование метода Ньютона для решения системы двух уравнений F1x,y0, 3 F2x,y0. Пусть приближенные значения неизвестных равны a,b. Предположим, что якобиан системы 3 при xa yb отличается от нуля, т.е.

J Тогда следующие приближения неизвестных можно аписать в виде xa- Величины, стоящие в правой части, вычисляются при xa, yb. При программировании данного метода в качестве исходных данных задаются начальные приближения неизвестных a,b, погрешности . Если итерации сойдутся, то выводятся значения x,y в противном случае происходит вывод x,y по мере работы программы до прерывания ее пользователем.

Метод простой итерации. Систему уравнений 1 представим в виде x1f1x1 xn, x2f2x1 xn, 4 xnfnx1 xn. Алгоритм решения этой системы методом простой итерации напоминает метод Гаусса - Зейделя, используемый для решения систем линейных уравнений. Пусть в результате предыдущей итерации получены значения неизвестных x1a1, x2a2 xnan. Тогда выражения для неизвестных на следующей итерации имеют вид x1f1a1,a2 an, x2f2x1,a2 an, xifixi

xi-1,ai an, xnfnx1 xn-1,an. Итерационный процесс продолжается до тех пор, пока изменения всех неизвестных в двух последовательных итерациях не станут малыми, т.е. абсолютные величины их разностей не станут меньшими заданного малого числа. При использовании данного метода успех во многом определяется удачным выбором начальных приближений неизвестных они должны быть достаточно близкими к истинному решению. В противном случае итерационный процесс может не сойтись.

Часть первая. Программа решения системы нелинейных уравнений методами Ньютона и простых итераций. Общие сведения. Данная программа разработана как учебная и в силу этого не имеет кодового обозначения предусмотренного ГОСТом 19.402-78 и представляет собой исполняемый файл kursach.ехе. Для функционирования программы необходим персональный компьютер с установленной операционной системой MS-DOS 3.30 и выше или полностью совместимой с ней.

Исходный текст программы написан на языке программирования высокого уровня С фирмы Borland версии 3.1 для DOS и WINDOWS и содержится в файле kursach.срр в форме пригодной к использованию его как текстового документа в среде ДОС. Исходный текст программы приведен в приложении 1.в Функциональное назначение. Данная программа решает систему нелинейных уравнений методами Ньютона и простых итераций. Программа не является универсальной и решает только заложенную в не систему

только из двух нелинейных уравнений. Для расширения функциональности программы необходимо внести соответствующее изменение в исходный текст как то изменение исходной системы, производных, якобиана системы. Описание логической структуры. Блок-схема программы приведена в приложении 4. При написании программы использовались математические методы, описанные в теоретической части настоящей работы. Функционально программа состоит из трех функций main, newton, iterac.

Взаимодействие функций между собой производится путем вызова из функции main функций newton и iterac с передачей параметров, в качестве которых используются переменные х и у в которые помещены начальные приближения , запрашиваемые у пользователя со стандартного устройства ввода, для обеспечения исходных данных к методам решения. После окончания расчета функции newton и iterac возвращают в функцию main результаты расчета в виде пары чисел, которые представляют собой корни системы уравнений, выводимые

на стандартное устройство вывода для дальнейшего анализа пользователем. Используемые технические средства. Для функционирования программы пригодна минимальная конфигурация ЭВМ на основе процессорной серии Ix86 фирмы Интел с 640 Кб оперативной памяти и накопителем на гибком магнитном диске. Для вывода информации пригоден графический адаптер

CGA и однотипный видеомонитор. Вызов и загрузка программы осуществляется как с гибкого диска так и с накопителя типа винчестер. При любом вызове в командной строке ДОС следует ввести полное имя исполняемого файла с указанием пути если таковой не описан в переменной PATH файла AUTOEXEC.BAT. Входные и выходные данные. В качестве входных данных для программы используется пара вещественных чисел представляющих собой приближенные

значения корней системы уравнений, решаемой программой. Числа могут быть как с дробной частью так и без не. В качестве выходных данных программа выдает на стандартное устройство вывода информации пару чисел, представляющих собой истинное решение системы уравнений в вещественной форме. В случае если количество знаков после десятичной точки велико, то вывод производится в экспоненциальной

форме. Часть вторая. Демонстрационная программа графических функций языка С. Общие сведения. Данная программа разработана как учебная и в силу этого не имеет кодового обозначения предусмотренного ГОСТом 19.402-78 и представляет собой исполняемый файл grafika.exe и файлов поддержки Таблица 1. Egavga.bgiбиблиотека взаимодействия с графическим адаптеромbold.chrбиблиотека жирного шрифтаeuro.chrбиблиотека шрифта eurogoth.chrбиблиотека готического шрифтаlcom.chrбиблиотека шрифта типа

Комплексlitt.chrбиблиотека шрифта типа smallsans.chrбиблиотека шрифта типа Сансерифscri.chrбиблиотека шрифта типа Скрипт simp.chrбиблиотека шрифта типа Симплексtrip.chrбиблиотека шрифта типа Триплексtscr.chrбиблиотека шрифта тапа ТриплексСкрипт Вышеприведенные файлы необходимо разместить в той же директории, что и основной модуль. Для функционирования программы необходима операционная система

MS DOS 3.30 и выше или полностью совместимой с ней. Исходный текст программы написан на языке программирования высокого уровня С фирмы Borland версии 3.1 для DOS и WINDOWS и содержится в файле grafika.срр в форме пригодной к использованию его как текстового документа в среде ДОС. Исходный текст программы приведен в приложении 2. Функциональное назначение. Программа предназначена для демонстрации основных графических возможностей

языка С в режиме VGA. Программа дает представление о структуре графических возможностей языка и способах их применения на практике. Функциональным ограничением программы является невозможность е эксплуатации на компьютерах, оснащенных видеоадаптерами, стандарт которых отличается от EGA-VGA. Описание логической структуры. Программа не несет в себе единого алгоритма в привычном понимании и поэтому блок-схема не приводится. Методы, использованные при написании программы, не являются математическими

или прочими стандартными и будут описаны ниже при описании соответствующих функций. Структурно программа grafika.срр представляет ряд функций, которые кратко описаны в таблице.2 Таблица.2 наименование функции в программе краткое описаниеmainглавная функция из которой вызываются все другие функции demolineфункция демонстрации рисования линий с применением оператора lineto различными цветамиdemocircleфункция демонстрации рисования окружностей произвольного радиуса с произвольным выбором

цвета и координат центраdemopixфункция рисования точек в произвольном месте экрана с произвольным цветомdemopiesliceфункция рисования закрашенных секторов с произвольным расположением на экране, произвольным выбором угла, радиуса, стиля заполнения и цветаdemotextфункция демонстрации вывода текстовых данных в графическом режиме всеми доступными в языке С стандартными способами и шрифтами c применением библиотек шрифтов, перечисленных в таблице.1mainwindowфункция формирования на экране графического окна с указанным заголовком headerdrawborderфункция

прорисовки границ графического экранаstatuslineфункция формирования статусной строки с выводом сообщения msgdemoarcsфункция вывода на экран дуг частей окружностей с произвольным начальным углом, цветом и координатами центраdemobarsфункция вывода на экран определенного числа одинаковых прямоугольников с произвольно изменяющимся цветомdemo3dbarsфункция демонстрации вывода на экран прямоугольных параллелепипедов произвольного размера, способа заполнения передней грани, и цвета, а так же расположения на экранеdiagramфункция демонстрации

практического применения функции void pieslice языка С для построения круговой диаграммы по заданным параметрам endpageфункция демонстрации практического применения рисования линий и секторов с циклически изменяющимися параметрамиendpage1функция практического применения операторов языка С для построения простого калейдоскопаendpage2завершающая страница, сообщающая пользователю о завершении работы программы Кроме функций mainwindow и statusline все остальные функции

не имеют входных и выходных параметров. Функция mainwindow в качестве параметра использует символьную строку передаваемую ей вызывающей функцией, также действует и функция statusline. Все функции вывода изображения кроме mainwindow, statusline, drawborder вызываются из главной функции по порядку, а вышеперечисленные вызываются из функций вывода изображения. Каждая функция вывода изображения вызывает функцию формирования графического окна с необходимым заголовком

а также определяет визуальные границы экрана при помощи функции drawborder и помещает в нижнюю часть экрана статусную строку при помощи функции statusline с необходимой надписью. Затем начинается процесс вывода на экран самого изображения, демонстрирующего работу той или иной графической функции языка С. После прекращения работы управление переходит в главную функцию, откуда вызывается следующая функция вывода изображения. В процессе работы программа использует файлы, приведенные в таблице.1

и в случае их отсутствия или недоступности функционирование программы будет не полным библиотеки шрифтов или полностью невозможным библиотека взаимодействия с видеоадаптером. Используемые технические средства. Для правильного функционирования программы необходимо применять следующие компоненты аппаратного комплекса персональный компьютер класса Ix86 с 640Кб ОЗУ, оснащенный одним накопителем на гибком магнитном диске 720Кб или накопителем типа

винчестер, а так же видеоадаптером EGA или VGA предпочтительно.Компьютер рекомендуется оснастить видеомонитором, соответствующим видеоадаптеру. Вызов и загрузка. Для правильного функционирования программы необходимо разместить основной модуль и сопутствующие файлы в одной директории. Для вызова программы необходимо в командой строке ДОС набрать полное имя основного модуля. Никаких параметров в командной строке не требуется.

Входные и выходные данные. Данная программа является демонстрационной и не использует входных данных от пользователя. Выходными данными являются результаты работы функций по выводу изображений на экран. Параметры изображения сохраняются только на экране в процессе работы программы данной функции. Часть третья Программа электронной записной книжки Общие сведения. Данная программа разработана как учебная и в силу этого не имеет кодового обозначения

предусмотренного ГОСТом 19.402-78 и представляет собой исполняемый файл notebook.exe и создаваемые ею в процессе работы файлы данных пользователя, структура которых приводится в приложении 3. Для функционирования программы необходима операционная система MS DOS 3.30 и выше или полностью совместимой с ней. Исходный текст программы написан на языке программирования высокого уровня

Турбо Паскаль версии 7.0 фирмы Borland для DOS и WINDOWS с применением библиотеки Turbo Vision и содержится в файле notebook.pas в форме пригодной к использованию его как текстового документа в среде ДОС, и приведен в приложении 3. Функциональное назначение. Данная программа предназначена для ведения файлов баз данных подобных страницам адресной записной книжки и способна полностью заменить собой ее бумажных предшественников.

Информация из файлов программы применяется только в электронном варианте и не может быть выведена на устройство печати данная функция в программе отсутствует. В процессе работы программа создает файл данных и поэтому пользователю не требуется предварительно создавать его самому. Описание логической структуры. Программа не несет в себе определенного алгоритма в стандартном понимании, а является объектно-ориентированной

программой применены специфические конструкции языка - объекты. В силу сложившихся традиций и особенностей языка Турбо Паскаль данная программа представляет собой ряд процедур, выполняющих определенную роль и взаимодействующих между собой в рамках исполнительного модуля. Каждая функция выполняет определенное действие исходя из параметров полученных от других функций или от пользователя.

Основной текст программы можно разделить на две части первая - описание переменных и объектов вторая - реализация процедур. Ниже в таблице 3 приводятся процедуры, применяемые в программе, а в таблице 4 - объекты. Таблица 3 tdlgwin.handleEventTnotebook.FileOpenотк рывает файл данныхTnotebook.FileSaveсохраняет файл данныхTnotebook.ChangeDirизменяет текущий каталогTnotebook.DOSCallвременный выход в ДОСTinterior.ReadFileчитает содержимое файла данных в массив

LINESTinterior.Drawвыводит данные в окно просмотраControlполучает команду из основного диалогового окнаTinterior.HandleEventосновная процедура обработки событий и операций с файлом данныхDEleteItemудаляет указанный в Location элемент данныхAddItemдобавляет новый или редактирует имеющийся элемент данныхSearchItemосуществляет поиск необходимого элемента данных по контексту первые символыTnotebook.Workсоздает окно, в которое в последствии будут выводиться данныеTnotebook.

HandleEventобработчик событий программы связанных с различными объектамиTnootebook.InitMenuBarсоздание верхнего Bar-менюTnotebook.InitStatusLineформиров ание строки статуса таблица 4. Tworkwinобъект-потомок от Twindow - стандартного объекта ТурбоВижн создает рамочное окно с полосами прокрутки для управления встроенным в него объектом TinteriorTdlgwinобъект-потомок от Tdialog - стандартного объекта

ТурбоВижн создает диалоговое окно для выбора режима работыTinteriorобъект-потомок от Tscroller - стандартного объекта ТурбоВижн обуславливает внутреннюю часть рамочного окна Tworkwin, создает прокручиваемое окно с записями из файла данных и с помощью диалогового окна Tdlgwin управляет работой с этими записямиTnotebookоъект-потомок от Taplication стандартного объекта ТурбоВижн обеспечивающего внешний вид прикладной программы.

Используемые технические средства. Для правильного функционирования программы необходимо применять следующие компоненты аппаратного комплекса персональный компьютер класса Ix86 с 640Кб ОЗУ, оснащенный одним накопителем на гибком магнитном диске 720Кб или накопителем типа винчестер, а так же видеоадаптером EGA или VGA предпочтительно.Компьютер рекомендуется оснастить видеомонитором, соответствующим видеоадаптеру.

Вызов и загрузка. Для вызова программы необходимо в командой строке ДОС набрать полное имя основного модуля. Никаких параметров в командной строке не требуется. Входные и выходные данные. Входными и выходными данными для программы является файл файлы данных пользователя и выводит информацию, содержащуюся в них на экран дисплея. Приложения приложение 1 include stdio.h include math.h описание переменных, используемых в программе

double pi3.14,a1.8,b-2.0,c0.1,d1.6,e0.9,eps0.01 int i0 double x,y описания функций решения методами Ньютона и простых итераций extern double newtondouble xn,double yn extern double iteracdouble xn,double yn int mainvoid запрос начального приближения у пользователя scanff,x scanff,y вывод результатов через вызовы функций на экран printf Окончательное решение по методу Ньютонаn printf gtgn, newtonx,y printf Окончательное решение по методу итерацийn printf gtgn, iteracx,

y return 0 функция решения системы уравнений методом ньютона double newtondouble xn,double yn double f1,f2,xxn,yyn double df1dx,df1dy,df2dx,df2dy,dxy do i описания исходных ураванений f1sinxnabync f2cosyndexn производные df1dxcosxna df1dyb df2dxe df2dy-sinynd якобиан системы dxydf1dxdf2dy-df1dydf2dx очередное значение х xxnxn-f1df2dy-f2df1dydxy очередное значение y yynynf1df2dx-f2df1dxdxy проверка точности решения и окончания счета if fabsxxn-xn epsfabsyyn-yn eps goto b изменение текущих значений переменных х и у

xnxxn ynyyn while 1 b return xxn,yyn решение системы уравнений методом простых итераций double iteracdouble xi, double yi double xxi,yyi do i явное выражение переменной x xxi-cosyide явное выражение переменной y yyi-sinxiacb проверка точности решения и ококнчания счета if fabsxxi-xi epsfabsyyi-yi eps goto c изменение текущих значений xixxiyiyyi while1 c return xxi,yyi Приложение 2 include graphics.h include stdlib.h include stdio.h include conio.h include time.h include

math.h define NFONTS 11 char FontsNFONTS DefaultFont, TriplexFont, SmallFont, SansSerifFont, GothicFont, ScriptFont, SimplexFont, TriplexScriptFont, ComplexFont, EuropeanFont, BoldFont int xmax,ymax,i0,MaxColors прототипы функций void demolinevoid void democirclevoid void demopixvoid void demopieslicevoid void demotext void void

MainWindowchar header void DrawBordervoid void StatusLinechar msg void demoarcsvoid void demobarsvoid void demo3dbarsvoid void diagramvoid void endpagevoid void endpage1void void endpage2void начало главной функции int mainvoid автоматическое определение типа видеоадаптера int gdriver DETECT, gmode, errorcode char msg80 инициализация графических и локальных переменных initgraphgdriver, gmode, xmaxgetmaxx ymaxgetmaxy проверка результатов инициализации errorcode graphresult if errorcode

grOk printfGraphics error sn, grapherrormsgerrorcode printfPress any key to halt getch exit1 вызовы функций demoline demopix demobars demo3dbars demopieslice diagram democircle demoarcs demotext endpage endpage1 endpage2 cleardevice closegraph return 0 функция демонстрации линий void demolinevoid формирование графического окна и статусной строки MainWindow Line demonstration StatusLine Press any key to continue процесс рисования линий do setcolor random

MaxColors - random15 random15 lineto xmax,i lineto xmax,ymax lineto i,ymax lineto i1,i1 ii1xmaxxmax-1ymaxymax-1 while xmaxxmax2 getch cleardevice clearviewport функция демонстрации окружностей void democirclevoid xmaxgetmaxx ymaxgetmaxy MainWindow Circle demonstration StatusLine Press any key to continue randomize movetorandomxmax,randomymax do i установка случайного цвета setcolor random MaxColors - random15 random15 circlerandomgetmaxx,randomgetmaxy,random 100 while

kbhit повторение пока не нажата клавиша getch clearviewport i1 do i setcolor random MaxColors - random15 random15 circlegetmaxx2,getmaxy2,i if i400 setcolor0 do i circlegetmaxx2,getmaxy2,i whilei0 while kbhit повторение пока не нажата клавиша getch cleardevice функция демонстрации рисования точек в произвольном порядке void demopixvoid MainWindow Pix demonstration StatusLine Press any key to continue do i setcolor random

MaxColors - random15 random15 putpixelrandomgetmaxx,randomgetmaxy,rand om15 while kbhit повторение пока не нажата клавиша xmaxgetmaxx ymaxgetmaxy getch cleardevice функция демонстрации рисования секторов void demopieslicevoid MainWindow Pie Chart Demonstration StatusLine Press any key to continue do i setcolorrandom MaxColors - random15 random15 setfillstylerandom12, getmaxcolor setcolorrandom

MaxColors - random15 random15 pieslicerandomgetmaxx,randomgetmaxy, random360,random360,random150 ifi 1000 clearviewporti0 while kbhit повторение пока не нажата клавиша getch clearviewport круговая диаграмма void diagramvoid int sektors 20,10,35,15,20 char percent20,10,35,15,20 int secsize,k0,i,r150 MainWindow Pie Chart Demonstration StatusLine Press any key to continue settextjustifyCENTERTEXT,CENTERTEXT settextstyle5,0,2установка атрибутов текста outtextxy getmaxx2,25,This is the pie chart diagramm

процесс рисования диаграммы по данным из массива for i0i 5i secsize 360 sektorsi100 setfillstylei,i pieslicegetmaxx2,getmaxy2,k,ksecsize,r k ksecsize подписи процентов outtextxy getmaxx2r30,getmaxy2-70,percent0 outtextxy getmaxx2,getmaxy2-r-30,percent1 outtextxy getmaxx2-r-30,getmaxy2,percent2 outtextxy getmaxx2,getmaxy2r30,percent3 outtextxy getmaxx2r20,getmaxy250,percent4 getch settextstyle0,0,0 clearviewport функция демонстрации текста в графическом окне void demotextvoid int midx,midy,i

MainWindow Demonstration text in the graphics screen StatusLine Press any key to continue settextjustifyCENTERTEXT,CENTERTEXT midxgetmaxx2 midygetmaxy2 outtextxy midx,midy-40,This programm will demonstrate to you all graphics outtextxy midx,midy40,functions of the C languagegetchclearviewport for i0i 11i settextstylei,0,0 outtextxymidx,midy-40,This text is write by outtextxymidx,midy40,Fontsi getchclearviewport settextstyle0,1,1

вывод вертикального текста outtextxymidx,midy,This programm created by Grinjoff Mark settextstyle0,0,0возвращениеи исходного начертания текста getch clearviewport функция демонстрации рисования дуг и многоугольников void demoarcsvoid int poly10 MainWindow Arcs and polygons demonstration StatusLine Press any key to continue xmaxgetmaxx ymaxgetmaxy i0 рисование дуг с произвольным расположением и цветом

do i setcolorrandom MaxColors - random15 random15 arcrandomxmax,randomymax,random358,rando m358,random100 ifi 10000 clearviewporti0 while kbhit повторение пока не нажата клавиша getch clearviewport i0 рисование многоугольников с произвольным цветом do i poly0 randomirandom201-вершина poly1 randomrandomymaxi2 poly2 xmax-i20 2-я poly3 i20 poly4 xmax-i50 3-я poly5 ymax-i20 poly6 ixmax2 4-я poly7 iymax2 drawpoly автоматически не закрывает многоугольник поэтому необходимо это сделать самому poly8 poly0 poly9 poly1 рисует многоугольники,

изменяя координаты вершин setcolorrandom MaxColors - random15 random15 drawpoly5, poly ifi 1000 clearviewporti0 while kbhit повторение пока не нажата клавиша getch clearviewport функция демонстрации закрашеных многоугольников и цветов void demobarsvoid MainWindow Bars and colors demonstration StatusLine Press any key to continue int kxb15,kyb15 double stx,sty,x,y stxfloorgetmaxxkxb styfloorgetmaxykyb do forx3x getmaxxxstx fory3y getmaxyysty setcolorrandom

MaxColors - random15 random15 setfillstyleSOLIDFILL,randomgetmaxcolor barx3,y3,xstx-3,ysty-3 while kbhit повторение пока не нажата клавиша getch clearviewport функция демонстрации трехмерных прямоугольников void demo3dbarsvoid int i MainWindow 3D Bars demonstration StatusLine Press any key to continue do i setcolorrandom MaxColors - random15 random15 setfillstylerandom5,randomgetmaxcolor bar3d random getmaxx , random getmaxy

, random getmaxx , random getmaxy ,10,1 forfloat j0j 50000jэмулятор задержки ifi 100 clearviewporti0 while kbhit повторение пока не нажата клавиша getch clearviewport функция создания завершающей страницы void endpagevoid MainWindow The cycle StatusLine Press any key to continue int i,j,rad50 do for i0i 359i setcolorrandom MaxColors - random15 random15 pieslice60,60,i,i1,rad pieslice580,60,i,i1,rad pieslice60,390,i,i1,rad pieslice580,390,i,i1,rad for i0i getmaxxi setcolorrandom

MaxColors - random15 random15 linegetmaxx2,10,i,getmaxy2 linegetmaxx2,440,i,getmaxy2 setcolor0 for i0i getmaxxi linegetmaxx2,10,i,getmaxy2 linegetmaxx2,440,i,getmaxy2 while kbhit повторение пока не нажата клавиша getch clearviewport функция калейдоскопа void endpage1void MainWindow The simple kaleidoscope StatusLine Press any key for exit to DOS int koord14,koord24,koord34 получение координат исходной линии koord10randomgetmaxx210 koord11randomgetmaxy210

koord12randomgetmaxx210 koord13randomgetmaxy210 получение координат конечной линии koord20randomgetmaxx210 koord21randomgetmaxy210 koord22randomgetmaxx210 koord23randomgetmaxy210 прорисовка do for float t0t 1tt0.01 количество линий for int l0l 4l нахождение координат движения линии koord3lfloorkoord2l1-tkoord1lt setcolorrandom MaxColors - random15 random15 linekoord30,koord31,koord32,koord33 первая четверть linegetmaxx-koord30,koord31,getmaxx-koor d32,koord33вторая четверть linekoord30,getmaxy-koord31,koord32,getm axy-koord33третья четверть

linegetmaxx-koord30,getmaxy-koord31, getmaxx-koord32,getmaxy-koord33четвертая четверть for int p0p 4pпереприсвоение координат koord2pkoord1p получение новых координат первой линии koord10randomgetmaxx2 koord11randomgetmaxy2 koord12randomgetmaxx2 koord13randomgetmaxy2 while kbhit повторение пока не нажата клавиша getch clearviewport последняя страница void endpage2void MainWindow The end StatusLine Press any key for exit to DOS do settextstyleBOLDFONT,0,2 outtextxygetmaxx2,getmaxy2,The

end while kbhit getch clearviewport функция создания графического окна void MainWindow char header int height xmaxgetmaxx ymaxgetmaxy cleardeviceочистка экрана setcolor MaxColors - 2 установка текущего цвета белым setviewport 0, 0, xmax, ymax, 1 открыть окно во весь экран height textheight H установить начальную высоту текста settextjustify CENTERTEXT, TOPTEXT outtextxy xmax2, 2, header setviewport 0, height4, xmax, ymax-height4, 1

DrawBorder setviewport 1, height5, xmax-1, ymax-height5, 1 функция создания строки статуса в нижней части экрана void StatusLine char msg int height xmaxgetmaxx ymaxgetmaxy setviewport 0, 0, xmax, ymax, 1 открыть окно во весь экран setcolor MaxColors - 1 установка текущего цвета черным settextjustify CENTERTEXT, TOPTEXT setlinestyle SOLIDLINE, 0, NORMWIDTH setfillstyle EMPTYFILL, 0 height textheight H установка текущей высоты текста bar 0, ymax-height4, xmax, ymax rectangle 0,

ymax-height4, xmax, ymax outtextxy xmax2, ymax-height2, msg setviewport 1, height5, xmax-1, ymax-height5, 1 функция, образующая границу графического окна void DrawBordervoid struct viewporttype vp setcolor MaxColors - 1 установка текущего цвета белым setlinestyle SOLIDLINE, 0, NORMWIDTH getviewsettings vp rectangle 0, 0, getmaxx, getmaxy приложение 3

Program Notebook программа обслуживает файлы данных записной книжки. Uses App, Objects, Menus, Drivers, Views, StdDlg, DOS, Memory, Dialogs type объект TWorkWin создает рамочное окно с полосами прокрутки для управления встроенным в него объектом TInterrior PWorkWin TWorkWin TWorkWin object TWindow Constructor InitBounds Trect end

Объект TDlgWin создает диалоговое окно для выбора режима работы PDlgWin TDlgWin TDlgWin object TDialog Procedure HandleEvent var Event TEvent Virtual end Следующий объект обуславливает внутреннюю часть рамочного окна TWorkWin. Он создает прокручиваемое окно с записями из архивного файла и с помощью диало- гового окна TDlgWin управляет работой с этими записями PInterior

Tinterior Tinterior object TScroller PS PStringCollection Location Word Constructor Init var Bounds TRect HS, VS PScrollBar Procedure Draw Virtual Procedure ReadFile Destructor Done Virtual Procedure HandleEvent var Event TEvent Virtual end объект-программа ТNotebook поддерживает работу с меню и строкой стстуса

TNotebook object TApplication procedure InitStatusLine virtual procedure InitMenuBar virtual procedure HandleEvent var Event TEvent virtual procedure FileSave procedure ChangeDir procedure DOSCall procedure FileOpen procedure Work end const Команды для обработчиков событий cmChDir 202сменить каталог cmWork 203обработать данные cmDOS 204временно

выйти в дос cmCan 205команда завершения работы cmDelete 206уничтожить текущую запись cmSearch 207искать нужную запись cmEdit 208редактировать запись cmAdd 209добавить запись ножество временно недоступных команд WinCom1 TCommandSet cmSave, cmWork WinCom2 TCommandSet cmOpen LName25 длина поля NAME LPhone11 PHONE LAddr40 ADDR LLIneLNameLPhoneLAddr длина строки type DataType record тип данных в файле

Name string LName имя Phone string LPhoneтелефон Addr string LAddr адрес end var DataFile file of DataType файловая переменная OpFileF Boolean флаг открытого файла реализация объекта TWorkWin constructor TWorkWin.InitBounds Trect создание окна данных var HS, VS PScrollBar полосы-указатели Interior PInterior указатель на управляемое текстовое окно begin

TWindow.InitBounds 0 создание нового окна с рамкой GetClipRectBounds получение в BOUNDS кординаты минимальной перерисо- вываемой части окна Bounds.Grow-1 1 установка размеров окна с текстом Включение стандартных по размеру и положению полос-уаказателей VS StandardScrollBarsbVerticalsbHandleKeyBo ard HS StandardScrollBarsbHorizontalsbHandleKey Board создание текстового окна

Interior NewPinterior,InitBounds, HS, VS InsertInterior включение его в основное окно end TWrkWin.Init procedure TDlgWin.HandleEvent begin inherited HandleEvent Event if Event.WhatevCommand then EndModalEvent.Command end procedure TNotebook.FileOpen открывает файл данных var PF PFileDialog диалоговое окно выбора файла Control

Word s PathStr begin создание экземпляра динамического объекта NewPF, Init.dat,Выберите нужный файл,Имя файла,fdOpenButton,0 с помощью следующего оператора окно выводится на экран и результат работы пользователя с ним помещается в переменную Control Control DeskTop.ExecViewPF анализ результата запроса case Control of StdDlg.cmFileOpen,cmOk begin польов. указал имя файла

PF.GetFileNames s содержит имя файла AssignDataFile,s I- ResetDataFile if IOResult 0 then RewriteDatafile OpFileF IOResult0 I if OpFileF then begin DisableCommandsWinCom2 EnableCommandsWinCom1 Work переход к работе end end end caseControl DisposePF, Done уничтожение экземпляра end FileOpen procedure

TNotebook.FileSave закрывает файл данных begin CloseDataFile OpFileF False EnableCommandsWinCom2 разрешение открыть файл DisableCommandsWinCom1 запрещение работы и сохранение end TNotebook.FileSave procedure TNotebook.ChangeDir изменяет текущий каталог var PD PChDirDialog диалоговое окно смены каталога диска

Control Word begin NewPD, InitcdNormal,0 создание диалогового окна Control DeskTop.ExecViewPD использование окна ChDirPD.DirInput.Data установка нового каталога DisposePD, Done удаление окна из кучи end TNotebook.ChangeDir procedure TNotebook.DOSCall временный выход в дос const txtДля возврата введите

EXIT в ответ на приглашение ДОС begin DoneEvents закрыть обработчик событий DoneVideo закрыть монитор экрана DoneMemory закрыть монитор памяти SetMemTopHeapPtr освободить кучу writelnВведите EXIT для возврата выдать сообщение о выходе SwapVectors установить стандартные векторы передать упр. ком. процессору дос ExecGetEnvCOMSPEC, возврат из дос SwapVectors восстановить векторы

SetMemTopHeapEnd восстановить кучу InitMemory открыть монитор памяти InitVideo открыть монитор экрана InitEvents открыть обработчик событий InitSysError открыть обработчик ошибок Redraw восстановить вид экрана end DOSCall constructor TInterior.Init создает окно скроллера begin TScroller.InitBounds, HS, VS ReadFile GrowMode gfGrowHiXgfGrowHiY

SetLimitLLine, PS.Count end destructor TInterior.Done begin DisposePS,Done inherited Done end procedure TInterior.ReadFile читает содержимое файла данных в массив LINES var k Integer s String Data DataType f text begin PS NewPStringCollection, Init100,10 seekDataFile,0 while not EOFDataFile or

LowMemory do begin ReadDataFile, data with data do begin s Name while Lengths Lname do s s s sPhone while Lengths LNameLPhone do s s s sAddr end if s then PS.InsertNewStrS end Location 0 end ReadFile procedure Tinterior.Draw выводит данные в окно просмотра var n, текущая строка экрана k integer текущая строка массива B TDrawBuffer

Color Byte p PString begin if Delta.Y Location then Location Delta.Y if Location Delta.YpredSize.Y then Location Delta.YpredSize.Y for n 0 to predSize.Y do Size.Y- кол-во строк окна begin k Delta.Yn if kLocation then Color GetColor2 else Color GetColor1 MoveCharB, ,Color,

Size.X if k predPS.Count then begin p PS.Atk MoveStrB, Copyp,Delta.X1,Size.X,Color end writeline0,N,Size.X,1,B end end TInterior.Draw Function Control Word получает команду из основного диал. окна const x1 L12 DX13 But array 0 4 of string 13 надписи на кнопках 1 Выход ,2 Убрать ,3 Искать ,4 Изменить ,5 Добавить Txt array 0 3 of string 52 справочный текст

Убрать - удалить запись, выделенную цветом, Искать - искать запись, начинающуюся с нужных букв, Изменить - изменить поле поля выделенной записи, Добавить - добавить новую запись var R TRect D PDlgWin k Integer begin R.Assign7,6,74,15 DNewPDlgWin,InitR, Выберите продолжение with D do begin for k0 to 3 do вставляем поясняющий текст begin R.Assign1,1k,65,2k InsertNewPStaticTEXT,InitR,3Txtk end for k0 to 4 do вставляем кнопки begin

R.AssignXkDX,6,XkDXL,8 InsertNewPButton, InitR,Butk,cmCank,bfNormal end SelectNextFalse активизируем первую кнопку end ControlDeskTop.ExecViewD выполняем диалог endConrol Procedure TInterior.HandleEvent Procedure DeleteItem удаляет указанный в Location эл-т данных var D Integer PStr PString s String

Data DataType begin PStrPS.AtLocation получаем текущую запись scopyPStr,1,LName seekDataFile,0 D-1 D-номер записи в файле repeat цикл поиска по освпадению поля Name incD readDataFile,Data with Data do while LengthName LName do NameName until Data.Names seekDataFile,predFileSizeDataFile readDataFile,Data читает последнюю запись seekDataFile,D writeDataFile,

Data помещает ее на место удаляемой seekDataFile,predFileSizeDataFile truncateDataFile удаляет последнюю запись with PS do DIndexOfAtLocation PS.AtFreeD удаляет строку из коллекции Draw обновляет окно endDeleteItem procedure AddItemEdit Boolean добавляет новый или редактирует элемент данных const y1 dy2 LLNameLPhoneLAddr var Data DataType R TRect InWin PDialog

BName,BPhone,BAddrPInputLine Control Word OldCount Word s String p PString begin SeekDataFile,FileSizeDataFile добавяет записи в конец файла repeat цикл ввода записей if Edit then готовит заголовок sРедактирование else begin StrFileSizeDataFile1,s while Lengths 3 do s0s sВводится запись Ns end FillCharData,SizeOfData, заполняет поля пробелами

R.Assign15,5,65,16 InWinNewPDialog, InitR, s создает окно with InWin do begin формируем окно R.Assign2,y1,2LName,y2 BNameNewPInputline, InitR,LName InsertBName поле имени R.Assign2,y,2LName,y1 InsertNewPLabel, InitR, Имя,BName R.Assign2,ydy1,2LPhone,ydy2 BPhoneNewPInputLine, InitR,

LPhone InsertBPhone поле телеф. R.Assign2,ydy,2LPhone,ydy1 InsertNewPLabel, InitR, Телефон,BPhone R.Assign2,y2dy1,2LAddr,y2dy2 BAddrNewPInputLIne, InitR,LAddr InsertBAddr поле адреса R.Assign2,y2dy,2LAddr,y2dy1 InsertNewPLabel, InitR, Адрес,BAddr вставляем две комаедные кнопки R.Assign2,y3dy1,12,y3dy3

InsertNewPButton, InitR, Ввести,cmOK,bfDefault R.Assign220,y3dy1,1220,y3dy3 InsertNewPButton, InitR, Выход,cmCancel,bfNormal SelectNextFalse Активизируем 1-ую кнопку end конец формирования окна if Edit then with Data do begin готовим начальный текст pPS.AtLocationчитает данные из записи sp Namecopys,1,LName

Phonecopys,succLName,LPhone Addrcopys,succLNameLPhone,LAddr InWin.SetDataData вставляет текст в поля ввода end ControlDeskTop.ExecViewInWin выполняем диалог if ControlcmOK then with Data do begin if Edit then DeleteItem удаляет старую запись NameBName.Data PhoneBPhone.Data AddrBAddr.Data s0chrL

FillChars1,L, moveName1,s1,LengthName movePhone1,ssuccLName,LengthPhone moveAddr1,ssuccLNameLPhone,LengthAddr OldCountPS.Count прежнее кол-во записей PS.InsertNewStrs добавляет в коллекцию проверяем добавление if OldCount PS.Count then writeDataFile,Data да - добавляем в файл end until Edit or ControlcmCancel Draw end AddItem procedure

SearchItem ищет нужный элемент function UpStrings String string преобразует строку в верхний регистр var k Integer begin for k1 to Lengths do if sk in a z then skchrordAordsk-orda else if sk in а п then skchrordAordsk-orda else if sk in р я then skchrordPordsk-ordp UpStrings end UpString var InWin PDialog R TRect s String p PInputLine k Word begin SearchItem R.Assign15,8,65,16

InWinNewPDialog, InitR,Поиск записи with InWin do begin R.Assign2,2,47,3 pNewPInputLine,InitR,50 Insertp R.Assign1,1,40,2 InsertNewPLabel, InitR, Введите образец поиска,p R.Assign10,5,20,7 InsertNewPButton,InitR,Ввести,cmOK,bfDef ault R.Assign25,5,35,7 InsertNewPButton,InitR,Выход,cmCancel,bf

Normal SelectNextFalse end if DeskTop.ExecViewInWincmCancel then exit sp.Data Location0 while UpStrings UpStringPStringPS.AtLocation and Location predPS.Count do incLocation if Location Delta.YpredSize.Y then ScrollToDelta.X,Location else Draw end SearchItem var R TPoint label Cls begin TScroller.HandleEventEvent case

Event.What of evCommand case Event.Command of cmClose begin Cls case Control of получить команду из основного диалогового окна cmCan, cmCancel EndModalcmCancel cmEdit AddItemTrue cmDelete DeleteItem cmSearch SearchItem cmAdd AddItemFalse end end cmZoom exit end evMouseDown реакция на щелчок мыши begin MakeLocalMouseWhere, R получение в R локальные координаты мыши

LocationDelta.YR.Y Draw end evKeyDown реакция на клавиши - case Event.KeyCode of kbEsc goto Cls kbGrayMinus if Location Delta.Y then begin decLocation Draw end kbGrayPlus if Location Delta.YpredSize.Y then begin inc Location Draw end end end end TInterior.HandleEvent procedure

Tnotebook.Work работа с данными var R TRect PW PWorkWin Control Word begin R.Assign0,0,80,23 PWNewPWorkWin, InitR ControlDeskTop.ExecViewPW DisposePW,Done end procedure TNotebook.HandleEventvar Event TEvent обработчик событий программы begin TNotebook.HandleEvent TApplication.HandleEventEvent обработка станд. команд cmQuit и cmMenu if

Event.WhatevCommand then case Event.Command of обработка новых команд cmOpen FileOpen открыть файл cmSave FileSave закрыть файл cmChangeDir ChangeDir сменить диск cmDOSShell DOSCall временный выход в дос cmWork Work Обработать данные else exit не обрабатывать другие команды end ClearEventEvent очистить событие после обработки end

TNotebook.HandleEvent procedure TNotebook.InitMenuBar соэдание верхнего меню var R TRect begin GetExtentR R.B.YsuccR.A.Y R - координаты строки меню MenuBarNewPMenuBar, InitR, NewMenu создание меню первый эл-т нового меню представляет собой подменю. Создаем его NewSubMenuF Файл, hcNoContext, описываем элемент главного меню NewMenu создание подменю NewItem первый эл-т Открыть,

F3,kbF3,cmOpen,hcNoContext, NewItem второй эл-т Закрыть,F2,kbF2,cmSave,hcNoContext, NewItem третий эл-т Сменить диск 0,cmChangeDir,hcNoContext, NewLine строка-разделитель NewItem Вызов ДОС 0,cmDOSShell,hcNoContext, NewItem Конец работы,Alt-X,kbAltX,cmQuit,hcNoContext, NIL нет других элементов подменю , создаем второй элемент главного меню

NewItemW Работа kbF4,cmWork,hcNoContext, NIL нет др. эл-тов гл. меню end TNotebook.InitMenuBar procedure TNotebook.InitStatusLine формирует строку статуса var RTRect границы строки статуса begin GetExtentR получаем в R координаты всего экрана R.A.YpredR.B.Y StatusLineNewPStatusLine, InitR, создает строку статуса NewStatusDef0, FFFF, устанавливает макс. диап. кон- текстной справочной

службы NewStatusKeyAlt-X Выход,kbAltX,cmQuit, NewStatusKeyF2 Закрыть,kbF2,cmSave, NewStatusKeyF3 Открыть,kbF3,cmOpen, NewStatusKeyF4 Работа,kbF4,cmWork, NewStatusKeyF10 Меню,kbF10,cmMenu, NIL, нет других клавиш NIL нет др. определений DisableCommandsWinCom1 запрещает недоступные команды end

TNotebook.InitStatusLine var Nbook TNotebook begin Nbook.Init Nbook.Run Nbook.Done end.



Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.