Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 09.07.2014
Сообщений: 62
1

Вместо десятичной представления числа выдает целое. Почему?

27.09.2015, 21:33. Показов 557. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написала в делфи программу нахождения корней квадратного уравнения. При тестировке программы и вводе значений а=4, b=4, c=1 вместо должного х1=-0,5 выдает х1=-5.000000000000Е
С чем это может быть связано и как исправить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2015, 21:33
Ответы с готовыми решениями:

Почему плата выдает 100 В вместо 220 В?
Здравствуйте, электронщики-форумчане! Я в радио-электронике "ноль", поэтому сильно надеюсь на...

Деление нецелого числа на целое выдаёт ошибку
Получается поделить например 10:2=5 Но если я хочу поделить 0,8:2= то выдаёт ошибку,и прочитал её...

Вместо индекс странички в локальной сети апач почему то выдает логотип
С некоторых компьютеров локальной сети почему-то работает нормально. Рангом в сети компьютеры не...

Почему не работает код и выдает три бэкслеша вместо двух. Экспериментирую циклы
Так я понимаю код. Исправьте если не правильно #include <stdio.h> int main() { long t, l, s;...

6
243 / 193 / 94
Регистрация: 01.05.2015
Сообщений: 732
27.09.2015, 23:40 2
Цитата Сообщение от Appolinariya Посмотреть сообщение
как исправить?
выводите значение с помощью format
Delphi
1
ShowMessage( format('%.2f',[0.550002]) ); // <-- выведет 0,55
0
0 / 0 / 0
Регистрация: 09.07.2014
Сообщений: 62
28.09.2015, 01:22  [ТС] 3
Цитата Сообщение от Appolinariya Посмотреть сообщение
Написала в делфи программу нахождения корней квадратного уравнения. При тестировке программы и вводе значений а=4, b=4, c=1 вместо должного х1=-0,5 выдает х1=-5.000000000000Е
С чем это может быть связано и как исправить?
Покажите на коде. Может быть где-то найдете ошибку.
Delphi
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
var
 a,b,c,D,x1,x2: real;
begin
 write('Vvedite koefficient a(a<>0): ');
 readln(a);
 if a=0 then
 begin
  writeln('Введено недопустімое значеніе коэфф. ');
  readln;
  exit;
  end;
 write('Введіте коэфф. b: ');
 readln(b);
 write('Введіте коэфф. c: ');
 readln(c);
 d:=b*b-4*a*c;
 if d<0 then
  writeln('Нет корней')
 else
 begin
  if d=0 then
   writeln('Уравненіе імеет одін корень: х= ',-b/(2*a))
  else
  begin
   writeln('Уравненіе імеет два корня: ');
   writeln('x1= ',(-b-sqrt(d))/(2*a));
   writeln('x2= ',(-b+sqrt(d))/(2*a));
 end;
  end;
 readln;
end.
0
243 / 193 / 94
Регистрация: 01.05.2015
Сообщений: 732
28.09.2015, 01:46 4
Appolinariya, я же вам написал выводите через формат
Delphi
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
var
a,b,c,D,x1,x2: real;
begin
write('Vvedite koefficient a(a<>0): ');
readln(a);
if a=0 then
begin
writeln('Введено недопустімое значеніе коэфф. ');
readln;
exit;
end;
write('Введіте коэфф. b: ');
readln(b);
write('Введіте коэфф. c: ');
readln(c);
d:=b*b-4*a*c;
if d<0 then
writeln('Нет корней')
else
begin
if d=0 then
writeln('Уравненіе імеет одін корень: х= ',-b/(2*a))
else
begin
writeln('Уравненіе імеет два корня: ');
writeln('x1= ', format('%.2f', [(b-sqrt(d))/(2*a)]);
writeln('x2= ', format('%.2f', [(b+sqrt(d))/(2*a)]);
end;
end;
readln;
end.
0
0 / 0 / 0
Регистрация: 09.07.2014
Сообщений: 62
28.09.2015, 02:09  [ТС] 5
Выдает ошибку ',' or ')' expected but ',' found на 26 строчке
0
243 / 193 / 94
Регистрация: 01.05.2015
Сообщений: 732
28.09.2015, 02:23 6
Цитата Сообщение от Appolinariya Посмотреть сообщение
Выдает ошибку ',' or ')' expected but ',' found на 26 строчке
Delphi
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
program Project2;
 
{$APPTYPE CONSOLE}
 
uses SysUtils;
 
var a,b,c,d: extended;
 
begin
 writeln('Vvedite koefficient a(a<>0): ');
 readln(a);
 if a=0 then
  begin
   write('Введено недопустімое значеніе коэфф. ');
   readln; exit;
  end;
 write('Введіте коэфф. b: ');
 readln(b);
 write('Введіте коэфф. c: ');
 readln(c);
 d:=b*b-4*a*c;
 if d<0 then writeln('Нет корней')
 else begin if d=0 then
  writeln('Уравненіе імеет одін корень: х= ', format('%.2f', [b/(2*a)]))
 else begin
  writeln('Уравненіе імеет два корня: ');
  writeln('x1= ', format('%.2f', [(b-sqrt(d))/(2*a)]));
  writeln('x2= ', format('%.2f', [(b+sqrt(d))/(2*a)]));
 end; end; readln;
end.
Добавлено через 44 секунды
вы не добавили format для случая когда 1 корень
1
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
28.09.2015, 06:59 7
В консоли можно и просто
Delphi
1
writeln('x1= ', (b-sqrt(d))/(2*a):0:2);
1
28.09.2015, 06:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2015, 06:59
Помогаю со студенческими работами здесь

Дано целое неотрицательное число. Определите количество нулей в его десятичной записи. Например для числа 103062 ответ 2
Дано целое неотрицательное число. Определите количество нулей в его десятичной записи. Например для...

Считывание значения реестра выдаёт True вместо числа
Здравствуйте. Возникла проблема с чтением реестра в C++. К примеру в...

Дано целое число X в десятичной системе счисления. Выведите запись числа X в восьмеричной системе счисления
Почему настоящие программисты путают католическое Рождестово и Halloween? Потому что 25 DEC = 31...

почему то при вводе числа не выдает сумму
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;conio.h&quot; #include &quot;math.h&quot; #include...


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

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