Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вариант_№20.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
348 Кб
Скачать
☆

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.$$$"

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]