Podstawy programowania Typ znakowy. Typ znakowy
|
|
- Magda Osińska
- 6 lat temu
- Przeglądów:
Transkrypt
1 Typ znakowy 295 Typ znakowy Typ znakowy jest zbiorem podstawowych znaków używanych do komunikacji komputera z człowiekiem. Każdy element typu znakowego (znak) posiada przyporządkowany mu kod liczbowy, na przykład litera A może mieć kod 65, litera B może mieć kod 66, Wewnętrzna reprezentacja znaków to binarny zapis liczb będących ich kodami. 296 dr inż. P. Borowiecki (KAMS, WETI, PG) 1
2 Standardy kodowania znaków (1) W standardowym C/C++ używany jest zbiór znaków zgodny ze standardem ISO/IEC 646. Bardziej znaną wersją tego standardu jest amerykański standard narodowy ANSI X3.4 definiujący zbiór 7. bitowych znaków tzw. podstawowy zbiór ASCII (American Standard Code for Information Interchange). <tabela> 297 Standardy kodowania znaków (2) Wykorzystanie ósmego bitu pozwoliło na stworzenie rozszerzonego zbioru ASCII zawierającego 256 znaków. W reprezentacji wewnętrznej każdy znak z tego zbioru wymaga jednego bajtu. Dla różnych grup języków istnieją różne wersje rozszerzonego zbioru ASCII tzw. strony kodowe, różniące się znakami o kodach od 128 do 255. Strona kodowa zawierająca znaki narodowe języka polskiego zdefiniowana jest przez standard ISO Oprócz Polski, ze standardu tego korzystają również : Albania, Bośnia, Chorwacja, Czechy, Finlandia, Węgry, Rumunia, Serbia, Słowacja i Słowenia. W systemie Windows dla Polski używana jest domyślnie strona Windows <tabela> 298 dr inż. P. Borowiecki (KAMS, WETI, PG) 2
3 Standardy kodowania znaków (3) EBCDIC (Extended Binary-Coded Decimal Interchange Code) to zbiór znaków 8 bitowych. Llitery i cyfry nie muszą mieć kolejnych kodów. Używany np. na komputerach typu mainframe. Unicode stworzony i rozwijany przez Unicode Consortium ( W tym standardzie kodowania każdy znak posiada swój unikalny numer. W języku C++ dostępne są typy znakowe pozwalające na pracę ze znakami Unicode. Standard Unicode określa też reguły sortownia dla poszczególnych języków etnicznych. 299 Uporządkowanie znaków języka etnicznego Ustawienia międzynarodowe systemu operacyjnego określają między innymi zbiór dostępnych znaków oraz reguły ich sortowania, np. Kolejne znaki alfabetu etnicznego nie muszą mieć kolejnych kodów. Litera eszett występująca w języku niemieckim podczas sortowania musi być traktowana jak dwa osobne znaki. znaki ch w języku hiszpańskim podczas sortowania muszą być traktowane jak jedna litera występująca pomiędzy literą c a literą d. Zagadnienie to nie jest więc tak trywialne na jakie wygląda na pierwszy rzut oka ;) 300 dr inż. P. Borowiecki (KAMS, WETI, PG) 3
4 Typ znakowy Zmienne typu znakowego w C++ deklarujemy następująco char c; wchar_t c; // zwykłe znaki // znaki "szerokie" Typ wchar_t jest stosunkowo nowym typem (ANSI/ISO draft 1995). W kompilatorze g++ ver. 2.95, sizeof(wchar_t) daje 4. Zapis stałych dosłownych: a jest znakiem reprezentującym literę a 8 jest znakiem reprezentującym cyfrę 8 ( nie chodzi o liczbę 8! ) 301 Typ znakowy Znaki sterujące: \b - kasownik (ang. Backspace) \f - nowa strona (ang. Form feed) \n - nowa linia (ang. New line) \r - powrót karetki (ang. carriage Return) \t - tabulator poziomy (ang. Tabulator) \v - tabulator pionowy (ang. Vertical tabulator) \a - sygnał dźwiękowy (ang. Alarm) Znaki specjalne: \\ - ukośnik lewostronny \ - apostrof \ - cudzysłów \0 - NULL (znak o kodzie 0) \? - znak zapytania 302 dr inż. P. Borowiecki (KAMS, WETI, PG) 4
5 Znaki Wykonanie tego fragmentu programu Pominięcie niektórych znaków niedrukowalnych for (int i = 14; i < 256; i++) cout << setw(5) << i << setw(3) << static_cast<char>(i); daje aktualnie używany zestaw znaków, np !! ! 34 " 35 # 36 $ 37 % 38 & 39 ' 40 ( 41 ) 42 * , / : 59 ; 60 < 61 = 62 > 63? 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z ~ Ç 129 ü 130 é 131 â 132 ä 133 ů 174 «175» Á 182 Â 183 Ě 184 Ş Ż 190 ż Ă 199 ă Wybrane funkcje dla znaków Wybrane funkcje biblioteki cctype operujące na znakach. int isalpha(int c); Jeżeli c jest literą, to zwraca true a w przeciwnym przypadku false. int isupper(int c); Jeżeli c jest dużą literą, to zwraca true a w przeciwnym przypadku false. int islower(int c); Jeżeli c jest małą literą, to zwraca true a w przeciwnym przypadku false. int isdigit(int c); Jeżeli c jest cyfrą, to zwraca true a w przeciwnym przypadku false. int isxdigit(int c); Jeżeli c jest cyfrą systemu o podst. 16, to zwraca true a w p. p. false. int ispunct(int c); Jeżeli c jest znakiem drukowalnym różnym od spacji, cyfry lub litery, to zwraca true a w przeciwnym przypadku false. int isprint(int c); Jeżeli c jest znakiem drukowalnym włączając w to spację i c < 128, to zwraca true a w przeciwnym przypadku false. int iscntrl(int c); Jeżeli c jest znakiem kontrolnym, to zwraca true a w p. p. zwraca false. 304 dr inż. P. Borowiecki (KAMS, WETI, PG) 5
6 Wybrane funkcje dla znaków Wybrane funkcje biblioteki cctype operujące na znakach c.d. int isspace(int c); Jeżeli c jest białym znakiem, to zwraca true a w przeciwnym przypadku false. int toupper(int c); Jeżeli c jest małą literą, to zwraca literę dużą w przeciwnym przypadku zwraca argument bez zmian. int tolower(int c); Jeżeli c jest dużą literą, to zwraca literę małą w przeciwnym przypadku zwraca argument bez zmian. Przykład for (int i = 0; i < 128; i++) if (isprint(i)) cout << setw(5) << i << setw(3) << static_cast<char>(i); else cout << setw(5) << i << setw(3) << ' '; 305 Wybrane funkcje dla znaków Wybrane funkcje biblioteki cctype operujące na znakach. Nul + znaki steruj. Znaki iscntrl isspace isupper islower isalpha \t, \f, \v, \n, \r X X X isdigit/ isxdigit ispunct Spacja X X! #$%& ()*+,-./ X X X / X X : ; < = X X ABCDEF X X - / X X GHIJKLMNOPQRSTUVW XYZ isprint X X X [ ] ^ _ ` \ X X abcdef X X - / X X ghijklmnopqrstuvw xyz X X X ~ X X Dla znaków ASCII o kodach do dr inż. P. Borowiecki (KAMS, WETI, PG) 6
7 Tablice znaków Tablice znaków służą do przechowywania ciągów znaków z 1,1 z 1,2 z 1,3 z 1,k1 Ciągi te nazywane są również łańcuchami znakowymi lub napisami (ang. string). Ciągi znaków, zwykle za sprawą wyróżnionych znaków formatujących mogą mieć różne interpretacje. Na przykład ciąg znaków zawierający znaczniki końca linii często nazywany jest tekstem z 1,1 z 1,2 z 1,k1 #z 2,1 z 2,2 z 2,k2 #z r,1 z r,2 z r,kr # gdzie # jest znakiem końca linii (w C/C++ jest to '\n'). 307 Tablice znaków Specjalny ciąg znaków, zakończony znakiem NULL o kodzie ASCII równym 0 nazywamy C-napisem (ang. C-string, ASCII-Z string). D o m '\0' n-2 n-1 Nazwa C-string ma wskazywać na pochodzenie takiej reprezentacji z języka C i odróżniać od obiektów klasy string dostępnych w C++. Klasa string jest odpowiedzią na problemy związane ze złożoną obsługą operacji na C-napisach i stanowi obecnie część biblioteki standardowej C++. Ponieważ jednak w wielu programach można spotkać zaczniemy właśnie od nich. 308 dr inż. P. Borowiecki (KAMS, WETI, PG) 7
8 Tablice znaków Stałe dosłowne reprezentujące napisy są literałami składającymi się z ciągu znaków ujętych w cudzysłów "Dom na polu" Stałe takie traktowane są jak. Tablicę znaków deklarujemy następująco char nazwa[rozmiar]; Podczas definicji tablicę znaków można inicjalizować, np: char zdanie[80] = "Dom na polu"; Za ostatnią literą w tablicy dodany zostanie znak '\0'. Dzieje się tak dlatego, że znaki ujęte w cudzysłów są C-napisem. Tak utworzona tablica może być traktowana jak C-napis. 309 Tablice znaków Inicjalizacja zbiorcza pojedynczymi znakami char zdanie[80]='d','o','m',' ','n','a',' ','p','o','l','u'; Można jej używać gdy mamy na myśli tablicę pewnych znaków, która nie będzie używana jako napis. Unikać przy inicjalizacji napisów! Można liczyć, że zgodnie z zasadą inicjalizacji zbiorczej nieokreślone jawnie elementy tablicy zostaną uzupełnione zerami, jednak gdy cała tablica jest wypełniona, uzupełnienie nie będzie możliwe. char zdanie[11]='d','o','m',' ','n','a',' ','p','o','l','u'; Podobne zjawisko wystąpi, gdy pozostawimy wyznaczenie rozmiaru tablicy kompilatorowi tablica 11. elementowa char zdanie1[]='d','o','m',' ','n','a',' ','p','o','l','u'; char zdanie2[] = "Dom na polu"; tablica 12. elementowa, '\0' na końcu 310 dr inż. P. Borowiecki (KAMS, WETI, PG) 8
9 Wprowadzanie C-napisu ze standardowego wejścia. #include <iostream> const int MAX_N = 80; char s[max_n]; Podaj napis: ^^^^^Dobra^robota Podales napis: Dobra_ cout << "Podaj napis: "; cin >> s; cout << "Podales napis: " << s; znakiem ^ zaznaczono spację Znaki wyjmowane są z cin operatorem >> aż do napotkania pierwszego białego znaku, tzn. spacji, tabulatora albo znaku końca linii. Przed rozpoczęciem wyjmowania białe znaki poprzedzające w cin pierwszy znak, który nie jest biały, tzw. wiodące białe znaki są pomijane. Biały znak kończący wyjmowanie nie wchodzi do napisu i pozostaje w strumieniu wraz z ewentualnymi innymi znakami. 311 #include <iostream> Biały znak kończący wyjmowanie nie wchodzi do napisu i pozostaje w strumieniu wraz z ewentualnymi innymi znakami. const int MAX_N = 80; char s[max_n]; Podaj napis: ^^^^^Dobra^robota Podales napis: Dobra Ciag dalszy: robota_ cout << "Podaj napis: "; cin >> s; cout << "Podales napis: " << s << endl; cin >> s; cout << "Ciag dalszy: " << s; Czy w powyższym przykładzie po wyjęciu ^robota strumień jest pusty? Nie. Pozostaje w nim biały znak '\n' co może mieć wpływ na dalsze operacje, szczególnie gdy będą wykonane bez pomijania wiodących białych znaków. 312 dr inż. P. Borowiecki (KAMS, WETI, PG) 9
10 Jeżeli napis nie zawierający białych znaków jest dłuższy niż rozmiar tablicy, to można uznać to za błąd logiczny. Cała zawarość strumienia, aż do białego znaku kończącego wyjmowanie zostanie umieszczona w kolejnych komórkach pamięci co może nadpisać wartości zmiennych znajdujących się bezpośrenio za wczytywaną zmienną s. #include <iostream> const int MAX_N = 5; char s[max_n]; Podaj napis: ^^^^^Dobranocka Podales napis: Dobranocka_ cout << "Podaj napis: "; cin >> s; cout << "Podales napis: " << s ; Pozornie wszystko działa jak zaplanowano D o b r a n o c k a '\0' s??? 313 Wprowadzanie ze standardowego wejścia C-napisu zawierającego białe znaki, np. spacje ale również znaki końca linii. #include <iostream> const int MAX_N = 80; char s[max_n]; char ogr; ogr = '\n'; cout << "Podaj tekst: "; cin.getline(s,max_n,ogr); cout << endl; cout << "Podales tekst: " << s; Podaj tekst: Dobra robota ale jeszcze popracuj. Podales tekst: Dobra robota ale jeszcze popracuj. Funkcja getline wyjmuje ze strumienia co najwyżej MAX_N-1 znaków (również białych) i umieszcza je w s dodając za ostatnim znakiem '\0'. Napotkanie znaku ogranicznika ogr, natychmiast przerywa wyjmowanie. Znak ogr jest wyjmowany ze strumienia ale nie jest dodawany do s. 314 dr inż. P. Borowiecki (KAMS, WETI, PG) 10
11 Jeżeli po zakończeniu wyjmowania przez cin.getline są jeszcze w strumieniu inne znaki, to gdy wyjmowanie przerwano z powodu napotkania ogranicznika, znaki po ograniczniku nie zostaną wyjęte (pozostaną do dalszego przetwarzania) char s[10] = " "; cout << "Wpisz max 9 znakow: "; cin.getline(s,10,'x') cout << "Podales znaki:" << endl; for (int i=0; i < 10; i++) cout << "s[" << i << "]= " << s[i] << endl; // tu można przetwarzać "bet" Domyślnie ogranicznikiem jest '\n'. Wpisz max 9 znakow: Alfaxbet Podales znaki: s[0]= A s[1]= l s[2]= f s[3]= a s[4]= s[5]= 6 s[6]= 7 s[7]= 8 s[8]= 9 s[9]= _ Gdy korzystamy z '\n' można użyć cin.getline z dwoma parametrami. '\0' 315 Jeżeli po zakończeniu wyjmowania przez cin.getline są w strumieniu inne znaki, to: gdy wyjmowanie przerwano z powodu napotkania ogr, znaki po ogr nie zostaną wyjęte (pozostaną do dalszego przetwarzania), gdy wyjmowanie przerwano po wyjęciu MAX_N-1 znaków i pozostały w strumieniu znaki różne od ogranicznika, to wystąpi błąd i będzie on sygnalizowany przez ustawienie flagi failbit (obsługę tego typu sytuacji omówimy w późniejszej części wykładu). Podczas operacji na C-napisach obowiązek kontrolowania zakresów poszczególnych tablic znakowych spoczywa na programiście!! 316 dr inż. P. Borowiecki (KAMS, WETI, PG) 11
12 #include <iostream> Problemy podczas równoczesnego używania cin >> oraz cin.getline char s1[80]; char s2[80]; Podaj pierwszy napis: ^^Dobranoc Podaj drugi napis: Podales napisy: Dobranoc _ cout << "Podaj pierwszy napis: "; cin >> s1; cout << "Podaj drugi napis: "; cin.getline(s2,80); cout << "Podales napisy: " << endl; << s1 << " " << s2; Po wyjęciu oc strumień nie jest pusty. Pozostał w nim biały znak '\n'. Ponieważ cin.getline nie pomija wiodących białych znaków a znak '\n' jest domyślnym ogranicznikiem, więc nie są wyjmowane żadne znaki i s2 jest pusty. 317 Problemy podczas równoczesnego używania cin >> oraz cin.getline char s1[80]; char s2[80]; Podaj pierwszy napis: ^^Dobrej^nocy Podaj drugi napis: Podales napisy: Dobrej nocy_ cout << "Podaj pierwszy napis: "; cin >> s1; cout << "Podaj drugi napis: "; cin.getline(s2,80); cout << "Podales napisy: " << endl; << s1 << " " << s2; Podobnie po wyjęciu ^^Dobrej przez operator >> strumień nie jest pusty. Pozostała w nim spacja i napis nocy oraz znak '\n'. Ponieważ cin.getline nie pomija wiodących białych znaków a znak '\n' jest domyślnym ogranicznikiem, więc do s2 wyjmowane są znaki: spacja i nocy, natomiast '\n' jest pomijany. 318 dr inż. P. Borowiecki (KAMS, WETI, PG) 12
13 Wybrane funkcje biblioteki string operujące na C-napisach. char *strcpy(char *s_cel, const char *s_zrodlo); Kopiuje zawartość napisu s_zrodlo do s_cel. Zwraca s_cel. Programista musi zadbać aby s_zrodlo zmieściło się w s_cel. Do przypisywania jednego napisu do drugiego, nie wolno używać operatora = char *strcat(char *s1, const char *s2); Rozszerza s1 dołączając s2 na końcu s1 (konkatenacja - złączenie). Zwraca s1. Pierwszy znak s2 nadpisuje '\0' na końcu s1. Napis s2 pozostaje bez zmian. Programista musi zagwarantować, że s1 pomieści połączone napisy s1 i s2. int strcmp(const char *s1, const char *s2); Porównuje napisy s1 i s2 i zwraca 0 gdy są jednakowe. Jeżeli s1 jest leksykograficznie mniejszy od s2 zwraca liczbę ujemną oraz liczbę dodatnią, gdy s1 jest leksykograficznie większy od s2. size_t strlen(const char *s); Zwraca długość napisu s. Znak '\0' kończący napis nie jest wliczany. Typ size_t nie jest specyficzny dla C++. Występuje w innych językach. Zalecany przez POSIX jako nazwa typu dla wartości unsigned int albo unsigned long, gdy wynik funkcji jest odpowiedzią na pytania: ile?, jak wiele? 319 Wybrane funkcje biblioteki string operujące na C-napisach c.d. char *strstr(const char *s_gdzie, const char *s_co); Szuka pierwszego wystąpienia napisu s_co w napisie s_gdzie. Jeżeli napis s_co został znaleziony, to zwracany jest wskaźnik do jego pierwszego znaku w napisie s_gdzie. W przeciwnym przypadku zwracany jest wskaźnik o wartości NULL. char *strtok(char *ptr, const char *s); Dzieli na "tokeny" napis podany jako pierwszy parametr. Aby dokonać podziału wymaga wielokrotnego wywoływania (patrz przykład w dalszej części). Wybrane funkcje biblioteki stdlib operujące na C-napisach. double atof(const char *s); Zamienia napis s na liczbę typu double. double atoi(const char *s); Zamienia napis s na liczbę typu int. double atol(const char *s); Zamienia napis s na liczbę typu long dr inż. P. Borowiecki (KAMS, WETI, PG) 13
14 #include <cstring> char s1[80], s2[80]; strcpy(s1, "C#"); strcpy(s2, "C++"); cout << "Dlugosci: " << strlen(s1) << " " << strlen(s2) << endl; cout << s1 << " i " << s2 << " to"; if(!strcmp(s1, s2)) cout << " takie same napisy." << endl; else cout << " rozne napisy." << endl; strcat(s1, s2); cout << "Zlaczenie: " << s1 << endl; Dlugosci: 2 3 C# i C++ to rozne napisy. Zlaczenie: C#C++ C#C++ oraz C#C++ to teraz takie same napisy. _ strcpy(s2, s1); cout << s1 << " oraz " << s2; if(!strcmp(s1, s2)) cout << " to teraz takie same napisy."; else cout << " wciaz sie roznia."; cout << endl; 321 Do poszczególnych znaków napisu można odwołać się jak do elementu tablicy podając indeks. Zamieniając litery napisu na duże, skorzystamy również z faktu, że C-napis zakończony jest znakiem o kodzie 0. #include <cstring> #include <cctype> // zamiana liter małych na wielkie char s[80]; Alternatywnie: s[i] == '\0' albo for (i = 0; s[i] = toupper(s[i]); i++); strcpy(s," NapiS Probny 234 &\"-._>"); for (int i=0; s[i]; i++) s[i] = toupper(s[i]); cout << s << endl; NAPIS PROBNY 234 &"-._> _ 322 dr inż. P. Borowiecki (KAMS, WETI, PG) 14
15 Podobnie można wykonać kopiowanie C-napisu #include <cstring> char cel[80], zrodlo[80]; int i=0; Wyrażenie to ma wartość ostatnio skopiowanego znaku. Alternatywa: ((cel[i] = zrodlo[i]) == '\0') strcpy(zrodlo,"napis probny"); while (cel[i] = zrodlo[i]) i++; cout << cel << endl; Co by się stało, gdyby rozmiar cel był mniejszy niż rozmiar zrodlo? Zapobieganie: stosować funkcje strncpy, strncat, strncmp, które posiadają dodatkowy trzeci parametr typu size_t pozwalający na określenie maksymalnej liczby przetwarzanych znaków. 323 Podział napisu na tokeny. #include <cstring> char zdanie[] = "To zdanie ma 5 tokenow"; cout << zdanie << endl; Separator(y) tokenów char* wsk_tokena; wsk_tokena = strtok( zdanie, " " ); while (wsk_tokena!= NULL) cout << wsk_tokena << endl; wsk_tokena = strtok( NULL, " " ); To zdanie ma 5 tokenow To zdanie ma 5 tokenow _ Pierwsze wywołanie przekazuje do strtok dzielony napis i zbiór separatorów. W wyniku dostajemy wskaźnik na pierwszy token a pierwsze wystąpienie separatora zamieniane jest na '\0' stanowiący zakończenie aktualnego tokena. Funkcja "zapamiętuje" wskaźnik do pierwszego znaku po aktualnym tokenie. NULL jako pierwszy par. kolejnych wywołań nakazuje kontynuację od znaku wskazywanego przez zapamiętany wskaźnik. Uwaga: dzielony napis ulega zmianie. Aby zachować oryginał, przed użyciem strtok należy zrobić kopię. 324 dr inż. P. Borowiecki (KAMS, WETI, PG) 15
16 Przykład Zastosowanie wskaźników do C-napisów #include <cstring> // Odwócenie napisu w miejscu char s[] = "napis probny"; char *start, *end; int n; char buf; cout << "Przed odwroceniem: " << s << endl; n = strlen(s); start = s; '\0' ma zostać w tym end = &s[n-1]; samym miejscu while (start < end) buf = *start; *start = *end; *end = buf; start++; end--; cout << "Po odwroceniu: " << s << endl; 325 Tablica C-napisów #include <cstring> Tablica wskaźników na stałe napisy char* stacje[] = "Stocznia", "Politechnika", "Wrzeszcz", "Przymorze", "Oliwa", "Sopot" ; const int Rozmiar = sizeof(stacje)/sizeof(char*); // Rozmiar zostanie obliczony podczas kompilacji char* wsk[rozmiar]; // Tablica wskaźników na napisy. for (int i = 0; i < Rozmiar; i++) cout << "Stacja " << i+1 << ". " << stacje[i] << endl; wsk[0] = stacje[0]; wsk[1] = stacje[1]; wsk[2] = stacje[2]; cout << wsk[0] << wsk[1] << wsk[2] << endl; Stacja 1. Stocznia Stacja 2. Politechnika Stacja 3. Wrzeszcz Stacja 4. Przymorze Stacja 5. Oliwa Stacja 6. Sopot StoczniaPolitechnikaWrzeszcz _ Źródło: Język C++ w praktyce, T. Ratajczak + autor 326 dr inż. P. Borowiecki (KAMS, WETI, PG) 16
17 Tablica C-napisów // zapisanie do tablicy wsk wskaźników na tworzone dynamicznie bloki // pamięci o rozmiarach odpowiednich do zapamiętania napisów // o wartościach takich jak napisy w tablicy stacje for(int i = 0; i < Rozmiar; i++) wsk[i] = new char [strlen(stacje[i])+1]; strcpy(wsk[i],stacje[i]); wsk[0] wsk[1] wsk[rozmiar-1] Stocznia\0 Politechnika\0 Sopot\0 for (int i = 0; i < Rozmiar; i++) cout << "Stacja " << i+1 << ". " << wsk[i] << endl; cout << wsk[1][0]; // wypisze pierwszy znak drugiego napisu czyli 'P' // Uwaga: pamiętaj o zakresach indeksów! 327 dr inż. P. Borowiecki (KAMS, WETI, PG) 17
Języki programowania obiektowego Nieobiektowe elementy języka C++
Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Przetwarzanie tablic znaków Łańcuchy znakowe jako tablice znaków
Bardziej szczegółowoPodstawy Programowania
Podstawy Programowania dr Elżbieta Gawrońska gawronska@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 05 1 / 15 Plan wykładu 1 Biblioteka
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Bardziej szczegółowoPodstawy programowania
Podstawy programowania Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera skrót treści wykładu,
Bardziej szczegółowoJęzyki programowania. Przetwarzanie tablic znaków. Część druga. Autorzy Tomasz Xięski Roman Simiński
Języki programowania Część druga Przetwarzanie tablic znaków Autorzy Tomasz Xięski Roman Simiński Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi uważnego w nim
Bardziej szczegółowoDANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE
DANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE Stała tekstowa / łańcuchowa jest tablicą znaków zakończoną znakiem o kodzie: 0 np. stała łańcuchowa: Jestem tekstem ASCII... J e s t e m t e k s t e m \0...
Bardziej szczegółowoTablice. 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
Bardziej szczegółowoĆ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
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoPodstawy 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
Bardziej szczegółowoProgramowanie w języku C++
Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi
Bardziej szczegółowoPodstawy 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
Bardziej szczegółowoInformatyka 1. Plan dzisiejszych zajęć. zajęcia nr 11. Elektrotechnika, semestr II rok akademicki 2008/2009
Informatyka 1 zajęcia nr 11 Elektrotechnika, semestr II rok akademicki 2008/2009 mgr inż.. Paweł Myszkowski Plan dzisiejszych zajęć 1. Łańcuchy znaków 2. Wprowadzanie i wyprowadzanie znaków w i łańcuchów
Bardziej szczegółowoInicjacja tablicy jednowymiarowej
TABLICE C++ Inicjacja tablicy jednowymiarowej typ_komórek_tablicy nazwa_tablicy [ ilość elementów tablicy ] ; np.: int tablica[1000]; czyli tablica, która może przechowywać tysiąc elementów typu całkowitego,
Bardziej szczegółowoStał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
Bardziej szczegółowoWykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład II - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Operacje dyskowe - zapis do pliku #include #include
Bardziej szczegółowoProgramowanie komputerowe. Zajęcia 4
Programowanie komputerowe Zajęcia 4 Typ logiczny Wartości logiczne są reprezentowane przez typ bool. Typ bool posiada tylko dwie wartości: true i false. Zamiast wartości logicznych można używać wartości
Bardziej szczegółowoTablice. int rozmiar; cout << Jaki ma być rozmiar tabeli? ; cin >> rozmiar; { int tablica[rozmiar]; /* TU JEST ŹLE */... }
Tablice grupa obiektów tego samego typu tablica tablica ciąg obiektów tego samego typu, zajmujący ciągły obszar w pamięci korzyść zamiast wielu definicji poszczególnych obiektów jedna wspólna; odniesienia
Bardziej szczegółowo1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE
1. Proste typy danych- ciąg dalszy 2. Typy złożone danych : TABLICE Wykład 3 ZMIENNE PROSTE: TYPY WBUDOWANE Typy zmiennoprzecinkowe: float double long double Różne rozmiary bajtowe. W konsekwencji różne
Bardziej szczegółowoOperacje na łańcuchach znaków
Operacje na łańcuchach znaków wer. 6 z drobnymi modyfikacjami Wojciech Myszka 2014-02-09 16:32:23 +0100 Łańcuch znaków 1. Z łańcuchów znaków korzystamy powszechnie. 2. Najprostszy przykład: p r i n t f
Bardziej szczegółowoutworz 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
Bardziej szczegółowoPodstawy programowania w C++
Podstawy programowania w C++ Zmienne typu znakowego Bibliografia: CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com Opracował: Andrzej Nowak ASCII (American Standard Code for Information Interchange)
Bardziej szczegółowoReprezentacja symboli w komputerze.
Reprezentacja symboli w komputerze. Znaki alfabetu i łańcuchy znakowe. Programowanie Proceduralne 1 ASCII The American Standard Code for Information Interchange, 1968 r. 7 bitów, liczby z zakresu 0-127
Bardziej szczegółowoKodowanie informacji. Przygotował: Ryszard Kijanka
Kodowanie informacji Przygotował: Ryszard Kijanka Komputer jest urządzeniem służącym do przetwarzania informacji. Informacją są liczby, ale także inne obiekty, takie jak litery, wartości logiczne, obrazy
Bardziej szczegółowoProgramowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44
Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia
Bardziej szczegółowoWstęp do programowania
wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2016/2017 Tablice wielowymiarowe inaczej Efekt tablicy wielowymiarowej można uzyskać definiując tablicę jednowymiarową odpowiedniego
Bardziej szczegółowoReprezentacja symboli w komputerze. Znaki alfabetu i łańcuchy znakowe. Programowanie Proceduralne 1
Reprezentacja symboli w komputerze. Znaki alfabetu i łańcuchy znakowe. Programowanie Proceduralne 1 ASCII The American Standard Code for Information Interchange, 1968 r. 7 bitów, liczby z zakresu 0-127
Bardziej szczegółowoInformatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Bardziej szczegółowoŁAŃCUCHY W JĘZYKU C/C++
ŁAŃCUCHY W JĘZYKU C/C++ Stała tekstowa / łańcuchowa jest tablicą znaków zakończoną znakiem o kodzie: 0 np. stała łańcuchowa: Jestem tekstem... 74 101 115 116 101 109 32 116 101 107 115 116 101 109 0......
Bardziej szczegółowoPodstawy Programowania Podstawowa składnia języka C++
Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include
Bardziej szczegółowoDYNAMICZNE 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
Bardziej szczegółowoWskaź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ą
Bardziej szczegółowoPętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady
Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy
Bardziej szczegółowoProgramowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41
Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje
Bardziej szczegółowoZmienne, 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
Bardziej szczegółowoWskaź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
Bardziej szczegółowoWstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy
Bardziej szczegółowoLaboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski
Laboratorium 6: Ciągi znaków mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 17 listopada 2016 1. Wprowadzenie Instrukcja poświęcona jest zmiennym, które służą do przechowywania
Bardziej szczegółowoiii. 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
Bardziej szczegółowoMETODY 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ę
Bardziej szczegółowoPascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:
Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym
Bardziej szczegółowoZASADY 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.
Bardziej szczegółowoWskaźniki. nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny:
Wskaźniki nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny: typ nw; /* definicja zmiennej nw typu typ */ typ *w_nw; /* definicja
Bardziej szczegółowoProgramowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
Bardziej szczegółowodr inż. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2011/2012 Pracownia nr 9 (20.01.2012) dr inż. Jarosław Forenc Rok
Bardziej szczegółowo12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:
PRZYPOMNIJ SOBIE! Matematyka: Dodawanie i odejmowanie "pod kreską". Elektronika: Sygnały cyfrowe. Zasadę pracy tranzystorów bipolarnych i unipolarnych. 12. Wprowadzenie 12.1. Sygnały techniki cyfrowej
Bardziej szczegółowoWprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy
1 Wprowadzenie do informatyki i użytkowania komputerów Kodowanie informacji System komputerowy Kodowanie informacji 2 Co to jest? bit, bajt, kod ASCII. Jak działa system komputerowy? Co to jest? pamięć
Bardziej szczegółowoJĘ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,
Bardziej szczegółowoWstęp do programowania
wykład 7 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Napisy w stylu C (tablice znaków) Łańcuch to ciąg znaków przechowywanych w kolejnych bajtach. Łańcuchy reprezentują napisy.
Bardziej szczegółowoWstęp do programowania
wykład 7 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Tablice wielowymiarowe Tablice wielowymiarowe, podobnie jak jednowymiarowe, przechowują wartości tego samego typu. Przykłady:
Bardziej szczegółowoProgramowanie 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,
Bardziej szczegółowoJava Podstawy. Michał Bereta
Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu
Bardziej szczegółowoJęzyki i metody programowania I
Języki i metody programowania I dr inż. Piotr Szwed Katedra Informatyki Stosowanej C2, pok. 403 e-mail: pszwed@agh.edu.pl http://home.agh.edu.pl/~pszwed/ Aktualizacja: 2013-01-18 8. Łańcuchy znaków Łańcuchy
Bardziej szczegółowoPracownia Komputerowa wyk ad VII
Pracownia Komputerowa wyk ad VII dr Magdalena Posiada a-zezula Magdalena.Posiadala@fuw.edu.pl http://www.fuw.edu.pl/~mposiada Magdalena.Posiadala@fuw.edu.pl 1 Notacja szesnastkowa - przypomnienie Szesnastkowy
Bardziej szczegółowoPodstawy 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
Bardziej szczegółowoPodstawy 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
Bardziej szczegółowo1 Pierwsze kroki w C++ cz.3 2 Obsługa plików
1 Pierwsze kroki w C++ cz.3 2 Obsługa plików Do pracy z plikami zewnętrznymi niezbędna będzie biblioteka fstream. Udostępnia ona programiście narzędzia do zapisu i odczytu plików. 2.1 Typ zmiennej fstream.
Bardziej szczegółowoProgramowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 5 Katarzyna Grzelak 16 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły
Bardziej szczegółowoPrawidłowa konstrukcja (3 x 4) char** tab = new char*[3]; for (size_t i = 0; i < 3; i++) tab[i] = new char[4];
Prawidłowa konstrukcja (3 x 4) char** tab = new char*[3]; for (size_t i = 0; i < 3; i++) tab[i] = new char[4]; STOS STERTA tab for (size_t i = 0; i < 3; i++) delete[] tab[i]; delete[] tab; 1. Zrealizować
Bardziej szczegółowoTemat: 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,
Bardziej szczegółowoWstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this
Wstęp do programowania obiektowego WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this 1 Nazwa typu Rozmiar Zakres Uwagi bool 1 bit wartości true albo false stdbool.h TYPY ZNAKOWE
Bardziej szczegółowoC++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów
Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów
Bardziej szczegółowoWymiar 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
Bardziej szczegółowo1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
Bardziej szczegółowoPodstawy 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,
Bardziej szczegółowoWstęp do informatyki- wykład 4 Deklaracja zmiennych Typy
1 Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Bardziej szczegółowoC++ 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
Bardziej szczegółowoJĘ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
Bardziej szczegółowoTechniki multimedialne
Techniki multimedialne Digitalizacja podstawą rozwoju systemów multimedialnych. Digitalizacja czyli obróbka cyfrowa oznacza przetwarzanie wszystkich typów informacji - słów, dźwięków, ilustracji, wideo
Bardziej szczegółowoKatedra Elektrotechniki Teoretycznej i Informatyki. wykład 9 - sem.iii. Dr inż. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki wykład 9 - sem.iii Dr inż. M. Czyżak Język ANSI C tablice znaków Tablice znaków (łańcuchy) Tablice znaków stanowią specjalny rodzaj tablic o budowie ułatwiającej
Bardziej szczegółowoPo uruchomieniu programu nasza litera zostanie wyświetlona na ekranie
Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których
Bardziej szczegółowoProgramowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki
Wykład 2 - podstawy języka C++ Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu. Zmienne i ich nazwy, podstawowe typy: całkowite, rzeczywiste, znakowe i napisowe. Instrukcje:
Bardziej szczegółowo1 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,
Bardziej szczegółowoJęzyki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński
Języki programowania Część siódma Przetwarzanie plików amorficznych Konwencja języka C Autorzy Tomasz Xięski Roman Simiński Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie
Bardziej szczegółowoWstęp do programowania
wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.
Bardziej szczegółowo1. 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
Bardziej szczegółowoBiblioteka 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
Bardziej szczegółowoTyp użyty w deklaracji zmiennej decyduje o rodzaju informacji, a nazwa zmiennej symbolicznie opisuje wartość.
Typy danych Aby zapisać w komputerze jakąś daną, trzeba zapamiętać trzy jej podstawowe cechy: miejsce przechowywania informacji, przechowywaną wartość, rodzaj przechowywanej wartości. Typ użyty w deklaracji
Bardziej szczegółowoPliki wykład 2 -przekazywanie strumieni do funkcji -funkcje get(char &) i getline(string)
Pliki wykład 2 -przekazywanie strumieni do funkcji -funkcje get(char &) i getline(string) Dorota Pylak Struktura programu działającego na plikach 2 1) Dyrektywa preprocesora #include //zapewnia
Bardziej szczegółowoPodstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Tablica znaków w językach C i C++ (oraz pochodnych) łańcuch znaków przechowywany jest jako
Bardziej szczegółowoPodstawy algorytmiki i programowania - wykład 1 Tablice powtórzenie Tablice znaków Tablice dwuwymiarowe
Podstawy algorytmiki i programowania - wykład 1 Tablice powtórzenie Tablice znaków Tablice dwuwymiarowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie
Bardziej szczegółowoArchitektura systemów komputerowych Laboratorium 5 Kodowanie liczb i tekstów
Architektura systemów komputerowych Laboratorium 5 Kodowanie liczb i tekstów Marcin Stępniak Informacje. Kod NKB Naturalny kod binarny (NKB) jest oparty na zapisie liczby naturalnej w dwójkowym systemie
Bardziej szczegółowoSystemy liczenia. 333= 3*100+3*10+3*1
Systemy liczenia. System dziesiętny jest systemem pozycyjnym, co oznacza, Ŝe wartość liczby zaleŝy od pozycji na której się ona znajduje np. w liczbie 333 kaŝda cyfra oznacza inną wartość bowiem: 333=
Bardziej szczegółowo2 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
Bardziej szczegółowoPodstawy 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:
Bardziej szczegółowoWstęp do programowania. Wykład 1
Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.
Bardziej szczegółowoMateriał 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
Bardziej szczegółowotablica: 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
Bardziej szczegółowo9 Napisy. Napisy w stylu języka C
9 Napisy Napis (inne nazwy to tekst, łańcuch, ang. string) jest to grupa znaków traktowanych jako całość. Napis może zawierać litery, cyfry, znaki specjalne. Języki C/C++ nie posiadają wbudowanego podstawowego
Bardziej szczegółowoOk. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:
Kurs C++ częśd II Podstawowa obsługa konsoli + zmienne. Autor: Dawid Chróścielski. Wprowadzanie i wyprowadzanie danych z/do konsoli. Jak wyprowadzad dane dowiedzieliśmy się już wcześniej (metoda cout z
Bardziej szczegółowo1 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.
Bardziej szczegółowoStruktura pliku projektu Console Application
Struktura pliku projektu Console Application #include #include using namespace std; int main(int argc, char *argv[]) // to jest komentarz system("pause"); return EXIT_SUCCESS; Na początku
Bardziej szczegółowoJę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.
Bardziej szczegółowoWstę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()
Bardziej szczegółowoPodstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak
Bardziej szczegółowomain( ) 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
Bardziej szczegółowoJęzyk C++ wykład VIII
Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,
Bardziej szczegółowoWstęp do informatyki- wykład 11 Funkcje
1 Wstęp do informatyki- wykład 11 Funkcje Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum
Bardziej szczegółowoMicrosoft 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
Bardziej szczegółowoJę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
Bardziej szczegółowo