- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
- •Int main(void)
Int main(void)
{
int graphdriver = DETECT, gmode, errorcode;
void *arrow;
int x,y,maxx;
unsigned int size;
/* инициализация драйвера и локальных переменных */
initgraph(&graphdriver,&gmode,"");
= 88 =
/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
{
printf("Ошибка :%s\n",grapherrormessage(errorcode));
printf("Для останова нажмите любую клавишу\n");
getch();
exit(1); /* завершение с кодом ошибки */
}
maxx = getmaxx();
x = 0;
y = getmaxy()/2;
/* нарисовать перемещаемый объект */
draw_arrow(x,y);
/* определить размер памяти, для хранения изображения */
size = imagesize(x,y-ARROW_SIZE,x+(4*ARROW_SIZE),y+ARROW_SIZE);
/* выделить память */
arrow = malloc(size);
/* взять изображение */
getimage(x,y-ARROW_SIZE,x+(4*ARROW_SIZE),y+ARROW_SIZE,arrow);
/* продолжать, пока не будет нажата клавиша */
while(!kbhit())
{
/* стереть старый образ */
putimage(x,y-ARROW_SIZE,arrow,XOR_PUT);
x += ARROW_SIZE;
if(x >= maxx)
x = 0;
/* нарисовать изображение */
putimage(x,y-ARROW_SIZE,arrow,XOR_PUT);
}
free(arrow);
closegraph();
return 0;
}
void draw_arrow(int x,int y)
{
/* нарисовать на экране стрелку */
moveto(x,y);
linerel(4*ARROW_SIZE,0);
linerel(-2*ARROW_SIZE,-1*ARROW_SIZE);
linerel(0,2*ARROW_SIZE);
linerel(2*ARROW_SIZE,-1*ARROW_SIZE);
}
putpixel
Функция выводит пиксель в заданную точку экрана.
= 89 =
Синтаксис #include <graphics.h>
void far putpixel(int x, int y,int color);
Файл, содержащий graphics.h
прототип
Описание putpixel отображает точку цвета color и с
координатами (x,y).
Возвращаемое Нет.
значение
Переносимость Функция уникальна для Turbo C++. Она работает
только на компьютерах IBM PC и совместимых с ни-
ми, оснащенных дисплейными адаптерами, поддержи-
вающими графический режим.
Смотрите также getpixel, putimage.
Пример:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include<dos.h>
#define PIXEL_COUNT 1000
#define DELAY_TIME 100 /* в миллисекундах */
Int main(void)
{
/* Запрос автоопределения */
int graphdriver = DETECT, gmode, errorcode;
int x,y,i,color,maxx,maxy,maxcolor,seed;
/* инициализация графики и локальных переменных */
initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
{
printf("Ошибка :%s\n",grapherrormessage(errorcode));
printf("Для останова нажмите любую клавишу\n");
getch();
exit(1); /* завершение с кодом ошибки */
}
maxx = getmaxx();
maxy = getmaxy();
maxcolor = getmaxcolor()+1;
= 90 =
while(!kbhit())
{
/* сбросить генератор случайных чисел */
seed = random(32767);
srand(seed);
for(i=0;i<PIXEL_COUNT;i++)
{
x = random(maxx);
y = random(maxy);
color = random(maxcolor);
putpixel(x,y,color);
}
delay(DELAY_TIME);
srand(seed);
for(i=0;i<PIXEL_COUNT;i++)
{
x = random(maxx);
y = random(maxy);
color = random(maxcolor);
if(color == getpixel(x,y);
putpixel(x,y,0);
}
}
/* очистка */
getch();
closegraph();
return 0;
}
puts
Функция Выводит строку в поток stdout.
Синтаксис #include<stdio.h>
int puts(const char *s);
Файл, содержащий stdio.h
прототип
Описание Функция puts копирует строку символов с нулевым
окончанием в стандартный выходной поток stdout,
причем добавляет в конец символ перехода на новую
строку.
Возвращаемое При успешном завершении, функция puts ненулевое
значение значение. В противном случае возвращается EOF.
Переносимость Данная функция поддерживается на системах UNIX и
стандартом ANSI C.
= 91 =
Смотрите также cputs, fputs, gets, printf, putchar.
puttext
Функция Копирует текст из памяти на экран, в текстовом ре-
жиме.
Синтаксис #include<conio.h>
int puttext(int left, int top, int right,
int bottom, void *source);
Фйал, содержащий conio.h
прототип
Описание puttext помещает содержимое области памяти, адре-
суемой параметром source, в прямоугольник на эк-
ране, определяемый параметрами left, top, right,
bottom.
Все координаты являются абсолютными координатами
экрана, а не текстового окна. Левый верхний угол
экрана имеет координаты (1,1).
puttext размещает на экране содержимое памяти
последовательно, слева на право и сверху вниз.
puttext работает в текстовом режиме и производит
непосредственный вывод на экран.
Возвращаемое При успешном завершении puttext возвращает ненуле-
значение вое значение. При ошибке (к примеру, если указан-
ные координаты лежат вне пределов экрана для дан-
ного режима) puttext возвращает 0.
Переносимость puttext работает только на компьютерах, имеющих
совместимую с IBM PC BIOS.
Смотрите также gettext, movetext, window.
putw
Функция Помещает в поток целое значение.
Синтаксис #include <stdio.h>
int putw(int w, FILE *stream);
Файл, содержащий stdio.h
прототип
= 92 =
Описание putw выводит целое в указанный поток. Данная функ-
ция не вызывает и не ожидает никакого специально-
го выравнивания в файле.
Возвращаемое При успешном завершении putw возвращает выведенное
значение целое w. При ошибке возвращает EOF.
Т.к. EOF является допустимым целым значением, то
для определения ошибки нужно воспользоваться фун-
кцией ferror.
Переносимость функция поддерживается в системах UNIX.
Смотрите также getw, printf.
Пример:
#include<stdio.h>
#include<stdlib.h>
#define FNAME "test.$$$"
