Podstawy Programowania

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

Download "Podstawy Programowania"

Transkrypt

1 Podstawy Programowania Łukasz Kuszner kuszner/ Wykład, 2012/13 : Strona 1 z 78

2 1. Zasady Cel Poznać podstawy języka C, zbudować dobre podstawy do dalszej nauki programowania. Zaliczenie Zaliczenie zajęć praktycznych Wykład kończy się egzaminem pisemnym : Strona 2 z 78

3 2. Książki Język ANSI C, Brian W. Kernighan, Dennis M. Ritchie, WNT. Język C. Wskaźniki. Vademecum profesjonalisty, Kenneth A. Reek (Pointers on C), Helion. Inne książki traktujące o języku C lub rozdziały dotyczące programowania proceduaralnego z książek traktujących o prograwmowaniu w C++. : Strona 3 z 78

4 Inne System pomocy Visual Studio Pomoc na stronach firmy Micrososft strony pomocy HowTo, man i info z dystrybucji Linux a - programy przykładowe - ogólnodostępny zbiór zadań i sędzia online - ogólnodostępny zbiór łatwych zadań na dobry początek w języku polskim : Strona 4 z 78

5 Narzędzia Visual Studio Sphere Online Judge (spoj.pl) Ewentulanie inne środowiska zintegrowane (ang. IDE - Integrated development environment): Code::Blocks,... ) Kompilatory usostępnione na licencji GNU (GCC, DJGPP,... ), edytory kodu (emacs, vim, notepad++,... ), debugger (gdb,... ). Kompilator online (ideone.com). : Strona 5 z 78

6 3. Historia języka C Język C jest strukturalnym językiem imperatywnym rozwijanym początkowo głównie w ramach systemu UNIX. Poprzednikiem C był interpretowany język B, który Ritchie rozwinął w język C. Pierwszy okres rozwoju języka to lata W roku 1973 w języku C udało się zaimplementować jądro (kernel) systemu operacyjnego Unix. W 1978 roku Brian Kernighan i Dennis Ritchie opublikowali dokumentację języka p.t. C Programming Language (wydanie polskie: Język ANSI C). C stał się popularny poza Laboratoriami Bella (gdzie powstał) po 1980 roku, i stał się dominującym językiem do programowania systemów operacyjnych i aplikacji. Na bazie języka C w latach osiemdziesiątych Bjarne Stroustrup stworzył język C++, który wprowadza możliwość programowania obiektowego. : Strona 6 z 78

7 Standardy C Pierwsze wersje systemu UNIX były rozpowszechniane w szkołach wyższych wraz z pełnym kodem źródłowym napisanym w języku C. Potrzeba stworzenia standardu języka wynikała z jego popularności - coraz więcej osób z niego korzystało (głównie na uniwersytetach). Amerykański standard języka - ANSI C ( ) - stanowił znaczne rozszerzenie w stosunku do wersji Kernighan a i Ritchie go. Kolejna wersja standardu języka: ISO 9899:1990 była modyfikacją standardu ANSI. Język zgodny z tą wersją standardu określany jest nieformalnie jako C89. Od tego czasu powstało wiele uaktualnień tej normy na przykład powszechnie obowiązująca C99. : Strona 7 z 78

8 Zastosowania Programowanie niskopoziomowe: sterowniki Implementacja fragmentów systemu o zwiększonych wymaganiach efektywnościowych Dlaczego jeszcze warto nauczyć się C? Popularne języki wysokiego poziomu mają składnię opartą na C (C++, Java, C#). Elementy składniowe języka występują w zasadzie we wszystkich językach imperatywnych. Od czegoś trzeba zacząć. : Strona 8 z 78

9 4. Tworzenie oprogramowania Tworzenie oprogramowania zaczyna się od powstania potrzeby jego istnienia. W naszym wypadku tą potrzebą jest proces kształcenia w którym bierzemy udział. Kolejne fazy, jakie można wyodrębnić to: analiza problemu i tworzenie zarysu projektu, projektowanie, tworzenie specyfikacji technicznej, pisanie kodu, testowanie i debugowanie. wdrożenie i utrzymanie Na zajęciach będą nas interesować głównie elementy związane z kodowaniem, testowaniem i debugowaniem. : Strona 9 z 78

10 Pisanie kodu i kompilacja Przykład 1. #include<s t d i o. h> int main ( ) { p r i n t f ( Hello world!\n ) ; return 0 ; } Mówiąc w dużym skrócie powyższy program musi zostać przetłumaczony z kodu źródłowego na język maszyny. Program, który do tego służy nazywamy kompilatorem, a sam proces tłumaczenia kompilacją. : Strona 10 z 78

11 Elementy kodu programu Program w języku C musi zawierać funkcję main. Funkcja main, podobnie jak każda inna funkcja w C ma następującą postać: <typ zwracany> <nazwa>(<parametry>) { <kod funkcji> } Nasz program zawiera tylko i wyłącznie funkcję main, która nie ma żadnych parametrów i składa się z dwóch instrukcji: printf("hello world!\n");, ta wypisuje tekst zawarty w cudzysłowie, oraz return 0;, ta nakazuje zakończenie działania funkcji, a w wypadku funkcji main również i programu oraz przekazanie wartości 0. Typem zwracanym przez main jest int typ całkowitoliczbowy. Wartość 0 zostaje przekazana do systemu i oznacza poprawne wykonanie programu. : Strona 11 z 78

12 : Pliki nagłówkowe W plikach nagłówkowych (zwyczajowo mają one rozszerzenie.h) znajdują się deklaracje funkcji bibliotecznych. Przykładowo funkcja biblioteczna printf znajduje się w domyślnie włączanym nagłówku stdio.h. Do włączenia nagłówka używamy dyrektywy #include: Strona 12 z 78

13 Struktura programu Kod programu może zostać umieszczony w jednym bądź wielu plikach. Program składa się z dyrektyw preprocesora, definicji typów, funkcji oraz zmiennych. zbudowane są z instrukcji, z których każda zakończonych średnikiem. Instrukcje składają się ze słów kluczowych, operatorów, nazw zmiennych oraz znaków grupujących i separujących (nawiasy, przecinki, średniki). : Strona 13 z 78

14 : Uruchomienie programu Program zaczyna działanie od wykonania funkcji main. Pozostałe funkcje mogą być napisane przez programistę lub pochodzić z bibliotek. Przed uruchomieniem program należy skompilować i scalić (linkowanie, konsolidacja) z funkcjami bibliotecznymi. Strona 14 z 78

15 5. Edycja kodu źródłowego Pożądane cechy edytora kodu programu: Podświetlanie składni Wielokrotne cofnij/powtórz Zaznaczanie blokowe Parowanie nawiasów Autowcięcia Autouzupełnianie Ukrywanie części kodu Ukrywanie części tekstu Integracja z kompilatorem Możliwość sprawdzania pisowni (np. w komentarzach) Łatwość obsługi Niska cena Zasady : Strona 15 z 78

16 6. to proces automatycznego tłumaczenia kodu napisanego w jednym języku programowania na inny (kod maszynowy lub kod pośredni). Dane wejściowe najczęściej nazywa się kodem źródłowym. Program wykonujący tłumaczenie to kompilator. Przeważnie kompilacja jest częścią większego procesu tłumaczenia, a tworzony w jej trakcie kod wynikowy jest przekazywany do linkera (konsolidatora). : Strona 16 z 78

17 : Proces przetwarzania kodu źródłowego preprocessing - przetworzenie wstępne, na przykład włączenie plików nagłówkowych kompilacja konsolidacja - łączenie skompilowanych modułów i utworzeniu pliku wykonywalnego. Strona 17 z 78

18 : Strona 18 z 78

19 Etapy kompilacji Faza wstępna - odczyt i analiza kodu na podstawie reguł języka, tworzenie reprezentacji pośredniej kodu źródłowego w postać grafu lub drzewa zależności. Analiza leksykalna - rozdzielenie kodu na elementarne jednostki języka programowania zwane tokenami. Analiza składniowa - dopasowanie tokenów do gramatyki języka (sprawdzenie, czy kod źródłowy był poprawny składniowo) Analiza semantyczna - określenie znaczenia poszczególnych tokenów. Przykładem może być sprawdzanie, czy nie występuje niezgodność typów. Optymalizacja - reprezentacja pośrednia jest upraszczana tak, aby program otrzymany na jej podstawie charakteryzował się pewnymi cechami (np. większą wydajnością lub mniejszą objętością). Generacja kodu na podstawie reprezentacji pośredniej generowany jest kod wynikowy. Zasady : Strona 19 z 78

20 Dyrektywy preprocesora #include... - dyrektywa włączająca tekst innego pliku źródłowego w miejscu jej wystąpienia w pliku podlegającym aktualnie przetwarzaniu, przy czym możliwe jest zagłębione występowanie dyrektywy include #define i #undef definiowanie symboli dla warunkowej kompilacji #if, #elif, #else, and #endif - warunkowe włączanie i wyłączanie fragmentów kodu źródłowego inne: #pragma, #error, #warning,... : Strona 20 z 78

21 Dyrektywy preprocesora - przykład Zabezpieczenia plików nagłówkowych przed wielokrotnym dołączaniem do tego samego projektu. Jeżeli treść pliku nagłówkowego nazwa.h zawiera instrukcje: #ifndef #define NAZWA H NAZWA H //... treść właściwa... #endif to przy kolejnej próbie włączenia pliku cała treść właściwa zostanie pominięta. : Strona 21 z 78

22 Błędy kompilacji Bezproblemowy przebieg kompilacji programu jest rzadkim zjawiskiem nawet u doświadczonych programistów. Przykład 2. int main ( ) { p r i n t f ( Hello world!\n ) //Brak średnika return 0 ; } Powyższy przykład jest błędny. Próba kompilacji takiego programu zakończy się niepowodzeniem. Przykładowe komunikaty wyświetlone przez kompilator mogą mieć następującą postać: Przykład 3. hello.c: In function main : hello.c:4: error: syntax error before "return" Kompilator uznał, że błąd znajduje się w linii 4 przed słowem return, mimo że średnik zwyczajowo piszemy bezpośrednio po instrukcji. Mimo to sytuacja jest wielce komfortowa; otrzymaliśmy precyzyjny komunikat o błędzie, który łatwo poprawić. Zasady : Strona 22 z 78

23 7. (ang. debugging = odpluskwianie) - proces śledzenia działania systemu mikroprocesorowego lub programu komputerowego za pomocą specjalnego programu - debugera w celu wychwycenia i naprawy błędów w działaniu uruchamianego urządzenia lub oprogramowania. Istotą uruchamiania przy pomocy debugera jest możliwość wykonywania programu w trybie pracy krokowej lub z zastawianiem tzw. pułapek (ang. breakpoints), czyli miejsc w programie, po osiągnięciu których dalsze wykonywanie programu jest zatrzymywane, a także podglądania i ew. zmiany zawartości rejestrów, pamięci itd. : Strona 23 z 78

24 : 8. : kod źródłowy, kompilacja, pliki nagłówkowe, Strona 24 z 78

25 : Zadanie 1. Scharakteryzuj przydatność do tworzenia oprogramowanie następujących edytorów tekstu: Notatnik, Microsoft Word, innego wybranego edytora. Zadanie 2. Napisz, skompiluj i wykonaj swój pierwszy program w C. Zadanie 3. Poznaj i wypróbuj podstawowe opcje kompilatora. Strona 25 z 78

26 9. Jak wiemy, komputer operuje na danych binarnych, można myśleć, że dane w pamięci komputera to ciągi liczb złożone z 0 i 1. Sposób interpretacji przechowywanych danych zależy od ich typu. Wspomniano już o typie całkowitoliczbowym int. Typ char odnosi się do danych znakowych. Popatrzmy na poniższy przykład: Przykład 4. #include<s t d i o. h> int main ( ) { int a=75; char z ; p r i n t f ( a = %d\n, a ) ; z=a ; p r i n t f ( z = %c\n, z ) ; p r i n t f ( z = %d\n, z ) ; return 0 ; } Zasady : Strona 26 z 78

27 Komentarz Najpierw została zadeklarowana zmienna a typu liczbowego int z wartością początkową 75. Liczba ta została wypisana instrukcją printf. Następnie wartość ta została podstawiona do zmiennej typu znakowego z i również wartość tej zmiennej została wypisana. Tym razem na ekranie zobaczymy jednak literę K, której kodem ASCII jest 75. Kolejne wypisanie każe traktować zmienną znakową z jako liczbę (specyfikator %d) i znowu na ekranie zobaczymy liczbę 75. Później zobaczymy, że z punktu widzenia kompilatora nie ma różnicy między znakami, a kodami ASCII znaków. : Strona 27 z 78

28 : Interpretacja i rozmiar Kolejną różnicą między typami danych jest ich rozmiar. Typ char ma jeden bajt, czyli 8 bitów, a typ int ma co najmniej 2 bajty (16 bitów) to gwarantuje standard, faktycznie w systemie Linux typ ten ma 4 bajty (32 bity). W każdym razie jest to typ szerszy niż char, co pokazuje poniższy przykład. Strona 28 z 78

29 Przykład 5. #include<s t d i o. h> int main ( ) { int a=322; char z ; } p r i n t f ( a = %d\n, a ) ; z=a ; p r i n t f ( z = %c\n, z ) ; p r i n t f ( z = %d\n, z ) ; return 0 ; Po podstawieniu z=a zmienna z ma wartość B litery o kodzie 66 (reszta z dzielenie 322 przez 256). : Strona 29 z 78

30 Typy zmiennoprzecinkowe i zaokrąglenia W języku C możliwe jest również operowanie na liczbach niecałkowitych. Umożliwiają to typy float i double. Nazywa się je zmiennoprzecinkowymi ze względu na specjalny format zapisu. Przykład 6. #include<s t d i o. h> int main ( ) { float x =1.5; p r i n t f ( x=%f \n, x ) ; return 0 ; } : Strona 30 z 78

31 Operatory Dotychczas poznaliśmy jeden operator =. Jest to dwuargumentowy operator przypisania. Wyrażenie a=b oznacza, że lewemu operandowi a przypisuje się wartość b. Inne operatory to np.: + dodawanie, - odejmowanie, * mnożenie, > porównanie: lewy większy od prawego, < porównanie: lewy mniejszy od prawego, == porównanie: lewy równy prawemu. : Strona 31 z 78

32 Proste typy danych W języku C występuje tylko kilka podstawowych typów danych: char jeden bajt, typ znakowy int typ całkowity, standard ANSI określa rozmiar na co najmniej dwa bajty float typ zmiennoprzecinkowy pojedynczej precyzji double typ zmiennoprzecinkowy podwójnej precyzji : Strona 32 z 78

33 Kwalifikatory typów Kwalifikatory rozmiaru typów liczbowych short int (krótki int, nie dłuższy niż int) long int (długi int, przynajmniej 4 bajty) long double typ zmiennoprzecinkowy rozszerzonej precyzji Przykład 7. short int a ; long int b ; long double c ; : Strona 33 z 78

34 Kwalifikatory typów c.d. Kwalifikatory: signed (liczby ze znakiem) unsigned (liczby bez znaku ) można stosować z typem char lub dowolnym typem całkowitym, Przykład 8. signed char a ; / 128 <= a <= 127 / unsigned int b ; / 0 <=b <= 255 / signed long int l i ; : Strona 34 z 78

35 : 10. grupowanie instrukcji - nawiasy klamrowe { } wybór wariantowy (if, switch) pętle (iteracje) - powtarzanie instrukcji, bądź grupy instrukcji ze sprawdzeniem warunku zatrzymania (for, do, while). Strona 35 z 78

36 Grupowanie instrukcji Każda instrukcja musi być zakończona średnikiem, np: x = 0 ; p r i n t f ( Hello ) ; return 1 ; Nawiasy klamrowe służą do grupowania instrukcji w instrukcję złożoną, czyli blok, np.: { } x = 0 ; p r i n t f ( Hello ) ; return 1 ; : Strona 36 z 78

37 Instrukcja warunkowa Instrukcje warunkowe stosujemy wszędzie tam, gdzie dalszy przebieg sterowania ma dwa warianty. Przykład 9. #include<s t d i o. h> int main ( ) { int a ; p r i n t f ( Podaj l i c z b ę : ) ; scanf ( %d,&a ) ; } i f ( a%2==0) p r i n t f ( l i c z b a parzysta\n ) ; else p r i n t f ( l i c z b a n i e p a rzysta\n ) ; return 0 ; : Strona 37 z 78

38 : Instrukcja warunkowa (2) if (<CL>) else <IN1> <IN2> Sprawdzana jest wartość wyrażenia <CL>, w przypadku gdy jest różna od zera wykonywana jest instrukcja lub instrukcja złożona <IN1>, w przeciwnym wypadku wykonywane jest <IN2>. Strona 38 z 78

39 Program Warunek Trójkąta Problem: Napisać program sprawdzający czy z podanych trzech długości można zbudować trójkąt. Wejście: liczby całkowite: a, b, c Wyjście: odpowiedź TAK lub NIE Rozwiązanie: Wczytujemy 3 liczby ze standardowego wejścia. Należy sprawdzić warunki: a+b > c, a+c > b oraz b+c > a. Jeżeli wszystkie warunki są spełnione, drukujemy TAK, w przeciwnym razie drukujemy na wyjście NIE. : Strona 39 z 78

40 Program Warunek Trójkąta (2) #i n c l u d e <s t d i o. h> int main ( ) { int a, b, c ; scanf ( %d%d%d, &a, &b, &c ) ; i f ( a + b > c ) i f ( b + c > a ) i f ( a + c > b ) p r i n t f ( TAK ) ; else p r i n t f ( NIE ) ; else p r i n t f ( NIE ) ; else p r i n t f ( NIE ) ; return 0 ; } : Strona 40 z 78

41 using System ; public c l a s s Test { public static void Main ( ) { int a, b, c ; s t r i n g s ; try { s = Console. ReadLine ( ) ; a = int. Parse ( s ) ; s = Console. ReadLine ( ) ; b = int. Parse ( s ) ; s = Console. ReadLine ( ) ; c = int. Parse ( s ) ; i f ( a + b > c && b + c > a && a + c > b ) Console. WriteLine ( TAK ) ; else Console. WriteLine ( NIE ) ; } catch ( Exception e ) { Console. WriteLine ( Nie podano l i c z b y ) ; } } } Zastąpienie kolejnych warunków jednym, spójnik logiczny && (lo- Zasady : Strona 41 z 78

42 Częste błędy Uwaga na niejednoznaczności: #include<s t d i o. h> main (){ int a=3; i f ( a<2) i f ( a>0) p r i n t f ( a=1 ) ; else p r i n t f ( a<=0 ) ; } Do którego if odnosi się else? Zawsze używaj nawiasów klamrowych, unikniesz wielu niepotrzebnych błędów. Kompilator oznajmia ten fakt programiście w następujący sposób (używając np. opcji -Wall): prb.c: In function main : prb.c:5: warning: suggest explicit braces to avoid ambiguous else : Strona 42 z 78

43 : Wybór wielowariantowy W sytuacji, gdy wybieramy spośród wielu możliwych wariantów pomocna może się okazać konstrukcja switch. Strona 43 z 78

44 Przykład 10. #include<s t d i o. h> int main (){ char c ; p r i n t f ( podaj l i t e r ę : ) ; scanf ( %c,&c ) ; switch ( c ){ case A : case E : case I : case O : case U : case Y : p r i n t f ( Wielka l i t e r a \n ) ; case a : case e : case i : case o : case u : case y : p r i n t f ( %c j e s t samogłoską\n, c ) ; break ; default : i f ( c<= z && c>= A ) p r i n t f ( %c j e s t spółgłoską\n, c ) ; else p r i n t f ( to nie l i t e r a \n ) ; i f ( c<= Z && c>= A ) p r i n t f ( Wielka l i t e r a \n ) ; break ; } return 0;} Zasady : Strona 44 z 78

45 Wybór wielowariantowy 2 switch (<CL>) { case <LAB1>: <IN1> case <LAB2>: <IN2>... default <IN3> } Wyrażenie <CL> użyte jako selektor wyboru musi przyjmować wartości całkowite, etykiety muszą być stałymi całkowitymi. Wykonanie instrukcji switch-case: Wyrażenie porównywane jest kolejno z etykietami, jeżeli jedna z etykiet ma wartość wyrażenia, to wykonywane są instrukcje po niej następujące. Instrukcje po etykiecie default są wykonywane, jeżeli żadna z etykiet nie ma wartości równej selektorowi wyboru. Aby uniknąć sprawdzania kolejnych przypadków, stosujemy instrukcję break. : Strona 45 z 78

46 Pętla while while (<CL>) <IN> Dopóki warunek po słowie while jest spełniony dopóty blok instrukcji ograniczony {} będzie wykonywany. Trzeba zwrócić uwagę, by pętla miała prawidłowy warunek końca i nie mogło zdarzyć się tak, iż będzie się ona wykonywać w nieskończoność. W ogólności problem stwierdzenia, czy program się zatrzyma, czy też nie, jest trudny. Popatrzmy na poniższy przykład. : Strona 46 z 78

47 Przykład 11. #include <s t d i o. h> int main ( ) { int a, i =0; p r i n t f ( Podaj l i c z b ę całkowitą : ) ; scanf ( %d,&a ) ; p r i n t f ( \n ) ; while ( a>1) { i f ( a%2) a=3 a+1; else a=a /2; i ++; p r i n t f ( a=%d\n, a ) ; } p r i n t f ( \n Liczba i t e r a c j i : %d\n, i ) ; return 0 ; } Możemy zapytać, czy ta pętla się zawsze kiedyś zatrzyma. Jest to znany problem Collatz a. Dotychczas nie udało się go rozwiązać. Problem ten jest szczególnym przypadkiem problemu stopu, o którym wiadomo, że jest niealgorytmiczny (wiemy, że nie istnieje algorytm, który go rozwiązuje). Zasady : Strona 47 z 78

48 Wydruk dla a=7 : liczba iteracji : 16 : Strona 48 z 78

49 Pętla for Pętla for jest szczególnym przypadkiem pętli while. Zapisujemy ją w postaci: for(<in1>;<in2>;<in3>) <IN4> gdzie: <IN1> zwykle inicjuje licznik pętli, <IN2> jest warunkiem końca, <IN3> steruje licznikiem w każdym kroku, <IN4> jest instrukcją lub blokiem instrukcji wykonywanym cyklicznie. Zwrot ten jest równoważny zapisowi: <IN1>; while (<IN2>){ <IN4>; <IN3>; } : Strona 49 z 78

50 Pętla for (2) Pętle for często stosujemy do powtarzania pewnych operacji określoną liczbę razy, tak jak w przykładzie poniżej. Przykład 12. int main ( ) { int i ; for ( i =0; i <10; i++) p r i n t f ( Hello world! %d times\n, i ) ; return 0 ; } : Strona 50 z 78

51 : Pętla do while do <IN> while (<CL>); Tu najpierw wykonuje się instrukcje, a następnie oblicza wyrażenie <CL> i jeśli jest prawdziwe, to następuje powrót do początku pętli. Strona 51 z 78

52 : 11. (leksemy) są to niezależne, oddzielone separatorami (spacja, średnik, przecinek) fragmenty kodu źródłowego, np. int (typ zmiennej), scanf (identyfikator nazwa funkcji bibliotecznej), for, while (słowa kluczowe), "Ala" (literał). Strona 52 z 78

53 Identyfikatory Identyfikatory są to nazwy zmiennych lub funkcji. Identyfikator jest sekwencją liter, cyfr i znaków podkreślenia ( ). Rozróżniane są małe oraz duże litery (ang. case sensitive). Pierwszy znak identyfikatora nie może być cyfrą. Identyfikator nie może być słowem kluczowym (słowem zastrzeżonym dla języka). (za- Należy unikać stosowania nazw zaczynających się od rezerwowane dla bibliotek). : Strona 53 z 78

54 Słowa kluczowe Podane poniżej napisy są w języku C słowami kluczowymi (nie mogą być nazwami zmiennych i funkcji): char, int, float, double, enum, void, long, short, signed, unsigned, const, static, volatile, extern, register, struct, union, for, while, do, switch, case, default, if, else break, continue, return, goto, inline, sizeof, typedef : Strona 54 z 78

55 Literały Literał to wartość wpisana bezpośrednio w kod programu. Każdy literał (np. liczba 2 występująca w wyrażeniu: x=2*x) ma określony typ. Literały całkowite typ int 1234L - typ long int 1234U - typ unsigned int 1234UL - typ unsigned long int typ int, liczba w systemie ósemkowym (dziesiętnie: 10) 0x12 - typ int, liczba w sytemie szesnastkowym (dziesiętnie: 18) : Strona 55 z 78

56 Literały zmiennoprzecinkowe typ double (notacja dziesiętna z kropką) e2 (lub E2) - typ double (notacja wykładnicza) użycie literki F lub L zmienia typ na float lub long double odpowiednio. Literały znakowe i łańcuchowe a - typ char pojedynczy znak ujęty w pojedyncze apostrofy ala ma psa - typ char * ciągi znaków ujęte w cudzysłowie : Strona 56 z 78

57 12. literał, operator, pętla typ, zmienna, : Strona 57 z 78

58 Zadania Zadanie 4. Proszę przeczytać ze zrozumieniem fragment książki omawiający poruszane zagadnienia bardziej szczegółowo. Mogą to być np. rozdziały 1, 2 i 3 z książki Kernighana i Ritchiego. Zadanie 5. Napisz program, który wyznacza wartość: n! = 1 * 2 *... * n Zadanie 6. Napisz program, który drukuje trójkąt z gwiazdek: * *** ***** ******* Zadanie 7. Napisz program, który wczytuje ze standardowego wejścia kolejne znaki cyfry i tworzy z nich liczbę dziesiętną. : Strona 58 z 78

59 Zadanie 8. Wskaż literały i określ ich typy w następującym programie #include<s t d i o. h> int main ( ) { int a ; p r i n t f ( Podaj l i c z b ę : ) ; scanf ( %d,&a ) ; } i f ( a%2==0) p r i n t f ( l i c z b a parzysta\n ) ; else p r i n t f ( l i c z b a n i e p a rzysta\n ) ; return 0 ; : Strona 59 z 78

60 13. są to typy, które tworzy programista używając wbudowanych typów prostych i innych typów złożonych. tablice struktury unie : Strona 60 z 78

61 Tablice Tablica jest strukturą danych złożoną z określonej liczby elementów tego samego typu. Przykładowo int T[5] jest deklaracją 5-cio elementowej tablicy (wektora) typu int, wtedy kolejne elementy tablicy to T[0], T[1], T[2], T[3], T[4]. Dostęp do poszczególnych elementów tablicy uzyskuje się poprzez użycie operatora [ ] tak, jak w przykładzie poniżej: Przykład 13. for ( i =0 ; i <5 ; i++ ) T[ i ]= i i ; Uwaga:W języku C indeks tablicy zawsze zaczyna się od 0. Tak więc w rozważanym przykładzie T[4] jest ostatnim elementem tablicy (a nie T[5]!). : Strona 61 z 78

62 : Tablice dwuwymiarowe Można też tworzyć tablice dwu- i więcej wymiarowe. Na przykład double A[10][10]; jest deklaracją tablicy dwuwymiarowej o rozmiarze 10x10. Do elementów takiej tablicy odwołujemy się np: A[i][j] Strona 62 z 78

63 Znaki, łańcuchy znaków Typ znakowy to char. Łańcuchy w języku C to tablice znaków (tablice typu char ). char z= a ; char Tekst[]="Abc"; Instrukcje te deklarują zmienną znakową z, oraz łańcuch znaków Tekst, oraz inicjują je. Wtedy T[0]= A, T[1]= b, T[2]= c oraz T[3]= \0 (znacznik końca łańcucha). W C i C++ typ znakowy jest typem całkowitym, tzn. zmienne znakowe można traktować tak, jak liczby całkowite równe ich kodom ASCII. Ponadto na zmiennych znakowych można wykonywać działania arytmetyczne. Np. char x= a, y= f ; x++; y=y+ A - a ; Po tych instrukcjach zmienna x jest równa b, zaś y jest równa F (w zmiennej y litera została zamieniona na dużą). : Strona 63 z 78

64 Typowe błędy Należy pamiętać, że standardowo w C/C++ nie ma kontroli dostępu do tablic. Jeśli odwołujemy się do elementu tablicy który nie istnieje np: const int TAB SIZE=100; int main (){ int T[ TAB SIZE ] ; int n=5000; T[ n]=0; return 0 ; } To odwołanie do nieistniejącej komórki nie zostanie zasygnalizowane w fazie kompilacji, a w fazie wykonania może przynieść nieoczekiwane efekty. Najprzyjemniejszym jest komunikat systemowy: Naruszenie ochrony pamięci W systemie SPOJ błąd ten jest sygnalizowany przez komunikat: runtime error (SIGSEGV). Zasady : Strona 64 z 78

65 Struktury struct Punkt { / typ zmiennej / int wsp x, wsp y ; char kolor ; char znak ; }; Utworzenie zmiennych: struct Punkt a,b; Dostęp do pól struktury: a.wsp_x = 1; a.kolor = 0; a.znak = c ; : Strona 65 z 78

66 Konwersja typów Operator konwersji (jawnej) ma postać (nazwa-typu) Operand Konwersja niejawna zachodzi w sytuacji, gdy operandy danego operatora są różnych typów, ogólna zasada mówi, że automatycznie wykonuje się tylko takie przekształcenia, dla których argument zajmujący mniej pamięci jest zamieniany na argument zajmujący więcej pamięci (char na int, int na float) bez utraty informacji, np.: int a=5/2; float b = a/2; float c = (float)a/2; //a=? b=? c=? : Strona 66 z 78

67 14. Podczas pisania programu (implementacji algorytmu) zachodzi potrzeba wielokrotnego wykonywania tych samych operacji (instrukcji) w różnych sytuacjach (dla różnych danych), np. znalezienie najmniejszego elementu w ciągu liczb (w szczególnym przypadku dwóch), posortowanie ciągu liczb, wyznaczenie rozwiązań równania kwadratowego. W obrębie funkcji można zamknąć operacje wykonywane dla zadanych parametrów wejściowych, np. współczynniki równania kwadratowego. W praktyce każdy (większy) program jest zbudowany z wielu funkcji (dobry styl programowania zaleca, wiele krótkich i czytelnych funkcji), poprawia to przejrzystość i czytelność programu, zwiększa modyfikowalność, zapewnia oszczędność czasu (funkcja raz napisana może być wielokrotnie wykorzystana i jednokrotnie testowana). : Strona 67 z 78

68 Proste funkcje - przykłady Funkcja obliczająca minimum dwóch liczb: int min ( int a, int b) { i f ( a > b ) return b ; else return a ; } Wykorzystanie funkcji w programie np.: x = min(a, b) : Strona 68 z 78

69 Potęgowanie w Z p (modulo p) Przykład 14. int potega ( int b, int w, int p){ // o b l i c z b do potegi w mod p int wynik =1; } while (w>0){ i f (w%2) wynik =b ; wynik%=p ; b =b ; b%=p ; w/=2; } return wynik ; : Strona 69 z 78

70 deklaracja i definicja Deklaracja funkcji, w odróżnieniu od definicji jest pojęciem logicznym, stanowi informację dla kompilatora, że funkcja o określonej nazwie, typie parametrów może zostać użyta (ale nie musi!) w programie. int min(int a, int b); Definicja funkcji określa natomiast co funkcja robi, stanowi zatem zapis jakiegoś algorytmu, definicja funkcji, w odróżnieniu od deklaracji, powoduje przydzielenie obszaru pamięci, w którym znajduje się kod wynikowy funkcji. int min ( int a, int b) { i f ( a > b ) return b ; else return a ; } : Strona 70 z 78

71 Parametry programu Podobnie jak inne funkcje również main może pobierać argumenty. Są to parametry wywołania programu. W pierwszej kolejności jest pobierana ich liczba typu int, a następnie lista argumentów. Poniższy program wypisze wszystkie argumenty wywołania. Przykład 15. int main ( int argc, char argv ) { int i =0; for ( i =0; i<argc ; i++) p r i n t f ( Argument numer %d : %s\n, i, argv [ i ] ) ; } Na przykład, jeśli program ma domyślną nazwę a.out, to komenda:./a.out test Wypisze: Argument numer 0:./a.out Argument numer 1: test Widzimy, że argumentem o numerze 0 jest nazwa pliku wykonywalnego. Zasady : Strona 71 z 78

72 Przekaz argumentów Popatrzmy na prostą funkcję, która zwiększa argument o 1 i wypisuje go: Przykład 16. void inc ( int a){ a++; p r i n t f ( inc : a = %d\n, a ) ; } int main (){ int a ; a=0; inc ( a ) ; p r i n t f ( main : a = %d\n, a ) ; return 0 ; } Wynikiem działania programu będzie: inc: a = 1 main: a = 0 Zasady : Strona 72 z 78

73 Komentarz Może to być zaskoczeniem, ale zobaczmy po kolei co się dzieje. Wartość zmiennej a w programie głównym zostaje ustawiona na 0. Dalej wywoływana jest funkcja inc. Następuje przekazanie wartości parametru do funkcji. Tam wartość ta jest przechowana w zmiennej lokalnej a, ale uwaga nie jest to to samo a, co w main. Lokalna zmienna a zostaje zwiększona o jeden i wypisana jej wartość. Następnie wracamy do main, gdzie cały czas egzystuje zmienna a o wartości 0, ta wartość zostaje wypisana. Podsumowując w naszym przykładzie funkcja nie zmienia wartości innych zmiennych niż jej zmienne lokalne. O takiej funkcji mówimy też, że nie powoduje efektów ubocznych, a taki sposób przekazu argumentów nazywamy przekazywaniem przez wartość. : Strona 73 z 78

74 rekurencyjne Funkcjami rekurencyjnymi nazywamy takie funkcje, które wywołują same siebie. Ilustracją może być poniższa funkcja nwd, która oblicza największy wspólny dzielnik dwóch liczb, z których druga jest nie większa od pierwszej. Przykład 17. int nwdab( int a, int b) { i f ( ( a<=0) (b<=0)) { p r i n t f ( tylko l i c z b y dodatnie\n ) ; e x i t ( 1 ) ;} i f ( a%b==0) return b ; else return nwdab(b, a%b ) ; } main ( ) { int a ; a=nwdab ( 4 8, 2 7 ) ; p r i n t f ( %d\n, a ) ; return 0;} Zasady : Strona 74 z 78

75 15. Deklaracje zmiennych int cyfra = 7; char znak; char znak = o ; double a, b = 3.2e-1; Deklaracje stałych const double pi = ; const int liczba = 37; Uwaga! Wartość zmiennych poprzedzonych kwalifikatorem const nie może być zmieniona w trakcie działania programu. Wyliczenia enum dni {pn, wt, sr, czw, pt}; /* domyślnie: 0, 1, 2, 3, 4 */ enum rok {smoka = 1, koguta, malpy}; /* kolejne =2, =3,... */ : Strona 75 z 78

76 Standardowe pliki nagłówkowe assert.h diagnozowanie programów ctype.h klasyfikacja znaków errno.h zmienne przechowujące informacje o błędach math.h funkcje matematyczne signal.h mechanizmy obsługi zdarzeń wyjątkowych stdio.h funkcje wejścia oraz wyjścia stdlib.h funkcje narzędziowe (przekształcanie liczb, operacje na pamięci) string.h operacje na tekstach time.h obsługa daty oraz czasu : Strona 76 z 78

77 Biblioteka math przykłady funkcji double sin(double x); float sinf(float x); double exp(double x); double log(double x); double pow(double x, double y); : Strona 77 z 78

78 : Zadanie 9. Proszę przeczytać ze zrozumieniem fragment książki omawiający te zagadnienia bardziej szczegółowo. Mogą to być np.: rozdziały 1 4 książki Kernighana i Ritchiego. Strona 78 z 78

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

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

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

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

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

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

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

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

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

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

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

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

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

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

Programowanie Komputerów

Programowanie Komputerów Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 17 1. Typy i zmienne Jak wiemy, komputer

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

Język C - podstawowe informacje

Język C - podstawowe informacje Język C - podstawowe informacje Michał Rad AGH Laboratorium Maszyn Elektrycznych 2014-12-05 Outline Program w języku C Funkcje Składnia Instrukcje sterujace Na koniec... Po kolei napisać program (zwykły

Bardziej szczegółowo

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

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

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

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

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++)

Bardziej szczegółowo

PROGRAMOWANIE w C prolog

PROGRAMOWANIE w C prolog PROGRAMOWANIE w C prolog dr inż. Jarosław Stańczyk Uniwersytet Przyrodniczy we Wrocławiu Wydział Biologii i Hodowli Zwierząt Katedra Genetyki 1 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014

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

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 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 C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe

Bardziej szczegółowo

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski

Bardziej szczegółowo

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia

Bardziej szczegółowo

Języki i metody programowania. Omówienie języków C, C++ i Java

Języki i metody programowania. Omówienie języków C, C++ i Java Języki i metody programowania Omówienie języków C, C++ i Java Język C Język programowania ogólnego przeznaczenia Historia: M. Richards - BCPL - lata 60-te ubiegłego stulecia K. Thompson - B dla UNIX (DEC

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

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

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

Języki programowania - podstawy

Języki programowania - podstawy Języki programowania - podstawy Andrzej Dudek Wydział Techniczno Informatyczny W Jeleniej Górze Dudek A. Informatyka przemysłowa tendencje i wyzwania 26.10.2015 1 /24 Algorytm określony sposób rozwiązania

Bardziej szczegółowo

Programowanie Komputerów

Programowanie Komputerów Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 26 1. Zasady Wykład i laboratorium są

Bardziej szczegółowo

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

Programowanie I C / C++ laboratorium 01 Organizacja zajęć Programowanie I C / C++ laboratorium 01 Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-12 Program zajęć Zasady zaliczenia Program operacje wejścia i wyjścia instrukcje

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

wykład I uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje

wykład I uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 5 6 7 Charakter wykładu ˆ zakłada znajomość idei programowania strukturalnego (np. w Pascalu) oraz podstaw używania środowiska UNIX (wykonywanie

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

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

Podstawy programowania. Wykład 2 Zmienne i obsługa wejścia/wyjścia. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 2 Zmienne i obsługa wejścia/wyjścia. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 2 Zmienne i obsługa wejścia/wyjścia Krzysztof Banaś Podstawy programowania 1 Programowanie Programowanie typowe kroki zapis kodu źródłowego w pliku tekstowym kompilacja usuwanie

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

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

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

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

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

Język C zajęcia nr 11. Funkcje

Język C zajęcia nr 11. Funkcje Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji

Bardziej szczegółowo

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje. Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using

Bardziej szczegółowo

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO Rozdział 1. Wybór i instalacja kompilatora języka Pascal 1.1. Współczesne wersje kompilatorów Pascala 1.2. Jak zainstalować

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

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop. 2010 Spis treści Wstęp 11 Część I PASCAL - wprowadzenie do programowania strukturalnego

Bardziej szczegółowo

Podstawy Programowania. Wykład 1

Podstawy Programowania. Wykład 1 Podstawy Programowania Wykład 1 Jak się uczyć programowania? Wykład i laboratorium Literatura Jerzy Grębosz Symfonia C++ Bjarne Stroustrup Język C++ Bruce Eckel Thinking in C++ Tony L. Hansen C++ zadania

Bardziej szczegółowo

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym

Bardziej szczegółowo

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

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

Funkcja (podprogram) void

Funkcja (podprogram) void Funkcje Co to jest funkcja? Budowa funkcji Deklaracja, definicja i wywołanie funkcji Przykłady funkcji definiowanych przez programistę Przekazywanie argumentów do funkcji Tablica jako argument funkcji

Bardziej szczegółowo

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 4 Instrukcje sterujące, operatory 1 programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe ; instrukcja_krok ) tresc_petli ; instrukcja_ini

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

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

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

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

( wykł. dr Marek Piasecki )

( wykł. dr Marek Piasecki ) INE 1007 Informatyka 1 Język programowania C++ ( wykł. dr Marek Piasecki ) Literatura: dowolny podręcznik do języka C++ (na laboratoriach Borland C++ 3.1) Robert Lafore Jerzy Grębosz Andrzej Zalewski Programowanie

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

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.

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

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal Instrukcja wyboru, pętle 2 wykład. Podstawy programowania - Paskal Tematy Instrukcja wyboru jeden z wielu wariantów: case Pętle while repeat for Instrukcje sterowania pętli break continue goto Instrukcja

Bardziej szczegółowo

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego

Bardziej szczegółowo

Metodyki i Techniki Programowania 1 1 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

Metodyki i Techniki Programowania 1 1 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA Metodyki i Techniki Programowania 1 1 ZAJ CIA 3. 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA IDE zintegrowane środowisko programistyczne, zawierające kompilator, edytor tekstu i linker,

Bardziej szczegółowo

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h> Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch

Bardziej szczegółowo

Podstawy Programowania.

Podstawy Programowania. Podstawy Programowania http://www.saltbox.com/img/under_the_hood.png O mnie... dr inż. Łukasz Graczykowski Zakład Fizyki Jądrowej Wydział Fizyki Politechniki Warszawskiej lgraczyk@if.pw.edu.pl www.if.pw.edu.pl/~lgraczyk/wiki

Bardziej szczegółowo

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura

Bardziej szczegół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. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia Krzysztof Banaś Podstawy programowania 1 Typy danych Podstawowe wbudowane typy danych języka C: _Bool 0 i 1 (C99) znaki (char) 7

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

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

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem. Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -

Bardziej szczegółowo

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje

Bardziej szczegółowo

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C Mikrosterownik Inne nazwy: Microcontroler (z języka angielskiego) Ta nazwa jest powszechnie używana w Polsce. Mikrokomputer jednoukładowy

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

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

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

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

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

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

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

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

Pytania sprawdzające wiedzę z programowania C++

Pytania sprawdzające wiedzę z programowania C++ Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?

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

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów Funkcje. Spotkanie 5 Dr inż. Dariusz JĘDRZEJCZYK Tworzenie i używanie funkcji Przekazywanie argumentów do funkcji Domyślne wartości argumentów Przeładowanie nazw funkcji Dzielenie programu na kilka plików

Bardziej szczegółowo

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje

Bardziej szczegółowo

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009 Informatyka 1 zajęcia nr 1 Elektrotechnika, semestr II rok akademicki 2008/2009 mgr inż.. Paweł Myszkowski Plan dzisiejszych zajęć 1. Organizacja laboratorium przedmiotu 2. Algorytmy i sposoby ich opisu

Bardziej szczegółowo

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 1 Podstawy programowania dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Ramowy program warsztatów 1. Pierwsze: Podstawy programowania 2. Drugie:

Bardziej szczegółowo