II. PROGRAMOWANIE W JĘZYKU C...
|
|
- Klaudia Rutkowska
- 9 lat temu
- Przeglądów:
Transkrypt
1 Spis treści I. PSEUDO-KOD WIADOMOŚCI WSTĘPNE PSEUDO-KOD Zdanie proste, które określa czynność do wykonania Zdanie decyzyjne jeŝeli Zdanie iteracyjne podczas gdy Zdanie iteracyjne powtarzaj Zdanie iteracyjne dla Zdanie wybierz Zdanie grupujące POJĘCIE ZMIENNEJ PRZYKŁADOWE ALGORYTMY W PSEUDO-KODZIE Pierwszy algorytm Drugi algorytm Algorytm trzeci REGUŁY ZAPISU WYRAśEŃ MATEMATYCZNYCH II. PROGRAMOWANIE W JĘZYKU C CECHY JĘZYKA WPROWADZENIE DO PROGRAMOWANIA W JĘZYKU C PODSTAWOWE ELEMENTY JĘZYKA C Zestaw znaków języka C Nazwy i słowa zastrzeŝone języka C Podstawowe typy danych Stałe Zmienne i ich deklaracje WyraŜenia i operatory Instrukcje KOMENTARZE OPERATORY Operatory porównania Operatory inkrementacji (zwiększania) i dekrementacji (zmniejszania) o jeden Operatory logiczne INSTRUKCJE PODSTAWIENIA INSTRUKCJE GRUPUJĄCE NAWIASY KLAMROWE INSTRUKCJE WYBORU Instrukcja if else Instrukcja wielokrotnego wyboru switch INSTRUKCJE ITERACYJNE (PĘTLE) Pętla while Pętla for Pętla do while INNE INSTRUCJE STERUJĄCE PRZEBIEGIEM PROGRAMU Instrukcja break Instrukcja continue Instrukcja return Instrukcja skoku do etykiety OGÓLNA STRUKTURA PROGRAMU NAJPROSTSZY PROGRAM W JĘZYKU C PREPROCESOR Dyrektywa włączająca pliki biblioteczne Dyrektywy makrodefinicji Dyrektywy warunkowej kompilacji FUNKCJE PODSTAWOWE TYPY DANYCH - CD Typy całkowite Typy rzeczywiste Typ void Typ wyliczeniowy Typ logiczny Typ tablicowy Strona 1
2 15. ZASIĘG ZMIENNYCH FORMATOWE WEJŚCIE I WYJŚCIE Formatowe wyjście Formatowe wejście WEJŚCIE I WYJŚCIE ZNAKOWE Operacje wejścia Operacje wyjścia TRYB TEKSTOWY PLIKI W JĘZYKU C Operacje otwarcia i zamknięcia pliku Czytanie z pliku Zapis do pliku WSKAŹNIKI Wskaźniki i tablice Wskaźniki i funkcje Wskaźniki znakowe i funkcje Strona 2
3 I. PSEUDO-KOD 1.WIADOMOŚCI WSTĘPNE. Program komputerowy jest to ciąg operacji przeznaczonych do wykonania przez komputer. Komputer wykonuje operacje jedna po drugiej, chyba, Ŝe wystąpi operacja powodująca zmianę kolejności wykonywania operacji (operacja skoku). Na początku istnienia komputerów wszystkie programy pisano w języku maszynowym, zrozumiałym dla komputera. Zapis taki był dokonywany w postaci dwójkowej (binarnej), co było oczywiście bardzo niewygodne i stało się przyczyną wielu błędów. Dlatego teŝ zostały wprowadzone języki, w których operacje i dane przedstawiano poprzez symbole. W takim języku jedna operacja w programie odpowiadała wykonaniu jednej instrukcji komputera. W chwili obecnej na podobnej zasadzie programuje się w języku Assemblera. Na bazie tych języków rozwinęły się języki wyŝszego poziomu, w których jedna instrukcja programu odpowiada zwykle wykonaniu wielu operacji maszynowych. Języki dzielimy na języki naturalne (językiem takim posługują się ludzi) oraz języki sztuczne. Języki programowania naleŝą do języków sztucznych. Podstawowe róŝnice pomiędzy językami programowania i naturalnymi: - wielkość słownika: w języku naturalnym ponad 200 tysięcy słów, w językach programowania poniŝej tysiąca; - zasady gramatyczne: w języku programowania są duŝo prostsze i jednoznacznie określone. Algorytm dokładny przepis wykonywania szeregu operacji (instrukcji) w celu rozwiązania określonego zagadnienia. Ostatecznym wykonawcą instrukcji zawartej w algorytmie jest oczywiście procesor. Instrukcje te powinny być dla procesora zrozumiałe, chociaŝ sam algorytm nie jest dla niego zrozumiały. W kaŝdym algorytmie powinno się znaleźć: - opis startu, w tym m.in. konieczne dane wejściowe i wyliczenia warunków rozpoczęcia pracy; - opis wykonania, tzn. co robić i jak; - opis zatrzymania pracy, czyli jakie warunki muszą być spełnione, aby proces wykonywania poleceń został zakończony. Program zapisany w postaci ciągu instrukcji języka programowania nazywa się programem źródłowym. Kompilacja (tłumaczenie) programu polega na zastąpieniu elementarnych operacji danego języka programowania elementarnymi operacjami komputera. Jej celem jest sprawdzenie poprawności składniowej i wygenerowanie kodu wynikowego. Do tłumaczenia uŝywane są specjalne programy, nazywane kompilatorami. Kompilator moŝe sam wykryć niektóre błędy popełnione przez programistę. Błędy te moŝna porównać do błędów ortograficznych i składniowych języka naturalnego. Nazywa się je błędami kompilacji. Strona 3
4 Innym rodzajem błędów są błędy wykonania. Uaktywniają się one podczas wykonywania programu, wtedy, gdy komputer nie moŝe wykonać Ŝądanej operacji, np.: próba dzielenia przez zero. Osobną kategorię błędów są błędy logiczne. Muszą być one wykryte przez programistę, gdyŝ kompilator nie jest w stanie ich rozpoznać. Są to błędy, które sprawiają, Ŝe program działa nieprawidłowo, np.: podaje nieprawidłowe wyniki, mimo iŝ nie był zasygnalizowany Ŝaden błąd. Błędy te wynikają najczęściej z błędów popełnionych w fazie projektowania algorytmu i mogą być bardzo trudne do wykrycia oraz usunięcia. Programowanie strukturalne jest to rodzaj programowania, w którym program podzielony jest na niewielkie moduły - procedury, bądź funkcje. Programowanie strukturalne ułatwia projektowanie, testowanie, a takŝe utrzymanie kodu programu. Do najpopularniejszych języków strukturalnych zalicza się Pascal, C, Modula-2. Język proceduralny (angielskie procedural language), język spełniający paradygmat programowania proceduralnego, np. Fortran, Pascal lub C, lecz takŝe kaŝdy nowszy język w swej warstwie proceduralnej. Technika ta charakteryzuje się tym, Ŝe moŝna wyodrębnić części realizujące pewne czynności. Tymi częściami są procedury i funkcje. W ramach takiej jednej funkcji moŝna definiować dodatkowe zmienne, tzw. lokalne czyli dostępne tylko dla tej funkcji. Zatem polega na zamianie danego problemu na serię zadań do wykonania. Te kolejne zadania realizują funkcje. Wykonywanie takiego programu to określona sekwencja wywołań róŝnych funkcji. System przetwarzania danych składa się z oprogramowania (software) i sprzętu (hardware). We wszystkich systemach występują zawsze trzy elementy: dane źródłowe stanowiące dane wejściowe systemu, przetwarzanie danych realizowane przez system, wyniki, czyli dane wyjściowe uzyskane z systemu. Dane wyjściowe przetwarzanie dane wyjściowe GENERACJE JĘZYKÓW PROGRAMOWNIA Języki programowania moŝna podzielić na pięć wyraźnie róŝniących się generacji: GENERACJA I programy były opracowywane bezpośrednio w kodzie binarnym (jako ciąg 0,1). KaŜdy typ komputera (procesora) operuje własnym kodem, który nazywamy językiem wewnętrznym lub maszynowym. Jest to wadą tych języków, gdyŝ programista kaŝdorazowo musi dostosowywać się do języka konkretnej maszyny. GENERACJA II poniewaŝ, operowanie ciągami 0, 1 jest niewygodne dla programisty przypisano im symbole mnemotechniczne (MOV, ADD, POP) w ten sposób powstały języki symboliczne niskiego poziomu zwane asemblerami. Stanowią one proste tłumaczenie języka maszynowego na symbole i są one ściśle związane z danym modelem komputera (procesora), ułatwiają pisanie instrukcji i czynią program bardziej czytelny. Strona 4
5 GENERACJA III kolejnym krokiem było powstanie języków wysokiego poziomu. Symbole asemblera oznaczające konkretne instrukcje zostały zastąpione kodem nie związanym z maszyną, bardziej zbliŝonych do języka naturalnego lub matematycznego. Język C i Pascal naleŝy do tej generacji języków. GENERACJA IV wyróŝnić tutaj moŝna szereg narzędzi, które umoŝliwiają budowę prostych aplikacji przez zestawianie modułów. Przyjęło się, Ŝe nazwę czwarta generacja naleŝy stosować wyłącznie w odniesieniu do programu obiektowego. Przykładem moŝe tu być język C++ GENERACJA V nazwę tę stosuje się czasem w odniesieniu do języków uŝywanych do tworzenia programu wykorzystujących tak zwaną sztuczną inteligencję lub inaczej systemów ekspertowych. 2. PSEUDO-KOD. Algorytm moŝna zapisać na wiele sposobów. MoŜna go przedstawić przy pomocy schematów blokowych, języka naturalnego, jak równieŝ bezpośrednio przy pomocy języka programowania. Obecnie często wykorzystuje się w tym celu technikę pośrednią pomiędzy językiem naturalnym a językiem programowania, tj. pseudo-kod. Pseudo-kod jest to niby-kod programu, czyli kod programu zapisany przy pomocy ustalonych zdań w języku naturalnym. Nie jest on zrozumiały dla Ŝadnego kompilatora i nie moŝe być przetłumaczony przez niego na język maszynowy ani na program wykonywalny. Ułatwia jednak zrozumienie zasad programowania i w późniejszym etapie takŝe pomaga w napisaniu programów w dowolnym języku programowa. Jest to moŝliwe dlatego, Ŝe poszczególne zdania pseudo-kodu są odpowiednikami podstawowych instrukcji, operatorów lub funkcji w językach programowania wysokiego poziomu. Pseudo-kod jest częściowo sformalizowany, czyli obok pewnych ustalonych struktur dopuszcza równieŝ uŝycie języka naturalnego do opisu róŝnych czynności. Zawiera ona pewne elementy składniowe, które są nazywane zdaniami ZDANIE PROSTE, KTÓRE OKREŚLA CZYNNOŚĆ DO WYKONANIA. Zdania te zapisywane są w języku naturalnym (czyli po prostu w języku polskim) i określają elementarny lub bardziej złoŝony krok algorytmu. Jeśli jest to krok elementarny, to wystarczy przy tworzeniu programu zapisać ten krok w języku programowania, natomiast jeśli jest to złoŝony krok algorytmu, to podczas uszczegółowiania projektu zostanie on zastąpiony sekwencją prostszych zdań pseudo-kodu. Przykład przypisz średniej wartość zero Jest to elementarny krok algorytmu mający odpowiednik w języku programowania. Przykład oblicz wartość średniej Jest to złoŝony krok algorytmu wymagający uszczegółowienia, kilku kroków elementarnych. Strona 5
6 2.2. ZDANIE DECYZYJNE JEśELI. Zdanie to zawiera strukturę opisującą decyzje podejmowane w algorytmie. Do zapisu tej struktury uŝywa się słów : jeŝeli, to i w przeciwnym przypadku, których znaczenie jest takie samo jak w języku polskim. Decyzje będziemy zapisywać przy pomocy dwóch struktur: a) struktury prostej jeŝeli warunek to zdanie gdzie warunek jest wyraŝeniem przyjmującym dwie wartości: wartość prawdy lub fałszu. Jeśli warunek przyjmie wartość prawdy, to wykonuje się zdanie, a gdy warunek przyjmie wartość fałszu, to zdanie nie zostaje wykonane. Przykład jeŝeli średnia ocen ucznia jest większa od 4.5 to wpisz ucznia na listę nagrodzonych uczniów b) struktury z alternatywą jeŝeli warunek to zdaniel w przeciwnym przypadku zdanie2 Przykład jeŝeli następny dzień to niedziela to wyłącz budzik w przeciwnym przypadku nastaw budzik na ZDANIE ITERACYJNE PODCZAS GDY Zdanie to opisuje sytuację, w której pewne czynności naleŝy powtarzać dopóty, dopóki jest spełniony podany warunek. Zdanie to ma postać: podczas gdy warunek wykonuj zdanie Powtarzaną czynność opisuje zdanie. Powtarzanie tej czynności kończy się, gdy warunek przestaje być prawdziwy. Przykład podczas gdy istnieje zapas w magazynie wykonuj realizuj zlecenia wydania towaru Strona 6
7 2.4. ZDANIE ITERACYJNE POWTARZAJ Zdanie to, podobnie jak zdanie podczas gdy, opisuje sytuację, gdy pewne czynności naleŝy powtórzyć w zaleŝności od spełnienia określonego warunku. Zdanie to ma postać: powtarzaj zdanie aŝ warunek Przykład powtarzaj czytaj wartość liczby wykonaj operację na liczbie aŝ wczytano liczbę równą zeru 2.5. ZDANIE ITERACYJNE DLA Zdanie to stosujemy, gdy pewne działanie naleŝy powtórzyć określoną liczbę razy. Zdanie to ma następującą strukturę: dla lista sytuacji wykonuj zdanie Przykład: dla x=1,2,...,100 wykonuj drukuj wartości x, x do kwadratu oraz x do sześcianu 2.6. ZDANIE WYBIERZ Zdanie wybierz słuŝy do wyboru z kilku moŝliwości jednej. Ma ono postać: wybierz przełącznik z wartość_1: zdanie_1... wartość_n: zdanie_n w przeciwnym przypadku akcja awaryjna Przykład wybierz p z 1: wykonaj operację pierwszą 2: wykonaj operację drugą 3: wykonaj operację trzecią 4: wykonaj operację czwartą w przeciwnym przypadku wypisz komunikat o błędzie Strona 7
8 2.7. ZDANIE GRUPUJĄCE Zdanie to słuŝy do wskazania, Ŝe ciąg zdań ujęty w nawiasy grupowania moŝna traktować jako pojedyncze zdanie. Ma ono następującą postać: zdanie_l zdanie_2... zdanie_n Przykład jeŝeli rachunek ma saldo ujemne to wyślij ostrzeŝenie do klienta zapisz klienta na listę dłuŝników w przeciwnym przypadku wyślij zwykły wyciąg o stanie konta 3. POJĘCIE ZMIENNEJ. W języku programowania pod pojęciem danych występują takie wartości jak liczby naturalne, liczby całkowite, liczby rzeczywiste, znaki, ciągi znaków, czyli napisy (łańcuchy) posiadające sens lub nie, itp. Z kaŝdym algorytmem (programem) związany jest pewien zbiór danych, który musi zostać odpowiednio przetworzony w wyniku, czego wykonanie algorytmu prowadzi do otrzymania wyników. Podczas przetwarzania danych wykonuje się na nich róŝnego typu operacje jak np. modyfikacja danych czy obliczanie wyników pomocniczych. Do przechowywania wartości danych uŝywa się w języku programowania zmiennych, które są odpowiednikami występujących w matematyce niewiadomych. KaŜda niewiadoma ma ściśle określony zbiór, z którego moŝe przyjmować wartości, zwany zakresem zmienności zmiennej. Na podstawie tego właśnie zbioru mówimy o zmiennej naturalnej, całkowitej, wymiernej czy rzeczywistej. Takie zbiory występują równieŝ w językach programowania i nazywane są typami. W odróŝnieniu od matematyki nie mówimy, Ŝe zmienna X naleŝy do typu A, tylko fakt ten wypowiadamy krócej: X jest typu A. Zmiennym muszą być przypisane konkretne wartości. Przypisywanie wartości zmiennym stanowi podstawowe działanie wykonywane w algorytmach i programach komputerowych. Zawartość zmiennej moŝna wielokrotnie odczytywać, zamazywać i zapisywać. Do przechowywania wartości danej zmiennej wykorzystuje się zawsze to samo miejsce w pamięci operacyjnej komputera. Dlatego teŝ zmienną moŝna sobie wyobrazić jako pudełko do przechowywania wartości analizowanych danych. Strona 8
9 4.PRZYKŁADOWE ALGORYTMY W PSEUDO-KODZIE PIERWSZY ALGORYTM Obliczyć sumę i iloczyn elementów w ciągu liczb zakończonych zerem. Zakładamy, Ŝe w ciągu występuje co najmniej jedna liczba róŝna od zera. przypisz zmiennej suma wartosc 0 przypisz zmiennej iloczyn wartosc 1 wczytaj liczba podczas gdy liczba jest rozna od 0 wykonuj przypisz zmiennej suma wartosc suma plus wartosc liczba przypisz zmiennej iloczyn wartosc iloczyn razy wartosc liczba czytaj kolejna liczba wypisz wartosc zmiennych suma i iloczyn Analiza algorytmu, dla ciągu liczb: 2,4,5,3,0 suma iloczyn liczba DRUGI ALGORYTM Wyznaczyć maksimum z trzech liczb a, b, c wykorzystując zdanie pseudo-kodu jeŝeli. wczytaj a, b, c jeŝeli a > b to jeŝeli a > c to wypisz a w przeciwnym przypadku wypisz c w przeciwnym przypadku jeŝeli b > c to wypisz b w przeciwnym przypadku wypisz c Gdzie znak > oznacza większe, czyli zdanie: a > b oznacza a większe od b Strona 9
10 4.3. ALGORYTM TRZECI Znaleźć najczęściej występujące wartości w ciągu liczb dodatnich (modalna) o długości określonej przez pierwszy wyraz ciągu. Dla ułatwienia zakładamy, Ŝe ciąg jest uporządkowany w kolejności nie-malejącej (np. 1,1,2,2,3,4,4,5,5,5,6,6). /* ustawiamy wartości początkowych zmiennych: */ licznik = 0 // licznik wystąpień modalna = 0 // modalną max = 0 // maksymalną liczbę wystąpień ostatni = - 1 // ostatnią liczbę czytaj dlugosc ciagu dla kazdej liczby z ciągu wykonuj czytaj liczba jeŝeli ostatni == liczba to licznik = licznik + 1 w przeciwnym przypadku jeŝeli licznik > max to max = licznik modalna = ostatni licznik = 1 ostatni = liczba jeŝeli licznik > max to max = licznik modalna = ostatni Gdzie znak = oznacza przypisz zmiennej.. wartosc, zatem zdanie licznik=0 oznacza przypisz zmiennej licznik wartosc 0 Znak == oznacza czy jest rowny?, zatem zdanie ostatni == liczba oznacza czy ostatni jest rowny liczba?. W celu znalezienia najczęściej powtarzającej się liczby w ciągu uporządkowanym wystarczy przeglądając kolejno elementy ciągu zliczać, ile razy wystąpiła ta sama liczba. JeŜeli przy przejściu do następnego elementu ciągu, liczba nie zmieniła się, to naleŝy zwiększyć licznik wystąpień, natomiast gdy nastąpiła zmiana naleŝy porównać wartość licznika wystąpień z wartością zmiennej max, w której przechowywana jest największa dotychczasowa liczba wystąpień. JeŜeli wartość licznika jest większa od wartości zmiennej max oznacza to, Ŝe znaleźliśmy najdłuŝszy do tej pory ciąg jednakowych liczb. NaleŜy wtedy ustawić nową wartość zmiennej max i nową wartość modalnej. KaŜdorazowo jeŝeli ostatnia liczba jest róŝna od aktualnie sprawdzanej naleŝy wartość licznika ustawić na jeden oraz za ostatnią liczbę przyjąć aktualną. Strona 10
11 5. REGUŁY ZAPISU WYRAśEŃ MATEMATYCZNYCH. Tekst programu powinien być zapisywany w postaci ciągu znaków dostępnych z klawiatury (bez znaków specjalnych, specyficznych dla danego języka narodowego, takich jak np.: ą, ä). NaleŜy pisać kaŝdy znak mnoŝenia *, nawet wtedy, gdy w matematyce zwykle się go opuszcza. Potęgowanie najlepiej zamieniać na mnoŝenie lub zapis przy pomocy operatora ˆ, przed którym naleŝy podać podstawę potęgowania, a po nim wykładnik potęgi. Natomiast we wszystkich ułamkach zwykłych kreskę ułamkową naleŝy zastąpić dzieleniem /. Przykład: Ułamek x-1 ( y + z 2 ) powinien być zapisany w sposób następujący: (x-1)/((y+z)*(y+z)) lub (x-1)/((y+z) ˆ2 II. PROGRAMOWANIE W JĘZYKU C LITERATURA 1. Brian W. Kerninghan, Dennis M. Ritchie: Język ANSI C. 2. Jerzy Grębosz: Symfonia C Andrzej Zalewski: Programowanie w językach C i C++ z wykorzystaniem pakietu Borland C++. Strona 11
12 1. CECHY JĘZYKA 1. Język C jest językiem ogólnego stosowania, charakteryzuje się: prostotą wyraŝeń, bogatym zbiorem operatorów, efektywnością instrukcji oraz nowoczesnymi strukturami danych. Został opracowany i zrealizowany przez Dennisa Ritchie dla systemu Unix działającego na minikomputerze DEC PDP-11 w 1972 roku w Bell Laboratories w New Jersey. DuŜo elementów języka C pochodzi z języka BCPL, opracowanego przez Martina Richardsa, a takŝe z języka B, stworzonego w 1970 r. przez Kena Thompsona dla pierwszego systemu Unix działającego na maszynach DEC PDP ChociaŜ nazwano go "językiem programowania systemowego", (interesującym jest fakt, Ŝe sam system operacyjny Unix, kompilator języka C jak i ogromna grupa programów usługowych tego systemu została napisana w języku C) równie dobrze moŝna go uŝyć do pisania programów numerycznych, przetwarzania tekstów oraz obsługi baz danych. 3. Język C jest językiem względnie "niskiego poziomu", nie oznacza to nic negatywnego lecz to, Ŝe posługuje się tym samym zbiorem obiektów co większość kompilatorów, np. znakami, liczbami i adresami. Obiekty mogą być przemieszczane za pomocą zwykłych operacji arytmetycznych i logicznych. 4. W języku C nie istnieją operacje na obiektach złoŝonych traktowanych jako całość, takich jak ciągi znaków, pliki, listy, tablice czy rekordy. 5. Język C nie dostarcza instrukcji we/wy, brak w nim instrukcji typu Read czy Write oraz automatycznych metod dostępu do plików. Operacje we/wy są realizowane przez jawnie wywołane funkcje naleŝące do biblioteki standardowej(<stdio.h>). 6. Język C oferuje jedynie proste, jednoprocesorowe konstrukcje sterujące: instrukcje warunkowe, instrukcje pętli oraz funkcje. Nie zapewnia wieloprogramowości, współbieŝności i synchronizacji procesów. 7. W języku C występują wskaźniki - zmienne przechowujące adresy oraz jest moŝliwość wykonywania obliczeń na adresach obiektów dynamicznych. 8. W języku C definicje funkcji nie mogą być zagnieŝdŝone ( jedna w drugiej), podczas wywołania przekazywanie argumentów funkcjom odbywa się przez kopiowanie wartości argumentu aktualnego w miejsce argumentu formalnego ("przekazywanie przez wartość"). Funkcje mogą zwracać obliczone wartości, których typ określany jest w nagłówku jej definicji. 9. Aby zwrócić większą liczbę obliczonych wartości, moŝna zastosować efekt "przekazywania parametru przez adres" (znany z języka Pascal), naleŝy wtedy bezpośrednio przekazać do funkcji wskaźnik (adres) do obiektu, wówczas funkcja ma moŝliwość zmiany wartości (zwrócenia obliczonej wewnątrz funkcji wartości) wskazywanego obiektu. Jeśli argumentami funkcji są nazwy tablic, oznacza to, Ŝe przekazywane są adresy połoŝenia początków tablic. 10. W języku C dowolną funkcję moŝna wywołać rekurencyjnie (bezpośrednio lub pośrednio), zmienne lokalne funkcji są automatycznie tworzone przy kaŝdym jej wywołaniu. 11. W języku C rozróŝniane są duŝe i małe litery w nazwach obiektów, wszystkie uŝywane w programie obiekty muszą być wcześniej zadeklarowane. Program w języku C moŝe być zapisany w kilku plikach. W najprostszej postaci program jest funkcją o wyróŝnionej nazwie: main(). Strona 12
13 2. WPROWADZENIE DO PROGRAMOWANIA W JĘZYKU C Do przygotowania programów na komputerach PC w środowisku systemu Dos lub Windows, wykorzystamy pakiet programów firmy Borland, zawierający kompilator języka C i C++ wersji Aktualnie na rynku moŝna spotkać równieŝ inne pakiety związane z językiem C: Visual C++, Builder C++. W ramach tego pakietu otrzymujemy: 1. edytor programów źródłowych, 2. kompilator, tłumaczący programy źródłowe w języku C lub C++ na język binarny. 3. program pomagający śledzić wykonywanie programów - Debugger. W innych systemach operacyjnych typu Unix lub Linux równieŝ istnieją kompilatory języka C lub C++. W przypadku systemu Unix musimy utworzyć program źródłowy w pliku o nazwie z rozszerzeniem '.c', np. nazwa.c a następnie przetłumaczyć go do postaci binarnej za pomocą polecenia: cc nazwa.c Jeśli tłumaczenie zakończy się sukcesem zostanie utworzony plik programu binarnego o nazwie 'a.out', który po załadowaniu i uruchomieniu wypisze wyniki. 3. PODSTAWOWE ELEMENTY JĘZYKA C Do podstawowych elementów języka C naleŝą: zestawy znaków, nazwy i słowa zastrzeŝone, typy danych, stałe, zmienne i ich deklaracje, wyraŝenia, INSTRUKCJE ZESTAW ZNAKÓW JĘZYKA C Do zestawu znaków w języku C naleŝą: duŝe litery alfabetu łacińskiego (od A do Z), małe litery (od a do z), cyfry (od 0 do 9), znaki specjalne: _!*/+-\"<>=#()[]^;', &:~ \b, \n, \t, \0 - oznaczają odpowiednio znaki: backspace, nowa linia, tabulacja, koniec słowa. Strona 13
14 3.2. NAZWY I SŁOWA ZASTRZEśONE JĘZYKA C Nazwy słuŝą do identyfikowania elementów w programie (stałych, zmiennych, funkcji, typów danych, itp.). Nazwa składa się z ciągu liter, cyfr i znaków podkreślenia, przy czym pierwszym znakiem musi być litera, ponadto rozróŝniane są duŝe i małe litery. Tradycyjnie w języku C nazwy zmiennych pisane są małymi literami, natomiast nazwy stałych symbolicznych - dla lepszego rozróŝnienia - pisane są duŝymi literami. Słowa zastrzeŝone (kluczowe) są to wybrane słowa o szczególnym znaczeniu dla języka C, np. char, case, while, for, void, return, if, else, itp. Słów tych nie wolno uŝywać jako nazw zmiennych PODSTAWOWE TYPY DANYCH. Do podstawowych typów danych języka C naleŝą: char znak - jeden bajt, int liczba całkowita short liczba całkowita krótka, long liczba całkowita długa, float liczba zmiennopozycyjna (rzeczywista-pojedynczej precyzji), double liczba zmiennopozycyjna podwójnej precyzji STAŁE. W języku C występują cztery rodzaje stałych programowych: Stałe całkowite: dziesiętne: 0, 123, -123, +999 ósemkowe: 0123, 0345, (uwaga: pierwszą cyfrą musi być zero) szesnastkowe: 0x123, 0xA1, 0xff (uwaga: pierwszymi znakami muszą być 0x lub 0X). Stałe rzeczywiste: , 12.23e-12 (oznacza * ), 12.34E+12 (oznacza * ). Stałe znakowe: znaki ujęte w apostrofy, np. 'a', 'A', '', '#', '1' escapesekwencje: \n, \t, \0, \b Łańcuchy znakowe: Łańcuchy znakowe to ciągi znaków ujęte w cudzysłów, np..:: " wynik= ", "WIELICZKA". Na łańcuch znaków moŝna patrzeć jak na pewne poindeksowane pole elementów, np. napis "Polska", jest reprezentowany jako: [P][o][l][s][k][a][\0] indeksy Strona 14
15 3.5. ZMIENNE I ICH DEKLARACJE. Zmienne w programie reprezentują komórki pamięci, w których będą przechowywane dane kreślonego typu. KaŜda zmienna powinna mięć nadaną wartość początkową, w trakcie pracy programu wartości poszczególnych zmiennych ulegają zwykle zmianom. Przed uŝyciem zmiennej naleŝy zmienną zadeklarować, tzn. określić typ i zakres wartości, jakie moŝe przyjmować. W przypadku języka C wszystkie zmienne naleŝy zadeklarować na początku programu lub funkcji, przed pierwszą instrukcją. Deklaracja zmiennej wygląda następująco: identyfikator_typu nazwa_zmiennej; Np.: deklaracja zmiennej numer typu rzeczywistego: int numer; MoŜna zadeklarować jednocześnie (jedną instrukcją) kilka zmiennych, jak równieŝ przy deklaracji moŝna zainicjalizować zmienną (nadać jej wartość początkową): int numer=1, licznik, a; // deklaracja zmiennych numer, licznik, a typu całkowitego // oraz inicjalizacja zmiennej numer wartością 1 Błędne oszacowanie typu lub zakresu zmiennej moŝe być przyczyną błędów kompilacji lub błędów wykonania programu. np.: Jeśli zadeklarujemy zmienne: promien i obwod typu całkowitego oraz pi typu rzeczywistego, a następnie wyznaczymy obwód okręgu o promieniu promien: int promien, obwod; float pi=3.14; to podstawienie obwod=2*promien*pi; spowoduje przypisanie wartości 0 zmiennej obwod. Jest to oczywiście błędny wynik, spowodowany przez dwa błędy: brak nadania wartości początkowej zmiennej promien, nieprawidłowy typ zmiennej obwod WYRAśENIA I OPERATORY WyraŜeniem moŝe być samodzielny element danych, np. liczba, znak, stała lub zmienna jak równieŝ kombinacja w/w elementów połączonych znakami odpowiednich operatorów, np. arytmetycznych, relacyjnych lub logicznych. Przykłady: b + c b /3 " wynik " + " = 12 " x > y x!= y x <=y x ==y k * ( a + 1 ) b[i-1] ++ Strona 15
16 3.7. INSTRUKCJE Instrukcja jest ciągiem znaków, oznaczającym polecenie przekazywane kompilatorowi do wykonania. Zazwyczaj (poza kilkoma wyjątkami) instrukcja musi być zakończona średnikiem. Instrukcje mogą być zapisywane w jednej linii po kilka (gdy są krótkie) lub w wielu liniach, gdy są długie. Z uwagi jednak na czytelność programu zaleca się pisanie jednej instrukcji w jednej linii. Instrukcje w języku C moŝna podzielić na następujące grupy: przypisania ( obliczające wartości zmiennych ) a = b + c ; instrukcje grupujące - (bloki: sekwencje instrukcji w nawiasach ) a=b+c; x=2*(a-1);... instrukcje sterujące: warunkowe if.. else, wielokrotnego wyboru switch case; instrukcje sterujące: pętle (while, for,do while); instrukcje wywołania funkcji. 4. KOMENTARZE Komentarze mogą być umieszczone w dowolnym miejscu programu i mają słuŝyć wyjaśnieniu wybranych fragmentów kodu. Treść komentarza jest opuszczana przez kompilator i nie jest interpretowana. Komentarze oznacza się w następujący sposób: /* treść komentarza*/ w językach C i C++ - wszystko, co znajduje się pomiędzy znakami /* oraz */ jest traktowane przez kompilator jako komentarz // komentarz do skomentowania jednej linii wszystko, co znajduje się po tym znaku jest traktowane przez kompilator jako komentarz - tylko język C++, jednak w przypadku naszego kompilatora, tego typu komentarze są dopuszczalne takŝe dla języka C. Komentarze nie mogą być zagnieŝdŝone, np.: nie jest poprawny następujący zapis: /* początek komentarza 1 /* początek komentarza 2 koniec komentarza 2*/ koniec komentarza 1*/ Strona 16
17 5. OPERATORY 5.1. OPERATORY PORÓWNANIA W językach C, C++ występują następujące operatory porównania: == // równy, np.: a==3 oznacza czy a równe 3!= // róŝny, np.: a!=3 oznacza czy a róŝne od 3 < // mniejszy, np.: a<3 oznacza czy a mniejsze od 3 > // większy, np.: a>3 oznacza czy a większe od 3 <= // mniejszy lub równy, np.: a<=3 oznacza czy a mniejsze lub równe 3 >= // większy lub równy, np.: a>=3 oznacza czy a większe lub równe OPERATORY INKREMENTACJI (ZWIĘKSZANIA) I DEKREMENTACJI (ZMNIEJSZANIA) O JEDEN. Są to operatory ++ oraz --. Przykładowo instrukcje: a++; oraz ++a; oznaczają zwiększenie o 1 wartości zmiennej a. RóŜnica pomiędzy tymi instrukcjami jest następująca: x = a++; // oznacza, Ŝe najpierw zostanie wykonane podstawienie x = a, następnie //wartość zmiennej a zostanie zwiększona o 1. x = ++a; // oznacza, Ŝe najpierw wartość zmiennej a zostanie zwiększona o 1, następnie // zostanie wykonane podstawienie x = a. Zatem przykładowo: a = 3; if (b>3) x = a++; // x = 3, a = 4 else x = ++a; // x = 4, a = 4 Natomiast instrukcje: a--; oraz --a; oznaczają zmniejszenie o 1 wartości zmiennej a. RóŜnice po między nimi są identyczne jak powyŝej OPERATORY LOGICZNE. W językach C/C++ wartość logiczna prawda jest reprezentowana jako liczba całkowita róŝna od zera, zaś fałsz jako zero (całkowite). Jednak reprezentacja ta jest zaleŝna od kompilatora i moŝe nieco odbiegać od tego schematu, dlatego lepiej nie posługiwać się numerycznym odpowiednikiem wartości logicznych. Operatory umoŝliwiające operacje na wartościach logicznych to: Nazwa operatora Reprezentacja w C/C++ Reprezentacja w PascaluZnaczenie koniunkcja && and i (iloczyn logiczny) alternatywa or lub (suma logiczna) negacja! not nieprawda, Ŝe Strona 17
18 Przykłady zastosowań: if ((a>b) && (a>c)) // jeśli a>b i a>c to podstaw max = a max = a; if ((a>b) or (a>c)) // jeśli a>b lub a>c to zmniejsz a o 1 a--; if!koniec // jeśli nieprawda, Ŝe koniec to zwiększ a o 1 a++; 6. INSTRUKCJE PODSTAWIENIA Ma ona postać: identyfikator_nazwy_zmiennej = wartosc np.: a = 3; // zmiennej o nazwie a została przypisana wartość 3 a = (a-3)*2; // zmiennej a została przypisana wartość (a-3)*2 Wartość przypisywana zmiennej musi być zgodna z typem zmiennej. Inne instrukcje przypisania: a += 3; // oznacza podstawienie: a = a + 3 a *= 3; // oznacza podstawienie: a = a * 3 a *= y - 5; // oznacza podstawienie: a = a * (y 5) a /= 3; // oznacza podstawienie: a = a / 3 a %= 3; // oznacza podstawienie: a = a % 3, czyli podstaw resztę z dzielenia a przez 3 a ^= 3; // oznacza podstawienie: a = a ^ 3, czyli podstaw a do potęgi 3 a -= 3; // oznacza podstawienie: a = a INSTRUKCJE GRUPUJĄCE NAWIASY KLAMROWE Nawiasy klamrowe słuŝą do grupowania instrukcji prostych oraz deklaracji w jedną instrukcję złoŝoną, czyli blok, aby całość składniowo odpowiadała jednej instrukcji. Pełnią funkcję instrukcji begin i end z Pascala. Stosuje się je np.: w instrukcjach sterujących if, for, while, do while itd. Strona 18
19 8. INSTRUKCJE WYBORU INSTRUKCJA IF ELSE if (warunek) instrukcja1; else instrukcja2; Konstrukcja ta oznacza: jeśli warunek jest spełniony to wykonaj instrukcje instrukcja1, w przeciwnym wypadku wykonaj instrukcje instrukcja2. Jeśli instrukcja1 lub instrukcja2 składa się z więcej niŝ jednej instrukcji prostej, to jest to naleŝy umieścić ją w nawiasach klamrowych. Część else nie jest wymagana. Jest ona związana z najbliŝszą, poprzedzającą ją instrukcją if, o ile nie zostaną uŝyte nawiasy klamrowe, określające inne przyporządkowanie, np.: if (a<b) if (a>c) a=c; else a=b; Część else dotyczy drugiej instrukcji if, czyli if (a>c). if (a<b) if (a>c) a=c; else a=b; Część else dotyczy pierwszej instrukcji if, czyli if (a<b) INSTRUKCJA WIELOKROTNEGO WYBORU SWITCH. switch (wyraŝenie) case wartość1: instrukcja1; break; case wartość2: instrukcja2; break;... default: // ta część jest opcjonalna nie jest wymagana instrukcja3; break; SłuŜy ona do podejmowania wyboru: jeśli wartość wyraŝenia odpowiada jednej z wartości, podanych po słowie case, to są realizowane instrukcję odpowiadające temu przypadkowi. JeŜeli wyraŝenie nie przyjmuję Ŝadnej z wymienionych wartości, to albo zostaną wykonane akcje, zdefiniowane po słowie default, o ile ta część jest zdefiniowana, albo nie zostanie wykonana Ŝadna akcja, jeśli nie jest zdefiniowana część default. Instrukcja break powoduje natychmiastowe opuszczenie instrukcji switch i gwarantuje wybranie tylko jednej moŝliwości Strona 19
20 spośród podanych w instrukcji. Jest to związane z tym, Ŝe poszczególne przypadki (określone przez case) oznaczają etykiety i po wykonaniu akcji związanych z daną etykietą program przechodzi do wykonania następnej etykiety, chyba, Ŝe zostanie zaŝądane wykonanie instrukcji break, które spowoduje opuszczenie całej instrukcji. 9. INSTRUKCJE ITERACYJNE (PĘTLE). Instrukcja iteracyjna powoduje wielokrotne wykonywanie pewnego fragmentu kodu w zaleŝności od spełnienia podanego warunku PĘTLA WHILE. Jest to instrukcja iteracyjna, której składnia ma postać: while (warunek) instrukcje; W pętli while najpierw oblicza się warunek i jeśli jest prawdziwy, to są wykonywane instrukcje, potem znów sprawdzany jest warunek. Operacje te są powtarzane dotąd, dokąd jest spełniony (prawdziwy) warunek. Przykładowe wykorzystanie pętli while: suma=0; while(i<100) suma = suma + i; i++; NaleŜy pamiętać, Ŝe w przypadku wykonywania w pętli while więcej instrukcji niŝ jedna, naleŝy wszystkie te instrukcje umieścić w nawiasach klamrowych PĘTLA FOR. Jest to instrukcja iteracyjna, której składnia ma postać: for (wyrazenie1;wyrazenie2;wyrazenie3) instrukcje; W pętli for najpierw wykonywane jest wyrazenie1, następnie wylicza się wartość wyraŝenia wyrazenie2 i jeśli jest prawdziwe, to są wykonywane instrukcje, potem jest wyliczana wartość wyraŝenia wyrazenie3 i znów sprawdzana jest wartość wyraŝenia wyrazenie2. Operacje te są powtarzane dotąd, dokąd jest spełnione (prawdziwe) wyraŝenie wyrazenie2. Wyrazenie1 zazwyczaj ma charakter instrukcji podstawienia lub jest wywołaniem funkcji i ustala warunki początkowe. Wyrazenie2 jest warunkiem i ustala warunek opuszczenia pętli. Wyrazenie3 równieŝ ma charakter instrukcji podstawienia lub jest wywołaniem funkcji i steruje licznikiem pętli. Dowolną z tych części moŝna pominąć, ale naleŝy pozostawić Strona 20
21 średniki. Opuszczenie części środkowej powoduje utworzenie pętli nieskończonej, gdyŝ automatycznie przyjmuje się w takiej sytuacji, Ŝe jest ono prawdziwe, dlatego naleŝy w inny sposób zagwarantować opuszczenie pętli, np.: przez warunkowe uŝycie instrukcji break. Przykładowe wykorzystania pętli for: suma=0; for(i=1; i<100; i++) suma = suma + i; Fragment kodu równowaŝny powyŝszemu, z zastosowaniem nieskończonej pętli for. suma=0; for(i=1; ; i++) if(i==100) break; suma+=1; TakŜe w pętli for w przypadku wykonywania więcej instrukcji niŝ jedna, naleŝy wszystkie te instrukcje umieścić w nawiasach klamrowych PĘTLA DO WHILE. Jest to instrukcja iteracyjna, której składnia ma postać: do instrukcje; while (warunek) W pętli do while najpierw wykonywane są instrukcje, następnie sprawdza się wartość warunek i jeśli jest prawdziwy, to znów są wykonywane instrukcje. Operacje te są powtarzane dotąd, dopóki jest spełniony (prawdziwy) warunek. Instrukcja ta tym róŝni się od poprzednich, Ŝe zawsze się wykona przynajmniej raz. Przykładowe uŝycie pętli do while: suma=0; i=0; do suma=suma+i; i++ while(i<100); RównieŜ w pętli do while w przypadku wykonywania więcej instrukcji niŝ jedna, naleŝy wszystkie te instrukcje umieścić w nawiasach klamrowych. Strona 21
22 10. INNE INSTRUCJE STERUJĄCE PRZEBIEGIEM PROGRAMU INSTRUKCJA BREAK. Instrukcja break, czyli przerwij jest dopuszczalna tylko w instrukcjach iteracyjnych (for, while, do.. while) oraz instrukcji wyboru switch. Powoduje ona opuszczenie aktualnego poziomu pętli lub instrukcji wyboru, czyli wychodzi z pętli lub instrukcji switch. Jeśli pętle są zagnieŝdŝone, to break powoduje opuszczenie tylko tej pętli, w której został wykonany. Składnia instrukcji: break; INSTRUKCJA CONTINUE. Instrukcja continue, czyli kontynuuj moŝe być stosowana jedyne wewnątrz instrukcji iteracyjnych. Jej uŝycie wewnątrz pętli while oraz do.. while powoduje przeniesienie sterowania z wnętrza pętli do wyraŝenia warunkowego, które zostanie obliczone i w spowoduje wykonanie odpowiedniej akcji. Wykonanie instrukcji continue wewnątrz pętli for spowoduje przekazanie sterowania do wyraŝenia zwiększającego licznik. Podobnie jak w przypadku instrukcji break, tak teŝ instrukcja continue jest związana z najbliŝszą pętlą w sytuacji, gdy pętle są zagnieŝdŝone. Składnia instrukcji: continue; INSTRUKCJA RETURN. Instrukcja return, czyli zwróć wartość i powróć powoduje zakończenie wykonywania funkcji. Jeśli funkcja zwraca wartość, to wykonanie instrukcji return spowoduje równieŝ zwrócenie tej wartości. Składnia instrukcji: return wyraŝenie; INSTRUKCJA SKOKU DO ETYKIETY. Instrukcja skoku do etykiety umoŝliwia przeniesienie sterowania do określonego miejsca wewnątrz aktualnie wykonywanej funkcji programu. Składnia instrukcji: goto etykieta; Etykieta określa miejsce w programie, do którego ma nastąpić skok. NiemoŜliwy jest skok do miejsc znajdujących się poza funkcją, do której naleŝy instrukcja skoku. Nie naleŝy naduŝywać tej instrukcji, gdyŝ pogarsza ona czytelność programu, a jej uŝycie nie zawsze jest uzasadnione. Etykieta składa się z nazwy, zakończonej dwukropkiem, np.: Etykieta1: Instrukcje; Etykieta2: Instrukcje; Strona 22
23 11. OGÓLNA STRUKTURA PROGRAMU NAJPROSTSZY PROGRAM W JĘZYKU C. Na ogólną strukturę programu w języku C składają się następujące elementy: Dyrektywy preprocesora: włączające biblioteki, makrodefinicje (opcjonalnie), warunkowa kompilacja (opcjonalnie); Deklaracje zmiennych globalnych oraz funkcji (opcjonalnie jeśli są potrzebne); Definicje funkcji (jeśli w programie są wykorzystywane jakieś własne funkcje i będą one wywoływane w funkcjach znajdujących się poniŝej); Funkcja główna programu main od tej funkcji rozpocznie się wykonywanie programu (jest ona obowiązkowa!!!); Pozostałe definicje funkcji (opcjonalnie jeśli nie zostały wcześniej podane). Przykład najprostszego programu w języku C: #include <stdio.h> main() //Dyrektywy preprocesora //Funkcja główna programu main printf( Witam w najprostszym programie w języku C! ); return 0; Zostały tu pominięte wszystkie części struktury programu, które nie są wymagane. Inny przykład prostego programu, który zawiera wszystkie wymienione powyŝej elementy. #include <stdio.h> #include <conio.h> int aa; void f2(); // Dyrektywy preprocesora // Deklaracja zmiennej globalnej aa // Deklaracja funkji f2 int f1() // Definicja funkcji f1 printf("\ntu funkcja f1! \nnaciśnij dowolny klawisz...\n"); getch(); return 0; main() // Definicja funkcji głównej int a=5; char tab_dom[]="dom"; clrscr(); printf("\nahoj, przygodo! \nnasza zmienna globalna to %d",aa); printf("\n A to nasza tablica: %s, a jej rozmiar %d",tab_dom, sizeof(tab_dom)); printf( \Naciśni dowolny klawisz... ); getch(); f1(); f2(); return a+aa; void f2() printf("\ntu funkcja f2!\n"); printf("press any key...\n"); getch(); return; // Definicja pozostałej funkcji Strona 23
24 12. PREPROCESOR. Preprocesor języka C jest pojęciowo oddzielnym, pierwszym krokiem tłumaczenia programu. Wykonuje on tzw. dyrektywy preprocesora, odpowiedzialne za makrodefinicje, włączanie zawartości innych plików źródłowych oraz kompilację warunkową. Wszystkie dyrektywy preprocesora zaczynają się od znaku # DYREKTYWA WŁĄCZAJĄCA PLIKI BIBLIOTECZNE. Jest to dyrektywa #include, która powoduje zastąpienie tej instrukcji zawartością pliku o wskazanej nazwie. W ten sposób włączane są biblioteki, czyli pliki o rozszerzeniu h, zawierające kompletne definicje zmiennych, stałych oraz funkcji. Składnia instrukcji jest następująca: #include <nazwa_biblioteki.h> Np.: #include <stdio.h> PowyŜsza instrukcja jest poleceniem włączenia do programu standardowej biblioteki języka C o nazwie stdio.h, która zawiera definicje podstawowych funkcji tego języka. Jeśli dołączamy bibliotekę standardową, to jej nazwę naleŝy ująć w nawiasy <>. Natomiast w przypadku włączania bibliotek niestandardowych (np.: napisanych przez nas) nazwę biblioteki naleŝy ująć w cudzysłów, np.: #include <stdio.h> #include moja_bl.h Stosowanie tej dyrektywy gwarantuje, Ŝe w wielomodułowym programie w kaŝdym module wszystkie definicje i deklaracje zmiennych będą identyczne. A dla programów jednomodułowych, jak teŝ wielomodułowych, dyrektywa ta umoŝliwia korzystanie z funkcji standardowych języka DYREKTYWY MAKRODEFINICJI. Są to dyrektywy #define i #undef, które słuŝą do definiowania lub kasowania definicji nazwy. Składnia tych dyrektyw jest następująca: #define nazwa zastepujacy_tekst_lub_wartosc #undef nazwa_do_skasowania Po wystąpieniu dyrektywy #define wszystkie wystąpienia nazwa będą zastępowane przez ciąg znaków podany w zastepujacy_tekst_lub_wartosc. Dyrektywa #undef kasuje wcześniejszą definicję. Przykłady makrodefinicji: #define Pi 3.14 // kaŝde wystąpienie słowa Pi będzie zastąpione wartością 3.14 #define max(a,b) ((A)>(B)? (A) : (B)) // Makrodefinicja do wyznaczania // maksymalnej wartości spośród dwóch liczb. #undef Pi // definicja Pi została wykasowana teraz Pi nic juŝ nie znaczy. Strona 24
25 12.3. DYREKTYWY WARUNKOWEJ KOMPILACJI. Są to dyrektywy: #if, #else, #endif, #elif, #ifdef, #ifndef. Realizują one trochę rozbudowaną instrukcję if-else dla preprocesora, np.: #if system==mswindowsnt #define Pi 3.14 #else #define Pi #endif Znaczenie dyrektyw: #elif: #else if #ifdef: #if zdfefiniowano #ifndef: #if nie_zdefiniowali W zaleŝności od treści tych dyrektyw preprocesor wykonuje pewne operacje lub nie. 13. FUNKCJE. Funkcje to małe programy, podprogramy. Są to logicznie spójne fragmenty programu, które moŝna wydzielić z całości i potraktować jako jedno zadanie, polecenie, jeden krok w algorytmie. Zazwyczaj program dzieli się na takie kawałki, aby uzyskać większą przejrzystość algorytmu i poprawić jego czytelność. Często tak skonstruowane funkcje są wielokrotnie wykorzystywane w programie w róŝnych miejscach. Mogą być równieŝ stosowane w wielu róŝnych programach. Taki program moŝna porównać do budowli z klocków, a funkcje do samych klocków. Podczas deklaracji funkcji w języku C/C++ naleŝy podać typ zwracanej wartości (jeśli nie zostanie podany, to domyślnie jest to typ całkowity), nazwę funkcji oraz listę jej parametrów. Wszystkie te elementy składają się na tzw. prototyp funkcji. Wygląda to następująco: identyfikator_typu_zwracanej_wartosci nazwa_funkcji (lista_parametrow_funkcji); np.: int Max(int a, int b); // funkcja Max zwraca wartość typu całkowitego, posiada dwa // parametry typu całkowitego. Przy definicji funkcji naleŝy dodatkowo podać zawartość ciała funkcji, które jest umieszczone w nawiasach klamrowych, np.: int Max(int a, int b) int wynik; if (a>b) wynik=a; else wynik=b return wynik; // Ciało funkcji Strona 25
26 Na wewnętrzną strukturę funkcji składają się deklaracje zmiennych i stałych (w języku C muszą one wystąpić na początku funkcji, w przypadku C++ mogą wystąpić w dowolnym miejscu, ale zanim zostaną uŝyte) oraz instrukcje, wśród których musi znaleźć się instrukcja return bez względu na to, czy funkcja zwraca jakąś wartość, czy teŝ nie (typ void). W języku C/C++ nie ma procedur, ich rolę spełniają funkcje, które zwracają wartość typu void. Wywołanie funkcji wygląda następująco: zm_max=max(13,b); // do zmiennej zm_max wstaw wartość zwracaną // przez funkcję Max dla argumentów 13 i b Strona 26
27 14. PODSTAWOWE TYPY DANYCH - CD TYPY CAŁKOWITE. TYP Rozmiar w bajtach Wartość min Wartość max unsigned char signed char unsigned int short signed int signed int long unsigned int long signed int W niektórych kompilatorach rozmiar dla niektórych typów moŝe być nieco inny, co powoduję równieŝ zmianę wartości min i max dla danego typu. RównowaŜność typów całkowitych: Typ char short unsigned short int unsigned long unsigned long Typy równowaŝne signed char lub unsigned char (zaleŝy od opcji kompilatora) short int, short signed, short signed int unsigned short int signed int unsigned int long int, signed long int unsigned long int Zmienne całkowite są reprezentowane w dwojaki sposób: bez znaku (unsined) lub ze znakiem (signed). W przypadku danych typu char (typ znakowy) wartość moŝe zostać przypisana na dwa sposoby: przez podanie stałej dziesiętnej (liczby) lub znaku ujętego w apostrofy, np.: char literab=66; // równowaŝne literab = B char literaa= A ; // równowaŝne literaa = 65 signed char znak=-71; // równowaŝne znak = «char znakenter= \n ; // znak specjalny przejście do następnej linii char znak7c= \x7c ; // znak o kodzie szesnastkowym 7c char znak8= \10 ; // znak o kodzie dziesiętnym 8 (ósemkowo 10) Strona 27
28 14.2. TYPY RZECZYWISTE. Typ Rozmiar w bajtach Zakres float 4 3.4* *10 38 double 8 1.7* * long double * * W niektórych kompilatorach rozmiar dla niektórych typów moŝe być nieco inny, co powoduję równieŝ zmianę wartości min i max dla danego typu. Przykłady deklaracji i inicjalizacji zmiennych rzeczywistych: float s=123.16e10; // wartość *10 10 double x=10.0; // wartość 10 double y=10.; // wartość 10 long double x=.12398; // wartość double xx= ; // wartość double xy=.98e-5; // wartość 0.98*10-5 float xz=10.08e37f; // wartość 10.08*10 37, typ float korzysta w pełni z precyzji typu TYP VOID. Typ void reprezentuje pusty zbiór wartości. Jest uŝywany często jako typ wartości zwracanej przez funkcję, która nie zwraca Ŝadnej wartości. MoŜe być równieŝ wykorzystany do deklarowania wskaźników, wskazujących na obiekty nieznanego typu TYP WYLICZENIOWY. Typ wyliczeniowy jest osobnym typem dla liczb całkowitych. Składa się z listy nazw, którym zostały przyporządkowane wartości całkowite. Pierwsza nazwa na liście ma wartość zero, następna wartość 1 i tak dalej, chyba, Ŝe jawnie zostanie nadana inna wartość. Wszystkie nazwy, nieokreślone jawną wartością, przyjmują wartość kolejnych liczb całkowitych od ostatnio określonej wartości. Deklaracja wygląda następująco: enum nazwa_typu lista wyliczeniowa nazw; Np.: enum dni Pon,Wt,Sr,Czw,Pt,Sob,Nie; // Pon=0, Wt=1 itd. enum dni Pon=1,Wt,Sr,Czw,Pt=10,Sob,Nie; // Pon=1, Wt=2, Pt=10, Sob=11 itd TYP LOGICZNY W języku C/C++ nie ma zmiennej typu logicznego, która odpowiadałaby pascalowskiej zmiennej typu Boolean. Typ ten pojawia się dopiero w niektórych kompilatorach dla C++ (np.: Borland Builder C++ 4.0) i jest zdefiniowany jako typ wyliczeniowy o nazwie Bool. Jednak samo pojęcie prawdy lub fałszu jest rozpoznawane i w większości kompilatorów języka C wartość FALSE (fałsz) jest utoŝsamiana z zerem, zaś wartość TRUE (prawda) jest utoŝsamiana z kaŝdą liczbą całkowitą, róŝną od zera. Strona 28
29 14.5. TYP TABLICOWY. Tablica jest złoŝoną strukturą danych, składającą się z elementów tego samego typu. Zajmuje ona ciągły obszar pamięci o rozmiarze potrzebnym do zapamiętania jej elementów. Elementy tablicy mogą być dowolnego typu oprócz typu referencyjnego. Deklaracja n-wymiarowej tablicy: identyfikator_typu elementu nazwatablicy[wymiar1][wymiar2]...[wymiarn]; Jeśli nie podamy rozmiaru tablicy, to musimy ją od razu zainicjalizować, jej rozmiar zostanie obliczony na podstawie wartości przypisanej podczas inicjalizacji. W przypadku tablic wielowymiarowych moŝna opuścić tylko pierwszy wymiar. Przykłady deklaracji i inicjalizacji char str[30]; int tab[15]; char str1[6]= Rynek ; char tab_dom[]= dom ; int tab1[4]=0,1,2,3; int tab3[2][3]=1,2,3,4,5,6; // tablica 30 znaków // tablica 15 liczb całkowitych // deklaracja tablicy 6 znaków oraz // inicjalizacja zmiennej wartością Rynek // równowaŝna deklaracja: char tab_dom[]= dom ; // deklaracja 4 elementowej tablicy liczb całkowitych // połączona z inicjalizacją // deklaracja 2-wymiarowej tablicy połączona z // inicjalizacją, pierwszy wymiar oznacza liczbę wierszy, // drugi liczbę kolumn: tab3 posiada 2 wiersze // zawierające po 3 elementy (3 kolumny) NaleŜy pamiętać, Ŝe w języku C/C++ elementy tablic są numerowane od zera. W przypadku tablic znakowych naleŝy równieŝ pamiętać o zarezerwowaniu dodatkowego elementu tablicy na znak końca łańcucha znaków ( \0 ), np.: dla słowa dom naleŝy zadeklarować tablicę 4-ro elementową (a nie 3- elementową): char tab_dom[4]= dom ; Odwoływanie się do poszczególnych elementów tablicy realizowane jest przy pomocy nawiasów kwadratowych, np.: char tab[]= domek ; char znak; znak=tab[0]; // Zmiennej znak zostanie nadana wartość d tab[0]= T ; // Aktualna zawartość tablicy tab to słowo Tomek Strona 29
30 15. ZASIĘG ZMIENNYCH. Ogólnie rzecz biorąc, zmienna jest widoczna w obrębie modułu, w którym jest zadeklarowana od momentu deklaracji. Zmienne moŝemy podzielić na zewnętrzne (globalne) oraz lokalne (prywatne, automatyczne). Deklaracje zmiennych zewnętrznych (globalnych) znajdują się za zewnątrz wszystkich funkcji i są dostępne przez nazwę we wszystkich funkcjach znajdujących się w pliku, w którym zostały zadeklarowane. Jeśli program składa się z wielu modułów to zmienne zewnętrzne są widoczne w tych modułach, w których została powtórzona ich deklaracja ze słowem extern. RównieŜ, jeśli w jakiejś funkcji uŝywamy zmiennej zewnętrznej, a jej deklaracja znajduje się w dalsze części pliku, to naleŝy ją zadeklarować wewnątrz funkcji, ale ze słowem extern. Jeśli np.: w pliku głównym mamy deklarację int licznik; Aby ta zmienna była widoczna w innych modułach programu, musimy umieścić w nich deklarację: extern int licznik; Deklaracja zmiennej globalnej jest równocześnie jej definicją (inicjalizacją), czyli powoduje przydzielenie jej rzeczywistej pamięci i nadanie wartości domyślnej w zaleŝności od jej typu. Zmienna zewnętrzna (globalna) istnieje przez cały czas działania programu i zachowuje swoją wartość nawet po zakończeniu działania funkcji, która nadała jej wartość. Natomiast deklaracje zmiennych lokalnych (automatycznych) to deklaracje prywatnych zmiennych funkcji. Znajdują się one w ciele funkcji i Ŝadna inna funkcja nie ma do nich dostępu. Są one widoczne tylko w obrębie danej funkcji i pojawiają się oraz znikają wraz z wywołaniem funkcji istnieją tylko podczas wykonywania funkcji. Dlatego teŝ zmienne te nie zachowują swoich wartości i za kaŝdym razem, gdy dana funkcja jest wywoływana, to naleŝy nadać im wartość. Aby zmienne lokalna zachowywała swoją wartość pomiędzy poszczególnymi wywołaniami funkcji, to naleŝy zadeklarować ją w tej funkcji jako zmienną statyczną, czyli jej deklarację poprzedzić słowem static. Wówczas zmienna ta nie znika wraz z zakończeniem działania funkcji, tylko istnieje pomiędzy jej wywołaniami. Deklaracja zmiennej automatycznej nie powoduje ani przydzielenia jej pamięci, ani nadania wartości początkowej, dlatego teŝ naleŝy ją zainicjalizować, w przeciwnym wypadku będzie zawierać śmieci. Przykład: #include <stdio.h> int licznik; // Zmienna globalna, została zainicjalizowana wartością domyślną, dla // int jest to zero, czyli licznik=0 int f1() // funkcja o nazwie f1 int moja, moja1=5; // Zmienne lokalne, nie są automatycznie inicjalizowane, dlatego // zmienna moja zawiera śmieci. static int zm_statyczna=0; // Zmienna statyczna, zachowa swoją poprzednią wartość przy // następnym wywołaniu funkcji moja=licznik+1; // Zmiennej moja zostaje przypisana wartość 1, po zakończeniu // działania funkcji straci ona swoją wartość. zm_statyczna++; // Wartość zmiennej statycznej została zwiększona o 1 i taką wartość Strona 30
Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej
Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej 3.1 Informacje ogólne Program WAAK 1.0 służy do wizualizacji algorytmów arytmetyki komputerowej. Oczywiście istnieje wiele narzędzi
WSTĘP DO PROGRAMOWANIA
Stefan Sokołowski WSTĘP DO PROGRAOWANIA Inst Informatyki UG, Gdańsk, 2011/2012 Wykład1ALGORYTAPROGRA,str1 WSTĘP DO PROGRAOWANIA reguły gry Zasadnicze informacje: http://infugedupl/ stefan/dydaktyka/wstepdoprog
Podstawy programowania w języku C
Ćwiczenie 1 1.1. Pierwszy program w C Podstawy programowania w języku C Program w języku C, składa się ze zmiennych, stałych oraz funkcji. Zmienne i stałe służą do przechowywania danych, na których program
Wartości domyślne, szablony funkcji i klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy dokument
WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH
WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH Klasa: 3TIR - Technik informatyk Program: 351203 Wymiar: 4 h tygodniowo Podręcznik: Kwalifikacja E.14 Programowanie
Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.
Programowanie II prowadzący: Adam Dudek Lista nr 8 Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Jest to najważniejsza cecha świadcząca o sile programowania
Podstawy programowania
Podstawy programowania Elementy algorytmiki C w środowisku.e (C#) dr inŝ. Grzegorz Zych Copernicanum, pok. 104 lub 206a 1 Minimum programowe reści kształcenia: Pojęcie algorytmu. Podstawowe konstrukcje
Architektura komputerów
Architektura komputerów Tydzień 6 RSC i CSC Znaczenie terminów CSC Complete nstruction Set Computer komputer o pełnej liście rozkazów. RSC Reduced nstruction Set Computer komputer o zredukowanej liście
API transakcyjne BitMarket.pl
API transakcyjne BitMarket.pl Wersja 20140314 1. Sposób łączenia się z API... 2 1.1. Klucze API... 2 1.2. Podpisywanie wiadomości... 2 1.3. Parametr tonce... 2 1.4. Odpowiedzi serwera... 3 1.5. Przykładowy
Wtedy wystarczy wybrać właściwego Taga z listy.
Po wejściu na stronę pucharino.slask.pl musisz się zalogować (Nazwa użytkownika to Twój redakcyjny pseudonim, hasło sam sobie ustalisz podczas procedury rejestracji). Po zalogowaniu pojawi się kilka istotnych
Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski
Instrukcja obsługi Norton Commander (NC) wersja 4.0 Autor: mgr inż. Tomasz Staniszewski ITM Zakład Technologii Maszyn, 15.10.2001 2 1.Uruchomienie programu Aby uruchomić program Norton Commander standardowo
'()(*+,-./01(23/*4*567/8/23/*98:)2(!."/+)012+3$%-4#"4"$5012#-4#"4-6017%*,4.!"#$!"#%&"!!!"#$%&"#'()%*+,-+
'()(*+,-./01(23/*4*567/8/23/*98:)2(!."/+)012+3$%-4#"4"$5012#-4#"4-6017%*,4.!"#$!"#%&"!!!"#$%&"#'()%*+,-+ Ucze interpretuje i tworzy teksty o charakterze matematycznym, u ywa j zyka matematycznego do opisu
Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych?
Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych? 1 Podstawowe pojęcia: 2 3 4 5 Dana (ang.data) najmniejsza, elementarna jednostka informacji o obiekcie będąca przedmiotem przetwarzania
Bazy danych. Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15
Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15 Przechowywanie danych Wykorzystanie systemu plików, dostępu do plików za pośrednictwem systemu operacyjnego
Edycja geometrii w Solid Edge ST
Edycja geometrii w Solid Edge ST Artykuł pt.: " Czym jest Technologia Synchroniczna a czym nie jest?" zwracał kilkukrotnie uwagę na fakt, że nie należy mylić pojęć modelowania bezpośredniego i edycji bezpośredniej.
Komputer i urządzenia z nim współpracujące
Temat 1. Komputer i urządzenia z nim współpracujące Realizacja podstawy programowej 1. 1) opisuje modułową budowę komputera, jego podstawowe elementy i ich funkcje, jak również budowę i działanie urządzeń
Harmonogramowanie projektów Zarządzanie czasem
Harmonogramowanie projektów Zarządzanie czasem Zarządzanie czasem TOMASZ ŁUKASZEWSKI INSTYTUT INFORMATYKI W ZARZĄDZANIU Zarządzanie czasem w projekcie /49 Czas w zarządzaniu projektami 1. Pojęcie zarządzania
Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu
Rozdział 6 Pakowanie plecaka 6.1 Postawienie problemu Jak zauważyliśmy, szyfry oparte na rachunku macierzowym nie są przerażająco trudne do złamania. Zdecydowanie trudniejszy jest kryptosystem oparty na
ASD - ćwiczenia III. Dowodzenie poprawności programów iteracyjnych. Nieformalnie o poprawności programów:
ASD - ćwiczenia III Dowodzenie poprawności programów iteracyjnych Nieformalnie o poprawności programów: poprawność częściowa jeżeli program zakończy działanie dla danych wejściowych spełniających założony
WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania
WYKŁAD 8 Reprezentacja obrazu Elementy edycji (tworzenia) obrazu Postacie obrazów na różnych etapach procesu przetwarzania Klasy obrazów Klasa 1: Obrazy o pełnej skali stopni jasności, typowe parametry:
Temat: Funkcje. Własności ogólne. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1
Temat: Funkcje. Własności ogólne A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1 Kody kolorów: pojęcie zwraca uwagę * materiał nieobowiązkowy A n n a R a
Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych
Spis treści 1. Wstęp... 9 1.1. Inżynieria oprogramowania jako proces... 10 1.1.1. Algorytm... 11 1.2. Programowanie w językach wysokiego poziomu... 11 1.3. Obiektowe podejście do programowania... 12 1.3.1.
INFORMATYKA dla gimnazjum Opis założonych osiągnięć ucznia klasy trzeciej
INFORMATYKA dla gimnazjum Opis założonych osiągnięć ucznia klasy trzeciej W ROKU SZKOLNYM 2015/2016 1. Podstawa prawna do opracowania Przedmiotowego Systemu Oceniania. a) Rozporządzenie Ministra Edukacji
Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD
Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD 1. Wprowadzenie DuŜa grupa sterowników mikroprocesorowych wymaga obsługi przycisków, które umoŝliwiają uŝytkownikowi uruchamianie
1. Podstawy budowania wyra e regularnych (Regex)
Dla wi kszo ci prostych gramatyk mo na w atwy sposób napisa wyra enie regularne które b dzie s u y o do sprawdzania poprawno ci zda z t gramatyk. Celem niniejszego laboratorium b dzie zapoznanie si z wyra
Temat: Co to jest optymalizacja? Maksymalizacja objętości naczynia prostopadłościennego za pomocą arkusza kalkulacyjngo.
Konspekt lekcji Przedmiot: Informatyka Typ szkoły: Gimnazjum Klasa: II Nr programu nauczania: DKW-4014-87/99 Czas trwania zajęć: 90min Temat: Co to jest optymalizacja? Maksymalizacja objętości naczynia
1. Rozwiązać układ równań { x 2 = 2y 1
Dzień Dziecka z Matematyką Tomasz Szymczyk Piotrków Trybunalski, 4 czerwca 013 r. Układy równań szkice rozwiązań 1. Rozwiązać układ równań { x = y 1 y = x 1. Wyznaczając z pierwszego równania zmienną y,
2.Prawo zachowania masy
2.Prawo zachowania masy Zdefiniujmy najpierw pewne podstawowe pojęcia: Układ - obszar przestrzeni o określonych granicach Ośrodek ciągły - obszar przestrzeni którego rozmiary charakterystyczne są wystarczająco
Wiedza niepewna i wnioskowanie (c.d.)
Wiedza niepewna i wnioskowanie (c.d.) Dariusz Banasiak Katedra Informatyki Technicznej Wydział Elektroniki Wnioskowanie przybliżone Wnioskowanie w logice tradycyjnej (dwuwartościowej) polega na stwierdzeniu
Podstawowe pojęcia: Populacja. Populacja skończona zawiera skończoną liczbę jednostek statystycznych
Podstawowe pojęcia: Badanie statystyczne - zespół czynności zmierzających do uzyskania za pomocą metod statystycznych informacji charakteryzujących interesującą nas zbiorowość (populację generalną) Populacja
Komentarz do prac egzaminacyjnych w zawodzie technik administracji 343[01] ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJĄCEGO KWALIFIKACJE ZAWODOWE
Komentarz do prac egzaminacyjnych w zawodzie technik administracji 343[01] ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJĄCEGO KWALIFIKACJE ZAWODOWE OKE Kraków 2012 Zadanie egzaminacyjne zostało opracowane
Akademickie Centrum Informatyki PS. Wydział Informatyki PS
Akademickie Centrum Informatyki PS Wydział Informatyki PS Wydział Informatyki Sieci komputerowe i Telekomunikacyjne ROUTING Krzysztof Bogusławski tel. 4 333 950 kbogu@man.szczecin.pl 1. Wstęp 2. Tablica
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ę
System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy
Instrukcja obsługi programu 2.11. Przygotowanie programu do pracy - ECP Architektura inter/intranetowa System Informatyczny CELAB Przygotowanie programu do pracy - Ewidencja Czasu Pracy Spis treści 1.
KRYTERIA OCENIANIA WYPOWIEDZI PISEMNYCH KRÓTKA I DŁUŻSZA FORMA UŻYTKOWA
KRYTERIA OCENIANIA WYPOWIEDZI PISEMNYCH KRÓTKA I DŁUŻSZA FORMA UŻYTKOWA 1. Krótka forma użytkowa 1.1. Kryteria oceniania 1.2. Uściślenie kryteriów oceniania Treść Poprawność językowa 2. Dłuższa forma użytkowa
14.Rozwiązywanie zadań tekstowych wykorzystujących równania i nierówności kwadratowe.
Matematyka 4/ 4.Rozwiązywanie zadań tekstowych wykorzystujących równania i nierówności kwadratowe. I. Przypomnij sobie:. Wiadomości z poprzedniej lekcji... Że przy rozwiązywaniu zadań tekstowych wykorzystujących
Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania).
Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania). W momencie gdy jesteś studentem lub świeżym absolwentem to znajdujesz się w dobrym momencie, aby rozpocząć planowanie swojej ścieżki
PODSTAWY METROLOGII ĆWICZENIE 4 PRZETWORNIKI AC/CA Międzywydziałowa Szkoła Inżynierii Biomedycznej 2009/2010 SEMESTR 3
PODSTAWY METROLOGII ĆWICZENIE 4 PRZETWORNIKI AC/CA Międzywydziałowa Szkoła Inżynierii Biomedycznej 29/2 SEMESTR 3 Rozwiązania zadań nie były w żaden sposób konsultowane z żadnym wiarygodnym źródłem informacji!!!
Komentarz technik ochrony fizycznej osób i mienia 515[01]-01 Czerwiec 2009
Strona 1 z 19 Strona 2 z 19 Strona 3 z 19 Strona 4 z 19 Strona 5 z 19 Strona 6 z 19 Strona 7 z 19 W pracy egzaminacyjnej oceniane były elementy: I. Tytuł pracy egzaminacyjnej II. Założenia do projektu
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,
Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski
Bazy danych II Andrzej Grzybowski Instytut Fizyki, Uniwersytet Śląski Wykład 11 Zastosowanie PHP do programowania aplikacji baz danych Oracle Wsparcie programowania w PHP baz danych Oracle Oprócz możliwego
Warszawska Giełda Towarowa S.A.
KONTRAKT FUTURES Poprzez kontrakt futures rozumiemy umowę zawartą pomiędzy dwoma stronami transakcji. Jedna z nich zobowiązuje się do kupna, a przeciwna do sprzedaży, w ściśle określonym terminie w przyszłości
PROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec
PROE wykład 7 kontenery tablicowe, listy dr inż. Jacek Naruniec Prosty kontener oparty na tablicach Funkcja dodawanie pojedynczego słonia do kontenera: 1 2 3 4 5 6 7 11 12 13 14 15 16 17 21 22 23 24 25
VLAN Ethernet. być konfigurowane w dowolnym systemie operacyjnym do ćwiczenia nr 6. Od ćwiczenia 7 należy pracować ć w systemie Linux.
VLAN Ethernet Wstęp Ćwiczenie ilustruje w kolejnych krokach coraz bardziej złożone one struktury realizowane z użyciem wirtualnych sieci lokalnych. Urządzeniami, które będą realizowały wirtualne sieci
Warunki Oferty PrOmOcyjnej usługi z ulgą
Warunki Oferty PrOmOcyjnej usługi z ulgą 1. 1. Opis Oferty 1.1. Oferta Usługi z ulgą (dalej Oferta ), dostępna będzie w okresie od 16.12.2015 r. do odwołania, jednak nie dłużej niż do dnia 31.03.2016 r.
EGZAMIN MATURALNY Z INFORMATYKI CZERWIEC 2011 POZIOM ROZSZERZONY WYBRANE: CZĘŚĆ I. Czas pracy: 90 minut. Liczba punktów do uzyskania: 20
Centralna Komisja Egzaminacyjna Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2010 KOD WISUJE ZDAJĄCY ESEL Miejsce na naklejkę z kodem EGZAMIN MATURALNY
G PROGRAMMING. Part #4
G PROGRAMMING Part #4 Tablice, wykresy, klastry Tablice Zbiór elementów danych tego samego typu Zastosowanie gromadzenie danych z powtarzalnych operacji odczytu, obliczeń (magazynowanie danych przebiegów
PAKIET MathCad - Część III
Opracowanie: Anna Kluźniak / Jadwiga Matla Ćw3.mcd 1/12 Katedra Informatyki Stosowanej - Studium Podstaw Informatyki PAKIET MathCad - Część III RÓWNANIA I UKŁADY RÓWNAŃ 1. Równania z jedną niewiadomą MathCad
Objaśnienia do Wieloletniej Prognozy Finansowej na lata 2011-2017
Załącznik Nr 2 do uchwały Nr V/33/11 Rady Gminy Wilczyn z dnia 21 lutego 2011 r. w sprawie uchwalenia Wieloletniej Prognozy Finansowej na lata 2011-2017 Objaśnienia do Wieloletniej Prognozy Finansowej
Systemy mikroprocesorowe - projekt
Politechnika Wrocławska Systemy mikroprocesorowe - projekt Modbus master (Linux, Qt) Prowadzący: dr inż. Marek Wnuk Opracował: Artur Papuda Elektronika, ARR IV rok 1. Wstępne założenia projektu Moje zadanie
GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007
GEO-SYSTEM Sp. z o.o. 02-732 Warszawa, ul. Podbipięty 34 m. 7, tel./fax 847-35-80, 853-31-15 http:\\www.geo-system.com.pl e-mail:geo-system@geo-system.com.pl GEO-RCiWN Rejestr Cen i Wartości Nieruchomości
1. Korzyści z zakupu nowej wersji... 2. 2. Poprawiono... 2. 3. Zmiany w słowniku Stawki VAT... 2. 4. Zmiana stawki VAT w kartotece Towary...
Forte Handel 1 / 8 Nowe funkcje w module Forte Handel w wersji 2011a Spis treści: 1. Korzyści z zakupu nowej wersji... 2 2. Poprawiono... 2 Nowe funkcje w module Forte Handel w wersji 2011 Spis treści:
Projektowanie bazy danych
Projektowanie bazy danych Pierwszą fazą tworzenia projektu bazy danych jest postawienie definicji celu, założeo wstępnych i określenie podstawowych funkcji aplikacji. Każda baza danych jest projektowana
Wykład 2. Budowa komputera. W teorii i w praktyce
Wykład 2 Budowa komputera W teorii i w praktyce Generacje komputerów 0 oparte o przekaźniki i elementy mechaniczne (np. Z3), 1 budowane na lampach elektronowych (np. XYZ), 2 budowane na tranzystorach (np.
System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy
System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy modelowaniem, a pewien dobrze zdefiniowany sposób jego
EGZAMIN MATURALNY Z INFORMATYKI 19 MAJA 2015
Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2013 KOD UZUPEŁNIA ZDAJĄCY PESEL Miejsce na naklejkę z kodem EGZAMIN MATURALNY Z INFORMATYKI 19 MAJA 2015
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++)
Odpowiedzi na pytania zadane do zapytania ofertowego nr EFS/2012/05/01
Odpowiedzi na pytania zadane do zapytania ofertowego nr EFS/2012/05/01 1 Pytanie nr 1: Czy oferta powinna zawierać informację o ewentualnych podwykonawcach usług czy też obowiązek uzyskania od Państwa
PERSON Kraków 2002.11.27
PERSON Kraków 2002.11.27 SPIS TREŚCI 1 INSTALACJA...2 2 PRACA Z PROGRAMEM...3 3. ZAKOŃCZENIE PRACY...4 1 1 Instalacja Aplikacja Person pracuje w połączeniu z czytnikiem personalizacyjnym Mifare firmy ASEC
PL/SQL. Zaawansowane tematy PL/SQL
PL/SQL Zaawansowane tematy PL/SQL Cele Przypomnienie kursorów Przypomnienie procedur i funkcji składowanych Poznanie pakietów składowanych 2 Bazę danych Oracle możemy traktować jakby była złożona z dwóch
elektroniczna Platforma Usług Administracji Publicznej
elektroniczna Platforma Usług Administracji Publicznej A Instrukcja użytkownika Instalacja usług wersja 1.1 Ministerstwo Spraw Wewnętrznych i Administracji ul. Batorego 5, 02-591 Warszawa www.epuap.gov.pl
Rozliczenia z NFZ. Ogólne założenia. Spis treści
Rozliczenia z NFZ Spis treści 1 Ogólne założenia 2 Generacja raportu statystycznego 3 Wczytywanie raportu zwrotnego 4 Szablony rachunków 4.1 Wczytanie szablonów 4.2 Wygenerowanie dokumentów rozliczenia
InsERT GT Własne COM 1.0
InsERT GT Własne COM 1.0 Autor: Jarosław Kolasa, InsERT Wstęp... 2 Dołączanie zestawień własnych do systemu InsERT GT... 2 Sposób współpracy rozszerzeń z systemem InsERT GT... 2 Rozszerzenia standardowe
XIII KONKURS MATEMATYCZNY
XIII KONKURS MTMTYZNY L UZNIÓW SZKÓŁ POSTWOWYH organizowany przez XIII Liceum Ogólnokształcace w Szczecinie FINŁ - 19 lutego 2013 Test poniższy zawiera 25 zadań. Za poprawne rozwiązanie każdego zadania
Program szkoleniowy Efektywni50+ Moduł III Standardy wymiany danych
Program szkoleniowy Efektywni50+ Moduł III 1 Wprowadzenie do zagadnienia wymiany dokumentów. Lekcja rozpoczynająca moduł poświęcony standardom wymiany danych. Wprowadzenie do zagadnień wymiany danych w
Ćwiczenie 7 Liczniki binarne i binarne systemy liczbowe.
Ćwiczenie 7 Liczniki binarne i binarne systemy liczbowe. Cel. 1. Poznanie zasady działania liczników binarnych. 2. Poznanie metod reprezentacji liczby w systemach binarnych. Wstęp teoretyczny Liczniki
Praca na wielu bazach danych część 2. (Wersja 8.1)
Praca na wielu bazach danych część 2 (Wersja 8.1) 1 Spis treści 1 Analizy baz danych... 3 1.1 Lista analityczna i okno szczegółów podstawowe informacje dla każdej bazy... 3 1.2 Raporty wykonywane jako
Archiwum Prac Dyplomowych
Archiwum Prac Dyplomowych Instrukcja dla studentów Ogólna procedura przygotowania pracy do obrony w Archiwum Prac Dyplomowych 1. Student rejestruje pracę w dziekanacie tej jednostki uczelni, w której pisana
Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.
Centralna Komisja Egzaminacyjna Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu. Uk ad graficzny CKE 2010 KOD WPISUJE ZDAJ CY PESEL Miejsce na naklejk z kodem EGZAMIN MATURALNY
Pierwsze kroki. Krok 1. Uzupełnienie danych własnej firmy
Pierwsze kroki Krok 1. Uzupełnienie danych własnej firmy Przed rozpoczęciem pracy z programem, należy uzupełnić informacje o własnej firmie. Odbywa się to dokładnie tak samo, jak uzupełnianie informacji
ZASADY WYPEŁNIANIA ANKIETY 2. ZATRUDNIENIE NA CZĘŚĆ ETATU LUB PRZEZ CZĘŚĆ OKRESU OCENY
ZASADY WYPEŁNIANIA ANKIETY 1. ZMIANA GRUPY PRACOWNIKÓW LUB AWANS W przypadku zatrudnienia w danej grupie pracowników (naukowo-dydaktyczni, dydaktyczni, naukowi) przez okres poniżej 1 roku nie dokonuje
Ogólna charakterystyka kontraktów terminowych
Jesteś tu: Bossa.pl Kurs giełdowy - Część 10 Ogólna charakterystyka kontraktów terminowych Kontrakt terminowy jest umową pomiędzy dwiema stronami, z których jedna zobowiązuje się do nabycia a druga do
Microsoft Management Console
Microsoft Management Console Konsola zarządzania jest narzędziem pozwalającym w prosty sposób konfigurować i kontrolować pracę praktycznie wszystkich mechanizmów i usług dostępnych w sieci Microsoft. Co
Informatyka, I stopień. Programowanie (PRO300.1)
Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Informatyka, I stopień Sylabus modułu: Programowanie (PRO0.1) Nazwa wariantu modułu (opcjonalnie): 1. Informacje ogólne koordynator modułu
Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET
PoniŜszy dokument zawiera opis konfiguracji programu STEP7 dla sterowników SIMATIC S7 300/S7 400, w celu stworzenia komunikacji między dwoma stacjami S7 300 za pomocą sieci Industrial Ethernet, protokołu
Instalacja. Zawartość. Wyszukiwarka. Instalacja... 1. Konfiguracja... 2. Uruchomienie i praca z raportem... 4. Metody wyszukiwania...
Zawartość Instalacja... 1 Konfiguracja... 2 Uruchomienie i praca z raportem... 4 Metody wyszukiwania... 6 Prezentacja wyników... 7 Wycenianie... 9 Wstęp Narzędzie ściśle współpracujące z raportem: Moduł
TEMAT : Sprawdź sam siebie powtórzenie materiału (ewaluacja całoroczna)
SCENARIUSZ ZAJĘĆ Z MATEMATYKI DLA KLASY III GIMNAZJUM AUTOR : HANNA MARCINKOWSKA TEMAT : Sprawdź sam siebie powtórzenie materiału (ewaluacja całoroczna) Szkoła z klasą 2.0 Zastosowanie technologii informacyjnej
PowerShell. Sławomir Wawrzyniak 05.11.2010
PowerShell Sławomir Wawrzyniak 05.11.2010 Czym jest PowerShell - Czym jest PowerShell - Do czego może się przydać - Zalety PowerShell - Podobieństwo do basha Wprowadzenie - Jak uruchomić PowerShell - Główne
SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI
SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI 1. CO TO JEST ELEKTRONICZNE BIURO OBSŁUGI UCZESTNIKA (EBOU) Elektroniczne Biuro Obsługi Uczestnika to platforma umożliwiająca
7. REZONANS W OBWODACH ELEKTRYCZNYCH
OBWODY SYGNAŁY 7. EZONANS W OBWODAH EEKTYZNYH 7.. ZJAWSKO EZONANS Obwody elektryczne, w których występuje zjawisko rezonansu nazywane są obwodami rezonansowymi lub drgającymi. ozpatrując bezźródłowy obwód
Kancelaris - Zmiany w wersji 2.50
1. Listy Kancelaris - Zmiany w wersji 2.50 Zmieniono funkcję Dostosuj listę umożliwiając: o Zapamiętanie wielu widoków dla danej listy o Współdzielenie widoków między pracownikami Przykład: Kancelaria
Przedmiotowe Zasady Oceniania z języka angielskiego w klasach IV-VI w Szkole Podstawowej im. Janusza Korczaka w Biedaszkach.
Przedmiotowe Zasady Oceniania z języka angielskiego w klasach IV-VI w Szkole Podstawowej im. Janusza Korczaka w Biedaszkach. Założenia ogólne Ocenianie ucznia ma na celu: 1. Informowanie ucznia o poziomie
Nasz kochany drogi BIK Nasz kochany drogi BIK
https://www.obserwatorfinansowy.pl/tematyka/bankowosc/biuro-informacji-kredytowej-bik-koszty-za r Biznes Pulpit Debata Biuro Informacji Kredytowej jest jedyną w swoim rodzaju instytucją na polskim rynku
Konfiguracja historii plików
Wielu producentów oprogramowania oferuje zaawansowane rozwiązania do wykonywania kopii zapasowych plików użytkownika czy to na dyskach lokalnych czy w chmurze. Warto jednak zastanowić się czy instalacja
PROCEDURA ADMINISTROWANIA ORAZ USUWANIA
Załącznik nr 5 do umowy nr 11/DI/PN/2013 PROCEDURA ADMINISTROWANIA ORAZ USUWANIA BŁĘDÓW I AWARII W APLIKACJI CENTRALNEJ Rozdział 1. ADMINISTROWANIE APLIKACJĄ CENTRALNĄ 1. Wykonawca zobowiązany jest do
ARKUSZ OCENY OKRESOWEJ DLA STANOWISK PRACOWNICZYCH
Załącznik Nr 5 Do Regulaminu okresowych ocen pracowników Urzędu Miasta Piekary Śląskie zatrudnionych na stanowiskach urzędniczych, w tym kierowniczych stanowiskach urzędniczych oraz kierowników gminnych
GENERALNY INSPEKTOR OCHRONY DANYCH OSOBOWYCH
GENERALNY INSPEKTOR OCHRONY DANYCH OSOBOWYCH dr Edyta Bielak-Jomaa Warszawa, dnia 1 kwietnia 2016 r. DOLiS 035 2332/15 Prezydent Miasta K. WYSTĄPIENIE Na podstawie art. 19a ust. 1 ustawy z dnia 29 sierpnia
WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA
Program wykładu na studiach dziennych: 1. Wprowadzenie do algorytmiki 2. Struktura algorytmu 3. Struktury danych 4. Język programowania 5. Metody algorytmiczne 6. Poprawność algorytmów 7. Złożoność algorytmów
I. Zakładanie nowego konta użytkownika.
I. Zakładanie nowego konta użytkownika. 1. Należy wybrać przycisk załóż konto na stronie głównej. 2. Następnie wypełnić wszystkie pola formularza rejestracyjnego oraz zaznaczyć akceptację regulaminu w
INFORMACJA Z KONTROLI PRAWIDŁOWOŚCI ETYKIETOWANIA OPON POD KĄTEM EFEKTYWNOŚCI PALIWOWEJ I INNYCH ZASADNICZYCH PARAMETRÓW
DIH-83-4( 1)/16/AB INFORMACJA Z KONTROLI PRAWIDŁOWOŚCI ETYKIETOWANIA OPON POD KĄTEM EFEKTYWNOŚCI PALIWOWEJ I INNYCH ZASADNICZYCH PARAMETRÓW Warszawa, 25 luty 2016 r. I. WSTĘP Zgodnie z Planem Kontroli
Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.
Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach. 1 PROJEKTY KOSZTOWE 2 PROJEKTY PRZYCHODOWE 3 PODZIAŁ PROJEKTÓW ZE WZGLĘDU
OSTRZEŻENIA DANE TECHNICZNE. Wbudowana bateria słoneczna oraz alkaliczna bateria manganowa (1,5 V LR44)
KALKULATOR ELEKTRONICZNY EL-M711E INSTRUKCJA OBSŁUGI OSTRZEŻENIA Nie wolno wywierać nadmiernego nacisku na wyświetlacz ciekłokrystaliczny, ponieważ jest on wykonany ze szkła. W żadnym wypadku nie wolno
INSTRUKCJA OBSŁUGI URZĄDZENIA: 0101872HC8201
INSTRUKCJA OBSŁUGI URZĄDZENIA: PZ-41SLB-E PL 0101872HC8201 2 Dziękujemy za zakup urządzeń Lossnay. Aby uŝytkowanie systemu Lossnay było prawidłowe i bezpieczne, przed pierwszym uŝyciem przeczytaj niniejszą
System kontroli wersji SVN
System kontroli wersji SVN Co to jest system kontroli wersji Wszędzie tam, gdzie nad jednym projektem pracuje wiele osób, zastosowanie znajduje system kontroli wersji. System, zainstalowany na serwerze,
K P K P R K P R D K P R D W
KLASA III TECHNIKUM POZIOM PODSTAWOWY I ROZSZERZONY PROPOZYCJA POZIOMÓW WYMAGAŃ Wyróżnione zostały następujące wymagania programowe: konieczne (K), podstawowe (P), rozszerzające (R), dopełniające (D) i
DE-WZP.261.11.2015.JJ.3 Warszawa, 2015-06-15
DE-WZP.261.11.2015.JJ.3 Warszawa, 2015-06-15 Wykonawcy ubiegający się o udzielenie zamówienia Dotyczy: postępowania prowadzonego w trybie przetargu nieograniczonego na Usługę druku książek, nr postępowania
Automatyka. Etymologicznie automatyka pochodzi od grec.
Automatyka Etymologicznie automatyka pochodzi od grec. : samoczynny. Automatyka to: dyscyplina naukowa zajmująca się podstawami teoretycznymi, dział techniki zajmujący się praktyczną realizacją urządzeń
Wojewódzki Konkurs Przedmiotowy z Matematyki dla uczniów gimnazjów województwa śląskiego w roku szkolnym 2013/2014
Wojewódzki Konkurs Przedmiotowy z Matematyki dla uczniów gimnazjów województwa śląskiego w roku szkolnym 2013/2014 KOD UCZNIA Etap: Data: Czas pracy: rejonowy 8 stycznia 2014 r. 120 minut Informacje dla
PRAWA ZACHOWANIA. Podstawowe terminy. Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc
PRAWA ZACHOWANIA Podstawowe terminy Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc a) si wewn trznych - si dzia aj cych na dane cia o ze strony innych