Kurs programowania w C++
Załączanie plików do programu
Na początku programu należy dołączyć pliki nagłówkowe ze zbiorem definicji funkcji (rozkazów), używanych późniiej w programie. Robi się to tak: #include <plik.h> //dodaje plik do programu znajdujący się w katalogu ze standardowymi bibliotekami
#include “plik.h” //dodaje plik z katalogu w którym znajduje się kod źródłowy tworzonego obecnie programu
przykład początkowego kodu programu w dosie
#include <conio.h>
#include <stdio.h>
Deklaracja zmiennych, proste operacje na nich
Funkcje są elementami programu zawierającymi ciąg komend.
Przykład funkcji:
int main()
{
//tu ma być kod programu
return 0;// zwraca wartosc funkcji
}
Zmienne w językach programowania reprezentują określoną wartość (tak jak niewiadome w matematyce).
Ich wartość może być modyfikowane przez programistę (w przeciwieństwie do niewiadomych w matematyce). Zmienne można podzielić na zmienne tekstowe i liczbowe.
Zmienną może być litera lub ciąg znaków który nie jest nazwą funkcji. Żeby jej użyć należy ją najpierw zadeklarować, wtedy program przydzieli jej miejsce w pamięci.
int a=0; // deklaracja zmiennej i przyznanie jej wartości 0
a=a+8; // zwiększenie wartości zmiennej o 8, czyli a=8 (0+8=8)
a=a-2; // odjęcie od zmiennej 2 , czyli a=6 ( 8-2 =6 )
//teraz podzielimy naszą liczbę (zmienna) przez 2
a=a/2; // a=3 (6/2=3)
// teraz mnożymy przez 3
a=a*3; // a=9 ( 3*3=9)
Można posłużyć się też skróconymi zapisami:
a=a-1 można zapisać jako a-=1 lub a—
a=a+1 oznacza to samo co a+=1 lub a++
a=a*3 -> a*=3
a=a/3 -> a/=3
Zmienne deklarujemy wewnątrz funkcji lub przed główną funkcją (main). W ostatnim przypadku zmienna stanie się zmienną globalną dostępną z każdego miejsca programu. Zmienne zadeklarowane wewnątrz funkcji (lokalne) są dostępne tylko wewnątrz danej funkcji.
Zmienne tekstowe analogicznie do liczbowych zastępują jakiś tekst i deklaruje się w ten sposób:
char zmienna[100]; oznacza to zadeklarowanie ciągu znaków składających się z 100 elementów. Długość tej tablicy znaków wynosi 100 bajtów ( = sizeof(zmienna) - funkcja pobiera długość zadeklarowanej zmiennej). Jeżeli chcemy pobrać długość jednego znaku to piszemy int dlugosc=sizeof(zmienna[0]).
Zmienną można także zadeklarować nadając jej wartość np. char
zmienna[]=”abcdefg”;
Aby wyświetlić na ekranie naszą zmienną używamy funkcji printf(zmienna) lub funkcji cout z pliku nagłówkowego iostream.h z katalogu include kompilatora. Przykład prostego programu
#include <iostream.h>
int main()
{
char tekst[]=”abcd”;
cout << tekst;
return 0;
}
lub
#include <stdio.h>
int main()
{
char tekst[]=”abcd”;
printf(tekst);
return 0;
}
Program wyświetla zmienną tekst na ekranie. Po jego uruchomieniu na ekranie zobaczymy napis abcd.
Teraz pora wykorzystać zdobytą wiedzę w prostym programie:
#include <iostream.h>
#include <conio.h>
int main()
{
char tekst[100]; //deklaruje zmienna tekstowa
int liczba x=0,y=0; // deklaruje zmienne liczbowe
cout << “Wpisz jakiś tekst: ”; // wyświetla napis
cin >> tekst; // pobiera ciąg znaków z klawiatury i umieszcza go w zmiennej tekst.
cout << “\nWpisałeś: “;
a=4; //nadaje zmiennej a wartość 4;
cout << “\nwpisz jakaś liczbę”;
cin >> b; // zapisuje liczbę wpisaną przez ciebie do zmiennej b
b=b+a; // dodaje wartość zmiennej a do b.
cout << “\nwartość zmiennej b wynosi teraz “ << b;
getch(); // zatrzymuje program do momentu naciśnięcia klawisza
return 0;
}
typy danych |
długość |
zasieg wartości |
unsigned char |
8 bitów |
0 do 256 |
char |
8 bitów |
-128 do 128 |
short |
16 bitów |
-32.768 do 32,767 |
unsigned int |
32 bity |
0 do 4,294,967,295 |
int |
32 bity |
-2,146,483,648 do 2,147,483,647 |
unsigned long |
32 bity |
0 do 4,294,967,295 |
enum |
16 bitów |
-2,146,483,648 do 2,147,483,647 |
long |
32 bity |
-2,146,483,648 do 2,147,483,647 |
float |
32 bity |
3.4*10^-38 do 3.4*10^38 |
double |
64 bity |
1.7*10^-308 do 1.7*10^308 |
long double |
80 bitów |
3.4*10^-4932 do 3.4*10^4932 |
Tablice
Tablice są to zmienne składające się z wielu zmiennych. Przykładem tablicy może być tabliczka mnożenia.
Opisy tablicy zadeklarowanej: int x[3][3]={(0,1,2),(3,4,5),(6,7,8)};
t[x][y] |
x=0 |
x=1 |
x=2 |
y=0 |
0 |
1 |
2 |
y=1 |
3 |
4 |
5 |
y=2 |
6 |
7 |
8 |
W tej tablicy dwuwymiarowej wartość t[0][0]=0, t[1][0]=1,t[1][2]=7 ...
int tab[10][10];
tab[1][1]=0; //nadanie wartosci elementowi tablicy
int tab2[10]={0,1,2,3,4,5,6,7,8,9)}; //deklaruje tablice i nadaje od razu wartość jej elementom.
char t[2][10]={("abcd"),("1234")}; // podobnie jak wyżej tylko odnosi się do zmiennych tekstowych
int a;
a=tab2[1]; //a=1
Instrukcje warunkowe
Są to instrukcje, które wykonywane są po spełnieniu określonego warunku. Zapisuje je się w ten sposób:
if (...) ...;//jeżeli chcemy wykonać jeden rozkaz
//lub
if (...) // jeżeli chcemy wykonać kilka rozkazów
{
....
}
W nawiasie wstawia się dwie zmienne połaczone znakiem:
wyrażenie w nawiasie |
oznacza |
przykład |
|
a==b |
a równa się b |
if (a==b) |
|
a!=b |
a nie równa się b |
if (a!=b) |
|
a>b |
a jest większe od b |
if (a>b) |
|
a>=b |
a jest większe lub równe b |
if (a>=b) |
|
a<B |
|
a jest mniejsze od b |
|
a<=b |
a jest mniejsze lub równe b |
if (a<=b) |
|
!a |
a równe jest false |
if (!a) |
|
a |
a równa się true |
if (a) |
|
Przykład:
int a=0,b=1;
if (a==0) a=2; jeżelid a=0 to a otrzyma wartość 2
//lub
if (a>b) // jeżeli a jest większe to wykona część kodu umieszczoną między { i }
{
a=0;
b=0;
}
Pętle
W języku C++, jak i w innych istnieją różne rodzaje pętli. Pętla nazywamy część programu wykonywaną wiele razy.
Przykłady:
do {...} while(..);
int n=0,koniec=false;
do
{
n++;//n-n+1
if (n>=1000)koniec=true;//jeżeli n>=100 to koniec=true
....
// wykonana instrukcja (wewnątrz pętli) break() przerywa każdą pętle }
while(!koniec);//wykonuje pętle dopóki koniec==false
for(...;...;...){...};
Ta pętla wykonywana jest określoną liczbę razy
#include <iostream.h>
#include <conio.h>
int main()
{ int n=0;
// ta pętla wyświeli 10 razy "abc"
for (int i=0;i<10;i++)
{
cout << "abc\nr";
}
getch();//czeka na naciśnięcie klawisza
for (;;)
{
cout << n << "\n";//wyświetla liczbę n
if (n>4) break;// przerywa pętle
n++;
}
// w powyższej pętli wyświelone zostaną liczby od 0 do 4
getch();
return 0;
}
for (1;2;3); W miejscu trzecim można wstawić dowolne działanie wykonujące zwiększanie bądź zmiejszanie liczby np. i++, i--, i+=2. Jeżeli wstawimy ++i (lub --i) to do liczby doda (odejmie) wartość zaraz na początku wykonywania pętli, nie będzie czekało aż dojdzie do ostatniej instukcji w pętli (przed "}" ) jak to ma miejsce w przypadku użycia i++ lub i--.
Funkcje i procedury
Funkcje i procedury są cześciami programu, które mogą być wywołane z innego miejsca programu. Funkcje różnią się od procedur tym, że zwracają jakąś wartość.
Przykład:
#include <iostream.h>
#include <conio.h>
int dodaj(int a,int b) //deklaracja funkcji
{
return (a+b); //funcja zwraca wartość a+b
}
//deklaracja procedury
void napisz()
{
cout << "abc\n";
}
// można zadeklarować wcześniej procedurę, a później jej użyć (wtedy do deklaracji procedury lub funcji
// trzeba dodać znak końca linii ";"
void zamien(int& a,int& b);
int main()
{
int a=0,b=1;
//wywołanie procedury napisz();
napisz();
//wyswietla wynik działanie funkcji dodaj
cout << dodaj(1,3)<<"\n";
cout << "Przed zamianą a="<<A<<",A \n";<<<< //wywoluje procedure zamieniającą zmienne miejscami
zamien(a,b);
cout << "a po zamianie a="<<A<<",A \n";<<<< return 0;
}
void zamien(int& a,int& b)
{
//int &a1=b1; - tworzy nową zmienna a1 korzystając z tego samego miejsca pamięci w którym znajduje się
// zmienna b1. Od tej pory jeżeli wykonamy działanie na jednej ze zmiennych to jego skutek będzie dotyczył
// także drugiej np. jeżeli zwiększymy a1 o 1 to b1 też będzie zwiększone o 1.
int c=a; a=b;
b=c;
}
Jeżeli będą jakieś pytania (albo jakieś rady odnośnie tego kursu) to proszę pisać do mnie.