Wst p do C i typy danych

Podobne dokumenty
Typy danych i formatowanie

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++

Styl programowania. komentowanie programów nazywanie zmiennych, typów i funkcji rozmieszczenie tekstu w plikach źródłowych. M. Kotowski.

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

Zmienne, stałe i operatory

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

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

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

Wstęp do Programowania, laboratorium 02

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

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

1 Podstawy c++ w pigułce.

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ

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

Programowanie strukturalne i obiektowe

Proces tworzenia programu:

Wstęp do programowania

Przetwarzanie sygnaªów

Podstawy programowania C. dr. Krystyna Łapin

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

1 Podstawy c++ w pigułce.

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

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Przykªadowe tematy z JiMP

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

2 Przygotował: mgr inż. Maciej Lasota

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

Język C zajęcia nr 11. Funkcje

Wstęp do programowania 1

Proste algorytmy w języku C

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

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

Podstawy programowania w języku C

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

Wska¹niki, tablice dynamiczne wielowymiarowe

tablica: dane_liczbowe

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

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

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

Funkcja (podprogram) void

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

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

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Programowanie i struktury danych

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

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

Programowanie Proceduralne

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

Wzorce projektowe strukturalne cz. 1

Lekcja 12 - POMOCNICY

Proste algorytmy w języku C

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

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Tablice i funkcje. Marcin Makowski. 26 listopada Zak lad Chemii Teoretycznej UJ

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

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

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

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

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.

Podstawy Programowania.

Lekcja 9 Liczby losowe, zmienne, staªe

Programowanie strukturalne język C - wprowadzenie

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

P tle. Rozdziaª Wst p. 4.2 P tle P tla for(...);

Wskaźniki w C. Anna Gogolińska

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

Podstawy programowania w języku C i C++

1. Wprowadzanie danych z klawiatury funkcja scanf

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017

Co nie powinno być umieszczane w plikach nagłówkowych:

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

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

Tablice wielowymiarowe. Przykład tablica 2-wymiarowa. Przykład. Przykład 3-wymiarowy. Tak naprawdę nie istnieją w C! Rozważmy tablicę o rozmiarze 3x2

Stałe i zmienne znakowe. Stała znakowa: znak

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Tablice, funkcje - wprowadzenie

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

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

Wstęp do programowania. Wykład 1

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Podstawy Programowania C++

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

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

KURS C/C++ WYKŁAD 8. Deklaracja funkcji informuje komplilator jaką wartość funkcja będzie zwracała i jakiego typu są jej argumenty.

Struktury, unie, formatowanie, wskaźniki

C-struktury wykład. Dorota Pylak

DANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

J zyk C dla sterowników programowalnych GeFanuc

#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 ); }

Podstawy programowania w języku C

Kompilowanie programów

Transkrypt:

Wst p do C i typy danych Elwira Wachowicz elwira@ifd.uni.wroc.pl 21 marca 2013 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 1 / 25

Typowy program w C Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 2 / 25

Prosty przykªad #include <stdio.h> int main(void) /* prosty program */ { int num; /* definiujemy zmienna o nazwie num */ num = 1; /* przypisujemy jej wartosc */ } printf("jestem prostym "); /* korzystamy z funkcji printf() */ printf("komputerem.\n"); printf("moja ulubiona liczba to %d, bo jest pierwsza.\n",num); return 0; Po wykonaniu dostaniemy: Jestem prostym komputerem. Moja ulubiona liczba to 1, bo jest pierwsza. Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 3 / 25

Elementy programu Dyrektywy #include i pliki nagªówkowe Wª czaj pliki nagªówkowe (ang. include les) zawieraj ce informacje o funkcjach umieszczonych w dodatkowych bibliotekach. Funkcja main() Program w C zawsze zaczyna dziaªanie od funkcji main() zawsze musi istnie taka funkcja. Zwraca do systemu operacyjnego liczby caªkowite (int) i nie posiada»adnych argumentów (void). Komentarze Maj na celu uªatwienie zrozumienia programu. Mo»na dodawa w dowolnym miejscu. \* Ten komentarz mie±ci si w dwóch linijkach *\ Klamry: {... } Oznaczaj pocz tek i koniec funkcji. Wydzielaj bloki instrukcji w ramach jednej funkcji. Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 4 / 25

Deklaracje zmiennych Instrukcje deklaracji nale» do najwa»niejszych elementów C. Odpowiadaj za rezerwacj obszaru w pami ci dla zmiennej w zale»no±ci od jej typu. Znak ±rednika jest cz ±ci instrukcji. W C wszystkie zmienne musz zosta zadeklarowane, zanim zostan u»yte. Nazwy zmiennych powinny by znacz ce. Mog zawiera : wielkie i maªe litery, cyfry oraz _. Maksymalna dªugo± nazwy zmiennej zale»y od kompilatora (ANSI C: 31 znaków). Nazwy prawidªowe samuraj cat1 Super_Extra _kcab Nazwy nieprawidªowe $Z]** 1cat Super-Extra don't Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 5 / 25

Powody deklarowania zmiennych Umieszczenie wszystkich zmiennych w jednym miejscu uªatwia zrozumienie sensu programu. Komentarze! Skªania do planowania, przed wpisywaniem programu. Jakie potrzebne informacje na wej±ciu? Co zwraca na wyj±ciu? Jaki sposób reprezentacji najlepszy? Pozwala unikn literówek we wpisywaniu nazw zmiennych. PROMIEN1 = 20.4; OBWOD = 6.28 * PROMIENl; Program w C nie skompiluje si, je±li wszystkie zmienne nie zostan zadeklarowane. Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 6 / 25

Elementy programu c.d. Przypisanie Przypisanie zmiennej o danej nazwie jakiej± warto±ci. Mo»na t warto± zmienia wielokrotnie. Funkcja printf() Tekst w nawiasie przekazany z funkcji printf() do funkcji main(). Mo»e zawiera znaki steruj ce: \n przej±cie do nowej linii lub \t tabulator. Sekwencja %d: w którym miejscu i jak maj by wy±wietlane zmienne. Instrukcja zwrotu return Funkcja main() ma zwróci po wykonaniu si liczb caªkowit. Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 7 / 25

Jaki powinien by program w C czytelny ªatwy do testowania i usuwania bª dów poprawny i niezawodny ªatwy do modykowania i rozszerzania przeno±ny defensywny spójny stylistycznie efektywny uniwersalny Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 8 / 25

Jak uczyni program czytelnym? Wybór znacz cych nazw zmiennych. Komentarze. Puste wiersze oddzielaj ce cz ±ci funkcji stanowi cych logiczn caªo±. Jedna instrukcja w jednej linijce kodu. int main( void ) { int cztery; cztery = 4 ; printf( "%d\n", cztery); return 0;} Wci cia instrukcji nale» cych do tej samej funkcji. Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 9 / 25

Po polsku czy po angielsku? Konsekwentnie: albo po polsku albo po angielsku. Unika jednoczesnego u»ywania np. zmiennych Licznik i Counter, funkcji GetData i WczytajPlik czy nawet ReadPlik Mo»na przyj zasad, jak wybraª tªumacz ksi»ki Kernighanana i Ritchiego: zmienne po angielsku, komentarze po polsku. Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 10 / 25

Nagªówki komentarzowe funkcji nazwa funkcji krótki opis operacji realizowanych przez funkcj lista argumentów funkcji i ich opis lista zmiennych zewn trznych, z których korzysta funkcja lista zmiennych zewn trznych modykowanych przez funkcj opis warto±ci zwracanej (ewentualnie informacje o bª dach wykonywania) Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 11 / 25

Nagªówki komentarzowe funkcji \*------------------------------------------- SearchInString FUNKCJA ZNAJDUJE Z CI GU LICZB WYST PIE CI GÓW SPEŠNIAJ CYCH WZÓR WYSZUKIWANIA ARGUMENTY: Text - ADRES CI GU PRZESZUKIWANEGO Image - ADRES WZORU WYSZUKIWANIA (DOPUSZCZA ZNAKI * I?) Status - PARAMETR PRZESZUKIWANIA - W_PRZOD, W_TYL - LITERY_WIELKIE, LITERY_MALE - CALE_WYRAZY (ZDEFINIOWANE W SEARCH.H) WARTO ZWRACANA: LICZBA ZNALEZIONYCH WYST PIE -------------------------------------------*/ int SearchInString (const char *Text, const char *Image, int Status) {... } Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 12 / 25

Komentarz nie powinien powtarza tego co opisano w kodzie: Counter++; /* ZWI KSZENIE ZMIENNEJ Counter o 1 */ Lepiej: Counter++; /* UAKTUALNIENIE LICZBY ZLICZANYCH DOKUMENTÓW */ Przy zªo»onych instrukcjach dobrze komentowa nawiasy klamrowe: while ( GetEmployee()!= 0 ) {... if ( EmployeeNumber!= 0 ) {... } /* if ( EmployeeNumber!= 0 ) */... } /* while ( GetEmployee()!= 0 ) */ Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 13 / 25

Nazywanie zmiennych i funkcji Nazwy zmiennych i funkcji powinny odzwierciedla ich sens nazwy o pokrywaj cym si zasi gu powinny ró»ni si w istotny sposób, np.: Source i Dist zamiast String1 i String2 nazwy nie powinny wygl da podobnie LastWord i LostWord counter i Counter WordCounter i Word_counter Index i Indeks Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 14 / 25

Wci cia nie wcina si deklaracji i denicji zewn trznych wcina si tre± funkcji i zagnie»d»enia bloków (for, if, do, while, switch) najlepiej dla wci przyj pozycj 2, 4 lub 8 while (Expr) while (Expr) while (Expr) { { { x = y; x = y; x = y;......... } } } Koniec bloków za gª boko......... } } }}} } } } } Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 15 / 25

Jak uczyni program czytelnym przykªad /* st_cale.c -- zmienia stopy na cale */ #include <stdio.h> int main(void) { int stopy, cale; } stopy = 2; cale = 12 * stopy; printf("%d stopy równaj si %d calom.\n", stopy, cale); return 0; Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 16 / 25

Wiele funkcji /* dwie_fun.c -- program wykorzystuje dwie funkcje w jednym pliku */ #include <stdio.h> void lokaj(void); /* Prototyp funkcji wedªug ANSi C */ int main(void) { printf("zawezw funkcj lokaja.\n"); lokaj(); printf("tak. Przynie± mi herbat i i zapisywalne CD-ROM-y.\n"); return 0; } void lokaj(void) /* pocz tek deklaracji funkcji */ { printf("pan wzywaª?\n"); } Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 17 / 25

Usuwanie bª dów Bª dy skªadniowe: nieprzestrzeganie zasad j zyka C. Analogiczne do bª du gramatycznego prawidªowe symbole w nieprawidªowym miejscu. Usuwanie: Nale»y uwa»nie przejrze kod ¹ródªowy. Zbada bª dy znalezione przez kompilator. Bª dy semantyczne: bª dy w znaczeniu, przy poprawnej skªadni. Kompilator nie potra wykry bª dów semantycznych. Znajdowanie: ledzenie dziaªania programu. Umieszczanie w programie dodatkowych instrukcji printf(), pozwalaj cych ±ledzi warto±ci wybranych zmiennych w kluczowych miejscach. Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 18 / 25

Usuwanie bª dów przykªad /* niedobry.c -- program z bª dami */ #include <stdio.h> int main(void) ( int n, int n2, int n3; /* ten program zawiera kilka bª dów n = 5; n2 = n * n; n3 = n2 * n2; printf("n = %d, n do kwadratu = %d, n do sze±cianu = %d\n", n, n2, n3) return 0; ) Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 19 / 25

/* zloto.c -- warto± Twojego ci»aru w zªocie */ #include <stdio.h> int main(void) { float ciezar; /* ci»ar u»ytkownika */ float wartosc; /* warto± u»yrkownika w zªocie */ printf("czy jeste± wart tyle, co Twój ci»ar w zªocie?\n"); printf("sprawd¹my.\n"); printf("podaj swój ci»ar w kilogramach: "); /* pobranie danych od u»ytkownika */ scanf("%f", &ciezar); /* zakªadamy,»e cena zªota wynosi 4233 zª/uncj */ /* 32.151 to przelicznik kilograma na uncj troy */ wartosc = 4233.0 * ciezar * 32.151; } printf("twój ci»ar w zªocie jest wart %.2f zª.\n", wartosc); printf("z pewno±ci jeste± tyle wart/-a! W razie spadku cen zªota\n"); printf("jedz wi cej, aby utrzyma swoj warto±.\n); return 0; Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 20 / 25

Sªowa kluczowe typów danych Pierwotne sªowa C int long short unsigned char float double ANSI C signed void const volatile Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 21 / 25

Typy caªkowite a zmiennoprzecinkowe Liczba caªkowita nie posiada cz ±ci uªamkowej w przeciwie«stwie do zmiennoprzecinkowej. Liczby zmiennoprzecinkowe mog reprezentowa wi kszy zakres ni» liczby caªkowite. Przy niektórych dziaªaniach arytmetycznych na du»ych liczbach mo»liwa utrata dokªadno±ci. Liczby zmiennoprzecinkowe nie mog reprezentowa wszystkich liczb rzeczywistych przybli»enie. Dziaªania na liczbach zmiennoprzecinkowych pochªania zwykle wi cej czasu. Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 22 / 25

Typ int Typ int jest liczb caªkowit ze znakiem (ang. signed integer ). Zakres zale»y od systemu, minimalny: 32768 do +32767. Deklaracja i inicjalizacja zmiennej int eligent; int lwy = 21; int tygrysy = 32, lamparty = 14; int konie, krowy = 84; /* poprawne, ale kiepski styl */ Inne typy caªkowite Typ short int lub short mo»e (lecz nie musi) zajmowa mniej pami ci ni» int. Pozwala zaoszcz dzi pami. Posiada znak. Typ long int lub long mo»e zajmowa wi cej pami ci ni» int wi ksze liczby caªkowite. Posiada znak. Typ unsigned int lub unsigned sªu»y do deklaracji zmiennych, które przyjmuj tylko warto±ci nieujemne. Przesuwa zakres liczb, np. dla dubajtowych na: 0 do 65535. Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 23 / 25

Wy±wietlanie warto±ci typu int /* print1.c -- przedstawia niektóre wªa±ciwo±ci funkcji printf() */ #include <stdio.h> int main(void) { int dziesiec = 10; printf("wªa±ciwy sposób: "); printf("%d minus %d równa si %d\n", dziesiec, 2, dziesiec - 2); printf("bª dny sposób: "); printf("%d minus %d równa si %d\n", dziesiec); // brakuje dwóch argumentów return 0; } Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 24 / 25

Przepeªnienie zmiennych caªkowitych /* zaduzo.c -- przekracza maksymalny rozmiar int */ #include <stdio.h> int main(void) { int i = 2147483647; unsigned int j = 4294967295; printf("%d %d %d\n", i, i + 1; i + 2); printf("%u %u %u\n", j, j + 1; j + 2); return 0; } Wynik dziaªania tego programu: 2147483647-2147483648 -2147483647 4294967295 0 1 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Wst p do C i typy danych 21 marca 2013 25 / 25