Нарисовать на экране круг зеленого цвета, который движется по горизонтали - C (СИ)

Узнай цену своей работы

Формулировка задачи:

"Нарисовать на экране круг зеленого цвета, который движется по горизонтали, при достижении границы экрана превращается в квадрат и начинает движение в обратном направлении. Программа завершается нажатием любой клавиши. Рисование фигур оформить в виде процедуры." Нарисовать на экране круг зеленого цвета, который движется по горизонтали помогите пожалуйста подправить, чтобы комплилось на си

Решение задачи: «Нарисовать на экране круг зеленого цвета, который движется по горизонтали»

textual
Листинг программы
/*
 * Generated by TPTC - Translate Pascal to C
 *     Version 1.7 03/26/88   (C) 1988 S.H.Smith
 */
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <graphics.h>
 
void Krg(int x, int y, int r, int c)
{ 
setcolor(c); 
setfillstyle(1,c); 
circle(x,y,r); 
floodfill(x,y,c); 
};
 
void Kvd(int x, int y, int d, int c)
{ 
setcolor(c); 
setfillstyle(1,c); 
rectangle(x - d,y - d,x + d,y + d); 
floodfill(x,y,c); 
};
 
main(int argc, char  *argv[])
{ 
int      x, y, r, h; 
initgraph(&x,&y,"");
outtextxy(getmaxx() / 2 - 30,20,"Vyhod - any key"); 
r = 10; 
x = r; 
y = getmaxy() / 2; 
do { 
while ((x < getmaxx() - r) && !kbhit()) 
 { 
  h = 5; 
  x = x + h; 
  Krg(x,y,r,10); 
  delay(50); 
  Krg(x,y,r,0); 
 } 
while ((x > r) && !kbhit()) 
 { 
  h = -5; 
  x = x + h; 
  Kvd(x,y,r,10); 
  delay(50); 
  Kvd(x,y,r,0); 
 } 
}  while (!(kbhit())); 
};

Объяснение кода листинга программы

  1. #include Включает в код функции для работы с файлами и вывода данных в консоль.
  2. #include Включает в код функции для работы с клавиатурой и обработки пользовательского ввода.
  3. #include Включает в код функции для работы с памятью и строками.
  4. #include Включает в код функции для работы с графикой.
  5. void Krg(int x, int y, int r, int c) Функция для рисования круга заданного размера и цвета на экране.
  6. void Kvd(int x, int y, int d, int c) Функция для рисования прямоугольника заданного размера и цвета на экране.
  7. *main(int argc, char argv[])** Главная функция программы, в которой содержится основной код.
  8. int x, y, r, h; Объявление переменных для хранения координат и размеров круга.
  9. initgraph(&x,&y,``); Инициализация графической подсистемы с указанием дескрипторов для ввода и вывода.
  10. outtextxy(getmaxx() / 2 - 30,20,Vyhod - any key); Вывод текста на экран.
  11. r = 10; x = r; y = getmaxy() / 2; Установка начального размера и положения круга.
  12. do { Начало цикла, который выполняется до тех пор, пока не будет нажата клавиша.
  13. while ((x < getmaxx() - r) && !kbhit()) Цикл, который выполняется, пока круг не выйдет за пределы экрана по горизонтали.
  14. { Начало блока кода, который выполняется внутри цикла.
  15. h = 5; x = x + h; Установка значения переменной h и увеличение координаты x.
  16. Krg(x,y,r,10); Вызов функции для рисования круга.
  17. delay(50); Задержка перед выводом следующего круга.
  18. Krg(x,y,r,0); Вызов функции для рисования круга другим цветом.
  19. } Конец блока кода, который выполняется внутри цикла.
  20. while ((x > r) && !kbhit()) Цикл, который выполняется, пока круг не выйдет за пределы экрана по вертикали.
  21. { Начало блока кода, который выполняется внутри цикла.
  22. h = -5; x = x + h; Установка значения переменной h и уменьшение координаты x.
  23. Kvd(x,y,r,10); Вызов функции для рисования прямоугольника.
  24. delay(50); Задержка перед выводом следующего прямоугольника.
  25. Kvd(x,y,r,0); Вызов функции для рисования прямоугольника другим цветом.
  26. } Конец блока кода, который выполняется внутри цикла.
  27. } while (!(kbhit())); Конец цикла, который выполняется до тех пор, пока не будет нажата клавиша.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы