Promocja językowa LINGO

Lekcja 7

Wszystkie informacje związane z Kurs C++ - POZIOM 1

Moderator: Moderatorzy

Postprzez Stavikk N lis 18, 2007 22:31 pm

Witam!
czy mógłby mi ktoś wytłumaczyć dlaczego jest tak a nie inaczej w tym przykładzie(wkleiłem fragment którego nie rozumiem):
liczba=45; // operator przypisania dla liczby
napis="Ala ma kota"; // operator przypisania dla napisu
znak='c'; //operator przypisania dla znaku

cout <<"Oto wartosci zmiennych: "<<liczba<<' '<<napis<<' '<<znak<<"\n\n";
cout <<"Podaj wartosc liczby: ";
cin >>liczba;
cin.ignore();

cout <<"Wpisz jakis napis (bez bialych znakow): ";
cin >>napis;
cin.ignore();

cout <<"Podaj znak: ";
cin >>znak;
cin.ignore();

cout <<"Oto wartosci zmiennych: "<<liczba<<' '<<napis<<' '<<znak<<"\n\n";


Dlaczego po wcześniejszym przypisaniu do liczby, napisu i znaku ustalonych wartości, w dalszej części programu jest możliwość zmienienia ich?
C++ beginner, Linux Slackware user.
Avatar użytkownika
Stavikk
obserwator
obserwator
 
Posty: 4
Dołączył(a): N lis 18, 2007 22:25 pm

Postprzez PHPechowiec N lis 18, 2007 23:40 pm

jeśli chcesz żeby nie można było zmienić zmiennej musisz jej nadać typ stałej poprzez dopisanie słowa
static
Kod: Zaznacz cały
static int a=1; //przypisujemy wartość dla stałej a
cout<<a; //wyświetlamy wartość zmiennej a
a++; //"zwiekszamy a o 1"
cout<<a; //wyświetlamy a ; a powinno wynosić 1

możliwe że coś popieprzyłem bo dawno nic nie pisałem w c++
PHPechowiec
obserwator
obserwator
 
Posty: 11
Dołączył(a): N lis 18, 2007 12:00 pm

Postprzez kubabednar Pn lis 19, 2007 15:39 pm

"static" to zmienna statyczna, chyba chodziło tu o "const"
kubabednar
początkujący
początkujący
 
Posty: 112
Dołączył(a): Wt lis 21, 2006 16:51 pm

Postprzez mnabialek Wt lis 20, 2007 09:34 am

Stavikk - dlaczego piszesz, że nie ma możliwości zmienienia wartości? Wartości właśnie zostają zmienione po wpisaniu ich przez użytkownika z klawiatury :)
Promocja na abonament w serwisie - kup lub poleć innym - szczegóły na Abonament w serwisie
Avatar użytkownika
mnabialek
Administrator
Administrator
 
Posty: 657
Dołączył(a): Śr paź 25, 2006 14:05 pm
Lokalizacja: Częstochowa

Postprzez Stavikk Wt lis 20, 2007 15:24 pm

Ja właśnie pisze. że jest możliwość i nie wiem dlaczego, przecież na poczatku wartości są zadeklarowane, a potem sie je zmienia.
Zastanawiałem się trochę nad tym i doszedłem do wniosku, że można pozdielić to tak jakby na 2 programy:
/*pierwszy program*/

liczba=45; // operator przypisania dla liczby
napis="Ala ma kota"; // operator przypisania dla napisu
znak='c'; //operator przypisania dla znaku

cout <<"Oto wartosci zmiennych: "<<liczba<<' '<<napis<<' '<<znak<<"\n\n";

/*pierwszy program*/

/*drugi program*/
cout <<"Podaj wartosc liczby: ";
cin >>liczba;
cin.ignore();

cout <<"Wpisz jakis napis (bez bialych znakow): ";
cin >>napis;
cin.ignore();

cout <<"Podaj znak: ";
cin >>znak;
cin.ignore();

cout <<"Oto wartosci zmiennych: "<<liczba<<' '<<napis<<' '<<znak<<"\n\n";
/*drugi program*/

mam racje, czy to jest błedne rozumowanie ?
Avatar użytkownika
Stavikk
obserwator
obserwator
 
Posty: 4
Dołączył(a): N lis 18, 2007 22:25 pm

Postprzez mnabialek Wt lis 20, 2007 15:28 pm

No nie do końca. Wartości są zainicjowane więc początkowo mają wartości, ale zmienne te muszą istnieć, żeby można było wykonać drugą część.

Przykładowo:

Kod: Zaznacz cały
int a=2;
a=5;
a=a+3;


Nie ma znaczenia jaką wartość miała na początku zmienna a. Cechą zmiennej jest to, że jej wartość można dowolnie zmieniać w określonym typie i zakresie wartości.
Promocja na abonament w serwisie - kup lub poleć innym - szczegóły na Abonament w serwisie
Avatar użytkownika
mnabialek
Administrator
Administrator
 
Posty: 657
Dołączył(a): Śr paź 25, 2006 14:05 pm
Lokalizacja: Częstochowa

Poprzednia strona

Powrót do KURS C++ POZIOM 1

Kto przegląda forum

Użytkownicy przeglądający to forum: Brak zalogowanych użytkowników i 0 gości

cron
ręceprecz odtybetu | Programista PHP | Pozycjonowanie www | Seo link directory | Pozycjonowanie Częstochowa | wizy do rosji | wizy do uzbekistanu