Wykład 6. Operacje na łańcuchach znakowych
|
|
- Grzegorz Popławski
- 7 lat temu
- Przeglądów:
Transkrypt
1 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 musi być znak końca, czyli znak ASCII o numerze 0. Poniżej pokazano przykład deklaracji tablicy znakowej, która może przechowywać łańcuch o maksymalnej długości 9 znaków. Tablica ma 10 elementów, bo musi jeszcze pomieścić znak końca. char s[10]; Deklarując taka tablicę, można do niej od razu wpisać jakiś łańcuch, na przykład char s[10]='p','r','o','g','r','a','m','\0'; Nie wolno wtedy pominąć końcowego znaku '\0'. Prostszy sposób polega na przypisaniu do deklarowanej tablicy odpowiedniej stałej łańcuchowej: char s[r]= "program"; Końcowy znak \0 wpisze się teraz automatycznie. s[0] s[1] s[2] s[3] s[4] s[5] s[6] char s[10]; p r o g r a m s[7] \0 s[8] s[9] Rys. 1. Przykład tablicy przechowującej łańcuch znakowy
2 2 2. Pisanie i czytanie łańcuchów 2.1. Użycie printf i scanf Łańcuch można wyprowadzić na ekran za pomocą instrukcji printf. Jeżeli chcemy wyprowadzić tylko jawny tekst, to umieszczamy go pomiędzy apostrofami, bez kodu formatującego. Do tekstu można dokleić znak, na przykład znak przejścia na nowy wiersz: printf( \npodaj imie i nazwisko: ); Pisząc zawartość tablicy pamiętającej łańcuch, stosuje się kod formatujący "%s", jak poniżej: char wezwanie[40]= Podaj nazwisko: ; printf( %s, wezwanie); Łańcuch można odczytać z klawiatury za pomoc instrukcji scanf z kodem formatującym "%s". Przy tym: 1. Przed nazwą tablicy, w której jest zapamiętywany łańcuch, nie ma operatora adresu, ponieważ nazwa tablicy jest jej adresem. 2. Jeżeli czytamy łańcuch zawierający spację, to zostanie zapamiętana tylko ta jego część, która poprzedza spację, ponieważ spacja zostanie potraktowana jako separator. Przykład użycia funkcji printf i scanf do wczytania danej, którą jest nazwisko osoby: char name[40]; printf( Podaj nazwisko: ); scanf( %s,name) 2.2. Użycie puts i gets Funkcje biblioteczne puts i gets służą do wypisywania i wczytywania łańcuchów. Funkcje puts i gets nie wymagają kodów formatujących.
3 Funkcja puts wyprowadza na ekran łańcuch będący jej argumentem; następnie przesuwa kursor na początek następnej linii ekranu. Argument funkcji puts może być jawną stałą łańcuchową, lub nazwą tablicy, która przechowuje łańcuch. Funkcja gets odczytuje łańcuch z klawiatury i zapamiętuje go w tablicy, której nazwa jest jej argumentem. Funkcja gets odczytuje bez problemu także łańcuchy, zawierające spacje. Przykład: char name[40]; puts( Podaj nazwisko: ); gets(name); Uwaga: Funkcji gets oraz scanf nie należy używać jedna po drugiej. Może to powodować błędny odczyt danych. 3. Odwoływanie się do znaków łańcucha Do elementów łańcucha odwołujemy się tak, jak do elementów tablicy (przez indeks lub wskaźnik). Długość łańcucha pamiętanego w tablicy może być mniejsza, niż rozmiar tablicy. Do określenia długości łańcucha aktualnie pamiętanego w tablicy służy funkcja biblioteczna strlen, opisana w zbiorze nagłówkowym <string.h>. Przykładzie poniżej pokazuje dwie różne realizacje funkcji, która zlicza liczbę wystąpień znaku z w łańcuchu s. Funkcja ile_z1 stosuje pętlę for ze zmienną licznikową j, która służy jako indeks kolejnych znaków łańcucha. Liczba kroków jest wyznaczona przez funkcję strlen. Funkcja ile_z2 wykorzystuje pętlę while i wskaźnikowe odwołania do elementów. Warunek działania pętli to po prostu *(s+j). Gdy j-ty znak jest znakiem końca o wartości liczbowej zero, instrukcja while przestaje działać i stan licznika ile zostaje przekazany przez return. 3
4 4 Przykład: Funkcje, zwracające liczbę znaków z w łańcuchu s. int ile_z1(char z, char s[]) int j, ile=0; for(j=0;j<strlen(s);j++) if(s[j]==z) ile++; return ile; int ile_z2(char z, char *s) int j=0, ile=0; while(*(s+j)) if(*(s+j)==z) ile++; j++; return ile; 4. Kopiowanie łańcuchów W języku C++ jest specjalna funkcja biblioteczna strcpy, przeznaczona do kopiowania łańcuchów (zbiór naglówkowy <string.h>). Instrukcja wywołania funkcji strcpy ma dwa argumenty. Pierwszy argument to nazwa zmiennej tablicowej, do której kopiujemy łańcuch. Drugi argument to kopiowany łańcuch. Ten drugi argument może mieć postać jawnej stałej łańcuchowej, lub nazwy tablicy, która pamięta kopiowany łańcuch. Na przykład, chcąc zapisać w tablicy name1 imię Jacek, a w tablicy name2 imię Beata, użyjemy instrukcji: char name1[20],name2[20],bufor[20]; strcpy(name1, Jacek ); strcpy(name2, Beata ); Zamieńmy teraz miejscami zawartość tablic name1 oraz name2. Będzie to wymagało trzech instrukcji:
5 strcpy(bufor,name1); strcpy(name1,name2); strcpy(name2,bufor); 5. Funkcje biblioteczne operujące na łańcuchach W języku C++ występuje kilka funkcji bibliotecznych, zdefiniowanych w zbiorze nagłówkowym <string.h>, które są przeznaczone do operacji na łańcuchach znakowych. Zestawiono je tabeli 1. Tabela 1. Funkcje biblioteczne operujące na łańcuchach 5 Instrukcja wywołania char *p=strcat(s1,s2); strcpy(s,s1); strncpy(s,s1,n); int d=strlen(s); int d=strcmp(s1,s2); int d=stricmp(s1,s2); int d=strncmp(s1,s2,n); char *p=strstr(s,s1); Działanie funkcji Skleja łańcuch s1 z łańcuchem s2. Zwraca wskaźnik na łańcuch wynikowy Kopiuje łańcuch s1 do łańcucha s. Argument s1 może być także stałą łańcuchową. Kopiuje n początkowych znaków łańcucha s1 do łańcucha s. Zwraca aktualną długość łańcucha s, bez uwzględnienia znaku końca. Porównuje łańcuchy s1 i s2. Zwraca wartość: = = 0, gdy łańcuchy są jednakowe, > 0, gdy s1 jest alfabetycznie większy od s2, < 0, gdy s2 jest alfabetycznie mniejszy od s1. Porównuje łańcuchy s1 i s2 bez rozróżniania dużych i małych liter. Porównuje tylko n początkowych znaków łańcuchów s1 i s2. Zwraca wskaźnik na początek pierwszego wystąpienia podłańcucha s1 w łańcuchu s. Gdy s nie zawiera s1, zwraca wartość NULL. Następujące dwa przykłady ilustrują niektóre możliwe zastosowania funkcji łańcuchowych. W przykładzie poniżej pokazano program z funkcją własną, która z łańcucha usuwa wszystkie wystąpienia danego podłańcucha. Opis działania funkcji usun: W każdym kroku pętli while instrukcja strstr(p,p1) sprawdza, czy w łańcuchu p występuje podłańcuch p1. Jeżeli tak nie jest, pętla ulega przerwaniu za
6 6 pomocą instrukcji break i funkcja kończy działanie. W przeciwnym przypadku, za pomocą instrukcji strcpy(pos,pos+d); jest usuwane kolejne wystąpienie podłańcucha p1 (d jest długością podłańcucha p1). Mechanizm działania funkcji strcpy przy usuwaniu fragmentu łańcucha wyjaśnia rysunek 9.2. Pierwszy argument funkcji nie zawsze musi być nazwą łańcucha, czyli wskaźnikiem na początek łańcucha s[0]. Na rys. 9.2 wskaźnik pos wskazuje na element s[4], natomiast wskaźnik pos+3 wskazuje na element s[7]. Ponieważ pos jest pierwszym argumentem funkcji strcpy, a pos+3 jest jej drugim argumentem, zostaną przekopiowane wszystkie znaki z pozycji nr 7, 8, 9, 10, 11 na pozycje nr 4, 5, 6, 7, 8. Poprzednia zawartość pozycji 4, 5, 6, które zajmował usuwany podłańcuch big, zostanie tym samym wymazana. Stan początkowy s s[0] s[1] s[2] s[3] pos s[4] s[5] s[6] pos+3 s[7] s[8] s[9] s[10] s[11] T h e b i g c a t \0 Stan po wykonaniu instrukcji: strcpy(pos,pos+3); T h e c a t \0 Rys. 2. Przykład użycia funkcji strcpy do usunięcia fragmentu łańcucha Przykład: Usuwanie z łańcucha wszystkich wystąpień podłańcucha #include <stdio.h> #include <conio.h> #include <string.h> //dla strstr,strcpy,strlen void usun(char[],char[]);
7 int main () char s1[81]; char s[81]= "Jak sie nie ma, co sie lubi, to sie lubi, co sie ma."; printf("\npierwotna postac lancucha:\n%s\n",s); printf("\npodaj usuwany podlancuch: "); gets(s1); printf("\nkolejne postacie lancucha:\n"); usun(s,s1); printf("\nkoncowa postac lancucha:\n%s\n",s); getch(); return 0; void usun(char s[],char s1[]) char * pos; int d=strlen(s1); while(1) pos=strstr(s,s1); if(pos==null) break; strcpy(pos,pos+d); puts(s); Poniżej pokazano wydruk uzyskany przy usuwaniu podłańcucha sie. Dzięki umieszczeniu w pętli while instrukcji puts można obserwować, jak w kolejnych krokach algorytmu zmienia się postać łańcucha. 7 Pierwotna postac lancucha: Jak sie nie ma, co sie lubi, to sie lubi, co sie ma. Podaj szukany podlancuch: sie Kolejne postacie lancucha: Jak nie ma, co sie lubi, to sie lubi, co sie ma. Jak nie ma, co lubi, to sie lubi, co sie ma. Jak nie ma, co lubi, to lubi, co sie ma. Jak nie ma, co lubi, to lubi, co ma. Koncowa postac lancucha: Jak nie ma, co lubi, to lubi, co ma.
8 8 Następną ilustrację zastosowania bibliotecznych funkcji łańcuchowych stanowi pokazana w przykładzie poniżej funkcja własna licz, która znajduje liczbę wystąpień podłańcucha w łańcuchu. Przykład: Znajdowanie liczby wystąpień podłańcucha w łańcuchu. int licz(char *p,char *p1) int n=strlen(p),n1=strlen(p1); int j=0,w=0; while(j<n-n1+1) if(strncmp(p+j,p1,n1)) j++; else w++; j+=n1; return w; Opis działania funkcji licz: Funkcja ma dwa argumenty: Łańcuch p i szukany podłańcuch p1. Jako licznik wystąpień zastosowano zmienną w, a jako licznik indeksów zmienną j. W pętli while za pomocą instrukcji: strncmp(p+j,p1,n1) porównujemy n1 pozycji łańcucha p, poczynając od pozycji o adresie p+j (a więc fragment p, rozpoczynający się od znaku p[j]), z podłańcuchem p1, przy czym n1 jest długością p1. Jeżeli nie ma zgodności, to funkcja zwraca wartość różną od zera, więc warunek po if jest spełniony. Następuje inkrementacja indeksu j++, dzięki czemu w następnym kroku porównywany fragment łańcucha będzie przesunięty o jedną pozycję w prawo. W przypadku, gdy badany fragment łańcucha p jest identyczny z szukanym podłańcuchem p1, funkcja strncmp zwraca zero, więc warunek po if nie jest spełniony, wobec czego stan licznika w zwiększa się o jeden. Jednocześnie licznik
9 indeksów j zwiększa stan o wartość n1, aby następny badany fragment p rozpoczynał się za znalezionym podłańcuchem. Warunkiem zakończenia działania pętli jest osiągnięcie przez zmienną indeksową wartości j=n-n1. Dalsze zwiększanie indeksu nie miałoby sensu, bo szukany podłańcuch nie mógłby się zmieścić w krótszym od tej wartości granicznej końcowym fragmencie łańcucha. O N W I E,. \0 9 Rys. 3. Ilustracja metody zliczania wystąpień podłańcucha w łańcuchu 6. Tablice łańcuchów 6.1. Przykładowe operacje na tablicy łańcuchów W programie poniżej pokazano sposób definiowania tablicy łańcuchów. Łańcuch jest tablicą, więc tablica t, która zawiera M łańcuchów N-znakowych, jest tablicą dwuwymiarową: char t[m][n]; Tablicę taką można wstępnie zapełnić przy deklarowaniu, wpisując wartości poszczególnych wierszy w cudzysłowach jako stałe łańcuchowe. Pokazany program korzysta z dwóch funkcji własnych, operujących na tablicy łańcuchów. Opis funkcji sortuj: Funkcja porządkuje wiersze w kolejności alfabetycznej. Zastosowano znany algorytm bąbelkowy, jednak
10 10 w jego implementacji łańcuchowej występują dwie ważne cechy, różniące ją od postaci używanej do sortowania tablic liczbowych: 1. Do porównania wierszy nie wolno stosować operatorów relacyjnych > lub <, które nie działają na tablicach. Zamiast tego stosujemy funkcję strcmp. 2. Do kopiowania wierszy tablicy przy ich zamianie miejscami nie można użyć operatora przypisania, bo nie działa on na tablicach. Zamiast tego stosujemy funkcję biblioteczną strcpy. Opis funkcji pisz_tab: Funkcja jest przeznaczona do wyprowadzania zawartości tablicy na ekran. Łańcuchy pamiętane w tablicy są drukowane jako kolejne wiersze tekstu na ekranie. W zależności od wartości argumentu c, funkcja może wyprowadzać pamiętany w tablicy tekst na trzy sposoby: a/ Dokładnie tak, jak jest pamiętany, b/ używając wyłącznie małych liter, c/ używając wyłącznie dużych liter. Do zmiany liter z małych na duże lub odwrotnie służą funkcje biblioteczne toupper, tolower, zdefiniowane w zbiorze nagłówkowym <ctype.h>. Ponadto, za pomocą argumentu p określamy, czy tekst ma być pisany znak po znaku, czy też szeroko, z dodatkową spacją po każdym znaku. Przykładowy wydruk programu przedstawia rys. 4. Ze względu na konieczność modyfikowania pojedynczych znaków, tablica jest tutaj wyprowadzana znak po znaku, za pomocą dwóch zagnieżdżonych instrukcji for. Na ogół jednak wystarcza do tego pojedyncza pętla for, która wyprowadza tablicę łańcuchów wiersz po wierszu, jak poniżej: void pisz_tab(char t[m][n]) for(j=0;j<m;j++) printf( %s\n,t[j]);
11 Przykład: Sortowanie i wypisywanie tablicy łańcuchów #include <stdio.h> #include <conio.h> #include <string.h> #include <ctype.h> const int M=4, N=12; void pisz_tab(char[][n],int,int); void sortuj(char[][n]); //dla toupper, tolower int main() char t[m][n]="tomek", "Jarek", "Zbyszek", "Agata"; puts("tablica przed sortowaniem:\n"); pisz_tab(t,0,0); sortuj(t); puts("\n\ntablica po sortowaniu:\n"); pisz_tab(t,0,0); puts("\n\ntablica malymi literami:\n"); pisz_tab(t,-1,0); puts("\n\ntablica wielkimi literami:\n"); pisz_tab(t,1,0); puts("\ntablica szeroko:\n"); pisz_tab(t,0,1); getch(); return 0; 11 void sortuj(char t[][n]) int i,j; char buf[n]; for (j=0; j<m-1; j++) for (i=j+1; i<m; i++) if (strcmp(t[j],t[i])>0) strcpy(buf,t[i]); strcpy(t[i],t[j]); strcpy(t[j],buf);
12 12 void pisz_tab(char s[][n],int c,int p) int j,k; for (j=0;j<m;j++) for (k=0; k<strlen(s[j]); k++) if (c==0) printf("%c",s[j][k]); else if (c>=1) printf("%c",toupper(s[j][k])); else printf("%c",tolower(s[j][k])); if (p) printf("%c",'\x20'); printf("\n"); Tablica przed sortowaniem: Tomek Jarek Zbyszek Agata Tablica po sortowaniu: Agata Jarek Tomek Zbyszek Tablica malymi literami: agata jarek tomek zbyszek Tablica wielkimi literami: AGATA JAREK TOMEK ZBYSZEK Tablica szeroko: A g a t a J a r e k T o m e k Z b y s z e k Rys. 4. Wydruk uzyskany po wykonaniu programu
13 Tablica wskaźników na łańcuchy znakowe Użycie znakowej tablicy dwuwymiarowej nie jest jedynym sposobem pamiętania łańcuchów znakowych. Można posłużyć się również tablicą wskaźników na znaki, inicjując ją tak, jak poniżej: char *tab[6]="adam", "TADEUSZ", "EWA", "GRZEGORZ", "IGNACY", "ZENON"; Po takiej deklaracji, kompilator umieści inicjowane łańcuchy w pamięci bezpośrednio po sobie, niezależnie od ich długości. Po znaku końca pierwszego łańcucha znajdzie się początkowy znak drugiego łańcucha itd. Dzięki temu nie ma niewykorzystanych miejsc i znacznie zmniejsza się rozmiar pamięci, potrzebnej do zapamiętania tekstu. Jednocześnie z lokowaniem łańcuchów w pamięci, ich adresy są umieszczane w kolejnych pozycjach tablicy tab. Dlatego za pomocą elementów tej tablicy można odwoływać się do kolejnych łańcuchów w pamięci. Ilustracją opisanej metody jest rysunek 5. Dla porównania pokazano, w jaki sposób są zapamiętane łańcuchy w dwuwymiarowej tablicy znakowej. W rozpatrywanym przykładzie użycie tablicy wskaźników zmniejszyło zajęty obszar pamięci o 33 bajty w porównaniu z obszarem pamięci zajmowanym przez tablicę dwuwymiarową z rysunku 6. Program pokazany w przykładzie poniżej operuje na grupie łańcuchów, posługując się tablicą wskaźników na te łańcuchy. W przedstawionym programie zdefiniowano dwie funkcje własne: pisztab oraz sortuj.
14 14 Przed sortow. Po sortow. tab[0] Adr0 Adr2 Adr0 A D A M \0 tab[1] Adr1 Adr0 Adr1 T A D E U S Z \0 tab[2] Adr2 Adr5 Adr2 E W A \0 tab[3] Adr3 Adr4 Adr3 G R Z E G O R Z \0 tab[4] Adr4 Adr1 Adr4 I G N A C Y \0 tab[5] Adr5 Adr3 Adr5 Z E N O N \0 Rys. 5. Tablica łańcuchów deklarowana jako char * tab[6] tab[0] A D A M \0 tab[1] T A D E U S Z \0 tab[2] E W A \0 tab[3] G R Z E G O R Z \0 tab[4] I G N A C Y \0 tab[5] Z E N O N \0 Rys. 6. Tablica łańcuchów deklarowana jako char tab [6][12] Opis funkcji pisz_tab: W pętli for odwołujemy się przez indeks j do kolejnych pozycji tablicy tab, Adres j tego łańcucha tab[j] jest argumentem funkcji puts, która wyprowadza ten łańcuch na ekran, po czym przenosi kursor na początek następnego wiersza ekranu. Opis funkcji sortuj: Funkcja ta porządkuje łańcuchy według ich długości, stosując algorytm bąbelkowy. ale łańcuchy w czasie sortowania nie zmieniają swojego położenia w pamięci. Zmiany dotyczą tylko położenia elementów tablicy wskaźników. Jak widać na rysunku 5, po zakończeniu sortowania kolejne pozycje tablicy tab wskazują na coraz dłuższe łańcuchy. Ponieważ zamieniamy miejscami nie łańcuchy, lecz wskaźniki, możemy posłużyć się operatorem przypisania. W warunku po if porównujemy ze so-
15 bą nie łańcuchy, lecz długości łańcuchów. Te długości, zwracane przez funkcję strlen, są liczbami, dlatego do porównania można użyć operatora większości. Obie opisane funkcje mają argument tablicowy zapisany jako char ** tab. Wymaga to krótkiego wyjaśnienia. Ponieważ nie pracujemy na tablicy znaków, ale na tablicy wskaźników na znaki, argument tablicowy zamiast postaci char tab[ ] musi mieć postać char * tab[ ]. Tę postać argumentu można by z powodzeniem zastosować w definicjach obu funkcji. Jednak jak pamiętamy, tab[ ] można równoważnie zapisać jako *tab. W ten sposób powstał użyty w przykładzie 9.5 zapis argumentu tablicowego jako char ** tab. Druga gwiazdka pokazuje, że mamy argument tablicowy, a pierwsza że chodzi o tablicę wskaźników na znaki. Słowo const użyte przed argumentem w funkcji pisz_tab powoduje, że argument nie będzie mógł ulegać zmianom w czasie działania funkcji w ten sposób często zabezpiecza się argumenty wejściowe. W przypadku tej konkretnej funkcji nie ma to znaczenia. Na rysunku 7 widać wydruk, uzyskany na ekranie po uruchomieniu opisanego programu. 15 Przykład: Operacje na łańcuchach za pośrednictwem tablicy wskaźników #include <stdio.h> #include <conio.h> #include <string.h> const int M=6; void pisz_tab(const char **); void sortuj(char **);
16 16 int main() char *tab[m]= "ADAM", "TADEUSZ", "EWA", "GRZEGORZ", "IGNACY", "ZENON"; pisz_tab(tab); sortuj(tab); pisz_tab(tab); getch(); return 0; void pisz_tab(const char **tab) int j; for (j=0; j<m; j++) puts(tab[j]); puts("\n"); void sortuj(char **tab) int j,k; char *buf; for (j=0; j<m-1; j++) for (k=j+1; k<m; k++) if (strlen(tab[j])>strlen(tab[k])) buf=tab[k]; tab[k]=tab[j]; tab[j]=buf;
17 17 ADAM TADEUSZ EWA GRZEGORZ IGNACY ZENON EWA ADAM ZENON IGNACY TADEUSZ GRZEGORZ Rys. 7. Wydruk otrzymany w wyniku działania programu
Ć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ółowoProste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3,
WYKŁAD 1. PODSTAWY 1_1. Typy zmiennych Proste typy zmiennych języka C++ Nazwa typu (nazwa skrócona) Rozmiar (bajtów) unsigned char 1 signed char (char) unsigned short int (unsigned) signed short int (int)
Bardziej szczegółowoTablice 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ół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ół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ół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ół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ół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ół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ół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
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ół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ół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ół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ół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ół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 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ół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ół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ółowoWskaźniki w C. Anna Gogolińska
Wskaźniki w C Anna Gogolińska Zmienne Zmienną w C można traktować jako obszar w pamięci etykietowany nazwą zmiennej i zawierający jej wartość. Przykład: kod graficznie int a; a a = 3; a 3 Wskaźniki Wskaźnik
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ół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ół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ół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ół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ół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ółowoArgumenty wywołania programu, operacje na plikach
Temat zajęć: Argumenty wywołania programu, operacje na plikach Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (Zmienne statyczne) W języku C można decydować o sposobie przechowywania zmiennych. Decydują
Bardziej szczegółowoWskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.
Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na
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ół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ół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 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ół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ółowoWykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe
I. Struktury sterujące.bezpośrednie następstwo (A,B-czynności) Wykład _2 Algorytmy sortowania tablic Sortowanie bąbelkowe Elementy języka stosowanego do opisu algorytmu Elementy Poziom koncepcji Poziom
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ółowo1. Wprowadzanie danych z klawiatury funkcja scanf
1. Wprowadzanie danych z klawiatury funkcja scanf Deklaracja int scanf ( const char *format, wskaźnik, wskaźnik,... ) ; Biblioteka Działanie stdio.h Funkcja scanf wczytuje kolejne pola (ciągi znaków),
Bardziej szczegółowoWykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe
Podstawy programowania Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe 1 Podstawy programowania Część I Łańcuchy znaków 2 I. Zmienne łańcuchowe Klasyfikacja zmiennych statycznych
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ół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ół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ółowoPodstawy programowania, Poniedziałek , 8-10 Projekt, część 1
Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem
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ół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ół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ół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ół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ół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ółowoInstrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal
Instrukcja wyboru, pętle 2 wykład. Podstawy programowania - Paskal Tematy Instrukcja wyboru jeden z wielu wariantów: case Pętle while repeat for Instrukcje sterowania pętli break continue goto Instrukcja
Bardziej szczegółowoAlgorytmy i złożoności. Wykład 3. Listy jednokierunkowe
Algorytmy i złożoności Wykład 3. Listy jednokierunkowe Wstęp. Lista jednokierunkowa jest strukturą pozwalającą na pamiętanie danych w postaci uporzadkowanej, a także na bardzo szybkie wstawianie i usuwanie
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ół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ół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ół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ółowoJęzyk C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop
Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop. 2016 Spis treści Wprowadzenie 11 Adresaci książki 12 Co wyróżnia tę książkę na
Bardziej szczegółowoWykład 5. Operacje na tablicach
Wykład 5. Operacje na tablicach 1. Opis i deklarowanie zmiennej tablicowej Tablica jest strukturą danych, zawierająca stałą liczbę elementów. Każdy z tych elementów jest jednakowego typu. Typem elementu
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ół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ół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ół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ół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ółowoWarto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.
Nazwa implementacji: Nauka języka C wyrażenia warunkowe if- Autor: Piotr Fiorek Opis implementacji: Poznanie struktury oraz zastosowania wyrażeń warunkowych if- w języku C. W programie realizującym jakiś
Bardziej szczegółowoWykład 6_1 Abstrakcyjne typy danych stos Realizacja tablicowa i za pomocą rekurencyjnych typów danych
Wykład 6_ Abstrakcyjne typy danych stos Realizacja tablicowa i za pomocą rekurencyjnych typów danych Abstrakcyjny typ danych Klient korzystający z abstrakcyjnego typu danych: o ma do dyspozycji jedynie
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ółowoPodstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia
Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka
Bardziej szczegółowoKURS C/C++ WYKŁAD 1. Pierwszy program
KURS C/C++ WYKŁAD 1 Pierwszy program Tworzenie programu odbywa sie w dwóch etapach: 1. opracowanie kodu źródłowego 2. generowanie kodu wynikowego Pierwszy etap polega na zapisaniu algorytmu za pomocą instrukcji
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ółowoTemat 1: Podstawowe pojęcia: program, kompilacja, kod
Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,
Bardziej szczegółowoĆwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz
Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania Zofia Kruczkiewicz Zakres Funkcje przetwarzające teksty (biblioteka ) - tworzenie własnych
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ółowoElementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.
Wykład 3 ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Waldi Ravens J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 75 / 146 deklaracje zmiennych instrukcja podstawienia
Bardziej szczegółowoPodstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/
Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura
Bardziej szczegółowofunkcje rekurencyjne Wykład 12. Podstawy programowania (język C) Funkcje rekurencyjne (1) Funkcje rekurencyjne (2)
Podstawy programowania (język C) funkcje rekurencyjne Wykład 12. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Funkcje rekurencyjne (1) W języku C funkcja moŝe wywoływać samą siebie.
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ółowoKURS C/C++ WYKŁAD 2. char znak; znak = a ; Program 2 #include<stdio.h> void main() { char znak; while( (znak = getchar() )!= t ) putchar(znak); }
KURS C/C++ WYKŁAD 2 Instrukcje iteracyjne Instrukcja while Składnia tej instrukcji jest następująca: while (wyrażenie) instrukcja W pętli while wykonanie instrukcji powtarza się tak długo, jak długo wartość
Bardziej szczegółowolekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
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ół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ółowowykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis
i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje
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ółowo. Podstawy Programowania 1. Łańcuchy znaków. Arkadiusz Chrobot. 25 listopada 2015
.. Podstawy Programowania 1 Łańcuchy znaków Arkadiusz Chrobot Zakład Informatyki 25 listopada 2015 1 / 47 Plan.1 Operacje na pojedynczych znakach.2 Typ danych dla ciągów znaków.3 Inicjacja łańcuchów.4
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Algorytmy liniowe Algorytmy z rozgałęzieniami
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ółowoJęzyk C++ zajęcia nr 2
Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator
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ółowoWYKŁAD 9. Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c. Tomasz Zieliński
WYKŁAD 9 Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c Tomasz Zieliński /* Przyklad 4.1 - SORTOWANIE TABLIC - metoda najprostsza */ #include #define ROZMIAR 11 void
Bardziej szczegółowoJęzyk C zajęcia nr 5
Język C zajęcia nr 5 Instrukcja wyboru switch switch ( wyr ) inst Głównym przeznaczeniem instrukcji switch jest rozgałęzianie wykonania programu na wiele różnych ścieżek w zależności od wartości pewnego
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Algorytmy liniowe Algorytmy z rozgałęzieniami
Bardziej szczegółowoLab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
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ół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ółowoKURS C/C++ WYKŁAD 8. Deklaracja funkcji informuje komplilator jaką wartość funkcja będzie zwracała i jakiego typu są jej argumenty.
Funkcje. Deklaracja funkcji: KURS C/C++ WYKŁAD 8 #include //deklaracje funkcji: printf(...), scanf(...) #include //double sqrt (double ) #include //void clrscr (void) void main
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 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane
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ółowoZadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.
Zadania do wykonania Rozwiązując poniższe zadania użyj pętlę for. 1. apisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9
Bardziej szczegółowoProgramowanie w C/C++ Instrukcje - konstrukcje powtórka. LABORKA Piotr Ciskowski
Programowanie w C/C++ Instrukcje - konstrukcje powtórka LABORKA Piotr Ciskowski zadanie 1. Licz się ze sobą Napisz funkcję bez argumentów i bez wyniku, która za każdym wywołaniem będzie podawała, ile razy
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ół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ół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ółowoProgramowanie strukturalne i obiektowe
Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie
Bardziej szczegółowo