Ĺadny brzuch
Pomocy. Nie umiem znaleźć błędu w kodzie.
#include <stdio.h>
int x
main
{
printf("Czesc!!n")
scanf(%d, &x);
if (x==0)
printf("Zeron")
else (x=!0)
printf("To nie zeron")
}
{
printf("Czesc!!n")
scanf(%d, &x);
if (x==0)
printf("Zeron")
else (x=!0)
printf("To nie zeron") }
return 0;
}
I jeszcze jedno. Jaką zrobić funkcję, aby jak np. wpisujemy 0 i program się wyłącza.:)
Malganis
cytat:Malganis napisał:
Pomocy. Nie umiem znaleźć błędu w kodzie.
[...]
Oj, błędów to tu narobiłeś sporo :)
1. Pogubiłeś średniki na końcach linii
2. Jak już sprawdziłeś, że x=0 to później nie sprawdzaj czy jest on różny od zera - bo jeśli x będzie różny od 0 to wykona się to co jest po else - na tym polega działanie if - else
3. Zgubiłeś cudzysłowy w scanf
To co chciałeś napisać mogłoby wyglądać np tak:
#include <stdio.h> int main () { int x; printf("Czesc!!n"); scanf("%d", &x); if (x==0) printf("Zeron"); else printf("To nie zeron"); printf("Czesc!!n"); scanf("%d", &x); if (x==0) printf("Zeron"); else printf("To nie zeron"); return 0; }
Ale lepiej będziesz, jak sobie kupisz jakąś książkę do C++ albo ściągniesz kurs z sieci i trochę nad nim posiedzisz - bo inaczej to co chwila będziesz miał jakieś błędy z którymi sobie nie będziesz radził.
| GG:5365367 | ICQ:245363570 |
Apropo tego, właśnie chciał bym powiedzieć coś o tym forum. Jak ktoś odpowie na pytanie i edytuje swój post to nie będzie on zaliczany :roll:. Tak jakby nie istniał. Jest odpowiedzi 0 a jest jakaś... Zróbta na prawde coś z tym:!
________________________________________________
._-= EVERYTHING THAT HAS BEGINNING HAS AN END =-_.
http://4programmers....le.html?id=1204 - AFS 1.9.0.5
Mam immunitet wszystkiego na DYS.
cytat:TouchThis napisał:
Apropo tego, właśnie chciał bym powiedzieć coś o tym forum. Jak ktoś odpowie na pytanie i edytuje swój post to nie będzie on zaliczany :roll:. Tak jakby nie istniał. Jest odpowiedzi 0 a jest jakaś... Zróbta na prawde coś z tym:!
No ale edycja postu właśnie nie powinna zwiększać licznika postów.
IMHO edycja nie służy do dopisywania nowych treści tylko do zrobienia drobnej korekty.
PS.
Gdyby ktoś chciał pociągnąć temat edycji albo jakichś błędów na forum to lepiej przenieść dyskusję do działu O forum lub Nie na temat.
To tak, żeby nie robić tu bałaganu :)
| GG:5365367 | ICQ:245363570 |
A tak kupiłem książkę o C++, a właściwie o C #8222;Programowanie w języku C. Ćwiczenia praktyczne#8221;. Nie polecam. Kupię chyba po prostu książkę na Politechnice i kwita. Chociaż mają one kiepski rozgłos.
Strasznie szybko, odpowiadacie na tym forum.
Jednak to nie koniec moich pytań:
Co trzeba zrobić, aby po wykonanej czynności (na końcu programu) był taki skrypt, że jak wpiszemy 0 to się wyłączy, a jak 1 to powróci do początku.
:lol:
cytat:Malganis napisał:
A tak kupiłem książkę o C++, a właściwie o C #8222;Programowanie w języku C. Ćwiczenia praktyczne#8221;. Nie polecam. Kupię chyba po prostu książkę na Politechnice i kwita. Chociaż mają one kiepski rozgłos.
To kup sobie Symfonie C++ Jerzego Grębosza.
cytat:
Strasznie szybko, odpowiadacie na tym forum.
Forum KĄE to porządne forum :cheesy:
cytat:
Jednak to nie koniec moich pytań:
Co trzeba zrobić, aby po wykonanej czynności (na końcu programu) był taki skrypt, że jak wpiszemy 0 to się wyłączy, a jak 1 to powróci do początku.
Np tak: do { scanf("%d", &x); if (x==0) printf("Zeron"); else printf("To nie zeron"); printf("Co robic ? 0-koniec, 1-jeszcze razn"); scanf("%d", &x); } while (x!=0);
Ale w zasadzie nie piszę w C++ więc możliwe, że można to zrobić "zgrabniej" :)
Zanim napiszesz następne pytanie lepiej posiedź sam nad problemem i postaraj się samemu wykombinować - tak się szybciej nauczysz.
| GG:5365367 | ICQ:245363570 |
Jeśli chodzi o ten kod, to on w ogóle nie przypomina kodu w C++ - jest to po prostu czyste C! W C++ taki program miałby postać:
#include <iostream.h> //a, już dla prostoty bez STL
int main()
{
int x; //czemu niby ma być globalna?
cout <<"Czesc!!nPodaj jakas liczbe. Sam odpowiadasz za cokolwiek, co wpiszesz :)";
cin >> x;
cout << (x ? "Nie zero!n" : "Zero!n");
//powyższy kod odpowiada:
//if(x) cout <<"Nie zeron";
//else cout <<"Zeron";
return 0;
}
W tym programie do obsługi wejścia / wyjścia używamy klas z nagłówka iostream.h . Te klasy przeładowywują (o tym zaraz) operatory << i >>, które normalnie odpowiadają za przesunięcia bitów. W tym przypadku służą one jednak do wypisu / wczytywania ze standardowego wejścia / wyjścia.
Klasy w języku C++ można określić jako własne typy wbudowane, ie. możemy stworzyć typ Complex (liczba zespolona) czy Vector (wektor) i z pomocą np. przeładowywania operatorów używać ich jak zmiennych typu int.
IE:
Complex cc, yy;
cc.r = 12; //część rzeczywista
cc.i = 0; //częśc urojona
//funkcja składowa
cc.Zero(); //wyzeruj
//operatory
Complex nowy = cc+ (yy*yy);
W tym objawia się potęga tego języka :)
Dość już gadania nie na temat - początki wcale nie są trudne, a pomóc Ci może Symfonia C++ p. Jurka Grębosza.
Pozdrawiam.
//================================================
KĄESACP: Komputer Ąwiat - Expert Society Against Crap Posting
To join: Put these lines in your signature and don't post crap!
cytat:TeMPOraL napisał:
#include <iostream.h> //a, już dla prostoty bez STL
(...)
Jakiej prostoty, czy aż tak skomplikowane jest zastąpienie
tego na:
#include <iostream>
using namespace std;
Jak mówisz o przeładowaniach operatorów, klasach i vector`ach??
A porzestrzeni nazw std nie wspomnisz??
Wkońcu teraz jest to standard, i każdy porządny kompilator wygeneruje
ostrzeżenie, że <iostream.h> nie powinno się już używać. Lepiej od samego początku nabierać dobrych nawyków, nawet gdy tego się za bardzo nie rozumie.8)
wiesz co daj sobie spokoj z printf i scanf, przejdz na cout i cin.
>BaR_TeK<
Language: C++/DirectX/WinAPI
IDE: MS Visual C++
Właśnie skończyłem studiowanie instrukcji warunkowych z Symfoni C++ i nie zabardzo wszystko rozumiem wiem jak to się dzieje ze na ekranie jest taki wynik a nie inny jednak nie wiem po co takie funkcje wogule istnieją np continue, goto, te są najbardziej pokrecone
Pozdrawiam Boryssek! [b][url]http://www.pakermen.prv.pl[/url] - moja strona www![/b] [b][url]http://www.fc-ekspert.aq.pl[/url] - strona FC KĄE![/b]
Hm... Borysek na razie wydaja ci sie pokrecone, ale gdy nabiezesz doswiadczenia zobaczysz ze jest to przydatne, choc z goto to trzeba uwazac.... A wiec cierpliwosci...
>BaR_TeK<
Language: C++/DirectX/WinAPI
IDE: MS Visual C++
cytat:borysek100 napisał:
jednak nie wiem po co takie funkcje wogule istnieją np continue, goto, te są najbardziej pokrecone
Funkcje warunkowe są niezbędne - przydają się wszędzie tam, gdzie w zależności od pewnych wartości chcesz wykonać różny kod. Tu chyba nie ma za dużo co tłumaczyć.
Co do continue to tak jak zapewne w Symfoni napisano - przerywa ona wykonywanie pętli i wykonanie jej (jeśli warunki na to pozwalają) kolejny raz.
Wykonujesz np w pętli for (zmienia się w niej zmienna i) pewne obliczenia - ale chciałbś, że gdyby i spełniało jakiś określony warunek to żeby obliczania w pętli nie zostały wykonane - możesz wtedy na początku pętli umieścić warunek i jeśli będzie on spełniony to wykonać instrukcję continue - wtedy dalsze obliczenia w pętli nie zostaną wykonane tylko nastąpi zwiększenie (lub zmniejszenie) i a następnie wykonanie kodu pętli od początku.
Natomiast co do goto to najlepiej o tym zapomnij i nie zawracaj sobie głowy takim czymś. Ty nie powinieneś tego nigdzie używać - bo jest to zdecydowanie odradzane, jedyne do czego może Ci się przydać to gdybyś analizował cudzy kod i spotkałbyś tam się z tą instrukcją.
| GG:5365367 | ICQ:245363570 |
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
#include <stdio.h>
int x
main
{
printf("Czesc!!n")
scanf(%d, &x);
if (x==0)
printf("Zeron")
else (x=!0)
printf("To nie zeron")
}
{
printf("Czesc!!n")
scanf(%d, &x);
if (x==0)
printf("Zeron")
else (x=!0)
printf("To nie zeron") }
return 0;
}
I jeszcze jedno. Jaką zrobić funkcję, aby jak np. wpisujemy 0 i program się wyłącza.:)
Malganis
cytat:Malganis napisał:
Pomocy. Nie umiem znaleźć błędu w kodzie.
[...]
Oj, błędów to tu narobiłeś sporo :)
1. Pogubiłeś średniki na końcach linii
2. Jak już sprawdziłeś, że x=0 to później nie sprawdzaj czy jest on różny od zera - bo jeśli x będzie różny od 0 to wykona się to co jest po else - na tym polega działanie if - else
3. Zgubiłeś cudzysłowy w scanf
To co chciałeś napisać mogłoby wyglądać np tak:
#include <stdio.h> int main () { int x; printf("Czesc!!n"); scanf("%d", &x); if (x==0) printf("Zeron"); else printf("To nie zeron"); printf("Czesc!!n"); scanf("%d", &x); if (x==0) printf("Zeron"); else printf("To nie zeron"); return 0; }
Ale lepiej będziesz, jak sobie kupisz jakąś książkę do C++ albo ściągniesz kurs z sieci i trochę nad nim posiedzisz - bo inaczej to co chwila będziesz miał jakieś błędy z którymi sobie nie będziesz radził.
| GG:5365367 | ICQ:245363570 |
Apropo tego, właśnie chciał bym powiedzieć coś o tym forum. Jak ktoś odpowie na pytanie i edytuje swój post to nie będzie on zaliczany :roll:. Tak jakby nie istniał. Jest odpowiedzi 0 a jest jakaś... Zróbta na prawde coś z tym:!
________________________________________________
._-= EVERYTHING THAT HAS BEGINNING HAS AN END =-_.
http://4programmers....le.html?id=1204 - AFS 1.9.0.5
Mam immunitet wszystkiego na DYS.
cytat:TouchThis napisał:
Apropo tego, właśnie chciał bym powiedzieć coś o tym forum. Jak ktoś odpowie na pytanie i edytuje swój post to nie będzie on zaliczany :roll:. Tak jakby nie istniał. Jest odpowiedzi 0 a jest jakaś... Zróbta na prawde coś z tym:!
No ale edycja postu właśnie nie powinna zwiększać licznika postów.
IMHO edycja nie służy do dopisywania nowych treści tylko do zrobienia drobnej korekty.
PS.
Gdyby ktoś chciał pociągnąć temat edycji albo jakichś błędów na forum to lepiej przenieść dyskusję do działu O forum lub Nie na temat.
To tak, żeby nie robić tu bałaganu :)
| GG:5365367 | ICQ:245363570 |
A tak kupiłem książkę o C++, a właściwie o C #8222;Programowanie w języku C. Ćwiczenia praktyczne#8221;. Nie polecam. Kupię chyba po prostu książkę na Politechnice i kwita. Chociaż mają one kiepski rozgłos.
Strasznie szybko, odpowiadacie na tym forum.
Jednak to nie koniec moich pytań:
Co trzeba zrobić, aby po wykonanej czynności (na końcu programu) był taki skrypt, że jak wpiszemy 0 to się wyłączy, a jak 1 to powróci do początku.
:lol:
cytat:Malganis napisał:
A tak kupiłem książkę o C++, a właściwie o C #8222;Programowanie w języku C. Ćwiczenia praktyczne#8221;. Nie polecam. Kupię chyba po prostu książkę na Politechnice i kwita. Chociaż mają one kiepski rozgłos.
To kup sobie Symfonie C++ Jerzego Grębosza.
cytat:
Strasznie szybko, odpowiadacie na tym forum.
Forum KĄE to porządne forum :cheesy:
cytat:
Jednak to nie koniec moich pytań:
Co trzeba zrobić, aby po wykonanej czynności (na końcu programu) był taki skrypt, że jak wpiszemy 0 to się wyłączy, a jak 1 to powróci do początku.
Np tak: do { scanf("%d", &x); if (x==0) printf("Zeron"); else printf("To nie zeron"); printf("Co robic ? 0-koniec, 1-jeszcze razn"); scanf("%d", &x); } while (x!=0);
Ale w zasadzie nie piszę w C++ więc możliwe, że można to zrobić "zgrabniej" :)
Zanim napiszesz następne pytanie lepiej posiedź sam nad problemem i postaraj się samemu wykombinować - tak się szybciej nauczysz.
| GG:5365367 | ICQ:245363570 |
Jeśli chodzi o ten kod, to on w ogóle nie przypomina kodu w C++ - jest to po prostu czyste C! W C++ taki program miałby postać:
#include <iostream.h> //a, już dla prostoty bez STL
int main()
{
int x; //czemu niby ma być globalna?
cout <<"Czesc!!nPodaj jakas liczbe. Sam odpowiadasz za cokolwiek, co wpiszesz :)";
cin >> x;
cout << (x ? "Nie zero!n" : "Zero!n");
//powyższy kod odpowiada:
//if(x) cout <<"Nie zeron";
//else cout <<"Zeron";
return 0;
}
W tym programie do obsługi wejścia / wyjścia używamy klas z nagłówka iostream.h . Te klasy przeładowywują (o tym zaraz) operatory << i >>, które normalnie odpowiadają za przesunięcia bitów. W tym przypadku służą one jednak do wypisu / wczytywania ze standardowego wejścia / wyjścia.
Klasy w języku C++ można określić jako własne typy wbudowane, ie. możemy stworzyć typ Complex (liczba zespolona) czy Vector (wektor) i z pomocą np. przeładowywania operatorów używać ich jak zmiennych typu int.
IE:
Complex cc, yy;
cc.r = 12; //część rzeczywista
cc.i = 0; //częśc urojona
//funkcja składowa
cc.Zero(); //wyzeruj
//operatory
Complex nowy = cc+ (yy*yy);
W tym objawia się potęga tego języka :)
Dość już gadania nie na temat - początki wcale nie są trudne, a pomóc Ci może Symfonia C++ p. Jurka Grębosza.
Pozdrawiam.
//================================================
KĄESACP: Komputer Ąwiat - Expert Society Against Crap Posting
To join: Put these lines in your signature and don't post crap!
cytat:TeMPOraL napisał:
#include <iostream.h> //a, już dla prostoty bez STL
(...)
Jakiej prostoty, czy aż tak skomplikowane jest zastąpienie
tego na:
#include <iostream>
using namespace std;
Jak mówisz o przeładowaniach operatorów, klasach i vector`ach??
A porzestrzeni nazw std nie wspomnisz??
Wkońcu teraz jest to standard, i każdy porządny kompilator wygeneruje
ostrzeżenie, że <iostream.h> nie powinno się już używać. Lepiej od samego początku nabierać dobrych nawyków, nawet gdy tego się za bardzo nie rozumie.8)
wiesz co daj sobie spokoj z printf i scanf, przejdz na cout i cin.
>BaR_TeK<
Language: C++/DirectX/WinAPI
IDE: MS Visual C++
Właśnie skończyłem studiowanie instrukcji warunkowych z Symfoni C++ i nie zabardzo wszystko rozumiem wiem jak to się dzieje ze na ekranie jest taki wynik a nie inny jednak nie wiem po co takie funkcje wogule istnieją np continue, goto, te są najbardziej pokrecone
Pozdrawiam Boryssek! [b][url]http://www.pakermen.prv.pl[/url] - moja strona www![/b] [b][url]http://www.fc-ekspert.aq.pl[/url] - strona FC KĄE![/b]
Hm... Borysek na razie wydaja ci sie pokrecone, ale gdy nabiezesz doswiadczenia zobaczysz ze jest to przydatne, choc z goto to trzeba uwazac.... A wiec cierpliwosci...
>BaR_TeK<
Language: C++/DirectX/WinAPI
IDE: MS Visual C++
cytat:borysek100 napisał:
jednak nie wiem po co takie funkcje wogule istnieją np continue, goto, te są najbardziej pokrecone
Funkcje warunkowe są niezbędne - przydają się wszędzie tam, gdzie w zależności od pewnych wartości chcesz wykonać różny kod. Tu chyba nie ma za dużo co tłumaczyć.
Co do continue to tak jak zapewne w Symfoni napisano - przerywa ona wykonywanie pętli i wykonanie jej (jeśli warunki na to pozwalają) kolejny raz.
Wykonujesz np w pętli for (zmienia się w niej zmienna i) pewne obliczenia - ale chciałbś, że gdyby i spełniało jakiś określony warunek to żeby obliczania w pętli nie zostały wykonane - możesz wtedy na początku pętli umieścić warunek i jeśli będzie on spełniony to wykonać instrukcję continue - wtedy dalsze obliczenia w pętli nie zostaną wykonane tylko nastąpi zwiększenie (lub zmniejszenie) i a następnie wykonanie kodu pętli od początku.
Natomiast co do goto to najlepiej o tym zapomnij i nie zawracaj sobie głowy takim czymś. Ty nie powinieneś tego nigdzie używać - bo jest to zdecydowanie odradzane, jedyne do czego może Ci się przydać to gdybyś analizował cudzy kod i spotkałbyś tam się z tą instrukcją.
| GG:5365367 | ICQ:245363570 |