- •1 Порядок разработки программного продукта
- •2 Структура программы на языке с
- •Int age; // Поле age
- •Void main(void) // Основная функция
- •3 Типы данных языка с
- •Void main(void)
- •Int *iptr; // Объявление указателя
- •Void main(void)
- •Int *iptr; // Объявление указателя
- •Void main(void)
- •Void show_string(char *string)
- •Void main(void)
- •4 Операции языка с
- •Арифметические операции
- •Void main(void)
- •Void main(void)
- •Логические операции
- •Void main(void)
- •Операции отношения
- •Поразрядные операции
- •Побитовые операции
- •Void main(void)
- •Адресные операции
- •Операция “условие”
- •Void main(void)
- •Операция sizeof()
- •Void main(void)
- •Int size;
- •Void main(void)
- •Int *iptr;
- •Void main(void)
- •Int *list,I;
- •Операция вызова функции
- •5 Операторы языка с
- •Условный оператор if
- •Оператор switch
- •Void main(void)
- •Void main(void)
- •Оператор цикла for
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Цикл while
- •Void main(void)
- •Цикл do ... While
- •Void main(void)
- •Вложенные циклы
- •Void main(void)
- •Void main(void)
- •Int I,j,score;
- •Int scores[line][column];
- •Оператор безусловного перехода
- •Оператор break
- •Void main(void)
- •Оператор continue
- •Void main(void)
- •If (I % 5) continue;
- •Оператор return
- •6 Организация функций
- •Int sum_vect(int V[], int n)
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •7 Библиотечные функции
- •7.1 Функции форматного ввода-вывода
- •Int printf(char*format[, argument,...]);
- •Void main(void)
- •Void main(void)
- •Int scanf(char *format[,argument,...]);
- •Функции для работы с файлами
- •Void main(void)
- •Int vect[line];
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •7.3 Графические средства языка с
- •Void main(void)
- •Initgraph(&gdriver, &gmode, ""); // Инициализация графического режима
- •Int maxX, maxY;
- •Void far initgraph(int far *driver, int far *mode, char far *path);
- •Void main(void)
- •Int driver, mode, errorcode;
- •Void far rectangle(int left, int top, int right, int bottom);
- •Void far setviewport(int left, int top, int right, int bottom, int flag);
- •Void far circle(int X, int y, int radius);
- •7.4 Функции для работы со строками
- •Void main (void)
- •Void main (void)
- •Void main (void)
- •Void main (void)
- •Void main (void)
- •7.5 Математические функции
- •Продолжение таблицы а.7
- •Продолжение таблицы а.7
Void far initgraph(int far *driver, int far *mode, char far *path);
Здесь и далее far обозначает “дальний адрес”.
Функция graphresult() возвращает код ошибки, который присваивается переменной errorcode. При нормальной инициализации код ошибки равен нулю (макрос grOK соответствует сообщению No error). Если возникают ошибки (не найден драйвер, недостаточно памяти для загрузки драйвера и т.д.), то код не равен нулю.
Функция grapherrormsg() по коду ошибки возвращает соответствующее сообщение, которое с помощью функции printf() выводится на экран монитора. Функция getch() позволяет прочитать это сообщение. Выход из программы осуществляется по оператору exit().
Функции getmaxx() и getmaxy() возвращают в программу максимальные размеры экрана в направлении осей X и Y. Необходимо иметь в виду, что в графическом режиме за точку отсчета принимается левый верхний угол экрана, который имеет координаты (0,0) (все размеры и координаты в графическом режиме задаются в пикселах). Поэтому для привычного восприятия рисунка, необходимо выводить данные перевернутыми на 1800 относительно оси X.
Функция line() имеет прототип line(int x, int y, int x1, int y1). Она рисует линию из точки с координатами (x,y) в точку с координатами (x1,y1).
Функция closegraph() освобождает память, использующую графические функции.
В примере 7.9 используется еще ряд функций из графического модуля:
//Пример 7.9.
// Пример работы в графическом режиме
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
Void main(void)
{
Int driver, mode, errorcode;
register int i;
driver = DETECT;
initgraph(&driver, &mode, "c:\bc\bgi\egavga.bgi");
errorcode = graphresult();
if (errorcode != grOk) // если произошла ошибка
{ printf("Ошибка:%s\n", grapherrormsg(errorcode));
printf("Для останова нажмите любую клавишу\n");
getch();
exit(1); // для завершения работы
}
rectangle(0,0,639,349);
setcolor(RED);
line(0,0,639,349);
line(0,349,639,0);
setfillstyle(5,GREEN);
bar(50,50,300,300);
setviewport(100,100,200,200,1);
getch();
clearviewport();
for (i=3; i<83; i++)
circle(50,50,i);
getch();
restorecrtmode();
}
Инициализация графического режима производится по рассмотренной выше схеме.
Функция rectangle() рисует прямоугольник, левый верхний угол которого имеет координаты (0,0), а правый нижний — (639, 479). Ее прототип:
Void far rectangle(int left, int top, int right, int bottom);
Функция setcolor() устанавливает цвет линий, в скобках может быть указано название или код цвета. Перечень наиболее часто употребляемых цветов и их коды дан в табл. 7.4.
Функция setfillstyle() устанавливает способ и цвет заполнения, ее прототип: void far setfillstyle(int pattern, int color). В табл. 7.5 даны некоторые способы заполнения.
Таблица 7.4 —Цвета и соответствующие коды
-
Название цвета (CGA)
Код
Название цвета (CGA)
Код
BLACK
BLUE
GREEN
CYAN
RED
MAGENTA
BROWN
LIGHTGRAY
0
1
2
3
4
5
6
7
DARKGRAY
LIGHTBLUE
LIGHTDREEN
LIGHTCYAN
LIGHTRED
LIGHTMAGENTA
YELLOW
WIGHT
8
9
10
11
12
13
14
15
Таблица 7.5 — Варианты заполнения замкнутых контуров
-
Код
Наименование способа
0
1
2
3
4
5
Заполнение цветом фона
Заполнение сплошное заданным фоном
Линиями —
Косыми линиями ///
Яркими косыми линиями ///
Обратными косыми линиями \\\
Функция bar() имеет прототип void far bar(int x, int y, int x1, int y1) и заполняет прямоугольник с координатами левого верхнего угла (x, y) и нижнего правого угла — (x1, y1) цветом и способом, которые заданы функцией setfillstyle().
Функция setviewport() создает графическое окно с произвольными размерами. Если окно совпадает с экраном, то использовать эту функцию не надо. Ее прототип: