1 Przetwarzanie tablic znakowych
|
|
- Przybysław Bogdan Grabowski
- 7 lat temu
- Przeglądów:
Transkrypt
1 1 Przetwarzanie tablic znakowych Ćwiczenie to poświęcone jest poznaniu i przetrenowaniu metod przetwarzania tablic znakowych. Tablice znakowe w języku C i C++ umożliwiają przetwarzanie napisów. Umiejętność sprawnego operowania napisach jest ważna, szczególnie aktualnie, kiedy powszechnym jest przetwarzanie tekstów w formacie HTML czy XML. W ramach tego ćwiczenia przewidziane jest wykonanie zbioru funkcji służących do przetwarzania tablic znakowych. 1.1 Przetwarzanie tablic znakowych w pigułce Ponieważ ćwiczenia często wyprzedzają wykład, poniżej przedstawiam streszczenie materiału wykładowego poświęconego tablicom znakowym. Zawiera ono podstawowe informacje związane z deklarowaniem takich tablic i wykonywaniem na nich podstawowych operacji Tablice znakowe deklaracja, reprezentacja wewnętrzna Tablice znakowe nie różnią się od innych tablic w języku C. Tablica jest zmienną złożoną z elementów tego samego typu, w tym przypadku są to elementy typu char. Istotnym problemem związanym z reprezentowaniem napisów jest ich zmienna długość. Załóżmy, że zdefiniowano następującą zmienną tablicową: char imie[ 80 ]; Następnie do tablicy imie wczytujemy ze strumienia wejściowego (klawiatury) napis. Załóżmy, że to jest trzyznakowy napis "Aga". printf( "Podaj imi ę:" ) gets( imie ); W tym momencie 80-cio znakowa tablica imie zawiera trzyznakowy napis. Jak można określić, że z owych 80-ciu znaków interesują nas tylko pierwsze trzy? Zmienna imie : A g a \ Rysunek 1: Reprezentacja wewnętrzna napisu 79 W języku C i C++ przyjęto koncepcję łańcuchów ze znacznikiem końca (ang. null terminated strings). Oznacza to, że na końcu właściwego napisu dopisany jest znacznik, informujący, że w tym miejscu napis się kończy. Ilustruje to Rysunek 1. Znacznikiem tym jest znak o kodzie ASCII równym zero, reprezentowanym symbolicznie w języku C w postaci literału '\0'. 1
2 Literał łańcuchowy "Aga" w istocie jest reprezentowany nie na trzech znakach, a na czterech. Kompilator dla takiego napisu rezerwuje o jeden bajt w pamięci więcej, tak by zmieścić jeszcze znacznik końca napisu. Wszystkie funkcje biblioteczne języka C zakładają, że na końcu napisu jest umieszczony znacznik '\0'. Co się stanie, gdy go nie będzie? Większość funkcji zgłupieje i będzie przetwarzała feralny napis tak długo, aż napotka w pamięci operacyjnej bajt o wartości 0. Tak bowiem w pamięci operacyjnej reprezentowany jest znacznik '\0'. Należy zwrócić uwagę, że zainicjowanie tablicy na etapie jej deklaracji w sposób następujący: char imie[ 80 ] = A, g, a ; nie dopisuje jawnie znacznika końca. Jednak w przypadku inicjowania tablic (dowolnych, nie tylko znakowych), gdy wyrażeń inicjalizujących jest mniej niż elementów tablicy, w miejsce brakujących inicjatorów wpisywane są wartości zerowe. I tak, przypadkiem bajt o wartości 0 znajdzie się tuż za znakiem '\a'. Można oczywiście zadeklarować i zainicjować tablicę imię w następujący sposób: char imie[ 80 ] = A, g, a, \0 ; co zapewni niezawodne dopisanie znacznika końca we właściwym miejscu. Zwróćmy jednak uwagę, że oba powyższe sposoby inicjowania tablic nie są wygodne. Dlatego dla tablic znakowych dozwolone jest inicjowanie zawartością odpowiedniego literału łańcuchowego: char imie[ 80 ] = "Aga"; Jak wiemy, literał taki zawiera znacznik końca napisu, i zostanie on wstawiony do zmiennej imie. Ilustruje to Rysunek 2. Literał łańcuchowy : A g a \ Zmienna imie : A g a \ Rysunek 2: Literał łańcuchowy inicjalizujący zmienną imie Jak reprezentowany jest napis pusty? To proste znacznik końca napisu występuje na samym jego początku zobacz Rysunek 3. Zmienna imie: \ Rysunek 3: Reprezentacja napisu pustego Na etapie definiowania tablic można je uczynić pustymi wykorzystując jeden z podanych dalej sposobów. char imie[ 80 ] = \0 ; 2
3 lub w sposób bardzie popularny: char imie[ 80 ] = ""; Uczynienie łańcucha pustym po jego zadeklarowaniu zrealizować można następująco: imie[ 0 ] = \0 ; Podstawowe operacja na tablicach znakowych Przetwarzanie tablic polega zwykle na przemaszerowaniu zmienna indeksową po tablicy, dopóki nie ma końca napisu oznaczanego znakiem \0 : int i; char s[ 80 ];... for( i = 0; s[ i ]!= \0 ; i++ ) < tu jakie ś operacje na każdym znaku s[ i ] > Wyprowadzanie napisu do stdout znak po znaku: void put_string( char s[] ) int i; for( i = 0; s[ i ]!= \0 ; i++ ) putchar( s[ i ] ); choć wielu programistów napisze to tak: void put_string( char s[] ) int i; for( i = 0; s[ i ]!= \0 ; putchar( s[ i++ ] ) ) ; Do manipulowania tablicami znakowymi opracowano szereg funkcji bibliotecznych (plik nagłówkowy string.h)... większość z nich można łatwo napisać samemu! Gdy trzeba znać liczbę znaków w łańcuchu, używamy funkcji strlen. Jej rezultatem jest liczba znaków napisu, przekazanego tej funkcji parametrem. #define N 80 char imie[ N ] = "Aga";... printf( "\nliczba znaków w %s wynosi:%d", imie, strlen( imie ) ); Dwie możliwe implementacje funkcji strlen: int strlen( char s[] ) /* Wersja 1-sza */ int len = 0; while( s[ len ]!= '\0' ) len++; return len; 3
4 int strlen( char s[] ) /* Wersja 2-ga */ int len; for( len = 0; s[ len ]!= '\0'; len++ ) ; return len; Przykładowe funkcje operujące na tablicach znakowych: char a[ N ] = Ala ; char b[ N ]; char C[ N ]; /*Przepisanie zawartości a do b, teraz w b to samo co w a: Ala */ strcpy( b, a ); /*Tak samo należy przepisywać zawartość literałów łańcuchowych */ strcpy( c, ma kota ); /* Można równie ż tak zerować tablic ę znakow ą */ strcpy( b, ); /* Ale szybciej jest tak: b[ 0 ] = \0 */ /* Łączenie (sklejanie) napisów. Zawartość c zostaje doklejona do a : Ala ma kota */ strcat( a, c ); /* Porównywanie łańcuchów znakowych realizuje funkcja strcmp */ printf( \nłańcuchy znaków %s i % s, a, b ) if( strcmp( a, c )== 0 ) printf( s ą jednakowe ); else printf( s ą różne ); /* Porównywanie łańcuchów znakowych bez uwzględnienia wielkości liter, funkcja stricmp */ strcpy( a, ALA ); strcpy( b, ala ); printf( \nłańcuchy znaków %s i % s, a, b ) if( stricmp( a, b ) == 0 ) printf( s ą jednakowe ); else printf( s ą różne ); Uwaga mimo iż wolno inicjalizować tablicę literałem łańcuchowym na etapie deklaracji: char imie[ 80 ] = "Aga"; nie wolno przypisywać literałów łańcuchowych do tablic: imie = "Aga";<<= Błąd oraz tablic między sobą: char imie[ 80 ] = "Aga"; char drugie[ 80 ]; drugie = imie; <<= Błąd 4
5 Jak zatem przypisać do tablicy znakowej literał lub zawartość innej tablicy? Należy do tego użyć funkcji kopiowania łańcuchów znakowych strcpy. strcpy( imie, "Aga" ); strcpy( drugie, imie ); Jak działa funkcja kopiowania łańcuchów? Funkcja maszeruje po kolejnych znakach łańcucha źródłowego (aż do napotkania znacznika końca) i kopiuje zawartość każdego odwiedzonego elementu tablicy źródłowej do odpowiedniego elementu tablicy docelowej. Ilustruje to poglądowo Rysunek 4. char s1[ 80 ] = "Język C"; char s2[ 20 ];... strcpy( s2, s1 ); s i++ s1... J ê z y k C \ d s2 J ê z y k C \ void strcpy( char d[], char s[] ) int i; for( i = 0; s[ i ]!= '\0'; i++ ) d[ i ] = s[ i ]; d[ i ] = '\0'; Rysunek 4: Ilustracja działania funkcji strcpy Inne operacja na napisach konwersja wielkości liter strcpy( a, ALA ); strcpy( b, ala ); /* Konwersja liter - małe na duże: strupr, duże na małe: strlwr */ strlwr( a ); /* Po wywołaniu strlwr a zawiera napis ala */ strupr( b ); /* Po wywołaniu strupr a zawiera napis ALA */ Przykładowe implementacje funkcji strlwr i strupr mogą mieć następującą postać: void strupr( char s[] ) int i; for( i = 0; s[ i ]!= '\0'; i++ ) s[ i ] = toupper( s[ i ] ); void strlwr( char s[] ) int i; 5
6 for( i = 0; s[ i ]!= '\0'; i++ ) s[ i ] = tolower( s[ i ] ); Funkcje konwersji wielkości liter wykorzystują do zamiany wielkości pojedynczych znaków odpowiednio funkcji tolower i toupper. Mogą one mieć następującą postać (dla kodowania znaków zgodnego z ASCII): char tolower( char c ) return ( c >= 'A' && c <= 'Z' )? c + 32 : c; char toupper( char c ) return ( c >= 'a' && c <= 'z' )? c - 32 : c; Oczywiście powyższe funkcje występują w bibliotekach jeżyka C, znaleźć je można w pliku nagłówkowym ctype.h. 1.2 Zestaw funkcji do własnoręcznej implementacji W ramach ćwiczeń należy zaimplementować funkcje opisane w przedstawionym dalej programie-szablonie Funkcja str_len Własna implementacja funkcji wyznaczającej długość napisu liczoną w znakach, prototyp: int str_len( char s[] ); char s[] tablica zawierająca napis, którego długość jest wyznaczana. Długość napisu liczona w znakach, czli liczba znaków przed znacznikiem końca napisu '\0'. char imie[ 80 ] = "Kunegunda"; int l = str_len( imie ); printf( "Dlugosc napisu %s to %d", imie, l ); Funkcja lwr_str_cnt Wyznacza liczbę małych liter w napisie przekazanym parametrem, prototyp: int lwr_str_cnt( char s[] ); 6
7 char s[] tablica zawierająca napis, w którym należy wyznaczyć liczbę małych liter. Liczba małych liter w napisie s. char napis[ 80 ] = "ABCabc"; int l = lwr_str_cnt( napis ); printf( "Liczba malych liter w napisie %s to %d", napis, l ); Funkcja upr_str_cnt Wyznacza liczbę dużych liter w napisie przekazanym parametrem, prototyp: int upr_str_cnt( char s[] ); char s[] tablica zawierająca napis, w którym należy wyznaczyć liczbę dużych liter. Liczba dużych liter w napisie s. char napis[ 80 ] = "ABCabc"; int l = upr_str_cnt( napis ); printf( "Liczba duzych liter w napisie %s to %d", napis, l ); Funkcja dgt_str_cnt Wyznacza liczbę cyfr w napisie przekazanym parametrem, prototyp: int dgt_str_cnt( char s[] ); char s[] tablica zawierająca napis, w którym należy wyznaczyć cyfr. Liczba cyfr w napisie s. char napis[ 80 ] = "ABC123"; int l = dgt_str_cnt( napis ); printf( "Liczba cyfr w napisie %s to %d", napis, l ); Funkcja nalpha_str_cnt Wyznacza liczbę liter i cyfr w napisie przekazanym parametrem, prototyp: 7
8 int nalpha_str_cnt( char s[] ); char s[] tablica zawierająca napis, w którym należy wyznaczyć liczbę liter i cyfr. Liczba liter i cyfr w napisie s. char napis[ 80 ] = "ABC123"; int l = nalpha_str_cnt( napis ); printf( "Liczba liter i cyfr w napisie %s to %d", napis, l ); Funkcja chr_str_cnt Wyznacza liczbę wystąpień znaku (pierwszy parametr) w napisie przekazanym drugim parametrem, prototyp: int chr_str_cnt( char c, char s[] ); char c znak poszukiwany w napisie, char s[] tablica zawierająca napis do przeszukania. Liczba wystąpień znaku c w napisie s. char napis[ 80 ] = "Jezyk c i C++"; int l = chr_str_cnt( 'C', napis ); printf( "Liczba wystapien znaku %c w napisie %s to %d", 'C', napis, l ); Funkcja chr_str_cnt Wyznacza pozycję (indeks) pierwszego wystąpienia znaku (pierwszy parametr) w napisie przekazanym drugim parametrem, prototyp: int chr_str_pos( char c, char s[] ); char c znak poszukiwany w napisie, char s[] tablica zawierająca napis do przeszukania. Pozycja (indeks) pierwszego wystąpienia znaku c w napisie s. 8
9 char napis[ 80 ] = "Jezyk c i C++"; int l = chr_str_pos( 'C', napis ); printf( "Znak %c wystepuje w napisie %s na pozycji %d", 'C', napis, l ); Funkcja chr_str_pos Wyznacza pozycję (indeks) pierwszego wystąpienia znaku (pierwszy parametr) w napisie przekazanym drugim parametrem, prototyp: int chr_str_pos( char c, char s[] ); char c znak poszukiwany w napisie, char s[] tablica zawierająca napis do przeszukania. Pozycja (indeks) pierwszego wystąpienia znaku c w napisie s lub 1, gdy znak nie został znaleziony. char napis[ 80 ] = "Jezyk c i C++"; int l = chr_str_pos( 'C', napis ); if( l!= -1 ) printf( "Znak %c wystepuje w napisie %s na pozycji %d", 'C', napis, l ); else puts( "Znak nie został znaleziony" ); Funkcja chr_str_rpos Wyznacza pozycję (indeks) ostatniego wystąpienia znaku (pierwszy parametr) w napisie przekazanym drugim parametrem, prototyp: int chr_str_rpos( char c, char s[] ); char c znak poszukiwany w napisie, char s[] tablica zawierająca napis do przeszukania. Pozycja (indeks) ostatniego wystąpienia znaku c w napisie s lub 1 gdy znak nie został znaleziony. char napis[ 80 ] = "Jezyk c i C++"; int l = chr_str_pos( 'C', napis ); 9
10 if( l!= -1 ) printf( "Znak %c w %s wystepuje na pozycji %d, liczac od konca", 'C', napis, l ); else puts( "Znak nie został znaleziony" ); Funkcja str_rev Odwraca kolejność znaków w napisie przekazanym parametrem, prototyp: void str_rev( char s[] ); char s[] tablica zawierająca napis do odwrócenia. brak. char napis[ 80 ] = "Jezyk C i C++"; printf( "Napis przed odwroceniem %s: ", napis ); str_rev( napis ); printf( "Napis po odwroceniu %s: ", napis ); 1.3 Szablon programu Przedstawiony niże kod stanowi szablon programu, pozwalającego na realizację opisanych wyżej funkcji. Oczywiście ciała funkcji znajdujące sie w szablonie są puste, ich napisanie jest przedmiotem tego ćwiczenia. napis_s.c Szablon do cwiczenia wpisaniu funkcji operujacych na lancuchach znakowych #include <stdio.h> #include <stdlib.h> #define MAX_LEN 128 int str_len( char s[] ) Wlasna implementacja funkcji wyznaczajacej dlugosc napisu liczona w znakach ktorego dlugosc jest wyznaczana 10
11 dlugosc napisu liczona w znakach int str_len( char s[] ) int lwr_str_cnt( char s[] ) Wyznacza liczbe malych liter w napisie s Liczba malych liter w napisie s int lwr_str_cnt( char s[] ) int upr_str_cnt( char s[] ) Wyznacza liczbe duzych liter w napisie s Liczba duzych liter w napisie s int upr_str_cnt( char s[] ) int dgt_str_cnt( char s[] ) Wyznacza liczbe cyfr w napisie s Liczba cyfr w napisie s int dgt_str_cnt( char s[] ) int nalpha_str_cnt( char s[] ) Wyznacza liczbe liter i cyfr w napisie s 11
12 Liczba liter i cyfr w napisie s int nalpha_str_cnt( char s[] ) int chr_str_cnt( char c, char s[] ) Wyznacza liczbe wystapien znaku c w s char c -- znak poszukiwany w napisie Liczba wystapien znaku c w napisie s int chr_str_cnt( char c, char s[] ) int chr_str_pos( char c, char s[] ) Wyznacza indeks (pozycje w napisie) pierwszego wystapienia znaku c w s char c -- znak poszukiwany w napisie Pozycja znaku w tablicy liczona od 0 lub -1 gdy znak nie znaleziony int chr_str_pos( char c, char s[] ) int chr_str_rpos( char c, char s[] ) Wyznacza indeks (pozycje w napisie) ostatniego wystapienia znaku c w s char c -- znak poszukiwany w napisie 12
13 Pozycja znaku w tablicy liczona od 0 lub -1 gdy znak nie znaleziony int chr_str_rpos( char c, char s[] ) void str_rev( char s[] ) Odwraca kolejnosc znakow w tablicy s Brak void str_rev( char s[] ) /* Zadaniem fukcji main jest przetestowanie zaimplementowanych wyzej funkcji */ int main() char line[ MAX_LEN ]; char c; int pos; printf( "\n\nwpisz linie tekstu: " ); gets( line ); printf( "\nliczba znakow : %d", str_len( line ) ); printf( "\nliczba malych liter : %d", lwr_str_cnt( line ) ); printf( "\nliczba duzych liter : %d", upr_str_cnt( line ) ); printf( "\nliczba cyfr : %d", dgt_str_cnt( line ) ); printf( "\nliczba innych znakow : %d", nalpha_str_cnt( line ) ); printf( "\n\npodaj pojedynczy znak: " ); c = getchar(); fflush( stdin ); printf( "\nliczba wystapien znaku %c : %d", c, chr_str_cnt( c, line ) ); if( ( pos = chr_str_pos( c, line ) )!= -1 ) printf( "\npierwsze wystapienie znaku %c od poczatku : %d", c, pos + 1 ); else printf( "\nznak %c nie zostal znaleziony", c ); if( ( pos = chr_str_rpos( c, line ) )!= -1 ) printf( "\npierwsze wystapienie znaku %c od konca : %d", c, pos + 1 ); else printf( "\nznak %c nie zostal znaleziony", c ); printf( "\n\nnapis oryginalny : %s", line ); str_rev( line ); 13
14 printf( "\nnapis odwrocony : %s", line ); ( void )getchar(); return EXIT_SUCCESS; 14
Tablice deklaracja, reprezentacja wewnętrzna
Tablice deklaracja, reprezentacja wewnętrzna Tablica jest zmienną złożoną z elementów tego samego typu. Obejmuje ona ciągły obszar pamięci operacyjnej dokładnie tak duży, aby zmieścić wszystkie jej elementy.
Bardziej szczegółowoŁańcuchy znaków. Agnieszka Nowak - Brzezińska
Łańcuchy znaków Agnieszka Nowak - Brzezińska Warto najpierw zajrzeć http://gpl.ii.us.edu.pl/~romex/pp_cxx/pp_cxx_w_07.pdf Wszystkie funkcje są omówione w wykładzie! Etap I Napisz program w całości na tablicach
Bardziej szczegółowoJę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 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ółowoWprowadzenie do programowania w języku C
Wprowadzenie do programowania w języku C Część piąta Tablice koncepcja, reprezentacja, przetwarzanie Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera
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ół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 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ół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ółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część dziewiąta Tablice a zmienne wskaźnikowe Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera
Bardziej szczegółowoTablice, 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
Bardziej szczegółowoJę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 Tablice a zmienne wskaźnikowe Nazwa tablicy jako wskaźnik na
Bardziej szczegółowoĆwiczenia podstawowe, zestaw 5, część 1
Ćwiczenia podstawowe, zestaw 5, część 1 1 Napisz zestaw funkcji identyfikujących rodzaj znaku Należy napisać funkcje, pozwalające na identyfikowanie typu znaku przekazanego parametrem. Załóżmy, że tworzymy
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ółowoint 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,
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część dziewiąta Tablice a zmienne wskaźnikowe Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści
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ół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ółowoWykład 6. Operacje na łańcuchach znakowych
Wykład 6. Operacje na łańcuchach znakowych 1. Łańcuch znaków jako tablica Do przechowania łańcucha znaków służy tablica znakowa. W kolejnych pozycjach tej tablicy są pamiętane kolejne znaki. Ostatnim znakiem
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ółowo#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
Bardziej szczegółowoStałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane
Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część jedenasta Przetwarzanie plików amorficznych Konwencja języka C Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
Bardziej szczegółowoKatedra Elektrotechniki Teoretycznej i Informatyki. wykład 7- sem.iii. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki wykład 7- sem.iii M. Czyżak Język C tablice znaków Tablice znaków (łańcuchy) Tablice znaków stanowią specjalny rodzaj tablic o budowie ułatwiającej przetwarzanie
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ółowoWstę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,
Bardziej szczegółowoĆwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.
Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 4 Obsługa plików Kraków 2010 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim
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 1
Podstawy programowania 1 Krzysztof Grudzień kgrudzi@kis.p.lodz.pl Wykład nr 2 1 Plan spotkań Wskaźniki Tablice jednowymiarowe & wska źniki. Programowanie w C. Wikibooks 2 Co to jest wskaźnik?? Wskaźnik
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ółowoProgramowanie Proceduralne
Programowanie Proceduralne Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 7 strlen size_t strlen(char const *s); Oblicza długość napisu wskazywanego przez s Przykładowy
Bardziej szczegółowoSpis treści JĘZYK C - ŁAŃCUCHY ZNAKÓW. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF22
Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 2 Kod przedmiotu: ES1D300 017 (studia stacjonarne)
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ółowo#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
Bardziej szczegółowoTablice (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
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część jedenasta Reprezentacja i przetwarzanie plików Konwencja języka C Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
Bardziej szczegółowo1 Funkcje i ich wykorzystanie
1 Funkcje i ich wykorzystanie Ćwiczenie to poświęcone jest tworzeniu programu wykorzystującego podprogramy funkcje jako narzędzia do strukturalizacji i hierarchizacji kodu programu. Program ten pozwala
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 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ółowoLaboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski
Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 7 kwietnia 2014 1. Wprowadzenie Pierwsza część instrukcji zawiera informacje
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ółowoWstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Dyrektywy preprocesora #include #define Interakcja
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część trzynasta Tablice struktur, pliki struktur Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści
Bardziej szczegółowoStruktury czyli rekordy w C/C++
Struktury czyli rekordy w C/C++ Wprowadzenie do programowania w języku C struktury. pola bitowe, unie Struktury (rekordy) są złożonymi zmiennymi, składającymi się z elementów różnych typów zwanych polami,
Bardziej szczegółowoTablice wielowymiarowe. Przykład tablica 2-wymiarowa. Przykład. Przykład 3-wymiarowy. Tak naprawdę nie istnieją w C! Rozważmy tablicę o rozmiarze 3x2
Tablice wielowymiarowe Przykład tablica 2-wymiarowa Tak naprawdę nie istnieją w C! Tak naprawdę C i Java dopuszczają tworzenie tablic tablic tablica 2-wymiarowa = tablica (zwykłych) tablic tablica 3-wymiarowa
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ół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ół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ółowo4. Gra w [Za dużo, za mało] (zobacz wykład)
1 Wprowadzenie 1. Ćwiczenie 1 łagodny start. Obejmuje praktyczną realizację programów omówionych na pierwszym wykładzie. Należy zastosować wersje wykorzystujące elementy języka C++. Ćwiczenia do wykonania:
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ółowoObsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013
Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Obsługa plików Kraków 2013 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim będziemy mogli
Bardziej szczegółowoSpis treści JĘZYK C - ŁAŃCUCHY ZNAKÓW. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF10Z
Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 1 Kod przedmiotu: EZ1C200 010 (studia niestacjonarne)
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ół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ółowoISO/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
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ółowoWprowadzenie do programowania w języku C
Wprowadzenie do programowania w języku C Część szósta Zmienne wskaźnikowe koncepcja, zastosowania, sztuczki i triki Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
Bardziej szczegółowoOPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)
OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;
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ół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ółowoLaboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, 2015. Wydział Matematyki Stosowanej Politechniki Śląskiej
Laboratorium 1 - Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Punkty Na laboratorium można zdobyć 60 punktów. Ocena ogólna z zajęć:
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ółowoFunkcje zawarte w bibliotece < io.h >
PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece
Bardziej szczegółowoProgramowanie w C Typ wskaźnikowy do typu znakowego i operacje na łańcuchach
Programowanie w C Typ wskaźnikowy do typu znakowego i operacje na łańcuchach Artur Opaliński (pokój E112) e-mail: (p. wykład administracyjny) URL: (p. wykład administracyjny) Treść wykładu Podstawowe funkcje
Bardziej szczegółowoPlik jest reprezentowany przez strumień znaków (bajtów) o zmiennej długości. Koniec strumienia identyfikowany jest znacznikiem końca pliku EOF.
Pliki w C++ Plik jest reprezentowany przez strumień znaków (bajtów) o zmiennej długości. Koniec strumienia identyfikowany jest znacznikiem końca pliku EOF. Z każdym strumieniem związany jest wskaźnik bieżącej
Bardziej szczegółowoLaboratorium Podstaw Informatyki Strona 1. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 2. Funkcje, operatory i wyrażenia.
Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 2 Funkcje, operatory i wyrażenia. Kraków 2010 Laboratorium Podstaw Informatyki Strona 2 Funkcje
Bardziej szczegółowoTablice 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).
Bardziej szczegółowoWykład 2 Składnia języka C# (cz. 1)
Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu
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ółowoFunkcje zawarte w bibliotece < io.h >
PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece
Bardziej szczegółowoTABLICE 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
Bardziej szczegółowoWYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński
WYKŁAD 8 Funkcje i algorytmy rekurencyjne Proste przykłady Programy: c3_1.c..., c3_6.c Tomasz Zieliński METODY REKURENCYJNE (1) - program c3_1 ======================================================================================================
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ół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ół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ół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ół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ół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 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ółowowykł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
Bardziej szczegółowoC++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU
Inicjalizacja agregatowa zmiennej tablicowej int a[5] = 1,2,3,4,5 INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Struktury są również agregatami, dlatego: struct X double f; char c; X x1 = 1, 2.2, 'c' Ale
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ółowoLaboratorium 10: Maszyna stanów
Wojciech Myszka Laboratorium 10: Maszyna stanów 2016-05-07 09:05:39 +0200 1. Wprowadzenie Laboratorium poświęcone jest operacjom na napisach (ciągach znaków). Przypominam, że: a to stała typu char o wartości
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ółowoUwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
Bardziej szczegółowoPODSTAW PROGRAMOWANIA WYKŁAD 7 ŁAŃCUCHY
PODSTAW PROGRAMOWANIA WYKŁAD 7 ŁAŃCUCHY Łańcuch tekstowy w języku c jest pamiętany jako jednowymiarowa tablica znaków zakończona bajtem 0. char * tekst = dzień dobry wszystkim ; char tekst[22]= dzień dobry
Bardziej szczegółowoWskaź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
Bardziej szczegółowoOperacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia
Materiały Operacje na plikach Informatyka Operacje wejścia-wyjścia w C/C++: Podejście proceduralne Podejście obiektowe Standardowe strumienie wejścia i wyjścia stdin - strumień wejściowy (klawiatura) cin
Bardziej szczegółowoJęzyki programowania. Tablice struktur, pliki struktur. Część ósma. Autorzy Tomasz Xięski Roman Simiński
Języki programowania Część ósma Tablice struktur, pliki struktur 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
Bardziej szczegółowoczęść 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
Bardziej szczegółowoPowyż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. Tablice dynamiczne Początkowa zadeklarowana wielkość tablicy czasami może okazać niewystarczająca, lub nadmierna. Dynamiczna alokacja pamięci wykorzystywana jest w celu otrzymania bądź zwolnienia pamięci
Bardziej szczegółowoKURS C/C++ WYKŁAD 6. Wskaźniki
Wskaźniki KURS C/C++ WYKŁAD 6 Każda zmienna ma unikalny adres wskazujący początkowy obszar pamięci zajmowany przez tą zmienną. Ilość pamięci zajmowanej przez zmienną zależy od typu zmiennej. Adres można
Bardziej szczegółowoWstę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
Bardziej szczegółowoPodstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Pętle Pętla jest konstrukcją sterującą stosowaną w celu wielokrotnego wykonania tego samego zestawu instrukcji jednokrotne
Bardziej szczegółowoPliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego
Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego 1 /24 Pisanie pojedynczych znaków z klawiatury do pliku #include void main(void) { FILE *fptr; // wkaznik do pliku, tzw. uchwyt
Bardziej szczegółowoPliki. Informacje ogólne. Obsługa plików w języku C
Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego
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ółowoINFORMATYKA Studia Niestacjonarne Elektrotechnika
INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl
Bardziej szczegółowo