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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2008, 12:13   #1
fredd
 
Регистрация: 30.10.2008
Сообщений: 5
Злость Задачка на массивы в delphi 7

само задание:
Задана матрица размером NxM. Получить массив B, присвоив его k-му элементу значение 1, если элементы k–й строки матрицы упорядочены по убыванию, и значение 0 в противном случае.
Массивы программа генерирует матрицу но при нажатии на кнопку "решить" вылазит- "invalid floating point operation"
procedure TForm1.Button3Click(Sender: TObject);
var
b,c:extended;
begin
for i:=1 to N do
for j:=1 to N do
mas1[i,j]:=StrTofloat(StringGrid1.Cells[i,j]);
for i:=1 to N do
if (mas1[i,j]=0) and (mas1[i,j]<>0) or (mas1[i,j]=1) and (mas1[i,j]<>1) then
begin
mas1[i,j]:=c;
mas1[i,j]:=mas1[i+1,j];
mas1[i+1,j]:=c;
end
else
mas1[i,j]:=i*0;
mas1[i,j]:=c;
stringgrid2.Cells[i,j]:=floattostr(mas1[i,j]);
end;
end.

чё тут неправильно? пробовал исправить но ничего не получается а без переведения в string не канает в таблицу вставлять
fredd вне форума Ответить с цитированием
Старый 27.11.2008, 12:25   #2
Deller
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 14
По умолчанию

а mass -ты как описал?? mass array of real? или mass array of extended?
дай все переменные - как ты их описал.
Deller вне форума Ответить с цитированием
Старый 27.11.2008, 12:28   #3
fredd
 
Регистрация: 30.10.2008
Сообщений: 5
По умолчанию

const
nmax=100;
var
Form1: TForm1;
Mas1: array[1..Nmax,1..nmax] of extended;
b,n,i,j:integer;
fredd вне форума Ответить с цитированием
Старый 27.11.2008, 12:45   #4
Deller
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 14
По умолчанию

а чего у тебя переменная b два раза описана?? это1.
и потом - нужно чтобы все ячейки в StringGrid были заполнены. Или предусматривай ситуацию перед тем как сделать:
mas1[i,j]:=StrTofloat(StringGrid1.Cells[i,j]);
нужно провести проверку на пустое значение в ячейке. -из-за пустых значений скорее всего у тебя эта ошибка и идет. Так как программа не может пустое перевести во Float. это 2
и чего такое N - оно чему равно?

Последний раз редактировалось Deller; 27.11.2008 в 12:58.
Deller вне форума Ответить с цитированием
Старый 27.11.2008, 13:22   #5
Deller
Пользователь
 
Регистрация: 13.11.2008
Сообщений: 14
По умолчанию

твоя логика в задаче не ясна абсолютна. но вроде до рабочего кода я ее докатил.
Код:
  const
nmax=10;

var
  Form1: TForm1;
  Mas1: array[1..Nmax,1..nmax] of extended;
b,n,i,j, p, k:integer;
col, row: integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
c:extended;
begin
c:=2; //это мое - не знаю чему у тебя.
for i:=1 to 10 do
for j:=1 to 10 do
mas1[i,j]:=StrTofloat(StringGrid1.Cells[i-1,j-1]);
for p:=1 to 10 do
for k:= 1 to 10 do begin

if (mas1[p,k]=0)and  (mas1[p,k]<>0) or (mas1[p,k]=1) and (mas1[p,k]<>1) then
begin
mas1[p,k]:=c;
mas1[p,k]:=mas1[p+1,k];
mas1[p+1,k]:=c;
end
else
mas1[p,k]:=p*1;
mas1[p,k]:=c;
stringgrid2.Cells[p-1,k-1]:=floattostr(mas1[p,k]);  {}
end;
end;
записи типа таких совсем не ясны. Может я туплю, но зачем сначала приравнивать одному, потом второму? тут же причем. странно.
mas1[p,k]:=p*1;
mas1[p,k]:=c;

и еще ячейки в StringGrid начинают с 0 считаться. А массив у тебя начинает с 1 считаться. Нужно учитывать. Это я учел в коде. Сделал для nmax:= 10;

Последний раз редактировалось Deller; 27.11.2008 в 13:36.
Deller вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачка на массивы DJ Kost Помощь студентам 6 14.11.2008 16:18
Задачка в delphi, вылазят ошибки... Absent Помощь студентам 3 17.02.2008 15:54
Массивы Delphi forumu Помощь студентам 2 11.01.2008 10:07
Задачка на массивы. Проверка и нумерация. Farfalla Паскаль, Turbo Pascal, PascalABC.NET 3 27.12.2007 08:53