. Podstawy Programowania 1. Wstęp. Arkadiusz Chrobot. 15 października 2015



Podobne dokumenty
Podstawy Programowania 1 Wstęp. Plan. Informacje organizacyjne. Bibliografia Literatura Podstawowa. Notatki. Notatki. Notatki.

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

Wstęp do programowania

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

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

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

1 Podstawy c++ w pigułce.

Typy danych. Przemysław Gawroński D-10, p lutego Wykład 1. (Wykład 1) Typy danych 25 lutego / 11

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

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

Algorytm. a programowanie -

Język ludzki kod maszynowy

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

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

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

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

Wstęp do programowania. Wykład 1

Programowanie komputerów

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Podstawy i języki programowania

Podstawy programowania w C++

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

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

Podstawy programowania w języku C

Techniki multimedialne

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

1 Podstawy c++ w pigułce.

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

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

Definicje. Algorytm to:

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

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Typ użyty w deklaracji zmiennej decyduje o rodzaju informacji, a nazwa zmiennej symbolicznie opisuje wartość.

Zmienne, stałe i operatory

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

Powtórka algorytmów. Wprowadzenie do języka Java.

KARTA KURSU. Wstęp do programowania

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

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

Proste algorytmy w języku C

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

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

L6.1 Systemy liczenia stosowane w informatyce

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Metodyki i techniki programowania

Wprowadzenie do języka Java

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

Wykład 1

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

Podstawy Programowania Algorytmy i programowanie

Systemy liczenia. 333= 3*100+3*10+3*1

Języki programowania zasady ich tworzenia

Wstęp do informatyki- wykład 2

Proces tworzenia programu:

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

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

( wykł. dr Marek Piasecki )

Kodowanie informacji. Przygotował: Ryszard Kijanka

Podstawowe typy zmiennych

Praktyka Programowania

Technologie informacyjne - wykład 12 -

Podstawy programowania C. dr. Krystyna Łapin

1. Wprowadzanie danych z klawiatury funkcja scanf

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Metodyki i techniki programowania

PRZEWODNIK PO PRZEDMIOCIE

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

Programowanie Niskopoziomowe

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

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

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

Kod U2 Opracował: Andrzej Nowak

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

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

wagi cyfry pozycje

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

Programowanie w języku Python. Grażyna Koba

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

2 Przygotował: mgr inż. Maciej Lasota

Wstęp do programowania

Pracownia Komputerowa wykład VI

Algorytmy i struktury danych. wykład 1

Programowanie strukturalne język C - wprowadzenie

Programowanie strukturalne i obiektowe

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

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

Szablony funkcji i klas (templates)

Matematyczne Podstawy Informatyki

Podstawy Programowania

Podstawy programowania wykład

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólnoakademicki / praktyczny)

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Programowanie w języku C++ Grażyna Koba

Transkrypt:

Podstawy Programowania 1 Wstęp Arkadiusz Chrobot Zakład Informatyki 15 października 2015 1 / 41

Plan 1 Informacje organizacyjne 2 Bibliografia 3 Wprowadzenie 4 Algorytm 5 System komputerowy 6 Języki programowania 7 Język C Podstawy Komentarze Stałe Zmienne i typy zmiennych 2 / 41

Informacje organizacyjne Informacje organizacyjne Wykładowca: dr inż Arkadiusz Chrobot Numer pokoju: 323, budynek D Termin konsultacji: czwartki, 11:40-13:10 Numer telefonu: 41 34-24-185 Adres e-mail: achrobot@tukielcepl Adres strony www: http://achillestukielcepl/members/achrobot 3 / 41

Bibliografia Bibliografia Literatura Podstawowa 1 Brian W Kernighan, Dennis M Ritchie, Język ANSI C Programowanie, Wydanie 2, Wydawnictwo Helion, Gliwice 2010 2 Piotr Wróblewski, Algorytmy, struktury danych i techniki programowania, Helion, Gliwice 1997 3 Jon Bentley, Perełki Oprogramowania, WNT, Warszawa 1992 4 Alfred V Aho, John E Hopcroft, Jeffrey D Ullman Algorytmy i struktury danych, Helion, Gliwice 2003 4 / 41

Bibliografia Bibliografia Literatura uzupełniająca 1 Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, Wprowadzenie do algorytmów, WNT, Warszawa 1998 2 Donald E Knuth, Sztuka programowania, WNT, Warszawa 2002 3 Steven S Skiena, The Algorithm Design Manual, Springer-Verlang, London 2010 (w języku angielskim) 5 / 41

Bibliografia Bibliografia Zasoby internetowe 1 Wikibooks: Język C 2 The GNU C programming tutorial 3 Learning GNU C 4 The GNU C Library 6 / 41

Programowanie Wprowadzenie Definicja programowania Programowanie jest to zespół czynności, którego celem jest przygotowanie programu dla systemu komputerowego W skład tych czynności wchodzą: opracowanie modelu problemu, który chcemy rozwiązać za pomocą systemu komputerowego, opracowanie algorytmu (lub algorytmów) rozwiązania, zapisanie tego algorytmu za pomocą wybranego języka programowania oraz usunięcie błędów składniowych i logicznych 7 / 41

Program komputerowy Wprowadzenie Definicja programu komputerowego Program komputerowy jest to zapis w określonym języku programowania algorytmu lub algorytmów rozwiązywania pewnych problemów 8 / 41

Algorytm Algorytm Definicja algorytmu Algorytm jest to skończony zbiór precyzyjnie zdefiniowanych czynności koniecznych do wykonania określonego zadania 9 / 41

Algorytm Własności algorytmu Skończoność: wykonanie algorytmu zawsze musi się zatrzymać po skończonej liczbie kroków Procedura, która ma wszystkie cechy algorytmu, poza skończonością nazywana jest procedurą obliczeniową Dobre zdefiniowanie: każdy krok algorytmu musi być precyzyjnie opisany, dla każdego przypadku akcje muszą być opisane ściśle i jednoznacznie Dane wejściowe: algorytm ma zero lub więcej danych wejściowych Dane wyjściowe: algorytm generuje jedną lub więcej danych wyjściowych, czyli wartości w określony sposób powiązanych z danymi wejściowymi Efektywność: z praktycznego punktu widzenia, algorytm nie tylko powinien dać się wykonać w skończonym czasie, ale również ten czas powinien być możliwie krótki 10 / 41

Zapis algorytmu Algorytm Algorytmy mogą być zapisane w formie, która jest bardziej zrozumiała dla człowieka, lub w formie bardziej zrozumiałej dla komputera Granice między tymi dwoma kategoriami nie są ostre 11 / 41

Zapis algorytmu Opis słowny Algorytm Algorytm Eukildesa wyznaczania największego wspólnego dzielnika dodatnich liczb całkowitych (NWD) Opis słowny Dane są dwie liczby całkowite M i N, należy znaleźć ich największy wspólny dzielnik, tj największą dodatnią liczbę całkowitą, która dzieli całkowicie zarówno M, jak i N 12 / 41

Algorytm Zapis algorytmu Pseudokod E1[Znajdowanie reszty] Podziel M przez N i niech R oznacza resztę z tego dzielenia (Mamy 0 R < N) E2[Czy wyszło zero?] Jeśli R = 0, to zakończ algorytm, odpowiedzią jest N E3[Upraszczanie] Wykonaj N M, R N i wróć do kroku E1 13 / 41

Zapis algorytmu Schemat blokowy Algorytm start Wczytaj M i N M N N R R M mod N nie R = 0? tak Wypisz N koniec 14 / 41

System komputerowy System komputerowy Definicja systemu komputerowego System komputerowy to urządzenie lub zespół współpracujących urządzeń, które mogą zrealizować określony, przygotowany dla nich program 15 / 41

System komputerowy Rodzaje systemów komputerowych (a) Klaster (b) Komputer osobisty (c) Urządzenia mobilne (d) Mikrokontroler i jeszcze kilka innych kategorii 16 / 41

System komputerowy Rodzaje systemów komputerowych - elementy wspólne Każdy system komputerowy zawiera co najmniej dwa elementy: 1 procesor, 2 pamięć Każdy komputer rozumie zapis dwójkowy (binarny) 17 / 41

Języki programowania Zapis algorytmu - program dla komputera Pierwotnie programy były zapisywane w kodzie maszynowym, czyli ciągu liczb binarnych (lub pokrewnych) Następnie pojawiły się assemblery, czyli języki, w których pojedyncze instrukcje maszynowe oznaczono łatwymi do zapamiętania ciągami znaków Następnie pojawiły się języki wysokiego poziomu, w których zapis programu jest zbliżony do zapisu w języku naturalnym (najczęściej angielskim), a jedna instrukcja może odpowiadać kilku instrukcjom maszynowym Tak zapisane programy są tłumaczone na język maszynowy za pomocą programów nazywanych translatorami, które dzielą się na kompilatory i interpretery Czynność zapisywania algorytmu w postaci programu komputerowego lub zapisany algorytm nazywamy implementacją Program zapisany w assemblerze lub języku wysokiego poziomu nazywamy kodem źródłowym Powstały na jego podstawie program wykonywalny nazywamy kodem wynikowym 18 / 41

Abstrakcja Języki programowania Rozwój języków programowania jest przykładem zastosowania abstrakcji - - metody upraszania problemu polegającej na uwypukleniu jego najważniejszych cech, a ukryciu tych, które nie są istotne dla jego rozwiązania Programowanie sprowadza się do sprawnego posługiwania się abstrakcją 19 / 41

Język C Język C Kilka cech opracowany w latach 70 ubiegłego wieku, język wysokopoziomowy, ale zawierający dużo niskopoziomowych elementów, język imperatywny, wspierający strukturalny model programowania, ma prostą składnię, która została zapożyczona przez wiele innych języków programowania (Java, C++, C#, itd), jeden z najpopularniejszych języków programowania według rankingu TIOBE (obecnie nr 2, do niedawna nr 1), jest kompilowany, istnieje wiele kompilatorów dostępnych dla różnych systemów komputerowych, język jest ustandaryzowany (najnowsza wersja standardu to ISO C11, na wykładzie będziemy używać ISO C99) 20 / 41

Najprostszy program Język C Podstawy Listing 1: Najprostszy program w C int main() { return 0; } 21 / 41

Program Hello World! Język C Podstawy Listing 2: Program Hello World! w C #include<stdioh> int main(void) { puts("hello World!"); return 0; } 22 / 41

Komentarze Język C Komentarze Komentarze w kodzie źródłowym służą do umieszczania przez programistę notatek odnoszących się do konkretnych fragmentów programu Komentarze są ignorowane przez kompilator Czasem wykorzystuje się tę własność komentarzy, aby chwilowo wyłączyć fragmenty kodu, które nie działają Język C udostępnia trzy sposoby wprowadzania komentarzy do kodu źródłowego Pierwszy polega na umieszczeniu komentarza między następującymi parami znaków: /* i */ Taki komentarz może obejmować wiele wierszy kodu Drugi sposób polega na umieszczeniu pary znaków // na początku komentarza Ten komentarz kończy się wraz z końcem wiersza, w którym został umieszczony Trzecie rozwiązanie polega na umieszczeniu treści komentarza między dwoma wierszami zawierającymi następujące pary instrukcji preprocesora: #if 0 i #endif 23 / 41

Komentarze Przykłady Język C Komentarze Listing 3: Komentarze w C /* To jest komentarz pierwszego rodzaju Nie można w nim umieszczać innych komentarzy tego samego typu */ /* * To też jest komentarz pierwszego rodzaju, ale czytelniej * zapisany */ // To jest komentarz drugiego rodzaju // Taki komentarz może być umieszczony w komentarzach innego // typu #if 0 Tak wygląda trzeci rodzaj komentarzy w języku C Jak widać, taki komentarz może obejmować wiele wierszy kodu /* A nawet można w nim zagnieżdżać komentarze pierwszego rodzaju */ #endif 24 / 41

Wady i zalety komentarzy Język C Komentarze + ułatwiają zrozumienie kodu, 25 / 41

Język C Komentarze Wady i zalety komentarzy + ułatwiają zrozumienie kodu, - mogą być oznaką tego, że dany fragment kodu, którego dotyczą nie jest dostatecznie dobrze zapisany, 25 / 41

Język C Komentarze Wady i zalety komentarzy + ułatwiają zrozumienie kodu, - mogą być oznaką tego, że dany fragment kodu, którego dotyczą nie jest dostatecznie dobrze zapisany, - zmiany w kodzie źródłowym, których dotyczy komentarz powodują, że komentarz staje się przestarzały, 25 / 41

Język C Komentarze Wady i zalety komentarzy + ułatwiają zrozumienie kodu, - mogą być oznaką tego, że dany fragment kodu, którego dotyczą nie jest dostatecznie dobrze zapisany, - zmiany w kodzie źródłowym, których dotyczy komentarz powodują, że komentarz staje się przestarzały, + pozwalają tymczasowo wyłączyć fragmenty kodu, które mogą być niepoprawnie napisane 25 / 41

Stałe Język C Stałe Stałe podobnie jak w matematyce, czy fizyce są nazwami nadawanymi pewnym konkretnym, niezmiennym wartościom W przypadku języka C stałe mogą być definiowane na kilka różnych sposobów Pierwszym jaki poznamy jest wykorzystanie tak zwanych makr preprocesora Wzorzec #define NAZWA WARTOŚĆ Przykład #define GRAVITY 981 Nazwy stałych najczęściej w całości pisane są wielkimi literami Wszędzie tam, gdzie kompilator (preprocesor) znajdzie w kodzie źródłowym identyfikator gravity zastąpi go wartością 981 26 / 41

Zmienne Język C Zmienne i typy zmiennych Zmienna, to miejsce, w którym program komputerowy przechowuje dane, które przetwarza Zmienna z punktu widzenia komputera jest wydzielonym fragmentem pamięci operacyjnej komputera Posiada ona dwie cechy (atrybuty): zasięg i typ Zasięg określa, które fragmenty kodu mogą korzystać ze zmiennej i jest on zależny od miejsca, gdzie zmienna została zadeklarowana Najpierw zapoznamy się ze zmiennymi globalnymi, które są dostępne w każdym miejscu programu Typ definiuje rozmiar zmiennej (ile pamięci zajmuje dana zmienna) i jakiego rodzaju informacje ona zawiera 27 / 41

Język C Wzorzec deklaracji zmiennej Zmienne i typy zmiennych Zanim będzie można użyć zmiennej w programie musi ona być najpierw zadeklarowana typ_zmiennej nazwa_zmiennej; Przykład Listing 4: Przykład deklaracji zmiennej #include<stdioh> unsigned int number_of_students; int main(void) { return 0; } 28 / 41

Język C Zmienne i typy zmiennych Nazwa zmiennej Reguły Nazwa zmiennej jest identyfikatorem, który pozwala ją jednoznacznie określić w programie Podobnie jak wszystkie identyfikatory w programie są one tworzone zgodnie z następującymi regułami: nazwy zmiennych nie mogą się powtarzać (są pewne wyjątki od tej reguły), nazwa nie może się zaczynać cyfrą, w nazwie nie mogą występować znaki specjalne (niebędące cyframi lub literami), poza podkreśleniem (_), język C rozróżnia wielkość liter (ang case sensitive), nazwy zmiennych nie mogą zawierać polskich znaków, nazwa nie może być słowem kluczowym języka (elementem składni języka, takim jak np nazwa typu) 29 / 41

Język C Zmienne i typy zmiennych Nazwa zmiennej Porady Reguły podane na poprzednim slajdzie są przestrzegane przez kompilator Wypisane poniżej porady nie dotyczą wymagań kompilatora, ale wprowadzają pewną konwencję, która zwiększa czytelność programu Należy o nią dbać, bo kody źródłowe programów są znacznie częściej czytane niż pisane Nazwy zmiennych powinny być czytelne Nazwy zmiennych powinny zawierać rzeczownik Jeśli zmienne składają się z kilku wyrazów, to powinny być one połączone znakiem podkreślenia i każdy z nich powinien się zaczynać małą literą Nazwy jednoliterowe należy używać tylko w przypadku niektórych konstrukcji, które będą omawiane na kolejnych wykładach, lub kiedy są one jednoznaczne, np używane w dobrze znanym wzorze matematycznym 30 / 41

Typy zmiennych Najczęściej używane typy Język C Zmienne i typy zmiennych Nazwa Rozmiar (w bajtach) Wartości int 4 liczby całkowite short int lub short 2 liczby całkowite long int lub long 8 liczby całkowite long long int lub long long 8 liczby całkowite char 1 znaki lub liczby całkowite float 4 liczby zmiennoprzecinkowe double 8 liczby zmiennoprzecinkowe long double 12 liczby zmiennoprzecinkowe Jeden bajt to 8 bitów Bit to najmniejsza porcja informacji, jaką może przetwarzać komputer (0 lub 1) Podane w tabeli rozmiary dotyczą 64-bitowego komputera klasy PC Standard języka nie definiuje wprost rozmiarów zmiennych, a jedynie zależności między nimi 31 / 41

Język C Zmienne i typy zmiennych System dwójkowy i pokrewne (podstawy) System dziesiętny 128 (dec) = 1 10 2 + 2 10 1 + 8 10 0 32 / 41

Język C Zmienne i typy zmiennych System dwójkowy i pokrewne (podstawy) System dziesiętny 128 (dec) = 1 10 2 + 2 10 1 + 8 10 0 System dwójkowy 1001 (nkb) = 1 2 3 + 0 2 2 + 0 2 1 + 1 2 0 = 9 (dec) 32 / 41

Język C Zmienne i typy zmiennych System dwójkowy i pokrewne (podstawy) System dziesiętny 128 (dec) = 1 10 2 + 2 10 1 + 8 10 0 System dwójkowy 1001 (nkb) = 1 2 3 + 0 2 2 + 0 2 1 + 1 2 0 = 9 (dec) System dwójkowy uzupełnienie do 2 ( 5) (dec) 0101 (nkb) 1010 (u1) + 1 1011 (u2) 32 / 41

Język C Zmienne i typy zmiennych Typy danych Zakresy typów całkowitych dla komputerów 64-bitowych Nazwa Wartość minimalna Wartość maksymalna int -2 147 483 648 2 147 483 647 short int lub short -32 768 32 767 long int lub long 9 223 372 036 854 775 808 9 223 372 036 854 775 807 long long int lub long long 9 223 372 036 854 775 808 9 223 372 036 854 775 807 char -128 127 33 / 41

Typy danych Znaki Język C Zmienne i typy zmiennych Pojedyncze znaki, tj litery lub cyfry i znaki niealfanumeryczne są przechowywane w zmiennej typu char Każda wartość w tej zmiennej jest traktowana jako kod znaku nazywany kodem ascii (American Standard Code for Information Interchange) 34 / 41

Typy danych Specyfikatory Język C Zmienne i typy zmiennych Specyfikatory są słowami kluczowymi języka C, które pozwalają zmodyfikować znaczenie niektórych typów zmiennych Specyfikator unsigned stosowany jest razem z typami int i char i powoduje, że zmienna tego typu przechowuje tylko liczby naturalne Innymi słowy: zamienia typ całkowity na naturalny Specyfikator signed jest uzupełnieniem dla unsigned i powoduje, że zmienna przechowuje wartości całkowite Najczęściej jest on pomijany w deklaracji zmiennej Specyfikator long powoduje zwiększenie pojemności typów int i double Specyfikator short powoduje zmniejszenie pojemności typu int 35 / 41

Język C Zmienne i typy zmiennych Typy danych Zakresy typów naturalnych dla komputerów 64-bitowych Nazwa Wartość minimalna Wartość maksymalna unsigned int lub unsinged 0 4 294 967 295 unsigned short int lub unsigned shrot 0 65 535 unsigned long int lub unsinged long 0 18 446 744 073 709 551 615 unsinged long long int lub unsigned long long 0 18 446 744 073 709 551 615 unsigned char 0 255 W pliku nagłówkowym limitsh zdefiniowano odpowiednie stałe dla każdej granicznej wartości typów zarówno całkowitych, jak i naturalnych 36 / 41

Typy danych Typ void Język C Zmienne i typy zmiennych Słowo kluczowe void używane jest jako określenie typu zmiennej, ale nie jest typem danych Nie można zadeklarować zmiennej tego typu Jest on jednak przydatny w innych sytuacjach, które będą omawiane na przyszłych wykładach 37 / 41

Typy danych Typy zmiennoprzecinkowe Język C Zmienne i typy zmiennych W pamięci komputera nie można odwzorować dokładnie liczby rzeczywistych Dlatego stworzono ich analog w postaci liczb zmiennoprzecinkowych Podstawą dla tego zapisu jest notacja wykładnicza, gdzie podstawa potęgi jest zawsze równa dwa W pamięci komputera te liczby są przechowywane następująco: pierwszy bit oznacza znak liczby, następna część część ułamkową, a ostatnia wykładnik Część ułamkowa jest zapisana w postaci binarnej, gdzie każda kolejna pozycja, począwszy od lewej stron ma ujemny wykładnik wagi Wyjątkiem jest pierwsza pozycja, która ma wykładnik równy zero W przypadku języka C, te liczby przechowywane są w zmiennych typu float, double i long double Różnica między nimi polega nie tylko na tym ile miejsca w pamięci zajmują w całości, ale też na tym ile z niego przeznaczają na zapamiętanie części ułamkowej i wykładnika 38 / 41

Typy danych Typ logiczny Język C Zmienne i typy zmiennych W języku C przyjmuje się, że wszystko co ma wartość różną od zera jest prawdą, a to, co ma wartość zero jest fałszem We wcześniejszych standardach tego języka nie przewidziano miejsca dla typu logicznego Dopiero standard ISO C99 wprowadził typ bool i stałe true i false, ale nie jako integralną część języka, tylko jako zewnętrzny dodatek dostępny po dodaniu instrukcji #include<stdboolh> na początku programu 39 / 41

Pytania Język C Zmienne i typy zmiennych? 40 / 41

koniec Język C Zmienne i typy zmiennych Dziękuję Państwu za uwagę! 41 / 41