Języki i paradygmaty programowania 1 studia niestacjonarne 2018/19
|
|
- Ludwika Sobolewska
- 5 lat temu
- Przeglądów:
Transkrypt
1 Języki i paradygmaty programowania 1 studia niestacjonarne 2018/19 Lab 4. Program zapisany w kilku plikach. Pliki nagłówkowe (*h.). Słowa kluczowe static, const. Klasy pamięci (auto), static, extern. Tablice liczbowe. Operacje macierzowo-wektorowe, memcpy, memmove, memset. Wyrażenie warunkowe. Operacje na tablicach o dwóch indeksach. Dynamiczna alokacja pamięci dla tablic wielowymiarowych. 1. Projekty składają się zazwyczaj z wielu, różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem. Bezpośredni dostęp do danych jest możliwy wyłącznie z tego pliku, w którym dane te są zdefiniowane. Dostęp do danych z innych plików nie jest wspierany w języku C. Aby tworzone programy były bezpieczne należy: a. podstawowe dane w pliku definiować, jako zmienne globalne z modyfikatorem static, który nie pozwala na udostępnianie tych zmiennych w innych plikach; b. prototypy funkcji interfejsowych umieścić w odpowiednim headerze (bez modyfikatora static); c. prototypy funkcji wewnętrznych umieścić w pliku, jako obiekty globalne z modyfikatorem static; d. dane globalne, które mogą być widoczne w innych plikach: i. udostępniać poprzez funkcje ii. Definiować bez modyfikatora static iii. Samo udostępnienie w innym pliku wprowadzić przy pomocy specyfikatora extern iv. Nie poleca się umieszczania tych danych w pliku nagłówkowym header. e. Dane pomocnicze (indeksy tablic, zmienne tymczasowe itd.) używać jako dane lokalne (auto). 2. Headery, czyli pliki nagłówkowe, są używane do deklaracji typów danych (struktur, unii, typedef), makr, dyrektyw kompilatora (pragma), prototypów funkcji itd., które mają być widoczne w różnych plikach projektu. 3. Każdy header musi zawierać tak zwane straże, które w projektach złożonych chronią przed duplikacją definicji umieszczanych w headerze. 4. Klasy pamięci dzielą się na: a. auto wszystkie zmienne i tablice zdefiniowane są w dowolnym bloku. Rezerwacja miejsca w pamięci następuje w momencie wejścia do bloku programu. Pamięć ta zostaje zwolniona w chwili wyjścia z bloku, w którym dana zmienna została zdefiniowana następuje utrata danych. Widoczność (zasięg deklaracji) zmiennej w klasie auto to tzw. blok programu. Czas życia zmiennej od momentu definicji do momentu wyjścia z bloku. Zmienne domyślnie nie są inicjowane - jeśli użytkownik nie przypisze im wartości, zawierają przypadkowe śmieci. b. static (zmienne i tablice zdefiniowane lokalnie wewnątrz bloku programu). Rezerwacja pamięci następuje na początku działania programu. Obszar widoczności zmiennych klasy static od miejsca definicji w bloku, w którym zostały zdefiniowane, do końca bloku. Czas życia zmiennej czas trwania całego programu. Oznacza to, że wartości zmiennych tej klasy pozostają chronione nawet po wyjściu z bloku i są aktualne przy kolejnym wejściu w blok. Zmienne domyślnie inicjalizowane są wartością: zero. Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 1
2 void fun() int a = 0; a++; pierwsze wejście: a = 0 przed wyjściem: a = 1 drugie wejście: a = 0 przed wyjściem: a = 1 void fun() static int a; a++; pierwsze wejście: a = 0 wyjście: a = 1 drugie wejście: a = 1 wyjście: a = 2 c. static (definicja globalna w pliku poza blokami). Rezerwacja pamięci dokonywana jest na początku działania programu. Obszar widoczności zmiennych od miejsca definicji do końca pliku. Czas życia zmiennej czas trwania całego programu. Zmienne domyślnie inicjalizowane są wartością: zero. Są dostępne tylko w podanym pliku. d. Zmienne zewnętrzne (globalne) (bez specyfikatora static). Rezerwacja pamięci dokonywana jest na początku działania programu. Obszar widoczności zmiennych globalnych od miejsca definicji do końca pliku. Czas życia zmiennej czas trwania całego programu. Zmienne domyślnie inicjalizowane są wartością: zero. Mogą być udostępnianie w innych plikach, jeśli zostaną w nich zadeklarowane, tzn. deklaracja typu zostanie poprzedzona słowem kluczowym extern. e. Klasa pamięci register oznacza, że dane zostaną umieszczone w rejestrze procesora, kiedy będzie to możliwe. f. Specyfikator static używany przy deklaracji funkcji, ogranicza widoczność tej funkcji obszarem pliku. Nie wolno umieszczać deklaracji funkcji statycznych w plikach nagłówkowych. 5. Do czego służą słowa kluczowe static i const? Czym się różnią? 6. Utwórz nowy projekt składający się z dwóch poniższych plików: plik_1.cpp, plik_2.cpp. Na podstawie informacji zawartych w pkt. 4 określ typ, klasę pamięci, obszar działania każdego występującego w programie identyfikatora. Przeanalizuj odwołania do różnych funkcji i znajdź te fragmenty programu, które na takie odwołania pozwalają. Sprawdź jakie teksty pojawią się na monitorze podczas wykonania programu. //*************************PLIK_1***************************** #include <stdio.h> double fun1(); static int fun2(); extern int fun3(); static int c = 5; double a, b = 10; char *xx[] = "mama","tato","stryjek",(char *)0; double aa[] = 1,2,3,4,5,6 ; int main() double x, y = 5; int i, j, k; static double aa[] = 11,12,13,14,15,16 ; printf("%lf %lf \n", aa[0], aa[1]); j = fun2(); k = fun3(); printf("j=%d, k= %d\n", j, k); double fun1(int x, int y) Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 2
3 static char *xx[] = "pies","kot","mysz",(char *)0 ; int i = 0; i++; char *xxxx[] = "zima","wiosna","lato",(char *)0 ; static int fun2() static int k = 0; puts("ppp fun2"); k++; return(k); //*************************PLIK_2***************************** #include <stdio.h> extern double fun1(); static double fun2(); int fun3(); static char *c[] = "slon","lew","pantera",(char *)0 ; extern char *xx[]; static double fun2() static char *zz[] = "krzeslo","szafa","tapczan",(char *)0 ; puts("qqq fun2"); return ((double) 2.0); int fun3() double ff; puts("qqq fun3"); ff = fun2(); return (5); 7. Wybierz jeden spośród Twoich programów (np. projekt nr 1 lub nr2) i podziel go na kilka plików, w taki sposób aby nie dzielić funkcjonalności, które tego nie wymagają. 8. Wektory i macierze: a. Przykład 1. Przechowywanie macierzy (tablicy jednowymiarowej) wiersz po wierszu. i numer wiersza, j numer kolumny, kolejność indeksowania: for (j = 0; j < n; j++) b. Przykład 2. Przechowywanie macierzy (tablicy jednowymiarowej) kolumna po kolumnie. i numer wiersza, j numer kolumny, kolejność indeksowania: for (j = 0; j < n; j++) Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 3
4 c. Przykład 3. Mnożenie macierzy przez macierz c ij=σk a ik b kj metodą: i. klasyczną, czyli wiersz po wierszu : for (i = 0; i < M; i++) for (j = 0; j < N; j++) for (k = 0; k < K; k++) C ij = C ij + A ik * B kj ii. Element macierzy C w pętli wewnętrznej nie zależy od indeksu k. Pobieranie elementów macierzy A następuje ciągle, bez skoków, natomiast elementy macierzy B pobierane są ze skokami. W związku z tym metoda ta nie jest skuteczna. Przyśpieszoną: for (i = 0; i < M; i++) for (k = 0; k < K; k++) for (j = 0; j < N; j++) C ij = C ij + A ik * B kj Elementy macierzy A w pętli wewnętrznej nie zależą od indeksu j. Pobieranie elementów macierzy C następuje ciągle, bez skoków, natomiast elementy macierzy B pobierane są ze skokami. W związku z tym metoda ta jest lepsza od poprzedniej. 9. Funkcje memcpy, memmove, memset znajdują się w bibliotece #include <memory.h>. void *memcpy(void *dest, const void *src, size_t count); funkcja kopiuje count bajtów z src do dest. Jako wynik zwraca wskaźnik do dest. Jeśli obszar pamięci src i dest pokrywa się działanie funkcji jest nieprzewidywalne. void *memmove(void *dest, const void *src, size_t count); funkcja kopiuje count bajtów z src do dest. Jeśli jakiś obszar pamięci src i dest pokrywa się funkcji gwarantuje, że bajty źródłowe w pokrywającym się regionie zostaną skopiowane zanim zostaną przepisane. void *memset(void *dest, int c, size_t count); Przypisuje symbol c pierwszym count symbolom tablicy dest. Zwraca wskaźnik do dest. 10. Utwórz nowy projekt, a następnie skopiuj i przeanalizuj poniższe przykłady użycia funkcji memcpy, memmove, memset. a) Przykład 1. #include <memory.h> #include <string.h> #include <stdio.h> char str1[7] = "aabbcc"; int main(void) printf("the string: %s\n", str1); //Pokrywający się region! Kopiowanie może nie być poprawne memcpy(str1 + 2, str1, 4); printf("new string: %s\n", str1); strcpy_s(str1, sizeof(str1), "aabbcc"); // reset string Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 4
5 printf("the string: %s\n", str1); //Pokrywający się region! Kopiowanie poprawne memmove(str1 + 2, str1, 4); printf("new string: %s\n", str1); b) Przykład 2. #include <memory.h> #include <stdio.h> int main(void) char buffer[] = "This is a test of the memset function"; printf("before: %s\n", buffer); memset(buffer, '*', 4); printf("after: %s\n", buffer); Wynik działania: Before: This is a test of the memset function After : **** is a test of the memset function c) Przykład 3. #include <memory.h> #include <stdio.h> int main(void) char str[256]; double aa[200]; double cc[10] = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ; double dd[5] = 20, 30, 40, 50, 60 ; memset((void *)str, 0, 256 * sizeof(char)); //OK memset((void *)str, ' ', 256 * sizeof(char)); //!OK pisanie po pamięci memset((void *)str, ' ', 255 * sizeof(char)); //OK memset((void *)aa, 0, 200 * sizeof(double)); //OK memcpy((void *)&cc[3], (const void *)&dd[2], 2 * sizeof(double)); Wynik działania: cc: Przykład. Napisz program, który dla danych dwóch wektorów, policzy: i. Sumę tych wektorów: = + ; ii. Iloczyn skalarny wektorów: = ; iii. Maksymalną współrzędną wektorów, //==============================PLIK_1=================================== #pragma warning (disable:4996) #include<stdio.h> #include<stdlib.h> #define LL 200 extern void error(int, char *); void argumenty(int, char **); int main(int argc, char *argv[]) double x[ll], y[ll], z[ll], s, mx, my; FILE *fw, *fd; int n, k; argumenty(argc, argv); if (!(fd = fopen(argv[1], "r"))) error(2, "dane"); if (!(fw = fopen(argv[2], "w"))) error(2, "wyniki"); fscanf(fd, "%d", &n); Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 5
6 for (k = 0; k < n; k++) fscanf(fd, "%lf", &x[k]); for (k = 0; k < n; k++) fscanf(fd, "%lf", &y[k]); s = 0; mx = x[0]; my = y[0]; for (k = 0; k < n; k++) z[k] = x[k] + y[k]; mx = x[k] > mx? x[k] : mx; my = y[k] > my? y[k] : my; s += x[k] * y[k]; for (k = 0; k < n; k++) fprintf(fw, "%lf ", z[k]); if (!((k + 1) % 5)) fprintf(fw, "\n"); fprintf(fw, "\nilocz.skal=%lf mx=%lf my=%lf\n", s, mx, my); void argumenty(int argc, char *argv[]) int len; char *usage; if (argc!= 3) len = strlen(argv[0]) + 19; if (!(usage = (char*)malloc((unsigned)len * sizeof(char)))) error(3, "tablica usage"); strcpy(usage, argv[0]); strcat(usage, " file_in file_out"); error(4, usage); /**************** plik util_1.c ******************************/ #include<stdio.h> #define MAX_ERR 5 static char *p[] = "", " zle dane", " otwarcie pliku", " brak pamieci", " Usage : ", " nieznany ", ; void error(int nr, char *str) int k; k = nr >= MAX_ERR? MAX_ERR : nr; fprintf(stderr, "Blad(%d) - %s %s\n", nr, p[k], str); system("pause"); exit(nr); 12. Wyrażenie warunkowe przyjmuje postać: wyrażenie1? wyrażenie2 : wyrażenie3 wartością wyrażenia warunkowego jest: Wartość wyrażenia2, o ile wyrażenie1 jest różne od zera, Wartość wyrażenia3, o ile wyrażenie1 jest równe zero. Operator pytajnik, dwukropek (?:) jest prawostronnie łączny i ma priorytet wyższy jedynie od operatorów przypisania i operatora przecinkowego. Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 6
7 13. Napisz procedurę, która korzystając z funkcji: srand, time, rand oraz operatora dzielenia modulo uzupełni przekazaną do niej tablicę typu int o losowe liczby z zakresu od 0 do 10. Tablica niech będzie przekazywana przez referencję. 14. Do poprzedniego programu dopisz procedurę, która będzie wyświetlać zawartość tablicy oraz informację ile razy funkcja była wywoływana (skorzystaj ze zmiennej statycznej). Tablica niech będzie przekazywana przez wskaźnik. 15. Operatorem sizeof sprawdź rozmiar tablicy w trzech miejscach (po jej deklaracji i w dwóch procedurach z powyższych zadań). Wytłumacz otrzymane wyniki. 16. Zadeklaruj i uzupełnij liczbami tablicę 5 elementową. Wypisz wartość 3 elementu BEZ KORZYSTANIA Z INDEKSÓW (złe rozwiązanie: printf("%d\n", tablica[2]);). 17. Zmodyfikuj program z przykładu w pkt.11 tak aby: Zamiast tablic zdefiniować zmienne typu double *; Zarezerwować dokładnie n miejsc na zmienne typu double (alokacja pamięci), np.: x = (double*)malloc((unsigned)n * sizeof(double)) 18. Algorytm z pkt.17 podziel na kilka funkcji: a) Alokacja pamięci dla tablicy: double *DajWekt(int n) b) Czytanie elementów tablicy z pliku: void CzytWekt(FILE *fd, double *we, int n) c) Pisanie elementów tablicy do pliku: void PiszWekt(FILE *fw, double *we, int n) d) Obliczanie sumy dwóch wektorów: void DodWekt(double *w1, double *w2, double *w3, int n) e) Obliczanie iloczynu skalarnego: double IloczynSkal(double *w1,double *w2,int n) f) Obliczanie maksymalnej współrzędnej wektora: double MaxElem(double *w, int n) Funkcje realizujące zadania a), b), c) zapisz w pliku util_2.cpp. Funkcje realizujące zadania d), e), f) zapisz w pliku util_3.cpp. 19. Dynamiczna alokacja pamięci dla tablic wielowymiarowych - Przykładowa tablica 10x5 o elementach typu double. Wersja 1. double **tab; int n = 10, m = 5; tab = (double **)malloc(sizeof(double *) * n); if (!tab) //błąd alokacji for (int i = 0; i < n; i++) tab[i] = (double *)malloc(sizeof(double) * m); if (!tab[i]) //błąd alokacji if (tab) for (int i = 0; i < n; i++) if (tab[i]) free(tab[i]); free(tab); tab = NULL; Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 7
8 Wersja 2. double **tab_a, *tab_b; int n = 10, m = 5; tab_b = (double *)malloc(sizeof(double) * n * m ); if (!tab_b) //błąd alokacji tab_a = (double **)malloc(sizeof(double *) * n); if (!tab_a) //błąd alokacji for (int i = 0; i < n; i++) tab_a[i] = &tab_b[ m * i ]; if (tab_b) free(tab_b); // free(tab_a[0]); tab_b = NULL; if (tab_a) free(tab_a); tab_a = NULL; 20. Przykład. Napisz program, który dla danych dwóch macierzy: =, = 0,1,2,, 1;! = 0,1,2,, " 1, #$ = %, = 0,1,2,, 1;! = 0,1,2,, " 1 oraz wektora = & ', = 0,1,2,, " 1, policzy: i. Sumę macierzy: ( = + #, ) *+ * = + % ; ii. Iloczyn macierzy przez wektor : = ; = -,,, ; = 0,1,2,, 1; Do kontroli poprawności obliczeń wykorzystaj funkcję error z pliku util_1.cpp (patrz lab. 8). Dane pobrać z pliku, wyniki zapisać do pliku, nazwy plików przekazać przez argumenty wywołania programu. //==============================PLIK_1=================================== #include "pch.h" #include<stdio.h> #include<stdlib.h> #include<string.h> #pragma warning(disable:4996) #define LL 20 FILE *fw, *fd; void argumenty(int, char **); extern void error(int, char *); int main(int argc, char *argv[]) double a[ll][ll], b[ll][ll], c[ll][ll], x[ll], y[ll], r; int i, j, k, n, m; argumenty(argc, argv); if (!(fd = fopen(argv[1], "r"))) error(2, "dane"); Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 8
9 if (!(fw = fopen(argv[2], "w"))) error(2, "wyniki"); fscanf(fd, "%d %d", &n, &m); for (j = 0; j < m; j++) fscanf(fd, "%lf", &a[i][j]); for (i = 0; i < m; i++) fscanf(fd, "%lf", &x[i]); for (j = 0; j < m; j++) fscanf(fd, "%lf", &b[i][j]); for (j = 0; j < m; j++) c[i][j] = a[i][j] + b[i][j]; r = 0; for (k = 0; k < m; k++) r += a[i][k] * x[k]; y[i] = r; for (j = 0; j < m; j++) fprintf(fw, "%lf ", c[i][j]); fprintf(fw, "\n"); fprintf(fw, "%lf ", y[i]); if (!((i + 1) % 5)) fprintf(fw, "\n"); system("pause"); return 0; void argumenty(int argc, char *argv[]) int len; char *usage; if (argc!= 3) len = strlen(argv[0]) + 19; if (!(usage = (char*)malloc((unsigned)len * sizeof(char)))) error(3, "tablica usage"); strcpy(usage, argv[0]); strcat(usage, " file_in file_out"); error(4, usage); /**************** plik util_1.cpp ******************************/ #include<stdio.h> #define MAX_ERR 5 static char *p[] = "", " zle dane", " otwarcie pliku", " brak pamieci", " Usage : ", " nieznany ", Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 9
10 ; void error(int nr, char *str) int k; k = nr >= MAX_ERR? MAX_ERR : nr; fprintf(stderr, "Blad(%d) - %s %s\n", nr, p[k], str); system("pause"); exit(nr); 21. Zmodyfikuj program z powyższego przykładu tak aby: Zamiast tablic jednowymiarowych zdefiniować zmienne typu double *, zamiast tablic dwuwymiarowych zdefiniować zmienne typu double **; Zarezerwować dokładnie m miejsc na tablice jednowymiarowe typu double (alokacja pamięci), np.: x = (double*)malloc((unsigned)m * sizeof(double)); Zarezerwować dokładnie n*m miejsc na tablice dwuwymiarowe typu double (alokacja pamięci patrz pkt.1), np.: a = (double**)malloc((unsigned)n * sizeof(double*)); a[i] = (double*)malloc((unsigned)m * sizeof(double)); 22. Algorytm z pkt.20 podziel na kilka funkcji: g) Alokacja pamięci (dwie funkcje - wer.1 i wer.2 patrz pkt.19) : double **DajMac_1(int n, int m) double **DajMac_2(int n, int m) h) Zwolnienie pamięci (dwie funkcje): void ZwrocMac_1(double **ma, int n, int m) void ZwrocMac_2(double **ma, int n, int m) i) Czytanie elementów tablicy o dwóch indeksach z pliku: void CzytMac(FILE *fd, double **ma, int n, int m) int i, j; char *err; for (j = 0; j < m; j++) if (fscanf(fd, "%lf", &ma[i][j])!= 1) printf("blad - element nr %d %d\n", i, j); j) Pisanie elementów tablicy o dwóch indeksach do pliku: void PiszMac(FILE *fw, double **ma, int n, int m) k) Dodawanie macierzy: void DodMac(double **ma1, double **ma2, double **ma3, int n, int m) l) Mnożenie macierzy przez wektor: void Mac_x_Wekt(double **ma, double *we, double *wy, int n, int m) m) Napisz dodatkowo funkcję, która dla danych macierzy:.$ =, = 0,1,2,, 1;! = 0,1,2,, " 1, /$ =, = 0,1,2,, " 1;! = 0,1,2,, 0 1 policzy macierz 1 =./ $$$$ czyli - = 2,,, = 0,1,2,, 1,! = 0,1,2, 0 1, void Mac_x_Mac(double **x, double **y, double **z, int n, int m, int p) Funkcje realizujące zadania a), b), c), d) zapisz w pliku util_4.cpp. Funkcje realizujące zadania e), f), g) zapisz w pliku util_5.cpp. Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 10
11 23. Zrealizuj zadania z powyższego przykładu (pkt.20 i następne) wykorzystując utworzone wcześniej funkcje zawarte w plikach util_2.cpp, util_3.cpp, util_4.cpp, util_5.cpp. Fragment programu: FILE *fw, *fd; extern void error(int, char*),piszwekt(file *, double *, int), CzytWekt(FILE *, double *, int),czytmac(file *, double **, int, int), PiszMac(FILE *, double **, int, int); extern double *DajWekt(int), **DajMac_1(int, int); extern void DodMac(double **, double **, double **, int, int), Mac_x_Wekt(double **, double *, double *, int, int); void argumenty(int argc, char *argv[]); int main(int argc, char *argv[]) double *x, *y; double **a, **b, **c; int n, m; argumenty(argc, argv); if (!(fd = fopen(argv[1], "r"))) error(2, "dane"); if (!(fw = fopen(argv[2], "w"))) error(2, "wyniki"); fscanf(fd, "%d %d", &n, &m); x = DajWekt(m); y = DajWekt(m); a = DajMac_1(n, m); b = DajMac_1(n, m); c = DajMac_1(n, m); CzytMac(fd, a, n, m); CzytMac(fd, b, n, m); CzytWekt(fd, x, m); DodMac(a, b, c, n, m); Mac_x_Wekt(a, x, y, n, m); printf("macierz\n"); PiszMac(stdout, c, n, m); fprintf(fw, "Macierz\n"); PiszMac(fw, c, n, m); printf("wektor\n"); PiszWekt(stdout, y, n); fprintf(fw, "Wektor\n"); PiszWekt(fw, y, n); Pliki util_2.cpp i util_3.cpp dostępne pod adresem: Dana jest macierz kwadratowa B[n][n]. Znaleźć sumę elementów leżących poniżej głównej przekątnej i jednocześnie należących do zadanego przedziału [a,b]. 25. Dana jest macierz kwadratowa B[n][n]. Znaleźć sumę tych elementów leżących na obu przekątnych macierzy, które jednocześnie spełniają warunek (na głównej przekątnej j=i, na drugiej j=n-i): sin6#787!89 ; 0 <+ =+="=>ó@ Ałó@=! 0C=Dą>=! 0,5 <+ =+="=>ó@ <CGA=! 0C=Dą>=! 26. Przeanalizuj w trybie pracy krokowej przykłady do wykładu: Wszystkie przykłady dostępne pod adresem: *Treści oznaczone kursywą pochodzą z różnych źródeł internetowych. Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 11
Lab 8. Tablice liczbowe cd,. Operacje macierzowo-wektorowe, memcpy, memmove, memset. Wyrażenie warunkowe.
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 8. Tablice liczbowe cd,. Operacje macierzowo-wektorowe, memcpy, memmove, memset. Wyrażenie warunkowe. 1. Wektory i macierze: a. Przykład
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19. Lab 9. Tablice liczbowe cd,. Operacje na tablicach o dwóch indeksach.
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 9. Tablice liczbowe cd,. Operacje na tablicach o dwóch indeksach. 1. Dynamiczna alokacja pamięci dla tablic wielowymiarowych - Przykładowa
Struktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem.
Struktura programu Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem. W ostatnich latach najbardziej używanym stylem oprogramowania
4. Tablica dwuwymiarowa to jednowymiarowa tablica wskaźników do jednowymiarowych tablic danego typu.
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 6. Tablice znakowe o dwóch indeksach, przekazywanie tablic do funkcji cd., dynamiczna alokacja pamięci, funkcje przetwarzające ciągi
Lab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor
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ęść
Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur. 1. Identyfikator funkcji,
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
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 4. Podstawowe biblioteki. Pętle. Operatory inkrementacji, dekrementacji, przypisania. Instrukcje goto, continue, break. Operacje na plikach.
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ę
Wskaźniki. Informatyka
Materiały Wskaźniki Informatyka Wskaźnik z punktu widzenia programisty jest grupą komórek pamięci (rozmiar wskaźnika zależy od architektury procesora, najczęściej są to dwa lub cztery bajty ), które mogą
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
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
// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.
Wykład 10 Przykłady różnych funkcji (cd) - przetwarzanie tablicy tablic (tablicy "dwuwymiarowej") - sortowanie przez "selekcję" Dynamiczna alokacja pamięci 1 // Liczy srednie w wierszach i kolumnach tablicy
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,
Stałe i zmienne znakowe. Stała znakowa: znak
Stałe i zmienne znakowe. Stała znakowa: znak Na przykład: a, 1, 0 c Każdy znak jest reprezentowany w pamięci przez swój kod. Kody alfanumerycznych znaków ASCII to liczby z przedziału [32, 127]. Liczby
Argumenty wywołania programu, operacje na plikach
Temat zajęć: Argumenty wywołania programu, operacje na plikach Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (Zmienne statyczne) W języku C można decydować o sposobie przechowywania zmiennych. Decydują
Język C, tablice i funkcje (laboratorium)
Język C, tablice i funkcje (laboratorium) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.
Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119
Tablice Tablica to struktura danych, która może przechowywać wiele wartości tego samego typu. Na przykład tablica może zawierać: 10 wartości typu int opisujących liczbę studentów przyjętych na kierunek
Uzupełnienie dot. przekazywania argumentów
Uzupełnienie dot. przekazywania argumentów #include #include struct nowa { int f; char line[20000]; int k; } reprezentant; int main() { void funkcja7( struct nowa x); reprezentant.k=17;
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!
Funkcja wysoce niezależny blok definicji i instrukcji programu (podprogram) Każdy program napisany w języku C/C++ zawiera przynajmniej jedną funkcję o predefiniowanej nazwie: main( ). Najczęściej wykorzystuje
IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi
IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji
iii. b. Deklaracja zmiennej znakowej poprzez podanie znaku
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 5. Stałe i zmienne znakowe. Tablice. Wskaźniki do tablic. Operacje na wskaźnikach. Instrukcja switch, case. Wyrażenie przecinkowe. Funkcje
> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki
> C++ dynamiczna alokacja/rezerwacja/przydział pamięci Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 1429536600 > Dzisiejsze zajęcia sponsorują słówka: new oraz delete
wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis
i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje
Podział programu na moduły
Materiały Podział programu na moduły Informatyka Szczegółowe informacje dotyczące wymagań odnośnie podziału na moduły: http://www.cs.put.poznan.pl/wcomplak/bfiles/c_w_5.pdf Podział programu na moduły pozwala
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.
typ y y p y z łoż o on o e n - tab a lice c e w iel e owym m ar a o r we, e stru r kt k ury
typy złożone- tablice wielowymiarowe, struktury Wykład 6 Deklarowanie wskaźników nazwa_typu * nazwa_wskaznika; WSKAŹNIKI: PRZYPOMNIENIE Przypisywanie wskaźnikom wartości double * pn = &zmienna_typu_double;
Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady
Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to
int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania
Rok akademicki 2013/2014, Pracownia nr 10 2/20 Informatyka 1 Tablica elementów ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu Politechnika Białostocka - Wydział Elektryczny Elektrotechnika,
Język C++ zajęcia nr 2
Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator
TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;
Ogólna postać definicji tablicy: TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ; np. int tablica [ 10 ]; // 10-cio elementowa tablica liczb całkowitych char tekst
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,
Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40
Programowanie w C++ Wykład 5 Katarzyna Grzelak 26 marca 2018 9 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Pojęcia z poprzedniego wykładu Podział programu na funkcje podział na niezależne
//zmienne globalne int *pa, *pb; //wskaźniki globalne void main(void) { clrscr(); printf("\n podaj wartosc liczby a\n"); scanf("%d",&a); pa=&a;
Ćwiczenie 4 4.1. Wskaźnik na zmienną Wskaźniki, tablice Deklaracja int *pa; oznacza, że pa jest wskaźnikiem na obiekt typu int. Zmienna pa zawiera adres pamięci, zarezerwowanej na zmienną typu int. Chcąc
Stałe, tablice dynamiczne i wielowymiarowe
Stałe, tablice dynamiczne i wielowymiarowe tylko do odczytu STAŁE - CONST tablice: const int dni_miesiaca[12]=31,28,31,30,31,30,31,31,30,31,30,31; const słowo kluczowe const sprawia, że wartość zmiennej
Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17
Wskaźniki Przemysław Gawroński D-10, p. 234 Wykład 2 8 marca 2019 (Wykład 2) Wskaźniki 8 marca 2019 1 / 17 Outline 1 Wskaźniki 2 Tablice a wskaźniki 3 Dynamiczna alokacja pamięci (Wykład 2) Wskaźniki 8
Wstęp do wskaźników w języku ANSI C
Wstęp do wskaźników w języku ANSI C / Materiał dydaktyczny pomocniczy do przedmiotu Informatyka sem.iii kier. Elektrotechnika/ 1. Wprowadzenie W języku ANSI C dla każdego typu X (wbudowanego, pochodnego,
typ_zwracanej_wartości nazwa_funkcji(lista deklaracji argumentów) { ciało(treść) funkcji return Val; //zwracana wartość }
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 2. Funkcje, argumenty funkcji, wskaźniki, adresy. Pętle. Operatory inkrementacji, dekrementacji, przypisania. Instrukcje goto, continue,
Język C zajęcia nr 11. Funkcje
Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji
// Potrzebne do memset oraz memcpy, czyli kopiowania bloków
ZAWARTOŚCI 3 PLIKOW W WORDZIE: MAIN.CPP: #include #include #include pamięci // Potrzebne do memset oraz memcpy, czyli kopiowania bloków #include "Rysowanie_BMP.h" using
Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji
Podstawy informatyki Informatyka stosowana - studia niestacjonarne - Zajęcia nr 5 Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w
Wymiar musi być wyrażeniem stałym typu całkowitego, tzn. takim, które może obliczyć kompilator. Przykłady:
5 Tablice Tablica jest zestawem obiektów (zmiennych) tego samego typu, do których można się odwołać za pomocą wspólnej nazwy. Obiekty składowe tablicy noszą nazwę elementów tablicy. Dostęp do nich jest
utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,
Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz
Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje
Podstawy informatyki Informatyka stosowana - studia niestacjonarne - Zajęcia nr 4 Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w
1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami
1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.
typ_zwracanej_wartości nazwa_funkcji(lista deklaracji argumentów) { ciało(treść) funkcji return Val; //zwracana wartość }
Języki i paradygmaty programowania studia stacjonarne 208/9 Lab 3. Funkcje, argumenty funkcji, wskaźniki, adresy.. Podstawowe pojęcia: Funkcja w C (czasami nazywana podprogramem, rzadziej procedurą) to
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 4 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Tablice Wskaźniki Adresy pamięci Operator adresu
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
Tablice (jedno i wielowymiarowe), łańcuchy znaków
Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie
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
Programowanie obiektowe W3
Programowanie obiektowe W3 Przegląd typów strukturalnych w C++ : tablice statyczne i dynamiczne Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki Typy złożone: tablice
iii. b. Deklaracja zmiennej znakowej poprzez podanie znaku
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 3. Stałe i zmienne znakowe. Tablice. Wskaźniki do tablic. Operacje na wskaźnikach. Instrukcja switch, case. Wyrażenie przecinkowe. Funkcje
Zmienne i struktury dynamiczne
Zmienne i struktury dynamiczne Zmienne dynamiczne są to zmienne, które tworzymy w trakcie działania programu za pomocą operatora new. Usuwa się je operatorem delete. Czas ich występowania w programie jest
Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)
Podstawy programowania (język C) Globalne / Lokalne Wykład 15. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Zmienne globalne / lokalne (1) int A, *Q; // definicja zmiennych globalnych
Wstęp do programowania
wykład 10 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Przesyłanie argumentów - cd Przesyłanie argumentów do funkcji - tablice wielowymiarowe Przekazywanie tablic wielowymiarowych
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk
Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Materiał
część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia
Język ANSI C część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia najbardziej podstawowe operacje na wskaźnikach int x = 1, y = 2, Tab[10]; int *ip; // czy
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane
Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Wskaźniki Krzysztof Banaś Podstawy programowania 1 Adresy zmiennych Język C pozwala na operowanie adresami w pamięci stąd, między innymi, kwalifikowanie C jako języka relatywnie
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
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
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
Podstawy programowania komputerów
Podstawy programowania komputerów Wykład 10: Sterowanie pamięcią w C Pamięć na stosie!każdy program napisany w języku C ma dostęp do dwóch obszarów pamięci - stosu i sterty, w których może być przechowywana
DYNAMICZNE PRZYDZIELANIE PAMIECI
DYNAMICZNE PRZYDZIELANIE PAMIECI Pamięć komputera, dostępna dla programu, dzieli się na cztery obszary: kod programu, dane statyczne ( np. stałe i zmienne globalne programu), dane automatyczne zmienne
ZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char
Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od
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
IX. Wskaźniki.(3 godz.)
Opracowała: dr inż. Anna Dubowicka Uczelniane Centrum Komputerowe PK IX. Wskaźniki.(3 godz.) Wskaźnik jest zmienną, która zawiera adres innej. 1. Definiowanie wskaźników. typ * nazwa ; gdzie: znak * informuje
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 5 1 SPECYFIKATOR const Specyfikator (przydomek) const: Umieszczenie przed nazwą zmiennej specyfikatora const w jej definicji informuje kompilator,
ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje
Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych
Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:
Ćwiczenie nr 6 Temat: Operacje na łańcuchach znaków. Zagadnienia: Zasady pracy z łańcuchami tekstowymi (tablice wartości typu char). funkcje standardowe operacji na łańcuchach, funkcje I/O dla operacji
int f(); //f - funkcja zwracająca wartość typu int int (*f)(); //f - wskaźnik do funkcji zwracającej wartość typu int
Języki i paradygmaty programowania 1 studia niestacjonarne 2018/19 Lab 5. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur. Struktury danych: kolejka
Tablice w argumentach funkcji. Tablicy nie są przekazywane po wartości Tablicy są przekazywane przez referencje lub po wskaźniku
Tablice w argumentach funkcji Tablicy nie są przekazywane po wartości Tablicy są przekazywane przez referencje lub po wskaźniku Przykład: char str[] = abcdef ;... fun(str); // argument faktyczny to id
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
Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1
Tablice i struktury czyli złożone typy danych. Programowanie Proceduralne 1 Tablica przechowuje elementy tego samego typu struktura jednorodna, homogeniczna Elementy identyfikowane liczbami (indeksem).
Struktury. Przykład W8_1
Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla
Wskaźniki. Programowanie Proceduralne 1
Wskaźniki Programowanie Proceduralne 1 Adresy zmiennych Sterta 1 #include 2 3 int a = 2 ; 4 5 int main ( ) 6 { 7 int b = 3 ; 8 9 printf ( " adres zmiennej a %p\n", &a ) ; 10 printf ( " adres
Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411b Plan wykładu Operacje wejścia-wyjścia Dostęp do plików Struktury
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
tablica: dane_liczbowe
TABLICE W JĘZYKU C/C++ tablica: dane_liczbowe float dane_liczbowe[5]; dane_liczbowe[0]=12.5; dane_liczbowe[1]=-0.2; dane_liczbowe[2]= 8.0;... 12.5-0.2 8.0...... 0 1 2 3 4 indeksy/numery elementów Tablica
Język C, tablice i funkcje (laboratorium, EE1-DI)
Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.
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
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
Tablicę 2-wymiarową można przedstawić jako pewien zestaw tablic 1-wymiarowych np.:
emat zajęć: ablice wielowymiarowe i struktury w języku C Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (ablice liczbowe wielowymiarowe) ablicę 2-wymiarową można przedstawić jako pewien zestaw tablic
Podstawy programowania w języku C++
Podstawy programowania w języku C++ Część dziewiąta Tablice a zmienne wskaźnikowe Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski
Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej
Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, rok
Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej
Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()
Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011
Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Załóżmy, że uprawiamy jogging i chcemy monitorować swoje postępy. W tym celu napiszemy program, który zlicza, ile czasu
2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych
2. Tablice Tablica to struktura danych przechowująca elementy jednego typu (jednorodna). Dostęp do poszczególnych elementów składowych jest możliwy za pomocą indeksów. Rozróżniamy następujące typy tablic:
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -
Wstęp do programowania
wykład 7 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2016/2017 Losowanie liczb całkowitych Dostępne biblioteki Najprostsze losowanie liczb całkowitych można wykonać za pomocą funkcji
Wskaźniki w C. Anna Gogolińska
Wskaźniki w C Anna Gogolińska Zmienne Zmienną w C można traktować jako obszar w pamięci etykietowany nazwą zmiennej i zawierający jej wartość. Przykład: kod graficznie int a; a a = 3; a 3 Wskaźniki Wskaźnik
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,
LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab
LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem
Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne
1 Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,