Katedra Elektrotechniki Teoretycznej i Informatyki. sem. III i IV. Dr inż. M. Czyżak

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

Download "Katedra Elektrotechniki Teoretycznej i Informatyki. sem. III i IV. Dr inż. M. Czyżak"

Transkrypt

1 Katedra Elektrotechniki Teoretycznej i Informatyki sem. III i IV Dr inż. M. Czyżak

2 Literatura: 1. A.R. Neubauer, Języki C i C++, Twój pierwszy program, Help, W-wa, C. Sexton, Język C to proste, RM, W-wa, G. Perry, Język C w przykładach, Que, W-wa, Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa, Andrzej Zalewski, Programowanie w językach C i C++ z wykorzystaniem pakietu Borland C++, Nakom, Poznań, 1999.

3 Język ANSI C - historia 1972 definicja języka C Dennis M. Ritchie Pierwowzór beztypowy język B ( Ken Thompson (1970)) będący adaptacją języka BCPL( Basic Combined Programming Language, Martin Richards(1967) ) dla PDP opis języka C D.M. Ritchie, B.W. Kernighan, The C programming language, Prentice-Hall. Standard K&R unowocześniony standard języka C- język ANSI C. Opis standardu : American National Standard for Information Systems- Programming Language C, X ). Później standard ISO 9899:1990.

4 Język ANSI C - wstęp Zastosowanie: początkowo systemy operacyjne, oprogramowanie narzędziowe ( kompilatory, edytory) i oprogramowanie sieciowe, później oprogramowanie użytkowe. Kompilatory dostępne w praktycznie każdym systemie operacyjnym. Język C jest podstawowym językiem tworzenia oprogramowania dla procesorów sygnałowych i sterujących różnego typu urządzeniami (przykład- kompilator Keil C dla 8051).

5 Cechy języka C cz I: Język ANSI C - wstęp Typy: - typy podstawowe : typy znakowe, całkowite i rzeczywiste - typy pochodne : wskaźnikowe, tablice, struktury, unie i inne. Wyrażenia : budowane z operatorów i ich argumentów Wskaźniki : operacje na adresach niezależnie od maszyny

6 Cechy języka C cz. II: Język ANSI C - wstęp Konstrukcje sterujące: - grupowanie instrukcji (instrukcja złożona) - podejmowanie decyzji ( if, if-else, switch) - realizacja powtarzania ze sprawdzaniem warunku na początku ( for, while), na końcu ( do-while) - przerwanie (break) i kontynuacja pętli (continue)

7 Cechy języka C cz III: Język ANSI C - wstęp Ogólna budowa programu - program składa z pewnych jednostek programowych ( fragmentów kodu ) zwanych funkcjami z dobrze określonymi mechanizmami komunikacji z otoczeniem; - program w C posiada tzw. płaską strukturę tzn. funkcje są niezależne i nie można definiować jednych funkcji w drugich.

8 Język ANSI C - wstęp Cechy języka C cz IV: Funkcje: -mogą zwracać wartości typów podstawowych, struktury, unie i wskaźniki; - zmienne w funkcjach mogą być zmiennymi lokalnymi (automatyczne i statyczne) lub zewnętrznymi; -mogą być wywoływane rekurencyjnie; -mogą być rozmieszczone w jednym lub większej liczbie plików.

9 Język ANSI C - wstęp Przykład 1. Prosty program w języku C- wersja 1 #include <stdio.h> main() { printf( Pierwszy program w języku C ); }

10 Język ANSI C - wstęp Przykład 2. Prosty program w języku C- wersja 2 #include <stdio.h> #include <conio.h> main() { printf( Pierwszy program w języku C ); getch(); }

11 Język ANSI C - wstęp Przykład 3. Prosty program w języku C- wersja 3 /* program ten jest uzupełniony o wybrane elementy*/ #include <stdio.h> #include <conio.h> main() { clrscr(); printf( Pierwszy program w języku C ); printf( \n napisany przez J. Kowalskiego ); getch(); return 0; }

12 Język ANSI C - przykład Przykład 4. Prosty program z użyciem zmiennych #include <stdio.h> #include <conio.h> main() { int a; int b; int c; a=1; b=2; c=a+b; printf( \n Suma a+b =%d,c); getch(); return 0; }

13 Język ANSI C pojęcie zmiennej Zmienna w języku C Zmienna w języku C z punktu widzenia programisty oznacza pewien obszar pamięci komputera, który może być używany przez programistę w określony sposób. Np. dla zmiennej a, rozmiar tego obszaru określa typ int ( skrót od integer-całkowity). Typ ten oznacza, że w zmiennych tego typu można przechowywać wartości całkowite ( dla kompilatora Borland Builder C++ typ int zajmuje 32 bity i można przechowywać wartości z zakresu [ 2, 2 1]. Liczby całkowite są przechowywane w kodzie U2.

14 Język ANSI C operatory Operatory w jezyku C Operatory to znaki lub kombinacje znaków symbolizujące pewne operacje w programie np. =, +, -. Operatory służą wraz i innymi elementami do tworzenia tzw. wyrażeń. Wyrażenie jest pewną kombinacją operatorów i innych elementów takich jak zmienne i stałe. Przykładami wyrażeń mogą być: -a - jest to wyrażenie skladające się z operatora minus (-) i argumentu ( zmiennej a ) -b+c wyrażenie to składa się z operatora plus(+) i dwóch argumentów (zmienne a i b)

15 Język ANSI C operatory Operator minus(-) w pierwszym wyrażeniu jest operatorem jednoargumentowym, a operator plus(+) w drugim wyrażeniu jest operatorem dwuargumentowym. Ogólnie w języku C operator jednoargumentowy może być użyty w sposób następujący: a operator dwuargumentowy op argument lub argument op, argument1 op argument 2

16 Język ANSI C operatory Operatory w C można podzielić na następujące grupy: -operatory arytmetyczne ( np. +,-,*,/, %, ++, --) -operatory relacyjne (<,<=, ==, >, >=,!=) -operatory logiczne (&&,,!) -operatory bitowe ( ~, &,, ^) -operator funkcyjny () -operator indeksowania [ ] - operatory adresowy ( &) i dereferencji (*)

17 Język ANSI C operatory -operator sizeof -operator warunkowy(?) -operatory przypisania ( np. =) -operator rzutowania (typ) -operator przecinkowy -operatory bezpośredniego(. ) i pośredniego odwołania do pola struktury(->)

18 Język ANSI C typy całkowite Zakresy i rozmiary typów całkowitych Typ Rozmiar(bity) Zakres liczbowy unsigned char 8 0 do 255 char do 127 short int do unsigned short int 16 0 do int do unsigned int 32 0 do long int 32 zakres int unsigned long int 32 zakres unsigned int ( typ wyliczeniowy enum zostanie omówiony w dalszej części) unsigned oznacza typ bez znaku (kod NKB), pozostałe są przechowywane w kodzie U2.

19 Język ANSI C operatory Operatory arytmetyki na liczbach całkowitych (ang. integer arithmetic) - operatory jednoargumentowe + i - operator dodawania + - operator odejmowania - - operator mnożenia * - operator dzielenia całkowitego / - operator obliczania reszty z dzielenia całkowitego Operatory te są stosowane, gdy argument lub argumenty operatora są typu całkowitego.

20 Język ANSI C operatory /*Przykład 5. Program ilustrujący użycie operatorów arytmetyki całkowitej dla liczb ze znakiem*> #include <stdio.h> #include <conio.h> main() { int a,b,c; printf( Podaj a: ); scanf( %d, &a); printf( Podaj b: ); scanf( %d, &b); c=a+b; printf( \n Suma %d + %d =%d, a,b,c); c=a-b; printf( \n Roznica %d - %d =%d, a,b,c); c=a*b; printf( \n Iloczyn %d * %d =%d, a,b,c); c=a/b; printf( \n Iloraz calkowity %d przez %d =%d, a,b,c); c=a%b; printf( \n Reszta z dzielenia całkowitego %d przez %d =%d, a,b,c); getch(); return 0; }

21 Język ANSI C typy całkowite Uwaga: ani argumenty ani też rezultaty poszczególnych działań nie mogą przekraczać zakresów liczbowych dla poszczególnych typów podanych w tabeli. Przykładowo, mnożenie liczb 65000*40000 da liczbę ujemną. Reprezentacja tego iloczynu jest 32-bitowa, stąd najwyższy jej bit wchodzi na pozycję znaku, co powoduje, że otrzymany ciąg bitów jest traktowany jako liczba ujemna w kodzie U2.

22 Język ANSI C typy całkowite /*Przykład 6. Program ilustrujący użycie operatorów arytmetyki całkowitej dla liczb bez znaku*/ #include <stdio.h> #include <conio.h> main() { unsigned int a,b,c; printf( Podaj a: ); scanf( %u, &a); printf( Podaj b: ); scanf( %u, &b); c=a+b; printf( \n Suma %u + %u =%u, a,b,c); c=a-b; printf( \n Roznica %u - %u =%u, a,b,c); c=a*b; printf( \n Iloczyn %u * %u =%u, a,b,c); c=a/b; printf( \n Iloraz calkowity %u przez %u =%u, a,b,c); c=a%b; printf( \n Reszta z dzielenia całkowitego %u przez %u =%u, a,b,c); getch(); return 0;}

23 Język ANSI C typy całkowite Przykład 7. Program ilustrujący użycie operatorów arytmetyki całkowitej do obliczania wyrażenia #include <stdio.h> #include <conio.h> #include <math.h> main() { int k,l, licznik, mianownik, wynik; printf( Podaj k: ); scanf( %d, &k); printf( \n Podaj l: ); scanf( %d, &k); licznik=k*k*k+ k%5 +abs(l); mianownik=k+ k/(k+l); wynik=licznik/mianownik; printf( \n Wartosc wyrazenia=%d, wynik); getch(); return 0; } y 3 k + k + l k k+ k+ l = 5

24 Język ANSI C operatory cz. V Wartości logiczne w języku C -Wartość logiczna prawda jest reprezentowana przez każdą liczbę różną od zera, np. 1,2, -5. -Wartość logiczna fałsz jest reprezentowana przez 0.

25 Język ANSI C operatory cz. VI Operatory relacji w języku C Operatory te to: < - mniejsze < = - mniejszy lub równe > - większe >= - większe lub równe == - równe!= - rózne

26 Język ANSI C operatory cz. IV Wyrażenie relacyjne Wyrażenie relacyjne to wyrażenie składające się z operandów połączonych pewnym operatorem relacji np. a>b, a!=b, a==b. op1 operator_relacyjny op2, Wartością wyrażenia relacyjnego jest 1, jeżeli wyrażenie jest prawdziwe albo też 0, gdy wyrażenie jest fałszywe.

27 Język ANSI C -operatory Przykład. Prosty program ilustrujący zastosowanie operatorów relacyjnych #include <stdio.h> #include <conio.h.> int main(int argc, char * argv{}) { int a,b,c; printf( Podaj a=: ); scanf ( %d, &a); printf( Podaj b=: ); scanf ( %d, &b); c=a<b; printf ( \n Wartosc wyrazenia %d < %d=%d,a,b,c); c=a<=b; printf ( \n Wartosc wyrazenia %d <= %d=%d,a,b,c); c=a==b; prinf ( \n Wartosc wyrazenia %d ==%d=%d,a,b,c); c=a>b; printf ( \n Wartosc wyrazenia %d > %d=%d,a,b,c); c=a>=b; printf ( \n Wartosc wyrazenia %d > =%d=%d,a,b,c); c=a!=b; printf ( \n Wartosc wyrazenia %d!= %d=%d,a,b,c); getch(); return 0; }

28 Przykład. Program uzupełniony o możliwość wielokrotnego wykonania ( nieskończona pętla while) #include <stdio.h> #include <conio.h.> int main(int argc, char * argv{}) { int a,b,c; while (1) // początek pętli while { printf( Podaj a=: ); scanf ( %d, &a); printf( Podaj b=: ); scanf ( %d, &b); c=a<b; printf ( \n Wartosc wyrazenia %d < %d=%d,a,b,c); c=a<=b; printf ( \n Wartosc wyrazenia %d <= %d=%d,a,b,c); c=a==b; prinf ( \n Wartosc wyrazenia %d ==%d=%d,a,b,c); c=a>b; printf ( \n Wartosc wyrazenia %d > %d=%d,a,b,c); c=a>=b; printf ( \n Wartosc wyrazenia %d > =%d=%d,a,b,c); c=a!=b; printf ( \n Wartosc wyrazenia %d!= %d=%d,a,b,c); getch(); } // koniec pętli do while return 0; }

29 Przykład. Program uzupełniony o możliwość wielokrotnego wykonania ( pętla while z określoną liczbą wykonań ) #include <stdio.h> #include <conio.h.> int main(int argc, char * argv{}) { int a,b,c, n, licznik=0; printf( Podaj liczbe wykonan petli ); scanf( %d,&n); while (licznik <n) { printf( Podaj a=: ); scanf ( %d, &a); printf( Podaj b=: ); scanf ( %d, &b); c=a<b; printf ( \n Wartosc wyrazenia %d < %d=%d,a,b,c); c=a<=b; printf ( \n Wartosc wyrazenia %d <= %d=%d,a,b,c); c=a==b; prinf ( \n Wartosc wyrazenia %d ==%d=%d,a,b,c); c=a>b; printf ( \n Wartosc wyrazenia %d > %d=%d,a,b,c); c=a>=b; printf ( \n Wartosc wyrazenia %d > =%d=%d,a,b,c); c=a!=b; printf ( \n Wartosc wyrazenia %d!= %d=%d,a,b,c); licznik=licznik+1; getch(); } return 0; }

30 Język ANSI C operatory cz. VII Operatory logiczne w języku C Operatory te to:! - operator negacji && - operator koniunkcji( iloczynu logicznego) - operator alternatywy (sumy logicznej)

31 Język ANSI C operatory Tabela wartości dla operatorów logicznych x y x&&y x y!x 0 (fałsz) 0 (fałsz) (fałsz) 1 (prawda) (prawda) 0 (fałsz) (prawda) 1 (prawda) 1 1 0

32 Przykład. Program ilustrujący najprostsze użycie operatorów logicznych. #include <stdio.h> #include <conio.h.> int main(int argc, char * argv{}) { int a,b,c, n, licznik=0; printf( Podaj liczbe wykonan petli ); scanf( %d,&n); while (licznik <n) { printf( Podaj a=: ); scanf ( %d, &a); printf( Podaj b=: ); scanf ( %d, &b); c=a&&b; printf ( \n Wartosc wyrazenia %d &&%d=%d,a,b,c); c=a b; printf ( \n Wartosc wyrazenia %d %d=%d,a,b,c); c=!a; prinf ( \n Wartosc wyrazenia!%d=%d,a,c); licznik=licznik+1; getch(); } return 0; }

33 Przykład. Wyrażenia logiczne. Dla obliczenia wartości w poniższych wyrażeniach przyjęto x=1, y=4, z=1. Wyrażenie Wartość wyrażenia x<=1 && y==3 0 x<=1 y==3 1!(x>1) 1!x>1 0!(x<=1 y==3) 0 x>=1&&y==3 z<14 1

34 Język ANSI C -operatory Priorytety operatorów cz. I O kolejności stosowania operatorów w wyrażeniu decyduje ich priorytet ( pierwszeństwo). Priorytet operatora decyduje o tym czy będzie on użyty przed innymi operatorami czy też po nich. Przykładowo, w wyrażeniu a+b*c stosowany jest najpierw operator *, a dopiero później operator +. Podobnie w wyrażeniu a>b && c<d e>f stosowane są najpierw operatory relacyjne, później operator && i następnie operator.

35 Język ANSI C Hierarchia operatorów ( dotychczas stosowanych) Poziom 1 (najwyższy), + (jednoargumentowy),! Poziom 2 *, /, % Poziom 3 +, - Poziom 4 <, <=, >, >=, Poziom 5 ==,!= Poziom 6 && Poziom 7 Poziom 8 =

36 Język ANSI C identyfikator Identyfikatory Jeżeli piszemy program musimy wybrać nazwy dla zmiennych, funkcji i innych obiektów. - Identyfikator(nazwa) jest sekwencją liter i cyfr o dowolnej długości (niektóre kompilatory wprowadzają tu pewne ograniczenia). - Pierwszy znak identyfikatora musi być literą, przy czym znak podkreślenia '_' jest traktowany jako litera. - Litery duże i małe są rozróżniane.

37 Język ANSI C identyfikatory - Służą one do zapisu konstrukcji, jakie są dopuszczalne w języku C. - Identyfikator nie może być słowem kluczowym(niektóre identyfikatory zostały zastrzeżone przez twórców języka). Budowa identyfikatora Identyfikator w C musi spełniać następujące wymagania: a) zaczynać od litery (A do Z, a do z) lub też od znaku podkreślenia _ ; b) składać z liter (A do Z, a do z), cyfr lub też znaków podkreślenia _ ; c) nie może być słowem kluczowym (słowo kluczowe to takie słowo jak for czy while ).

38 Język ANSI C identyfikatory Przykład. Legalne (dopuszczalne) identyfikatory ilosc ilosc_calkowita _suma kolumna3 ILOSC Zwyjątkiem identyfikatorów zewnętrznych (nazw zewnętrznych), pierwsze 31 znaków każdego identyfikatora to tzw. znaki znaczące. Jeżeli dwa identyfikatory różnią się od 32 znaku, mogą być uznane za ten sam identyfikator. Ze względu na to, że rozróżniane są litery małe i wielkie identyfikatory ilosc i ILOSC są różnymi identyfikatorami.

39 Język ANSI C identyfikatory Przykład. Identyfikatory nielegalne (niepoprawne). ilosc$ (niedopuszczalny znak $) 2_suma long druga suma (rozpoczyna się cyfrą) (słowo kluczowe) (w identyfikatorze nie może być spacji) ILOSC-CALKOWITA (niedopuszczalny znak -)

40 Język ANSI C komentarze Komentarze - Komentarze są ciągami znaków ujętych w znaki /* */. - Komentarze są ignorowane przez kompilator. Przykład. /* Komentarz w języku C */ - Komentarze takie mogą obejmować wiele wierszy. - W komentarzach można używać polskie znaki. -Jeśli stosuje się kompilator C++, można też stosować komentarz jednowierszowy rozpoczynający się od znaków //.

41 Język ANSI C W języku ANSI C istnieją następujące słowa kluczowe: auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while

42 Język ANSI C typ znakowy Typ znakowy -W językach programowania istnieje konieczność reprezentowania, oprócz liczb, także znaków, np. liter. -Znaki są reprezentowane wewnętrznie w postaci pewnych całkowitych nieujemnych liczb zwanych kodami znaków. -Sposób przyporządkowania poszczególnym znakom odpowiednich liczb zwany jest kodem. Przykłady kodów to np. ASCII, EBDIC, Unicode,

43 Język ANSI C typ znakowy Kod ASCII - Kod ASCII (ang. American Standard Code for Information Interchange) jest standardowym sposobem kodowania znaków. - Standardowy oznacza, że jest powszechnie przyjęty przez wytwórców różnych urządzeń, aby mogły się ze sobą komunikować. - Kodowanie oznacza, że każdemu znakowi odpowiada w tym kodzie pewna liczba będąca jej tzw. kodem ASCII.

44 - Kody z zakresu [0,31] reprezentują tzw. znaki sterujące np. kod 8 znak BS (ang. backspace), kod 10 znak LF (ang. Line Feed- nowa linia), kod 13 znak CR (ang. Carriage Return- powrót karetki, terminologia pochodzi z maszyn do pisania). Cyfry są reprezentowane przez kody z przedziału [48,57], duże litery z [65,90], a małe litery [97,122]. ( kody pozostałych znaków w dostarczonym materiale). Język ANSI C typ znakowy Kod ASCII - W kodzie ASCII znaki o kodach z zakresu [0,127] należą do tzw. standardowego zestawu znaków. Kodom z tego zakresu odpowiadają te same znaki we wszystkich urządzeniach wykorzystujących kod ASCII. Ogólna budowa kodu ASCII

45 Język ANSI C typ znakowy Typ znakowy -W języku C istnieje specjalny typ char o zakresie [-128,127] przeznaczony do operacji na znakach. Zmienne i stałe tego typu zajmują 1 bajt. Zmienne są definiowane w sposób następujący: char ch; -W języku C istnieje szereg funkcji istnieje umożliwiających wykonywanie operacji na znakach takich jak wprowadzanie znaków z klawiatury, wyprowadzanie znaków na ekran i klasyfikacja znaków.

46 Język ANSI C typ znakowy Wejście znakowe(1) - Znaki mogą być wczytywane z klawiatury przy zastosowaniu funkcji pochodzących ze standardowej biblioteki języka C lub też funkcji dostarczanych przez producentów kompilatorów. 1. Funkcja scanf. Przy wczytywaniu znaków konieczne jest zastosowanie deskryptora format %c. printf( Podaj znak : ); scanf ( %c,&ch); 2. Funkcja getchar(). printf( Podaj znak : ); ch=getchar();

47 Język ANSI C typ znakowy Wejście znakowe (2) - Funkcja getch(); printf( Podaj znak : ); ch=getch(); Wczytywanie znaku przy użyciu scanf i getchar wymaga Enter po wprowadzeniu znaku.

48 Język ANSI C typ znakowy Wyjście znakowe - Wyprowadzenie znaku na ekran może być zrealizowane w sposób następujący printf( Znak=%c, ch); lub putchar(ch); lub putch (ch);

49 Język ANSI C typ znakowy Przykład. Drukowanie wybranych znaków i ich kodów ASCII. #include <stdio.h> #include <conio.h> main() { int i ; i=32; clrscr(); while (i<256) { printf( \n \n Znak =%c kod dec=%3d hex =%x oct=%o, i, i, i, i ); getch(); i++; } return 0; }

50 Język ANSI C typ znakowy Stałe znakowe Stała znakowa ciąg złożony z jednego lub wiekszej liczby znaków ujęty w pojedyncze apostrofy np. x. Stałe jednoznakowe są typu char, a wieloznakowe typu int. Stałe znakowe mogą być używane w operacjach arytmetycznych. W operacjach stosowany jest kod ASCII liczby np.. int cyfra; cyfra= 5-0 ; Faktycznie jest to odejmowanie 53-48, czyli w zmiennej cyfra będzie wartość 5.

51 Język ANSI C typ znakowy Stałe znakowe Stałe znakowe mogą być zapisywane również przy zastosowaniu kodów heksalnych i oktalnych, np. stałą znakową A można zapisać także jako \x41 albo też \101. Mechanizm ten ma szczególne znaczenie jeżeli chce się drukować znaki, które nie występują na klawiaturze.

52 Język ANSI C typ znakowy Stałe znakowe Przykładowo, napis Róża bez kolców można wydrukować w sposób następujący: printf("\n R\242\276a bez kolc\242w"); //wersja oktalna printf("\n R\xa2\xbe a bez kolc\xa2w");// wersja heksalna W powyższych instrukcjach zastosowano kody oktalne i heksalne liter ó i ż. 242 i a2 są kodami ó, a 276 i be litery ż.

53 Język ANSI C typ znakowy Sekwencje ucieczki ( ang. escape sequences) Znaki, które nie mają reprezentacji graficznej na ekranie monitora lub też mają specjalne znaczenia w łańcuchach znaków, mogą być wygenerowane przy użyciu tzw. sekwencji ucieczki złożonych z ukośnika \ i odpowiedniego znaku.

54 Język ANSI C typ znakowy Tabela sekwencji ucieczki cz. I Nazwa sekwencji Symbol Zapis znakowy Wartość liczbowa Nowy wiersz NL(LF) \n 10 (dec) Tabulacja pozioma Tabulacja pionowa Kasowanie znaku (backspace) HT \t 9(dec) VT \v 11(dec) BS \b 8(dec) Powrót karetki CR \r 13(dec)

55 Język ANSI C typ znakowy Tabela sekwencji ucieczki cz. II Nazwa sekwencji Symbol Zapis znakowy Wartość liczbowa Nowa strona ( form feed) Dzwonek (alert) FF \f 12 (dec) BEL \a 7(dec) Lewy ukośnik \ \\ 92(dec) Znak zapytania? \? 63(dec) Pojedynczy apostrof Podwójny apostrof \ 39(dec) \ 34(dec) Znak zerowy NUL \0 0

56 Język ANSI C typy rzeczywiste Zakresy i rozmiary typów rzeczywistych Typ Rozmiar(bity) Zakres liczbowy Liczba cyfr znaczących do 3.4 float double do long double do

57 Język ANSI C typy rzeczywiste Przykład. Program ilustrujący wczytywanie i drukowanie zmiennych rzeczywistych typu float, double i long double. #include <stdio.h> #include <conio.h> main() { float x; double y; long double z; printf( Podaj x: ); scanf( %f, &x); // %f jest deskryptorem formatu stosowanym przy wczytywaniu // i drukowaniu zmiennych typu float printf( \n Podaj y: ); scanf( %lf, &y);// %lf deskryptor formatu dla zmiennych typu double printf( \npodaj z: ); scanf( %Lf, &z);// %Lf deskryptor formatu dla zmiennych typu long double printf( \n x=%f, x); printf( \n y=%f, y); printf( \n z=%lf, z); getch(); return 0; }

58 Język ANSI C typy rzeczywiste /*Przykład. Program ilustrujący użycie operatorów arytmetyki rzeczywistej*/ #include <stdio.h> #include <conio.h> main() { double a,b,c; printf( Podaj a: ); scanf( %lf, &a); printf( Podaj b: ); scanf( %lf, &b); c=a+b; printf( \n Suma %f + %f =%f, a,b,c); c=a-b; printf( \n Roznica %f - %f =%10.2f, a,b,c); c=a*b; printf( \n Iloczyn %f * %f =%.4f, a,b,c); c=a/b; printf( \n Iloraz %e przez %e =%f, a,b,c); getch(); return 0;}

59 Język ANSI C typy rzeczywiste Formatowanie wydruku liczb rzeczywistych Formatowanie wydruku to kształtowanie zewnętrznej postaci liczb (na ekranie monitora lub na drukarce). Zakres takiego kształtowania zależy od formatu liczby rzeczywistej czyli sposobu jej przechowywania w pamięci komputera. Powszechnie przyjmuje się tzw. formaty standardowe zgodne z pewną normą. Normą tą jest tzw. standard IEEE 754. Standard ten określa cztery podstawowe formaty binarne liczb rzeczywistych: -zwykły o o pojedynczej precyzji (SINGLE) - rozszerzony o pojedynczej precyzji (SINGLE EXTENDED) -zwykły o podwójnej precyzji (DOUBLE) - rozszerzony podwójnej precyzji (DOUBLE EXTENDED) s E- wykładnik w e-bitowym kodzie z obciążeniem +N f- ułamek ( m-bitowy kod modułu mantysy bez bitu ukrytego)

60 Język ANSI C typy rzeczywiste W standardzie IEEE 754 wymaga się, aby reprezentacje liczb były znormalizowane( nie dotyczy to liczb bardzo bliskich 0). Moduł mantysy ma być liczbąm z przedziału 1 M < 2 i obowiązuje konwencja ukrytej jedynki, co oznacza, że najstarszy bit mantysy jest równy 1, jednak nie jest pamiętany. Każdy moduł ma postać 1.bbb...b. Wartość liczby znormalizowanej można wyrazić następującą zależnością: ( ) s 1 (1+ f E F = ) 2

61 Język ANSI C typy rzeczywiste Wybrane formaty IEEE 754 Parametr Symbol SINGLE DOUBLE DOUBLE EXTENDED Rozmiar formatu n >=79 Rozmiar mantysy m 23(+1) 52(+1) >=64 Rozmiar wykładnika e 8 11 >=15 Obciążenie wykladnika N >=16383 Zakres wykładnika E [-126,127] [-1022,1023] [-(N-1),N] Dokładność ulp m+1 Zakres formatu R

62 Język ANSI C typy rzeczywiste Maksymalna ilość znaczących cyfr dziesiętnych, które można uzyskać w wydruku wynika z wielkości liczb dziesiętnych, która z kolei wynika z przeliczenia maksymalnych wartości mantysy na postać dziesiętną. Dla typu SINGLE ( w języku C odpowiada mu typ float) mantysa może reprezentować liczbę dziesiętną o wartości co umożliwia uzyskanie 6-7 cyfr dziesiętnych. Podobnie dla typu double mamy co daje cyfr dziesiętnych

63 Język ANSI C typy rzeczywiste Dla typu long double mamy czyli cyfr dziesiętnych. Podstawowe formaty wydruku liczb rzeczywistych w języku C to - format stałoprzecinkowy - m.dd..ddd - format zmiennoprzecinkowy ( notacja inżynierska) m.d...d e xx ± lub m.d...d e xxxx ± ( zamiast e może też być stosowane E).

64 Język ANSI C typy rzeczywiste Wybrane zasady tworzenia opisu formatu w łańcuchu formatującym (pełny opis w B.W. Kernighan, D.M. Ritchie, Język ANSI C, Dodatek B, Pkt. B1.2 Formatowanie wyjście) Przykład. double x=12.348; printf( \n x=%10.2lf, x); Opis formatu rozpoczyna się znakiem %, liczba 10 oznacza minimalną szerokość pola wydruku, liczba 2 ilość drukowanych miejsc po kropce dziesiętnej, a lf oznacza wydruk wartości typu double. W ogólnym przypadku pomiędzy znakiem % a znakiem przekształcenia mogą wystąpić - modyfikatory( umieszczane w dowolnej kolejności), które wpływają na postać wydruku:

65 Język ANSI C typy rzeczywiste Modyfikatory te to: -znak minus (-) powodujący dosunięcie wydruku do lewego krańca pola - znak plus (+) wypisanie liczby zawsze ze znakiem - odstęp poprzedzenie wyniku znakiem odstępu, jeżeli pierwszym drukowanym znakiem nie jest plus lub minus -znak zero (0) uzupełnienie liczby wiodącymi zerami do pełnego rozmiaru pola Następnym znakiem jest liczba określająca minimalny rozmiar pola. Przekształcony argument zostanie wydrukowany w polu o ilości znaków nie mniejszej niż ta liczba. Jeżeli argument wymaga szerszego pola, to pole wydruku jest rozszerzane. Jeżeli argument jest krótszy, dopełniany jest spacjami z lewej strony (ew. w zależności od modyfikatora z prawej lub zerami). Kolejnym znakiem jest kropka, której następuje liczba oznaczająca precyzję czyli ilość cyfr po kropce dziesiętnej w specyfikacjach f, e i E.

66 Język ANSI C typy rzeczywiste Uwagi dodatkowe o formatach f, e i E Dla formatu f domyślną precyzją jest 6, przy precyzji zero opuszcza się kropkę dziesiętną. Dla formatu m.dddddde xx lub formatu m.dddddde ± xx domyślną precyzją ± ± jest 6 i przy precyzji zero również opuszcza się kropkę dziesiętną. Przykład. Formaty z zastosowaniem modyfikatorów. x= ; printf( \n x=% 020.4f,x);// uzupełnienie zerami printf( \n x=% +20.4f,x);// drukowanie znaku liczby printf( \n x=% -20.4f,x);//dosunięcie do lewego krańca pola Otrzymane wydruki: x= x= x=

67 Język ANSI C typy rzeczywiste Arytmetyczne funkcje standardowe ANSI C Standard ANSI/ISO C definiuje zawartość i postać standardowej biblioteki języka ANSI C. Standard określa zestaw funkcji, w który muszą być wyposażone kompilatory zgodne ze standardem. Kompilatory mogą też zawierać funkcje, które nie są określone w standardzie. Każda funkcja zdefiniowana w standardowej bibliotece języka C ma odpowiadający jej nagłówek, nagłówki te są zawarte w plikach nagłówkowych włączanych dyrektywą #include. Standard C89 zawiera następujące 22 standardowe funkcje arytmetyczne: acos cos fmod modf tan asin cosh frexp pow tanh atan exp ldexp sin atan2 fabs log sinh ceil floor log10 sqrt

68 Język ANSI C typy rzeczywiste acos double acos (double arg); long double acosl (long double arg); Funkcje te obliczają arcus cosinus arg. Argument musi należeć do przedziału [-1,1]. Jeżeli argument nie należy do tego przedziału, pojawi się błąd dziedziny (ang. domain error). asin double asin (double arg); long double asinl (long double arg); Funkcje te obliczają arcus sinus arg. Argument musi należeć do przedziału [-1,1]. Jeżeli argument nie należy do tego przedziału, pojawi się błąd dziedziny (ang. domain error).

69 Język ANSI C typy rzeczywiste atan double atan (double arg); long double atanl (long double arg); Funkcje atan and atanl dla argumentu rzeczywistego obliczają wartość arcusa tangensa (wynik w zakresie -pi/2 do pi/2). double atan2 (double y, double x); long double atan2l (long double y, long double x); Funkcje atan2 and atan2l dla argumentu rzeczywistego obliczają wartość arcusa tangensa y/x (wynik w zakresie -pi/2 do pi/2).

70 Język ANSI C typy rzeczywiste double ceil (double num); long double ceill (long double num); Funkcje zwracają (obliczają) najmniejszą liczbę całkowitą typu double nie mniejszą niż num. Np. Dla num 1.05 funkcja zwraca wartość 2.0, a dla -1.05, zwraca double cos (double arg); double cosl (long double arg); Funkcja ta zwraca cosinus arg. Kąt jest podawany w radianach. Zwracana wartość w zakresie [-1,1]. double cosh (double arg); long double coshl (long double arg); Funkcja ta zwraca cosinus hiperboliczny arg.

71 Język ANSI C typy rzeczywiste double exp (double num); long double expl (long double num); Funkcja oblicza. e x W pewnych sytuacjach argumenty przekazane do tych funkcji powodują nadmiar arytmetyczny lub wynik nie może zostać obliczony. Gdy powstaje nadmiar arytmetyczny, funkcja exp zwraca HUGE_VAL a expl zwraca _LHUGE_VAL. Rezultaty o bardzo dużej wartości powodują ustawienie zmiennej globalnej errno na ERANGE Result out of range. Przy niedomiarze arytmetycznym funkcje te zwracają 0.0, errno nie jest zmieniana. Traktowanie błędu dla tych funkcji może być zmienione poprzez funkcje _matherr and _matherrl.

72 Język ANSI C typy rzeczywiste /* _matherr example biblioteka standardowa C++ Builder 6.0*/ // przykład dla zaawansowanych przechwytywanie i korekcja błędu // dziedziny #include <math.h> #include <string.h> #include <stdio.h> int _matherr (struct _exception *a) { if (a->type == DOMAIN) if (!strcmp(a->name,"sqrt")) { a->retval = sqrt (-(a->arg1)); return 1; } return 0; } int main(void) { double x = -2.0, y; y = sqrt(x); printf("_matherr corrected value: %lf\n",y); return 0;

73 Język ANSI C typy rzeczywiste double fabs (double num); long double fabsl (long double num); Funkcje obliczają wartość bezwzględną argumentu num. double floor (double num); long double floorl (long double num); Funkcje te zwracają (obliczają) największą liczbę całkowitą nie większą niż num. Np. dla 1.05 funkcja zwraca wartość 1.0, a dla -1.05, zwraca double fmod (double a, double b); long double fmodl (long double a, long double b); Funkcje obliczają resztę z dzielenia a/b.

74 Język ANSI C typy rzeczywiste double frexp (double num, int *pexp); long double frexpl (long double num, int *pexp); Funkcje te rozkładają liczbę num na mantysę z przedziału [0.5,1.0] oraz wykładnik całkowity exp, takie że num=mantysa exp 2. Przykład. int exp, mantysa; double num=0.5; mantysa=frexp(num,&exp); double ldexp (double num, exp int exp); 2 long double ldexpl (long double num, int exp); Funkcje obliczają wartość wyrażenia num 2. exp

75 Język ANSI C typy rzeczywiste double log (double num); long double logl (long double num); Funkcje obliczają logarytm naturalny z num. Jeżeli num<0, występuje błąd dziedziny, dla num=0 błąd zakresu. double log10 (double num); long double log10l (long double num); Funkcje obliczają logarytm dziesiętny z num. Jeżeli num<0, występuje błąd dziedziny, dla num=0 błąd zakresu.

76 Język ANSI C typy rzeczywiste double modf (double num, int *pi); long double modfl (long double num, int *pi); Funkcje te rozkładają liczbę num na część całkowitą i część ułamkową. Funkcja zwraca część ułamkową, a część całkowitą wstawia do zmiennej wskazywanej przez wskaźnik pi. Przykład. int cz_calkowita,cz_ulamkowa; double num=0.5; cz_ulamkowa=modf(num,&cz_calkowita); double pow(double base, double exp); long double powl (long double base, long double exp ); Funkcje obliczają wartość base podniesioną do potęgi exp. Reguły obliczania takie jak dla funkcji exp. Jeżeli argument odpowiadający base przekazany do pow lub powl jest rzeczywisty i mniejszy od 0, a argument odpowiadający exp nie jest całkowity lub jeśli argument odpowiadający base jest równy 0 a argument odpowiadający exp jest mniejszy od 0, lub stosuje się wywołanie pow(0,0), zmienna globalna errno jest ustawiana na wartość EDOM Domain error..

77 Język ANSI C typy rzeczywiste double sin (double arg); long double sinl (long double arg); Funkcje te zwracają sinus arg. Kąt jest podawany w radianach. Zwracana wartość w zakresie [-1,1]. double sinh (double arg); long double sinhl (long double arg); Funkcje te zwracają sinus hiperboliczny arg. double sqrt (double arg); long double sqrtl (long double arg); Funkcja ta zwraca dodatni pierwiastek kwadratowy z arg. Jeżeli arg mniejszy od 0, zmienna globalna errno jest ustawiana na wartość EDOM Domain error.

78 Język ANSI C typy rzeczywiste double tan (double arg); long double tanl (long double arg); Funkcje te zwracają tangens arg. Wartość arg jest podawana w radianach. double tanh (double arg); long double tanhl (long double arg); Funkcje te zwracają tangens hiperboliczny arg.

79 Język ANSI C typy rzeczywiste Przykład. Napisać program obliczający dane wyrażenie dla zmiennych x i z typu double wprowadzanych z klawiatury. Przy wprowadzaniu danych sprawdzać czy dane reprezentują liczby, czy należą do dziedziny oraz czy nie nastąpi przekroczenie zakresu typu double. y = log sin x + tgx log ( x 1) e x ctgz π 3 x x

80 Język ANSI C typy rzeczywiste Przykład. Obliczanie wyrażenia ( wersja bez sprawdzania danych) #include <stdio.h> #include <conio.h> #include <math.h> int main(int argc, char* argv[]) { double x,z,p1,p2,p3,p4,p5,p6,q1,q2,q3,licznik,mianownik,wynik; int k; printf("\n Podaj x:"); scanf("%lf",&x); printf("\n Podaj z:"); scanf("%lf",&z); p1=fabs(sin(x)); p2=log10(p1); p3=fabs(tan(x)); p3=sqrt(p3); p4=fabs(pow(x,5)); p5=exp(p4); p6=floor(pow(3,x)); q1=log10(x-1)/log10(2); q2=pow(1/tan(z),1/3.0); q3=pow(m_pi,x);

81 Język ANSI C typy rzeczywiste // cz.2 programu obliczającego wyrażenie licznik=p2+p3+p5+p6; mianownik=q1+q2+q3; if (mianownik) { wynik=licznik/mianownik; printf("\n Wartosc wyrazenia wynosi=%f",wynik); getch(); } else { printf("\n Dzielenie przez zero"); getch(); } return 0; }

82 Język ANSI C typy rzeczywiste Dziedzina: a) ze względu na funkcję logarytm w liczniku x musi być różny od wielokrotności pi. b) ze względu na funkcję logarytm w mianowniku, musi być x>1. Ograniczenie na x wynika też z wartości przybieranych przez człon Musi być spełniona zależność e 5 x Graniczną wartość x możemy określić jako e x x = ln

83 Język ANSI C typy rzeczywiste // Fragment programu związany ze sprawdzaniem danych wejsciowych #include <stdio.h> #include <conio.h> #include <math.h> int main(int argc, char* argv[]) { double x,z,p1,p2,p3,p4,p5,p6,q1,q2,q3,licznik,mianownik,wynik; int k; do { printf("\n Podaj x:"); k= scanf("%lf,&x); fflush(stdin); if (k==0) printf( \n Niewlasciwy format liczby ); else if (x<=1 x==m_pi x>3.7) printf( \n x nie należy do dziedziny ); } while (k==0 x<=1 x==m_pi x>3.7 ); do { printf("\n Podaj z:"); k=scanf("%lf",&z); } while(!k fmod(z,m_pi)==0);

84 Język ANSI C typy rzeczywiste Z obliczaniem wyrażeń w języku C wiążą się trzy zagadnienia: a) problem kolejności obliczania podwyrażeń b) konwersja typów w wyrażeniach c) rzutowanie (zmiana typu wyrażenia) Ad a. Język C nie określa kolejności w jakiej są obliczane podwyrażenia danego wyrażenia. Kompilator ma więc swobodę w zmianie kolejności obliczania tak aby uzyskać zoptymalizowany kod. Przykładowo w wyrażeniu x=f1() +f2(); nie można określić czy funkcja f1 będzie wywołana jako pierwsza.

85 Język ANSI C typy rzeczywiste Ad.b. Jeżeli w wyrażeniu występują zmienne i stałe różnych typów, są one wszystkie przekształcane do jednego wspólnego typu. Kompilator przekształca wszystkie operandy do największego typu występującego w wyrażeniu. W pierwszym rzędzie wartości typu char i short int przekształcane są do typu int. Przekształcenia typów przebiegają zgodnie z powyższymi regułami: -jeżeli operand jest typu long double, to drugi operand jest przekształcany do typu long double, -jeżeli operand jest typu double, to drugi operand jest przekształcany do typu double, -jeżeli operand jest typu unsigned long, to drugi operand jest przekształcany do typu unsigned long, -jeżeli operand jest typu float, to drugi operand jest przekształcany do typu float, -jeżeli operand jest typu long int, to drugi operand jest przekształcany do typu long int,

86 Język ANSI C typy rzeczywiste Ad. b (ciąg dalszy-przekształcenia typów) -jeżeli operand jest typu unsigned int, to drugi operand jest przekształcany do typu unsigned int, Istnieje jednak pewien specjalny przypadek: jeżeli jeden operand jest typu long a drugi typu unsigned int, i wartości typu unsigned int nie można przedstawić przy użyciu typu long, wtedy oba operandy są przekształcane do typu unsigned int.

87 Język ANSI C typy rzeczywiste Ad. b (ciąg dalszy-przekształcenia typów) Po zastosowaniu powyższych reguł każda para operandów ma ten sam typ oraz wynik operacji jest tego samego typu, co typ obu operandów. Przykład. char ch=3; int i=5; float f=1.5; double d=2.5,wynik; wynik=(ch / i) + (f * d) - (f + i); int double float int double float double double

88 Język ANSI C typy rzeczywiste Ad.c. (rzutowanie) Typ wyrażenia można narzucić lub zmienić przy pomocy tzw. rzutowania. Ogólna postać rzutowania to: lub (typ) wyrażenie, typ ( wyrażenie) Rzutowanie jest operatorem o priorytecie takim jak pozostałe operatory jednoargumentowe.

89 Język ANSI C typy rzeczywiste Przykład. Napisać fragment programu określający procentową ilość udanych prób w stosunku do ogólnej ilości prób. // Przykład. Zmiana typu poprzez rzutowanie #include <stdio.h> #include <conio.h> #include <math.h> int main(int argc, char* argv[]) { int ilosc_prob, ilosc_udanych_prob; double udzial_procentowy; printf("\n Podaj ilosc prob :"); scanf("%d",&ilosc_prob); printf("\n Podaj ilosc udanych prob:"); scanf("%d",&ilosc_udanych_prob); udzial_procentowy= double (ilosc_udanych_prob)/ilosc_prob*100; printf("\n Udzial procentowy udanych prob=%6.2f%", udzial_procentowy); getch(); return 0; }

90 Język ANSI C instrukcje Instrukcja złożona (grupująca) Instrukcja złożona składa się z nawiasu klamrowego otwierającego, dowolnych instrukcji (mogą być również kolejne instrukcje złożone) i nawiasu klamrowego zamykającego: Przykład. Instrukcja złożona. { printf("instrukcja 1" ); printf("instrukcja 2\n"); } Wszystkie instrukcje w języku C z wyjątkiem instrukcji złożonej kończą się średnikiem Instrukcja złożona jest stosowana wtedy, gdy istnieje konieczność zgrupowania kilku instrukcji, tak aby były traktowane jako jedna instrukcja.

91 Język ANSI C instrukcje Instrukcja while Instrukcja while jest instrukcją iteracyjną, umożliwiającą powtarzanie pewnego ciągu operacji. Instrukcja while ma następującą postać: while (wyrażenie) akcja W instrukcji while najpierw określa się czy wyrażenie jest prawdziwe czy też fałszywe. C wymaga by wyrażenie było zawarte w nawiasach.. Jeżeli wyrażenie jest prawdziwe, wykonywana jest akcja i następuje powrót do obliczania wyrażenia. wyrażenie jest ponownie testowane i jeżeli jest prawdziwe znowu wykonywana jest akcja i następuje kolejny powrót do obliczania wyrażenia. Jeżeli jednak przy którymś obliczaniu wyrażenia, stwierdzone zostanie, że wyrażenie jest fałszywe, następuje natychmiastowe przejście do instrukcji znajdującej się po instrukcji while.

92 Język ANSI C instrukcje Akcja może się składać z jednej instrukcji lub też szeregu instrukcji zawartych w nawiasach { }. Użycie tych nawiasów jest konieczne jeśli akcja obejmuje więcej niż jedną instrukcję. Przykład. Instrukcja while. int x=0; while (x!= 2) x = x + 1; printf ( \n x = %d, x);

93 Język ANSI C instrukcje Fragment ten wydrukuje x = 2 Zmienna x jest inicjalizowana wartością 0 przy definicji. Ponieważ!= jest operatorem relacyjnym różne (nierówne), wyrażenie x!= 2 ma wartość prawda i wykonywane jest instrukcja x = x + 1, która dodaje 1 do x, i wynik umieszcza w x. Następuje powrót do obliczania wyrażenia po while. Wyrażenie x!= 2 jest prawdziwe (gdyż x równa się 1), więc znowu dodawane jest 1 do x i następuje powrót do obliczania wyrażenia po while. Wyrażenie x!= 2 jest teraz fałszywe (bo x równa się 2) więc zostanie wykonana instrukcja printf ( \n x = %d, x); która pisze x = 2

94 Język ANSI C instrukcje Instrukcja do while Instrukcja do while jest podobna do instrukcji while, z tą różnicą, że wyrażenie kontrolujące pętlę jest na końcu pętli. Cała pętla wykonywana jest przynajmniej raz. do akcja while (wyrażenie); Przy wykonywaniu pętli do while wykonywana jest najpierw akcja, a następnie wykonywane jest sprawdzenie, czy wyrażenie jest prawdziwe czy też nie. Jeżeli jest prawdziwe, następuje powrót do początku pętli. Jeżeli w którymś momencie wyrażenie staje się fałszywe, wykonywana jest pierwsza instrukcja występująca po pętli. Część pętli oznaczona jako akcja może być jedną instrukcją lub też grupą instrukcji zamkniętą w nawiasy { }.

95 Język ANSI C instrukcje Instrukcja do while jest użyteczna wtedy, gdy test w sposób naturalny znajduje się na końcu pętli. Przykładem takiej sytuacji może być weryfikacja wartości wprowadzanej przez użytkownika z klawiatury. Po wprowadzeniu wartości, jest ona sprawdzana. Jeżeli wartość jest niedopuszczalna przy danym formacie, użytkownik zachęcany jest do wprowadzenia innej wartości. Przykład. Użycie instrukcji do while do wprowadzenia liczby dodatniej. int wartosc, k; do { printf ( \npodaj liczbe calkowita: ); k = scanf ( %d, &wartosc); fflush(stdin); //Czyszczenie strumienia wejściowego } while (!k wartosc <=0);

96 Język ANSI C instrukcje Instrukcja warunkowa if Instrukcja warunkowa if umożliwia uzależnienie wykonania pewnej instrukcji od spełnienia pewnego warunku. Warunek ten jest reprezentowany przez wyrażenie umieszczone po słowie if. Wyrażenie to przybiera wartość prawda lub wartość fałsz (wszystkie wartości różne od 0 są w języku C traktowane jako prawda, wartość 0 jako fałsz). Instrukcja ta ma następującą postać if (wyrażenie) akcja;

97 Język ANSI C instrukcje Wyrażenie musi być zawarte w nawiasach. Aby wykonać if najpierw oblicza się wyrażenie i określa się czy jest prawdziwe czy też fałszywe. Jeżeli wyrażenie jest prawdziwe, zostaje wykonana akcja i sterowanie przechodzi do instrukcji programu umieszczonej po akcji. Jeżeli wyrażenie jest fałszywe, akcja zostaje pominięta i następuje przejście do instrukcji umieszczonej po akcji. Część if określona jako akcja składa się z pojedynczej instrukcji lub instrukcji złożonej (pewnej liczby instrukcji umieszczonych w nawiasach {}).

98 Język ANSI C instrukcje Przykład. Instrukcja if int kod; printf( \n Podaj kod: ); scanf( %d,&kod); if (kod= =1) printf ("\n warunek jest spełniony"); Jeżeli z klawiatury podano wartość 1, fragment programu drukuje napis warunek jest spełniony Nie należy mylić znaku = z parą znaków = =. Można wprawdzie napisać if (x=1), jednak wyrażenie po if jest tutaj równe 1 niezależnie od wartości x, więc instrukcja if nie będzie pełnić swojej roli.

99 Język ANSI C instrukcje Instrukcja if else Instrukcja ta ma następującą postać: if (wyrażenie) else akcja1 akcja2 Podobnie jak dla instrukcji if, najpierw obliczane jest wyrażenie po if. Jeżeli wyrażenie ma wartość logiczną prawda, wykonywana jest akcja1, natomiast jeżeli wyrażenie ma wartość fałsz, jest wykonywana akcja2.

100 Język ANSI C instrukcje Przykład. Instrukcja if else int kod; printf( \n Podaj kod ); scanf( %d,&kod); if (kod==3245) printf( \n Podano prawidłowy kod ); else printf( \n Kod nie jest poprawny );

101 Język ANSI C instrukcje Przykład. Instrukcja if else ze złożonymi instrukcjami po if i po else. int kod; printf( \n Podaj kod ); scanf( %d,&kod); if (kod!=2) { printf( \n Instrukcje te wykonują się gdy ); printf( \n zmienna kod ma wartość rozna od 2 ); } else { printf( \n Instrukcje te się wykonuja ); printf( \n gdy zmienna kod ma wartosc 2 ); }

102 Język ANSI C instrukcje Przykład. Określić napisy drukowane przez poniższy fragment programu dla zmiennej kod=1 i 2. int kod; printf( \n Podaj kod ); scanf( %d,&kod); if (kod==2) { printf( \n Matematyk ); if (kod==2) printf( artysta ); else printf( programista ); } else printf( \n Specjalista programista );

103 Język ANSI C instrukcje Instrukcje if zagnieżdżone W instrukcji takiej po if lub po else występuje kolejna instrukcja warunkowa if lub if else. Instrukcja taka ma budowę następującą: if (wyrażenie1) akcja1; else if (wyrażenie2) akcja2; else if (wyrażenie3)... else if (wyrażenie n) akcja n;

104 Język ANSI C instrukcje Działanie instrukcji if zagnieżdżone Instrukcja taka funkcjonuje w sposób następujący: jeżeli prawdziwy jest warunek pierwszy (wyrażenie1) to wykonywana jest akcja1 i następuje przejście do instrukcji umieszczonej po akcji n-tej. Ogólnie, jeżeli jest prawdziwe wyrażenie i-te, to jest wykonywana i-ta akcja i następuje przejście do instrukcji po wyrażeniu n-tym. Jest wykonywana tylko jedna akcja (grupa akcji w nawiasie klamrowym), pozostałe akcje są odrzucane.

105 Język ANSI C instrukcje Przykład. Instrukcja if zagnieżdżone. int kod; printf( \n Podaj kod ); scanf( %d,&kod); if (kod= =1) printf("akcja ta jest wykonywana gdy kod jest równy 1");/*instrukcja 1*/ else if (kod= =2) printf("akcja ta jest wykonywana gdy kod jest równy 2");/*instrukcja 2*/ else if (kod<=3) printf("akcja ta jest wykonywana gdy kod jest mniejszy równy 3");/*instrukcja 3*/ Gdy zmienna kod ma wartość 1, wykonywana jest instrukcja 1, pomimo że wyrażenie kod<=3 jest prawdziwe, jednak sterowanie do niego w tym przypadku nie dochodzi.

106 Język ANSI C instrukcje if (wyrażenie1) akcja1; else if (wyrażenie2) akcja2; else if (wyrażenie3)... else if (wyrażenie n) akcja n; else akcja; Instrukcja if else z akcją domyślną Akcja jest tutaj działaniem domyślnym, które jest wykonywane, gdy żadna z akcji od 1 do n nie zostanie wykonana.

107 Język ANSI C instrukcje Przykład. Instrukcja if else z akcją domyślną. int kod; printf( \n Podaj kod ); scanf( %d,&kod); if (kod= =1) printf( Akcja ta jest wykonywana, gdy kod jest rowny 1"); else if (kod= =2) printf("akcja ta jest wykonywana, gdy kod jest rowny 2"); else if (kod<=3) printf("akcja ta jest wykonywana gdy kod jest mniejszy lub else rowny 3"); printf("akcja ta jest wykonywana, gdy " "żadna z akcji 1, 2, 3 nie wykona się");

108 Język ANSI C operator? (wyrażenie warunkowe) Operator? pozwala na zastąpienie niektórych instrukcji if-else. Operator ten ma postać: wyrażenie1? wyrażenie2 :wyrażenie3 Operator ten działa w sposób następujący: najpierw jest obliczane wyrażenie1, jeśli ma ono wartość logiczną prawda, wtedy jest obliczane wyrażenie2 i staje się ono wartością całego wyrażenia, jeśli zaś wyrażenie1 ma wartość logiczną fałsz, obliczane jest wyrażenie3 i ono staje się wartością całego wyrażenia. Przykład. int x, y; x=5; y=x>10? 50 : 100;

109 Język ANSI C operator? (wyrażenie warunkowe) Przykład. z=a>b? a: b; // max(a,b) Powyższa instrukcja wyznacza większą z wartości a i b. Wyrażenie warunkowe może być stosowane wszędzie tam, gdzie w języku C może wystąpić wyrażenie. Priorytet operatora? jest względnie niski ( tuż nad operatorem przypisania) stąd nie jest konieczne stosowanie nawiasów, aby wymusić odpowiednią kolejność wykonywania operacji.

110 Język ANSI C operator przecinkowy Użycie operator przecinkowego jest stosowany przedstawić w sposób następujący: wyr1, wyr2,,wyrn Wyrażenia oddzielone przecinkami oblicza się od lewej do przy czym typem i wartością całego wyrażenia są typ i wartość wyrażenia wyrn. Przykład. int x, y; x= (y=15;y+1); Wartość x jest równa 16.

111 Język ANSI C operatory inkrementacji i dekrementacji Dla operatorów tych stosowane są następujące symbole dla operatora inkrementacji (zwiększania), oraz -- - dla operatora dekrementacji ( zmniejszania). Operatory te zwiększają wartość swego argumentu o 1 (operator ++), lub też zmniejszają o 1 ( operator --). Operatory te mogą być używane w następujących formach: ++ operand operator preinkrementacji, operand operator postinkrementacji, -- operand - -- operator predekrementacji, operand operator postdekrementacji,

112 Język ANSI C operatory inkrementacji i dekrementacji Operand w powyższych wyrażeniach z operatorami ++ lub -- może być typu arytmetycznego lub wskaźnikowego, musi być jednak tzw. Lwartością (ang. Lvalue), tzn. musi reprezentować pewną lokację pamięci. Użycie powyższych operatorów powoduje dwa efekty: -wartość operandu jest modyfikowana ( zwiększana lub zmniejszana o 1), - wyrażeniu z operandem jest przypisywana pewna wartość.

113 Język ANSI C operatory inkrementacji i dekrementacji Działanie operatora postinkrementacji (operand ++). - wartość operandu jest zwiększana o 1, - wartość wyrażenia operand ++ jest równa początkowej wartości operandu. Przykład. x=3; y=x++; y=x++; x jest zwiększany o1 wartość wyrażenia jest równa (x=4) początkowej wartości x ( y=3)

114 Język ANSI C operatory inkrementacji i dekrementacji Działanie operatora preinkrementacji (++operand). - wartość operandu jest zwiększana o 1, - wartość wyrażenia ++operand jest równa zwiększonej o 1 wartości operandu. Przykład. x=3; y=++x; y=++x; x jest zwiększany o1 wartość wyrażenia jest równa (x=4) zwiększonej wartości x ( y=4)

115 Język ANSI C operatory inkrementacji i dekrementacji Działanie operatora postdekrementacji (operand - -). - wartość operandu jest zmniejszana o 1, - wartość wyrażenia operand -- jest równa początkowej wartości operandu. Przykład. x=3; y=x--; y=x--; x jest zmniejszany o1 wartość wyrażenia jest równa (x=2) początkowej wartości x ( y=3)

116 Język ANSI C operatory inkrementacji i dekrementacji Działanie operatora predekrementacji (- -operand). - wartość operandu jest zmniejszana o 1, - wartość wyrażenia operand -- jest zmniejszonej o 1 wartości operandu. Przykład. x=3; y=--x; y=--x; x jest zmniejszany o1 wartość wyrażenia jest równa (x=2) zmniejszonej wartości x ( y=2)

117 Język ANSI C instrukcje Przykład. Użycie operatorów preinkrementacji i postinkrementacji. #include <stdio.h> #include <conio.h> int main(int argc, char* argv[]) { int x,y; x= (y=15,y=y+1,y=y+1,++y); printf("\n x=%d",x); x= (y=15,y=y+1,y=y+1,y++); printf("\n x=%d",x); getch(); } return 0;

118 Język ANSI C instrukcje Instrukcja for Instrukcja for, zwana też pętlą for, jest instrukcją iteracyjną podobnie jak instrukcje while i do while. Stosowana jest ona do wielokrotnego powtarzania pewnego segmentu kodu. Pętla for w języku C jest podobna do pętli for w innych językach programowania, posiada jednak znacznie większe możliwości. Pętla for ma następującą postać: for (wyr1; wyr2; wyr3) akcja

119 Język ANSI C instrukcje Wyrażenie wyr1 jest stosowane do inicjalizacji pętli, wyrażenie wyr2 jest używane do testowania warunku kontynuacji pętli, wyrażenie wyr3 służy do uaktualniania pętli. Akcja stanowi treść (ciało) pętli. Działanie: Krok1. Obliczenie wyrażenia wyr1 (jest ono obliczane jeden raz i tylko jeden raz na początku działania pętli). Krok 2a. Obliczenie wyr2 i sprawdzenie czy wyrażenie wyr2 jest prawdziwe czy też fałszywe. Krok 2b. Jeżeli wyr2 jest fałszywe, zakończenie pętli i przejście do instrukcji umieszczonej bezpośrednio po pętli. Jeżeli wyr2 jest prawdziwe, wykonanie akcji. Krok 3. Obliczenie wyrażenia wyr3, następnie przejście do Kroku 2.

120 Język ANSI C instrukcje Ciało pętli (akcja) może być pojedynczą instrukcją albo też instrukcją złożoną (grupującą), jeśli jest konieczne wykonanie w pętli więcej niż jednej instrukcji Przykład. Użycie pętli for. int sum=0; int i; for (i=1; i<=4;i=i+1) sum=sum+i; W powyższym przykładzie w pętli for najpierw jest wykonywana instrukcja i=1, następnie sprawdzany jest warunek i<=4, dla i=1 jest on prawdziwy, więc wykonywana jest instrukcja sum=sum+i; i następuje przejście do instrukcji i=i+1, i przyjmuje wartość 2, i wykonywane jest sprawdzenie i<=4, warunek jest prawdziwy, więc ponownie wykonywana jest instrukcja sum=sum+i. Gdy i przybierze wartość 5, warunek i<=4 nie spełniony i pętla kończy się.

sem. II(język C, cz. I) Dr inż. M. Czyżak

sem. II(język C, cz. I) Dr inż. M. Czyżak sem. II(język C, cz. I) Dr inż. M. Czyżak Literatura: 1. A. R. Neibauer, Języki C/C++, Twój pierwszy program, Help, 1995 (obecnie wyd. IV) 2. C. Sexton, Język C - to proste, RM, W-wa, 2001. 3. G. Perry,

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

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

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

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

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

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku

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

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

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

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

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

( 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

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

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

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

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

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

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

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

Programowanie w języku C++

Programowanie w języku C++ INE 2022 JĘZYKI PROGRAMOWANIA 1 INE 0050 WSTĘP DO PROGRAMOWANIA Programowanie w języku C++ ( wykł. dr Marek Piasecki ) Literatura: do wykładu dowolny podręcznik do języka C++ na laboratoriach Borland C++

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

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

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

Proste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3,

Proste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3, WYKŁAD 1. PODSTAWY 1_1. Typy zmiennych Proste typy zmiennych języka C++ Nazwa typu (nazwa skrócona) Rozmiar (bajtów) unsigned char 1 signed char (char) unsigned short int (unsigned) signed short int (int)

Bardziej szczegół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

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

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 8/9 Wykład nr 4 (.3.9) Rok akademicki 8/9, Wykład nr 4 /33 Plan wykładu

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

Funkcje matematyczne w C. Programowanie w C Marek Pudełko

Funkcje matematyczne w C. Programowanie w C Marek Pudełko Funkcje matematyczne w C Programowanie w C Marek Pudełko Używanie funkcji matematycznych W standardowym ANSI C jest możliwe skorzystanie z 22 funkcji matematycznych. By to zrobić, do programu należy włączyć

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

#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

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2018/2019 Wykład nr 7 (12.04.2019) Rok akademicki 2018/2019, Wykład

Bardziej szczegółowo

do instrukcja while (wyrażenie);

do instrukcja while (wyrażenie); Instrukcje pętli -ćwiczenia Instrukcja while Pętla while (póki) powoduje powtarzanie zawartej w niej sekwencji instrukcji tak długo, jak długo zaczynające pętlę wyrażenie pozostaje prawdziwe. while ( wyrażenie

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

Programowanie strukturalne. dr inż. Tadeusz Jeleniewski

Programowanie strukturalne. dr inż. Tadeusz Jeleniewski Wykład 2 Wejście i wyjście - funkcje scanf i printf Operator przypisania prostego Operatory arytmetyczne Kolejność wykonywania operacji Operatory przypisania arytmetycznego Operatory inkrementacji/dekrementacji

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

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

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

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

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

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

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

Wyrażenia arytmetyczne

Wyrażenia arytmetyczne Wyrażenia arytmetyczne Do budowania wyrażeń w języku C używa się operatorów jednoargumentowych oraz dwuargumentowych. Podstawowy operator jednoargumentowy to operator zmiany znaku (-), który jest prawostronnie

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

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1 Operatory Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne

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

Program w C. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka :28:

Program w C. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka :28: Program w C wer. 10 z drobnymi modyfikacjami! Wojciech Myszka 2015-05-02 18:28:29 +0200 Tak wygląda program w języku C 1 / Hello World in C, Ansi s t y l e / 2 #include < s t d i o. h> 3 i n t main ( void

Bardziej szczegółowo

Program w C. wer. 12 z drobnymi modyfikacjami! Wojciech Myszka :59:

Program w C. wer. 12 z drobnymi modyfikacjami! Wojciech Myszka :59: Program w C wer. 12 z drobnymi modyfikacjami! Wojciech Myszka 2018-06-29 14:59:06 +0200 Tak wygląda program w języku C 1 /* H e l l o World i n C, Ansi s t y l e */ 2 # i n c l u d e < s t d i o. h> 3

Bardziej szczegółowo

Stałe. Funkcje standardowe. Niektóre stałe i funkcje z pliku nagłówkowego math.h. M_E M_LOG2E M_LOG10E M_LN2 M_LN10 M_PI M_PI_2

Stałe. Funkcje standardowe. Niektóre stałe i funkcje z pliku nagłówkowego math.h. M_E M_LOG2E M_LOG10E M_LN2 M_LN10 M_PI M_PI_2 Niektóre stałe i funkcje z pliku nagłówkowego math.h. Stałe Identyfikator M_E M_LOG2E M_LOG10E M_LN2 M_LN10 M_PI M_PI_2 M_PI_4 M_1_PI M_2_PI M_1_SQRTPI M_2_SQRTPI Znaczenie e log 2 (e) log 10 (e) ln(2)

Bardziej szczegółowo

Wstęp do wskaźników w języku ANSI C

Wstęp do wskaźników w języku ANSI C Wstęp do wskaźników w języku ANSI C / Materiał dydaktyczny pomocniczy do przedmiotu Informatyka sem.iii kier. Elektrotechnika/ 1. Wprowadzenie W języku ANSI C dla każdego typu X (wbudowanego, pochodnego,

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

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

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch. Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania

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

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10). Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych

Bardziej szczegółowo

Laboratorium 1: Podstawy języka c. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Laboratorium 1: Podstawy języka c. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski Laboratorium 1: Podstawy języka c dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 12 października 2017 1. Wprowadzenie Instrukcja zawiera informacje o podstawowych konstrukcjach w języku c. Część pierwsza

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

operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania, odejmowania

operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania, odejmowania http://torus.uck.pk.edu.pl/~fialko Operatory, wyrażenia, instrukcja przypisania Operatory arytmetyczne * / + - % operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania,

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

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

for (i=0; i<10; i=i+1) instrukcja; instrukcja zostanie wykonana 10 razy for (inicjalizacja; test; aktualizacja) instrukcja;

for (i=0; i<10; i=i+1) instrukcja; instrukcja zostanie wykonana 10 razy for (inicjalizacja; test; aktualizacja) instrukcja; Rok akademicki 2014/2015, Pracownia nr 5 2/36 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2014/2015 Pracownia

Bardziej szczegółowo

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

Bardziej szczegółowo

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od

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

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna Dane, informacja, programy Kodowanie danych, kompresja stratna i bezstratna DANE Uporządkowane, zorganizowane fakty. Główne grupy danych: tekstowe (znaki alfanumeryczne, znaki specjalne) graficzne (ilustracje,

Bardziej szczegółowo

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury, , Programowanie, uzupełnienie notatek: dr Jerzy Białkowski , 1 2 3 4 , Wczytywanie liczb , Wczytywanie liczb 1 #include 2 #include < s t d l i b. h> 3 4 int main ( ) { 5 int rozmiar, numer

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

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

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI Ćwiczenia i laboratorium 2 Kolokwia zaliczeniowe - 1 termin - poniedziałek, 29 stycznia 2018 11:30

Bardziej szczegółowo

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia. ARYTMETYKA BINARNA ROZWINIĘCIE DWÓJKOWE Jednym z najlepiej znanych sposobów kodowania informacji zawartej w liczbach jest kodowanie w dziesiątkowym systemie pozycyjnym, w którym dla przedstawienia liczb

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

C++ wprowadzanie zmiennych

C++ wprowadzanie zmiennych C++ wprowadzanie zmiennych Każda zmienna musi być zadeklarowana, należy określić jej nazwę (identyfikator) oraz typ. Opis_typu lista zmiennych Dla każdej zmiennej rezerwowany jest fragment pamięci o określonym

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji? Zadanie 01 W przedstawionym ponizej programie w jezyku ANSI C w miejscu wykropkowanym brakuje jednej linii: #include... int main() { printf("tralalalala"); return 0; } A. B. "iostream" C.

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

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne 1. Bit Pozycja rejestru lub komórki pamięci służąca do przedstawiania (pamiętania) cyfry w systemie (liczbowym)

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

Wstęp do informatyki- wykład 7

Wstęp do informatyki- wykład 7 1 Wstęp do informatyki- wykład 7 Operatory przypisania, złożone operatory przypisania, Pętla while i do..while Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania.

Bardziej szczegółowo

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76 . p. 1 Algorytmem nazywa się poddający się interpretacji skończony zbiór instrukcji wykonania zadania mającego określony stan końcowy dla każdego zestawu danych wejściowych W algorytmach mogą występować

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ęzyki i paradygmaty programowania

Języki i paradygmaty programowania Języki i paradygmaty programowania Instytut Teleinformatyki ITI PK Kraków marzec 2012 Spis rzeczy 1 Operatory w C/C++ Operatory Operatory w C/C++ operator - rodzaj funkcji wbudowanej w język; różnica notacja

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

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

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

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = Ala ma ; 1 2 Operacje na zmiennych Kolejność operacji: deklaracja, inicjacja bool decyzja; int licznik, lp; double stvat, wartpi; char Znak; string S1, S2 = "Kowalski"; przypisanie wartości podstawienie decyzja

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

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

WHILE (wyrażenie) instrukcja;

WHILE (wyrażenie) instrukcja; INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while

Bardziej szczegółowo

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 Standardy reprezentacji wartości całkowitoliczbowych

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

3. Instrukcje warunkowe

3. Instrukcje warunkowe . Instrukcje warunkowe Przykłady.1. Napisz program, który pobierze od użytkownika liczbę i wypisze na ekran słowo ujemna lub nieujemna, w zależności od tego czy dana liczba jest ujemna czy nie. 1 #include

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