#include <iostream> using namespace std; int main(void) { cout << "It's me, your first program."; return 0; }
numery ósemkowe octal zaczynają się od 0 np.0123=83, 018 - niepoprawne bo zakres 0-7
szestnastkowe od 0x np. 0x123=291 zapis X nie jest poprawny
zmienne muszą zaczynać się literą a nie cyfrą, rozróżnia duże i małe litery, możesz int Int;
Floating numbers - używaj kropki nie przecinka
możesz napisac zamiast 0.4 -> .4 albo zamiast 4.0 -> 4. kropka robi FLOAT całk. robi INT
Notacja naukowa:
3x10^8 -> 3E8 8 wykładnik potęgi (EXPONENT) 3 to podstawa (BASE)
int i=10/4; -> 2
float x=10.0/4.0; ->2.5
Int można na float. Jeśli z float 100.25 na int dostaniemy 100.
Zakres 32b int to 4 mld. Jeśli włożymy więcej to wynik zależy od kompilatora(niezdefiniowane)
Dzielenie przez 0 = błąd kompilacji, chyba, że dzielisz przez x które ma zero, wtedy execute er.
operator - może być jednoargumentowy (unary) jeśli stawiamy go do zmiany znaku -x
operator % - reszta z dzielenia (modulo) zawsze na całkowitej, nie można 5%0 bo dziel. przez 0 to undefined behaviour
większośc operatorów left-sided binding
2+3+5
Kolejnośc operatorów:
+- jednoargumentowe */% +-dwuargumentowe
oczywiście użycie nawiasów zmieni kolejność, w nawiasach pierwsze (parentheses)
Inkrementacja,dekrementacja:
a++ -> o jeden
a-- ->minus jeden
Variable++ post-increment operator
++Variable pre-increment operator
Variable-- post-decrement operator
--Variable pre-decrement operator
dlatego dla i=1
j=i++ j też=1
j=++i j=2
skróty:
i=i*2 -> i*=2; i=i+2 * j -> i+=2 * j;
a=a+10 -> a+=10; j=j-(bla bla) -> j-=(bla bla);
char Character='A'; albo Charakter=65; (w kodzie asci) to nie literał, to zmienna
(A,100,100.0 to literały)
\ -> escape character, pozwala dać Charcter='\'';
\n -> nowa linia;
\r -> powrót do nowej linii;
\a -> alarm;
\0 -> null -w ósemkowym, dlatego \47 - da decymalnie 39 a w char wypisze to co asci 39 czyli\
można też \xAA - czyli szestnastkowo
Ponieważ char przyjmuje liczby (asci) można do litery "A" dodać 32 i da nam znak jaki znajduje się pod ASCI większym od A o 32
Char="A"
Char+=32
ale możemy i odjąc
Char-=" ";
= -> operator przypisania
== -> operator porównania true/false niski priorytet, wykonywany na końcu
!= -> różności exclamation equal
> większości
>= większy i równy
Kolejność operacji:
0)lista[], wywołanie metody (), -> (wskaźnik->pole)
1) rzutowanie (typ)wartość, jednoargumentowe jak ++ -- + negacje ~ !, new,&,sizeof
2) * / %
3) dodawanie i odejmowanie
4)przesunięcia bitowe << >>
5) porównania < <= > >=
6) porównania == !=
7) logika bitowa & ^ |
8) logika logiczna && ||
9) instrukcja warunkowa ? :
10) = przypisanie, i jego odmiany += -+ *= /= %=
<< an insertion operator , wkłada string
cout<<a*4; dozwolone mnożenie
manipulator oct hex dec / albo setbase(16)
int liczba=255
cout<<"Liczba 16tkowo"<<hex<<liczba; raz uruchomiony hez na zmiennej liczba-działa
więc w następnej lini jeśli chcemy w dziesiętnym to <<dec<liczba;
rzutowanie:
char Char = 'X';
int Int = Char; cout<<Char<<" "<<(int)Char<<" "<<Int<<" "<<(char)Int;da wynik:
X 88 88 X
nowa linia:
alno \n w tekście albo <<endl;
float x = 2.5, y = 0.0000000025;
cout << fixed << x << " " << y << endl; //6 zer po przecinku
cout << scientific << x << " " << y << endl; //pełen zapis z e
Wpisywanie
cin>>
#include <cmath>
i możemy korzystać np z :
pierwiastek= sqrtf(value);
ZADANIA
Zad1:
ile wynosi k: int k = 1 % 2 + 4 % 2;
ODP: k=1 bo
1%2 to 1 nie 0
Zad2:
What is the output of the following snippet if a digit 5 followed by Enter is entered through the keyboard?
int i = 3, j = ++i, k = ++i;
cin >> i;
cout << k + i << j - i << i * i;
Zad3:
What is the value of the i variable?
float x = 1.0 / 4.0;
int i = x;
x=0.25;
i=0;
Zad4
co to za liczba
X10 - niepoprawna bo 16tkowe 0x10
018 - niepoprawne bo ósemkowe zakres cyfr 0-7