Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Ile instrukcji inkrementacji występuje w programie
Kamil90
post 11.09.2008, 08:07:39
Post #1





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 17.02.2008
Skąd: Toruń

Ostrzeżenie: (0%)
-----


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);


--------------------
Jak dobrze, że ktoś pomyślał i stworzył takie forum :)
Go to the top of the page
+Quote Post
wookieb
post 11.09.2008, 08:31:10
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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.


--------------------
Go to the top of the page
+Quote Post
nevt
post 11.09.2008, 14:34:52
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


nie ten dział, przenoszę do Hydepark'u.


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
Jabol
post 11.09.2008, 14:47:55
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


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ą.

Ten post edytował Jabol 11.09.2008, 15:07:01
Go to the top of the page
+Quote Post
dr_bonzo
post 11.09.2008, 14:49:04
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


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

Ten post edytował dr_bonzo 11.09.2008, 14:49:54


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Jabol
post 11.09.2008, 15:08:46
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


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).
Go to the top of the page
+Quote Post
dr_bonzo
post 11.09.2008, 15:15:17
Post #7





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


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

Ten post edytował dr_bonzo 11.09.2008, 15:15:51


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 14:22