IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> ошибка
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 143
Пол: Мужской

Репутация: -  0  +


выдаёт программа ошибку
invalid floating point operation
Код
Program nomer10;
  uses crt;
      Type
       mas=array [1..5,1..5] of real;
       mas1=array [1..5] of real;

     Procedure Matrix( var a:mas);
     var
     i,j,y:integer;

      Begin
       for i:=1 to 5 do
       begin
       for j:=1 to 5 do
        begin
    a[i,j]:=exp((-i+1)*ln(2))*(j-3.8)*(j*abs(2-3/j));
           write('a[',i,',',j,']=',a[i,j]:2:2,'   ');
         end;
         writeln;
       end;
      End;

   Procedure Vector(var a:mas; var x:mas1);

var

 i, j: integer;

 Dv: real;

begin

 Dv:=1;
 for i:=1 to 5 do

 begin

    for j:=1 to 5 do
     begin
     if a[i,j]<0 then Dv:=Dv*a[i,j];
     x[i]:=Dv;
     end;
 end;

 for i := 1 to 5 do
   writeln('x[',i,']=',x[i]);

end;


  Function G (x:mas1):real;
 var
        i,k:integer;
        S,d:real;
        Begin
        d:=1;
        S:=0;
        for i:=1 to 5 do
        begin
           begin
             for k:=1 to i do
      d:=d*x[k];
    end;
   S:=S+(sqr(x[i])+exp((1/3)*ln(d)));{вот здесь ошибка}
        end;
        G:=S;
        End;


         VAR
         b:mas;
         x1:mas1;
         i,j:integer;

         BEGIN
         clrscr;
         matrix(b);
         writeln;
         vector(b,x1);
         writeln;
         writeln('G=',G(x1):2:4);
         readkey;
         END.

пробовал менять тип на extended не помогает... unsure.gif в чём может быть проблема?

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 6)
сообщение
Сообщение #2


Гость






Ln от отрицательного числа нельзя брать... Возводи в степень по другому...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 143
Пол: Мужской

Репутация: -  0  +


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

Program nomer4;
uses crt;
Type
mas=array [1..5,1..5] of real;
mas1=array [1..5] of real;

Procedure Matrix( var a:mas);
var
i,j:integer;

Begin
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
a[i,j]:=exp((j)*ln(2))*(i-3.4)*(ln(abs(1-(i+j)/3))/ln(10)); {здесь ошибочка}
write('a[',i,',',j,']=',a[i,j]:2:2,' ');
end;
writeln;
end;
End;

Procedure Vector(var a:mas; var x:mas1);

var

i, j: integer;

Sv: real;

begin

Sv:=0;
for i:=1 to 5 do

begin

for j:=1 to 5 do
begin
if a[i,j]<0 then Sv:=Sv+a[i,j];
x[i]:=Sv;
end;
end;

for i := 1 to 5 do
writeln('x[',i,']=',x[i]);

end;


Function G (x:mas1):real;
var
i,k:integer;
S,d:real;
Begin
d:=1;
S:=0;
for i:=1 to 5 do
begin
begin
for k:=1 to i do
d:=d*x[k];
end;
S:=S+sin(d)/x[i];
end;
G:=S;
End;


VAR
b:mas;
x1:mas1;
i,j:integer;

BEGIN
clrscr;
matrix(b);
writeln;
vector(b,x1);
writeln;
writeln('G=',G(x1):2:4);
readkey;
END.


и ещё две проги с такими ошибками не буду пока выносить...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
нова у меня ошибка в программе и Ln - положительный
Или нулевой rolleyes.gif

Ln(0) тоже не существует blum.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 143
Пол: Мужской

Репутация: -  0  +


спасибо!!!
очень хорошо - опять я показал свои знания математики :)
но самое интересное что всё ж по условию сделано
и как теперь такие задачи сдавать?
ну а вот тут что не так?

Program nomer14;
uses crt;
Type
mas=array [1..5,1..5] of real;
mas1=array [1..5] of real;

Procedure Matrix( var a:mas);
var
i,j,y:integer;

Begin
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
a[i,j]:=2.5*(3*i-j)-(4*i+j)/(exp((1/3)*ln(abs(i+j))))+sqr(j);
write( 'a[',i,',',j,']=',a[i,j]:2:2,' ' );
end;
writeln;
end;
End;

Procedure Vector(var a:mas; var x:mas1);

var

i, j: integer;

Dd: real;

begin

Dd:=1;
for j:=1 to 5 do

begin

for i:=1 to 5 do
begin
if a[i,j]>0 then Dd:=Dd*a[i,j];
x[i]:=Dd;
end;
end;

for i := 1 to 5 do
writeln('x[',i,']=',x[i]);

end;


Function G (x:mas1):real;
var
i,k:integer;
S,d:real;
Begin
d:=1;
S:=0;
for i:=1 to 5 do
begin
begin
for k:=1 to i do
d:=d*(x[k]/k);{вот тут вот не хочет }
end;
S:=S+(exp((1/3)*ln(x[i]))+d);
end;
G:=S;
End;


VAR
b:mas;
x1:mas1;
i,j:integer;

BEGIN
clrscr;
matrix(b);
writeln;
vector(b,x1);
writeln;
writeln('G=',G(x1):2:4);
readkey;
END.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Ну, а это уже, извините, переполнение... У тебя просто каждый x[k] очень большой, и результат перемножения просто не помещается в D...
Цитата(Console)
debug >> x[k] 1.3540954470781296E+0023
debug >> d 2.570248833416124E+070
debug >> x[k] 2.8035390563460222E+0024
debug >> d 3.480362243186647E+093
debug >> x[k] 7.4293784993169591E+0025
debug >> d 4.878665739502909E+117
debug >> x[k] 1.3540954470781296E+0023
debug >> d 1.208181811680573E+143
debug >> x[k] 2.8035390563460222E+0024
debug >> d 1.635993490439270E+166
debug >> x[k] 7.4293784993169591E+0025
debug >> d 2.293285823187173E+190
debug >> x[k] 2.4074346058293388E+0027
debug >> d 5.679229462525060E+215
debug >> x[k] 1.3540954470781296E+0023
debug >> d 3.418093385632096E+242
debug >> x[k] 2.8035390563460222E+0024
debug >> d 4.628424691172291E+265
debug >> x[k] 7.4293784993169591E+0025
debug >> d 6.487984695528897E+289
Runtime error 205 at $00401411
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 143
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 12.12.2005 21:05) *

Ну, а это уже, извините, переполнение... У тебя просто каждый x[k] очень большой, и результат перемножения просто не помещается в D...

спасибо 4.gif дружище!!!
я поменял на своё усмотрение

d:=d*(x[k]/(k+x[k]));


теперь нормально...
но как можно такие формулы давать? в задании...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.11.2025 6:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name