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

Pare pytań dotyczących modyfikacji zmiennych.

Ostatnio zmodyfikowano 2014-06-22 20:53
Autor Wiadomość
lukhol
Temat założony przez niniejszego użytkownika
Pare pytań dotyczących modyfikacji zmiennych.
» 2014-06-22 18:48:50
Siema, mam kod, w ktorym nie koniecznie wiem co dzieje się z każdą ze zmiennych, kod wygląda tak:

C/C++
#include<iostream>

using namespace std;
int a = 1, b = 1;
int main()
{
    int c, d, e;
    d = c = a + 1;
    a = 1 + 0.1f;
    c /= d + b--;
    if( 1 )
    {
        int b = 2;
        for(; b--; ) d--;
       
    }
    e = 2 ? 1: 0;
    cout << a << endl << b;
    cout << endl << "c: " << c;
    cout << endl << d;
    cout << endl << e;
}

1. Jak działa wpisanie c/= ... ?
2.Czemu zmienna b zmniejszyła się do 0?
3 Co oznacza pętla for z argumentem 1 ?
4. Co oznacza linijka e=2 ? 1: 0;

Jeżeli ktoś ma jakiś artykuł, z którego mógł bym nauczyć się jak działają poszczególne operację tego typy proszę o wysłanie mi do niego linku ;) Potrzebuje szybko to zrozumieć.

P-112517
Jacob99
» 2014-06-22 19:23:15
1.
c /= d + b--;
 oznacza
c = c / d + b--;
.
2. Ponieważ robisz postdekrementację
b--
.
3. [chyba chodziło ci o
if
 a nie o
for
] Warunek ten oznacza "jeśli jest prawdziwe...".
4. To jest wyrażenie warunkowe - jeśli warunek
e = 2
(chyba miało być
e == 2
) jest spełniony to coś ma wartość 1, jeśli nie to 0.

Chociaż ogólnie ten kod totalnie nie ma sensu i nawet nie powinien się kompilować.
P-112523
colorgreen19
» 2014-06-22 19:33:48
3. for z argumentem 1 działa w nieskończoność bo zawsze jest prawda ( 1 );
P-112524
lukhol
Temat założony przez niniejszego użytkownika
» 2014-06-22 20:36:47
W pytaniu 3 chodziło oczywiście o if, a nie o for. Czyli jak mam pętle if(0) to wykonuje się ona za każdym razem ? Czy to, ze zmienna utworzona w pętli if ( chodzi o zmienną b ) oznacza, ze nie zmieni się zmienna b poza pętlą ?

Dodatkowo czemu skoro c/= jest równoznaczne z c=c/ wychodzi wynik 0 ? dzieląc 2/2 wychodzi przecież 1.
P-112530
SeaMonster131
» 2014-06-22 20:53:54
if to nie jest pętla, a instrukcja warunkowa.

Czyli jak mam pętle if(0) to wykonuje się ona za każdym razem ?
Nie. if(0) jest równoznaczne z if(false), a instrukcja warunkowa wykona się wtedy, kiedy warunek będzie true.

Czy to, ze zmienna utworzona w pętli if ( chodzi o zmienną b ) oznacza, ze nie zmieni się zmienna b poza pętlą ?
Tutaj chodzi o zakres zmiennych - ogólnie tak jak mówisz (oprócz tej "pętli if"), ale bardziej szczegółowo możesz poczytać:
Frazy, które należy wpisać w wyszukiwarkę google:

Dodatkowo czemu skoro c/= jest równoznaczne z c=c/ wychodzi wynik 0 ? dzieląc 2/2 wychodzi przecież 1.
c /= 2 + 1
c = c/(2+1)

2/3 = 0.

@Jacob99:
4. To jest wyrażenie warunkowe - jeśli warunek e = 2(chyba miało być e == 2) jest spełniony to coś ma wartość 1, jeśli nie to 0.
Nie do końca tam jest pomyłka. Zamieniając
e = 2 ? 1: 0;
 na:
C/C++
if( 2 )
     e = 1;
else
     e = 0;

lepiej to widać.

1. c /= d + b--; oznacza c = c / d + b--;.
Trzymając się podstawowych zasad matematyki,
c = c /( d + b-- )
P-112532
« 1 »
  Strona 1 z 1