Poprzedni wykład: - Elementarz formatowanego wejścia/wyjścia (podstawowe. - Sterowanie: instrukcje i bloki; instrukcja warunkowa (decyzje
|
|
- Stanisława Staniszewska
- 6 lat temu
- Przeglądów:
Transkrypt
1 Poprzedni wykład: - Elementarz formatowanego wejścia/wyjścia (podstawowe specyfikacje przekształcenia dla funkcji printf, scanf) - Sterowanie: instrukcje i bloki; instrukcja warunkowa (decyzje wielowariantowe); instrukcja switch; pętle (while, for, do-while) - Przykłady: proste algorytmy sortowanie tablicy liczbowej ( bubblesort, shellsort ) - Operator przecinkowy - Funkcje w języku C (c.d.n.) Adam Rycerz [ wyklad05.pdf ] Strona 1 z 37
2 Operator przecinkowy Ciekawym operatorem języka C (często spotykanym w pętlach for) jest przecinek, ( inaczej: operator przecinkowy ). W ciągu: wyr1, wyr2, wyr3,, wyrn wyrażenia obliczane są od lewej do prawej; jako typ i wartość wyniku przyjmowane są typ i wartość wyrn. ( Jednak przecinki oddzielające argumenty funkcji, lub np. nazwy zmiennych w deklaracji nie są operatorami; w takich przypadkach nie ma gwarancji, że obliczenia będą wykonywane od lewej do prawej. ) W pętli for możemy użyć operatorów przecinkowych do sterowania równolegle kilkoma indeksami. Dalej funkcja reverse(s) odwraca kolejność znaków w napisie s: Adam Rycerz [ wyklad05.pdf ] Strona 2 z 37
3 #include <string.h> /* reverse(s) : odwróć napis s w miejscu */ void reverse(char s[]) { int c, i, j; /* to nie operatory! */ } for (i=0, j=strlen(s)-1; i<j; i++, j--) { } c = s[i]; s[i] = s[j]; s[j] = c; Adam Rycerz [ wyklad05.pdf ] Strona 3 z 37
4 UWAGI o operatorze przecinkowym: Zanim rozpocznie się obliczanie prawego argumentu, wszystkie efekty uboczne obliczania pozostałych są już zakończone. Jeśli przecinek ma znaczenie specjalne np. w liście inicjatorów lub liście argumentów funkcji wymaganą jednostką ( pomiędzy przecinkami ) jest wyrażenie przypisania, wówczas zagnieżdżony przecinek może wystąpić w wyrażeniu ujętym w nawiazy okrągłe: f(a, (t=3, t+2), c) W powyższym wywołaniu funkcji mamy 3 argumenty; drugi z nich ma wartość 5. Adam Rycerz [ wyklad05.pdf ] Strona 4 z 37
5 Funkcje w C: Wprowadzenie W języku C funkcje pozwalają dzielić duże programy na mniejsze podprogramy, jak również korzystać z tego, co zostało już zrobione przez innych (np. funkcji bibliotecznych). ( Funkcje typu void nie zwracające żadnej wartości zastępują procedury znane w innych językach programowania. ) Program napisany w dobrym stylu powinien składać się z jak największej liczby krótkich funkcji (których działanie można testować niezależnie); funkcji można używać jak czarnych skrzynek, nie dbając o to, jak zostały zrealizowane. Dobrze zaprojektowane funkcje pozwalają zignorować to, jak zadanie zostało wykonane, wystarczy jedynie wiedzieć, co będzie zrobione. Adam Rycerz [ wyklad05.pdf ] Strona 5 z 37
6 Definicja funkcji w C: typ-zwracanej-wartości nazwa-funkcji( deklaracje parametrów, jeśli występują) { deklaracje instrukcje } Definicje mogą pojawiać się w dowolnej kolejności (także w różnych plikach źródłowych); funkcji nie można zagnieżdżać! [ ALE deklaracje funkcji tzw. prototypy można umieszczać wewnątrz bloków: { } ] Oprócz nazwy-funkcji, każdą część definicji można pominąć: minima() {} /* => łac. najmniejsza */ Adam Rycerz [ wyklad05.pdf ] Strona 6 z 37
7 Funkcje takie jak minima() {} bywają użyteczne do zarezerwowania miejsca w pliku źródłowym, jeśli planujemy dalszą rozbudowę programu. Jeśli w definicji funkcji pominięto typ-zwracanej-wartości kompilator przyjmuje automatycznie, że jest to int. Jeśli nie chcemy, aby funkcja zwracała jakąkolwiek wartość - deklarujemy ją jako void [ wówczas instrukcja return; zwróci jedynie sterowanie do miejsca wywołania. ] Czy funkcja main() może być typu void? NIE może i nigdy nie mogła, ani w standardzie C ani w C++! [ zob. ] Adam Rycerz [ wyklad05.pdf ] Strona 7 z 37
8 Kompilator gcc program zawiera funkcje minima() {} oraz void main() { } /* NIEDOZWOLONE! */ $ gcc --ansi wzorzec.c wzorzec.c:9:11: warning: control reaches end of nonvoid function [-Wreturn-type] minima() {} ^ wzorzec.c:12:1: error: 'main' must return int' void main() ^~~~ int 1 warning and 1 error generated. [ Deklaracje: void minima() oraz int main() eliminują błąd i ostrzeżenie. Brak return w funkcji main() nie generuje ostrzeżenia! ] Adam Rycerz [ wyklad05.pdf ] Strona 8 z 37
9 Przykład: Program wyszukujący wzorzec (ustalony ciąg znaków) we wprowadzanym tekście. [wg Kernighan & Ritchie, 1994] Chcemy, aby program czytał kolejne wiersze ze standardowego wejścia, a jeśli w wierszu pojawi sie zadany wzorzec wypisał taki wiersz na ekran. Zapis zadania w pseudokodzie: while (wczytano wiersz) if (wiersz zawiera szukany wzorzec) wypisz ten wiersz [ Przykład posłuży do zilustrowania zasad podziału programu na funkcje i komunikacji pomiędzy funkcjami. ] Adam Rycerz [ wyklad05.pdf ] Strona 9 z 37
10 #include <stdio.h> #define MAXLINE 1000 /* maks. dlugosc wiersza */ int strindex(char source[], char searchfor[]); char pattern[] = "nie"; /* szukany wzorzec */ /* Wypisz wiersze zawierajace wzorzec: */ int main() { char line[maxline+1]; /* "+1" miejsce na '\0' */ int found = 0; while (NULL!= fgets(line,maxline+1,stdin)) if (strindex(line,pattern) >= 0) { printf("%s",line); found++; } return found; /* liczba znalezionych wierszy */ } Adam Rycerz [ wyklad05.pdf ] Strona 10 z 37
11 /* strindex: zwraca pozycje napisu t[] w s[] */ /* LUB -1 jesli napisu nie znaleziono */ int strindex(char s[], char t[]) { int i,j,k; for (i=0; s[i]!='\0'; i++) { for (j=i,k=0; t[k]!='\0' && s[j]==t[k]; j++,k++) ; if ( k>0 && t[k]=='\0') return i; } return -1; } Adam Rycerz [ wyklad05.pdf ] Strona 11 z 37
12 Program w C to, zasadniczo: zbiór definicji zmiennych i funkcji. Komunikacja pomiędzy funkcjami odbywa się za pośrednictwem: argumentów wywołania funkcji wartości zwracanych przez funkcje zmiennych zewnętrznych W pliku źródłowym, funkcje mogą występować w dowolnej kolejności [ => przed wywołaniem: definicja lub prototyp! ]. Program można dzielić pomiędzy pliki źródłowe pod warunkiem, że żadna z funkcji nie zostanie podzielona. Adam Rycerz [ wyklad05.pdf ] Strona 12 z 37
13 W naszym przykładzie, przed funkcją main() mamy: int strindex(char source[], char searchfor[]); char pattern[] = nie"; Pierwsza linia to tzw. prototyp funkcji; a druga definicja zmiennej zewnętrznej [ => przydzielana jest pamięć! ]. W prototypie funkcji, nazwy parametrów mogą być ( i są! ) inne niż w definicji funkcji [ po main() ]: int strindex(char s[], char t[]) { } Musi się zgadzać jedynie liczba i typy parametrów [ jak również typ-powrotu dla funkcji! ]. Nazwy są całkowicie lokalne; inne funkcje mogą zatem używać parametrów o tych samych nazwach. Adam Rycerz [ wyklad05.pdf ] Strona 13 z 37
14 Funkcja strindex jest wywołana w funkcji main(), w wierszu: if (strindex(line,pattern) >= 0) { } Wywołanie przekazuje do funkcji dwa argumenty i sterowanie; po zakończeniu działania funkcja wraca do miejsca wywołania wraz z liczbą pozycją napisu pattern[] w line[]. [ Przypomnienie: parametr zmienna w nawiasach okrągłych w definicji funkcji; argument wartość używana przy wywołaniu funkcji. ] Instrukcja return to narzędzie, dzięki któremu funkcja przekazuje wartość pewnego wyrażenia ( i sterowanie ) do miejsca wywołania. Po słowie kluczowym return można umieścić dowolne wyrażenie: return wyrażenie; Adam Rycerz [ wyklad05.pdf ] Strona 14 z 37
15 Jeśli zajdzie potrzeba wyrażenie zostanie przekształcone do typu-powrotu funkcji. [Często wyrażenie otaczane jest nawiasami okrągłymi: nie jest to konieczne, ale poprawia czytelność.] Jeśli pominąć wyrażenie samo return; zwróci do miejsca wywołania funkcji jedynie sterowanie, bez przekazywania wartości. ( Podobnie dzieje się przy przekroczeniu końca funkcji, tj. kiedy sterowanie dotrze do zamykającego nawiasu } ) Jeśli funkcja powinna zwrócić wartość, a nie ma lub nie zostanie wykonana instrukcji return; zostaną zwrócone śmiecie. [ W takiej sytuacji porządny kompilator wygeneruje ostrzeżenie. ] Nasz program wyszukiwania wzorca zwraca liczbę wierszy ze wzorcem; z tej wartości może skorzystać otoczenie programu. Adam Rycerz [ wyklad05.pdf ] Strona 15 z 37
16 PRZYPOMNIENIE: Przekazywanie przez wartość W języku C wszystkie argumenty funkcji są przekazywane przez wartość : oznacza to, że funkcja zamiast swoich argumentów otrzymuje tak naprawdę ich kopie, które istnieją jedynie w czasie działania funkcji, jako wartości zmiennych tymczasowych. [ Jeśli chcemy, aby funkcja faktycznie zmodyfikowała wartość jakiejś zmiennej musimy przekazać jej adres, technicznie: wskaźnik do tej zmiennej. ] W przypadku funkcji strindex s[] oraz t[] to tablice, w języku C równoważne wskaźnikom na pierwszy element w tym przypadku ewentualne modyfikacje zawartości napisów będą miały skutki dla zmiennych line oraz pattern. Adam Rycerz [ wyklad05.pdf ] Strona 16 z 37
17 Programy wieloplikowe (przypadek najprostszy) Techniki ładowanie i tłumaczenia programów podzielonych na kilka plików źródłowych zależą od systemu i kompilatora. Przykładowo, jeśli definicję funkcji strindex umieścimy w pliku strindex.c zaś resztę tj. deklaracje i funkcję main() w pliku wzorzec.c, wówczas polecenie: gcc wzorzec.c strindex.c przetłumaczy wszystko i załaduje kod wynikowy do pliku a.out. Poszczególne pliki można też skompilować niezależnie: gcc -c wzorzec.c gcc -c strindex.c Następnie, otrzymane kody pośrednie (ang. object files) łączymy: gcc wzorzec.o strindex.o Adam Rycerz [ wyklad05.pdf ] Strona 17 z 37
18 Uwagi o programach wieloplikowych: Podział programu na kilka plików umożliwia niezależną edycję i kompilację ( gcc -c ) fragmentów kodu W szczególności, na etapie pośrednim można napisać jedynie prototypy niektórych funkcji i sprawdzać poprawność składniową reszty programu [ WAŻNE: prototypy funkcji mogą się powtarzać, nawet w tym samym pliku, definicje NIE! ] Przykład (strindex.c) jest wyjątkowo prosty, ponieważ funkcja w tym pliku nie wywołuje innych funkcji (ani nie korzysta ze zmiennych zewnętrznych); zwykle konieczne są deklaracje, które umieszcza się w osobnych plikach ( np. wzorzec.h ) włączanych dyrektywą #include plik-nagłówkowy. (ang. header-file) [ Ostatnie zagadnienie będzie jeszcze omawiane! ] Adam Rycerz [ wyklad05.pdf ] Strona 18 z 37
19 Uwagi o programach wieloplikowych c.d. Chociaż podział programu na kilka plików (w celu niezależnego rozwijania logicznie odrębnych fragmentów) jest bardzo wygodny, warto pamiętać o kilku zasadach / pułapkach: jeśli pomiędzy definicją a wywołaniem funkcji występuje niezgodność typów, kompilator zgłasza błąd, o ile definicja i wywołanie występują w tym samym pliku (!) Jeśli wywołanie i definicja są w różnych plikach, działają reguły: w przypadku braku prototypu, mamy deklarację niejawną (przez kontekst) przy pierwszym wywołaniu. Domyślnie, niezadeklarowana nazwa z nawiasami po prawej stronie uznawana jest za funkcję typu int. [ Jeśli definicja jest np. typu double - wyniki nie będą miały sensu! ] Adam Rycerz [ wyklad05.pdf ] Strona 19 z 37
20 prototyp bez parametrów: int strindex(); wyłącza kontrolę poprawności wywołania ( brak założeń o parametrach! ), nie oznacza koniecznie, że funkcja na nie ma parametrów! Jeśli chcemy napisać prototyp funkcji bez parametrów, najlepiej napisać jawnie: typ-powrotu nazwa-funkcji( void ); [ Pozwoli to uniknąć wielu złośliwych błędów. ] Adam Rycerz [ wyklad05.pdf ] Strona 20 z 37
21 Zmienne zewnętrzne Program w C to zbiór obiektów zewnętrznych; mogą być nimi zmienne lub funkcje. Zmienne zewnętrzne definiuje się poza wszystkimi funkcjami, mogą być zatem [ dalej omówimy zasięg nazw ] dostępne dla wszystkich funkcji. Funkcje są zawsze zewnętrzne; prototypy można jednak deklarować wewnętrz bloków ograniczonych nawiasami { } Zewnętrzna łączność nazwy : Przyjmuje się, że wszystkie odwołania do zmiennych zewnętrznych i funkcji za pomocą tej samej nazwy także z różnych plików źródłowych dotyczą tego samego obiektu. Adam Rycerz [ wyklad05.pdf ] Strona 21 z 37
22 Zmienne zewnętrzne są ogólnie dostępne a zatem mogą stanowić wygodny substytut argumentów funkcji oraz wartości zwracanych przez funkcje; zwłaszcza w sytuacjach, kiedy funkcje operują na dużej liczbie wspólnych danych zachodzi potrzeba faktycznej modyfikacji wartości wielu zmiennych (por. przekazywanie przez wartość) warto skrócić długie listy argumentów funkcji zachodzi potrzeba przechowywania wyników pomiędzy wywołaniami różnych funkcji Dowolna funkcja może odwołać się do każdej zmiennej zewnętrznej za pomocą jej nazwy, o ile nazwa ta jest zadeklarowana w sposób widoczny [ patrz dalej zasięg nazw! ] dla definicji funkcji. Adam Rycerz [ wyklad05.pdf ] Strona 22 z 37
23 Zasięg nazw Zasięgiem nazwy (lub identyfikatora) jest ta część programu, wewnątrz której danej nazwy można używać. Dla zmiennej automatycznej zasięgiem jest obszar od deklaracji do zamykającego nawiasu klamrowego } Zmienne lokalne o takich samych nazwach, występujące w różnych funkcjach (lub różnych blokach { } ) nie są powiązane w żaden sposób Powyższe uwagi dotyczą także parametrów funkcji Dla zmiennych zewnętrznych ( i funkcji! ) zasięg rozciąga się od deklaracji do końca pliku źródłowego. Adam Rycerz [ wyklad05.pdf ] Strona 23 z 37
24 Przykład ilustrujący zasięg zmiennych zewnętrznych. W kalkulatorze [zob. Kernighan Ritchie, rozdział 4.] używamy tzw. stosu, zdefiniowanego z użyciem tablicy liczb double i zmiennej typu int przechowującej informacje, ile liczb położono na stosie. Definicje pojawiają się w następującej kolejności: int main() { } double stos[rozmiar_stosu]; int top=0; void push(double x) { } double pop(void) { } Adam Rycerz [ wyklad05.pdf ] Strona 24 z 37
25 Funkcje push() i pop() mogą odwoływać się do zmiennych stos i top po prostu przez nazwy, żadne dodatkowe deklaracje nie są potrzebne. Zmienne stos i top są jednak niewidoczne dla funkcji main(), podobnie zresztą jak funkcje push() i pop() (!) Jeśli odwołanie do zmiennej zewnętrznej występuje przed jej definicją (lub definicja znajduje się w innym pliku) konieczna jest deklaracja z użyciem słowa kluczowego extern. Przykładowo: extern double stos[]; extern int top; informuje resztę pliku, że stos jest tablicą typu double zaś top zmienną typu int, nie przydziela jednak pamięci dla tych zmiennych [ Deklaracja: rezerwuje tylko nazwę, definicja także pamięć. ] Adam Rycerz [ wyklad05.pdf ] Strona 25 z 37
26 Zmienne statyczne Słowo kluczowe static w deklaracjach zmiennych (lub funkcji!) dodatkowo ogranicza ich zasięg od miejsca wystąpienia, do końca konkretnego pliku źródłowego. Deklarowanie obiektów zewnętrznych jako static jest zatem sposobem na ukrycie ich nazw (dla innych plików). Także funkcje można deklarować jako static, np: static void push(double x) { } spowoduje, że funkcja push( ) pozostanie ukryta poza plikiem zawierajacym deklaracje. Zmienne wewnętrzne zadeklarowane jako static są niewidoczne poza swoim blokiem; jednak przechowują dane przez cały czas działanie programu [ nie są to zatem zm. automatyczne! ] Adam Rycerz [ wyklad05.pdf ] Strona 26 z 37
27 Zmienne rejestrowe Słowo kluczowe register pozwala deklarować zmienne, infomując jednocześnie kompilator, że odwołania do nich będą częste, a zatem powinny zostać w miarę możliwości umieszczone w pamięci podręcznej procesora (ang. CPU cache). Deklaracja register jest dozwolona dla zmiennych automatycznych i parametrów formalnych funkcji: fun(register unsigned m, register long n) { register int j; } Adam Rycerz [ wyklad05.pdf ] Strona 27 z 37
28 W praktyce: typy, a nawet liczba zmiennych rejestrowych dostępnych jednocześnie podlegają dodatkowym ograniczeniom. Nadliczbowe użycie słowa register nigdy jednak nie jest błędem; zmienna register będzie w takiej sytuacji działała jak zwykła zmienna. Podobnie, niepoprawne deklaracje zewnętrznych zmiennych register doprowadzą do utworzenia zwykłych zmiennych Nigdy nie jest możliwe uzyskanie adresu zmiennej poprzedzonej kwalifikatorem register, niezależnie od tego, czy faktycznie zmienna trafiła do rejestru, czy też nie. Adam Rycerz [ wyklad05.pdf ] Strona 28 z 37
29 Uwagi o strukturze blokowej programu: W C nie mamy klasycznej struktury blokowej, tj. funkcje nie mogą być umieszczone wewnątrz innych funkcji ( zagnieżdżone ). [ Pewnym substytutem zagnieżdżania funkcji jest możliwość definiowania funkcji static, widocznych tylko w jednym pliku. ] Deklaracje (lub definicje) zmiennych mogą być umieszczone wewnątrz dowolnej instrukcji złożonej { } To samo dotyczy prototypów funkcji. Zmienne automatyczne (a także parametry funkcji) zasłaniają zmienne zewnętrzne o tych samych nazwach. [ Zasłaniania pobliskich zmiennych lepiej unikać; niebezpieczeństwo popełnienia trudnych do wykrycia błędów jest znaczne. ] Adam Rycerz [ wyklad05.pdf ] Strona 29 z 37
30 Inicjowanie zmiennych Poniżej zasady inicjowania zmiennych dla różnych klas pamięci. [ Inicjowanie = nadawanie wartości początkowych ] Jeśli nie podano jawnie wartości początkowych: Zmienne zewnętrzne i statyczne zawsze inicjowane zerami Wartości zm. automatycznych i rejestrowych przypadkowe Zmienne skalarne ( = nie-tablice ) można inicjować przy definicji: int x = 1; char squote = \ ; /* Tak piszemy apostrof */ long day = 60L * 60L * 24L; /* doba w sek. */ Adam Rycerz [ wyklad05.pdf ] Strona 30 z 37
31 Wartością początkową zmiennych zewnęrznych i statycznych musi być stała lub wyrażenie stałe. [ Inicjowanie takich zmiennych odbywa się tylko raz przed rozpoczęciem działanie programu. ] Zmienne automatyczne i rejestrowe inicjowane ponownie przy każdym wejściu do funkcji lub bloku. Wartością początkową zmiennej automatycznej lub rejestrowej nie musi być stała dopuszczalne są dowolne wyrażenia, w tym również wywołania funkcji (!). [ Jawne inicjowanie to de facto skrócony zapis instrukcji przypisania. => Klasyczne przypisania bywają bardziej przejrzyste odległość definicji od miejsca użycia zmiennej może być znaczna ] Adam Rycerz [ wyklad05.pdf ] Strona 31 z 37
32 Tablice inicjujemy podając listę wartości początkowych: int days[]={31,28,31,30,31,30,31,31,30,31,30,31}; Jeśli w definicji pominięto rozmiar tablicy kompilator sam go ustala [ w tym przypadku 12 ]. Jeśli podany rozmiar byłby większy niż długość listy wartości (np. int days[100]={ }; ) wówczas nadliczbowe pola zostaną wyzerowane. Jeśli podany rozmiar będzie za mały wystąpi błąd. Tablice znakowe ( = napisy ) inicjujemy następująco: char wzorzec[] = nie ; Jest to równoważne definicji: char wzorzec[] = { n, i, e, \0 }; [ A zatem rozmiar wynosi 4 = 3 znaki + znak-końca napisu: \0 ] Adam Rycerz [ wyklad05.pdf ] Strona 32 z 37
33 Rekurencja Funkcje w C mogą być wywoływane rekurencyjnie tzn. funkcja może wywoływać samą siebie (bezpośrednio lub pośrednio). Przykład: printd(n) wypisuje n w postaci ciągu znaków void printd(int n) { if (n<0) { } putchar( ); n = -n; } if (n/10) printd(n/10); putchar(n % ); Adam Rycerz [ wyklad05.pdf ] Strona 33 z 37
34 Kiedy funkcja wywołuje samą siebie, każde jej wznowienie otrzymuje zupełnie nowy komplet wszystkich zmiennych automatycznych. Na przykład, po wywołaniu printd(123) : pierwsze printd otrzymuje argument n o wartości 123 drugie printd otrzymuje wartość 12 trzecie printd otrzymuje 1 [ mamy zatem: n/10==0 (!) ] Wówczas, warunek if (n/10) przestaje być prawdziwy, trzeci printd wypisuje zatem znak 1 i wraca na drugi poziom. Dalej, printd z drugiego poziomu wypisze 2 i wróci na poziom pierwszy, z którego wypisane zostanie 3 po czym funkcja zakończy działanie. Adam Rycerz [ wyklad05.pdf ] Strona 34 z 37
35 Porządkowanie tablicy liczbowej (3): quicksort Algorytm quicksort został podany przez C.A. Hoare w 1962 r. 1) Dla tablicy wybieramy pewien element (tutaj będzie to element środkowy); pozostałe elementy dzielimy na 2 podzbiory: 2) elementy miejsze od wybranego umieszczamy przed nim 3) elementy większe za wybranym elementem 4) Kroki 1) 3) powtarzamy (rekurencyjnie) dla dwóch podzbiorów: elementów poprzedzających wybrany w kroku 1), oraz dla elementów umieszczonych po nim. Rekurencja kończy się, gdy podzbiory mają mniej niż dwa elementy (a zatem: 0 lub 1) wówczas tablica jest już uporządkowana. [ Wersja poniżej wg Kernighan & Ritchie, rozdz.4 nie jest wersją najbardziej efektywną, jest jednak najprostsza. ] Adam Rycerz [ wyklad05.pdf ] Strona 35 z 37
36 void qsort(int v[], int left, int right) { int i, last; /* zmienne automatyczne */ void swap(int v[], int i, int j); /* prototyp f.*/ } if (left >= right) return; /* koniec! */ swap(v, left, (left + right)/2); /* wybrany el. */ last = left; /* ostatni el. < wybrany el. */ for (i=left+1; i<=right; i++) if (v[i] < v[left]) swap(v,++last,i); swap(v, left, last); /* wybrany elem. wraca */ qsort(v, left, last-1); qsort(v, last+1, right); Adam Rycerz [ wyklad05.pdf ] Strona 36 z 37
37 Operacje zamiany 2 elementów realizuje osobna funkcja: /* swap: zamień miejscami v[i] z v[j] */ void swap(int v[], int i, int j) { int temp; } temp = v[i]; v[i] = v[j]; v[j] = temp; [ Biblioteka standardowa <stdlib.h> zawiera implementację funkcji qsort( ) która potrafi sortować obiekty dowolnego typu. ] Adam Rycerz [ wyklad05.pdf ] Strona 37 z 37
Termin Egzaminu (Język C): !!! >> CZWARTEK, 7 LUTEGO << GODZ
Termin Egzaminu (Język C): >> CZWARTEK, 7 LUTEGO
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Zmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
Tablice (jedno i wielowymiarowe), łańcuchy znaków
Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie
Wstęp do Programowania, laboratorium 02
Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite
1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
Funkcja (podprogram) void
Funkcje Co to jest funkcja? Budowa funkcji Deklaracja, definicja i wywołanie funkcji Przykłady funkcji definiowanych przez programistę Przekazywanie argumentów do funkcji Tablica jako argument funkcji
Podstawy 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
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Poprzedni wykład [ ] :
Poprzedni wykład [ 20.11.2018 ] : - Funkcje w języku C (definicje i prototypy) - Struktura programu: Zmienne zewnętrzne, zasięg nazw; programy wieloplikowe (wprowadzenie) - Klasy pamięci: static, register
Język C zajęcia nr 11. Funkcje
Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji
Laboratorium 3: Preprocesor i funkcje ze zmienną liczbą argumentów. mgr inż. Arkadiusz Chrobot
Laboratorium 3: Preprocesor i funkcje ze zmienną liczbą argumentów mgr inż. Arkadiusz Chrobot 10 listopada 2010 1 Preprocesor Preprocesor jest programem uruchamianym przed właściwym procesem kompilacji
Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski
Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD
Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe
Wstęp do programowania
wykład 10 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Przesyłanie argumentów - cd Przesyłanie argumentów do funkcji - tablice wielowymiarowe Przekazywanie tablic wielowymiarowych
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO Rozdział 1. Wybór i instalacja kompilatora języka Pascal 1.1. Współczesne wersje kompilatorów Pascala 1.2. Jak zainstalować
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.
Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using
Wprowadzenie do programowania w języku C
Wprowadzenie do programowania w języku C Część trzecia Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów
Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop
Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop. 2010 Spis treści Wstęp 11 Część I PASCAL - wprowadzenie do programowania strukturalnego
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Język C, tablice i funkcje (laboratorium, EE1-DI)
Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.
Temat 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,
Podstawy 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
Tablice, funkcje - wprowadzenie
Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład
Lab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Wskaźniki Krzysztof Banaś Podstawy programowania 1 Adresy zmiennych Język C pozwala na operowanie adresami w pamięci stąd, między innymi, kwalifikowanie C jako języka relatywnie
Informatyka 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
Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest
Wstę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
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Funkcje w języku C Zasięg zmiennych Przekazywanie
Język C, tablice i funkcje (laboratorium)
Język C, tablice i funkcje (laboratorium) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.
Wskaźniki w C. Anna Gogolińska
Wskaźniki w C Anna Gogolińska Zmienne Zmienną w C można traktować jako obszar w pamięci etykietowany nazwą zmiennej i zawierający jej wartość. Przykład: kod graficznie int a; a a = 3; a 3 Wskaźniki Wskaźnik
Języki i metodyka programowania. Wprowadzenie do języka C
Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia
tablica: dane_liczbowe
TABLICE W JĘZYKU C/C++ tablica: dane_liczbowe float dane_liczbowe[5]; dane_liczbowe[0]=12.5; dane_liczbowe[1]=-0.2; dane_liczbowe[2]= 8.0;... 12.5-0.2 8.0...... 0 1 2 3 4 indeksy/numery elementów Tablica
Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów
Funkcje. Spotkanie 5 Dr inż. Dariusz JĘDRZEJCZYK Tworzenie i używanie funkcji Przekazywanie argumentów do funkcji Domyślne wartości argumentów Przeładowanie nazw funkcji Dzielenie programu na kilka plików
Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17
Wskaźniki Przemysław Gawroński D-10, p. 234 Wykład 2 8 marca 2019 (Wykład 2) Wskaźniki 8 marca 2019 1 / 17 Outline 1 Wskaźniki 2 Tablice a wskaźniki 3 Dynamiczna alokacja pamięci (Wykład 2) Wskaźniki 8
KURS 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ść
ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje
Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych
ZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 5 1 SPECYFIKATOR const Specyfikator (przydomek) const: Umieszczenie przed nazwą zmiennej specyfikatora const w jej definicji informuje kompilator,
TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;
Ogólna postać definicji tablicy: TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ; np. int tablica [ 10 ]; // 10-cio elementowa tablica liczb całkowitych char tekst
Podstawy 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
Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI
Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku
wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis
i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje
Wstęp do programowania. Wykład 1
Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe
Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)
Podstawy 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
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada
Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Spis treści 1 Wprowadzenie 1 2 Dane i kod 2 3 Wyrażenia 2 3.1 Operacje arytmetyczne i logiczne.................. 2 3.2 Podstawowe
1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami
1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.
7. Pętle for. Przykłady
. Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i
Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH
Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 1 Podstawy Wprowadzenie do programowania w języku C Kraków 2010 Twój pierwszy program w C Program w języku C, jak i w wielu innych językach
Laboratorium 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
4. Funkcje. Przykłady
4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni
Uwagi 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
Języki programowania obiektowego Nieobiektowe elementy języka C++
Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Przetwarzanie tablic znaków Łańcuchy znakowe jako tablice znaków
Struktury Struktura polami struct struct struct struct
Struktury Struktura jest zbiorem zmiennych występujących pod wspólna nazwą. Zmienne wchodzące w skład struktury nazywane są polami lub elementami, a czasem członkami struktury. Struktury używamy, jeśli
Podstawy algorytmiki i programowania - wykład 4 C-struktury
1 Podstawy algorytmiki i programowania - wykład 4 C-struktury Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Podstawy 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
Podstawy programowania w języku C++
Podstawy programowania w języku C++ Część dziewiąta Tablice a zmienne wskaźnikowe Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie
Algorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.
Elementy 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
Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009
Informatyka 1 zajęcia nr 1 Elektrotechnika, semestr II rok akademicki 2008/2009 mgr inż.. Paweł Myszkowski Plan dzisiejszych zajęć 1. Organizacja laboratorium przedmiotu 2. Algorytmy i sposoby ich opisu
IX. Wskaźniki.(3 godz.)
Opracowała: dr inż. Anna Dubowicka Uczelniane Centrum Komputerowe PK IX. Wskaźniki.(3 godz.) Wskaźnik jest zmienną, która zawiera adres innej. 1. Definiowanie wskaźników. typ * nazwa ; gdzie: znak * informuje
Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.
Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji
Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 Kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard
Podstawy Programowania
Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl
main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!
Funkcja wysoce niezależny blok definicji i instrukcji programu (podprogram) Każdy program napisany w języku C/C++ zawiera przynajmniej jedną funkcję o predefiniowanej nazwie: main( ). Najczęściej wykorzystuje
Funkcje i tablice. Elwira Wachowicz. 23 maja 2013
Funkcje i tablice Elwira Wachowicz elwira@ifd.uni.wroc.pl 23 maja 2013 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Funkcje i tablice 23 maja 2013 1 / 22 Największy wspólny dzielnik: algorytm Euklidesa Problem:
PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6
PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 TEMAT: Programowanie w języku C/C++: instrukcje iteracyjne for, while, do while Ogólna postać instrukcji for for (wyr1; wyr2; wyr3) Instrukcja for twory pętlę działającą
Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)
Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013
Warto 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ś
Wykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
Struktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem.
Struktura programu Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem. W ostatnich latach najbardziej używanym stylem oprogramowania
WYKŁ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 ======================================================================================================
Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ
w C Zak lad Chemii Teoretycznej UJ 30 listopada 2006 1 2 3 Inicjalizacja zmiennych Zmienne jednowymiarowe można inicjować przy ich definicji. #include i n t x = 1 ; l o n g day = 1000L * 60L
Język C++ zajęcia nr 2
Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -
Podział programu na moduły
Materiały Podział programu na moduły Informatyka Szczegółowe informacje dotyczące wymagań odnośnie podziału na moduły: http://www.cs.put.poznan.pl/wcomplak/bfiles/c_w_5.pdf Podział programu na moduły pozwala
Wstęp do programowania
Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje
Co nie powinno być umieszczane w plikach nagłówkowych:
Zawartość plików nagłówkowych (*.h) : #include #define ESC 27 dyrektywy dołączenia definicje stałych #define MAX(x,y) ((x)>(y)?(x):(y)) definicje makr int menu(char* tab[], int ilosc); struct
Argumenty wywołania programu, operacje na plikach
Temat zajęć: Argumenty wywołania programu, operacje na plikach Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (Zmienne statyczne) W języku C można decydować o sposobie przechowywania zmiennych. Decydują
Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:
Podstawy Informatyki Metalurgia, I rok Historia Lata 0-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard Koniec lat 80 standard
PARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor
wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,
, Programowanie, uzupełnienie notatek: dr Jerzy Białkowski , 1 2 3 4 , Wczytywanie liczb , Wczytywanie liczb 1 #include 2 #include < s t d l i b. h> 3 4 int main ( ) { 5 int rozmiar, numer
Wstęp do programowania
wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.
Podstawy programowania w języku C++
Podstawy programowania w języku C++ Część ósma Zmienne wskaźnikowe koncepcja, podstawowe zastosowania Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski
Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.
M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza
Wstęp do wskaźników w języku ANSI C
Wstęp do wskaźników w języku ANSI C / Materiał dydaktyczny pomocniczy do przedmiotu Informatyka sem.iii kier. Elektrotechnika/ 1. Wprowadzenie W języku ANSI C dla każdego typu X (wbudowanego, pochodnego,
Szablony klas, zastosowanie szablonów w programach
Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do
WYKŁ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