Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z Instrukcjami warunkowymi

Ostatnio zmodyfikowano 2013-06-28 19:19
Autor Wiadomość
Daedra
Temat założony przez niniejszego użytkownika
Problem z Instrukcjami warunkowymi
» 2013-06-28 16:26:34
Ostatnio chciałem poćwiczyć sobie pisane instrukcji warunkowych, ale chyba nie do końca je rozumiem... Czy ktoś jest w stanie powiedzieć co piszę źle? :)
C/C++
#include <iostream>
int main()
{
    int s;
    int n;
    int zmienna;
   
    std::cout << "Idziesz do szkoly w srode czy niedziele?\nJesli w srode napisz S\nJesli w niedziele napisz N" << std::endl;
    std::cin >> s;
    std::cin >> n;
    if( s )
    {
        std::cout << "Idziesz na lekcje w srode";
        zmienna = 1;
       
    }
    else
    if( n )
    {
        std::cout << "W niedziele nie ma lekcji";
        zmienna = 0;
    }
}
P-86462
pekfos
» 2013-06-28 16:28:17
Zamiast znaku wczytujesz 2 inty, a w warunkach sprawdzasz, czy są niezerowe.
P-86464
Geniusz
» 2013-06-28 16:51:59
Kiepsko ogarniasz instrukcje warunkowe.

Kod pomiędzy "{" i "}" wykona się wtedy jeśli warunek w if będzie spełniony i przyjmie wartość true, czyli wtedy gdy zmienna "s" będzie różna od zera.

C/C++
if( s )
{
    std::cout << "Idziesz na lekcje w srode";
    zmienna = 1;
   
}

Po kodzie od razu widać, że sam do końca nie rozumiesz tego, co piszesz. Program, który planujesz napisać, łatwo wykonnać za pomocą jednej zmiennej typu char, której wartość określasz za pomocą strumienia wejściowego ( cin >> zmienna ) i warunku wielokrotnego wyboru switch ... case.
P-86478
Daedra
Temat założony przez niniejszego użytkownika
» 2013-06-28 16:55:53
Poprawiłem tak i już działa tak jak miał działać:

C/C++
#include <iostream>
int main()
{
    int s;
    int zmienna;
   
    std::cout << "Idziesz do szkoly w srode czy niedziele?\nJesli w srode napisz 0\nJesli w niedziele napisz 1" << std::endl;
    std::cin >> s;
    if( s <= 0 )
    {
        std::cout << "Idziesz na lekcje w srode" << std::endl;
        zmienna = 0;
    }
    else
    {
        std::cout << "Idziesz na lekcje w niedziele" << std::endl;
        zmienna = 1;
    }
}


Nie ogarniam jeszcze do końca tematu, dopiero się uczę, mam nadzieję że z czasem będzie lepiej ;)
P-86479
pekfos
» 2013-06-28 16:59:11
Zmienna zmienna jest tu niepotrzebna, a te warunki mogą być bardziej konkretne:
C/C++
if( s == 0 )
{ /* sroda */ }
else if( s == 1 )
{ /* niedziela */ }
else
{ /* inne */ }
P-86481
Daedra
Temat założony przez niniejszego użytkownika
» 2013-06-28 19:15:44
Faktycznie, a co do warunków faktycznie są konkretniejsze co mi się podoba :) Lecz mam jedno pytanko, czemu wszędzie jest dwa razy równa się o tak np. ,, ( s==0 ) '' Nie wystarczy jedno = się?

Dodam że gdy jest tylko jedno = się, to program działa źle. Dając 0 zamiast środy mam niedziele, niby dając 1 mam niedziele a to jest poprawne, lecz nie rozumiem czemu dzieje się tak w przypadku 0 ?
P-86492
pekfos
» 2013-06-28 19:17:12
Jedno = to przypisanie, a nie porównanie.
P-86493
Daedra
Temat założony przez niniejszego użytkownika
» 2013-06-28 19:19:39
Przepraszam za te nawet bym powiedział głupkowate tematy, muszę zacząć lepiej szukać zamiast zadawać takie pytania, praktycznie wszystko jest w internecie i na waszej stronie. Przepraszam za kłopot i dziękuję za udzieloną pomoc, problem rozwiązany ;)
P-86494
« 1 »
  Strona 1 z 1