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

bool porownanie = 123 >= 321;

Ostatnio zmodyfikowano 2017-02-18 17:08
Autor Wiadomość
Dolce
Temat założony przez niniejszego użytkownika
bool porownanie = 123 >= 321;
» 2017-02-16 21:45:30
Utknąłem póki co w operacjach porównania, właśnie ze względu na niezrozumienie sposobu działania bool.
Porównanie bool (w celu zrozumienia jak "działa" ten typ) ze sposobem "działania" int jakoś mi nie wychodzi, nie widzę tu analogii.
Czy wpisując na początku kodu bool mam możliwość określenia jedynie czy porównanie jest prawdą czy fałszem?
Ten typ nie zawiera nic więcej?

 
P-157856
Janusz2
» 2017-02-16 22:04:27
int/bool - typ zmiennej
zmienna/porownanie - nazwa zmiennej
5/123>=321 -wartosc zmiennej

Ogólna różnica jest taka, że jeżeli nie wprowadzisz wartości zmiennej na początku, ani nie określisz jej nigdzie indziej, "komputer sam wprowadzi tam losową liczbę".

Prosty przykład:
C/C++
#include <iostream>
int main()
{
    int a;
    int b;
    std::cout << a << "+" << b << "=" << a + b << std::endl;
    return 0;
}

/edit
Dodaj wartości dla "a" i "b" i zobacz różnicę w działaniu :)
P-157861
Dolce
Temat założony przez niniejszego użytkownika
» 2017-02-16 22:12:14
Dziękuję.
Zmieniłem treść pierwszego posta zanim zdążyłem przeczytać Twoją wypowiedź. Cofnąłem się do lekcji ze zmiennymi i przypomniałem sobie co autor napisał o przypisywaniu danych czyli to co napisałeś i Ty, że warto zainicjować wartość liczbową. Ok.
Czy po int zawsze trzeba wpisywać zmienna a po bool porownanie czy też to co się wpisze po danym typie nie ma znaczenia, a jedynie później trzeba się tego konkretnego zapisu "trzymać" w programie?


P-157863
carlosmay
» 2017-02-16 22:16:36
Dla kompilatora nazwy identyfikatorów jak
zmienna
 czy
porownanie
 nie mają żadnego znaczenia.
Może tam być
jas
 i
malgosia
, ale czy tobie będzie łatwo pojąć co znaczą te zmienne?
Nazwy są dobierane do zastosowania zmiennych.
C/C++
int zmienna_int { };
bool zmienna_bool { };
 Można też tak.\

edit:
zy wpisując na początku kodu bool mam możliwość określenia jedynie czy porównanie jest prawdą czy fałszem?
Ten typ nie zawiera nic więcej?
Typ logiczny
bool
 może przechowywać tylko dwie wartości:
true
 lub
false
.
P-157864
Dolce
Temat założony przez niniejszego użytkownika
» 2017-02-16 22:19:13
Dziękuję.

To jeszcze taka wątpliwość:

#include <iostream>

int main()
{
    bool porownanie = 123 >= 321;
    std::cout << "porownanie = " <<( 111 != 222 ) << std::endl;
    std::cout << "porownanie = " <<( 777 == 777 ) << std::endl;
    std::cout << "porownanie = " <<( 777 < 777 ) << std::endl;
    return 0;
}

oraz

#include <iostream>

int main()
{
    std::cout << "porownanie = " <<( 111 != 222 ) << std::endl;
    std::cout << "porownanie = " <<( 777 == 777 ) << std::endl;
    std::cout << "porownanie = " <<( 777 < 777 ) << std::endl;
    return 0;
}

Nie ma różnic w wyniku.
Program "z definicji" porównuje dane w nawiasach, nawet bez zapodania bool na początku kodu. W którym momencie jest więc potrzebne podanie typu bool?
P-157865
carlosmay
» 2017-02-16 22:21:45
Dlaczego miałaby być?
Wyjaśnij jak ty to widzisz, krok po kroku.
P-157866
Dolce
Temat założony przez niniejszego użytkownika
» 2017-02-16 22:33:48
Dobre pytanie.
W zasadzie to nie powinno być różnicy i to w sumie rozumiem.
Natomiast nie rozumiem zastosowania bool w tym kodzie zapisu:

#include <iostream>

int main()
{
    bool porownanie = 123 >= 321;
  
    std::cout << "porownanie = " << porownanie << std::endl;
    std::cout << "porownanie = " <<( 111 != 222 ) << std::endl;
    std::cout << "porownanie = " <<( 777 == 777 ) << std::endl;
    std::cout << "porownanie = " <<( 777 < 777 ) << std::endl;
    return 0;
}

1) Czy autor zapisał to tylko dla przykładu, by w linijce: std::cout << "porownanie = " << porownanie << std::endl;
"nawiązać" do podanej od razu przy bool wartości?
2) Rozumiem, że na początku kodu nie ma co wpisywać wszystkich typów, ponieważ musi być przecież rezerwowana część pamięci a poza tym po co wypisywać coś, z czego nie będzie potrzeby korzystać. Zbędny bałagan.
Natomiast nie rozumiem póki co, w jakim celu stosuje się w ogóle bool,skoro program i tak porówna dane w nawiasach, bez podnia tego typu.
Zawczasu wyjaśniam z pokorą: wiem, że po coś to jest wymyślone i pewnie za jakiś czas do tego bym doszedł metod prób i błędów ale na razie tego nie rozumiem więc korzystam na ile się da z działu Pomoc, a więc Waszej uprzejmości.
P-157868
carlosmay
» 2017-02-16 22:53:41
C/C++
#include <iostream>

int main()
{
    bool zmienna_bool =( 5 == 5 ); // true
    int zmienna_int =( 5 + 5 ); // 10
    std::cout << std::boolalpha << zmienna_bool << '\n';
    std::cout << zmienna_int << '\n';
   
    std::cout <<( 5 != 5 ) << '\n';
    std::cout <<( 5 * 5 ) << '\n';
}
Zmienna logiczna to taka sama zmienna jak każda inna, i może przechować wartość zerową bądź niezerową.
Dla ułatwienia zostały nazwane
true
 i
false
.

2. Zmienne stosuje się do przechowywania wartości na później lub wielokrotnego użycia.
C/C++
#include <iostream>

bool is_even( int num )
{
    if( num % 2 ) {
        return false;
    }
    return true;
}

int main()
{
    int num;
    std::cin >> num;
    bool is_num_even = is_even( num );
   
    std::cout << std::boolalpha << is_num_even << '\n';
    std::cout << is_even( num ) << '\n';
    if( is_num_even ) {
        std::cout << "liczba jest parzysta\n";
    }
    else {
        std::cout << "liczba nie jest parzysta\n";
    }
}
P-157870
« 1 » 2 3 4
  Strona 1 z 4 Następna strona