Форум программистов, компьютерный форум CyberForum.ru

Построение ломаной с использование graphics.h - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Передача указателей на функции в экземпляр класса http://www.cyberforum.ru/cpp-beginners/thread62756.html
Есть класс главного окна,класс содержит такой метод public: void pFuncTake( void (*p1)(char *path), void (*p2)(), void (*p3)(),void (*p4)() );который должен принимать указатели на функции,сохранять и далее по мере надобности с ними работать.Это часть разделяемой библиотеки,указатели на функции я пытаюсь сделать затем,чтобы не подключать внутренние заголовки программы к самой библиотеке....
C++ на языке с кто сможет помогите пожалуйста!Даны 3 числа а,в,с.Найти значение минимального отклонения каждого из них от среднего арифметического.Заранее спасибо! http://www.cyberforum.ru/cpp-beginners/thread62750.html
C++ Нужно переделать
Дано натуральное число .Установить, является ли последовательность его цифр при просмотре их слева направо упорядоченной по возрастанию.У меня тут есть программа только для четырёхзначного числа # include <iostream.h> # include <windows.h> int main() { SetConsoleOutputCP(1251); int A, a, b, c, d; cout<<"Введите число"; cin>>A;
Массив(Замена выбранных элементов). Область памяти(замена выбранных элементов) C++
Собственно 3 задачи в которых нужна помощь...Может кто нить встречался с таким родом задач? 1.Создать массив из 20 элементов, заменить 5 выбранных пользователем элементов массива и вывести новый на экран. в этой задаче я не могу понять как вывести новый массив из 20 элементов с заменёнными элементами Мой вариант #include "stdafx.h"
C++ Ввести одномерный массив A , вывести его http://www.cyberforum.ru/cpp-beginners/thread62726.html
Помогите пожалуйста если не затруднит. Ввести одномерный массив A , вывести его. Найти наибольший элимент среди тех , которые находятся на нечётных позициях. На полученное значением уменьшить элементы с чётными индексами массива.
C++ Список Дан список, элементы которого являются координатами вектора в n-мерном пространстве. Надо найти длину вектора. подробнее

Показать сообщение отдельно
vironika
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 3

Построение ломаной с использование graphics.h - C++

10.11.2009, 20:40. Просмотров 1713. Ответов 0
Метки (Все метки)

добрый день всем! мне этот сайт порекомендовала подруга в том что вы можете решить проблему и дать совет в розроботке программы на с++.. так вот, у меня возникли проблемы с курсовой работой: условие звучит так:
В файле заданы координаты центров и радиусы окружностей. В другом файле заданы координаты одной из вершин вложенного квадрата для каждой окружности. Вывести на экран окружности и вписанные в них квадраты. Центры окружностей, в которые вписаны квадраты, имеющие площадь в пределах между средней площадью окружностей и средней площадью квадратов, соединить ломаной, отрезки которой не пересекаются между собой
оригинал
У файлі задано координати центрів та радіуси кіл. В іншому файлі задано координати однієї з вершин вписаного квадрата для кожного кола. Вивести на екран кола та вписані у них квадрати. Центри кіл, в яких вписані квадрати, що мають площу у межах між середньою площею кіл та середньо площею квадратів, з єднати ламаною, відрізки якої не перетинаться між собою.

не могу дописать до конца(((!!!
вот моя программа, [при запуске вкл. графику]:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
void initgr()
{
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "");
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}
};
struct Point{
long x,y;
};
 
class Circle{
Point p;
long r;
public:
Circle(){};
Circle(int a,int b,int c)
{p.x=a; p.y=b; r=c;}
void draw(int col)
{
setcolor(col);
circle(p.x,p.y,r);
}
long gx(){return p.x;};
long gy(){return p.y;};
long gr(){return r;};
};
 
Point Triangel(Point p1,Point p2)
{
float R,k,D;
Point per1,per2;
if (p1.y==p2.y)
{
per1.x=(p1.x+p2.x+1)/2;
per2.x=(p1.x+p2.x+1)/2;
per1.y=p1.y+abs(per1.x-p2.x);
per2.y=p1.y-abs(per1.x-p2.x);
}
else
{
long x2,y2;
x2=p2.x-p1.x;
y2=p2.y-p1.y;
k=(x2*x2+y2*y2)/2;
R=sqrt(2*k)/sqrt(2);
D=4*k*k*x2*x2-8*k*(k*k-R*R*y2*y2);
per1.x=(2*k*x2+sqrt(D))/(4*k)+p1.x+1/2;
per2.x=(2*k*x2-sqrt(D))/(4*k)+p1.x+1/2;
per1.y=(k-(per1.x-p1.x)*x2)/(y2)+p1.y;
per2.y=(k-(per2.x-p1.x)*x2)/(y2)+p1.y;
}
if (per1.x>0 && per1.x<640 && per1.y>0 && per1.y<480)
{
return per1;
}
else if (per2.x>0 && per2.x<640 && per2.y>0 && per2.y<480)
{
return per2;
}
else
{
clrscr();
printf("Ne to");
}
}
 
class Kvadrat{
Point p1,p2,p3,p4;
public:
Kvadrat (){};
Kvadrat (Point a, long x1, long y1)
{
p1=a;
p3.x=2*x1-p1.x;
p3.y=2*y1-p1.y;
p2=Triangel(p1,p3);
p4.x=2*x1-p2.x;
p4.y=2*y1-p2.y;
 
}
void draw(int col)
{
setcolor(col);
line(p1.x,p1.y,p2.x,p2.y);
line(p1.x,p1.y,p4.x,p4.y);
line(p3.x,p3.y,p2.x,p2.y);
line(p4.x,p4.y,p3.x,p3.y);
}
};
 
int main(void)
{
initgr();
FILE *fp;
if ((fp = fopen("input.txt", "r"))
== NULL)
{
fprintf(stderr, "Cannot open input file.\n");
}
int trr,n=0;
while ((trr=getc(fp))!=EOF)
if (trr=='=')
n++;
n=n/3;
rewind(fp);
Circle *c;
char str[100];
c=new Circle[n];
fgets(str,100,fp);
int R,X,Y;
for(int i=0;i<n;i++)
{
fscanf(fp,"%s%s%2s%d%s%2s%d%s%2s%d%s",str,str,str,&X,str,str,&Y,str,str,&R,str);
c[i]=Circle(X,Y,R);
}
 
fclose(fp);
FILE *f;
if ((f = fopen("input.txt", "r"))
== NULL)
{
fprintf(stderr, "Cannot open input file.\n");
}
/*
Kvadrat *kv;
kv=new Kvadrat[n];
char str[100];
fgets(str,100,fp);
int X;
for(int i=0;i<n;i++)
{
fscanf(fp,"%s%s%2s%d%s",str,str,str,&X,str);
kv[i]=Kvadrat(X);
}
 
fclose(fp);
*/
for(i=0;i<n;i++)
c[i].draw(3);
 
Point q;
q.x=c[0].gx()-c[0].gr()/sqrt(2);
q.y=c[0].gy()-c[0].gr()/sqrt(2);
Kvadrat kv;
kv=Kvadrat(q,(c[0].gx()),(c[0].gx()));
kv.draw(3);
 
for(i=0;i<2;i++)
getch();
closegraph();
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru