MaxEdu.ru

Модульное программирование

Один из способов решения сложной задачи – это разбиение её на части. В этом состоит метод нисходящего программирования.
При программировании на языке Си сложная программа может быть разделена на более простые подзадачи( функции). Это позволяет: 1)упростить структуру программы; 2) избежать избыточности кода, т.к. функции записывают один раз, а вызывать её на выполнение можно многократно; 3) упростить процесс отладки и сопровождение программы, поместив часто используемые ф-ии в библ. Разработанные ф-ии можно сгруппировать в отдельные файлы (модули ) компилируемые отдельно, кот. затем объединяются в исполняемою программу с помощью компоновщика.
Ф-ия – это самостоятельная единица программы, реализующая конкретную задачу или её часть. Каждая программа написанная на Си должна содержать главную ф-ию «main».
3. Объявление и определение функции. Вызов функции.
Объявление(-написание прототипа)любой функции имеет следующий вид:
тип-результата имя-функции (спис.форм.перем.)
Определениефункции
{операторы }
Можно задать класс пам(обл видимости ф-ии) (пр:[класс] тип…)
.extern-глобальная видимость во всех модулях прогр.(умолч.)
.static-видимость только в пределах модуля, в кот определ ф-ия
Тип возвр. знач может быть люб кроме масс и ф-ии. Но может быть ук. на мА или ф-ию. Если ф-ия не возвр ни какого рез, то указывается тип void.
Имя ф-ии – это идентиф задаваемой программистом. Список форм парам: (тип имя_пар1, тип имя_пар2) Опред величины , кот требуется передать в ф-ию при её вызове. Может быть пустым. Тело ф-ии – это либо сост опер., либо блок с описателем перем, масс и т.д. Тело ф-ии не может содерж в себе определ др ф-ий. Из всякой ф-ии возможно обращение к др. ф. Однако они всегда явл внеш по отн к вызыв-ей ф-ие.др ф-ий. ызове. ей мере 2 поля: для хранения данных, для ук.
Вызов функции
имя-функции (список фактич. перем.) В объяв. опред и в вызове одной и той же ф-ии должно соблюдаться правило соотв типов и порядка следования парам.
4. Обмен информацией между функциями. Рекурсивные функции.
Способы:
1) С пом. глоб. перем.
2) Через возвращение ф-ией значения (оператор return).
- returnвыражение (в этом случ. знач. будет присвоено ф-ии в её типе)
- return (завершает выполн. ф-ии и передаёт вып. след. опер-у в вызыв-ей ф-ии)
3) Через параметры:
Три способа передачи пар-ра в ф-ию:
а) по значению ( оп-ры работают только с копиями знач-ий фактич-их парам)
б) по адресу (в стек заносятся копии адресов арг-тов, ф-ия осущ-ая доступ к этим адр может изм исх знач)
в)по ссылке (в ф-ию перед адр указ-ого при вызове парам) обозн int&z
Рекурс ф-ия – ф-ия, кот вызывает саму себя. Такая рек. наз-ся прямой. Косвенная рек.- когда 2 и более ф-ий вызывают др друга. Недостатки: расход времени и памяти на повторные вызовы ф-ий и передачу ей копий парам, а также опестн. переполн стека.
5. Библиотечные функции. Функции для работы в графическом режиме.
Любая прогр на Си содержит обращение к стандартной библ. Кроме того программист может созд собств библ. Их подключ с пом. директивы 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 (getmaxx()) и по y (getmaxy()).
Текущ корд. указат.курсора(getx(),gety()).
Перемещение указат-ля позиции moveto(x,y);moverel(dx,dy).
Установка парам. по умолч.-graphdefault();
Вывод точки на экран-putpixel(x,y,цв).
Вывод текста-outtext(«строка»),outtextxy(x,y, «строка»).
6. Графические примитивы.
Выводлин.-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,граница(должен совп.с цв контура)
7. Классы памяти.
В ПК память представляется разделён.насегменты. Исп.прогр-а сост.из:
1)Сегмента кода, в кот.расположены машинные команды.
2)Сегмент данных, в кот расп. глоб.перемен. и константы.
3)Сегмент стека, в кот расположены локал.перем.
Остальна дост-ая прогр.память наз-ся динам-ой или хепом(«куча»), в кот располож. динам.перем.
Под всякую переем. исп-ую в прогр. должно быть выделено место в памяти. Выделение пам.может происходить либо на стадии компиляции прогр., либо во время выполнения прогр.(для динам.перем.)
Каждая перем. имеет оперд. тип. Кроме того она имеет класс памяти. Существует 4 класса памяти: 1)extern(внеш.);2)auto(автоматич-ий);3)static(статический); 4)register(регистровый).
Класс пам.опред-ся местом её описания и ключевым словом.
Класс пам.определяет:
1)Область видимости (дей-я перем-х)
2)Время жизни пер.,т.е. продолж-ость её хранения в памяти.
В Си может быть 3 области видимости:
1)в пределах файла
2)в пр.блока{ }
3)в пр.прототипа ф-ии
Время жизни может быть либо на протяжении вып. всей прогр., либо по достяж.блока.
Внешний класс
Перем. опис. вне ф-ии наз-ся внеш. или глоб.(extern).Глоб. перем. размещается в сегменте данных и изначально обнуляется. Время жизни этой перем.-на протяж всей прогр., обл.действ-файл.
Автоматич. класс
Перем. описанная внутри ф-ии явл-ся локальной. По умолчанию объявленные в ф-ии пер-ые явл-ся автоматич. Перем. авт.класса размещаются в сегменте класса изначально не обнуляются. Время жизни и действие-блок, в кот описана перем.
Статический класс.
Перем.стат.кл. тоже явл.локальными. Они видны только в своём блоке, но в отличие от перем. класса auto они подобно глобальным переменным размещаются в сегменте данных, существуют на протяжении всей прогр. и однократно иниц.(при первом вхожд. в блок)
Регистровый класс
Регистровая пам.выделяется под локал. перем. Это самый быстрый и самый маленький вид памяти. Эту пам. исп. не реком., т.к. ей распоряжается компил.Размещение-регистр.пам.;обл.действ.-блок;вр.жизни-блок;иниц-нет.

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать полную версию
Рефераты по информатике Один из способов решения сложной задачи – это разбиение её на части. В этом состоит метод нисходящего программирования. При программировании на языке
Оценок: 227 (Средняя 5 из 5)

Специалисты RetsCorp работают в digital-сфере более 7 лет. За это время мы разработали более 500+ успешных проектов. Основываясь на своем опыте и знании рынка, мы с уверенностью можем сказать, что будет работать, а что — нет. Заказывая создание лендинга для бизнеса в нашей студии, вы получаете работающие решения, необходимые именно вашему бизнесу.

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

© 2014 - 2022 MaxEdu.ru