Język ludzki kod maszynowy



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

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

Podstawy programowania w języku C

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

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

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

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

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

( wykł. dr Marek Piasecki )

Definicje. Algorytm to:

1 Podstawy c++ w pigułce.

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

Programowanie strukturalne język C - wprowadzenie

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

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

C++ wprowadzanie zmiennych

Microsoft IT Academy kurs programowania

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Część 4 życie programu

Programowanie - instrukcje sterujące

Programowanie obiektowe

Programowanie strukturalne i obiektowe

1 Podstawy c++ w pigułce.

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

Algorytm. a programowanie -

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

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

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

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

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Wstęp do programowania 1

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

Język C - podstawowe informacje

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

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Języki programowania - podstawy

Instrukcje sterujące. Programowanie Proceduralne 1

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

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

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

Podstawy programowania C. dr. Krystyna Łapin

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

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

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

MATERIAŁY DO ZAJĘĆ II

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

I - Microsoft Visual Studio C++

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

Zmienne, stałe i operatory

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

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

PROGRAMOWANIE w C prolog

Programowanie w języku C++

Algorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

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

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

Pytania sprawdzające wiedzę z programowania C++

Podstawy i języki programowania

Struktura pliku projektu Console Application

Instrukcje wyboru. Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne

ROZDZIAŁ 2. Operatory

Słowa kluczowe i nazwy

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

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

Ilość cyfr liczby naturalnej

Definicja algorytmu brzmi:

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

1 Wprowadzenie do algorytmiki

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Instrukcje wyboru. Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne

Podstawy i języki programowania

Podstawy programowania w języku C i C++

2 Przygotował: mgr inż. Maciej Lasota

Szablony funkcji i szablony klas

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

Pascal - wprowadzenie

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

Struktury Struktura polami struct struct struct struct

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Kontrola przebiegu programu

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

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

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

Operatory, wyrażenia i typy proste

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

Wstęp do programowania

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

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

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

Wstęp do programowania. Wykład 1

Wprowadzenie do języka Java

Algorytmy. dr Dariusz Banaś (UJK) Seminarium w ramach projektu Fascynujący Świat Nauki dla uczniów gimnazjów. wersja 0.9. Start.

Podstawy programowania (1)

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

Algorytmy i struktury danych. wykład 1

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

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

Podstawowe typy zmiennych

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

Transkrypt:

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 się. if (liczba_pkt > 50) zaliczenie=true else zaliczenie=false poziom niski Język programowania niskiego poziomu Język maszynowy (kod binarny) mov ecx, 50 dec ecx push eax pop ecx or ecx, eax 1100100100110010010010011 1100100100001110101001001 1101001001000100100100111 1100100100100001111010101

Historia języków programowania 1954 2008 Fortran 1954 CPL 1963 B 1969 C 1971 C z klasami 1979 C++ 1983 Simula 1964 Simula 67 1967 Algol 1958 Algol 68 1968 Pascal 1970 CLU 1974 Ada 1979

Od kodu do programu if (liczba_pkt > 50) zaliczenie=true else zaliczenie=false Kompilator (kompilacja) Napisany przez programistę kod poddawany jest kompilacji. Po sprawdzeniu poprawności kodu kompilator przekształca go na kod maszynowy. Następnie linker łączy z kodem potrzebne do jego działania biblioteki i tworzy plik wykonywalny aplikacji. Rozszerzenie.exe jest umowne i charakterystyczne dla systemu Windows. 0011100101010111010000111 001001101001101101010100 001001001000100010000100 dodatkowe biblioteki i moduły Linker (konsolidacja) program.exe działająca aplikacja

Jak powstaje program ZADANIA PROGRAMU: 1. obliczanie pola 2. obliczanie objętości 3.... ALGORYTM: 1. pobierz promień 2. oblicz pole 3. wyświetl pole 4.... START pobierz r oblicz pole int main() { int pole; cin >> r; pole = r * r + 3; cout << pole; } wyświetl pole KONIEC

Algorytmy Algorytmem nazywamy skończony ciąg czynności, przekształcający zbiór danych wejściowych na zbiór danych wyjściowych. Algorytmy, które wykonują działania matematyczne na danych liczbowych, nazywamy algorytmami numerycznymi. Algorytmy, w których kolejność czynności jest zawsze taka sama i niezależna od wartości danych wejściowych, nazywamy algorytmami sekwencyjnymi lub inaczej linowymi.

Etapy konstruowania algorytmu 1. Sformułowanie zadania. 2. Określenie danych wejściowych. 3. Określenie wyniku i sposobu jego prezentacji. 4. Ustalenie metody wykonania zadania. 5. Zapisanie algorytmu za pomocą wybranej metody. 6. Analiza poprawności rozwiązania. 7. Testowanie rozwiązania dla różnych danych algorytm powinien być uniwersalny, tzn. działać dla różnych zestawów danych. 8. Ocena skuteczności algorytmu.

Sposoby zapisu algorytmu LISTA KROKÓW: 1. Pobierz dane promienia 2. Oblicz wartość pola 3. Wyświetl wynik na ekranie 4. Zakończ PSEUDOJĘZYK: Początek; Rzeczywiste r; Pole = r * r * PI; Wyświetl Pole; Koniec. SCHEMAT BLOKOWY - przedstawia algorytm w postaci symboli graficznych.

Elementy schematu blokowego START Blok graniczny początek algorytmu x = 10 Blok operacyjny operacje zmieniające wartości zmiennych. Wypisz x Blok wejścia/wyjścia operacje wprowadzania i wyprowadzania danych. NIE x = 100 TAK Blok decyzyjny wybór jednej z dwóch możliwych dróg działania. STOP Blok graniczny koniec algorytmu

Specyfikacja problemu Specyfikacją problemu algorytmicznego nazywamy dokładny opis zadania, które ma zostać rozwiązane, oraz podanie danych wejściowych i danych wyjściowych wraz z ich typami. Zmienną nazywamy obiekt występujący w algorytmie, określony przez nazwę i służący do zapamiętywania pewnych danych. Typ zmiennej określa rodzaj wartości, jakie może ona przechowywać. Zmienna pomocnicza umożliwia realizację algorytmu, służy do przechowywania danych przejściowych. Stałe przechowują wartości, które w trakcie działania algorytmu nie ulegają zmianie, np. wartość PI (3,14).

Złożoność algorytmu Na złożoność obliczeniową algorytmu składają się: złożoność pamięciowa zależy od liczby i rozmiaru danych wykorzystywanych w algorytmie i oznacza rozmiar pamięci potrzebny do realizacji algorytmu; złożoność czasowa określa czas potrzebny do wykonania algorytmu w odniesieniu do rozmiaru danych wejściowych. Za jednostkę czasu przyjmuje się wykonanie operacji dominującej (najczęściej wykonywanej) algorytmu (np. dodawanie, mnożenie w a. numerycznych, czy porównanie i przestawianie w a. porównujących). Pesymistyczna złożoność obliczeniowa to złożoność algorytmu dla pesymistycznego zestawu danych.

Podstawowe typy danych Typ Typowy rozmiar w bajtach Zakres char 1-128 127 int 2, 4 lub 8-32 768 32 767 long int 4 float 4 double 8-2 147 483 648 2 147 483 647 6 cyfr znaczących -3,4E38 3,4E38 10 cyfr znaczących -1,7E308 1,7E308 bool 1 true, false

Stałe i zmienne Stałe tekstowe i liczbowe nie zmieniają swojej wartości w trakcie działania programu. Przykładowa definicja: const string KP = Kot Pulpet ; Zmienne przed pierwszym użyciem zawsze należy zadeklarować określając typ danych przez nią przechowywanych. Dobrze jest również inicjować zmienne, czyli nadawać im początkowe wartości. Deklaracja zmiennej: int wynik; Definicja zmiennej: int wynik = 0; Inicjacja zmiennej: wynik = 0;

Nazywanie stałych i zmiennych Nazwa powinna określać przeznaczenie stałej lub zmiennej. Może zawierać znaki alfabetu (poza narodowymi), cyfry i podkreślenia, ale nie może rozpoczynać się od cyfry. W nazwach stałych używa się zwyczajowo DUŻYCH liter. Nie można używać słów zarezerwowanych w języku C: auto, break, case, char, class, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, private, register, return, short, signed, sizeof, static, struct, switch, try, typedef, unsigned, void, while.

Operatory i wyrażenia Wyrażenie jest kombinacją stałych, zmiennych i operatorów, stosowaną do zapisu operacji matematycznych lub innych. Symbol Znaczenie Przykład + dodawanie x=a+b; - odejmowanie x=a-b; * mnożenie x=a*b; / dzielenie x=a/b; % reszta z dzielenia x=a%b; ++ inkrementacja o 1 x++; ++x; -- dekrementacja o 1 x--; --x; = przypisanie x=2*3; x=y=4;, łączenie int x,y,z;

Operatory skróconego przypisania Operator Nazwa Przykład Znaczenie += przypisanie z dodawaniem -= przypisanie z odejmowaniem *= przypisanie z mnożeniem /= przypisanie z dzieleniem %= przypisanie reszty z dzielenia x+=2; x-=2; x*=2; x/=2; x%=2; x=x+2; x=x-2; x=x*2; x=x/2; x=x%7;

Operatory relacji Operator Nazwa Przykład Wynik == równe 12==(10+2); 1 (true)!= różne od 7!=(9-2); 0 (false) < mniejsze 3<9; 1 (prawda) > większe 4>(2+7); 0 (fałsz) <= mniejsze lub równe >= większe lub równe 5<=(2+3) 1 (prawda) 4>=5 0 (fałsz)

Zadanie Skonstruuj algorytm obliczający pole trójkąta o bokach a, b i c podanych na wejściu. Uwzględnij błędne wartości danych wejściowych. Wykorzystaj wzór Herona: pole = p( p a)( p b)( p c) a b c gdzie p = 2 oraz zależność mówiącą o tym, że suma dowolnych dwóch boków trójkąta jest większa od długości trzeciego boku.