Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/30: Рейтинг темы: голосов - 30, средняя оценка - 4.73
1 / 1 / 1
Регистрация: 03.03.2010
Сообщений: 124

Попытка деления но ноль

21.01.2011, 16:41. Показов 6297. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!
Подскажите пожайлуста.
Как записать код вывода ошибки, что на ноль делить нельзя
Спасибо
Вот пробные варианты
C++
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
void __fastcall TForm1::Button4Click(TObject *Sender)
{
  x2=StrToFloat(RichEdit1->Text);
     switch (z)   {
    case 1: x1+=x2; break;
    case 2: x1-=x2; break;
    case 3: x1*=x2; break;
    case 4: x1/=x2; break;
          }
     RichEdit1->Text = FloatToStr(x1); // равно
 
    double x1,x2,z;
 
    if(x2 == 0)
    {
        printf("На ноль делить нельзя");
        exit(0);
    }
    else
    {
        z = x1/x2;
        printf("%f" "\n", z);
    }
 
   // return 0;
 
 
 
 
 
 
 
    
 
     // x1=StrToFloat(RichEdit1->Text);
   //if (x2==0)
     // {
       // ShowMessage("Попытка деления на нуль");
        // return;
     // }
   //else
    //  {
      //   z = x1/x2;
        // RichEdit1->Text=FloatToStr(x1);
        // x1=0;
     // }
  /// x1=0;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.01.2011, 16:41
Ответы с готовыми решениями:

Перехват исключений деления на ноль
builder 6 во время компиляции пишет что возникло исключение., компилится с ошибкой дел.на ноль как правильно перехватывать? ...

Запрет деления на ноль суммы чисел
День добрый, подскажите. Есть формула (a/b)/(c+e) как сделать запрет, чтобы при условии что с+е=0, вылазило окно что деление на 0 не...

Исключения деления на ноль и ввод букв в поле Edit
Добрый вечер, я реализовал программу для расчета дискриминанта и вывода значений x1 и x2. Дополнительно нужно реализовать реакцию на...

13
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
21.01.2011, 18:28
так было ж
C++
1
if (x2==0) {ShowMessage("Попытка деления на нуль");}
0
 Аватар для S1deX
22 / 22 / 1
Регистрация: 04.01.2011
Сообщений: 67
21.01.2011, 18:59
Сначала делишь, а потом проверяешь?
0
1 / 1 / 1
Регистрация: 03.03.2010
Сообщений: 124
22.01.2011, 10:28  [ТС]
Был Гиперболлический Арккотангенс
Получилось проще...
double z ;
if(RichEdit1->Text != 0)RichEdit1->Text = FloatToStr(ArcCotH(StrToFloat(RichEdit1->Text)));
else RichEdit1->Text = "Error!";
Возможно что-то подобное и с делением на ноль...
Дело в том, что вариант впринципе рабочий если исключить
// case 4: x1/=x2; break;
Но тогда не происходит обычное деление.
S1deX Сперва план был реализовать обычный счет... А сейчас требуется реализовать как пологается...
0
 Аватар для }{()$T
25 / 9 / 0
Регистрация: 22.01.2011
Сообщений: 27
22.01.2011, 10:55
C++
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
void __fastcall TForm1::Button4Click(TObject *Sender)
{
  x2=StrToFloat(RichEdit1->Text);
     switch (z)   {
    case 1:
       x1+=x2;
       break;
    case 2:
       x1-=x2;
       break;
    case 3:
       x1*=x2;
       break;
    case 4:
       try
          {
           x1/=x2;
          }
       catch(const EDivByZero&)
          {
           ShowMessage ("На ноль делить нельзя");
           return;
          }
       break;
          }
0
1 / 1 / 1
Регистрация: 03.03.2010
Сообщений: 124
22.01.2011, 13:16  [ТС]
Не подходит
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
22.01.2011, 17:02
Цитата Сообщение от S1deX Посмотреть сообщение
Сначала делишь, а потом проверяешь?
Вполне уместный способ, если выполнять подобные операции в блоке try...catch.
Например:
C++
1
2
3
4
5
6
7
8
9
int a = 1, b = 0, c;
 
try {
  c = a/b;
} catch (EDivByZero &E) {
  ShowMessage("Невозможно выполнить операцию деления на нуль.\n)" + E.Message + ")");
} catch (...) {
  ShowMessage("Произошла ошибка в ходе выполнения операции.");
}
0
1 / 1 / 1
Регистрация: 03.03.2010
Сообщений: 124
23.01.2011, 12:09  [ТС]
Все равно останавливается программа....
0
 Аватар для }{()$T
25 / 9 / 0
Регистрация: 22.01.2011
Сообщений: 27
23.01.2011, 12:15
Скомпилируй пример который привел я или MikeSoft и запускай НЕ с Builder, а просто exe-шником.
0
1 / 1 / 1
Регистрация: 03.03.2010
Сообщений: 124
23.01.2011, 20:54  [ТС]
То есть как, бы отдельно? Я скачал один калькулятор, посмотрел код и там вообще не было каких либо сообщений об ошибке... Но калькулятор считает и когда делишь на ноль, программа не тормозит... Он автоматом выдает ее... Нажимаешь ок, и продолжается работа дальше.
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
23.01.2011, 23:45
Вонх, что значит "программа не тормозит"? Делит на ноль и выдаёт результат? Суровый челябинский калькулятор
Как работать с исключениями мы вам показали... что вам мешает обработать исключение и принять меры, которые вам необходимы? Например, обнулить все значения выполнив программный сброс (кнопка CE на большинстве калькуляторов)...
1
1 / 1 / 1
Регистрация: 03.03.2010
Сообщений: 124
24.01.2011, 06:53  [ТС]
я думаю, что мы друг друга не понимаем... Проблему, я четко описал...Простите
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
24.01.2011, 15:38
На ваше чёткое описание были даны чёткие ответы.
Если они вас не устраивают:
1. Уточняем проблему, указываем ошибку, что вы пытались сделать и т.д.
2. Читаем соответствующую литературу о С++ и механизмах отлова и возбуждения исключений.
0
1 / 1 / 1
Регистрация: 03.03.2010
Сообщений: 124
25.01.2011, 15:05  [ТС]
Я учту ваш совет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.01.2011, 15:05
Помогаю со студенческими работами здесь

Изменить код для деления на ноль, чтоб появлялось уведомление
Нужно немного изменить код, чтобы когда делишь на ноль писало "Деление на ноль не возможно!" void __fastcall...

Попытка деления на ноль
public string stroki = { }; public char bykva, cyfra; public int i = 0; public char per; public...

Ошибка: попытка деления на ноль
Меня интересует, можно ли как-то избавиться от ошибки "попытка деления на ноль". Дело в том, что используются рекурентные формулы, и...

Сделать, чтобы при попытке деления на ноль, выводилось сообщение: «Деление на ноль»
Создайте консольное приложение. В нем реализуйте нахождение значения выражения 1/(x+n), где n – ваш вариант, а вместо х должно вводиться...

Как сделать ноль результатом деления на ноль?
Народ, подскажите пожалуйста как сделать, чтоб при делении на ноль результат был равен нулю, а не бесконечности? переменных, которые могут...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
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 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru