Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.74/104: Рейтинг темы: голосов - 104, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 11.10.2010
Сообщений: 3

Неверная вещественная операция

11.10.2010, 02:25. Показов 19220. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
не знаю в чем проблема!!
выдает:
неверная вещественная операция строка 28

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
program Anal;
uses crt;
var x,r,z1,z2,z3,s:real;
const a=2;
      b=1;                                                                                {Ñìåéñÿ, ÿ õî÷ó óñëûøàòü ãðîìêèé ñìåõ!!! Óëûáàéñÿ, ýòî ðàçäðàæàåò âñåõ!!!!!!}
      w=3;
      t=5;
      y=-1;
begin
     writeln('vvedite X');
     readln(x);
     if x<0 then
        begin
             s:=sin(b*x*x*x);
             z1:=sqrt(1-w*t*s);
             if z1=0 then
                begin
                     writeln('reshenii net, t.k. znamenatel raven nylu');
                halt end
             else
                 begin
                      r:=s/z1;
                      writeln('R=',r:5:2);
                 halt end
        end
     else
         begin
             z2:=ln(a-x);//ЗДЕСЬ!
              if z2=0 then
                 begin
                      writeln('reshenii net, t.k. znamenatel raven nylu');
                halt end
              else
                  begin
                       z3:=1+(a+y)/z2;
                       if z3=0 then
                          begin
                               writeln('reshenii net, t.k. znamenatel raven nylu');
                          halt end
                       else
                           begin
                                r:=exp(ln(1+((cos(x)+sin(x)))/z3)/3);
                                writeln('R=',r:5:2);
                           end;
                  end;
         end;
readkey;
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.10.2010, 02:25
Ответы с готовыми решениями:

Неверная вещественная операция
Помогите пожалуйста , пишет неверную вещественную операцию 17-й строки. uses crt; type vec=array of real; var i,k,n:integer;...

Неверная Вещественная Операция
Здравствуйте. Проверьте пожалуйста мой пример. На каком основании возникает ошибка в моём тексте программы. Сам пример и конкретную ошибку...

Неверная вещественная операция
ОШИБКА НА 32 СТРОКЕ Program Work_2a; {Решение задачи с использованием оператора арифметического цикла} Var i,n :...

27
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.10.2010, 10:59
Цитата Сообщение от leronas Посмотреть сообщение
z2:=ln(a-x);
Попробуйте так
Pascal
1
2
3
4
5
6
7
8
9
if a-x<=0 then
    begin
     writeln('reshenii net, t.k. znamenatel raven nylu');
     halt 
   end
 else
  begin
    z2:=ln(a-x);
    .................
1
 Аватар для Mawrat
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
11.10.2010, 11:24
Ещё добавлю. Логарифм от нуля или отрицательного числа - неопределён. Поэтому, если (a-x) <= 0 - произойдёт ошибка.
Ln(a-x) = z2 => e^z2 = (a-x) => при z2 -> -∞ => (a-x) -> 0.
Поэтому необходимо соблюдать условие: (a-x) > 0.
1
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.10.2010, 11:47
Поэтому необходимо соблюдать условие: (a-x) > 0.
Это бывает невозможно сделать например при табулировании функции если интервал содержит значения a-x<=0.
В этих случаях и предусматривается предварительная проверка и в случае несоблюдения условия вывод сообщения.
1
0 / 0 / 0
Регистрация: 11.10.2010
Сообщений: 3
11.10.2010, 12:02  [ТС]
спс. теперь заработало. можно тему закрывать
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.10.2010, 12:11
Цитата Сообщение от leronas Посмотреть сообщение
можно тему закрывать
Спасибо. И чтобы мы без тебя делали...
0
0 / 0 / 0
Регистрация: 11.10.2010
Сообщений: 3
11.10.2010, 12:27  [ТС]
ой. ну даже и не знаю))))
0
S}{r0n
18.01.2011, 17:27
Господа, у меня эта же проблема, поможете понять в чем ошибка?

С Pascal'ем знаком не очень давно, ради шутки юмора решил написать программу для решении стандартных квадратных уравнений, вроде все прописываю правильно, но он пишет ошибку! Вот:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1 Program Squares;
2 Var
3 x:Integer;
4 x1:real;
5 x2:real;
6 a:shortint;
7 b:shortint;
8 c:shortint;
9 d:Integer;
10 y:real;
11 begin
12 Writeln('введи a,b,c,y');
13 Readln(a,b,c,y);
14 y:=a*sqr(x)+b*x+c;
15 D:=sqr(b)-4*a*c;
16 If D<0 Then
17 Writeln('Корней нет')
18 Else
19 x1:=(-b+sqrt(D))/(2*a);
20 x2:=(-b-sqrt(D))/(2*a);
21 Writeln('x1=',x1:4:2, ' x2=', x2:4:2);
22 Readln;
23 end.
введи a,b,c,y
1 2 5 0
Корней нет
»*Ошибка: неверная вещественная операция (Решение квадратных уравнений.pas, строка 20)

Кто знает, где я ошибся???
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
19.01.2011, 06:37
Pascal
1
2
3
4
5
6
7
if D<0 Then Writeln('Корней нет')
 Else
      begin
        x1:=(-b+sqrt(D))/(2*a);
        x2:=(-b-sqrt(D))/(2*a);
        Writeln('x1=',x1:4:2, ' x2=', x2:4:2);
      end;
Добавлено через 2 минуты
Цитата Сообщение от S}{r0n Посмотреть сообщение
Readln(a,b,c,y);
14 y:=a*sqr(x)+b*x+c;
А для чего Вам нужен У? Выкиньте его. Для решения нужны только коэффициенты, а если уж вычисляете У, то для чего его вводите?
1
S}{r0n
19.01.2011, 11:27
Я пытался выкинуть "y". Но когда я прописывал строчку 14

14 y:=a*sqr(x)+b*x+c;

без "y" он писал: "ожидалось :="

Я решил, что в принципе лишних хлопот "y" не доставит, тем более в таких уравнениях он всегда равен 0. Но спасибо, за исправление, я никак не мог понять в чем я ошибся)))
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
19.01.2011, 11:28
Цитата Сообщение от S}{r0n Посмотреть сообщение
Я пытался выкинуть "y". Но когда я прописывал строчку 14
14 y:=a*sqr(x)+b*x+c;
без "y" он писал: "ожидалось :="
Так не просто У выкинуть, а и все действия с ним, в том числе и строку
14 y:=a*sqr(x)+b*x+c;
0
Evan_Li
23.02.2011, 00:59
78 строка... помогите, а?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
program Oblik;
 
 
const path='d:/14/litvin/';
 
type Tcorp=record
       name:string[20];
       dohid:Real;
       vutratu:Real;
       prubytok:Real;
     end;
     TidName=record
       id:Integer;
       val:string[20];
     end;
     TidDP=record
       id:Integer;
       val:Real;end;
 
 
 
var key:Char;
    NumDel:Integer;
    base: file of Tcorp;
    FileIdName: file of TidName;
    FileIdDP: file of TidDP;
 
 
Procedure CreateId;
var n,i,j: integer;
    ArrName: array[0..255] of TidName;
    ArrDohid: array[0..255] of TidDP;
    ArrPrubytok: array[0..255] of TidDP;
    TempRec:Tcorp;
    TempIdN:TidName;
    TempIdDP:TidDP;
begin
Assign(base,path+'base.dat');
 if FileExists(path+'base.dat')
  then Reset(base)
  else Rewrite(base);
 n:=filesize(base);
 for i:=0 to n-1 do
  begin
   read(base,TempRec);
   ArrName[i].id:=i;
   ArrName[i].val:=TempRec.name;
   ArrDohid[i].id:=i;
   ArrDohid[i].val:=TempRec.dohid;
   ArrPrubytok[i].id:=i;
   ArrPrubytok[i].val:=TempRec.dohid-TempRec.vutratu;
  end;
 Close(base);
 
 
 Assign(FileIdName,path+'idn.dat');
 Rewrite(FileIdName);
 
 for i:=n-1 downto 1 do
 for j:=0 to i-1 do
 if ArrName[j].val>ArrName[j+1].val then
 begin
  TempIdN:=ArrName[j];
  ArrName[j]:=ArrName[j+1];
  ArrName[j+1]:=TempIdN;
 end;
 
 for i:=0 to n-1 do
 write(FileIdName,ArrName[i]);
 close(FileIdName);
 
 
 Assign(FileIdDP,path+'idp.dat');
 Rewrite(FileIdDP);
 
 for i:=n-1 downto 1 do
 for j:=0 to i-1 do
 if (ArrPrubytok[j].val>ArrPrubytok[j+1].val) then
 begin
  TempIdDP:=ArrPrubytok[j];
  ArrPrubytok[j]:=ArrPrubytok[j+1];
  ArrPrubytok[j+1]:=TempIdDP;
 end;
 
 for i:=0 to n-1 do
 write(FileIdDP,ArrPrubytok[i]);
 close(FileIdDP);
 
 
 Assign(FileIdDP,path+'idd.dat');
 Rewrite(FileIdDP);
 
 for i:=n-1 downto 1 do
 for j:=0 to i-1 do
 if ArrDohid[j].val>ArrDohid[j+1].val then
 begin
  TempIdDP:=ArrDohid[j];
  ArrDohid[j]:=ArrDohid[j+1];
  ArrDohid[j+1]:=TempIdDP;
 end;
 
 for i:=0 to n-1 do
 write(FileIdDP,ArrDohid[i]);
 close(FileIdDP);
end;
 
procedure add;
var new_record: Tcorp;i:char;
begin
 Assign(base,path+'base.dat');
 if FileExists(path+'base.dat')
  then Reset(base)
  else Rewrite(base);
 Seek(base,filesize(base));
 while i<>'y' do
  begin
   Writeln('New record:');
   Write('Name:');
   Readln(new_record.name);
   Write('income:');
   Readln(new_record.dohid);
   Write('costs:');
   Readln(new_record.vutratu);
   new_record.prubytok:=new_record.dohid-new_record.vutratu;
   Writeln('profit: ',new_record.prubytok:0:2);
   write(base,new_record);
   writeln('tse vsi zapysy?');
   writeln('tak?(y)ni?(n)');
   readln(i);
   
  end;
 
 Close(base);
 CreateId;
end;
 
procedure Print;
var key:char;
    i:Integer;
    TempRec:Tcorp;
    TempIdN:TidName;
    TempIdDP:TidDP;
begin
Writeln('+-Sort-by:---+--------------+--------------+-------------+');
Writeln('| By name(1) | By income(2) | By profit(3) |   Return(0) |');
Writeln('+------------+--------------+--------------+-------------+');
Readln(Key);
 
Assign(base,path+'base.dat');
Reset(base);
 case key of
 '1':begin
      Writeln('Sort by name');
      Assign(FileIdName,path+'idn.dat');
      Reset(FileIdName);
      for i:=0 to filesize(base)-1 do
       begin
        Read(FileIdName,TempIdN);
        Seek(base,TempIdN.id);
        Read(base,TempRec);
        Writeln (TempRec.name,'   ',TempRec.dohid :0:2,'   ',TempRec.vutratu :0:2,'   ',TempRec.prubytok:0:2);
       end;
      Close(FileIdName);
     end;
 '2':begin
      Writeln('Sort by income');
      Assign(FileIdDP,path+'idd.dat');
      Reset(FileIdDP);
      for i:=0 to filesize(base)-1 do
       begin
        Read(FileIdDP,TempIdDP);
        Seek(base,TempIdDP.id);
        Read(base,TempRec);
        Writeln (TempRec.name,'   ',TempRec.dohid :0:2,'   ',TempRec.vutratu :0:2,'   ',TempRec.prubytok:0:2);
       end;
      Close(FileIdDP);
     end;
 '3':begin
      Writeln('Sort by profit');
      Assign(FileIdDP,path+'idp.dat');
      Reset(FileIdDP);
      for i:=0 to filesize(base)-1 do
       begin
        Read(FileIdDP,TempIdDP);
        Seek(base,TempIdDP.id);
        read(base,TempRec);
        Writeln (TempRec.name,'   ',TempRec.dohid :0:2,'   ',TempRec.vutratu :0:2,'   ',TempRec.prubytok:0:2);
        end;
      Close(FileIdDP);
     end;
 else if key<>'0' then writeln (' ERROR: unknown command ',key);
 end ;
Close(base);
writeln ('Press enter to continue.');
Readln;
end;
 
procedure Delete(row:Integer);
var TempBase:Tcorp;
begin
Assign(base,path+'base.dat');
Reset(base);
seek(base,filesize(base)-1);
read(base,TempBase);
seek(base,row);
write(base,TempBase);
seek(base,filesize(base)-1);
Truncate(base);
Close(base);
CreateId;
Writeln('Deleting was successful.');
writeln ('Press enter to continue.');
Readln;
end;
 
procedure search;
var key:Char;
    TempIdName:TidName;
    TempIdDP:TidDP;
    TempRec:Tcorp;
    name:string[20];
    l,r,c:Integer;
    found:Boolean;
    p:Integer;
    min,max:Real;
begin
Writeln('+-Search-by:-+--------------+--------------+-------------+');
Writeln('| By name(1) | By income(2) | By profit(3) |   Return(0) |');
Writeln('+------------+--------------+--------------+-------------+');
Readln(key);
 
Assign(base,path+'base.dat');
Reset(base);
 case key of
 '1':begin
      Assign(FileIdName,path+'\idn.dat');
      Reset(FileIdName);
      Write('Name: ');
      Readln(name);
      r:=filesize(FileIdName)-1;
      l:=0;
      found:=False;
      while (l<=r) and (not found) do
       begin
        c:=(l+r) div 2;
        Seek(FileIdName, c);
        read(FileIdname,TempIdName);
        if name < TempIdName.val then r:=c-1
        else if name > TempIdName.val then l:=c+1
        else
        begin
         found:=True;
         p:=c;
         while name=TempIdName.val do
          begin
           Seek(base,TempIdName.id);
           Read(base,TempRec);
           Writeln (TempRec.name,'   ',TempRec.dohid :0:2,'   ',TempRec.vutratu :0:2,'   ',TempRec.prubytok:0:2);
           if p-1<0 then Break;
           p:=p-1;
           Seek(FileIdName, p);
           read(FileIdname,TempIdName);
          end;
 
         p:=c+1;
         if p<FileSize(FileIdName) then
         begin
          Seek(FileIdName, p);
          read(FileIdname,TempIdName);
          while name=TempIdName.val do
           begin
            Seek(base,TempIdName.id);
            Read(base,TempRec);
            Writeln (TempRec.name,'   ',TempRec.dohid :0:2,'   ',TempRec.vutratu :0:2,'   ',TempRec.prubytok:0:2);
            if p+1>=FileSize(FileIdName) then Break;
            p:=p+1;
            Seek(FileIdName, p);
            read(FileIdname,TempIdName);
           end;
         end;
        end;
       end;
     end;
 '2':begin
      Assign(FileIdDP,path+'\idn.dat');
      Reset(FileIdDP);
      Write('Value: ');
      Readln(min);
      r:=filesize(FileIdDP)-1;
      l:=0;
      found:=False;
      while (l<=r) and (not found) do
       begin
        c:=(l+r) div 2;
        Seek(FileIdDP, c);
        read(FileIdDP,TempIdDP);
        if min> TempIdDP.val then l:=c+1
        else if min <= TempIdDP.val then
        begin
         found:=True;
         p:=c;
         while min<=TempIdDP.val do
          begin
           Seek(base,TempIdDP.id);
           Read(base,TempRec);
           Writeln (TempRec.name,'   ',TempRec.dohid :0:2,'   ',TempRec.vutratu :0:2,'   ',TempRec.prubytok:0:2);
           if p-1<0 then Break;
           p:=p-1;
           Seek(FileIdDP, p);
           read(FileIdDP,TempIdDP);
          end;
 
         p:=c+1;
         if p<FileSize(FileIdDP) then
         begin
          Seek(FileIdDP, p);
          read(FileIdDP,TempIdDP);
          while p<FileSize(FileIdDP) do
           begin
            Seek(base,TempIdName.id);
            Read(base,TempRec);
            Writeln (TempRec.name,'   ',TempRec.dohid :0:2,'   ',TempRec.vutratu :0:2,'   ',TempRec.prubytok:0:2);
            if p+1>=FileSize(FileIdDP) then Break;
            p:=p+1;
            Seek(FileIdName, p);
            read(FileIdDP,TempIdDP);
           end;
         end;
        end;
       end;
     end;
 
 else if key<>'0' then writeln (' ERROR: unknown command ',key);
 end;
 
Close(base);
if not found then Writeln('Not found!');
writeln ('Press enter to continue.');
Readln;
end;
 
 
 
begin
key:=#0;
while key<>'0' do
 begin
  Writeln('+--------+-----------+-----------+----------+------------+');
  Writeln('| Add(1) | Delete(2) | Search(3) | Print(4) |    Exit(0) |');
  Writeln('+--------+-----------+-----------+----------+------------+');
  Readln(key);
  case key of
   '1':add;
   '2':begin
        Writeln('Enter number of record for deletion. Enter "-1" for return to main menu.');
        Readln(NumDel);
        if NumDel>=0 then  Delete(NumDel);
       end;
   '3':Search;
   '4':Print;
   else if key<>'0' then writeln (' ERROR: unknown command ',key);
  end;
 end;
 
end.
Добавлено через 39 минут
Прога должна создавать отсортированые индексные файлы,
искать там инфу, печать,принимать новые даные.....да там менюшка есть, поймёте

Добавлено через 4 минуты
Прога должна создавать отсортированые индексные файлы,
искать там инфу, печать,принимать новые даные.....да там менюшка есть, поймёте
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.02.2011, 07:36
Вот запускаешь программу и нужно делать выбор
Pascal
1
2
3
4
5
6
7
8
9
10
11
Readln(key);
  case key of
   '1':add;
   '2':begin
        Writeln('Enter number of record for deletion. Enter "-1" for return to main menu.');
        Readln(NumDel);
        if NumDel>=0 then  Delete(NumDel);
       end;
   '3':Search;
   '4':Print;
   else if key<>'0' then writeln (' ERROR: unknown command ',key);
Но файла еще нет и естественно работать нельзя.
Где вызывается процедура CreateId; ?
0
1 / 1 / 0
Регистрация: 03.11.2010
Сообщений: 18
05.09.2011, 17:35
Здравствуйте,уважаемые форумчане,вопрос жизни и смерти,у меня выскакивает неверная вещественная операция строка 15,помогите иначе я пропал


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
program abc;
var
A,B,C,X,Y,Y1,Y2 : real;
begin
cls;
writeLn('Введите A');
readLn(A);
writeLn('Введите B');
readLn(B);
writeLn('Введите C');
readLn(C);
Y1:=sin(exp(3*ln(A))+sqr(B)+C);
Y2:=cos(exp(3*ln(A))+sqr(B)+C);
Y:= Y1/Y2;
x:=((exp(3*ln(A)))+sqr(B)+C)*(Y-arctan((1/abs(A))/sqrt(1-sqr(abs(A)))));
writeLn('Вы ввели:');
writeLn('A=', A, ' B=', B, ' C=', C);
writeLn(' Числитель в аргументе тригонометрических функций равен ', Y1, ',');
writeLn('а знаменатель ',Y2,', потому их отношение равно ', Y);
writeLn('Значит вся формула получается X=', X);
writeLn('В отформатированном виде X=', X:8:3);
end.
0
 Аватар для SuPeR XaKer
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,876
05.09.2011, 17:38

Не по теме:

лучше бы ты не лез в чужие темы.


Проблемы с exe, анимация графики
Исправь так
Pascal
1
sqrt(abs(1-sqr(A))))
Но не видя самих формул это возможно и не верно будет.И ещё следует это выражение на 0 проверять иначе будет ошибка деления на 0.
0
1 / 1 / 0
Регистрация: 03.11.2010
Сообщений: 18
05.09.2011, 18:44
Цитата Сообщение от SuPeR XaKer Посмотреть сообщение
Но не видя самих формул это возможно и не верно будет.И ещё следует это выражение на 0 проверять иначе будет ошибка деления на 0.
Вот выложил само выражение,посмотрите пожалуйста...
Миниатюры
Неверная вещественная операция  
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
05.09.2011, 19:06
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
program abc;
uses crt;
var
A,B,C,X,Y,Y1,Y2,Z,M : real;
begin
clrscr;
writeLn('Введите A');
readLn(A);
if abs(a)<1 then
 begin
  writeln('При А=',A:0:2,' не определено значение arcsin');
  readln;
  exit;
 end;
writeLn('Введите B');
readLn(B);
writeLn('Введите C');
readLn(C);
Y1:=sin(exp(3*ln(A))+sqr(B)+C);
Y2:=cos(exp(3*ln(A))+sqr(B)+C);
if Y2=0 then
  begin
   writeln('Деление на 0, решения нет');
   readln;
   exit;
  end;
Y:= Y1/Y2;
if A=1 then X:=pi/2
else X:=arctan(((1/abs(A)))/sqrt(1-sqr(1/abs(A))));
Z:=a*a*a+b*b+c;
M:=Z*(Y-X);
writeLn('Вы ввели:');
writeLn('A=', A, ' B=', B, ' C=', C);
writeLn(' Числитель в аргументе тригонометрических функций равен ', Y1:0:2, ',');
writeLn('а знаменатель ',Y2:0:2,', потому их отношение равно ', Y:0:2);
writeLn('Значит вся формула получается M=', M);
writeLn('В отформатированном виде M=', M:0:3);
readln;
end.
1
1 / 1 / 0
Регистрация: 03.11.2010
Сообщений: 18
05.09.2011, 20:05
Puporev,большое спасибо конечно,но нельзя ли попроще, без условий "если" и т.п,у меня вроде все правильно,не хватает каких-то деталей...проще говоря листинг должен быть в пределах тех строк(линейные процессы)...
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
05.09.2011, 20:08
Цитата Сообщение от Alexei5 Посмотреть сообщение
но нельзя ли попроще, без условий "если"
Нельзя, иначе так и будут вылетать ошибки из-за неверного ввода данных.
Если есть функция, то обязательно должна быть проверка на ОДЗ.
0
1 / 1 / 0
Регистрация: 03.11.2010
Сообщений: 18
05.09.2011, 21:41
Цитата Сообщение от Puporev Посмотреть сообщение
Нельзя, иначе так и будут вылетать ошибки из-за неверного ввода данных.
Если есть функция, то обязательно должна быть проверка на ОДЗ.

Странно вот препод дал по линейным листинг с примером грит:"делай"

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
program abc;
var
A,B,C,X,Y,Y1,Y2 : real;
begin
cls;
writeLn('введите A');
readLn(A);
writeLn('введите B');
readLn(B);
writeLn('введите C');
readLn(C);
Y1:=sqrt(sqr(A)+sqr(B))/(0.5 + A*B) - 1/A;
Y2:=C+abs(A-B);
Y:= Y1/Y2;
X:= exp(-A/B)*(sin(Y)+cos(Y));
writeLn('Вы ввели:');
writeLn('A=', A, ' B=', B, ' C=', C);
writeLn('Числитель в аргументе тригонометрических
функций равен ', Y1, ',');
writeLn('а знаменатель ',Y2,
', потому их отношение равно ', Y);
writeLn('Значит вся формула получается X=', X);
writeLn('В отформатированном виде X=', X:8:3);
end.

То что вы напечатали,это уже другая тема "разветвляющиеся вычислительные процессы"

Ну ладно,и на том спасибо, можете себя не утруждать,я сам как нибудь....

Добавлено через 1 час 23 минуты
Все,разобрался)без всяких then и else )все работает - калькулем проверил - сходится)спасибо).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.09.2011, 21:41
Помогаю со студенческими работами здесь

Неверная вещественная операция
Program xabcdf; {заголовок программы с именем RECT} const {блок описания констант} x=1.9; a=0.3; b=2.7; c=3.4; d=0.9; f=-3.4; ...

Неверная вещественная операция
Возможно вопрос покажется многим глупым, но все же я уже не знаю что делать. Возможно, пригодятся формулы в математическом виде, но мне...

Неверная вещественная операция
program g7_n11; var x,y:real; begin Writeln('Введите x'); Readln(x); Y:=(abs(cos(x*x*x))*sqrt(3*x-5))/(sqr(x)*(x-1)); If...

Неверная вещественная операция
Здравствуйте. Помогите найти ошибку. пишет &quot;неверная вещественная операция. строка 19&quot; program l1; uses crt; const...

Неверная вещественная операция
Изучил много тем на форуме, но так и не понял что у меня не так, подскажите пожалуйста var a,b,e:array of longint; c,d:array of...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru