Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/43: Рейтинг темы: голосов - 43, средняя оценка - 4.51
2 / 2 / 3
Регистрация: 06.10.2009
Сообщений: 123
1

Роза ветров

15.11.2009, 10:38. Показов 8253. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как люди есть такая задачка,но я ее не сделаю без помощи,помогите пожалуйста!!!
распредение скорости ветра по каждому из восьми направлений задано массивом из восьми чисел,посторить "розу ветров" с указанием направлений!!!

не пойму вот ,коргда я подключаю graph мне пишет типа отсутсвует graph.tpu,где его взять,tpu этот??

удалите ,извините не сюда написал
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2009, 10:38
Ответы с готовыми решениями:

Типизированные файлы. "Роза Ветров"
Файл(типизированный), содержит информацию о направлении ветра в некотором населенном пункте в...

5-тилепесковая роза
необходимо нарисовать график 5-тилепестковой розы (r=cos(5*fi)) uses graphABC; var...

Построить график функции в полярной системе координат: p=a sin (4u/3) (восьми лепестковая роза)
Построить график функции в полярной системе координат: p=a sin (4u/3) (восьми лепестковая роза);

Графика: Трехлепестковая роза ρ=sin3φ
Трехлепестковая роза ρ=sin3φ

18
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
15.11.2009, 10:44 2
Цитата Сообщение от babur4iK Посмотреть сообщение
типа отсутсвует graph.tpu,
Модуль Graph.tpu лежит в папке Units. Скопируйте его оттуда в папку с программой. Также скопируйте из папки DGI модуль EGAVGA.BGI
1
2 / 2 / 3
Регистрация: 06.10.2009
Сообщений: 123
15.11.2009, 11:54  [ТС] 3
может-кто нить напарвит на путь истинный!!!!!
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
15.11.2009, 12:06 4
babur4iK, Приложи изображение какую тебе нужно розу, т.е. диаграмму. Их для разных случаев по разному рисуют.
1
2 / 2 / 3
Регистрация: 06.10.2009
Сообщений: 123
15.11.2009, 12:11  [ТС] 5
Puporev,

я сам не знаю ,там ниче не написано,можно самою простую любую!!!!
0
Тимуровец
445 / 285 / 50
Регистрация: 10.09.2009
Сообщений: 963
15.11.2009, 12:14 6
А почему 8 направлений? Их вообще-то 16. Вот смотрите: http://ru.wikipedia.org/wiki/Ф... _North.svg
0
Босс
161 / 126 / 10
Регистрация: 03.06.2009
Сообщений: 750
15.11.2009, 12:15 7
Страдалецъ, не путайте человека.
1
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
15.11.2009, 13:26 8
Страдалецъ, При желании и поставленной задачи можно и 360 направлений. Автору не геральдическая роза нужна, а заданная условием.

Добавлено через 1 час 8 минут
Вот нарисовал тебе. Можешь поменять цвета, подкорректировать вывод. ССкачай эту книжку, там все что я писал, описано.
https://www.cyberforum.ru/atta... 1241779566
Pascal
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
uses crt,graph;
const
n=8;
napr:array[1..n] of string[2]=('N','NW','W','SW','S','SO','O','NO');//массив направлений
type
Roza=record //тип запись - роза
     skr:byte;//скорость
     npr:string[2];//направление
     end;
Point=record//тип запись - точка
      x,y:integer;//координаты
      end;
var sk:array[1..n] of Roza;//массив скоростей и напрвлений
    p:array[1..n+1] of Point;//иассив точек
    i,gd,gm,x0,y0,x,y,x1,y1,x2,y2,mx:integer;
    msh:real;//масштаб для перевода в экранные координаты
    st:string;//строка для преобразования числовых значений в строковые
begin
clrscr;
writeln('Vvedite skorosti po napravleniyam(0-100):');
for i:=1 to n do
 begin
  sk[i].npr:=napr[i];//направление из массива
  repeat
  write('sk[',i,']=');//скорость вводим
  readln(sk[i].skr);
  until sk[i].skr in [0..100];
 end;
clrscr;
mx:=sk[1].skr;//нахпдим макс. скорость для диаграммы
for i:=1 to n do
 begin
  write(sk[i].npr:4);
  if sk[i].skr>mx then mx:=sk[i].skr;
 end;
writeln;
for i:=1 to n do
write(sk[i].skr:4);//выводим на экран, посмотреть
writeln;
write('Press Enter...');
readln;
gd:=0;
initgraph(gd,gm,'');//переход в графический режим
x0:=getmaxX div 2;y0:=getmaxY div 2;
msh:=(y0-40)/mx;//масштаб
for i:=1 to n do//создаем массив точек на 1 больше
 begin
  p[i].x:=x0+round(sk[i].skr*cos((i+1)*pi*45/180)*msh);
  p[i].y:=y0-round(sk[i].skr*sin((i+1)*pi*45/180)*msh);
 end;
p[n+1].x:=p[1].x;p[n+1].y:=p[1].y;//последняя точка=первой для замыкания
moveto(p[1].x,p[1].y);//встаем в точку 1
setcolor(12);
for i:=1 to n+1 do
lineto(p[i].x,p[i].y);//соединяем все точки
for i:=1 to n do
 begin
  x:=x0+round(mx*cos((i+1)*pi*45/180)*msh);//координаты подписей направлений
  y:=y0-round(mx*sin((i+1)*pi*45/180)*msh);
  setcolor(14);
  line(x0,y0,x,y);//соединяем центр с направлением
  setcolor(11);
  x1:=x0+round((mx+1/msh)*cos((i+1)*pi*45/180)*msh);
  y1:=y0-round((mx+1/msh)*sin((i+1)*pi*45/180)*msh);
  if x<x0 then outtextXY(x1-10,y1,sk[i].npr)//выводим направления
  else outtextXY(x1,y1,sk[i].npr);
  setcolor(13);
  x1:=x0+round(sk[i].skr*cos((i+1)*pi*45/180)*msh);
  y1:=y0-round(sk[i].skr*sin((i+1)*pi*45/180)*msh);
  str(sk[i].skr,st);
  if x<x0 then outtextXY(x1+5,y1,st)//выводим значения
  else outtextXY(x1-10,y1,st);
 end;
readln
end.
1
2 / 2 / 3
Регистрация: 06.10.2009
Сообщений: 123
15.11.2009, 13:44  [ТС] 9
спасибо огромное ОГРОМНОЕ!!!

Но попытаюсь сам по проще сделать как мне понятно!!!!!!

ОГРОМНОЕ СПАСИБО
0
2 / 2 / 3
Регистрация: 06.10.2009
Сообщений: 123
15.11.2009, 17:05  [ТС] 10
а можно например нарисовать допустим 8 конечную звезду и на концах 'N','NW','W','SW','S','SO','O','NO написать??

так мне понятнее

я вот 4-х конечную сделал,а вот 8 конечную не могу

Pascal
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
program s1;
uses crt,graph;
Var gd,gm:integer; x,y:array [1..300] of integer;
begin
Gd:=detect;
Gm:=1;
initgraph(gd,gm,'c:/tp7/bin');
setcolor(2);
setlinestyle(0,2,1);
 
 
x[1]:=200;
x[2]:=200;
y[1]:=0;
y[2]:=400;
y[3]:=200;
y[4]:=200;
x[3]:=0;
x[4]:=400;
x[5]:=150;
y[5]:=150;
x[6]:=250;
y[6]:=y[5];
x[7]:=x[5];
x[8]:=x[6];
Y[7]:=250;
y[8]:=y[7];
x[9]:=200;
y[9]:=200;
setcolor(14);
 
 
line(x[1],y[1],x[9],y[9]);
line(x[2],y[2],x[9],y[9]);
line(x[3],y[3],x[9],y[9]);
line(x[4],y[4],x[9],y[9]);
line(x[5],y[5],x[9],y[9]);
line(x[6],y[6],x[9],y[9]);
line(x[7],y[7],x[9],y[9]);
line(x[8],y[8],x[9],y[9]);
line(x[1],y[1],x[5],y[5]);
line(x[1],y[1],x[6],y[6]);
line(x[1],y[1],x[9],y[9]);
line(x[1],y[1],x[6],y[6]);
line(x[1],y[1],x[2],y[2]);
line(x[3],y[3],x[5],y[5]);
line(x[3],y[3],x[7],y[7]);
line(x[2],y[2],x[8],y[8]);
line(x[2],y[2],x[7],y[7]);
line(x[4],y[4],x[6],y[6]);
line(x[4],y[4],x[8],y[8]);
line(x[1],y[1],x[6],y[6]);
line(x[1],y[1],x[2],y[2]);
 
 
 
floodfill(231,100,14);
floodfill(131,170,14);
floodfill(231,230,14);
floodfill(180,290,14);
 
readkey;
end.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
15.11.2009, 17:39 11
babur4iK, Зачем тебе звезда? Тебе нужно показать в какую сторону какой скорости ветер чаще бывает.

Добавлено через 2 минуты
Тебе это нужно.
http://festival.1september.ru/articles/502241/
Там описание, а внизу страницы картинка диаграммы.
1
2 / 2 / 3
Регистрация: 06.10.2009
Сообщений: 123
15.11.2009, 17:45  [ТС] 12
Puporev,

о спасибо,жестко жестко надо разбираться
0
2 / 2 / 3
Регистрация: 06.10.2009
Сообщений: 123
28.11.2009, 16:45  [ТС] 13
спасибо Puporev, за идею!!!

но вот у вас сложновать немоного я решил сделать как мне понятней

Pascal
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
uses crt,graphABC;
const
n=8;
napr:array[1..n] of string=('N','NW','W','SW','S','SO', 'O','NO');//ìàññèâ íàïðàâëåíèé
type
Roza=record //òèï çàïèñü - ðîçà
skr:byte;//ñêîðîñòü
npr:string;//íàïðàâëåíèå
end;
 
var sk:array[1..n] of Roza;//ìàññèâ ñêîðîñòåé è íàïðâëåíèé
 
i, h:integer;
 
 
begin
clrscr;
writeln('Vvedite skorosti po napravleniyam(0-50):');
for i:=1 to n do
begin
sk[i].npr:=napr[i];//íàïðàâëåíèå èç ìàññèâà
repeat
 
write('sk[',i,']=');//ñêîðîñòü ââîäèì
readln(sk[i].skr);
until sk[i].skr in [0..50];
 
end;
clrscr;
 
writeln;
for i:=1 to n do
write(sk[i].skr:4);//âûâîäèì íà ýêðàí, ïîñìîòðåòü
writeln;
write('Press Enter...');
readln;
h:=5;
line(320,250,320,250-h*sk[1].skr);
line(320,250,320,250+h*sk[2].skr);
line(320,250,320-h*sk[3].skr,250);
line(320,250,320+h*sk[4].skr,250);
end.
Проблема в том ,что не могу дорисовать на розе ветров еще две линии,идея есть : round (sqrt(h/2)); но не получается

вот и еще не могу вывести направление.т.е чтобы после линии там выводилось направаление там S ,Т и т.д,оси подписать короче!!!

помогите чем можете
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
28.11.2009, 16:54 14
babur4iK, Твоя программа, это твоя программа, свою я уже написал.
1
2 / 2 / 3
Регистрация: 06.10.2009
Сообщений: 123
28.11.2009, 21:46  [ТС] 15
вы извините я ничто плохо не имею против вас!я все понимаю
0
2 / 2 / 3
Регистрация: 06.10.2009
Сообщений: 123
29.11.2009, 11:57  [ТС] 16
Pascal
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
uses crt,graphABC;
const
n=8;
napr:array[1..n] of string=('N','NW','W','SW','S','SO','O','NO');//массив направлений
type
Roza=record //тип запись - роза
     skr:byte;//скорость
     npr:string;//направление
     end;
 
var sk:array[1..n] of Roza;//массив скоростей и напрвлений
 
    i, h:integer;
 
 
begin
 
writeln('Vvedite skorosti po napravleniyam(0-50):');
for i:=1 to n do
 begin
  sk[i].npr:=napr[i];//направление из массива
  repeat
 
  write('sk[',i,']=');//скорость вводим
  readln(sk[i].skr);
  until sk[i].skr in [0..50];
 
 end;
clrscr;
 
writeln;
for i:=1 to n do
write(sk[i].skr:4);//выводим на экран, посмотреть
writeln;
write('Press Enter...');
clrscr;
readln;
 h:=20;
     line(320,250,320,250-h*sk[1].skr);
     line(320,250,320,250+h*sk[2].skr);
     line(320,250,320-h*sk[3].skr,250);
     line(320,250,320+h*sk[4].skr,250);
     line(320,250,Round(320-h*sk[5].skr*sqrt(h/2)),Round(250-h*sk[5].skr*sqrt(h/2)));
     line(320,250,Round(320+h*sk[6].skr*sqrt(h/2)),Round(250-h*sk[6].skr*sqrt(h/2)));
     line(320,250,Round(320-h*sk[7].skr*sqrt(h/2)),Round(250+h*sk[7].skr*sqrt(h/2)));
     line(320,250,Round(320+h*sk[8].skr*sqrt(h/2)),Round(250+h*sk[8].skr*sqrt(h/2)));
 
end.
надо оси подписать как это сделать?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
29.11.2009, 12:13 17
Честно говоря вообще не понял, зачем Вы все исковеркали, и что пытаетесь изобразить. А в АВС я не умею с графикой работать.
1
2 / 2 / 3
Регистрация: 06.10.2009
Сообщений: 123
29.11.2009, 13:05  [ТС] 18
Puporev,

да мне так сказали пойдет!!!

я уже все сделал ,спасибо!!!
0
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 4
12.02.2013, 21:38 19
а как нарисовать розу ветров на языке с++?подскажите пожалуйста)
0
12.02.2013, 21:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2013, 21:38
Помогаю со студенческими работами здесь

Определить, является ли заданная строка палиндромом (пример палиндрома:'А РОЗА УПАЛА НА ЛАПУ АЗОРА')
Помогите найти ошибку! program palindrom; uses crt; var S: string; k,i: integer; ...

Определить как должен быть расположен жилой комплекс по отношению к комбинату, исходя из "розы ветров"
При выборе места строительства жилого комплекса вблизи металлургического комбината необходимо...

Изобразить график функции "Четырехлепестковая роза"
Цель работы - изобразить функцию. Для этого выбрать три характерных варианта графика. Вывод графика...

Роза ветров
Построить на экране розу ветров по заданным натуральным числа к1,…к8, определяющим северное,...

Роза ветров
Довольна интересная задача, но непосильная пока мне(( на борланде надо Создать файл, содержащий...

Трехмерная роза ветров
Здравствуйте, уважаемые форумчане. Я ломаю готову над тем, как построить трехмерную розу ветров...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru