iii. b. Deklaracja zmiennej znakowej poprzez podanie znaku

Podobne dokumenty
Stałe i zmienne znakowe. Stała znakowa: znak

iii. b. Deklaracja zmiennej znakowej poprzez podanie znaku

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

4. Tablica dwuwymiarowa to jednowymiarowa tablica wskaźników do jednowymiarowych tablic danego typu.

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 9 - sem.iii. Dr inż. M. Czyżak

ŁAŃCUCHY W JĘZYKU C/C++

Podstawy programowania skrót z wykładów:

Podstawy Programowania

Lab 8. Tablice liczbowe cd,. Operacje macierzowo-wektorowe, memcpy, memmove, memset. Wyrażenie warunkowe.

Podstawy Programowania C++

Tablice, funkcje - wprowadzenie

DANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE

Języki programowania obiektowego Nieobiektowe elementy języka C++

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 7- sem.iii. M. Czyżak

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 11. Elektrotechnika, semestr II rok akademicki 2008/2009

Podstawy programowania w języku C++

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Języki programowania. Przetwarzanie tablic znaków. Część druga. Autorzy Tomasz Xięski Roman Simiński

Podstawy programowania

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Wskaźniki. Informatyka

Tablice deklaracja, reprezentacja wewnętrzna

Tablice (jedno i wielowymiarowe), łańcuchy znaków

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Podstawy programowania 1

Podstawy programowania w języku C++

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

dr inż. Jarosław Forenc

Laboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Lab 9 Podstawy Programowania

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Spis treści JĘZYK C - ŁAŃCUCHY ZNAKÓW. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF22

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17

Wprowadzenie do programowania w języku C

Spis treści JĘZYK C - ŁAŃCUCHY ZNAKÓW. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF10Z

Inicjacja tablicy jednowymiarowej

Programowanie Proceduralne

Zmienne, stałe i operatory

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Biblioteka standardowa - operacje wejścia/wyjścia

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

Podstawy programowania w języku C++

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Wskaźniki w C. Anna Gogolińska

1 Podstawy c++ w pigułce.

Wstęp do wskaźników w języku ANSI C

Powyższe wyrażenie alokuje 200 lub 400 w zależności od rozmiaru int w danym systemie. Wskaźnik wskazuje na adres pierwszego bajtu pamięci.

1 Podstawy c++ w pigułce.

KURS C/C++ WYKŁAD 1. Pierwszy program

#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 ); }

Tablice w argumentach funkcji. Tablicy nie są przekazywane po wartości Tablicy są przekazywane przez referencje lub po wskaźniku

część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Zasady programowania Dokumentacja

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

lekcja 8a Gry komputerowe MasterMind

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Język ludzki kod maszynowy

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

PODSTAW PROGRAMOWANIA WYKŁAD 7 ŁAŃCUCHY

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik

#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 ); }

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Języki i metodyka programowania. Wprowadzenie do języka C

Podstawy programowania w języku C++

PARADYGMATY PROGRAMOWANIA Wykład 3

Podstawy programowania komputerów

Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1

Języki i metody programowania I

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.

Wskaźniki. Programowanie Proceduralne 1

Programowanie strukturalne i obiektowe

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Reprezentacja symboli w komputerze. Znaki alfabetu i łańcuchy znakowe. Programowanie Proceduralne 1

Część 4 życie programu

Wprowadzenie do programowania w języku C

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

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Transkrypt:

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 tekstowe. 1. char jest to typ znakowy, umożliwiający zapis znaków ASCII. Może też być traktowany jako liczba z zakresu 0..255 (Oznacza to, że każdy znak jest reprezentowany w pamięci przez swój kod. Kody znaków alfanumerycznych to liczby z przedziału *32 127+ pozostałe liczby są również kodami znaków, ale mogą być one różnie definiowane nie odpowiadają standardowi ASCII). Znaki zapisujemy w pojedynczych cudzysłowach (czasami nazywanymi apostrofami), by odróżnić je od łańcuchów tekstowych (pisanych w podwójnych cudzysłowach). Np. 'a';'7';'!'; '$'. i. Stała znakowa ma postać: 'znak' ii. Deklaracja zmiennej znakowej poprzez podanie kodu znaku spacji char i = 32; // i znak spacji iii. b. Deklaracja zmiennej znakowej poprzez podanie znaku char i = ' '; // i znak spacji //Zmienne znakowe wyprowadzanie znaków, ++i /* Kody ASCII */ int i = 32; /* int i=' '; jest poprawne */ while (++i < 128) printf("%3d %c ", i, i); if (!((i - 32) % 4)) printf("\n"); printf("\n"); //Zmienne znakowe wyprowadzanie znaków, i++ /* Kody ASCII */ char i = ' '; /* char i=32; jest poprawne */ while (i++ < 127) printf("%3d %c ", i, i); if (!((i - 32) % 4)) printf("\n"); printf("\n"); 2. Typ char to zwykły typ liczbowy i można go używać tak samo jak typu int (zazwyczaj ma jednak mniejszy zakres). Co więcej literały znakowe (np. 'a') są traktowane jak liczby i w języku C są typu int (w języku C++ są typu char). 3. Stała tekstowa dowolny ciąg znaków, zapisany w postaci: to jest stała tekstowa. Jeśli w stałej chcemy umieścić cudzysłów należy wtedy poprzedzić znak znakiem \ tzn. umieścić w tekście sekwencję \. Kompilator umieszcza tekst w odpowiedniej grupie bajtów (1B na symbol). Na końcu stałej tekstowej dopisywany jest znak o kodzie zero, czyli symbol \0. to jest stała tekstowa = 22 znaki łącznie ze spacjami. W pamięci komputera stała ta zajmie 23B razem ze znakiem \0. 4. Tablice znakowe używane są do zapisu ciągu znaków w pamięci komputera. Ciąg znaków (wiersz tekstowy) jest umieszczany w kolejnych bajtach pamięci. Każdy znak tego ciągu to odpowiedni element tablicy znakowej. Definicja tablicy znakowej: char tekst[num]; Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 1

gdzie: tekst to nazwa (identyfikator) tablicy, num maksymalna liczba znaków minus jeden tzw. rozmiar tablicy; musi być zdefiniowany jako stała. Elementy tablicy numerowane są od 0 do n-1 (numery elementów to tzw. indeksy tablicy) tekst[0], tekst[1],, tekst[n-2], tekst[n-1] przy czym tekst[n-1] -> '\0', pamięć zarezerwowana na num elementów: num >= n. Odwołanie do elementu tablicy o indeksie i następuje poprzez użycie operatora [ ] np.: tekst[i], a w każdym elemencie można zapisać tylko jeden znak np. : tekst[1]= 'a'. //Liczba powtórzeń litery a (1)-tablice tekstowe /*Ile razy litera a powtarza sie w tekscie*/ char d[max_line], b; int k, l; k = 0; l = 0; gets(d); while ((b = d[k])!= '\0') if (b == 'a') l++; k++; printf("%s\n%d\n", d, l); //Liczba powtórzeń litery a (2) - tablice tekstowe /*Ile razy litera a powtarza sie w tekscie*/ char d[max_line], b; int k = 0, l = 0; gets(d); while ((b = d[k++])!= '\0') if (b == 'a') l++; printf("%s\n%d\n", d, l); 5. Funkcja gets() - czyta linię ze standardowego wejścia (usuwa ją stamtąd) i umieszcza ją w tablicy znakowej wskazywanej przez str. Ostatni znak linii (znak nowego wiersza - '\n') zastępuje zerem (znakiem '\0'). Wartością zwracaną funkcji jest str (wskaźnik do tekstu) w przypadku sukcesu lub NULL w przypadku błędu lub natrafienia na koniec pliku. Funkcja nie sprawdza, czy jest miejsce do zapisu w tablicy str. Deklaracja: char *gets(char *str); 6. Wskaźnik do tablicy definicja tablicy rezerwuje odpowiednią grupę bajtów w pamięci i przypisuje nazwie (identyfikatorowi) tekst adres zerowego elementu. Nie wolno zmieniać wartości tekst jest to stała, wskaźnik początku tablicy. Dodatkowo identyfikator tekst nie jest L-value, tzn. że nie można go używać po lewej stronie instrukcji przypisania. Przykład 1: char str1[] = "abcde"; //debuger information: str1 = 0x0012fe44 "abcde" //str1[0] = 97 a, &str1[0] 0x0012fe44 "abcde" //str1[1] = 98 b &str1[1] 0x0012fe45 "bcde" Przykład 2: char str[256]; char *ptr = NULL; ptr = gets(str); //Przy wyjściu z gets str zawiera ciąg znaków, //wprowadzonych z monitora, ptr to jest wskaźnik do str: str 0x0012fe60 "abcdef" char[256] ptr 0x0012fe60 "abcdef" char * Przykład 3: char *ptr = NULL; //ptr 0x00000000 Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 2

ptr = "abcdefg"; //ptr 0x0041563c "abcdefg" char * //Uwaga! Pamięć pozostała wydzielona w obszarze roboczym. Ta informacja nie będzie chroniona. //Kod poprawny: ptr = (char *)malloc(256 * sizeof(char)); //dynamiczne wydzielenie pamięci w stercie (heap) if (!ptr) printf("błąd \n"); exit(1); sprintf(ptr, "abcdefg"); //... //jeżeli ptr jest już nie potrzebne zwolnij pamięć! if (ptr) free(ptr); ptr = NULL; //Liczba powtórzeń litery a (3) - tablice a wskaźniki /*Ile razy litera a powtarza sie w tekscie*/ char d[max_line], *dd; int l; l = 0; while (*dd!= '\0') if (*dd == 'a') l++; dd++; printf("%s\n%d\n", d, l); //Liczba powtórzeń litery a (4) - krótko /*Ile razy litera a powtarza sie w tekscie*/ char d[max_line], *dd; int l; l = 0; while (*dd) if (*dd++ == 'a') l++; printf("%s\n%d\n", d, l); 7. Instrukcja switch, case - tzw. warunek wielokrotnego wyboru lub przełącznik. Dzięki tej instrukcji możemy wykonywać decyzje tylko i wyłącznie na podstawie wartości jednej zmiennej. Możliwości instrukcji switch są nieporównywalnie mniejsze od możliwości funkcji if, jednak używanie jej w niektórych przypadkach jest znacznie korzystniejsze dla szybkości działania programu i estetyki kodu niż użycie funkcji if. Składnia: switch (zmienna) case wartosc_1: //jakiś kod case wartosc_2: //jakiś kod //... case wartosc_n: //jakiś kod default: //jakiś kod Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 3

Algorytm działania: 1. Obliczenie wartości zmienna 2. Jeśli zmienna == wartosc_i - wykonanie ciągu instrukcji (i + 1).ciąg instrukcji n, goto 3; jeśli zmienna!= wartosc_i - ciąg instrukcji default, goto 3 ; 3. Pierwszy operator poza blokiem switch W przypadku gdy operator default jest pominięty w deklaracji instrukcji switch: 1. Obliczenie wartości zmienna 2. Jeśli zmienna == wartosc_i - wykonanie ciągu instrukcji (i + 1).ciąg instrukcji n; pierwszy operator poza blokiem switch Ostatnim operatorem ciągu instrukcji i może być - przerywa on działanie switch i przekazuje sterowanie do pierwszego operatora poza blokiem switch. switch (i) case -1: n++; case 0: z++; case 1: p++; 8. Przykład: liczba wystąpień liter a, b oraz liter od b do y. //Instrukcje switch, case, break, continue /* Liczba wystąpień liter a, b oraz liter od b do y */ char d[max_line], *dd, b; int l, k, m; l = k = m = 0; while (b = *dd++, b!= '\0') if (!(b >= 'a' && b <= 'y')) continue; switch (b) case 'a': l++; case 'b': k++; default: m++; printf("%d %d %d\n", l, k, m); 9. Operator przecinkowy, wyrażenie przecinkowe. Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 4

Operator przecinkowy jest operatorem o najniższym priorytecie i jest lewostronnie łączny. Wyrażenie przecinkowe to wrażenie postaci: wyrazenie_1, wyrazenie_2 Wartością wyrażenia przecinkowego jest wartość wyrazenie_2. 10. Przykład: liczba słów w jednej linii tekstu. //Liczba słów w linii tekstu (1) char d[max_line], *dd, p = ' ', b; int l = 0; printf("%s\n", dd); /* Tu zostanie wyprowadzony cały wczytany tekst */ while ((b = *dd)!= '\0') if (b!= ' ') if (p == ' ') l++; p = b; dd++; /* A tu zostanie wyprowadzony pusty tekst */ printf("%s\n", dd); 11. Przykład: liczba słów w jednej linii tekstu tablice w argumentach funkcji. //Liczba słów w linii tekstu (2) - tablice w argumentach funkcji int ile_slow_1(char *), ile_slow_2(char *), ile_slow_3(char *), ile_slow(char *); char d[max_line], *dd; int l; /* Tu zostanie wyprowadzony caly wczytany tekst */ printf("%s\n", dd); l = ile_slow_1(d); l = ile_slow_2(dd); /* I tu zostanie wyprowadzony caly wczytany tekst */ printf("%s\n", dd); l = ile_slow_3(d); Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 5

l = ile_slow(dd); int ile_slow_1(char te[]) /* Ile jest slow w linii tekstu. Tablice w argumentach funkcji*/ char p = ' ', b; int l = 0, i = 0; while (b = te[i++]) if (b!= ' ') if (p == ' ') l++; p = b; return l; int ile_slow_2(char *te) /* Ile jest slow w linii tekstu. Wskaźniki w argumentach funkcji*/ char p = ' ', b; int l = 0; while (b = *te) if (b!= ' ') if (p == ' ') l++; p = b; te++; return l; int ile_slow_3(char *te) /* Ile jest slow w linii tekstu. Elementy tablic == wskazanie pośrednie*/ char p = ' ', b; int l = 0, i = 0; while (b = te[i]) if (b!= ' ') if (p == ' ') l++; p = b; i++; return l; int ile_slow(char *te) char p, b = ' '; int l = 0; while (p = b, b = *te++) if (b!= ' ' && p == ' ') l++; return(l); 12. Operacje na tekstach wybrane funkcje. Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 6

Funkcja strcpy() Funkcja kopiuje łańcuch znaków (src) do tablicy znaków (dest). Funkcja nie sprawdza czy łańcuch kopiowany zmieści się w tablicy docelowej. Nie istnieje wartość, która wskazywałaby na błędne wykonanie. Deklaracja: char * strcpy(char * dest, const char * src); Funkcja strcat() Dopisuje ciąg znaków (string) strfrom na końcu bufora (string) strto i zamyka symbolem końca \0. Zachowanie funkcji jest nieokreślone, jeśli bufory strto oraz strfrom wzajemnie się pokrywają. Funkcja zwraca wskaźnik do strto. Nie istnieje wartość, która wskazywałaby na błędne wykonanie. Deklaracja: char * strcat(char * strto, const char * strfrom); Funkcja strcmp() (znajduje się w bibliotece <string.h>) Porównuje ciągi znaków string1 i string2. Zwraca wartość (RetVal) typu int. RetVal: < 0 string1 < string2 = 0 string1 == string2 jeśli każdy znak ze string1 jest równy odpowiedniemu znakowi ze string2 > 0 string1 > string2 Deklaracja: int strcmp(const char * string1, const char * string2); Relacja nierówności: w języku C przyjęto, że string1 > string2, jeśli kod pierwszego symbolu ze string1 jest większy od kodu pierwszego symbolu ze string2. Jeśli pierwsze znaki są równe, porównujemy drugie itd. Funkcja strlen() (<string.h>) - oblicza długość łańcucha str. Jej działanie polega na zliczaniu znaków aż do napotkania 0 (znaku '\0'). 0 nie jest wliczane do długości. W przypadku łańcuchów nie zakończonych 0 jej działanie jest nieokreślone. Zwraca długość łańcucha str. Deklaracja: int strlen(char *str); Funkcja getchar() - czyta znak ze standardowego wejścia i go stamtąd usuwa. Wywołanie getchar() jest równoważne wywołaniu getc(stdin). Deklaracja: int getchar(void); Funkcja putchar ( ) - wysyła znak na standardowe wyjście. Wywołanie putchar ( c ) jest równoważne wywołaniu putc(c, stdout). Deklaracja: int putchar(int c); 13. Znajdź pozycję wybranego znaku w tekście. 14. Usuń z tekstu pierwsze wystąpienie wybranego znaku. 15. Zamień każde wystąpienie wybranego znaku na inny znak. 16. Dołącz tekst do innego tekstu. 17. Dołącz tekst od znaku o podanej pozycji na koniec innego teksu. 18. Zaproponuj i zaimplementuj algorytm, który przesunie zawartość N-elementowej tablicy cyklicznie o jedną pozycję w górę. (tzn. pierwszy element na miejsce drugiego, drugi na trzeci,..., ostatni na pierwszy). 19. Napisz funkcje: Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 7

int moje_strcmp(const char*, const char*); char* moje_strcat(char*, const char*); char* moje_strcpy(char*, const char*); realizujące te same operacje co standardowe funkcje strcmp, strcat, strcpy z biblioteki <string.h>. 20. Przeanalizuj w trybie pracy krokowej następujące przykłady do wykładu 5: http://torus.uck.pk.edu.pl/~fialko/text/cc/przykl/ww5_1.pdf http://torus.uck.pk.edu.pl/~fialko/text/cc/przykl/ww5_2.pdf http://torus.uck.pk.edu.pl/~fialko/text/cc/przykl/ww5_3.zip Wszystkie przykłady dostępne pod adresem: http://torus.uck.pk.edu.pl/~fialko/text/cc/przykl/ *Treści oznaczone kursywą pochodzą z różnych źródeł internetowych. Wydział Fizyki, Matematyki i Informatyki Politechniki Krakowskiej 8