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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mark33
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 13
#1

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

13.09.2012, 00:47. Просмотров 673. Ответов 12
Метки нет (Все метки)

Написал практически первую свою программу, благо ваш форум + википедия мне в помощь
не могу разобраться, как вставить в неё условие чтобы была проверка на 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++
C++ Определить количество положительных и количество отрицательных элементов до первого нуля. Найти ошибку в коде
C++ Дано 10 действительных чисел. Определить количество, сумму и произведение отрицательных чисел
C++ Найти в последовательности чисел два подряд идущих нуля
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sannee
Просто хороший человек
363 / 156 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 3
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
Заблокирован
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
Просто хороший человек
363 / 156 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 3
13.09.2012, 01:03     Создание проверки на ввод нуля и отрицательных чисел #4
Цитата Сообщение от alkagolik Посмотреть сообщение
if (R1 && R2 && R3)
выражение if(VALUE) эквивалентно выражению if(VALUE != 0). Оператор && - логическое И
Правильно добавили, все-таки новичкам нужно как-то развиваться

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

Добавлено через 2 минуты
проверяем, если есть хотя бы один ноль, значит логическое или =) Для чего проверять, что все R являются нулями!? =)
alkagolik
Заблокирован
13.09.2012, 01:08     Создание проверки на ввод нуля и отрицательных чисел #5
sannee, ну понятно?
1/5 + 1/5 + (1/-10) == 0. Но тогда ваше условие срабатывает.
sannee
Просто хороший человек
363 / 156 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 3
13.09.2012, 01:12     Создание проверки на ввод нуля и отрицательных чисел #6
Цитата Сообщение от alkagolik Посмотреть сообщение
1/5 + 1/5 + (1/-10) == 0. Но тогда ваше условие срабатывает.
ну конечно же понятно, поэтому я и написал если (1 / R1 + 1 / R2 + 1 / R3)==0 то выводим сообщение и выходим из программы.
alkagolik
Заблокирован
13.09.2012, 01:14     Создание проверки на ввод нуля и отрицательных чисел #7
Цитата Сообщение от sannee Посмотреть сообщение
то выводим сообщение и выходим из программы.
а не надо программа выполнила корректный подсчет в этом случае и все в норме, никаких ошибок.
sannee
Просто хороший человек
363 / 156 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 3
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
Заблокирован
13.09.2012, 01:28     Создание проверки на ввод нуля и отрицательных чисел #9
sannee, да, я привел некорректные цифры и не уловил вашу предусмотрительность. Получается что заработался я, а не Вы.

Не по теме:

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

IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6411 / 3050 / 300
Регистрация: 04.12.2011
Сообщений: 8,237
Записей в блоге: 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
Заблокирован
13.09.2012, 01:31     Создание проверки на ввод нуля и отрицательных чисел #11
Цитата Сообщение от sannee Посмотреть сообщение
виноват... каюсь...
не надо. всё верно. теперь своё выражение я бы написал так
if(R1 && R2 && R3 &&( 1 / R1 + 1 / R2 + 1 / R3 ) )
sannee
Просто хороший человек
363 / 156 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 3
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++
C++ Своя функция проверки на ввод с клавиатуры
Вычислить среднее арифметическое элементов, расположенных до первого нуля и после последнего нуля C++

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

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

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