Курсовая: Применение языков программирования высокого уровня для реализации численных методов - текст курсовой. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Курсовая

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

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Курсовая работа
Язык курсовой: Русский
Дата добавления:   
 
Скачать
Архив Zip, 54 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникальной курсовой работы

Узнайте стоимость написания уникальной работы

Министерство образования , культуры и здра воохранения Республики Казахстан Алматинский ВУЗ индустрии , эко номики и кибернетики Факультет информатики Кафедра технической кибернетики Пояснительная записка к курсовой работ е по предмету «Языки и технологии программировани я» Тема : «Примен ение языков программирования высокого уровня для реализации численных методов и прикла дных программ» Выполнил студент 2-го курса з.о. Гринев М.В. Принял ст . преп . Каф . ТК Муртазина А.У. Алматы 1998 г. Введение Внедрение ЭВМ во все сферы человеческой деятельности требует от специалис тов разного профиля овладения навыками исполь зования вычислительной техники . Повышается уровен ь подготовки студентов вузов , кото рые уже с первых курсов приобщаются к использ ованию ЭВМ и простейших численных методов , не говоря уже о том , при что выполн ении курсовых и дипломных проектов применение вычислительной техники становится нормой в подавляющем большинстве вузов. Вычислительна я техника используется с ейчас не только в инженерных расчетах и экономических науках , но и таких традиционн о нематематических специальностях , как медицина , лингвистика , психология . В связи с этим можно констатировать , что применение ЭВМ прио брело массовый характер . Возникла мног очисленная категория специалистов - пользователей ЭВМ , которым необходимы знания по применению ЭВМ в своей отрасли - навыки работы с уже имеющимся программным обеспечением , а так же создания своего собственного ПО , приспособленного д ля решения конкретно й задачи . И здесь на помощь пользователю приходят описания языков программирования вы сокого уровня (далее ЯВУ ) и численные мето ды (далее ЧМ ). ЧМ разрабатывают и исследуют , как прав ило , высококвалифицированные специалисты-математики . Д ля большинства пользователей главной задаче й является понимание основных идей и мето дов , особенностей и областей применения. Однако , пользователи хотят работать с ЭВМ не только как с высокоинтеллектуальным калькулятором , а еще и как с помощником в повседневн ой работе , хранилищем инф ормации с быстрым и упорядоченным доступом , а так же с источником и обработчиком графической информации . Все эти функции сов ременной ЭВМ я предполагаю продемонстрировать в настоящей курсовой работе. В первой части работы представле н а программа по нахождению корней системы из двух нелинейных уравнений методами Ньютона и простых итераций. Во второй части моей работы представл ена программа , демонстрирующая пользователю всю мощь и многообразие графических возможностей современных ПК на примере применения графических функций языка С ++ с использованием VGA -графики . В третьей части работы представлена п рограмма «Электронной записной книжки» , которая имеет и практическое значение для пользова телей маломощных персональных компьютеров и П К б локнотов с малым дисковым ресурсом для которых нерентабельна эксплуатация ПО типа Lotus Organizer и подобных ПО с мощным графическим интерфейсом. К моему сожалению из-за отсутствия нео бходимого справочного материала мне не удалос ь продемонстрировать в трет ьей части SUPER VGA -графику , но это дело недалекого будущего . Первая и вторая части работы выполнены с применение язык а С ++ фирмы Borland версии 3.1 для DOS и WINDOWS , а третья часть выполнена на ЯВУ «Турбо Паскаль» версии 7.0 для DOS и WINDOWS фирмы Borl and с применением средств TURBO VISION . Теоретическая часть. Этапы решения задачи на ЭВМ . Наиболее эффективное применение ВТ нашла при проведении трудоемких расчетов в научных исследованиях и инженерных расче тах . При решении задачи на ЭВМ основная роль все-таки принадлежит человеку . Машина лишь выполняет его задания по разработан ной программе . роль человека и машины легк о уяснить , если процесс решения задачи раз бить на перечисленные ниже этапы. Постановка задачи. Этот этап заключается в содержательной ( физической ) постановке задачи и определ ении конечных решений. Построение математической модели. Модель должна правильно (адеква тно ) описывать основные законы физического пр оцесса . Построение или выбор математической м одели из существующих требует глубоког о понимания проблемы и знания соответствующих разделов математики. Разработка ЧМ. П оскольку ЭВМ может выполнять лишь простейшие операции , она «не понимает» постановки за дачи , даже в математической формулировке . Для ее решения должен быть найден численный метод , позволяющий свести задачу к некоторому вычислительному алгоритму . В каждом конкретном случае необходимо выбрать подходяще е решение из уже разработанных стандартных. Разработка алгоритма. Процесс решения задачи (вычислительный процесс ) записывается в виде последовательно сти элементарных арифметических и логических операций , приводящей к конечному результату и называемой алгоритмом решения задачи. Программирование . Ал горитм решения задачи записывается на понятно м машине языке в виде точно определенной последовательности операций - программы . Про цесс обычно производится с помощью некоторого промежуточного языка , а ее трансляция осу ществляется самой машиной и ее системой. Отладка программы . Составленная программа содержит разного р ода ошибки , неточности , описки . Отладка в ключает контроль программы , диагностику (поиск и определение содержания ) ошибок , и их у странение . Программа испытывается на решении контрольных (тестовых ) задач для получения уве ренности в достоверности результатов. Проведение расчетов. На этом этапе готовятся исходные д анные для расчетов и проводится расчет по отлаженной программе . при этом для уменьш ения ручного труда по обработке результатов можно широко использовать удобные формы выдачи результатов в виде текстовой и гра фической инф ормации , в понятном для че ловека виде. Анализ результатов . Результаты расчетов тщательно анализируются , оформляется научно-техническая документация. Математические мо дели. Основное требование , предъявляемое к математической модели , - адекватность рассмат риваемому процессу , явлению , т.е . она до лжна достаточно точно ( в рамках допустимой погрешности ) отражать характерные черты явлени я . Вместе с тем она должна обладать ср авнительной простотой и доступностью исследовани я. Адекватность и сравнительная просто та модели не исчер пывают предъявляемых к ней требований . Необхо димо обратить внимание на правильность оценки области применимости математической модели . Например , модель свободно падающего тела , в которой пренебрегли сопротивлением воздуха , вес ьма эффекти в на для твердых тел с большой и средней плотностью и формо й поверхности , близкой к сферической . Вместе с тем , в ряде других случаев для ре шения задачи уже не достаточно известных из курса физики простейших формул . Здесь н еобходимы более сложные математичес к и е модели , учитывающие сопротивление воздуха и прочие факторы . Отметим , что успех решени я задачи в значительной степени определяется выбором математической модели ; здесь в пе рвую очередь нужны глубокие знания той об ласти , к которой принадлежит поставленна я задача . Кроме того , необходимы знания соответствующих разделов математики и возможно стей ЭВМ. Численные методы . С помощью математического моделирования решение научно-технической задачи сводится к решению математической задачи , являющейся ее моделью . Для решения математических задач используются основные группы методов : графическ ие , аналитические , численные. Графические методы позволяют в ряде случаев оценить порядок искомой величины . Осн овная идея этих методов состоит в том , что решение находится пу тем геометриче ских построений . Например , для нахождения корн ей уравнения f ( x )=0 стр оится график функции y = f ( x ), точк и пересечения которого с осью абсцисс и будут искомыми корнями. При использовании аналитических методов решение задачи удается выразить с помощ ью формул . В частности , если математическая задача состоит в решении простейших алгебр аических или трансцендентных уравнений , дифференц иальных уравнений и т.п ., то использование известных из курса математики приемов сразу приводит к цели . К сожалени ю , на практике это слишком редкие случаи. Основным инструментом для решения сложн ых математических задач в настоящее время являются численные методы , позволяющие свести решение задачи к выполнению конечного чи сла арифметических действий над числами ; при эт ом результаты получаются в виде числовых значений . Многие ЧМ разработаны да вно , однако при вычислениях вручную они мо гли использоваться лишь для решения не сл ишком трудоемких задач. С появлением ЭВМ начался период бурн ого развития ЧМ и их внедрения в прак тику . Только вычислительной машине под силу выполнить за сравнительно короткое вр емя объем вычислений в миллионы , миллиарды и более операций , необходимых для решения многих задач . При счете вручную человеку не хватило бы жизни для решения одной такой зада ч и . ЧМ наряду с возможностью получения результата за приемлемо е время должен обладать и еще одним в ажным качеством - не вносить в вычислительный процесс значительных погрешностей. Численные методы , используемые в данной работе. При написании программы р ешения системы из двух нелинейных уравнений мною использовались два известных и широко прим еняемых численных метода . Это метод Ньютона и метод простых итераций. Метод Ньютона. Э тот метод обладает быстрой сходимостью и сравнительно хорошей точностью вычисл ений . В случае одного уравнения F ( x )=0 алгоритм метода был легко полу чен путем записи уравнения касательной к кривой y = F ( x ). В основе мет ода ньютона для системы уравнений лежит и спользование разложения функций F i ( x 1 , x 2 ,... x n ) в ряд Тейлора , причем члены , содержащие вторые (и более высоких пор ядков ) производные , отбрасываются. Пусть приближенные значения неизвестных системы уравнений F 1 (x 1 ,x 2 ,...x n )=0, F 2 (x 1 ,x 2 ,...x n )=0, ................ (1) F n ( x 1 , x 2 ,... x n )=0, (например , полученные на преды дущей итерации ) равны соответственно a 1 , a 2 ,... a n . Задача состоит в нахождении приращений (поправок ) к этим значениям я x 1 , яя x 2 ,...., яя x n , благодаря котор ым решение системы (1) запишется в виде : x i =a i + яя x 1, x 2 =a 2 + яя x 2 ,...,x n ,=a n + яя x n . (2) Проведем разлож ение левых частей уравнений (1) в ряд Тейлора , ограничиваясь лиш ь линейными членами относительно приращений : F 1 (x 1 ,x 2 ,...x n ) яя F 1 (a 1 ,...a n )+ F 2 (x 1 ,x 2 ,...x n ) яя F 2 (a 1 ,...a n )+ .............................................. F n (x 1 ,x 2 ,...x n ) яя F n (a 1 ,...a n )+ . Поскольку в соответствии с (1) левые части этих выражений должны обращатьс я в нуль , то приравняем нулю и правые части . Получим следующую систему линейных алгебраических уравнений относительно приращений : =- F 1 =- F 2 (2) ............................ =- F n Значения F 1 , F 2 ,..., F n и их произв одные вычисляются при x 1 = a 1 , x 2 = a 2 ,... x n = a n . Определителем системы (2) является якобиан : J = Для существования единственного решения системы (2) он должен быть отличным от нуля на каждой ите рации. Таким образом , итерационный процесс реше ния системы уравнений (1) методом Ньютона состои т в определении приращений я x 1, яя x 2,... яя x n , к значениям неизвестных на каждой итерации . Счет прекращается , если все приращения стан овятся малыми по абсолютной величине : max | яя x i |< яя . В методе i Ньютона также важен выбор начального приближения для обеспечения хорошей сходимости . Сходимость ухудшается с увеличением числа уравнений системы. В качестве примера рассмотрим использов ание метода Ньютона для решения системы двух уравнений F 1 ( x , y )=0, (3) F 2 ( x , y )=0. Пусть приближенные значения неизвестных р авны a , b . Предположим , что якобиан системы (3) при x = a ; y = b отличается от нуля , т.е .: J = я яя Тогда следующие приближения неизвестных м ожно аписать в виде x=a- (F 1 Величины , стоящие в правой ча сти , вычисляются при x = a , y = b . При программировании данного метода в качеств е исходных данных задаются нача льные приближения неизвестных a , b , погрешности я . Если итерации сойдутся , то выводятся значения x , y ; в противном случае происходит вывод x , y по мере работ ы программы до прерывания ее пользователем. Метод простой итерации. С истему уравнений (1) представим в виде x 1 =f 1 (x 1 ...x n ), x 2 =f 2 (x 1 ...x n ), (4) ............. x n = f n ( x 1 ... x n ). Алгоритм решения этой системы методом простой итерации напоминает метод Гаусса - З ейделя , используемый для решения систем линей ных уравн ений. Пусть в результате предыдущей итерации получены значения неизвестных x 1 = a 1 , x 2 = a 2 ,..., x n = a n . Тогда выражения для неизвестных на следующей итерации имеют вид x 1 = f 1 ( a 1 , a 2 ,..., a n ), x 2 =f 2 (x 1 ,a 2 ,...,a n ), .................. x i =f i (x i ,...,x i- 1 ,a i ,...,a n ), .................. x n = f n ( x 1 ,..., x n -1 , a n ). Итерационный процесс продолжается до тех пор , пока изменения всех неизвестных в двух последовательных итерациях не станут малыми , т.е . абсолютные величины их разностей не станут меньшими заданн ого малого числа. При использовании данного метода успех во многом определяется удачным выбором н ачальных приближений неизвестных : они должны быть достаточно близкими к истинному решению . В противном случае итерационный процесс может не сойтись. Часть первая. Программа реше ния системы нелинейных уравнений методами Нью тона и простых итераций. Общие сведения. Данная программа разработана к ак учебная и в силу этого не имеет кодового обозначения предусмотренного ГОСТом 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 рез ультаты расчета в в иде пары чисел , которые представляют собой корни системы уравнений , выводимые на станд артное устройство вывода для дальнейшего анал иза пользователем. Используемые технические средства. Для функционирования программы пригодна минимальная конфигурация ЭВМ на основе процессорной серии Ix 86 фирмы Интел с 640 Кб оперативной памяти и накопителем на гибком магнитном диске . Для вывода информации пригоден графически й адаптер CGA и однотипный видеомонитор. Вызов и загрузка программы осуществляетс я как с гибкого диска так и с накопителя типа «винчестер» . При любом вызове в командной строке ДОС следует ввести полное имя и сполняемого файла с указанием пути (если т аковой не описан в переменной PATH файла AUTOEXEC . BAT ). Входные и выходные данные. В кач естве входных данных для программы используется пара вещественных чисел представляющих собой приближенные знач ения корней системы уравнений , решаемой прогр аммой . Числа могут быть как с дробной частью так и без неё. В качестве выходных данных программа выда ет на стандартное устройство вывода информации пару чисел , представляющих собой истинное решение системы уравнений в вещ ественной форме . В случае если количество знаков после десятичной точки велико , то в ывод производится в экспоненциальной форме. Часть в торая. Демонстрационная п рограмма графических функций языка С ++. Общие сведения . Данная программа разработана к ак учебная и в силу этого не имеет кодового обозначения предусмотренного ГОСТом 19.402-78 и представляет собой исполняемый файл grafika . exe и файлов поддержки : Таблица 1. Egavga.bgi библиотека взаимодействия с графическим а даптером bold.chr библиотека жирного шрифта euro.chr библиотека шрифта « euro » goth.chr библиотека готического ш рифта lcom.chr библиотека шрифта типа «Комплекс» litt.chr библиотека шрифта типа « small» sans.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 приме нением библиотек шрифтов , перечисленных в таблице .1 mainwindow функция формирования на экране графическо го окна с указанным заголовком * header drawborder функция прорисовки грани ц графического экрана statusline функция формирования статусной строки с выводом сообщения * msg demoarcs функция вывода на экран дуг (частей окружностей ) с произвольным начальным углом , цветом и координатами центра demobars функция вывода на экран определенного числа одинаковых прямоугольников с произвольно изменяющимся цветом demo3dbars функц ия демонстрации вывода на эк ран прямоугольных параллелепипедов произвольного размера , способа заполнения передней грани , и цвета , а так же расположения на экран е diagram функция демонстрации практического применени я функции void pieslice (...) я зыка С ++ дл я построения круговой диагр аммы по заданным параметрам endpage функция демонстрации практического применени я рисования линий и секторов с циклически изменяющимися параметрами endpage1 функция практического применения операторов языка С ++ для построения простого ка лейдоскопа endpage2 завершающая страница , сообщающая пользователю о завершении работы программы Кроме функций mainwindow и statusline все остальн ые функции не имеют входных и выходных параметров . Функция mainwindow в качестве параметра исполь зует символьную строку передаваемую ей вызывающей функцией , также действует и функ ция statusline . Все функции вывода изображения кроме mainwindow , statusline , drawborder вызываются из главной функции по порядку , а вышеперечисленные вызываются из функций вы вода изображения. Каждая функция вывода изображения вызывае т функцию формирования графического окна с необходимым заголовком а также определяет визуальные границы экрана при помощи функции drawborder и по мещает в нижнюю часть экрана статусную ст року при по мощи функции statusline с необходимой надписью . Затем начинается процесс вывода на экран самого изображения , демонстрирующего работу той или иной графической функции языка С ++. После прекращения работы управл ение переходит в главную функцию , откуда вызыва ется следующая функция вывода изобр ажения. В процессе работы программа использует файлы , приведенные в таблице .1 и в случае их отсутствия или недоступности функциониров ание программы будет не полным (библиотеки шрифтов ) или полностью невозможным (библиотек а взаимодействия с видеоадаптером ). Используемые технические средства . Для правильного функционирования программы необходимо применять следующие ком поненты аппаратного комплекса : персональный компь ютер класса Ix 86 с 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.handl eEvent Tnotebook.FileOpen открывает файл данных Tnotebook.FileSave сохраняет файл данных Tnotebook.ChangeDir изменяет текущий каталог Tnotebook.DOSCall временный выход в ДОС Tinterior.ReadFile читает содержимое файла данных в масс ив LINES Tinterior.Draw выводит данные в ок но просмотра Control получает команду из основного диалогового окна Tinterior.HandleEvent основная процедура обработки событий и операций с файлом данных DEleteItem удаляет указанный в Location элемент данных AddItem д обавляет новый или редактирует и меющийся элемент данных SearchItem осуществляет поиск необходимого элемента данных по контексту (первые символы ) Tnotebook.Work создает окно , в которое в последствии будут выводиться данные Tnotebook.HandleEvent обработчи к событий программы свя занных с различными объектами Tnootebook.InitMenuBar создание верхнего Bar- меню Tnotebook.InitStatusLine формирование строки статуса таблица 4. Tworkwin объект-потомок от Twindow - стандартного объекта Ту рбоВижн создает рамочное окно с полосам и прокрутки для управления встроенным в н его объектом Tinterior Tdlgwin объект-потомок от Tdialog - стандартного объекта ТурбоВижн с оздает диалоговое окно для выбора режима работы Tinterior объект-потомок от Tscroller - стандартного объек та Турб оВижн обуславливает внутреннюю часть рамочного окна Tworkwin , с оздает прокручиваемое окно с записями из файла данных и с помощью диалогового окна Tdlgwin управляе т работой с этими записями Tnotebook оъект-потомок от Taplication стандартного о бъекта ТурбоВижн обеспечивающего внешний ви д прикладной программы. Используемые тех нические средства . Для правильного функционирования программы необходимо применять следующие компоненты аппаратного комплекса : персональный компьютер класса Ix 86 с 640Кб ОЗУ , ос н ащенный одним накопителем на гибком магнитном диске 720Кб или накопителем типа «винчесте р» , а так же видеоадаптером EGA или VGA (предпочтительно ).Компьютер рекомендуется оснастить видеомонитором , соответствующим видеоадаптеру. Вызов и загрузка . Для вызова программы необходимо в командой строке ДОС набрать полное имя основного модуля . Никаких параметров в ко мандной строке не требуется. Входные и выходные данные. Входными и выходными данными д ля программы является файл (файлы ) данных пользователя и выводит и нформацию , содерж ащуюся в них на экран дисплея. Приложения приложение 1 #include #include //описание переменных , используемых в про грамме double pi=3.14,a=1.8,b=-2.0,c=0.1,d=1.6,e=0.9,eps=0.000001; int i=0; double x,y; //описания фу нкций решения методами Ньютона и простых итераций extern double newton(double xn,double yn); extern double iterac(double xn,double yn); int main(void) //запрос начального приближения у пользо вателя scanf("%f",&x); scanf("%f",&y); //вывод результатов чер ез вызовы функций на экран printf ("Окончательное решение по методу Ньют она\ n"); printf ("%g\t%g\n", newton(x,y)); printf ("Окончательное решение п о методу итераций\ n"); printf ("%g\t%g\n", iterac(x,y)); return (0); //функция решения системы уравнени й методом ньютона double newton(double xn,double yn) double f1,f2,xxn,yyn; double df1dx,df1dy,df2dx,df2dy,dxy; do i++; //описания исходных ураванений f1=sin(xn+a)+b*yn+c; f2=cos(yn+d)+e*xn; //производные df1dx=cos(xn+a); df1dy=b ; df2dx=e; df2dy=-sin(yn+d); //якобиан системы dxy=df1dx*df2dy-df1dy*df2dx; //очередное значение х xxn=xn-((f1*df2dy-f2*df1dy)/dxy); //очередное значение y yyn=yn+((f1*df2dx-f2*df1dx)/dxy); //проверка точности решения и окончания счета if ( fabs(xxn-xn) #include #include #include #include #include #define NFONTS 11 char *Fonts[NFONTS] = "Default_Font", "Triplex_Font", "Small_Font", "SansSerif_Font", "Gothic_Font", "Script_Font", "Simplex_Font", "TriplexScript_Font", "Complex_Font", "European_Font", "Bold_Font" ; int xmax,ymax,i=0,MaxColors; // // прототипы функций // void demo line(void); void democircle(void); void demopix(void); void demopieslice(void); void demotext (void); void MainWindow(char *header); void DrawBorder(void); void StatusLine(char *msg); void demoarcs(void); void demobars(void); void demo3dbars(void); void diagram(void); void endpage(void); void endpage1(void); void endpage2(void); // //начало главной функции // int main(void) /* автоматическое определение типа видеоадап тера */ int gdriver = DETECT, gmode, errorcode; char msg[80]; // ин ициализация графических и локал ьных переменных initgraph(&gdriver, &gmode, ""); xmax=getmaxx(); ymax=getmaxy(); // проверка результатов инициализации errorcode = graphresult(); if (errorcode != grOk) printf("Graphics error: %s\ n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); // вызовы функций demoline(); demopix(); demobars(); demo3dbars(); demopieslice(); diagram(); democircle(); demoarcs(); demotext(); endpage( ); endpage1(); endpage2(); cleardevice(); closegraph(); return 0; // // функция демонстрации линий // void demoline(void) //формирование графического окна и стату сной строки MainWindow( "Line demonstration" ); StatusLine( "Press any key to continue..." ); // процесс рисования линий do setcolor( random( MaxColors - random(15) ) + random(15) ); lineto (xmax,i); lineto (xmax,ymax); lineto (i,ymax); lineto (i+1,i+1); i=i+1;xmax=xmax-1;ymax=ymax-1 ; while (xmax!=(xmax/2)); getch(); cleardevice(); clearviewport(); // // функция демонстрации окружностей // void democircle(void) //xmax=getmaxx(); //ymax=getmaxy(); MainWindow( "Circle demonstration" ); StatusLine( "Press any key to continue..." ); randomize(); moveto(random(xmax),random(ymax)); do i++; // установка случайного цвета setcolor( random( MaxColors - random(15) ) + random(15) ); circle(random(getmaxx()),random(getmaxy()),random(100)); while( !kbhit() ); // повторение пока не нажата клавиша getch(); clearviewport(); i=1; do i++; setcolor( random( MaxColors - random(15) ) + random(15) ); circle(getmaxx()/2,getmaxy()/2,i); if (i==400) setcolor(0); do i--;circle(getmaxx()/2,getmaxy()/2,i); while(i!=0); while( !kbhit() ); // повторение пока не нажата клавиша getch(); cleardevice(); // //функция демонстрации рисования точек в произвольном //порядке // void demopix(void) MainWindow( "Pix demonstration" ); StatusLine( "Press any key to continue..." ); do i++; setcolor( random( MaxColors - random(15) ) + random(15) ); putpixel(random(getmaxx()),random(getmaxy()),random(15)); while( !kbhit() ); // повторение пока не нажата клавиша xmax=getmaxx(); ymax=getmaxy(); getch(); cleardevice(); // //функц ия демонстрации рисования сек торов // void demopieslice(void) MainWindow( "Pie Chart Demonstration" ); StatusLine( "Press any key to continue..." ); do i++; setcolor(random( MaxColors - random(15) ) + random(15)); setfillstyle(random(12), getmaxcolor()); // setcolor(random( MaxColors - random(15) ) + random(15)); pieslice(random(getmaxx()),random(getmaxy()), random(360),random(360),random(150)); if(i>1000) clearviewport();i=0; while( !kbhit() ); // пов торение пока не нажата клавиша getch(); clearviewport(); // //круговая диаграмма // void diagram(void) int sektors[] = 20,10,35,15,20 ; char *percent[]= "20%","10%","35%","15%","20%" ; int secsize,k=0,i,r=150; MainWindow( "Pie Chart Demonstration" ); StatusLine( "Press any key to continue..." ); settextjustify(CENTER_TEXT,CENTER_TEXT); settextstyle(5,0,2);// установка атрибутов текста outtextxy( getmaxx()/2,25,"This is the pie chart diagramm"); //процесс рисования диаграммы п о данным из массива for( i=0;i<5;i++) secsize = (360 * sektors[i])/100; setfillstyle(i,i); pieslice((getmaxx()/2),(getmaxy()/2),k,k+secsize,r); k = k+secsize; // подписи процентов outtextxy( getmaxx()/2+r+30,getmaxy()/2-70,percent[0]); outtextxy( getmaxx()/2,getmaxy()/2-r-30,percent[1]); outtextxy( getmaxx()/2-r-30,getmaxy()/2,percent[2]); outtextxy( getmaxx()/2,getmaxy()/2+r+30,percent[3]); outtextxy( getmaxx()/2+r+20,getmaxy()/2+50,percent[4]); getch(); settextstyle(0,0,0); clearv iewport(); // //функция демонстрации текста в графичес ком окне // void demotext(void) int midx,midy,i; MainWindow( "Demonstration text in the graphics screen" ); StatusLine( "Press any key to continue..." ); settextjustify(CENTER_TEXT,CENTER_TEXT); mid x=getmaxx()/2; midy=getmaxy()/2; outtextxy( midx,midy-40,"This programm will demonstrate to you all graphics"); outtextxy( midx,midy+40,"functions of the C++ language");getch();clearviewport(); for (i=0;i<11;i++) settextstyle(i,0,0); outtextxy(midx,midy-40,"This text is write by "); outtextxy(midx,midy+40,Fonts[i]); getch();clearviewport(); settextstyle(0,1,1); // вывод вертикального текста outtextxy(midx,midy,"This programm created by Grinjoff Mark"); settextstyl e(0,0,0);/*возвращениеи исх одного начертания текста */ getch(); clearviewport(); // //функция демонстрации рисования дуг и многоугольников // void demoarcs(void) int poly[10]; MainWindow( "Arcs and polygons demonstration" ); StatusLine( "Press any key to continue..." ); xmax=getmaxx(); ymax=getmaxy(); i=0; //рисование дуг с произвольным расположением и цветом do i++; setcolor(random( MaxColors - random(15) ) + random(15)); arc(random(xmax),random(ymax),random(358),random(358),random(100)); if(i>10000) clearviewport();i=0; while( !kbhit() ); // повторение пока не нажата клавиша getch(); clearviewport(); i=0; //рисование многоугольников с произвольным цветом do i++; poly[0] = random(i+random(20));//1- вершина poly[1] = random(r andom(ymax)/i+2); poly[2] = xmax-(i+20); /* 2- я */ poly[3] = i+20; poly[4] = xmax-(i+50); /* 3- я */ poly[5] = ymax-(i+20); poly[6] = i+xmax/2; /* 4- я */ poly[7] = i+ymax/2; /* drawpoly автоматически не закрывает многоугольни к п оэтому необходимо это сделать самому */ poly[8] = poly[0]; poly[9] = poly[1]; //рисует многоугольники , изменяя координаты вершин setcolor(random( MaxColors - random(15) ) + random(15)); drawpoly(5, poly); if(i>1000) clearviewport();i=0; while( !kbhit() ); // повторение пока не нажата клавиша getch(); clearviewport(); // //функция демонстрации закрашеных многоуголь ников и //цветов // void demobars(void) MainWindow( "Bars and colors demonstration" ); StatusLine( "Press any key to con tinue..." ); int kxb=15,kyb=15; double stx,sty,x,y; stx=floor(getmaxx()/kxb); sty=floor(getmaxy()/kyb); do for(x=3;x100) clearviewport();i=0; while( !kbhit() ); // повторение пока не нажата к лавиша getch(); clearviewport(); // //фун кция создания завершающей стран ицы // void endpage(void) MainWindow( "The cycle" ); StatusLine( "Press any key to continue..." ); int i,j,rad=50; do for (i=0;i<359;i++) setcolor(random( MaxColors - random(15) ) + random(15)); piesli ce(60,60,i,i+1,rad); pieslice(580,60,i,i+1,rad); pieslice(60,390,i,i+1,rad); pieslice(580,390,i,i+1,rad); for (i=0;i 0 then Rewrite(Datafile); OpFileF := IOResult=0 ; $I+ if OpFileF then begin DisableCommands(WinCom2); EnableCommands(WinCom1); Work переход к работе end end; end; caseControl Dispose(PF, Done) уничтожение экземпляра end; FileOpen --------------------------- procedure TNotebook.FileSave; закрывает файл данных begin Close(DataFile); OpFileF :=False; EnableCommands(WinCom2); разрешение открыть файл DisableCommands(WinCom1) запрещение работы и сохранение end; TNotebook.FileSave -------------------------- procedure TNotebook.ChangeDir; изменяет текущий каталог var PD: PChDirDialog; диалоговое окно смены каталога диска Control: Word; begin New(PD, Init(cdNormal,0)); создание диалогового окна Control :=DeskTop^.Ex ecView(PD); использование окна ChDir(PD^.DirInput^.Data^); установка нового каталога Dispose(PD, Done) удаление окна из кучи end; TNotebook.ChangeDir ------------------------- procedure TNotebook.DOSCall; временный выход в дос const txt='Для возврата введите EXIT в ответ '+ 'на приглашение ДОС ...'; begin DoneEvents; закрыть обработчик событий DoneVideo; закрыть монитор экрана DoneMemory; закрыть монитор памяти SetMemTop(HeapPtr); освободить кучу writeln('Введите EXIT для возврата '); выдать соо бщение о выходе SwapVectors; установить стандартные векторы передать упр . ком . процессору дос Exec(GetEnv('COMSPEC'),''); возврат из дос SwapVectors; восстанов ить векторы SetMemTop(HeapEnd); восстановить кучу InitMemory; открыть монитор памяти InitVideo; открыть монитор экрана InitEvents; открыть обработчик событий InitSysError; открыть обработчик ошибок Redraw восстановить вид экрана end; DOSCall ------------------------------ constructor TInterior.Init; создает окно скроллера begin TScroller.Init(Bounds, HS, VS); ReadFile; GrowMode :=gfGrowHiX+gfGrowHiY; SetLimit(LLine, PS^.Count) end; ----------------------- destructor TInterior.Done; begin Dispose(PS,Done); inherited Done end; -------------------------- procedure TInterior.ReadFile; читает содержимое файла данны х в массив LINES var k: Integer; s: String; Data: DataType; f: text; begin PS:= New(PStringCollection, Init(100,10)); seek(DataFile,0); while not (EOF(DataFile) or LowMemory) do begin Read(DataFile, data); with data do begin s:= Name; while Length(s) < Lname do s:= s+' '; s:= s+Phone; while Length(s) < LName+LPhone do s:= s+' '; s:= s+Addr end; if s<>'' then PS^.Insert(NewStr(S)) end; Location:= 0; end; ReadFile ---------------------------- procedure Tinterior.Draw; выводит данные в окно просмо тра var n, текущая строка экрана k: integer; текущая строка массива B: TDrawBuffer; Color: Byte; p: PString; begin i f Delta.Y>Location then Location:= Delta.Y; if Location>Delta.Y+pred(Size.Y) then Location:= Delta.Y+pred(Size.Y); for n:= 0 to pred(Size.Y) do Size.Y- кол-во строк окна begin k:= Delta.Y+n; if k=Location then Color:= GetColor (2) else Color:= GetColor(1); MoveChar(B,' ',Color,Size.X); if kPS^.Count then write(DataFile,Data) да - добавляем в файл end until Edit or (Control=cmCancel); Draw end; AddItem -------------------- procedure SearchItem; ищет нуж ный элемент function UpString(s: String): string; преобразует строку в верхний регистр var k: Integer; begin for k:=1 to Length(s) do if s[k] in ['a'..'z'] then s[k]:=chr(ord('A')+ord(s[k])-ord('a')) else if s[k] in [' а '..' п '] then s[k]:=chr(ord('A')+ord(s[k])-ord('a')) else if s[k] in [' р '..' я '] then s[k]:=chr(ord('P')+ord(s[k])-ord('p')); UpString:=s end; UpString var InWin: PDialog; R: TRect; s: String; p: PInputLine; k: Word; begin SearchItem R.Ass ign(15,8,65,16); InWin:=New(PDialog, Init(R,' Поиск записи :')); with InWin^ do begin R.Assign(2,2,47,3); p:=New(PInputLine,Init(R,50)); Insert(p); R.Assign(1,1,40,2); Insert(New(PLabel, Init(R, ' Введите образец поиска :',p)) ); R.Assign(10,5,20,7); Insert(New(PButton,Init(R,' Ввести ',cmOK,bfDefault))); R.Assign(25,5,35,7); Insert(New(PButton,Init(R,' Выход ',cmCancel,bfNormal))); SelectNext(False) end; if DeskTop^.ExecView(InWin)=cmCancel then exit; s:=p^.Data^; Location:=0; while (UpString(s)>=UpString(PString(PS^.At(Location))^)) and (Location
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Не суй своё дело в чужой нос.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

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

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru