![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 02.07.2008
Сообщений: 11
|
![]()
Вообщем,такое задание:Необходимо нарисовать розу ветров для некоторого промежутка времени по данным файла INPUT.TXT. В файле в одной строке записано 8 целых чисел: первое указывает сколько дней ветер дул с востока, второе – с северо-востока, третье – с севера, четвертое – с северо-запада, пятое – с запада, шестое – с юго-запада, седьмое - с юга, восьмое – с юго-востока. Начало отсчета должно совпадать с центром экрана!
procedure razm(x:tstringgrid); var i:integer; begin with x do begin clientwidth:=-1; for i:=0 to colcount-1 do clientwidth:=clientwidth+colwidths[i]+gridlinewidth; clientheight:=-1; for i:=0 to rowcount-1 do clientheight:=clientheight+rowheigh ts[i]+gridlinewidth; end; end; procedure TForm1.FormCreate(Sender: TObject); var i:integer; begin with StringGrid1 do begin For i:=0 to 7 do ColWidths[i]:=40; Cells[0,0]:='Восток'; Cells[1,0]:='С-В'; Cells[2,0]:='Север'; Cells[3,0]:='С-З'; Cells[4,0]:='Запад'; Cells[5,0]:='Ю-З'; Cells[6,0]:='Юг'; Cells[7,0]:='Ю-В'; end; end; procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute then AssignFile(f,OpenDialog1.FileName); end; procedure TForm1.Button2Click(Sender: TObject); var i,v,sv,s,sz,z,uz,u,uv:integer; begin reset(f); StringGrid1.Visible:=true; while not Eof(f) do begin Readln(f,v,sv,s,sz,z,uz,u,uv); StringGrid1.Cells[0,1]:=IntToStr(v); StringGrid1.Cells[1,1]:=IntToStr(sv); StringGrid1.Cells[2,1]:=IntToStr(s); StringGrid1.Cells[3,1]:=IntToStr(sz); StringGrid1.Cells[4,1]:=IntToStr(z); StringGrid1.Cells[5,1]:=IntToStr(uz); StringGrid1.Cells[6,1]:=IntToStr(u); StringGrid1.Cells[7,1]:=IntToStr(uv); end; CloseFile(f); razm(stringgrid1); end; procedure TForm1.Button3Click(Sender: TObject); var i,v,sv,s,sz,z,uz,u,uv:integer; begin with StringGrid1 do begin v:=StrToInt(cells[0,1]); sv:=StrToInt(cells[1,1]); s:=StrToInt(cells[2,1]); sz:=StrToInt(cells[3,1]); z:=StrToInt(cells[4,1]); uz:=StrToInt(cells[5,1]); u:=StrToInt(cells[6,1]); uv:=StrToInt(cells[7,1]); end; with image1.Canvas do begin Pen.Color:=clBlack; pen.Style:=psSolid; moveto(190,190); {центр} lineto(190,190-s); {север} lineto(190,190+u); {юг} moveto(190,190); lineto(190+v,190); {восток} lineto(190-z,190); {запад} { Pen.Color:=clred; moveto(190,190); lineto(330,50); {с-в} lineto(50,330); {ю-з} moveto(190,190); {это я просто диагонали начертила) lineto(50,50); {с-з} lineto(330,330); {ю-в}} end; Вот, это программа,которая у меня получилась,Накорябала её сама,поэтому строго не судите,уверена можно решить куда более "нормальным" образом))) Подскажите плиз,как записать нормально координаты для северо-востока,северо-запада,юго-запада и юго-востока,а то у меня,ну, никак не получается...(((Всем за ранее огромнейшее СПАСИБО)) |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Если в Вашем стиле, то так:
Код:
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 02.07.2008
Сообщений: 11
|
![]()
Спасибочки)))
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi Редактирование текстового файла | Starscream | Общие вопросы Delphi | 11 | 18.02.2008 17:15 |
Открытие текстового файла | Victor | Microsoft Office Excel | 2 | 16.01.2008 03:42 |
Как считывать данные с COM,LPT порта и нарисовать график | Sergiu | Фриланс | 2 | 22.12.2007 11:53 |