Задачник и решебник, страница 25
Описание файла
PDF-файл из архива "Задачник и решебник", который расположен в категории "". Всё это находится в предмете "технология разработки программного обеспечения" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "технология разработки программного обеспечения" в общих файлах.
Просмотр PDF-файла онлайн
Текст 25 страницы из PDF
Справочник265Окрашивает пиксел, точку с координатами (х, у), цветом Цвет.В качестве параметра Цвет обычно используют именованнуюконстанту (см. s e t c o l o r ) .Заголовочный файл: <graph.h>rectangleСинтаксис:void rectangle(int xl,i n t yl,i n t x2, i n t у2);Вычерчивает прямоугольник. Параметры xl и yl задают положение левого верхнего угла прямоугольника, х2 и у2 — правогонижнего.Вид (стиль линии) контура прямоугольника можно задать припомощи функции s e t l i n e s t y l e , цвет -- при помощи функцииsetcolor.Заголовочный файл: <graph.h>sectorСинтаксис:void sector (int x, int y,int РадиусУ) ;int Угол1,int Угол2,int РадиусХ,Вычерчивает эллиптический {РадиусХ Ф РадиусУ) или круговой{Радиусх = РадиусУ) сектор.
Параметры х и у задают координаты центра сектора. Параметры Угол1 и Угол2 — углы прямых, ограничивающих сектор, параметры РадиусХ и РадиусУ —радиусы эллипса по осям х и У, из которого "вырезается" сектор.Нулевому углу соответствует горизонтальный отрезок, проведенный из точки (х, у) в сторону возрастания координаты к.
ЕслиУгол1^0, а Угол2=360, то функция s e c t o r вычерчивает полный круг (эллипс).УголКонца.^голНачала..^..,,_ ,—'—^^^т^. ^,\УголНачалаУголКонцаC/C++ в задачах и примерах266Цвет и стиль заливки можно задать при помощи функцииs e t f i l l s t y l e , цвет границы сектора — при помощи функцииsetcolor.Заголовочный файл: <graph.h>setcolorСинтаксис:void setcolor(int Цвет);Задает цвет вывода текста (функции o u t t e x t x y и o u t t e x t ) , вычерчивания линий и фигур (функции l i n e , c i r c l e , r e c k t a n g l eи др.).
В качестве параметра Цвет обычно используют именованную константу.ЦветКонстантаЧерныйBLACK0СинийBLUE1ЗеленыйGREEN2БирюзовыйCYAN3КрасныйRED4СиреневыйMAGENTA5КоричневыйBROWN6Светло-серыйLIGHTGRAY7СерыйDARKGRAY8ГолубойLIGHTBLUE9Светло-зеленыйLIGHTGREEN10Светло-бирюзовыйLIGHTCYAN11АлыйLIGHTRED12Светло-сиреневыйLIGHTMAGENTA13ЖелтыйYELLOW14Белый (яркий)WHITE15Заголовочный файл: <graph.h>Значение константыЧасть III.
Справочник267setfillstyleСинтаксис:void s e t f i l l s t y l e ( i n t Стиль, i n t Цвет);Устанавливает стиль и цвет заливки (закрашивания), используемый функциями вывода областей (bar, barSd, s e c t o r и др.).В качестве параметра Стиль обычно используют одну из именованных констант, список которых приведен ниже. Параметр Цветтакже задается именованной константой (см. s e t c o l o r ) .КонстантаСтиль заполнения областиEMPTY_FILLБез заливки (сплошная заливка цветом фона)SOLID_FILLСплошная заливка текущим цветомLINE_FILLГоризонтальная штриховкаLTSLASH_FILLШтриховка под углом 45 градусов влево тонкимилиниямиSLASH_FILLШтриховка под углом 45 градусов влевоBKSLASH_FILLШтриховка под углом 45 градусов вправо тонкими линиямиLTBKSLASH_FILLШтриховка под углом 45 градусов вправоHATCH_FILLШтриховка клеткойXHATCH_FILLШтриховка под углом 45 градусов редкой косойклеткойINTERLEAVE_FILLШтриховка под углом 45 градусов частой косойклеткойWIDEDOT_FILLЗаполнение редкими точкамиCLOSEDOT_FILLЗаполнение частыми точкамиUSER FILLТип заполнения определяется программистомЗаголовочный файл: <graph.h>setlinestyleСинтаксис:void s e t l i n e s t y l e (int ТипЛинии, i n t Образец, i n t Толщина);268C/C-i"f- в задачах и пр/лмерахУстанавливает стиль вычерчиваемых контуров и линий (см.
функции l i n e , c i r c l e И др.).Параметр ТипЛинии, в качестве которого обычно используетсяодна из перечисленных ниже именованных констант, определяетвид линии.КонстантаТип линииSOLIDLINEСплошная, НепрерывнаяDOTTEDLINEПунктирная, С ПОСТОЯННОЙ ДЛИНОЙ штриховCENTER_LINEШтрИХ-ПуНКТИрнаЯ ЛИНИЯDASHEDLINEПунктирная, длина штрихов чуть больше, чем улинии типа DOTTED_LINEUSERBIT_LINEОпределенный программистом тип линииПараметр Толщина определяет толщину линии. Линия можетбыть обычной толщины (константа NORM_WIDTH) или утолщенная (константа THICK_WIDTH).Параметр Образец используется в том случае, если функцияs e t l i n e s t y l e устанавливает тип линии, определяемый программистом.
Значением параметра ооразец должна быть четырехразрядная шестнадцатеричная константа, кодирующая отрезок линии длиной в 16 пикселов.Заголовочный файл: <graph. h>settexstyleСинтаксис:void settexstyle (int Прифт, int Ориентация,intРазмер);Устанавливает шрифт, размер и ориентацию текста, выводимогофункциями o u t t e x t x y и o u t t e x t . В качестве параметра Шрифтможно использовать одну из перечисленных ниже констант.КонстантаЗначениеШрифтDEFAULT_FONTОСтандартный. Каждый выводимыйсимвол формируется в квадратеразмером 8 на 8 пикселов.269Часть III. Справочник(окончание)КонстантаЗначениеШрифтTRIPLEX_FONT1Шрифт TriplexSMALL_FONT2МелкийSANSSERIF_FONT3Шрифт SansSerifGOTHIC FONT4ГотическийЗамечаниеJВ шрифтах, отличных от стандартного (DEFAULT__FONT), букв русского алфавита нет.Параметр Ориентация задает ориентацию текста, выводимогофункциями o u t t e x t и o u t t e x t x y .
Текст может быть ориентирован обычным образом (значение параметра Ориентация вэтом случае должно быть равно именованной константеHORIZ_DIR) или вертикально, снизу вверх (в этом случае значение параметра Ориентация должно быть равно VERT_DIR).Заголовочный файл: <graph.h>Прочие функцииdelayСинтаксис:v o i d d e l a y (unsignedЗадержка);Обеспечивает задержку на указанное количество миллисекунд.Заголовочный файл: <dos. h>soundСинтаксис:v o i d sound (unsigned Частота);Обеспечивает вывод звукового сигнала с использованием внутреннего динамика компьютера. Частота сигнала задается в герцах. Динамик будет издавать сигнал до тех пор, пока профаммаего не выключит при помощи функции nosound.270C/C-f"^ в задачах и примерахНиже приведены частоты, соответствующие первым двум октавам пианино.Нотадодо-диез, ре-бемольрере-диез, ми-бемольмифафа-диез, соль-бемольсольсоль-диез, ля-бемольляля-диез, си-бемольсидо (среднее)до-диез, ре-бемольрере-диез, ми-бемольмифафа-диез, соль-бемольсольсоль-диез, ля-бемольляля-диез, си-бемольсиЧастота, герц130138,6146,8155,6164,8174,6185196207,7220233,1246,9261,7277,2293,7311,1329,6349,2370392,0415,3440466,2493,9Заголовочный файл: <dos.
h>nosoundВыключает звуковой сигнал, издаваемый внутренним динамиком компьютера.Заголовочный файл: <dos.h>ПРИЛОЖЕНИЕВывод иллюстрацийв библиотеке graph нет функции, обеспечивающей вывод на экран иллюстрации, находящейся в файле. Профаммист долженсам разработать такую функцию. Однако эта задача является довольно сложной.
Ниже приведен текст разработанной авторомфункции draw, кotopaя выводит на экран 16-цветную картинку —содержимое bmp-файла. Картинка должна быть создана в средеMicrosoft Windows, например, при помощи фафического редактора Paint.tinclude <stdio.h>#include <graphics.h>/* Функция draw зыводит на экран шестнадцатицветнуюкартинку, находящуюся в Ьшр-файле(с) Культин Н. Б., 2001int draw(int хО, int уО, char* fname){/*хО,уО — координаты левого верхнего углаобласти выводаfname — имя файла картинки;Значения функции:>0 — высота иллюстрации;-1 — не найден файл;-2 — картинка не являетсяшестнадцатицветной.V// таблица преобразования кодировки// цвета Windows -> DOSС/С-^-^ в задачах и примерах272unsigned char color[16] ={0,4,2,6,1,5,3,7,8,12,10,14,9,13,11,15};// прочитав из Ьтр~файла эту структуру,// можно получить информацию о картинке;//ее размере и количестве цветовstruct bmpinfo{// файл должен начинаться буквами ВМchar hl,h2;unsigned longsize,// размер файла, байтreserved, // резерв, не используется// смещение данных относительноoffset.// начала файла//не используетсяwidth,// ширина картинки// высота картинкиheight;unsigned intplans,// кол-во планов, должно содержать 1bpp;// кол-во бит на пиксел: 1, 4, 8 или 24};bmpinfo info;// информация о картинкеFILE *f;// файл иллюстрации// координаты пикселаint х,у;unsigned char b; // байт, прочитанный из файлаunsigned char bh; // сдвинутый на 4 разряда вправо// старший полубайтunsigned char bl; // четыре младшие бита// прочитанного байтаint nb;// кол-во байт (кратное четырем)// соответствующее строкеint np;// кол-во выведенных пикселовint i,j;if ({f = fopenCfname, "rb")) == NULL)return -1;// читаем информацию о картинкеПриложениеfread(& info, sizeof(info),1, f);if (info.bpp != 4 )return -2;// картинка не 1б-цветнаяX = xO;у = yO + info.height;nb = (info.width / 8)*4;if ((info.width / 8) != 0) nb += 4;fseek(f, info.offset, SEEK_SET);// вывод иллюстрацииfor (i = 0; i < info.height; i++){np = 0;// кол-во выведенных пикселовfor (j = 0; j < nb; J++) // вывод строки{b = fgetc(f);if ( np < info.width){bh = b » 4;putpixel(x,y,color[bh]);X++;np++;}if (np < info.width){bl = b & 15;putpixel(x,y,color[bl]);X++;np++;}}x=xO;y—;}fclose(f);return info.height;273IUJr^COW:—|:M>D^»3D0rSko•III IIiIt IIIIIII IOiHOsJCO^LO^or^-OOC^OTHCMCO^^LJOIIIIIIIiIIiIIII ICsJCO-^LOVOr^OOCTNOiHCMCO-^MOVOr*rHiH^tHTHTHTH^HCNJCMCNJCNJCNJCMCMCsJCNJC4JC41C\JCMCsJCNJC4JC\JC4JC4JCsJC\JCNJCMC\i"?CD+I+,8OSJQU - D < У Ч - O-C-r-t-p^JsiJp-i EСОaIIiIIIIIIIIIIIII I4Dr*COO>>CDiHC\J00^LO4Or^0OC^(S>THCSJo^o^o^o^ocэooooooocэr^1—ii—I: ЭС D-ГЧ1 • - - х - ' ' - • <й-ОСССЛЬОс;оIIIIIIiIiIIiII£ l U I - 3 3 e - X : J T 3 a " d Q a j Q n ) S 2OvUJIIIIIIttIIIIIIIIIIOrHC^JCO-<i•LOЧOr-OOa^IIIIIIIIIII• - VIIIIiIIIIIIIIiIIIIIItIIriIIBs!=II1^==*^ I - i M IIIiIiIIHII/\C^-<3)IIIIIiIIiIIIIIIII Iooa^Or^c\lco-^LOЧDr-ooo^e?тЧC^Jco•^IIIiIIIIIIiIIIIIг^г^г**•г*•ooooooooooooooooooooo^cз^G^t~^CN1ОsooiIIIIIIIIIIIIIiI Iс\1со^ю"ог*ооа^0тчсч1со-ц1-1л^г-ооisIIIIIIIiIIIitIIIЧО 4 0 * 0 4 0 4 0 4 0 4 0 * 0 4 0 4 0 P*-r** Г** r**" r ^ Р ^ Г * *(Л(0IIIIIIIIIIIIIIII I-<*Lo^or-ooo^вЭr^c^Jco-d•ючor-ooa^©^-<|--^-***<i'*^mLnLf>lOLr>L0L0L0L0L040itIIIIIIIIIIIIII I4Dr^000>Or4CVJCr5^L04Dr-00C^®THCVJTHiHrHrHCMC\JC\]C\JC\JC\IC\JC4JC4IC\JCOC0Cn§sCV4ITHiHTHrHTHiHTHiHCMCSJCSJCNJCMCSJCSJCMCsiЬбttvoi0©iHrHrHrHTHTHrHiHiHi-ICMCSJC\IC>JCMCsJC4JC\JC\JC4JC4JC4lCMC\JC4JC\JC\iC\JCSJC41C\IC\JsоnоitiIII -t-SICVJC4JC41C\JCSJCsJC\ICNJC\JC\JCsJC\IC4JC\JCMC\JCMttоQ.Iи^»AIIIIIIIIIIIIIIIIIOTHC\JC0-d'L040r-00C^®THC\JCD-d'm4D§a : Lo 00 L .
d L U ^paIII iIIIIIiIIIIIi I000S®4HCslC0>d"L040r^00C7NO^C\J00-<d'CslCNJCOa^COCOCOCOCOCOCOCO-<l'-^-^^^sиCD s ^ s : 2>£ c=: zз: оc= a .Приложение275Представление информациив компьютереДесятичные, двоичныеи шестнадцатеричные числав повседневной жизни человек имеет дела с десятичными числами. В десятинной системе счисления для представления чиселиспользуются цифры от О до 9. Значение числа определяется каксумма произведений цифр числа на их весовые коэффициенты,определяемые местами цифр в числе. Весовой коэффициент самой правой цифры равен единице, цифры перед ней — десяти,затем ста и т. д.