Wprowadzenie do programowania w języku C

Wielkość: px
Rozpocząć pokaz od strony:

Download "Wprowadzenie do programowania w języku C"

Transkrypt

1 Wprowadzenie do programowania w języku C Część pierwsza Autor Roman Simiński Kontakt siminski@us.edu.pl Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi uważnego w nim uczestnictwa. Opracowanie to jest chronione prawem autorskim. Wykorzystywanie jakiegokolwiek fragmentu w celach innych niż nauka własna jest nielegalne. Dystrybuowanie tego opracowania lub jakiejkolwiek jego części oraz wykorzystywanie zarobkowe bez zgody autora jest zabronione.

2 Jak powstawał język C? Ludzie Kenneth Thompson Urodzony w 1943 roku w Nowym Orleanie. Otrzymuje tytuł magistra Uniwersytetu Kalifornijskiego w 1966, jest entuzjastą elektroniki, jednak to informatyka staje się jego pasją. Zaraz po studiach dołącza do grupy z laboratorium firmy Bell, pracującej wspólnie z GE i MIT nad systemem Multics. W 1969 projektuje i opracowuje system Unix, wkrótce potem język B. W 1971 przenosi system Unix na komputer PDP-11, potem przepisuje jego kod w języku C. Rozwija system Unix (np. implementuje koncepcję potoków opracowaną przez D.McIlroy'a). W połowie lat 70-tych rozpoczyna również pracę dydaktyczną, na początku lat 80-tych stworzony przez niego komputer szachowy Belle zdobywa mistrzostwo świata w zawodach komputerów szachowych. Kontynuuje pracę dydaktyczną, otrzymuje wiele nagród. W roku 2000 odchodzi z Laboratorium firmy Bell. Copyright Roman Simiński Strona : 2

3 Jak powstawał język C? Ludzie Dennis M. Ritchie Urodzony w 1941 w Bronxville (N.Y.), w 1963 kończy Harvard z dyplomem fizyka, pięć lat później broni doktorat z matematyki. Zainteresowany teoretycznymi podstawami informatyki trafia, wzorem ojca, do laboratorium firmy Bell. W 1968 dołącza do zespołu pracującego nad systemem Multics. Tu spotyka się z K. Thompsonem. Po wycofaniu się firmy Bell z projektu Multics kontynuuje współpracę z K. Thompsonem, w 1972 roku tworzy język C w oparciu o opracowany przez Thompsona język B. Kieruje i bierze udział w wielu projektach związanych z rozwojem systemów operacyjnych. Wielokrotnie nagradzany, wybrany do U.S. National Academy of Engineering. Napisana wspólnie z Brianem Kernighan'em książka The C Programming Language staje się biblią entuzjastów języka C. Copyright Roman Simiński Strona : 3

4 Jak powstawał język C? Ludzie Brian Kernighan Urodzony w 1942 w Toronto (Ontario), w roku 1964 kończy Uniwersytet w Toronto i otrzymuje dyplom w zakresie fizyki inżynieryjnej, w roku 1969 broni doktorat z elektroniki na Uniwersytecie w Princeton. W 1969 rozpoczyna pracę w laboratorium badawczym firmy Bell. Opracowuje i współuczestniczy w opracowaniu wielu programów dla systemu Unix AWK, ditroff, opracowuje język AMPL. Jest, wspólnie z Dennisem Ritchie, współautorem książki The C Programming Language, która staje się biblią entuzjastów języka C. Jest autorem książki The UNIX Programming Environment. Aktualnie, jego zainteresowania koncentrują się na rozwoju języków programowania, metodykach programowania i budowaniu interfejsów użytkownika. Copyright Roman Simiński Strona : 4

5 Jak powstawał język C? Prehistoria Początki języka C są związane z wczesną fazą rozwoju systemu Unix. Prace nad protoplastą tego systemu zostały rozpoczęte pod koniec lat sześćdziesiątych w laboratoriach telekomunikacyjnej firmy Bell BTL wspólnie z General Electric Company oraz MIT. Powstać miał wielodostępny system operacyjny Multics Multiplexed Information and Computing Service. Mimo iż system działa, prace przerwano w 1969 roku, programiści z BTL szukają innych projektów. Ciągle chcą napisać uniwersalny system operacyjny. Jednak w BTL nie ma dla takiego projektu dobrej atmosfery. Jeden z członków zespołu Ken Thompson pisze grę Space Travel. Thompson pisze ją na komputerze GE Honeywell 635, następnie używa asemblera skrośnego i przenosi kod binarny na komputer PDP-7 używając taśmy papierowej. Komputer DEC PDP-7 ma w 1968 roku pamięć 8K 18-sto bitowych słów. Praca nad rozwojem gry Space Travel wymaga napisania systemu operacyjnego dla PDP-7, Ken Thompson wspólnie z Denisem Ritchie rozpoczynają pracę nad tym systemem. Powstaje pierwsza wersja systemu nazwanego Unix jego nazwa jest kalamburem nazwy Multics. Copyright Roman Simiński Strona : 5

6 Jak powstawał język C? Prehistoria, cd... Powstaje wersja systemu obejmującej proste jądro oraz podstawowe narzędzia (edytor, asembler, powłoka). Wszystko zostało zaimplementowane w języku symbolicznym, jednak rozpoczynają się próby wykorzystania języka programowania wywodzącego się z języka BCPL. Komputer PDP-7 jest przestarzały. Zespół podejmuje próbę zdobycia komputera PDP-11. Kosztuje on wtedy $. Ostatecznie zespół otrzymuje komputer w lecie 1970r., jednak prace nad przeniesieniem nań systemu Unix startują dopiero w grudniu, po doposażeniu go w dysk. Oficjalnie prace poświęcone są opracowaniu systemu dla wydziału patentowego BTL. Copyright Roman Simiński Strona : 6

7 Jak powstawał język C? Prehistoria, cd... Ken Thompson potrzebuje nowego języka programowania do tworzenia oprogramowania systemowego. Istnieje już jego własny język o nazwie B. Nazwa ta prawdopodobnie pochodzi od języka BCPL, alternatywna teoria mówi, iż nazwa pochodzi od języka Bon. Język Bon został stworzony przez Thompson'a wcześniej, a jego nazwa miała pochodzić ponoć od imienia jego żony Bonnie. Denis Ritchie i Ken Thompson przenoszą system Unix na PDP-11 za pośrednictwem terminalu telegraficznego. Język B miał sporo ograniczeń, co spowodowało rozpoczęcie przez Ritchie go w roku 1971 prac nad rozszerzeniem tego języka. Doprowadziło to do powstania dialektu NB (ang. new B). Copyright Roman Simiński Strona : 7

8 Jak powstawał język C? Czas na C Nazwa NB nie oddaje w pełni różnicy pomiędzy tym językiem a językiem B. Nowy język otrzymuje nazwę C, otwartą pozostaje kwestię jego pochodzenia czy C pochodzi od następnej litery w alfabecie po B czy też od drugiej litery z protoplasty języków B i C czyli języka BCPL. W roku 1973 powstaje specyfikacja języka C (zawierającego typ strukturalny) oraz odpowiednie narzędzia rozpoczynają się prace nad przepisanie jądra Unix a dla komputera PDP-11. Również w tym okresie następuje przeniesienia kompilatora języka C na inne platformy sprzętowe (np. Honeywell 635, IBM 360/370) oraz przygotowania bibliotek podprogramów np. podprogramów obsługi standardowego wejścia i wyjścia. W 1978 roku Dennis Ritchie i Brian Kernighan publikują książkę Język programowania C (oryginał ang. The C Programming Language). W latach siedemdziesiątych, w trakcie prac nad implementacją jądra Unix a, okazało się, że język jest na tyle elastyczny i efektywny, że rozpoczęto proces przepisywania narzędzi systemowych. Aby wspomóc programistów Steve Johnson tworzy narzędzie lint analizujące zawartość plików źródłowych i sygnalizujące niebezpieczne konstrukcje. Copyright Roman Simiński Strona : 8

9 Jak powstawał język C? Czas na standard języka C Na początku lat osiemdziesiątych stało się jasne, że język C wymaga standaryzacji. Stało się to konieczne między innymi ze względu na wzrost zainteresowania językiem C w projektach rządowych. Ostatecznie w lecie 1983 roku ANSI powołało komitet X3J11, którego celem było opracowanie standardu języka C. Komitet ten opracował raport (ANSI 89) w końcu roku 1989, standard ten został zaakceptowany przez ISO jako ISO/IEC Standaryzacja przyczynia się do poprawy przenośności kodu źródłowego. Kompilatory języka C dostępne są na każdej, szanującej się platformie sprzętowej. Pośrednio ułatwia to przenoszenie systemu Unix i powstawanie jego dedykowanych wersji. Copyright Roman Simiński Strona : 9

10 Jak powstawał język C? Co po C? Najbardziej znane rozwinięcia języka C: Concurrent C, Objective C, C*, C++. Z pnia języka C wyrosły również: Java oraz dialekt JavaScript, PHP, C#, i wiele innych. Po określeniu standardu języka C, jego specyfikacja przez dłuższy czas nie zmienia się. W tym samym czasie specyfikacja języka C++ ciągle ewoluuje. Rozwój języka C++ pośrednio wpływa na modyfikację standardu C. Powstaje standard C99, opublikowany przez ISO w 1999 r. Standard ten zostaje przyjęty przez ANSI w marcu 2000 r. Większość zmian standardu C99 zbliża język C do C++. Z tego powodu wielu producentów kompilatorów nie jest zainteresowanych implementacją C99, preferując zamiast niego programowania w C++ bez wykorzystania obiektów. Powstają specjalizowane i niszowe języki: C, D, P. Copyright Roman Simiński Strona : 10

11 Literatura setki książek na temat programowaniu w C Pewne i sprawdzone Brian W. Kernigham, Dennis M. Richie, Język ANSI C, Wydawnictwo Naukowo Techniczne, Warszawa, Clovis L. Tondo, Scott E. Gimpel, Język ANSI C, ćwiczenia i rozwiązania, Wydawnictwo Naukowo Techniczne, Warszawa, Adam Sapek, Wgłąb języka C, Helion, Gliwice, Copyright Roman Simiński Strona : 11

12 Zaczynamy pierwszy program w języku C Problem Zadaniem programu jest obliczanie, ile średnio litrów paliwa zużywa pojazd na trasie 100 km. Pierwsza przymiarka program który robi nic int main() return 0; ` Typ rezultatu Ciało funkcji Nazwa funkcji int main() return 0; Parametry Każdy program C/C++musi posiadać funkcję o nazwie main, stanowiącą tzw. punkt wejściowy programu. Od niej się rozpoczyna wykonanie programu napisanego w języku C/C++. Instrukcja powrotu z podprogramu Wartość przekazywna w miejscu wywołania Copyright Roman Simiński Strona : 12

13 Zaczynamy pierwszy program w języku C Kto wywołuje funkcję main? Typowy scenariusz uruchomienia programu wykonywalnego : Pamięć operacyjna Użytkownik przekazuje systemowi operacyjnemu zlecenie uruchomienia programu. System ładuje kod programu do pamięci, przygotowuje jego środowisko, przekazuje sterowanie do bloku kodu startowego programu (tzw. startup). Kod startowy wykonuje czynności inicjalizujące. Na zakończenie wywołuje funkcje main. Po zakończeniu działania funkcji main bieżący proces jest kończony i do systemu przekazywany jest kod wyjścia. kod startowy call main main kod powrotu reszta programu + dane kod programu test.exe System operacyjny Plik wykonywalny np. test.exe Copyright Roman Simiński Strona : 13

14 Zaczynamy pierwszy program w języku C Po co przekazywać kod zakończenia programu? Kod zakończenia programu może być wykorzystywany w skryptach systemu operacyjnego oraz jako środek komunikacji pomiędzy procesami. Przykłady Przykładowe skrypty (będący w istocie plikami wsadowymi systemu DOS) testujący kod wyjścia programu off echo Testowanie kodu powrotu prog.exe if errorlevel 2 goto dwa if errorlevel 1 goto jeden if errorlevel 0 goto zero : zero echo Kod powrotu 0 goto koniec : jeden echo Kod powrotu 1 goto koniec : dwa echo Kod powrotu 2 goto koniec : koniec off echo Testowanie kodu powrotu 1 : petla prog.exe if errorlevel 1 goto koniec if errorlevel 0 goto petla : koniec echo Koniec programu pause Copyright Roman Simiński Strona : 14

15 Pierwszy program w języku C wariacje na temat funkcji main Cztery formy deklaracji funkcji main która doba jest, którą wybrać? int main() return 0; Prawidłowa deklaracja funkcji main zalecana przez normę ANSI. To jest (prawie) najlepsza wersja. main() return 0; Prawidłowa deklaracja funkcji main. Przy braku typu rezultatu, kompilator domyślnie przyjmuje, że typem rezultatu jest int. Dozwolone, lecz lepsza jest postać nr 1. void main() Specyfikacja void oznacza brak wartości. Zatem ta funkcja nie udostępnia rezultatu brak instrukcji return. Dozwolone, lecz niezgodne ze standardem ANSI. int main() Brak instrukcji return nie jest błędem dla kompilatora. Programista otrzyma ostrzeżenie (ang. warning) o braku rezultatu. Mimo braku błędu kompilacji to jest konstrukcja błędna! Copyright Roman Simiński Strona : 15

16 Pierwszy program w języku C wariacje na temat funkcji main Po co przekazywać kod zakończenia programu? Zamiast rezultatu w postaci bezwzględnych wartości można wykorzystać symbole: EXIT_SUCCESS oznacza bezbłędne zakończenie programu. EXIT_FAILURE zakończenie z informacją o błędzie. Jednak aby z nich skorzystać, należy uzupełnić program o linię: #include <stdlib.h> Ta dyrektywa informuje, że program będzie korzystał ze standardowej biblioteki języka C, w niej właśnie zdefiniowane są symbole EXIT_SUCCES oraz EXIT_FAILURE. Najlepsza wersja programu z punktu widzenia przenośności kodu #include <stdlib.h> int main() return EXIT_SUCCESS; Copyright Roman Simiński Strona : 16

17 Pierwszy program w języku C komunikacja z użytkownikiem Wyprowadzamy komunikat do strumienia wyjściowego programu #include <stdlib.h> #include <stdio.h> int main() printf( "Obliczam ile Twoj pojazd spala paliwa na 100 km" ); return EXIT_SUCCESS; Obsługa standardowych strumieni programu #include <stdlib.h> Ta dyrektywa informuje, że program będzie korzystał ze standardowych strumieni: standardowego strumienia wejściowego, wyjściowego, oraz strumienia błędów. Wykorzystanie funkcji printf printf to nazwa funkcji wyprowadzającej dane do strumienia wyjściowego. Dane mogą być przez funkcję odpowiednio formatowane. Obliczam ile Twoj pojazd spala paliwa na 100 km to stała łańcuchowa, literał w postaci napisu. Copyright Roman Simiński Strona : 17

18 Pierwszy program w języku C komunikacja z użytkownikiem Standardowe strumienie programu standardowy strumień wejściowy programu (ang. stdin), który jest zwykle skojarzony z klawiaturą; standardowy strumień wyjściowy programu (ang. stdout), który jest zwykle skojarzony z ekranem monitora; standardowy strumień wyjściowy błędów programu (ang. stderr), który jest zwykle skojarzony również z ekranem monitora. Strumienie stdin, stdout reprezentują normalny kanał komunikacji programu z użytkownikiem. Strumień stderr zarezerwowany jest do wyświetlania komunikatów diagnostycznych programu. Redyrekcja strumieni C:\>test.exe > wyjscie.txt C:\>test.exe < wejscie.txt C:\>test.exe < wejscie.txt > wyjscie.txt stdout stderr stdin Pamięć operacyjna Program jako proces Copyright Roman Simiński Strona : 18

19 Pierwszy program w języku C komunikacja z użytkownikiem Kosmetyka programu komunikat zawsze od początku nowego wiersza #include <stdlib.h> #include <stdio.h> int main() printf( "\nobliczam ile Twoj pojazd spala paliwa na 100 km\n" ); return EXIT_SUCCESS; Znaki sterujące w napisach Znak sterujący Symbol Znaczenie \a BELL Sygnał dźwiękowy \b BS (backspace) Spacja wsteczna \n LF (newline, linefeed) Nowa linia \r CR (Carriage return) Powrót karetki \t TAB Tabulacja Copyright Roman Simiński Strona : 19

20 Pierwszy program w języku C deklarujemy zmienne Wprowadzamy zmienne, symulujemy obliczenia #include <stdlib.h> #include <stdio.h> Zmienne mogą być deklarowane na początku każdego bloku określonego nawiasami. int main() float dystans, paliwo, spalanie; printf( "\nobliczam ile Twoj pojazd spala paliwa na 100 km\n" ); /* Dane wpisane na prób ę */ dystans = 500; paliwo = 37.45; spalanie = ( paliwo * 100 ) / dystans; Wyrażenia wykorzystujące operator przypisania = return EXIT_SUCCESS; Tekst zapisany w /* */ jest komentarzem, zawartość komentarza nie podlega kompilacji. float to typ zmiennopozycyjny, służący do reprezentowania liczb rzeczywistych pojedynczej precyzji. Copyright Roman Simiński Strona : 20

21 Pierwszy program w języku C deklarujemy zmienne Zmiana stanu pamięci, czyli wartości zmiennych się zmieniają Pamięć operacyjna Pamięć operacyjna Po deklaracji... Przypisanie... paliwo dystans?? spalanie?... paliwo dystans spalanie? paliwo = ; dystans = 500 ; Pamięć operacyjna Przypisanie... paliwo dystans spalanie = ( paliwo * 100 ) / dystans ; spalanie Copyright Roman Simiński Strona : 21

22 Pierwszy program w języku C wyprowadzamy wyniki obliczeń Wyprowadzenie wyniku do strumienia wyjściowego programu #include <stdlib.h> #include <stdio.h> int main() float dystans, paliwo, spalanie; printf( "\nobliczam ile Twoj pojazd spala paliwa na 100 km\n" ); /* Dane wpisane na prób ę */ dystans = 500; paliwo = 37.45; spalanie = ( paliwo * 100 ) / dystans; printf( "Spalanie %4.2f l na 100 km", spalanie ); return EXIT_SUCCESS; Przyjrzyjmy się temu dokładniej... Copyright Roman Simiński Strona : 22

23 Pierwszy program w języku C wyprowadzamy wyniki obliczeń Koncepcja funkcji formatowanego wyjścia Funkcja printf wyprowadzane sformatowane dane do stdout. Pierwszy parametr funkcji, będący łańcuchem znaków, może zawierać specyfikacje przekształceń. printf( "Spalanie %4.2f l na 100 km", spalanie ); spalanie: 7.49 Sekwencje rozpoczynające się od znaku % stanowią specyfikacje przekształceń kolejnych parametrów funkcji printf: %d wyprowadza liczbę całkowitą dziesiętną, %f wyprowadza liczbę rzeczywistą, %c wyprowadza znak, %s wyprowadza napis. Liczba parametrów musi odpowiadać liczbie sekwencji formatujących. Ewentualna niezgodność nie będzie wykryta przez kompilator. Copyright Roman Simiński Strona : 23

24 Pierwszy program w języku C drobna optymalizacja Eliminujemy niepotrzebną zmienną #include <stdlib.h> #include <stdio.h> int main() float dystans, paliwo, spalanie; printf( "\nobliczam ile Twoj pojazd spala paliwa na 100 km\n" ); /* Dane wpisane na prób ę */ dystans = 500; paliwo = 37.45; spalanie = ( paliwo * 100 ) / dystans; printf( "Spalanie %4.2f l na 100 km", spalanie ); return EXIT_SUCCESS; printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); Copyright Roman Simiński Strona : 24

25 Pierwszy program w języku C wczytujemy dane Wczytujemy dane ze strumienia wejściowego #include <stdlib.h> #include <stdio.h> int main() char linia[ 20 ]; float dystans, paliwo; Deklaracja 20-sto znakowej tablicy przeznaczonej do przechowywania napisów printf( "\nobliczam ile Twoj pojazd spala paliwa na 100 km\n" ); printf( "Dystans : " ); gets( linia ); dystans = atof( linia ); printf( "Paliwo : " ); gets( linia ); paliwo = atof( linia ); Wyświetlenie zachęty, wczytanie napisu, konwersja do liczby rzeczywistej. printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); return EXIT_SUCCESS; Przyjrzyjmy się temu dokładniej... Copyright Roman Simiński Strona : 25

26 Pierwszy program w języku C wczytujemy dane Funkcje gets i atof Funkcja wczytuje łańcuch znaków ze strumienia wejściowego programu i zapisuje go w tablicy będącej parametrem wywołania. Na końcu łańcucha zapisywany jest znacznik końca napisu -- znak '\0'. gets( linia ) znak Enter Pamięć operacyjna linia 5 0 O 1 O 2 \O Funkcja atof przekształca napis zawarty w tablicy będącej parametrem wywołania na odpowiadającą mu liczbę rzeczywistą. dystans paliwo dystans = atof( linia ) Copyright Roman Simiński Strona : 26

27 Pierwszy program w języku C wczytujemy dane Funkcja gets jest niebezpieczna problem przepełnienia bufora To jest napis zbyt długi aby się zmieścić w 20-sto znakowym buforze + znak Enter Pamięć operacyjna linia gets( linia ) T 0 o dystans paliwo j e s t n a p i s Nadmiarowe znaki wczytanego napisu niszczą zawartość komórek pamięci operacyjnej obok zmiennej linia. Copyright Roman Simiński Strona : 27

28 Pierwszy program w języku C wczytujemy dane Funkcja fgets jest bezpieczniejsza char linia[ 20 ]; printf( "Dystans : " ); fgets( linia, 20, stdin ); Funkcja fgets : Pierwszy parametr określa bufor, do którego mają być zapisane wczytywane dane. Drugi parametr określa N maksymalną pojemność bufora, uwzględniającą miejsce na znacznik końca napisu. Trzeci parametr określa strumień (plik), z którego funkcja ma odczytywać dane, może to być również standardowy strumień wejściowy stdin. Działąnie funkcji kończy się gdy funkcja odczyta N 1 znaków lub wcześniej zostanie odczytany znak nowego wiersza (Enter). Znacznik końca napisu dopisywany jest na jego końcu. Copyright Roman Simiński Strona : 28

29 Pierwszy program w języku C wczytujemy dane Mimo użycia bezpieczniejszej funkcji też można popełnić błąd char linia[ 20 ]; printf( "Dystans : " ); fgets( linia, 80, stdin ); Również w tym przypadku bufor może się przepełnić. Aby tego uniknąć stosuje się stałe symboliczne. Taka stała to identyfikator, reprezentujący pewną wartość. #define MAKS_DL 20 char linia[ MAKS_DL ]; printf( "Dystans : " ); fgets( linia, MAKS_DL, stdin ); Copyright Roman Simiński Strona : 29

30 Pierwszy program w języku C wczytujemy dane Program po modyfikacjach #include <stdlib.h> #include <stdio.h> #define MAKS_DL 20 int main() char linia[ MAKS_DL ]; float dystans, paliwo; printf( "\nobliczam ile Twoj pojazd spala paliwa na 100 km\n" ); printf( "Dystans : " ); fgets( linia, MAKS_DL, stdin ); dystans = atof( linia ); printf( "Paliwo : " ); fgets( linia, MAKS_DL, stdin ); paliwo = atof( linia ); printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); return EXIT_SUCCESS; Copyright Roman Simiński Strona : 30

31 Pierwszy program w języku C dane nie muszą być poprawne Zabezpieczenie przed cwaniaczkami co wpiszą ujemne wartości ;-) #include <stdlib.h> #include <stdio.h> #include <math.h> #define MAKS_DL 20 int main() char linia[ MAKS_DL ]; float dystans, paliwo; printf( "\nobliczam ile Twoj pojazd spala paliwa na 100 km\n" ); printf( "Dystans : " ); fgets( linia, MAKS_DL, stdin ); dystans = fabs( atof( linia ) ); printf( "Paliwo : " ); fgets( linia, MAKS_DL, stdin ); paliwo = fabs( atof( linia ) ); Wyznaczenie modułu liczby będącej rezultatem funkcji atof. printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); return EXIT_SUCCESS; Copyright Roman Simiński Strona : 31

32 Pierwszy program w języku C dane nie muszą być poprawne Zabezpieczenie przed dzieleniem przez zero #include <stdlib.h> #include <stdio.h> #include <math.h> int main() printf( "Dystans : " ); fgets( linia, MAKS_DL, stdin ); dystans = fabs( atof( linia ) ); printf( "Paliwo : " ); fgets( linia, MAKS_DL, stdin ); paliwo = fabs( atof( linia ) ); Instrukcja alternatywy if( dystans!= 0 ) printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); else printf( "Nie dokonam obliczen dla takiego dystansu." ); return EXIT_SUCCESS; Copyright Roman Simiński Strona : 32

33 Pierwszy program w języku C dane nie muszą być poprawne Instrukcja warunkowa if( wyrażenie ) instrukcja Instrukcja alternatywy if( wyrażenie ) instrukcja_1 else instrukcja_2 wyrażenie prawda prawda wyrażenie fałsz fałsz instrukcja instrukcja_1 instrukcja_1 Instrukcja warunkowa czy alternatywy? Operator!= oznacza różne, nierówne if( dystans!= 0 ) printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); if( dystans!= 0 ) printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); else printf( "Nie dokonam obliczen dla takiego dystansu." ); Średnik! Copyright Roman Simiński Strona : 33

34 Pierwszy program w języku C wersja prawie ostateczna Program po modyfikacjach czego tu brakuje? #include <stdlib.h> #include <stdio.h> #include <math.h> #define MAKS_DL 20 int main() char linia[ MAKS_DL ]; float dystans, paliwo; printf( "\nobliczam ile Twoj pojazd spala paliwa na 100 km\n" ); printf( "Dystans : " ); fgets( linia, MAKS_DL, stdin ); dystans = fabs( atof( linia ) ); printf( "Paliwo : " ); fgets( linia, MAKS_DL, stdin ); paliwo = fabs( atof( linia ) ); if( dystans!= 0 ) printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); else printf( "Nie dokonam obliczen dla takiego dystansu." ); return EXIT_SUCCESS; Copyright Roman Simiński Strona : 34

35 Pierwszy program w języku C wersja prawie ostateczna Program po modyfikacjach daj szansę użytkownikowi, niech zdąży przeczytać! #include <stdlib.h> #include <stdio.h> #include <math.h> #define MAKS_DL 20 int main() if( dystans!= 0 ) printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); else printf( "Nie dokonam obliczen dla takiego dystansu." ); printf( "\nnacisnij Enter by zakonczyc program..." ); getchar(); return EXIT_SUCCESS; Copyright Roman Simiński Strona : 35

36 Pierwszy program w języku C zignorowane rezultaty funkcji Dlaczego wywołując funkcje gets, fgets i getchar ignorujemy ich rezultat? Jeżeli rezultatem gets i fgets jest wartość NULL, to oznacza, że odczytany został znacznik końca strumienia lub wystąpił błąd. W przeciwnym wypadku jest OK. Testowanie rezultatu funkcji fgets (gets) printf( "Dystans : " ); if( fgets( linia, MAKS_DL, stdin )!= NULL ) dystans = fabs( atof( linia ) ); else printf( "\nblad odczytu dystansu." ); Rezultatem funkcji getchar jest znak... char c; c = getchar();... ale ten znak nie jest przecież nikomu potrzebny! Tak napisze większość programistów... getchar(); Tak napisze programista-esteta... ( void )getchar(); Copyright Roman Simiński Strona : 36

37 Pierwszy program w języku C wykorzystanie rezultatu funkcji fgets Testowanie rezultatu funkcji fgets rozwiązanie naiwne int main() printf( "Dystans : " ); if( fgets( linia, MAKS_DL, stdin )!= NULL ) dystans = fabs( atof( linia ) ); else printf( "\nblad odczytu dystansu." ); printf( "Paliwo : " ); if( fgets( linia, MAKS_DL, stdin )!= NULL ) paliwo = fabs( atof( linia ) ); else printf( "\nblad odczytu paliwa." ); if( dystans!= 0 ) printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); else printf( "Nie dokonam obliczen dla takiego dystansu." ); printf( "\nnacisnij Enter by zakonczyc program..." ); getchar(); return EXIT_SUCCESS; Copyright Roman Simiński Strona : 37

38 Pierwszy program w języku C wykorzystanie rezultatu funkcji fgets Testowanie rezultatu funkcji fgets nadużycie instrukcji return int main() printf( "Dystans : " ); if( fgets( linia, MAKS_DL, stdin )!= NULL ) dystans = fabs( atof( linia ) ); else printf( "\nblad odczytu dystansu." ); return EXIT_FAILURE; printf( "Paliwo : " ); if( fgets( linia, MAKS_DL, stdin )!= NULL ) paliwo = fabs( atof( linia ) ); else printf( "\nblad odczytu paliwa." ); return EXIT_FAILURE; return EXIT_SUCCESS; Copyright Roman Simiński Strona : 38

39 Pierwszy program w języku C wykorzystanie rezultatu funkcji fgets Testowanie rezultatu funkcji fgets filtrowanie błędów int main() printf( "Dystans : " ); if( fgets( linia, MAKS_DL, stdin )!= NULL ) dystans = fabs( atof( linia ) ); printf( "Paliwo : " ); if( fgets( linia, MAKS_DL, stdin )!= NULL ) paliwo = fabs( atof( linia ) ); if( dystans!= 0 ) printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); else printf( "Nie dokonam obliczen dla takiego dystansu." ); else printf( "\nblad odczytu paliwa." ); else printf( "\nblad odczytu dystansu." ); printf( "\nnacisnij Enter by zakonczyc program..." ); Copyright Roman Simiński Strona : 39

40 Pierwszy program w języku C defensywne podejście do wczytywania dystansu Nie pozwalamy na wprowadzenie 0-ego dystansu do printf( "Dystans : " ); fgets( linia, MAKS_DL, stdin ); dystans = atof( linia ); if( dystans <= 0 ) printf( "Prosze wprowadzic prawidlowy dystans\n" ); while( dystans <= 0 ); Technika programowania defensywnego Instrukcja iteracyjna do-while do instrukcja while( wyrażenie ); lub Copyright Roman Simiński Strona : 40 do ciąg instrukcji while( wyrażenie ); Instrukcja do-while wykonuje się dopóty, dopóki wyrażenie jest prawdziwe. W języku C wyrażenie jest fałszywe jeżeli ma wartość zero, każda wartość niezerowa traktowana jest jako prawda.

41 Pierwszy program w języku C na zakończenie Pozostaje jeszcze jeden nierozwiązany problem printf( "Dystans : " ); fgets( linia, MAKS_DL, stdin ); dystans = fabs( atof( linia ) ); Co się stanie, gdy użytkownik nie wpisze prawidłowej liczby? Należy sprawdzić, czy wczytany napis zawiera prawidłową liczbę. Ale tym zajmiemy się później.... Copyright Roman Simiński Strona : 41

42 Podsumowanie programu przykładowego Należy pamiętać, że: Każdy program w języku C/C++ musi posiadać funkcję main. Od niej rozpoczyna się wykonanie programu. Funkcja main według standardu ANSI C powinna zwracać wartość całkowitą, stanowiącą kod zakończenia programu przekazywany systemowi operacyjnemu lub procesowi rodzicowi. Każda funkcja posiada swoje ciało ujęte w nawiasy klamrowe. Zakończenie wykonania funkcji następuje wraz z osiągnięciem klamry zamykającej ciało funkcji lub po napotkaniu instrukcji powrotu z podprogramu instrukcji return. Wartość umieszczona po tej instrukcji stanowi rezultat funkcji. Instrukcja return może wystąpić w ciele funkcji wielokrotnie, w miejscach dozwolonych syntaktyką języka. Zmienne wewnątrz funkcji wolno deklarować na początku każdego bloku. Na etapie deklaracji zmienne mogą być inicjowane. Copyright Roman Simiński Strona : 42

43 Podsumowanie programu przykładowego Należy pamiętać, że: W języku C nie ma funkcji standardowych. Wszystkie funkcje pochodzą z bibliotek lub są napisane przez programistę. Aby kompilator mógł sprawdzić poprawność wywołania funkcji bibliotecznych wykorzystuje się pliki nagłówkowe. Zawierają one informacje o typie rezultatu funkcji, parametrach i są włączane do kodu źródłowego programu dyrektywą #include. Wywołanie funkcji bez włączenia odpowiedniego pliku nagłówkowego nie spowoduje błędu kompilacji (ang. error) a jedynie ostrzeżenie (ang. warning), a kod wynikowy zostanie wygenerowany. Jednak, być może, wywołanie funkcji jest nieprawidłowe, zatem i działanie programu może być niepoprawne. W instrukcji if-else, przed słowem kluczowym else występuje średnik. W języku C średnik nie rozdziela instrukcji, a kończy je. Instrukcja iteracyjna do-while pozornie odpowiada pascalowej instrukcji repeatuntil. Różnica polega na interpretacji warunku w do-while iteracja jest przerywana gdy warunek przestanie być prawdziwy, w repeat-until iteracja przerywana jest, gdy warunek zacznie być prawdziwy. Copyright Roman Simiński Strona : 43

Podstawy programowania w języku C i C++

Podstawy programowania w języku C i C++ Podstawy programowania w języku C i C++ Część pierwsza Łagodny start Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część pierwsza Łagodny start Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

Języki i metodyka programowania. Wprowadzenie do języka C

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

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część jedenasta Przetwarzanie plików amorficznych Konwencja języka C Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie

Bardziej szczegółowo

Wprowadzenie do programowania w języku C

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

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

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

Bardziej szczegółowo

Języki programowania. Przetwarzanie tablic znaków. Część druga. Autorzy Tomasz Xięski Roman Simiński

Języki programowania. Przetwarzanie tablic znaków. Część druga. Autorzy Tomasz Xięski Roman Simiński Języki programowania Część druga Przetwarzanie tablic znaków Autorzy Tomasz Xięski Roman Simiński Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi uważnego w nim

Bardziej szczegółowo

Wprowadzenie do programowania w języku C

Wprowadzenie do programowania w języku C Wprowadzenie do programowania w języku C Część druga Instrukcje sterujące przebiegiem programu Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

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 A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy

Bardziej szczegółowo

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński Języki programowania Część siódma Przetwarzanie plików amorficznych Konwencja języka C Autorzy Tomasz Xięski Roman Simiński Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część trzynasta Tablice struktur, pliki struktur Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści

Bardziej szczegółowo

WYKŁAD 1 - KONSPEKT. Program wykładu:

WYKŁAD 1 - KONSPEKT. Program wykładu: mgr inż. Jarosław Forenc e-mail: jarekf@pb.bialystok.pl tel. (0-85) 746-93-97 WWW: http://we.pb.bialystok.pl/~jforenc konsultacje: zaliczenie: Program wykładu: WYKŁAD 1 - KONSPEKT 1. Ogólna struktura programu

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część dziesiąta Rekordy w C/C++ struktury Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład I I Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Zaliczenie przedmiotu Na laboratorium można zdobyć 100 punktów. Do zaliczenia niezbędne jest

Bardziej szczegółowo

Wprowadzenie do programowania w języku C

Wprowadzenie do programowania w języku C Wprowadzenie do programowania w języku C Część piąta Tablice koncepcja, reprezentacja, przetwarzanie Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera

Bardziej szczegółowo

Praktyka Programowania

Praktyka Programowania Praktyka Programowania Dariusz Dereniowski Materiały udostępnione przez Adriana Kosowskiego Katedra Algorytmów i Modelowania Systemów Politechnika Gdańska deren@eti.pg.gda.pl Gdańsk, 2010 strona przedmiotu:

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

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

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

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

Bardziej szczegółowo

Języki programowania obiektowego Nieobiektowe elementy języka C++

Języki programowania obiektowego Nieobiektowe elementy języka C++ Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Przetwarzanie tablic znaków Łańcuchy znakowe jako tablice znaków

Bardziej szczegółowo

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++ Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 Kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część trzecia sterujące wykonaniem programu wprowadzenie Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści

Bardziej szczegółowo

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

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ą

Bardziej szczegółowo

Programowanie w języku C++

Programowanie w języku C++ Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi

Bardziej szczegółowo

Wstęp do Programowania, laboratorium 02

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

Bardziej szczegółowo

Podstawy programowania w języku C i C++

Podstawy programowania w języku C i C++ Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

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ę

Bardziej szczegółowo

Tablice deklaracja, reprezentacja wewnętrzna

Tablice deklaracja, reprezentacja wewnętrzna Tablice deklaracja, reprezentacja wewnętrzna Tablica jest zmienną złożoną z elementów tego samego typu. Obejmuje ona ciągły obszar pamięci operacyjnej dokładnie tak duży, aby zmieścić wszystkie jej elementy.

Bardziej szczegółowo

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Dyrektywy preprocesora #include #define Interakcja

Bardziej szczegółowo

1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998.

1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998. Literatura Język C 1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998. 2. Andrzej Zalewski, Programowanie w językach C i C++ z wykorzystaniem pakietu Borland C++, Nakom, Poznań

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

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

Bardziej szczegółowo

Podstawy programowania - 1

Podstawy programowania - 1 Podstawy programowania - 1 doc. dr inż. Tadeusz Jeleniewski Wykład: sobota B, godz. 10.30 12.55 sala 12 Laboratorium: sobota B, godz. 13.00 15.25 sala 2 sobota B, godz. 15.30-17.55 sala 2 e-mail: tadeusz.jeleniewski@pwr.wroc.pl

Bardziej szczegółowo

KURS C/C++ WYKŁAD 1. Pierwszy program

KURS C/C++ WYKŁAD 1. Pierwszy program KURS C/C++ WYKŁAD 1 Pierwszy program Tworzenie programu odbywa sie w dwóch etapach: 1. opracowanie kodu źródłowego 2. generowanie kodu wynikowego Pierwszy etap polega na zapisaniu algorytmu za pomocą instrukcji

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Zmienne, stałe i operatory

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

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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,

Bardziej szczegółowo

Języki programowania. Tablice struktur, pliki struktur. Część ósma. Autorzy Tomasz Xięski Roman Simiński

Języki programowania. Tablice struktur, pliki struktur. Część ósma. Autorzy Tomasz Xięski Roman Simiński Języki programowania Część ósma Tablice struktur, pliki struktur Autorzy Tomasz Xięski Roman Simiński Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi uważnego w

Bardziej szczegółowo

1. Wprowadzanie danych z klawiatury funkcja scanf

1. Wprowadzanie danych z klawiatury funkcja scanf 1. Wprowadzanie danych z klawiatury funkcja scanf Deklaracja int scanf ( const char *format, wskaźnik, wskaźnik,... ) ; Biblioteka Działanie stdio.h Funkcja scanf wczytuje kolejne pola (ciągi znaków),

Bardziej szczegółowo

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); } OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo

Podstawy programowania w języku C++

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

Bardziej szczegółowo

Języki programowania obiektowego

Języki programowania obiektowego Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Struktura programu, funkcja main, pliki nagłówkowe, operacje

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); } OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część dziesiąta Rekordy w C/C++ struktury Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Algorytmy liniowe Algorytmy z rozgałęzieniami

Bardziej szczegółowo

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa Język C część 1 Literatura [1] Brian W. Kernighan, Dennis M. Ritchie: Język ANSI C, Wydawnictwa Naukowo Techniczne, Warszawa 2003 [2] Anna Strudzioska-Walczak, Krzysztof Walczak, Nakuka programowania dla

Bardziej szczegółowo

1.1 Wprowadzenie do języka C w pigułce

1.1 Wprowadzenie do języka C w pigułce Języki programowania język C Ćwiczenie 1 1 Łagodny start Ćwiczenie to poświęcone jest tworzeniu krótkich programów, pozwalających na zapoznanie się z takimi elementami programowania jak: struktura programu

Bardziej szczegółowo

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Algorytmy liniowe Algorytmy z rozgałęzieniami

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część jedenasta Reprezentacja i przetwarzanie plików Konwencja języka C Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie

Bardziej szczegółowo

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 Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 7 kwietnia 2014 1. Wprowadzenie Pierwsza część instrukcji zawiera informacje

Bardziej szczegółowo

Podstawy programowania (1)

Podstawy programowania (1) Podstawy programowania (1) doc. dr inż. Tadeusz Jeleniewski Konsultacje pokój 19 Poniedziałki, godz. 9:45 11:20 e-mail: tadeusz.jeleniewski@neostrada.pl Podstawy programowania (1) - wykład 1. Wprowadzenie

Bardziej szczegółowo

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy Laboratorium 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Na podstawie: G. Perry, D. Miller, Język C Programowanie dla

Bardziej szczegółowo

Wstęp do programowania. Wykład 1

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.

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część druga Pierwsze programy Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera skrót treści wykładu, lektura

Bardziej szczegółowo

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

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,

Bardziej szczegółowo

Programowanie strukturalne i obiektowe

Programowanie strukturalne i obiektowe Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie

Bardziej szczegółowo

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 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.

Bardziej szczegółowo

Podstawy programowania w języku C++

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

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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,

Bardziej szczegółowo

INFORMATYKA Studia Niestacjonarne Elektrotechnika

INFORMATYKA Studia Niestacjonarne Elektrotechnika INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl

Bardziej szczegółowo

Biblioteka standardowa - operacje wejścia/wyjścia

Biblioteka standardowa - operacje wejścia/wyjścia Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

Bardziej szczegółowo

Algorytm. a programowanie -

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

Bardziej szczegółowo

Tablice (jedno i wielowymiarowe), łańcuchy znaków

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

Bardziej szczegółowo

Podstawy programowania w C++

Podstawy programowania w C++ Podstawy programowania w C++ Strumienie wejścia cin>> i wyjścia cout

Bardziej szczegółowo

Wstęp do programowania

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

Bardziej szczegółowo

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ Podstawy programowania Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ 1 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD Część I Wstęp do struktur danych: Tablice 2

Bardziej szczegółowo

Podstawy programowania wykład

Podstawy programowania wykład Podstawy programowania wykład WYDZIAŁ ELEKTRONIKI i INFORMATYKI dr inż. Robert Arsoba Politechnika Koszalińska Wydział Elektroniki i Informatyki POLITECHNIKA KOSZALIŃSKA 2009/2010 1 Materiały do wykładu

Bardziej szczegółowo

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Przemysław Gawroński D-10, p. 234 Wykład 1 8 października 2018 (Wykład 1) Wstęp do programowania 8 października 2018 1 / 12 Outline 1 Literatura 2 Programowanie? 3 Hello World (Wykład

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan wykładów (1) Algorytmy i programy Proste typy danych Rozgałęzienia

Bardziej szczegółowo

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak

Bardziej szczegółowo

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu Informatyka, Ćwiczenie 1 1. Uruchomienie Microsoft Visual C++ I. ZałoŜenie nowego projektu Wybieramy menu: File>New>Files jak na rys. poniŝej Zapisujemy projekt pod nazwą LAN, w katalogu d:\temp\lab typu

Bardziej szczegółowo

Programowanie strukturalne język C - wprowadzenie

Programowanie strukturalne język C - wprowadzenie Programowanie strukturalne język C - wprowadzenie Dr inż. Sławomir Samolej D102 C, tel: 865 1766, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl Cechy programowania strukturalnego Możliwość

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Elementarne wiadomości o języku C

Elementarne wiadomości o języku C Elementarne wiadomości o języku C 1. Wprowadzenie Oprac.: Zbigniew Rudnicki Pierwszą wersję języka C opracował Dennis Ritchie w roku 1972 (wykorzystując niektóre rozwiazania z opracowanych w latach1967-1970

Bardziej szczegółowo

Wykład 1

Wykład 1 Wstęp do programowania 1 Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Wprowadzenie Cel wykładów z programowania proceduralnego Wykład jest poświęcony językowi C i jego

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

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

Bardziej szczegółowo

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 4 Obsługa plików Kraków 2010 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim

Bardziej szczegółowo

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

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

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++ Podstawy Informatyki Metalurgia, I rok Wykład 6 Krótki kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard

Bardziej szczegółowo

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

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

Bardziej szczegółowo

Podstawy programowania w języku C

Podstawy programowania w języku C Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

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

Bardziej szczegółowo

Programowanie w języku C++

Programowanie w języku C++ Programowanie w języku C++ Część dziewiąta 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 nie zastąpi

Bardziej szczegółowo

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Przemysław Kobylański Wprowadzenie Każdy program w C musi zawierać przynajmniej funkcję o nazwie main(): Aby możliwe

Bardziej szczegółowo

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop. 2016 Spis treści Wprowadzenie 11 Adresaci książki 12 Co wyróżnia tę książkę na

Bardziej szczegółowo

Wskaźniki w C. Anna Gogolińska

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

Bardziej szczegółowo

Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja!

Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja! Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja! Krzysztof Grudzień kgrudzi@kis.p.lodz.pl! Zbigniew Chaniecki zch@kis.p.lodz.pl 1 program zajęć - wykład Podstawowe pojęcia

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo

Plik jest reprezentowany przez strumień znaków (bajtów) o zmiennej długości. Koniec strumienia identyfikowany jest znacznikiem końca pliku EOF.

Plik jest reprezentowany przez strumień znaków (bajtów) o zmiennej długości. Koniec strumienia identyfikowany jest znacznikiem końca pliku EOF. Pliki w C++ Plik jest reprezentowany przez strumień znaków (bajtów) o zmiennej długości. Koniec strumienia identyfikowany jest znacznikiem końca pliku EOF. Z każdym strumieniem związany jest wskaźnik bieżącej

Bardziej szczegółowo

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

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

Bardziej szczegółowo