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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2013, 23:35   #1
Катерина Рыжая
Пользователь
 
Регистрация: 27.10.2012
Сообщений: 14
По умолчанию Оконное приложение дельфи

добрый вечер, вот моя задача:
Даны одномерные массивы C, D. Нужно найти и вывести(в одномерный массив В) множество значений, имеющихся в D, но,которых нет в С и которые не равны А(число А задано). Так же найти сумму найденных значений.


вот текст программы:

Код:
procedure TForm1.Button1Click(Sender: TObject);
Var i,n:integer;
begin
n:=StrToInt(Edit1.Text);
StringGrid1.ColCount:=n+1; 
StringGrid1.RowCount:=2;
StringGrid2.RowCount:=2;
StringGrid2.ColCount:=n+1; 
for i:=1 to n do 
StringGrid1.Cells[i,0]:=IntToStr(i);
for i:=1 to n do 
StringGrid2.Cells[i,0]:=IntToStr(i);
end;


procedure TForm1.Button2Click(Sender: TObject);
var i,n:byte; S,A:real;
C:array of real;
D:array of real;
B:array of Real;
begin
n:=StrToInt(Edit1.Text);
SetLength(C,n);
SetLength(D,n);
SetLength(B,n);
StringGrid3.ColCount:=n+1;  
for i:=1 to n do 
if StringGrid1.Cells[i,0]='' then 
C[i-1]:=0 
else
C[i-1]:=StrToFloat(StringGrid1.Cells[0,i]);

if StringGrid2.Cells[0,i]='' then 
D[i-1]:=0 
else
D[i-1]:=StrToFloat(StringGrid2.Cells[0,i]); 

for i:=0 to (n-1) do
begin
S:=0; B[i]:=0; A:=StrToFloat(Edit2.Text);

if(D[i]<>C[i]) and (D[i]<>A) then
  begin
  D[i]:=B[i];
  S:=S+B[i];
  end;
end;

for i:=0 to n-1 do
begin 
StringGrid3.Cells[i,1]:=FloatToStr(B[i]);

end;
 Edit3.Text:=FloatToStr(S);
end;

выдает сообщение ".........is not a valid floating point value...."
в чем проблема?( подскажите, пожалуйста



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 24.03.2013 в 23:48.
Катерина Рыжая вне форума Ответить с цитированием
Старый 24.03.2013, 23:49   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
выдает сообщение ".........is not a valid floating point value...."
в какой-то ячейке грида у Вас НЕ число (скорее всего - пустая строка)

обратите внимание, вы записываете числа в гриды по столбцам:
Цитата:
Код:
for i:=1 to n do 
StringGrid1.Cells[i,0]:=IntToStr(i);
for i:=1 to n do 
StringGrid2.Cells[i,0]:=IntToStr(i);
а считываете - по сторокам:
Код:
for i:=1 to n do 
if StringGrid1.Cells[i,0]='' then 
C[i-1]:=0 
else
C[i-1]:=StrToFloat(StringGrid1.Cells[0,i]);

if StringGrid2.Cells[0,i]='' then 
D[i-1]:=0 
else
D[i-1]:=StrToFloat(StringGrid2.Cells[0,i]);

Последний раз редактировалось Serge_Bliznykov; 24.03.2013 в 23:53.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
оконное приложение Алексадр Демин Помощь студентам 1 09.03.2013 17:07
оконное приложение. в чем ошибка? Катерина Рыжая Помощь студентам 2 09.03.2013 14:50
простейшее оконное приложение sergej735 Win Api 3 18.06.2011 10:40
оконное приложение programmm Win Api 1 16.05.2011 23:09