Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 15.12.2012
Сообщений: 38
1

Вещественное деление на ноль

05.03.2013, 17:20. Показов 780. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишет вещественное деление на 0. Помогите отыскать ошибку пожалуйста.
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
program lab_9;
uses crt;
const k=70;
var s,code,n,i: Integer;
    z:string;
    cg: real;
    a: array[1..k] of integer;
procedure vvod (z:string;n,code,i:integer);
begin
  writeln(' Программа вычисляет среднее геометрическое');
  repeat
     repeat
       writeln (' Введите количество чисел: ');
       Readln(Z);
       val (Z,n,code);
       if code<>0 then
          writeln('Ошибка ввода! ')
       else
         if n<0 then
             writeln(' Ошибка ввода!')
         else
            if n=0 then
               writeln(' Ошибка ввода!');
      until code=0;
  until n>0;
  writeln(' Введите числа ');
  for i:=1 to n do
  begin
    repeat
      writeln(' Введите A ','[',i,']'); readln (z);
      val (Z,a[i],code);
      if code<>0 then
          writeln(' Ошибка ввода! ')
      else
         if a[i]<0 then
            writeln(' Ошибка ввода!')
         else
           if n=0 then
              writeln(' Ошибка ввода!');
     until (a[i]>0) and (code=0);
  end;
 writeln(' Вы ввели : ');
  for i:=1 to n do writeln(a[i]);
end;
procedure sg(i,n,s:integer; var cg:real);
begin
 s:=1;
 for i:=1 to n do
  begin
     write(a[i],' ');
     s:=s*a[i];
  end;
  cg:= exp(1/n*ln(s));
  writeln;
end;
  procedure vyvod(cg:real);
    begin
      writeln('Среднее геометрическое =',cg:5:2);
    end;
begin
  vvod(z,n,code,i);
  writeln;
  sg(i,n,s,cg);
  writeln;
  vyvod(cg);
  readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2013, 17:20
Ответы с готовыми решениями:

Ошибка: вещественное деление на 0
var a:array of real; i,j:integer; f:text; m,b:real; begin assign(f,'c:/1.pas');...

ошибка в программе,вещественное деление на 0
program lr4; const x:arrayof real=(0.01,0.02,-0.5,2.31,0,1.0,0,-1.25,-1.0,-0.77,0); v1=-25.3;...

Деление на ноль
У прогу пишу,для проверки. Вроде нормально, а у меня деление на ноль пишет. program GF; uses...

Ошибка деление на ноль
Что нужно исправить в этой процедуре, чтобы не было деления на ноль ? Procedure...

1
296 / 274 / 194
Регистрация: 03.05.2012
Сообщений: 570
05.03.2013, 18:10 2
Не нужно путать глобальные переменные с локальными.

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
uses
  crt;
 
const
  k=70;
 
var s,code,n,i: Integer;
    z:string;
    cg: real;
    a: array[1..k] of integer;
 
procedure vvod ;
begin
  writeln(' Программа вычисляет среднее геометрическое');
  repeat
     repeat
       writeln (' Введите количество чисел: ');
       Readln(Z);
       val (Z,n,code);
       if code<>0 then
          writeln('Ошибка ввода! ')
       else
         if n<0 then
             writeln(' Ошибка ввода!')
         else
            if n=0 then
               writeln(' Ошибка ввода!');
      until code=0;
  until n>0;
  writeln(' Введите числа ');
  for i:=1 to n do
  begin
    repeat
      writeln(' Введите A ','[',i,']'); readln (z);
      val (Z,a[i],code);
      if code<>0 then
          writeln(' Ошибка ввода! ')
      else
         if a[i]<0 then
            writeln(' Ошибка ввода!')
         else
           if n=0 then
              writeln(' Ошибка ввода!');
     until (a[i]>0) and (code=0);
  end;
 writeln(' Вы ввели : ');
  for i:=1 to n do writeln(a[i]);
end;
 
procedure sg;
begin
 s:=1;
 for i:=1 to n do
  begin
     write(a[i],' ');
     s:=s*a[i];
  end;
  cg:= exp(1/n*ln(s));
  writeln;
end;
 
procedure vyvod;
begin
  writeln('Среднее геометрическое =',cg:5:2);
end;
 
begin
  vvod;
  writeln;
  sg;
  writeln;
  vyvod;
  readln;
end.
0
05.03.2013, 18:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2013, 18:10
Помогаю со студенческими работами здесь

Ошибка деление на ноль
в конкретном случае (a&gt;1/a) при а= 0 естественно ошибка деление на ноль, как этого избежать??? ...

Ошибка 200 (деление на ноль)
Выдает ошибку 200 (деление на ноль) вроде все по сто раз перепроверила и та же лабуда (( ...

Графика: ошибка деление на ноль
программа uses program9; BEGIN postgr; zkl; END. модуль Unit program9;

Ошибка при вычислении функции, деление на ноль.
Фрагмет: function Myfunc(a,eps:real):real; var i:integer; s,sn,t:real; begin if (a=0)...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru