Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Ile instrukcji inkrementacji występuje w programie
Forum PHP.pl > Inne > Hydepark
Kamil90
Ile instrukcji inkrementacji występuje w programie napisanym w języku C/C++?

Kod
short liczba = 0, i = 0;
if (liczba <= 0) liczba ++;
do
(
    liczba = liczba + 1;
    i = i – 2;
} while (i < 10);
wookieb
Zmień przedrostek. To je PHP?questionmark.gif?

A petla wykona sie nieskonczenie wiele razy co spowoduje zawieszenie programu.
odejmujesz od 0 cały czas 0 przez co i jest cały czas mniejsze od 10 i bedzie sie wykonywac w nieskonczonosc.
nevt
nie ten dział, przenoszę do Hydepark'u.
Jabol
Cytat(wookieb @ 11.09.2008, 09:31:10 ) *
Zmień przedrostek. To je PHP?questionmark.gif?

A petla wykona sie nieskonczenie wiele razy co spowoduje zawieszenie programu.
odejmujesz od 0 cały czas 0 przez co i jest cały czas mniejsze od 10 i bedzie sie wykonywac w nieskonczonosc.

śmiem wątpić.
jeszcze przed pętlą liczba ma wartość 1. później dodawana jest do niej 1 tak długo aż i -= 2 nie przekroczy najmniejszego shorta.
czyli inaczej mówiąc pętla wykona się 65 razy (jako, że jest to do ... while), 64 razy dla i < 0 i 1 raz dla i = 126.
czyli liczba = 66 po wykonaniu pętli.

... dzieci php. tongue.gif

oczywiście nie chwaląc się pomyliłem short z char tongue.gif. W takim razie pętlla wykona się 2^15/2 + 1 razy a wynikiem będzie 2^14 + 2

oczywiście wytłumaczenie na górze zostaje to samo tylko liczby się zmieniają.
dr_bonzo
1. popraw kod
2.
Kod
#include <stdio.h>

int main( void )
{
    short liczba = 0, i = 0;
    if ( liczba <= 0) liczba++;
    
    do
    {
        liczba = liczba +1;
        i = i - 2;
    }
    while (i < 10 );
    
    printf( "liczba = %d, i = %d\n", liczba, i );
    return 0;
};


3. skompiluj i uruchom
4. program sie skonczy bo schodzac shortem (to chyba zalezy od bitowosci procesora - nie pamietam) ponizej zera dojdziesz az do -16k, po czym przeskoczysz na +16k i petla sie skonczy
Kod
liczba = 16386, i = 32766

5. nie mam pojecia co chcesz zliczyc

edit: Jabol, heheh, u mnie 16k biggrin.gif a nie 65
Jabol
Cytat(dr_bonzo @ 11.09.2008, 15:49:04 ) *
edit: Jabol, heheh, u mnie 16k biggrin.gif a nie 65
już się poprawiłem, nie narzekaj tongue.gif, kto by tam spamiętał różnice pomiędzy char a short (czar a czort tongue.gif).
dr_bonzo
Nie narzekam, ja to odpalilem i tyle mi wyszlo, nie pamietam za bardzo jak to z szortem bylo, wiem tylko ze short <= int <= long a po ile bajtow co ma to e-e smile.gif
Co do instrukcji inkrementacji, hmm, to widze JEDNA, liczba++ ;p
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.