• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ instrukcja if

Object Storage Arubacloud
0 głosów
513 wizyt
pytanie zadane 7 kwietnia 2020 w C i C++ przez Szarlotka Użytkownik (890 p.)

Mam zrobić wstawkę w C++, że jeżeli dowolny z boków został wprowadzony mniejszy lub równy 0, to ma być wyświetlony komunikat o nieprawidłowo wprowadzonym boku i dodatkowo program ma zakończyć działanie. Powiedziano mi jeszcze żeby dla każdego boku zrobić osobne ''if''. Czy ktoś ma pomysł jak zapisać ten cały warunek? Domyślam się że bedzie on wygladal mniej wiecej tak:

if ((nie wiem jak to zapisać))

{

cout<<"Podano nieprawidlowe dlugosci bokow, program zakonczy dzialanie";

return 0;

}

#include <iostream>
#include <cmath>
using namespace std;
double a,b,c,h,pole,obwod;
int main()
{
cout<<"Program oblicza pole trapezu i jego obwod"<<endl<<"Podaj dlugosc boku a: ";
cin>>a;
cout<<"Podaj dlugosc podstawy b: ";
cin>>b;
cout<<"Podaj dlugosc podstawy c: ";
cin>>c;
cout<<"Podaj wysokosc h: ";
cin>>h;
pole=(c+b)*h/2;
obwod=2*a+b+c;
cout<<"Pole trapezu wynosi: "<<pole<<", a obwod: "<<obwod<<endl;

if(pole>50)
{
    cout<<"To jest duzy trapez";
}
else
{
    cout<<"To jest maly trapez";
}
return 0;
}

 

komentarz 7 kwietnia 2020 przez tangarr Mędrzec (154,860 p.)
Nie wiesz jaki zrobić warunek dla jednego z boków czy jak zrobić jeden warunek uwzględniający wszystkie boki?
komentarz 7 kwietnia 2020 przez Szarlotka Użytkownik (890 p.)
jezeli polecenie byłoby typu, że bok 'a' zostal wprowadzony mniejszy lub równy 0 i ma być wyświetlony komunikat o nieprawidłowo wprowadzonym boku i dodatkowo program ma zakończyć działanie to wydaje mi sie ze wiedzialabym jak to zrobic. ale ''dowolny z boków''? Nawet nie wiem jakim spójnikiem to połączyć...
komentarz 7 kwietnia 2020 przez Szarlotka Użytkownik (890 p.)
if ((a<=0) or (b<=0) or (c<=0)) czy tak by było dobrze?

1 odpowiedź

+1 głos
odpowiedź 7 kwietnia 2020 przez tangarr Mędrzec (154,860 p.)

W programowaniu jak w matematyce. Do łączenia wyrażeń logicznych używamy operatorów && (and) i || (or).

Aby sprawdzić czy przynajmniej jeden z warunków został spełniony użyj operatora OR.

if (warunek1 || warunek2 || warunek3) {
    cout << "Przynajmniej jeden z warunków został spełniony";
}
else {
    cout << "Żaden z warunków nie został spełniony);
}

 

komentarz 7 kwietnia 2020 przez Szarlotka Użytkownik (890 p.)
if ((a<=0) or (b<=0) or (c<=0)) czy tak jest dobrze?
komentarz 7 kwietnia 2020 przez tangarr Mędrzec (154,860 p.)
Dobrze. Jednak zamiast or preferuję || (kwestia gustu)
komentarz 7 kwietnia 2020 przez Szarlotka Użytkownik (890 p.)
Okej. Dziękuję.
komentarz 7 kwietnia 2020 przez Szarlotka Użytkownik (890 p.)
I jeszcze jedno pytanie jeśli można. Mam jeszcze w poleceniu, że program ma zakończyć działanie. W tym wypadku używam

return 0;

}

prawda?

Tylko, gdy uruchamiam program wyświetla się tylko komunikat "Podano nieprawidlowe dlugosci bokow, program zakonczy dzialanie", a program się nie wyłącza.
komentarz 7 kwietnia 2020 przez tangarr Mędrzec (154,860 p.)
Wygląda mi to na złą kolejność instrukcji w kodzie. Pokaż kod.
komentarz 7 kwietnia 2020 przez Szarlotka Użytkownik (890 p.)
#include <iostream>
#include <cmath>
using namespace std;
double a,b,c,h,pole,obwod;
int main()
{
cout<<"Program oblicza pole trapezu i jego obwod"<<endl<<"Podaj dlugosc boku a: ";
cin>>a;
cout<<"Podaj dlugosc podstawy b: ";
cin>>b;
cout<<"Podaj dlugosc podstawy c: ";
cin>>c;
cout<<"Podaj wysokosc h: ";
cin>>h;
pole=(c+b)*h/2;
obwod=2*a+b+c;
cout<<"Pole trapezu wynosi: "<<pole<<", a obwod: "<<obwod<<endl;

if((a<=0) or (b<=0) or (c<=0))
 {
 cout<<"Podano nieprawidlowe dlugosci bokow, program zakonczy dzialanie";
 return 0;
 }

if(pole>50)
{
    cout<<"To jest duzy trapez";
}
else
{
    cout<<"To jest maly trapez";
}
return 0;
}

 

komentarz 7 kwietnia 2020 przez tangarr Mędrzec (154,860 p.)

Warunek na błędne dane musisz sprawdzić przed obliczeniem i wypisaniem pola.
W przypadku błędów powinno zwracać się kod różny od zera.
 

#include <iostream>
#include <cmath>
using namespace std;
double a,b,c,h,pole,obwod;
int main()
{
    cout<<"Program oblicza pole trapezu i jego obwod"<<endl<<"Podaj dlugosc boku a: ";
    cin>>a;
    cout<<"Podaj dlugosc podstawy b: ";
    cin>>b;
    cout<<"Podaj dlugosc podstawy c: ";
    cin>>c;
    cout<<"Podaj wysokosc h: ";
    cin>>h;
    pole=(c+b)*h/2;
    obwod=2*a+b+c;
    if((a<=0) or (b<=0) or (c<=0)) {
        cout<<"Podano nieprawidlowe dlugosci bokow, program zakonczy dzialanie";
        return 1;
    }
    
    cout<<"Pole trapezu wynosi: "<<pole<<", a obwod: "<<obwod<<endl;
    if(pole>50)
    {
        cout<<"To jest duzy trapez";
    }
    else
    {
        cout<<"To jest maly trapez";
    }
    return 0;
}

 

komentarz 7 kwietnia 2020 przez Szarlotka Użytkownik (890 p.)
Jeżeli mam w poleceniu, aby program zakończył działanie to znaczy to samoistne zamknięcie się tego czarnego okienka?
komentarz 7 kwietnia 2020 przez tangarr Mędrzec (154,860 p.)
To zależy od sposobu uruchomienia.

Niektóre środowiska uruchamiają twój program w niezależnym oknie. Bez tego nie widziałabyś wyniku programu, tylko mignięcie okienka.

Podobne pytania

0 głosów
1 odpowiedź 406 wizyt
pytanie zadane 29 września 2021 w C i C++ przez polandonion Mądrala (7,040 p.)
0 głosów
1 odpowiedź 475 wizyt
pytanie zadane 6 czerwca 2021 w Inne języki przez yumi382 Nowicjusz (120 p.)
+1 głos
1 odpowiedź 329 wizyt
pytanie zadane 30 września 2021 w JavaScript przez Doge Gaduła (3,370 p.)

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

61,954 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...