podstawy programowania
|
|
- Halina Smolińska
- 9 lat temu
- Przeglądów:
Transkrypt
1 podstawy programowania (język ANSI C) (język C++)
2 ogólna charakterystyka języka C: Bell Laboratories, Dennis M. Ritchie, Unix ANSI, ANSI C strukturalność blokowość rekurencyjność niezależność od architektury maszyny zwięzłość kodu brak procedur preprocesor dynamiczna alokacja pamięci możliwość umieszczenia kodu w wielu plikach
3 typy danych: typy całkowite: char (zakres od 128 do 127) unsigned char (zakres od 0 do 255) int (zakres od do ) short int long int long long int (zakres od do ) unsigned int unsigned short int (zakres od 0 do 65535) unsigned long int unsigned long long int (zakres od 0 do ) typy rzeczywiste zmiennoprzecinkowe: (zapis w postaci m p c ) float (zakres od do ) double (zakres od do ) long double (zakres od do )
4 nazwy zmiennych: tworzone są z liter i cyfr oraz znaku podkreślenia pierwszym znakiem musi być litera rozróżniane są duże i małe litery co najmniej 31 pierwszych znaków nazwy zmiennej ma znaczenie słowa kluczowe (np: int, double itd.) są zarezerwowane typy tablicowe: przykłady: int big_table[200]; long int Big_table[200]; long int Big_Table[2000]; indeks od 0 do n-1, gdzie n jest wielkością tablicy
5 operatory arytmetyczne: dwuargumentowe operatory: + - * / dzielenie modulo: % jednoargumentowe operatory: + - operatory logiczne: operatory relacji: > >= < <= operatory przyrównania: ==!= (równy, nierówny) operatory iloczynu i sumy: && operator negacji:! operatory bitowe: operatory przesunięcia: << >> (w lewo, w prawo) operator dopełnienia jedynkowego: ~ (negacja) inne operatory bitowe: & ^ (AND, OR, XOR)
6 operatory inkrementacji i dekrementacji: operator zwiększania: ++ (np: i++) operator zmniejszania: -- (np: --i) operator wyrażenie i przypisanie: zasada: a=aopb jest równoważne aop=b operatory arytmetyczne: += -= *= /= %= operatory bitowe: <<= >>= &= = ^=
7 inne operatory: operator wywołania funkcji: () operatory dostępu do elementów struktur: ->. operator indeksowania: [] operator rzutowania typu: (typ ) operator wyznaczania rozmiaru w bajtach: sizeof operator warunkowy:?: operator przecinkowy:, operator zwracania adresu zmiennej: & operator zwracania zmiennej spod adresu: * operator przypisania: =
8 instrukcje sterujące: if else if(wyrażenie1) instrukcja1 else instrukcja2 if(n>0) if(a>b) z=a; else z=b;
9 instrukcje sterujące: konstrukcja else if if(wyrażenie1) instrukcja1 else if(wyrażenie2) instrukcja2 else if(wyrażenie3) instrukcja3 else instrukcja4
10 instrukcje sterujące: switch switch(zmienna){ case stała1: instrukcja1 return; case stała2: instrukcja2 break; } default: instrukcja3
11 pętle: for for(wyrażenie1; wyrażenie2; wyrażenie3){ }... break;... continue; int sum, i; for(i=1, sum=0; i<10; i++){ } sum+=i;
12 pętle: while while(wyrażenie){ }... break;... continue; int sum, i; i=1; sum=0; while(i<10){ } sum+=i++;
13 pętle: do while do{... break;... continue; } while(wyrażenie); int sum, i; i=1; sum=0; do{ sum+=i++; } while(i<10);
14 instrukcje sterujące: goto i etykiety... if(a==0) goto etykieta1; else return (double)1/a;... etykieta1: dzielenieprzezzero();...
15 funkcje: definicja funkcji typ_powrotu nazwa_funkcji(parametry){ deklaracje instrukcje... return zmienna1_typ_powrotu;... } return zmienna2_typ_powrotu;
16 funkcje: wywołanie funkcji: typ_powrotu zmienna1; double zmienna1=2.3; char zmienna2= q ; zmienna1=nazwa_funcji(zmienna1, zmienna2); cechy funkcji: parametry są przekazywane przez wartość pominięcie typu powrotu powoduje, że funkcja zwraca wartość typu int jeśli funkcja nie ma zwracać żadnej wartości, stosuje się typ void
17 preprocesor języka C: wstawianie plików: #include "nazwa pliku" #include <nazwa pliku> makrorowinięcia: #define nazwa zastępowany tekst #define mean(a,b,c) ((a)+(b)+(c))/3 #define min(a,b) (a)<(b)?(a):(b) #undef min(a,b) argumenty makr w stałych napisowych: #define makro(argm) fun(#argm"koniec") makro(początek) fun("początek""koniec"); fun("początekkoniec");
18 preprocesor języka C: operarator ##: sklejanie argumentów aktualnych podczas rozwijania makra przykłady: #define paste(a, b) a ## b f(paste("sklej", "one")); f("sklejone"); #define paste(a, b) #a ## #b f(paste(sklej, one)); f("sklejone");
19 preprocesor języka C: kompilacja warunkowa: sterowanie procesem tłumaczenia wlączanie odpowiednich fragmentów kodu podczas kompilacji w zależności od architektury, platformy i innych czynników przykład: #if defined(arg) / #if! defined(arg) #define ARG #endif #ifdef ARG / #ifndef ARG #define ARG #endif
20 preprocesor języka C: kompilacja warunkowa część dalsza: przykład: #if ARG==WART1... #elif ARG==WART2... #elif ARG==WART3... #else #endif...
21 rodzaje zmiennych: zmienne zewnętrzne: definiowane poza wszystkimi funkcjami dostępne dla wielu funkcji alternatywa dla argumentów funkcji i zwracanych przez funkcje wartości przykład: typ1 zmienna1; void funkcja1(typ1 arg1, typ2 arg2){... zmienna1=arg1; } void funkcja2(typ2 arg1, typ1 arg2){... zmienna1=arg2; }
22 rodzaje zmiennych: zmienne automatyczne: definiowane w momencie wywołania bloku programu (funkcji, pętli itp.) tuż po nawiasie { otwierającym ten blok dostępne tylko dla tego bloku programu, w którym zostały zdefiniowane przykład: void funkcja1(typ1 arg1, typ2 arg2){ } int zmienna1=arg1;... void funkcja2(typ2 arg1, typ1 arg2){ } int zmienna1=arg2;...
23 rodzaje zmiennych: zmienne rejestrowe, deklaracja register: zastosowanie dla intensywnie używanych zmiennych zmienna jest umieszczana w rejestrach maszyny przyspieszenie i zmniejszenie programu stosowana wyłącznie do zmiennych automatycznych i do parametrów funkcji przykłady: register int zmienna1; int zmienna2; f(register unsigned int a){ } register int c;
24 wskaźniki i adresy: deklaracja obiektów wskaźnikowych: int *wskaźnik1 int *wskaźnik2, zmienna1 odwołania do obiektów wskaźnikowych: int zmienna2=*wskaźnik1 int *wskaźnik3=&zmienna1 typ wskaźnika ogólnego void*: void *wskv; int *wski; char *wskc; wski=wskv; //dobrze wskv=wskc; //dobrze wski=wskc; //źle
25 wskaźniki i argumenty funkcji: deklaracje: void zamień1(int, int) //źle void zamień2(int*, int*) //dobrze przykład: void zamień(int *a, int *b){ } int tmp; tmp=*a; *a=*b; *b=tmp;
26 wskaźniki i tablice: zmienne tablicowe: int table1[10]; int table2[300]; dynamiczny przydział pamięci: int *table1, *table2; table1=(int*)malloc(sizeof *table1 *10); table2=(int*)calloc(300, sizeof *table2); free(table1); równoważności: *table1 table1[0] *(table1+i) table1[i] table1 &table1[0] table1+i &table1[i]
27 wskaźniki i tablice: indeksowanie: int *table1, *reftable1; table1=(int*)malloc(sizeof *table1 *10); int i; for(i=0; i< 10; i++) *(table1+i)=i; reftable1=table1+5; for(i=-5; i< 5; i++) *(reftable1+i)=i+5;
28 arytmetyka na adresach: jeżeli ptr jest wskaźnikiem do pewnego obszaru danych, to: ptr++ - wskaźnik na następny element ptr+=i - wskaźnik na element oddalony o i elementów od początku danych relacje dla wskaźników: dla wskaźników odwołujących się do elementów tej samej tablicy: <=, >, ==,!= itd. - liczba elementów pomiędzy tymi wskaźnikami brak operacji dodawania dla dowolnych wskaźników: przyrównanie do NULL
29 napisy i znaki: przykład: void funkcja1(char* a, char b){ }... funkcja1("napis", a ); właściwości: każdy napis zakonczony jest znakiem \0 do funkcji funkcja1 przekazywany jest tylko wskaźnik do napisu, a nie cały napis (pierwszy argument) język C dostarcza tylko operacji dla wskaźników, brak jest zdefiniowanych operacji dla ciągów znaków
30 napisy i znaki: przykład: char napis1[]="text"; char *napis2="text"; komentarz: napis1 - tablica (zawiera cały napis oraz znak końca napisu ( \0 )) napis2 - wskaźnik (przetrzymuje adres napisu "text", który nie musi być naszą własnością) wyrażenia idiomatyczne: *wskaźnik++=zmienna zmienna=*--wskaźnik
31 tablice wielowymiarowe: przykład: int table2d[2][5]={ {3, 5, 7, 13, 17}, {3, 1, 4, 1, 6}} fun1(int table2d[2][5]){... } fun1(int table2d[][5]){... } fun1(int (*table2d)[5]){... } komentarz: do funkcji przekazywany jest wskaźnik, nie ma obowiązku podawania rozmiaru tablic w argumentach funkcji w argumencie funkcji tablicę elementów danego typu możemy zamienić wskaźnikiem do tych elementów
32 tablice wielowymiarowe: przykład: int **tab1; int i,j; int tab2[10][20] table=(int**)malloc(10*sizeof *tab1) for(i=0; i<10; i++) *(tab1+i)=(int*)calloc(20, sizeof **tab1); for(i=0; i<10; i++) for(j=0; j<20; j++){ *(*(tab1+i)+j)=i*j; tab2[i][j]=i-j; }
33 wskaźnik do funkcji: funkcja zwracająca wskaźnik do int: int* funkcja(void){... } wskaźnik funkcji zwracającej typ int: int (*funkcja)(void){... } wskaźnik funkcji zwracającej wskaźnik do int: int* (*funkcja)(void){ }...
34 argumenty wywołania programu: funkcja main void main(int argc, char** argv){ }... opis parametrów funkcji main: argv[0] - nazwa pliku programu argc==1 - brak argumentów char *argv[] - tablica wskaźników do char int (*argv)[] - wskaźnik do tablic typu char
35 rzutowanie wskaźników: przykład: void funkcja(char* table1){ int *table2, i, j; table2=malloc(4*10); for(i=0; i<10; i++) for(j=0; j<4; j++) *((char*)table2+i*4+j)= *(table1+i*4+j); for(i=0; i<10; i++) *(table2+i)= *((int*)table1+i);
36 nietypowy dynamiczny przydział pamięci: przykład: void funkcja2(int* a){... } int* funkcja1(void){ int *table1, i; table1=malloc(4*10); for(i=0; i<10; i++) *(table1+i)=i; return table1; } void main(void){ int* tmp=funkcja1(); funkcja2(tmp); free(tmp); }
37 struktury: definicja typu strukturalnego: struct pracownik{ char* nazwisko; unsigned char wiek; unsigned short int zarobki; }; deklaracja zmiennej strukturalnej: struct pracownik szef; struct pracownik kierowca, dozorca; deklaracja zmiennej strukturalnej (sposób 2): struct { char *nazwisko; unsigned char wiek; unsigned short int zarobki; } szef, kierowca, dozorca;
38 struktury: dostęp do pól struktury (zapis): szef.zarobki=2000; szef.wiek=50; szef.nazwisko="kowalski"; dostęp do pól struktury (odczyt): unsigned char wiek; char *nazwisko; wiek=szef.wiek; nazwisko=szef.nazwisko; dostęp do pól struktury (odczyt/zapis): kierowca.zarobki= (int)((double)szef.zarobki/2);
39 struktury: zagnieżdżanie: struct nazwa{ char *imię; char *nazwisko;}; struct pracownik{ struct nazwa id; unsigned char wiek; unsigned short int zarobki;}; dostęp do pól struktury zagnieżdżonej: struct pracownik szef; szef.id.imię="jan"; szef.id.nazwisko="kowalski"; szef.wiek=50; szef.zarobki=2000;
40 struktury i funkcje: definicja funkcji zwracającej strukturę: struct pracownik nowy(char *imię, char *nazwisko, unsigned char wiek, short int zarobki){ } struct pracownik tmp; tmp.id.imię=imię; tmp.id.nazwisko=nazwisko; tmp.wiek=wiek; tmp.zarobki=zarobki; return tmp; użycie funkcji przy przypisaniu pól strukturze: struct pracownik sprzedawca; sprzedawca=nowy("maria","nowak", 22, 1000);
41 operacje na strukturach: pobranie adresu struktury wyłuskanie struktury spod adresu kopiowanie struktur dostęp do składowych -> i. przykład: struct pracownik kierowca, *wsk1; struct pracownik *wsk2, tokarz; unsigned char wiek; unsigned short int zarobki; wsk1=&kierowca; wiek=(*wsk1).wiek; zarobki=wsk1->zarobki; *wsk2=*wsk1; tokarz=*wsk1;
42 tablice struktur: przykład: struct pracownik pracownicy[10]; int i; unsigned short int zarobki[]= {2000, 1500, 1200, 1100, 900, 900, 900, 900, 800, 800}; for(i=0; i<10; i++) pracownicy[i].zarobki= zarobki[i]; pracownicy[3]=pracownicy[4];
43 struktury i dynamiczny przydział pamięci: przykład: struct pracownik *pracownicy; int i; unsigned short int zarobki[]= {2000, 1500, 1200, 1100, 900, 900, 900, 900, 800, 800}; pracownicy=(struct pracownik*)malloc( sizeof *pracownicy*10); for(i=0; i<10; i++) (pracownicy+i)->zarobki= zarobki[i]; pracownicy[3]=*(pracownicy+4);
44 deklaracja typedef: tworzenie nowych nazw typów danych nie tworzy nowego typu, nadaje tylko istniejącemu typowi nową nazwę dobrym zwyczajem jest nazywać nowe nazwy typów z wielkiej litery przykład: typedef unsigned int Słowo; Słowo bity32; struct struktura{... }; typedef struct struktura nazwa; nazwa zmienna; typedef struct struktura1{... } nazwa1; nazwa1 zmienna1;
45 unie: zmienna, która może zawierać obiekty różnych typów i rozmiarów przykład: union nazwa{ int Int; double Double; char Char; } zmienna, *wskaźnik; double Double=2.3; int Int=12345; zmienna.double=double; wskaźnik->int=int;
46 pola bitowe: deklaracja i definicja podobna jak w przypadku struktur pakowanie kilku obiektów (zmiennych) w jedno słowo maszyny oszczędność pamięci przykład: struct polebitowe{ short unsigned int power: 1; short unsigned int volume: 12; short unsigned int cd: 1; short unsigned int radio: 1;}; polebitowe zmienna; zmienna.volume=2000; zmienna.power=1; zmienna.radio=1; zmienna.cd=0;
47 funkcja printf: int printf(char* format, arg1, arg2,..) wypisuje argumenty arg1, arg2, zgodnie z formatem format na standardowe (ekran) opis formatu format: zwykłe znaki - kopiowane są bezpośrednio specyfikacje przekształcenia - % + modyfikator + znak przekształcenia modyfikatory (postać wyniku): - - dosunięcie przekształconego argumentu do lewego krańca jego pola + - wypisanie liczby zawsze ze znakiem odstęp - poprzedzenie wyniku znakami odstępu 0 - poprzedzenie wyniku zerami
48 funkcja printf: opis formatu format: modyfikatory: liczba określająca minimalny rozmiar pola kropka oddzielająca rozmiar pola od precyzji liczba określająca precyzję modyfikator długości: h - short lub unsigned short l - long lub unsigned long L - long double
49 funkcja printf: opis formatu format: znak przekształcenia znak przekształcenia: d, i - liczba dziesiętna ze znakiem o - liczba ósemkowa bez znaku x, X - liczba szesnastkowa bez znaku u - liczba dziesiętna bez znaku c - znak s - wskaźnik do tablicy znaków zakończonych znakiem \0 f - liczba dziesiętna zmiennoprzecinkowa m.d e, E - liczba dziesiętna zmiennoprzecinkowa m.de ±x, m.de ±x g, G - automatyczny wybór znaku przekształcenia znak przekształcenia: f, e lub E p - wskaźnik % - znak %
50 funkcja printf: przykłady: printf("%d", 20); 20 printf("%d", ); printf("%u", ); printf("%5d", 20); 20 printf("% 5d", 20); 20 printf("%07d", 20); printf("%-7d", 20); 20
51 funkcja printf: przykłady: printf("%+d", 20); +20 printf("%+d", -20); -20 printf("%4d", ); printf("% 8.5f", 2.3); printf("%015.5e", 2.3); e+00 printf("%05.5e", 2.3); E+00 printf("%+015.5e", 2.3); E+00
52 funkcja scanf: int scanf(char* format, arg1, arg2,..) czyta ze standardowego wejścia zgodnie z formatem format i zapamiętuje wyniki w argumentach arg1, arg2 itd. opis formatu format: odstępy i znaki tabulacji są ignorowane zwykłe znaki, których spodziewamy się na wejściu specyfikacje przekształcenia - % + N/h/l/L + znak przekształcenia: N - maksymalny rozmiar pola h, l, L - tak jak poprzednio
53 funkcja scanf: opis formatu format: znak przekształcenia znak przekształcenia: d - liczba całkowita dziesiętna i - liczba dziesiętna, może wystąpić w postaci szesnastkowej (np. 0xff) lub ósemkowej (np. 077) o - liczba całkowita w postaci ósemkowej x - liczba całkowita w postaci szesnastkowej u - liczba dziesiętna bez znaku c - znak s - ciąg znaków bez cudzysłowów f, e, g - liczba dziesiętna zmiennoprzecinkowa p - wskaźnik % - znak %
54 funkcja scanf: przykłady: scanf("%d", &a); +20 a=20 scanf("u%d", &a); u-20 a=-20 scanf("%g", &a); 25e10 a=2.5e11 scanf("%i", &a); 017 a=15 scanf("%i", &a); 17 a=17 scanf("%i", &a); 0xff a=255
55 pliki: dostęp do otwartego pliku poprzez zmienną typu wskaźnik do pliku FILE* otwarcie pliku o nazwie nazwa w trybie tryb: FILE* fopen(char* nazwa, char* tryb) podstawowe tryby otwarcia pliku: r - czytanie w - pisanie a - dopisywanie b - pliki binarne w systemie otwarte są trzy pliki: stdin - klawiatura stdout - ekran stderr - błędów zamykanie pliku: fclose(file* wsk)
56 pliki: pobranie znaku z pliku: int getc(file *wsk) zapisanie znaku do pliku: int putc(int znak, FILE *wsk) analogia funkcji int printf(char* format,..): int fprintf(file *wsk, char* format,..) analogia funkcji int scanf(char* format,..): int fscanf(file *wsk, char* format,..) makrorozwinięcia: #define getchar() getc(stdin) #define putchar(c) putc((c), stdout) znacznik końca pliku: EOF
57 pliki: odczyt z pliku skojarzonego ze wskaźnikiem do pliku wskf num obiektów o wielkości size każdy i umieszczenie odczytanych danych pod wskaźnikiem wsk: size t fread(void *wsk, size t size, size t num, FILE* wskf) zapis do pliku skojarzonego ze wskaźnikiem do pliku wskf num obiektów o wielkości size każdy spod adresu umiesczonego we wskaźniku wsk: size t fwrite(const void *wsk, size t size, size t num, FILE* wskf) size t - typ wartości całkowitej bez znaku, np: typedef unsigned int size t
58 pliki: pozycjonowanie pliku: fseek(file *wsk, long offset, int origin) offset - przesunięcie względem odniesienia origin - odniesienie: SEEK SET - początek pliku SEEK CUR - bieżąca pozycja SEEK END - koniec pliku pobieranie pozycji pliku: long ftell(file *wsk) ustawienie pozycji pliku na początek: void frewind(file *wsk)
59 operacje na łańcuchach string.h: oznaczenia: char *s, *t; const char *cs, *ct; size t n; char c; char* strstr(cs, ct) zwraca wskaźnik do pierwszego wystąpienia tekstu ct w tekście cs lub NULL jeśli ct nie występuje w cs size t strlen(cs) zwraca długość tekstu cs
60 operacje na łańcuchach string.h: char* strcpy(s, ct) kopiuje znaki spod adresu ct do adresu s łącznie ze znakiem \0 char* strncpy(s, ct, n) kopiuje spod adresu ct do adresu s co najwyżej n znaków łącznie ze znakiem \0, jeśli ct ma mniej niż n znaków, to s dopełniane jest znakami \0 char* strcat(s, ct) dopisuje znaki spod adresu ct na koniec tekstu spod adresu s łącznie ze znakiem \0 char* strncat(s, ct, n) dopisuje co najwyżej n znaków spod adresu ct na koniec tekstu spod adresu s łącznie ze znakiem \0
61 operacje na łańcuchach string.h: int strcmp(cs, ct) porównuje teksty zawarte w cs i ct, zwraca wartość mniejszą od zera gdy cs<ct, wartość zero, gdy cs==ct, większą od zera, gdy cs>ct int strncmp(cs, ct, n) porównuje co najwyżej n znaków zawartych w cs i ct, zwraca wartość mniejszą od zera gdy cs<ct, wartość zero, gdy cs==ct, większą od zera, gdy cs>ct char* strchr(cs, c) zwraca wskaźnik do pierwszego wystąpienia znaku c w tekście cs char* strrchr(cs, c) zwraca wskaźnik do ostatniego wystąpienia znaku c w tekście cs
62 sekwencje specjalne języka C: \a - znak alarmu \b - znak cofania \n - znak nowego wiersza \r - znak powrotu karetki \t - znak tabulacji poziomej \v - znak tabulacji pionowej \\ - znak \ \? - znak zapytania \ - znak apostrofu \" - znak cudzysłowu
63 wykonanie polecenia systemu operacyjnego system(): system(char*) funkcja exit(): exit(arg) return arg - w przypadku wywołania wewnątrz funkcji main exit(arg) - wychodzi z programu w przypadku wywołania w dowolnym miejscu programu, zwraca arg generowanie liczb losowych rand(): int rand(void) - zwraca pseudolosową liczbę z przedziału [0... RAND MAX]
64 funkcje matematyczne math.h: sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), atan2(y,x) - funkcje trygonometryczne sinh(x), cosh(x), tanh(x) - funkcje hiperboliczne log(x), log10(x), exp(x), pow(x,y), sqrt(x) - funkcje logarytmiczne, wykładnicze i potęgowe fabs(x) - wartość bezwzględna modf(x, double *wsk) - rozdziela x na część całkowitą i ułamkową (obie z tym samym znakiem co x), część całkowitą wstawia do *wsk, zwraca część ułamkową fmod(x,y) - zmiennopozycyjna reszta z dzielenia x/y z tym samym znakiem co x x i y argumenty typu double, funkcje zwracają wartości typu double
65 badanie klasy znaków i ich przekształcenia ctype.h: isalpha(c) - sprawdza czy c jest literą isupper(c) - sprawdza czy c jest wielką literą islower(c) - sprawdza czy c jest mała literą isdigit(c) - sprawdza czy c jest cyfrą isalnum(c) - sprawdza czy c jest cyfrą lub literą isspace(c) - sprawdza czy c jest odstępem, tabulacją, znakiem nowego wiersza, powrotu karetki, nowej strony lub tabulacji pionowej toupper(c) - zwraca c przekształcony na wielką literę tolower(c) - zwraca c przekształcony na mała literę c - argument całkowity typu int reprezentujący unsigned char
66 funkcja qsort: porządkuje elementy dowolnego typu, dla których zdefiniowaliśmy funkcję porównującą qsort(void* wskaźnik do elementów, size t liczba elementów, size t wielkość elementu, int (*funkcja porównująca)( const void*, const void*)) właściwości funkcji porównującej: wyznacza kryterium sortowania zwraca zero, gdy oba argumenty są równe, zwraca wartość ujemną, gdy argument drugi następuje po argumencie pierwszym według kolejności sortowania zwraca wartość dodatnią, w przeciwnym wypadku
67 funkcja qsort, przykład: int a[20]; int i; for(i=0; i<20; i++) a[i]=rand(); int (*cmp)(const void* a, const void* b){ } return *(int*)a-*(int*)b; qsort(a, 20, sizeof *a, cmp);
68 udoskonalone C C++
69 dynamiczny przydział pamięci new: short int *data, *data1; struct pracownik *kadra, *kadra1; data1=malloc(sizeof *data1*1000); data=new short int[1000]; kadra=new struct pracownik; kadra1=new struct pracownik[20]; zwalnianie pamięci delete: free(data1); delete kadra; delete[] kadra1; delete[] data;
70 przeciążanie funkcji: wybór funkcji ze wględu na argumenty wywołania brak możliwości zdefiniowana dwóch funkcji o takiej samej nazwie i rozróżnianiu ich pod względem zwracanego typu void pokaż(void){ } printf("%s", "tu funkcja pokaż"); void pokaż(char *wsk){ } pokaż(); printf(" napisano %s", wsk); pokaż("123"); pokaż();
71 możliwość definiowania i deklarowania zmiennych w różnych miejscach programu: int main(void){ } int a=10; for(int i=0; i<10; i++) printf("%d", i+a); double b=2.3; struct pracownik szef; char *nazwisko="kowalski"; szef.id->nazwisko= new char[strlen(nazwisko)+1]; strcpy(szef.id->nazwisko, nazwisko); double e;
72 referencje: synonim zmiennej alternatywa dla wskaźników przykłady: void zamień(int &a, int &b){ int tmp=a; a=b; b=tmp;} int a; int &b=a; for(int i=0; i< 10; b++, i++) printf("%d", a);
73 definicja klasy: class nazwa{ private: //składowe dostępne tylko dla //funkcji składowych i przyjaciół public: //składowe dostępne //dla wszystkich funkcji protected: //składowe dostępne dla składowych, //przyjaciól i klas pochodnych };
74 przykład definicji klasy: class prostokąt{ private: int długość, szerokość; protected: double skala; int prepole(void); public: prostokąt(int, int, double); double pole(void); };
75 przykład definicji klasy: prostokąt::prostokąt(int a, int b, double m){ } długość=a; szerokość=b; skala=m; int prostokąt::prepole(){ } return długość*szerokość; double prostokąt::pole(){ } return (double)prepole()*skala*skala;
76 wykorzystanie klasy prostokąt: prostokąt figura(20, 30,.5); figura.szerokość=20; //źle int prepole; prepole=figura.prepole(); //źle double pole; pole=figura.pole();//dobrze prostokąt *wsk; wsk=new prostokąt(10, 20, 1.0); pole=wsk->pole(); //dobrze
77 klasy pochodne: klasa pochodna ma dostęp do składowych public: i protected klasy podstawowej, jak też do wszystkich swoich składowych class pochodna: public podstawowa{ private:... public:... protected:... }; //plus składowe publiczne i //chronione klasy podstawowej
78 przykład definicji klasy pochodnej: class prostopadłościan:public prostokąt{ } private: int wysokość; protected: int preobjętość(void); public: prostopadłościan(int, int, int, double); prostopadłościan(void); double objętość(void);
79 przykład definicji klasy pochodnej: int preobjętość(void){ return prepole()*wysokość;} double objętość(void){ return pole()*(double)* wysokość*skala;} prostopadłościan::prostopadłościan(void) :prostokąt(1,1,1){wysokość=1;}; prostopadłościan::prostopadłościan (int a, int b, int c, double m) :prostokąt(a, b, m){wysokość=c;}
80 wykorzystanie klasy pochodnej: prostopadłościan *wsk=new prostopadlościan[20] (1, 2, 3,.3); prostopadłościan tab[20]; for(int i=0; i<10; i++) printf("%f", (wsk+i)->pole()), printf("%f", tab[i].pole()); delete[] wsk;
81 wykorzystanie klasy pochodnej: prostopadłościan **wsk; wsk=new prostopadłościan*[10]; for(int i=0; i<10; i++) *(wsk+i)=new prostopadłościan(10,10,10,.1); for(int i=0; i<10; i++) printf("%f", (*(wsk+i))->objętość()); for(int i=0; i<10; i++) delete *(wsk+i); delete[] wsk;
82 przypisanie (błędnie): class klasa{ char* wsk; int rozm; }; public: klasa(int n){wsk=new char[rozm=n];} ~klasa(){delete[] wsk;} void funkcja(void){ } klasa n1(100); klasa n2(100); n1=n2;
83 przypisanie (poprawnie): class klasa{ char* wsk; int rozm; public: klasa(int n){wsk=new char[rozm=n];} klasa& operator=(const klasa&); ~klasa(){delete[] wsk;}}; klasa& klasa::operator=(const klasa& n){ } if(this!=&n){ delete[] wsk; wsk=new char[rozm=n.rozm]; strcpy(wsk, n.wsk);} return *this;
84 inicjacja (błędnie): class klasa{ char* wsk; int rozm; }; public: klasa(int n){wsk=new char[rozm=n];} ~klasa(){delete[] wsk;} klasa& operator=(const klasa&); void funkcja(void){ } klasa n1(100); klasa n2=n1;
85 inicjacja (poprawnie): class klasa{ char* wsk; int rozm; }; public: klasa(int n){wsk=new char[rozm=n];} klasa(const klasa&); ~klasa(){delete[] wsk;} klasa& operator=(const klasa&); klasa::klasa(const klasa& n){ } wsk=new char[rozm=n.rozm]; strcpy(wsk, n.wsk);
86 funkcje zaprzyjaźnione: class klasa{ int *data; int rozm; }; public: klasa(int, int*); friend klasa& przyjaciel(int, const klasa&); klasa& przyjaciel(const klasa& n){ } //dostęp do składowych klasy
87 strumienie iostream.h: ostream& ostream::operator<<(char); ostream& ostream::operator<<(int); ostream& ostream::operator<<(short int); ostream& put(char);... przykład: cerr<<"wystąpił błąd"; int Int=10; double Double=10.2; cout<<"\nint = "<<Int<<" Double = "<<Double;
88 strumienie iostream.h: istream& istream::operator>>(char *); istream& istream::operator>>(char&); istream& istream::operator>>(int&); istream& get(char); istream& get(char*, int, char= \n ); przykład:... double Double; int Int; cin>>double; cin>>int; char *wsk=new char[20]; cin.get(wsk, 19, e );
89 strumienie dla typów użytkownika iostream.h: class klasa{ int rozm; int *data;... public: friend ostream& operator<<(ostream&, klasa&);}; ostream& operator<<(ostream& cout_, klasa& klasa_){ for(int i=0; i<klasa_.rozm; i++) cout_<<"\n"<<*(klasa_.data+i); return cout_;}
90 wzorce: template<class T> class wektor{ T* wsk; int rozm; }; public:... wektor(int r){wsk=new T[rozm=r];} T operator[](int i){return *(wsk+i);}... int main(void){ } wektor<double> a; wektor<int> b; wektor<wektor<int> > c;
Podstawy programowania w języku C
Ćwiczenie 1 1.1. Pierwszy program w C Podstawy programowania w języku C Program w języku C, składa się ze zmiennych, stałych oraz funkcji. Zmienne i stałe służą do przechowywania danych, na których program
Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI)
Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI) Jacek Cichosz www.zssk.pwr.wroc.pl Katedra Systemów i Sieci Komputerowych Politechnika Wrocławska Dziedziczenie 221 Dziedziczenie Dziedziczenie
2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.
Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej
Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej 3.1 Informacje ogólne Program WAAK 1.0 służy do wizualizacji algorytmów arytmetyki komputerowej. Oczywiście istnieje wiele narzędzi
#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.
Programowanie II prowadzący: Adam Dudek Lista nr 8 Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Jest to najważniejsza cecha świadcząca o sile programowania
WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH
WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH Klasa: 3TIR - Technik informatyk Program: 351203 Wymiar: 4 h tygodniowo Podręcznik: Kwalifikacja E.14 Programowanie
Programowanie obiektowe w C++ Wykład 11
Programowanie obiektowe w C++ Wykład 11 dr Lidia Stępień Akademia im. Jana Długosza w Częstochowie L. Stępień (AJD) Programowanie obiektowe w C++ 1 / 34 STL - rys historyczny utworzona została w 1994 r.
Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe
Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)
( wykł. dr Marek Piasecki )
INE 1007 Informatyka 1 Język programowania C++ ( wykł. dr Marek Piasecki ) Literatura: dowolny podręcznik do języka C++ (na laboratoriach Borland C++ 3.1) Robert Lafore Jerzy Grębosz Andrzej Zalewski Programowanie
Ćwiczenia IV - Kontenery (pojemniki)
Ćwiczenia IV - Kontenery (pojemniki) 28 października 2010 Kontener Kontener jest to obiekt który zawiera w sobie obiekty innej klasy i ma zdefiniowane metody nimi zarządzające. Jednym z najprostszych przykładów
G PROGRAMMING. Part #4
G PROGRAMMING Part #4 Tablice, wykresy, klastry Tablice Zbiór elementów danych tego samego typu Zastosowanie gromadzenie danych z powtarzalnych operacji odczytu, obliczeń (magazynowanie danych przebiegów
Programowanie strukturalne i obiektowe
Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie
#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
Wartości domyślne, szablony funkcji i klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy dokument
1. Wprowadzenie do C/C++
Podstawy Programowania - Roman Grundkiewicz - 013Z Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania
WYKŁAD 8 Reprezentacja obrazu Elementy edycji (tworzenia) obrazu Postacie obrazów na różnych etapach procesu przetwarzania Klasy obrazów Klasa 1: Obrazy o pełnej skali stopni jasności, typowe parametry:
Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD
Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD 1. Wprowadzenie DuŜa grupa sterowników mikroprocesorowych wymaga obsługi przycisków, które umoŝliwiają uŝytkownikowi uruchamianie
Programowanie Proceduralne
Programowanie Proceduralne Struktury Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 10 Co dziś będzie: Definiowanie struktury Deklarowanie zmiennych bȩda cych strukturami
Programowanie 2. Język C++. Wykład 2.
2.1 Definicja, deklaracja, wywołanie funkcji.... 1 2.2 Funkcje inline... 4 2.3 Przekazanie do argumentu funkcji wartości, adresu zmiennej.... 5 2.4 Wskaźniki do funkcji... 8 2.5 Przeładowanie funkcji...
Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.
Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice
3 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 3 1/8 Język C Instrukcja laboratoryjna Temat: Instrukcje warunkowe, pętle. 3 Przygotował: mgr inż. Maciej Lasota 1) Instrukcje warunkowe. Instrukcje warunkowe pozwalają zdefiniować warianty
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,
0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie
0.1 Hierarchia klas 0.1.1 Diagram 0.1.2 Krótkie wyjaśnienie Po pierwsze to jest tylko przykładowe rozwiązanie. Zarówno na wtorkowych i czwartkowych ćwiczeniach odbiegaliśmy od niego, ale nie wiele. Na
Wstęp do programowania 1
Wstęp do programowania 1 Struktury Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 12 Struktura dla dat - przykład #include struct Date { int y; short m; short
Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski
Instrukcja obsługi Norton Commander (NC) wersja 4.0 Autor: mgr inż. Tomasz Staniszewski ITM Zakład Technologii Maszyn, 15.10.2001 2 1.Uruchomienie programu Aby uruchomić program Norton Commander standardowo
Zmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/
Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura
for (i=1; i<=10; i=i+1) instrukcja; instrukcja zostanie wykonana 10 razy for (inicjalizacja; test; aktualizacja) instrukcja;
Rok akademicki 2011/2012, Pracownia nr 8 2/30 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2011/2012 Pracownia nr
1. Wprowadzenie do C/C++
Podstawy Programowania :: Roman Grundkiewicz :: 014 Zaj cia 1 1 rodowisko Dev-C++ 1. Wprowadzenie do C/C++ Uruchomienie ±rodowiska: Start Programs Developments Dev-C++. Nowy projekt: File New Project lub
Język ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Programowanie w języku C++
INE 2022 JĘZYKI PROGRAMOWANIA 1 INE 0050 WSTĘP DO PROGRAMOWANIA Programowanie w języku C++ ( wykł. dr Marek Piasecki ) Literatura: do wykładu dowolny podręcznik do języka C++ na laboratoriach Borland C++
Część 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Programowanie I C / C++ laboratorium 03 arytmetyka, operatory
Programowanie I C / C++ laboratorium 03 arytmetyka, operatory Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-19 Typ znakowy Typ znakowy Typ wyliczeniowy # include
Języki programowania - podstawy
Języki programowania - podstawy Andrzej Dudek Wydział Techniczno Informatyczny W Jeleniej Górze Dudek A. Informatyka przemysłowa tendencje i wyzwania 26.10.2015 1 /24 Algorytm określony sposób rozwiązania
K P K P R K P R D K P R D W
KLASA III TECHNIKUM POZIOM PODSTAWOWY I ROZSZERZONY PROPOZYCJA POZIOMÓW WYMAGAŃ Wyróżnione zostały następujące wymagania programowe: konieczne (K), podstawowe (P), rozszerzające (R), dopełniające (D) i
Wykład 2. Budowa komputera. W teorii i w praktyce
Wykład 2 Budowa komputera W teorii i w praktyce Generacje komputerów 0 oparte o przekaźniki i elementy mechaniczne (np. Z3), 1 budowane na lampach elektronowych (np. XYZ), 2 budowane na tranzystorach (np.
Języki i metody programowania. Omówienie języków C, C++ i Java
Języki i metody programowania Omówienie języków C, C++ i Java Język C Język programowania ogólnego przeznaczenia Historia: M. Richards - BCPL - lata 60-te ubiegłego stulecia K. Thompson - B dla UNIX (DEC
Wskaznik. Przekazywanie wyniku funkcji przez return. Typy i zmienne wskaznikowe. Zmienna wskazywana. typ * nazwa_wkaznika
Wyklad 6 Typy i zmienne: wskaznikowe, referencyjne Funkcje deklaracja, definicja. Zasieg deklaracji i widocznosc zmiennych Przekazywanie parametrów przez wartosc, referencje i wskaznik Przekazywanie wyniku
Temat 1: Podstawowe pojęcia: program, kompilacja, kod
Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,
Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1
Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy
Kilka zasad o których warto trzeba pamiętać
Kilka zasad o których warto trzeba pamiętać Pamiętaj o celu pisania dokumentu. Dostosuj do niego format strony i jej układ. Pozostaw rozsądnie duże marginesy, nie stłaczaj tekstu. Jeżeli strony będą spięte,
/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>
Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch
PROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec
PROE wykład 7 kontenery tablicowe, listy dr inż. Jacek Naruniec Prosty kontener oparty na tablicach Funkcja dodawanie pojedynczego słonia do kontenera: 1 2 3 4 5 6 7 11 12 13 14 15 16 17 21 22 23 24 25
Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?
Zadanie 01 W przedstawionym ponizej programie w jezyku ANSI C w miejscu wykropkowanym brakuje jednej linii: #include... int main() { printf("tralalalala"); return 0; } A. B. "iostream" C.
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Podstawowe działania w rachunku macierzowym
Podstawowe działania w rachunku macierzowym Marcin Detka Katedra Informatyki Stosowanej Kielce, Wrzesień 2004 1 MACIERZE 1 1 Macierze Macierz prostokątną A o wymiarach m n (m wierszy w n kolumnach) definiujemy:
Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych
Spis treści 1. Wstęp... 9 1.1. Inżynieria oprogramowania jako proces... 10 1.1.1. Algorytm... 11 1.2. Programowanie w językach wysokiego poziomu... 11 1.3. Obiektowe podejście do programowania... 12 1.3.1.
Programowanie w elektronice: Podstawy C
Programowanie w elektronice: Podstawy C Projekt Matematyka dla Ciekawych Świata, Robert Ryszard Paciorek 2019-05-05 C / C++ są najpopularniejszymi językami kompilowanymi do kodu maszynowego
Co nie powinno być umieszczane w plikach nagłówkowych:
Zawartość plików nagłówkowych (*.h) : #include #define ESC 27 dyrektywy dołączenia definicje stałych #define MAX(x,y) ((x)>(y)?(x):(y)) definicje makr int menu(char* tab[], int ilosc); struct
Architektura komputerów
Architektura komputerów Tydzień 6 RSC i CSC Znaczenie terminów CSC Complete nstruction Set Computer komputer o pełnej liście rozkazów. RSC Reduced nstruction Set Computer komputer o zredukowanej liście
I - Microsoft Visual Studio C++
I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i
ASD - ćwiczenia III. Dowodzenie poprawności programów iteracyjnych. Nieformalnie o poprawności programów:
ASD - ćwiczenia III Dowodzenie poprawności programów iteracyjnych Nieformalnie o poprawności programów: poprawność częściowa jeżeli program zakończy działanie dla danych wejściowych spełniających założony
ROZDZIAŁ 2. Operatory
Bibliografia [1] Jerzy Grębosz, Symfonia C++, Oficyna Kallimach, Kraków, 1999, [2] Jerzy Grębosz, Pasja C++, Oficyna Kallimach, Kraków, 1999, [3] Bjarne Stroustrup, Język C++, WNT, Warszawa, 1997, [4]
Dariusz Chaberski. UMK Toruń
przykłady w języku ANSI C Dariusz Chaberski UMK Toruń 1 rekurencja funkcji int silnia(int arg){ if(arg==1) return 1; return arg*silnia(arg-1); int liczba; printf("podaj liczbe: "); scanf("%d", &liczba);
Języki i metodyka programowania. Wprowadzenie do języka C
Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia
Podstawy programowania sterowników GeFanuc
Podstawy programowania sterowników GeFanuc Waldemar Samociuk Zakład Teorii Maszyn i Automatyki Katedra Podstaw Techniki Felin p.110 http://ztmia.ar.lublin.pl/sips waldemar.samociuk@up.lublin,pl Podstawy
Podstawy programowania w języku C i C++
Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Stuck in the loop. Sterowanie. Marcin Makowski. 29 października Zak lad Chemii Teoretycznej UJ
Sterowanie Zak lad Chemii Teoretycznej UJ 29 października 2007 1 2 3 4 arytmetyczne +, -, *, / % (dzielenie modulo) operatory sa lewostronnie l aczne priorytety: (*, /, %), (+, -) nie istnieje operator
Program w C. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka :28:
Program w C wer. 10 z drobnymi modyfikacjami! Wojciech Myszka 2015-05-02 18:28:29 +0200 Tak wygląda program w języku C 1 / Hello World in C, Ansi s t y l e / 2 #include < s t d i o. h> 3 i n t main ( void
Spis treści PLIKI TEKSTOWE W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF22
Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 2 Kod przedmiotu: ES1C300 016 (studia stacjonarne)
C++ wprowadzanie zmiennych
C++ wprowadzanie zmiennych Każda zmienna musi być zadeklarowana, należy określić jej nazwę (identyfikator) oraz typ. Opis_typu lista zmiennych Dla każdej zmiennej rezerwowany jest fragment pamięci o określonym
3-4. 5-7. 8-10. 11-12 15-18. 19-22
1. 2. 3-4. 5-7. 8-10. 11-12 13-14. 15-18. 19-22 23-28. 29-30. Programowanie strukturalne i obiektowe Typ wyliczeniowy, lista wyliczeniowa. Rzutowanie w C++. Wskaźniki i referencje. Działania na wskaźnikach.
1. Podstawy budowania wyra e regularnych (Regex)
Dla wi kszo ci prostych gramatyk mo na w atwy sposób napisa wyra enie regularne które b dzie s u y o do sprawdzania poprawno ci zda z t gramatyk. Celem niniejszego laboratorium b dzie zapoznanie si z wyra
Praca na wielu bazach danych część 2. (Wersja 8.1)
Praca na wielu bazach danych część 2 (Wersja 8.1) 1 Spis treści 1 Analizy baz danych... 3 1.1 Lista analityczna i okno szczegółów podstawowe informacje dla każdej bazy... 3 1.2 Raporty wykonywane jako
PROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów.
PROGRAMOWANIE OBIEKTOWE W C++ cz. 2 Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów. Dziedziczenie Dziedziczenie jest to technika pozwalaj c na definiowanie nowej klasy przy wykorzystaniu
Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory
Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-19 Pętla while Pętla while Pętla
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO Rozdział 1. Wybór i instalacja kompilatora języka Pascal 1.1. Współczesne wersje kompilatorów Pascala 1.2. Jak zainstalować
Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Pętle Pętla jest konstrukcją sterującą stosowaną w celu wielokrotnego wykonania tego samego zestawu instrukcji jednokrotne
Microsoft IT Academy kurs programowania
Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego
Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.
Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia
Struktura programu W programach napisanych w C++ litery wielkie i małe są rozróżniane i często po nauce Pascala są przyczyną błędów. Program napisany w języku C++ składa się zazw yczaj z następujących
Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:
Podstawy Informatyki Metalurgia, I rok Historia Lata 0-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard Koniec lat 80 standard
Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 Kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard
Wstęp do Programowania, laboratorium 02
Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite
Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++
Podstawy Informatyki Metalurgia, I rok Wykład 6 Krótki kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard
Informatyka, I stopień. Programowanie (PRO300.1)
Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Informatyka, I stopień Sylabus modułu: Programowanie (PRO0.1) Nazwa wariantu modułu (opcjonalnie): 1. Informacje ogólne koordynator modułu
Laboratorium Podstawy Przetwarzania Rozproszonego SPRAWOZDANIE z zadania SERWIS KOMPUTEROWY
Laboratorium Podstawy Przetwarzania Rozproszonego SPRAWOZDANIE z zadania SERWIS KOMPUTEROWY Nazwisko Imię album termin zajęć Marek Lewandowski 59817 Maciej Mietliński 59832 poniedziałek 18:30 tydzień nieparzysty
Język C - podstawowe informacje
Język C - podstawowe informacje Michał Rad AGH Laboratorium Maszyn Elektrycznych 2014-12-05 Outline Program w języku C Funkcje Składnia Instrukcje sterujace Na koniec... Po kolei napisać program (zwykły
Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop
Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop. 2010 Spis treści Wstęp 11 Część I PASCAL - wprowadzenie do programowania strukturalnego
Tablice, funkcje - wprowadzenie
Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład
Matematyka z plusemdla szkoły ponadgimnazjalnej WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE TRZECIEJ LICEUM. KATEGORIA B Uczeń rozumie:
WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE TRZECIEJ LICEUM POZIOMY WYMAGAŃ EDUKACYJNYCH: K - konieczny ocena dopuszczająca P - podstawowy ocena dostateczna (dst.) R - rozszerzający ocena dobra (db.) D
'()(*+,-./01(23/*4*567/8/23/*98:)2(!."/+)012+3$%-4#"4"$5012#-4#"4-6017%*,4.!"#$!"#%&"!!!"#$%&"#'()%*+,-+
'()(*+,-./01(23/*4*567/8/23/*98:)2(!."/+)012+3$%-4#"4"$5012#-4#"4-6017%*,4.!"#$!"#%&"!!!"#$%&"#'()%*+,-+ Ucze interpretuje i tworzy teksty o charakterze matematycznym, u ywa j zyka matematycznego do opisu
OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
Laboratorium 1: Podstawy języka c. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski
Laboratorium 1: Podstawy języka c dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 12 października 2017 1. Wprowadzenie Instrukcja zawiera informacje o podstawowych konstrukcjach w języku c. Część pierwsza
Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.
Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach. 1 PROJEKTY KOSZTOWE 2 PROJEKTY PRZYCHODOWE 3 PODZIAŁ PROJEKTÓW ZE WZGLĘDU
Podstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
1. Rozwiązać układ równań { x 2 = 2y 1
Dzień Dziecka z Matematyką Tomasz Szymczyk Piotrków Trybunalski, 4 czerwca 013 r. Układy równań szkice rozwiązań 1. Rozwiązać układ równań { x = y 1 y = x 1. Wyznaczając z pierwszego równania zmienną y,
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Biblioteka standardowa - operacje wejścia/wyjścia
Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline
wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,
, Programowanie, uzupełnienie notatek: dr Jerzy Białkowski , 1 2 3 4 , Wczytywanie liczb , Wczytywanie liczb 1 #include 2 #include < s t d l i b. h> 3 4 int main ( ) { 5 int rozmiar, numer
Tabele możemy tworzyć wykorzystując wykorzystując następujące środowiska:
30. Tworzenie tabel Tabele możemy tworzyć wykorzystując wykorzystując następujące środowiska: \begin{array}[pozycja]{opis kolumny} rzędy \end{array} \begin{tabular}}[pozycja]{opis kolumny} rzędy \end{tabular}
Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM
Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM PROGRAM INWENTARYZACJI Poznań 2011 Spis treści 1. WSTĘP...4 2. SPIS INWENTARZA (EWIDENCJA)...5 3. STAŁE UBYTKI...7 4. INTERPRETACJA ZAŁĄCZNIKÓW
Pętle w PERLU postać ogólna
Pętle w PERLU postać ogólna ETYK: while(wyrażenie) BLOK; ETYK: while(wyrażenie) BLOK continue BLOK; ETYK: for(wyr1;wyr2;wyr3) BLOK; ETYK: for(wyr1;wyr2;wyr3) BLOK continue BLOK; ETYK: foreach ZM(LISTA)