Faktorizace – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Faktorizace – C / C++ – Fórum – Programujte.comFaktorizace – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
pazdy0
Návštěvník
8. 10. 2013   #1
-
0
-

Zdravím mám za úkol naprogramovat program na faktorizaci... Ale nevím jak udělat podmínku, aby když napíšu text místo číslice, mi to napsalo "nespravny vstup".

Ukázka:


Zadejte hodnoty v, w a h:

1 2 chyba

Nespravny vstup.

Můj program

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
double v;
double w;
double h;
cout<<"Zadejte hodnoty v, w a h:"<<endl;
cin>>v;
cin>>w;
cin>>h;


if (w==0 || v<0 || w<0 || h<0)
{
    cout<<"Nespravny vstup."<<endl;
    return 0;
}
h = h * ((w * v) / (w * w * h));
w = w * ((v * h) / (w * h * h));
std::cout.precision(3);
std::cout << "\n" << std::fixed;
cout<<"Cislo " <<v<< " lze faktorizovat na " <<w<< " x " <<h<< ". Faktorizace ma chybu 0.000."<<endl;
return 0;
}

Nahlásit jako SPAM
IP: 2001:718:1001:6a4:cc25:bf...–
Martin Kozibrátka0
Stálý člen
8. 10. 2013   #2
-
0
-

Zkus

http://www.cplusplus.com/reference/locale/isdigit/

Nahlásit jako SPAM
IP: 212.24.138.–
Savana.cz - neomezený webhosting za pár kaček :)
KIIV
~ Moderátor
+43
God of flame
8. 10. 2013   #3
-
0
-

nicmene kdyz mas cin >>  do double tak jakykoliv spatny vstup zpusobi ze se cin zasekne na necem jako fail_bit nebo tak neco... staci to testovat --- nebo si na to nacteni udelat funkci

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
pazdy0
Návštěvník
8. 10. 2013   #4
-
0
-

Děkuji za rady, ale já jsem naprostý začátečník.. Nemohla by nějaká hodná duše, mi to přímo vepsat do toho programu? Díky moc

Nahlásit jako SPAM
IP: 2001:718:1001:6a4:cc25:bf...–
Josef
~ Anonymní uživatel
39 příspěvků
9. 10. 2013   #5
-
0
-

Ahoj použij tohle

if ( !std::cin.good() )
{

}
je to test na to, jeslti vstup cin byl nebo nebyl zadán správně, tady je psané - jestliže cin se nerovná správnému vstumu ( no a do tech křivých závorek jen napiš, co to má udelat a dej tam, že to má vypsat ten špatný vstup a musíš tam potom taky dopsat
return 0;
aby se to ukončilo

Nahlásit jako SPAM
IP: 158.196.53.–
Josef
~ Anonymní uživatel
39 příspěvků
9. 10. 2013   #6
-
+1
-
Zajímavé

using namespace std; máš nadeklarovaný, tudž tam proste jen šupni tohle :-)

if ( !cin.good() )
    {
    cout<<"spatny vstup"<<endl;
    return 0;
    }

Nahlásit jako SPAM
IP: 158.196.53.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

Podobná vlákna

Faktorizace — založil Zelenáč

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý