Форум программистов, компьютерный форум CyberForum.ru

Создание проверки на ввод нуля и отрицательных чисел - C++

Восстановить пароль Регистрация
 
Mark33
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 13
13.09.2012, 00:47     Создание проверки на ввод нуля и отрицательных чисел #1
Написал практически первую свою программу, благо ваш форум + википедия мне в помощь
не могу разобраться, как вставить в неё условие чтобы была проверка на 0 и на отрицательные числа так, чтобы если хоть в одном из R было такое число, то вылезало сообщение типа "ха-ха, нуб, учи математику, на 0 делить нельзя" и в этом духе
не прошу делать за меня, хотя бы приведите примеры как это можно сделать чтобы я имел представление

вот прога:
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
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "RUS");
   
double R1, R2, R3;
double R;
    
cout << "Введите первое сопротивление: ";
    cin >> R1;
cout << "Введите второе сопротивление: ";
    cin >> R2;
cout << "Введите третье сопротивление: ";
    cin >> R3;
 
    R = 1 / (1 / R1 + 1 / R2 + 1 / R3);
 
cout << "Первое сопротивление: ";
    cout << R1 << endl;
cout << "Второе сопротивление: ";
    cout << R2 << endl;
cout << "Третье сопротивление: ";
    cout << R3 << endl;
cout << "Сопротивление соединения: ";
    cout << R << endl;
 
     system("pause");
 
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2012, 00:47     Создание проверки на ввод нуля и отрицательных чисел
Посмотрите здесь:

Ввод чисел, при вводе нуля - вывод количества цифр, идущих по порядку C++
Написать защиту от ввода чисел с плавающей точкой, отрицательных чисел и символов C++
Ввод чисел и создание динамического массива C++
C++ Определить количество положительных и количество отрицательных элементов до первого нуля. Найти ошибку в коде
C++ Дано 10 действительных чисел. Определить количество, сумму и произведение отрицательных чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sannee
Просто хороший человек
 Аватар для sannee
362 / 155 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 2
13.09.2012, 00:53     Создание проверки на ввод нуля и отрицательных чисел #2
Перед:
Цитата Сообщение от Mark33 Посмотреть сообщение
R = 1 / (1 / R1 + 1 / R2 + 1 / R3);
Пишем
if(R1==0 || R2==0 ||R3==0 || (1 / R1 + 1 / R2 + 1 / R3)==0) {cout<<"You have trouble!"; cin.get(); return 0;}
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
13.09.2012, 00:59     Создание проверки на ввод нуля и отрицательных чисел #3
if (R1 && R2 && R3)
выражение if(VALUE) эквивалентно выражению if(VALUE != 0). Оператор && - логическое И.
Цитата Сообщение от sannee Посмотреть сообщение
(1 / R1 + 1 / R2 + 1 / R3)==0
это не обязательно должно быть != 0. Я это имел ввиду. Общее сопротивление вполне может быть равно 0 и тогда ваше условие окажется истиной.
sannee
Просто хороший человек
 Аватар для sannee
362 / 155 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 2
13.09.2012, 01:03     Создание проверки на ввод нуля и отрицательных чисел #4
Цитата Сообщение от alkagolik Посмотреть сообщение
if (R1 && R2 && R3)
выражение if(VALUE) эквивалентно выражению if(VALUE != 0). Оператор && - логическое И
Правильно добавили, все-таки новичкам нужно как-то развиваться

Добавлено через 1 минуту
Цитата Сообщение от alkagolik Посмотреть сообщение
это ошибочное условие. Оно будет истинным, если хотя бы один операнд будет отличным от нуля, что не мешает остальным операндам быть равными нулю.
согласен, лоханулся я)) устал просто уже...
а нет не лоханулся =))) вы чучуть тупите)

Добавлено через 2 минуты
проверяем, если есть хотя бы один ноль, значит логическое или =) Для чего проверять, что все R являются нулями!? =)
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
13.09.2012, 01:08     Создание проверки на ввод нуля и отрицательных чисел #5
sannee, ну понятно?
1/5 + 1/5 + (1/-10) == 0. Но тогда ваше условие срабатывает.
sannee
Просто хороший человек
 Аватар для sannee
362 / 155 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 2
13.09.2012, 01:12     Создание проверки на ввод нуля и отрицательных чисел #6
Цитата Сообщение от alkagolik Посмотреть сообщение
1/5 + 1/5 + (1/-10) == 0. Но тогда ваше условие срабатывает.
ну конечно же понятно, поэтому я и написал если (1 / R1 + 1 / R2 + 1 / R3)==0 то выводим сообщение и выходим из программы.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
13.09.2012, 01:14     Создание проверки на ввод нуля и отрицательных чисел #7
Цитата Сообщение от sannee Посмотреть сообщение
то выводим сообщение и выходим из программы.
а не надо программа выполнила корректный подсчет в этом случае и все в норме, никаких ошибок.
sannee
Просто хороший человек
 Аватар для sannee
362 / 155 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 2
13.09.2012, 01:24     Создание проверки на ввод нуля и отрицательных чисел #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну во первых
1/5 + 1/5 + (1/-10) ==0
это не ноль, а 0.4 - 0.1
Поэтому это условие естественно выполнилось бы.
Идем дальше
Цитата Сообщение от Mark33 Посмотреть сообщение
1 / (1 / R1 + 1 / R2 + 1 / R3);
Как пользователь написал у него 1 делиться на вот это (1 / R1 + 1 / R2 + 1 / R3), поэтому значит вот это не должно ровняться нулю, и соответственно если оно равно нулю я делаю вывожу сообщение и делаю выход

Добавлено через 3 минуты
а ну да, извините за флуд, я и забыл что в школьников или студентов первокурсников нет еще отрицательного сопротивления

Добавлено через 1 минуту
виноват... каюсь...
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
13.09.2012, 01:28     Создание проверки на ввод нуля и отрицательных чисел #9
sannee, да, я привел некорректные цифры и не уловил вашу предусмотрительность. Получается что заработался я, а не Вы.

Не по теме:

тоже мозг плавится

IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6172 / 2901 / 284
Регистрация: 04.12.2011
Сообщений: 7,714
Записей в блоге: 3
13.09.2012, 01:30     Создание проверки на ввод нуля и отрицательных чисел #10
Цитата Сообщение от sannee Посмотреть сообщение
Перед:

Пишем
if(R1==0 || R2==0 ||R3==0 || (1 / R1 + 1 / R2 + 1 / R3)==0) {cout<<"You have trouble!"; cin.get(); return 0;}
ИЛИ это то что нужно, вроде:
C++
1
2
3
 if(R1 || R2 ||R3) {
cout<<"You have trouble!"; cin.get(); return 
}
или
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int enter=0;
while(!(R1*R2*R3)||R1<0||R2<0||R3<0){
if(enter>0) {
cout<<"\nВad try!  Let You make an input again!";
}
if(enter>2) {
break;
}
cout<<"\nR1\t";cin>>R1;
cout<<"\nR2\t";cin>>R2;
cout<<"\nR3\t";cin>>R3;
enter++;
}
if(enter>2) {
cout<<"\nDon't be sad, may be next time... ";
return;
}
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
13.09.2012, 01:31     Создание проверки на ввод нуля и отрицательных чисел #11
Цитата Сообщение от sannee Посмотреть сообщение
виноват... каюсь...
не надо. всё верно. теперь своё выражение я бы написал так
if(R1 && R2 && R3 &&( 1 / R1 + 1 / R2 + 1 / R3 ) )
sannee
Просто хороший человек
 Аватар для sannee
362 / 155 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 2
13.09.2012, 01:35     Создание проверки на ввод нуля и отрицательных чисел #12
Цитата Сообщение от alkagolik Посмотреть сообщение
sannee, да, я привел некорректные цифры и не уловил вашу предусмотрительность. Получается что заработался я, а не Вы.

Не по теме:

та все мы устали после работы, поэтому нечему удивляться, что иногда бред несем

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2012, 12:09     Создание проверки на ввод нуля и отрицательных чисел
Еще ссылки по теме:

C++ Найти в последовательности чисел два подряд идущих нуля
C++ Найти произведение всех положительных чисел массива, и количество отрицательных чисел
Помогите сделать проверку на ввод отрицательных чисел C++

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

Или воспользуйтесь поиском по форуму:
Mark33
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 13
13.09.2012, 12:09  [ТС]     Создание проверки на ввод нуля и отрицательных чисел #13
Цитата Сообщение от sannee Посмотреть сообщение
а ну да, извините за флуд, я и забыл что в школьников или студентов первокурсников нет еще отрицательного сопротивления
не парься, я первокур
Yandex
Объявления
13.09.2012, 12:09     Создание проверки на ввод нуля и отрицательных чисел
Ответ Создать тему
Опции темы

Текущее время: 21:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru