Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

13.09.2012, 00:47. Просмотров 713. Ответов 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;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2012, 00:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание проверки на ввод нуля и отрицательных чисел (C++):

Сделать проверки в коде на ввод чисел - C++
Можете помочь с проверками, что-то у меня не клеится. 1) проверить что бы a не было равно 0; 2) на ввод букв; #include...

Ввод чисел, при вводе нуля - вывод количества цифр, идущих по порядку - C++
Задача: пользователь вводит числа, при вводе нуля необходимо вывести кол-во чисел, которые шли по порядку(например: 2867524560 --&gt;...

Помогите сделать проверку на ввод отрицательных чисел - C++
#include &quot;iostream&quot; #include &quot;conio.h&quot; using namespace std; int main() { setlocale(LC_ALL,...

Ввод чисел и создание динамического массива - C++
Ребят, у меня здесь задание: &quot;Создайте фрагмент кода, который будет просить пользователя вводить только положительные числа, а затем...

Ввод до нуля - C++
Здравствуйте, нужно написать программу которая считает количество положительных чисел до первого отрицательного с вводом до нуля. Зарание...

Своя функция проверки на ввод с клавиатуры - C++
Как правильно убрать оба while в одну функцию после main, а потом вызывать её для использования? #include &lt;iostream&gt; #include...

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

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

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

Не по теме:

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

0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,673
Записей в блоге: 5
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;
}
1
alkagolik
Заблокирован
13.09.2012, 01:31 #11
Цитата Сообщение от sannee Посмотреть сообщение
виноват... каюсь...
не надо. всё верно. теперь своё выражение я бы написал так
if(R1 && R2 && R3 &&( 1 / R1 + 1 / R2 + 1 / R3 ) )
1
sannee
Просто хороший человек
366 / 159 / 12
Регистрация: 26.04.2011
Сообщений: 421
Завершенные тесты: 4
13.09.2012, 01:35 #12
Цитата Сообщение от alkagolik Посмотреть сообщение
sannee, да, я привел некорректные цифры и не уловил вашу предусмотрительность. Получается что заработался я, а не Вы.

Не по теме:

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

0
Mark33
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 13
13.09.2012, 12:09  [ТС] #13
Цитата Сообщение от sannee Посмотреть сообщение
а ну да, извините за флуд, я и забыл что в школьников или студентов первокурсников нет еще отрицательного сопротивления
не парься, я первокур
0
13.09.2012, 12:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2012, 12:09
Привет! Вот еще темы с ответами:

Определить количество положительных и количество отрицательных элементов до первого нуля. Найти ошибку в коде - C++
В маcсиве A(n) (n&lt;=7) хотя бы один элемент ноль. Определить количество положительных и количество отрицательных элементов до первого нуля! ...

Cколько чисел больше нуля, меньше нуля и среднее всех отрицательных чисел - C#
Помогите с кодом Задание: Вводятся N чисел. Программа считает сколько чисел больше нуля, меньше нуля и среднее всех отрицательных чисел. ...

Создание проверки на ввод цифр в TextBox - VBA
В TextBox нужно чтобы вводились тока цифры, и чтобы если ввели неправильно можно было повторить ввод.... помогите плз)))

Определить, сколько отрицательных чисел стоит после первого нуля - Turbo Pascal
Доброго времени суток, помогите пожалуйста переделать программу Задание: Дан ряд целых чисел. Сколько отрицательных чисел стоит после...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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