Графические примитивы.
1. Модульное программирование. Понятие функции. Один из способов решения сложной задачи – это разбиение её на части. В этом состоит метод нисходящего программирования. При программировании на языке Си сложная программа может быть разделена на более простые подзадачи( функции). Это позволяет: 1)упростить структуру программы; 2) избежать избыточности кода, т.к. функции записывают один раз, а вызывать её на выполнение можно многократно; 3) упростить процесс отладки и сопровождение программы, поместив часто используемые ф-ии в библ. Разработанные ф-ии можно сгруппировать в отдельные файлы (модули ) компилируемые отдельно, кот. затем объединяются в исполняемою программу с помощью компоновщика. Ф-ия – это самостоятельная единица программы, реализующая конкретную задачу или её часть. Каждая программа написанная на Си должна содержать главную ф-ию «main».
Объявление и определение функции. Вызов функции. Объявление(óнаписание прототипа) любой функции имеет следующий вид: тип-результата имя-функции (спис.форм.перем.) Определение функции {операторы} Можно задать класс пам(обл видимости ф-ии) (пр:[класс] тип…) .extern-глобальная видимость во всех модулях прогр.(умолч.) .static-видимость только в пределах модуля, в кот определ ф-ия Тип возвр. знач может быть люб кроме масс и ф-ии. Но может быть ук. на мА или ф-ию. Если ф-ия не возвр ни какого рез, то указывается тип void. Имя ф-ии – это идентиф задаваемой программистом. Список форм парам: (тип имя_пар1, тип имя_пар2) Опред величины , кот требуется передать в ф-ию при её вызове. Может быть пустым. Тело ф-ии – это либо сост опер., либо блок с описателем перем, масс и т.д. Тело ф-ии не может содерж в себе определ др ф-ий. Из всякой ф-ии возможно обращение к др. ф. Однако они всегда явл внеш по отн к вызыв-ей ф-ие.др ф-ий. ызове. ей мере 2 поля: для хранения данных, для ук.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Вызов функции имя-функции (список фактич. перем.) В объяв. опред и в вызове одной и той же ф-ии должно соблюдаться правило соотв типов и порядка следования парам. Обмен информацией между функциями. Рекурсивные функции. Способы: 1) С пом. глоб. перем. 2) Через возвращение ф-ией значения (оператор return). - return выражение (в этом случ. знач. будет присвоено ф-ии в её типе) - return (завершает выполн. ф-ии и передаёт вып. след. опер-у в вызыв-ей ф-ии) 3) Через параметры: Три способа передачи пар-ра в ф-ию: а) по значению ( оп-ры работают только с копиями знач-ий фактич-их парам) б) по адресу (в стек заносятся копии адресов арг-тов, ф-ия осущ-ая доступ к этим адр может изм исх знач) в)по ссылке (в ф-ию перед адр указ-ого при вызове парам) обозн int&z Рекурс ф-ия – ф-ия, кот вызывает саму себя. Такая рек. наз-ся прямой. Косвенная рек.- когда 2 и более ф-ий вызывают др друга. Недостатки: расход времени и памяти на повторные вызовы ф-ий и передачу ей копий парам, а также опестн. переполн стека.
Библиотечные функции. Функции для работы в графическом режиме. Любая прогр на Си содержит обращение к стандартной библ. Кроме того программист может созд собств библ. Их подключ с пом. директивы include (.h – header – заголовок). На стадии предпроцессорной обр.прогр. происходит подстановка прототипов перед осн. ф-ией, после чего компилятор проверяет правильность обращения к ф-иям. Сами библ. ф-ий хранятся в скомпил.виде и подлюч. к осн. прогр. на этапе компан-ки. Библ. ф-ий можно разбить на группы по их назнач.:ввод/выв;матем.ф-ии;для управл.графич системой. Функции для работы в графическом режиме. Монитор ПК может работать в одном из 2-х режимов: тестовом и графич-ом. Наим. элем-ом изобр.яв-ся пиксель. В Си име-ся граф. библ. graphics.h. Она сод. большое кол-во ф-ий для: упр. цветом, созд.изобр.различ.формы, для вывода граф.текст.сообщ.,для упавл.курсором. Настройка этих ф-ий на работу осущ-ся путём подл.граф.драйвера. Граф.драйверы нах-ся в отдельных файлах с расш .BGI в каталоге BGI(Borl.Graph.Interf.). Граф.ф-ии исп.понятие указателя текущ. позиции. Этот указатель идентиф. выбранный пиксель и хар-ся парой цел.чмсел(гор.и верт.коорд.). Иниц.гр.режима осущ. ф-иёй initgraph(&gd,&gm, «путь к BGI файлам). gd-гр.драйв.,gm-гр.режим. Для обр.ошиб.при работе с гр-ой исп.ф-ия: graphresult().Эта ф-ия возвр. код последней исп.ф-ии. grOk=0 Цвет в гр.режиме Си имеет свой номер и буквенное обозн. Фон-setbkcolor(цв),цв лин. и симв.-setcolor(цв). Парам.текста-settextstyle(шрифт,направл.,разм) Характер и толщина лин.геом. объектов-setlinestyle(вид,образец,толщина) Стиль закраски к-то области-setfillstyle(тип,закраска,цв) Очистка экрана-cleardevice()/ Определ.макс.зная.по x (getmax x()) и по y (getmax y()). Текущ корд. указат.курсора(get x(),get y()). Перемещение указат-ля позиции moveto(x,y);moverel(dx,dy). Установка парам. по умолч.-graphdefault(); Вывод точки на экран-putpixel(x,y,цв). Вывод текста-outtext(«строка»),outtextxy(x,y, «строка»).
Графические примитивы. Вывод лин.-setwritemode(режим). 0-COPY_PUT,1-XOR_PUT. Если 0,то лин.затирает то,что было на экране. Рисов.лин.-line(x1,y1,x2,y2),lineto(x,y),linerel(dx,dy) Выв.прямоуг.-rectangle(x1,y1,x2,y2) Ломан.лин.-drawpoly(кол-во вершин,указатель на массив целых) Окр.(x,y,r) Дуга arc(x,y,нач.угол,кон.уг,r) Дуга эллипса (x,y,нач.угол,кон.уг,rx,ry) Закр.прямоуг.bar(x1,y1,x2,y2) Закр.параллел.bar3d(x1,y1,x2,y2,глубина,круша(от0до1)) Закр.элипс fillellipse(x,y,rx,ry) Закр.круг pieslice (x,y,нач.угол,кон.уг,r) Закр. сектор эллипса sector(x,y,нач.угол,кон.уг,rx,ry) Закр.произв.замкн.обл. floodfill(x,y,граница(должен совп.с цв контура)
Классы памяти. В ПК память представляется разделён.насегменты. Исп.прогр-а сост.из: 1)Сегмента кода, в кот.расположены машинные команды. 2)Сегмент данных, в кот расп. глоб.перемен. и константы. 3)Сегмент стека, в кот расположены локал.перем. Остальна дост-ая прогр.память наз-ся динам-ой или хепом(«куча»), в кот располож. динам.перем. Под всякую переем. исп-ую в прогр. должно быть выделено место в памяти. Выделение пам.может происходить либо на стадии компиляции прогр., либо во время выполнения прогр.(для динам.перем.) Каждая перем. имеет оперд. тип. Кроме того она имеет класс памяти. Существует 4 класса памяти: 1)extern(внеш.);2)auto(автоматич-ий);3)static(статический); 4)register(регистровый). Класс пам.опред-ся местом её описания и ключевым словом. Класс пам.определяет: 1)Область видимости (дей-я перем-х) 2)Время жизни пер.,т.е. продолж-ость её хранения в памяти. В Си может быть 3 области видимости: 1)в пределах файла 2)в пр.блока{ } 3)в пр.прототипа ф-ии Время жизни может быть либо на протяжении вып. всей прогр., либо по достяж.блока. Внешний класс Перем. опис. вне ф-ии наз-ся внеш. или глоб.(extern).Глоб. перем. размещается в сегменте данных и изначально обнуляется. Время жизни этой перем.-на протяж всей прогр., обл.действ-файл. Автоматич. класс Перем. описанная внутри ф-ии явл-ся локальной. По умолчанию объявленные в ф-ии пер-ые явл-ся автоматич. Перем. авт.класса размещаются в сегменте класса изначально не обнуляются. Время жизни и действие-блок, в кот описана перем. Статический класс. Перем.стат.кл. тоже явл.локальными. Они видны только в своём блоке, но в отличие от перем. класса auto они подобно глобальным переменным размещаются в сегменте данных, существуют на протяжении всей прогр. и однократно иниц.(при первом вхожд. в блок) Регистровый класс Регистровая пам.выделяется под локал. перем. Это самый быстрый и самый маленький вид памяти. Эту пам. исп. не реком., т.к. ей распоряжается компил.Размещение-регистр.пам.;обл.действ.-блок;вр.жизни-блок;иниц-нет.
Популярное: Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (148)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |