What's new

-Łatwy Niebia?ska seria c++ - pierwszy kod! #2

Status
Not open for further replies.

Skyy

Active User
Joined
Jul 22, 2012
Messages
52
Reaction score
11
Cze??!
Z tej strony Seba, ju? w drugiej cz??ci mojego poradnika. M?wi?em, ?e wyjdzie jeszcze dzisiaj ^.^
Dzisiaj napiszemy sw?j pierwszy kod w C++! Przedstawi? podstawowe tajniki tego j?zyka i om?wi? temat komunikacji pomi?dzy u?ytkownikiem a programem. Nauczymy si? te? 'tandetnego programowania' i poznamy struktur? dobrego kodu.

Zaczniemy mo?e od ustawienia programu, co? A wi?c tak, je?li ?ci?gn??e? code::blocks a nie visual c++ to mo?esz omin?? ten dzia?, albo z grubsza przeczyta? i spr?bowa? ustawi? te same ustawienia w Twoim programie (opcje mog? si? r??ni?).
Gdy ju? otworzymy nasz ukochany kompilator, powinni?my zobaczy? takie okno:
ngvjut.png

Aby rozpocz?? prac? musimy stworzy? nowe projekt. Klikamy zatem na napis 'new project'. Otworzy nam si? takie okno:
15zrq14.png

Wybieramy z listy 'win32 Console Application' i wpisujemy nazw? poni?ej.
Pojawi nam si? nast?pne okno w kt?rym klikamy next.
Zaznaczamy wszystko w ten spos?b:
rjjme0.png

i klikamy finish.
Pojawi nam si? nowe okno, na szcz??cie ju? z gotowego kompilatora. Niestety to jeszcze nie koniec ustawiania, musimy zrobi? jeszcze jedn? rzecz.
Klikamy w przycisk pokazany (zaznaczony zosta? czerwonym prostok?tem) na screenie:
10n5lpu.png

w okienku kt?re si? pojawi zaznacz po prostu C++ File (.cpp) i wpisz nazw? 'main'.
B?dziemy w tym pliku pisa? nasz program. Powinien si? otworzy? automatycznie.

Teraz gdy ju? wszystko jest gotowe, skopiuj ten tekst do kompilatora:
Code:
// moj pierwszy niebianski kod, jestem wniebowziety! 
#include <iostream>
#include <conio.h>
void main()
{
std::cout << "witaj, z tej strony program!" << std::endl;
getch();
}
Na razie niewa?ne, ?e nie wiesz o co w nim chodzi, to tylko test kompilatora. Kliknij F7/Debug -> Build Solution aby zbudowa? plik.
Je?eli wszystko dobrze posz?o to w okienku poni?ej powinno by? napisane:
1>------ Build started: Project: poradnik1, Configuration: Debug Win32 ------
1> main.cpp
1>c:\users\franc\desktop\filmiki\poradnik1\poradnik1\main.cpp(7): warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\conio.h(128) : see declaration of 'getch'
1> poradnik1.vcxproj -> C:\Users\Franc\Desktop\filmiki\poradnik1\Debug\poradnik1.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Teraz klikamy F5/Debug -> Start Debugging, ?eby zobaczy? nasz program ; ). B?dzie on wygl?da? w ten spos?b:
2bpkw7.png


Zacny, co? :D


Dlaczego b?dziemy tworzy? na razie tylko programy konsolowe?
Jak widzicie, nasz program to jedynie okienko z czarnym t?em i napisem. To si? nazywa aplikacja konsolowa. Normalne programy maj? ?adne okna, fajne kolory itp. - pomimo faktu, ?e ich tworzenie wygl?da podobnie, struktury programu mog? si? r??ni?, a aplikacje konsolowe s? doskona?ym rozwi?zaniem dla pocz?tkuj?cego programisty.

To chyba na tyle na wst?pie. Przejd?my zatem do g??wnego dzia?u.

Pierwszy Kod
Zanim napiszemy pierwszy kod, chcia?bym ?eby? pozna? struktur? programu. Napiszemy zatem tandetni program, jak ja to od ju? dobrego dawna nazywam. Wygl?da to nast?puj?co:

JE?LI mi?o?? = dwie osoby TO
Funkcja << ?lub <<
JE?LI ma??onka = dziewica TO
Funkcja << dziecko <<
JE?ELI NIE TO
Funkcja << wsp???ycie bez ryzyka <<
Powr?t
Koniec Algorytmu

Na tym do?? idiotycznym przyk?adzie, pokaza?em jak funkcjonuj? niekt?re kody. Nawet zawodowi programi?ci przed napisaniem programu tworz? takie cacka, wi?c si? lepiej przyzwyczajcie bo u?atwia to niezmiernie prace.
A teraz spr?buj sam napisa? kod na np. w??czanie ?wiat?a. :)
Rzecz jasna taki pseudo kod nie zadzia?a w kompilatorze ale dzi?ki niemu mo?na rozplanowa? sw?j przysz?y program.

Nowe s?owa
Wyt?umacz? Wam teraz czym s? dane, algorytmy i funkcje.

Czym s? funkcje?
Funkcje to cz??ci kodu kt?re zostaj? wykonywane. Mo?na powiedzie?, ?e 'm?wi?' one programowi co ma zrobi?. Dana cz??? kodu, czyli funkcja, np. ta:
Code:
void PokazTenTekst()
{
std::cout << "Pisanie funkcji!" << std::endl;
}
Sygnalizuje programowi, ?eby wy?wietli? si? tekst 'pisanie funkcji'. Na samej g?rze mamy nazw? tej funkcji (PokazTenTekst), typ funkcji (void) i puste nawiasy w kt?rych mo?emy umieszcza? parametry. Ca?y kod powy?ej jest jedn? funkcj? - w ca?ym programie takich mo?e by? naprawd? bardzo du?o.
Zdaj? sobie spraw?, ?e mo?e to na razie nie by? jasne, chcia?em tylko rozja?ni? Wam troszeczk? poj?cie 'funkcja' kt?re samo w sobie jest o wiele obszerniejsze ni? opisa?em.

Czym s? algorytmy i dane?
Dane to po prostu informacje kt?re s? potrzebne do wykonania danej funkcji, np. imi?, nazwisko i wiek, je?li chcemy stworzy? program kt?ry b?dzie nam podawa? w?a?nie takie informacje. Algorytm za? jest instrukcj? kt?ra m?wi programowi co ma zrobi?.
?eby pro?ciej to by?o zrozumie?, zdj?cie poni?ej powinno rozwia? w?tpliwo?ci:
f2nq1.png


Teraz przejd?my do praktyki.

Pierwszy prawdziwy kod
Dobra, to teraz przyszed? czas aby napisa? pierwszy 'prawdziwy' kod kt?ry uruchomimy w kompilatorze.
Wyt?umacz? program kt?ry napisali?my wcze?niej:
Code:
// moj pierwszy niebianski kod, jestem wniebowziety! 
#include <iostream>
#include <conio.h>
void main()
{
std::cout << "witaj, z tej strony program!" << std::endl;
getch();
}
Pierwszy wers:
// moj pierwszy niebianski kod, jestem wniebowziety!
jest komentarzem.
Gdy wpiszemy do kompilatora znaki '//', damy mu zna?, ?e nast?pny akapit b?dzie komentarzem i zostanie zignorowany podczas dzia?ania programu. Mo?na je umieszcza? wsz?dzie. S? pomocne, ?eby obja?ni? dzia?anie niekt?rych funkcji gdy np. pokazujemy kod w internecie. S?owa kt?re zostan? zignorowane to te kt?re znajd? si? po nim i b?d? w tym samym akapicie. Nie mo?emy tego u?o?y? np. tak:
Code:
tutaj jest komentarz //
lub w ten spos?b:
Code:
//
tutaj jest komentarz
Wtedy kompilator zwr?ci nam b??d w outpucie (okienko ni?ej).

Drugi i trzeci wers:
#include <iostream>
#include <conio.h>
To s? pliki nag??wkowe. W nich umieszczamy informacje nt. czego b?dziemy u?ywa? w programie. "Include" jak sama nazwa wskazuje 'do??cza' do naszego programu jakie? dane aby sam program dzia?a?. ?eby to g??biej wyt?umaczy? zastosuj? przyk?ad.
Za???my, ?e instalujemy gr?. Gdy instalujemy jak?kolwiek gr? potrzebny nam jest program DirectX, prawda? Wi?kszo?? gier korzysta z tej biblioteki dlatego te? musi on by? zainstalowany na komputerze aby gra normalnie dzia?a?a.
Nasz program potrzebuje pewnych mechanizm?w do jej obs?ugi - nimi s? w?a?nie pliki nag??wkowe conio.h i iostream.
Plik?w nag??wkowych jest du?o, musimy dostosowa? je do naszych program?w. Gdy robimy co innego, potrzebujemy innych. To tak jak cho?by bieganie i boksowanie. Do biegania potrzebujemy n?g a do boksowania r?k. Proste, nie? :O

Trzeci wers:
void main()
To jest funkcja main.
Za ka?dym razem gdy odpalamy nasz programik, wszystko co zawarte b?dzie w tej funkcji zostanie wykonane. Jest to zawsze najwa?niejsza funkcja w ca?ym programie. Tutaj wszystko si? zaczyna i wszystko si? ko?czy. Program konsolowy to przede wszystkim ta funkcja i w wi?kszo?ci z nich jest te? jedyn?.
Najwa?niejszy jest jednak nag??wek 'void'.
Sygnalizuje on kompilatorowi, ?e nie b?dzie zwracana ?adna warto?? podczas dzia?ania programu. Niekt?re programy gdy np. nie powiod? si?, zwracaj? komunikat, ?e 'co? nie wysz?o'. Nam to jest jednak?e zupe?nie nie potrzebne, gdy? nie piszemy na razie ?adnych trudniejszych program?w.

Wers czwarty i si?dmy:
Klamry kt?re widzisz, otwieraj? i zamykaj? funkcj?. Pomi?dzy nimi zawarty jest blok kodu.
Przyj??o si? ju?, ?e blok kodu musi zawiera? tabulacj?, czyli 'spacj?' pomi?dzy lewym bokiem okna a tekstem.
Wygl?da to mniej-wi?cej tak... Kod bez tabulacji:
Code:
{
tu jest jaki? tekst
}
Kod z tabulacj?:
Code:
{
     tu jest jaki? tekst
}
Tabulacj? dodajemy za pomoc? klawisza 'tab'.

Pi?ty wers:
std::cout << "witaj, z tej strony program!" << std::endl;
Najwa?niejszy wers w ca?ym programie.
std::cout jest strumieniem wyj?cia. S?u?y on do wy?wietlania przez program wszystkiego co zostanie do niego wys?ane. B?dziemy u?ywa? strumienia wyj?cia bardzo cz?sto.
Wysy?anie tekstu jest w sumie bardzo intuicyjne.
Najpierw mamy:
Code:
std::cout
to jest w?a?nie strumie? wyj?cia.
Nast?pnie mamy:
Code:
<< "witaj, z tej strony program!" <<
Mo?na sobie wyobrazi?, ?e te strza?ki to droga kt?r? leci komunikat do strumienia wyj?cia, tak aby by? on wy?wietlony. Kieruj? one nasz tekst.
Nast?pnym elementem jest:
Code:
std::endl;
Ten tekst sygnalizuje po prostu naszemu kompilatorowi, ?e to ju? koniec wersu i, ?eby przeszed? do nast?pnego. Gdy wy?wietlamy tylko jedn? linijk?, w sumie nie potrzeba tego umieszcza? ale w wi?kszych programach std::endl; zamienia si? w element niezb?dny.

Sz?sty wers:
Ta linijka odpowiada za oczekiwanie programu na wci?ni?cie dowolnego przycisku przez u?ytkownika.

Przebrn?li?my ca?kiem szybko przez nasz pierwszy program. Mam nadziej?, ?e dzi?ki mnie ju? rozumiecie z czego si? on sk?ada. Chcia?bym jednak?e te? wyt?umaczy? czym jest "std". Jest to przestrze? nazw, czyli nic innego jak zbi?r symboli kt?rym dajemy nazw?. Te dwa kt?re u?yli?my nale?? do standardowej biblioteki j?zyka C++.

Jak wygl?da wi?kszo?? program?w?
Wi?kszo?? z program?w pisanych przez programist?w wygl?da tak:
Code:
// moj pierwszy niebianski kod, jestem wniebowziety! 
#include <iostream>
#include <conio.h>

void Tekst()
{
std::cout << "przykladowy tekst" << std::endl;
}

void main()
{
Tekst();
getch();
}
Gdy odpalimy program oka?e si?, ?e zmieni? si? jedynie komunikat, nic innego. Ale jak to dzia?a?
Ot?? tak jak wcze?niej m?wi?em - funkcja main() jest zawsze najwa?niejsza i jest wykonywana pierwsza. Najpierw program analizuje co robi funkcja Tekst() i przechodzi do main(). W main() umie?cili?my te? nast?puj?c? linijk?:
Dzi?ki temu, funkcja main() 'powie' programowi, ?eby wykona? funkcj? Tekst(). Proste, prawda?


Koniec
Dzi?ki za przeczytanie, to ju? koniec dzisiejszej lekcji. Mo?liwe, ?e jeszcze dzi? napisz? trzeci? ale nic nie gwarantuj?. Poznamy wtedy tak?e sta?e i zmienne oraz strumie? wej?cia.
Poradnik wykonany dla tibia.net.pl, zastrzegam sobie do niego jakiekolwiek prawa.

Cze??!
 

Placek

Blue Waffle
Joined
Sep 30, 2008
Messages
6,793
Reaction score
672
Age
9
Odp: Niebia?ska seria c++ - pierwszy kod! #2

Czy to nie jest aby proste az do przesady?
Jak sie troche mysli to przy czytaniu tego wyciagniesz tylko chyba 3 informacje. A te informacje mozna by strescic w 2 zdaniach. Tak wiec generalnie rozciaganie poradnika na sile, tylko po to, zeby nawet kompletny idiota mogl to rozumiec? Jak logicznie nie mysli to sie nie zabiera za programowanie, wiec az takie upraszczanie wszystkiego srednio jest tutaj potrzebne. No ale... Skoro to juz ma byc cala seria to niech bedzie. Jesli to wytrzyma dluzej niz te 2 czy 3 czesci to moze jednak cos z tego bedzie. Jednak przy wiekszej ilosci poradnikow w tej serii jesli kazdy bedzie tak rozciagany, to i malo kto do konca dotrwa... Bo z tego poradnika jak mowilem, duzo czytania, a dowiadujesz sie tylko cos o funkcji main i o pisaniu tesktu. I trecia rzecz to co to znaczy getch. Tak wiec generalnie strasznie malo konkretnej tresci zawiera ten poradnik.
 

Cl3an

Active User
Joined
Apr 13, 2011
Messages
131
Reaction score
12
Odp: Niebia?ska seria c++ - pierwszy kod! #2

Super , bardzo szczeg??owo to opisujesz , dobrze si? czyta czekam na kolejne cz??ci .Mam pytanie czy b?dziesz r?wnie? opisywa? C++ pod ots czy tylko og?lnie o tym j?zyku.
Pozdrawiam,
Cl3an.
 

TenTypSwir

NNSTORY.EU Developer
Joined
Jun 8, 2010
Messages
1,657
Reaction score
117
Odp: Niebia?ska seria c++ - pierwszy kod! #2

Idealny poradnik! Od dawna chcia?em si? zacz?? uczy? C++ a? wreszcie znalaz?em tw?j poradnik :O! Czekam na kolejne cz??ci :)
 

Forseti

Senior User
Joined
Dec 23, 2011
Messages
954
Reaction score
82
Odp: Niebia?ska seria c++ - pierwszy kod! #2

W takich poradnikach ma?o si? dowiesz o programowaniu. Polecam Ci bardziej przeczyta? Thinking of C++ lub samemu si? uczy? na b??dach, lepiej Ci to bd wychodzi?.
 

Placek

Blue Waffle
Joined
Sep 30, 2008
Messages
6,793
Reaction score
672
Age
9
Odp: Niebia?ska seria c++ - pierwszy kod! #2

Poradnik z przed p?? roku... Autor nie logowal te? p?? roku... Musz? ci? zmartwi?, alej nie b?dzie kolejnej cz??ci poradnika.
 

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: Niebia?ska seria c++ - pierwszy kod! #2

Poradnik z przed p?? roku... Autor nie logowal te? p?? roku... Musz? ci? zmartwi?, alej nie b?dzie kolejnej cz??ci poradnika.
Seems legit.

@Kabath
Poradnik jest beznadziejny. Mu?ni?te zosta?y funkcje, a nie ma ani jednego s?owa o operatorach.

@top
Z tego co wyczyta?em:
#include <iostream>
#include <conio.h>

- to pliki nag??wkowe. My?la?em, ?e to s? dyrektywy preprocesora, a plik to samo conio.h, ale co ja tam wiem...
 
Status
Not open for further replies.
Top