Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2014, 17:59   #21
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

Вот что выделено:
Изображения
Тип файла: jpg Безыgdfgdfgмянный.jpg (20.7 Кб, 145 просмотров)
Аника Янковская вне форума Ответить с цитированием
Старый 19.11.2014, 18:02   #22
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,987
По умолчанию

Вышли файлы: Unit1.pas, Unit2.pas, Unit1.dfm, Unit2.dfm. Посмотрю
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 19.11.2014, 18:06   #23
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Ошибка мне кажется вот здесь. И об этом уже писали
Код:
x:=StrToFloat(StringGrid1.Cells[2,3]);
y:=StrToFloat(StringGrid1.Cells[3,4]);
Покажи на снимке экрана ячейки [2,3] и [3,4] , и что в них написано. Я так понял, они существуют, то есть столбцов уже не 2, а больше.
В них пусто.

Кстати, вот где они расположены
Изображения
Тип файла: jpg strgr.jpg (8.7 Кб, 14 просмотров)

Последний раз редактировалось type_Oleg; 19.11.2014 в 18:14.
type_Oleg вне форума Ответить с цитированием
Старый 19.11.2014, 18:14   #24
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

Я нашла свою ошибку, спасибо.

А если мне надо площадь многоугольника посчитать, вот так :
Код:
for i:=1 to n do
s := s + (x[i]*y[i+1] - y[i]*x[i+1]);
s:=abs(s/2);
Как записать чтобы с таблицы считывались i-тые значения??? Если можно, подскажите пжл.

Последний раз редактировалось Stilet; 19.11.2014 в 19:00.
Аника Янковская вне форума Ответить с цитированием
Старый 19.11.2014, 18:28   #25
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,987
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
    s:real;
begin
   s:=0;
   For i:=1 to StringGrid1.RowCount-2 do
      s:=s+StrToFloat(StringGrid1.Cells[0,i])*StrToFloat(StringGrid1.Cells[1,i+1])-
           StrToFloat(StringGrid1.Cells[1,i])*StrToFloat(StringGrid1.Cells[0,i+1]);
   s:=Abs(s/2);
end;
Так что ли?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 19.11.2014, 18:30   #26
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Цитата:
Сообщение от Аника Янковская Посмотреть сообщение
..
Как записать чтобы с таблицы считывались i-тые значения??? Если можно, подскажите пжл.
Как то так..
Код:
 x[i]:=StrToFloatDef(StringGrid1.Cells[0,i],0);  
 y[i]:=StrToFloatDef(StringGrid1.Cells[1,i],0);
.. Def значит ,что если в ячейке будет пусто или какая-то фигня вместо числа, то это поймется как 0 и не будет аварийного выхода.
Ну и массивы x,y надо конечно описать в var
type_Oleg вне форума Ответить с цитированием
Старый 19.11.2014, 18:34   #27
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,987
По умолчанию

Цитата:
Ну и массивы x,y надо конечно описать в var
Плюс размерность массива через SetLength изменить
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 19.11.2014, 18:40   #28
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,504
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
Плюс размерность массива через SetLength изменить
А, ну да.. Массив же будет динамическим, если число вершин заранее неизвестно.

Тогда, если эти x[и], y[и] нужны только для расчета s, то вообще обойтись без массива, как у тебя .
type_Oleg вне форума Ответить с цитированием
Старый 19.11.2014, 18:57   #29
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

Поскольку многоугольник произвольный строится, то и кол-во координат каждый раз будет различным. Как в массиве это лучше прописать???
И еще вопрос: почему так писали StringGrid1.RowCount-2
Аника Янковская вне форума Ответить с цитированием
Старый 19.11.2014, 18:58   #30
Аника Янковская
Пользователь
 
Регистрация: 23.10.2014
Сообщений: 58
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
    s:real;
begin
   s:=0;
   For i:=1 to StringGrid1.RowCount-2 do
      s:=s+StrToFloat(StringGrid1.Cells[0,i])*StrToFloat(StringGrid1.Cells[1,i+1])-
           StrToFloat(StringGrid1.Cells[1,i])*StrToFloat(StringGrid1.Cells[0,i+1]);
   s:=Abs(s/2);
end;
Так что ли?
Почему то, я выделяю одну площадь, и получаются каждый раз разные значения, странно???
Аника Янковская вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с элементами массива aenk Помощь студентам 0 05.12.2011 12:48
[C#] Работа с элементами массивов Doublefaced Помощь студентам 1 18.06.2009 15:34
Работа с матрицами (StringGrid, Delphi) Ратмир Помощь студентам 2 04.04.2009 13:41
Работа с однотипными элементами Bonifacyi Общие вопросы Delphi 3 26.01.2009 00:22
Delphi:Работа с Listbox и StringGrid Shaitan Помощь студентам 2 11.11.2008 21:04