Wstęp do programowania

Podobne dokumenty
Wstęp do programowania

Wstęp do programowania

Wstęp do programowania

Wstęp do programowania. Wykład 1

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

Podstawy Programowania. Wykład 1

Język ludzki kod maszynowy

1 Podstawy c++ w pigułce.

Techniki Programowania

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

Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia

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

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

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

Języki programowania - podstawy

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

Wstęp do programowania

1 Podstawy c++ w pigułce.

Programowanie w języku Python. Grażyna Koba

Podstawy Programowania

Materiały. Języki programowania II (Java+AVR-GCC) Literatura

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

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

Słowa kluczowe i nazwy

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

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

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

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

Wstęp do programowania

Podstawy języka C++ Marek Pudełko

Programowanie strukturalne i obiektowe

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

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

C++ wprowadzanie zmiennych

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

Algorytm. a programowanie -

Część 4 życie programu

Podstawy programowania w języku C

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

Język C - podstawowe informacje

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

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

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

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

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

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

Szablony funkcji i szablony klas

( wykł. dr Marek Piasecki )

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

Wstęp do programowania

Wstęp do programowania

Wyjątki (exceptions)

Programowanie komputerów

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

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

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

Microsoft IT Academy kurs programowania

Pytania sprawdzające wiedzę z programowania C++

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

Podstawy Programowania Algorytmy i programowanie

ECLIPSE wnioski z dwóch pierwszych laboratoriów

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

Wstęp do programowania

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

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

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

3. Instrukcje warunkowe

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

Programowanie - wykład 4

Wykład 1

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Programowanie proceduralne w języku C++ Pojęcia podstawowe - kod źródłowy

Programowanie obiektowe

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

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

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

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

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

Wstęp do programowania

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

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

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Programowanie strukturalne język C - wprowadzenie

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

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

Podstawy programowania w C++

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

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

Programowanie komputerowe. Zajęcia 1

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

Podstawy Programowania

Wstęp do Programowania 2

Struktura pliku projektu Console Application

Zmienne, stałe i operatory

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

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

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Transkrypt:

wykład 1 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2016/2017

strona www: http://www.math.uni.lodz.pl/~polrola

To oczywiście pewnie wszyscy wiedzą... Komputer może być traktowany jako urządzenie służące do przechowywania i przetwarzania informacji Działanie komputera jest kontrolowane przez wykonywany przez niego program

Podstawowe elementy komputera Procesor - mózg komputera. Zawiera: jednostkę sterującą (CU - control unit) - element nadzorujący i koordynujący działanie komputera jednostkę wykonawczą (EU - execution unit), a w niej m.in. element odpowiedzialny za operacje arytmetyczne i logiczne (ALU - arithmetic-logic unit) oraz różnego rodzaju rejestry (wbudowane w procesor małe komórki pamięci o szybkim dostępie, służące do przechowywania wyników obliczeń, adresów w pamięci operacyjnej, instrukcji; procesor wykonuje działania korzystając ze swoich rejestrów - dane są pobierane z pamięci do rejestrów a potem odsyłane). Pamięć operacyjna przechowuje m.in. uruchamiany program, dane, tymczasowe struktury danych niezbędne do poprawnego działania uruchamianego programu itp.

Podstawowe elementy komputera - cd jednostki wejścia/wyjścia umożliwiające komunikację z otoczeniem (mysz, klawiatura, ekran itp) pamięć pomocnicza (zewnętrzna) pozwalająca przechowywać dane, programy które nie są wykonywane itp zawartość pamięci pomocniczej jest zazwyczaj zorganizowana w pliki

Pamięć Pamięć komputera może być traktowana jako ciąg komórek pamięci (nazywanych czasami słowami). Każda komórka ma pewien adres, określający jej pozycję w pamięci. Każda komorka składa się z pewnej liczby bitów (zazwyczaj 8, 16, 32 lub 64). 8 bitów tworzy bajt Każdy bit przechowuje cyfrę dwójkową (0 lub 1) za pomocą ciągów cyfr dwójkowych zapisujemy liczby całkowite, rzeczywiste, wartości logiczne, instrukcje programu itd

Wykonanie programu Wykonywany program zajmuje grupę powiązanych ze sobą komórek pamięci. Komórki lub grupy komórek zawierają poszczególne instrukcje programu. program to ciąg instrukcji podczas wykonania programu CU czyta kolejne instrukcje z pamięci i zapewnia, że są one wykonywane w odpowiednim porządku instrukcja mówi komputerowi, że powinien wykonać jakieś zadanie (np. przenieść zawartość komórki pamięci znajdującej się pod jakimś adresem do określonego rejestru procesora, albo dodać dwie liczby w ALU)

Postać programu ( wewnątrz komputera ) Instrukcja jest zapisana jako pewien ciąg zer i jedynek. instrukcja o tej samej roli może mieć różną postać w rożnych modelach komputerów Program zapisany w takiej postaci może być wykonany przez komputer. Mówimy, że jest w postaci kodu maszynowego instrukcje kodu maszynowego nazywa się też rozkazami maszynowymi Przykład 0011001111110011 0011111110000110 1001001111001111

Języki programowania Przykład początkowo programy były pisane w kodzie maszynowym kolejnym etapem był język asembler jest to język używający krótkich nazw odpowiadających poszczególnym rozkazom maszynowym danego typu procesora oraz pozwalający na użycie nazw zmiennych zamiast ich adresów LOAD A ADD B STORE C przetłumaczenie takiego programu na kod maszynowy jest bardzo proste język asembler jest w użyciu; pozwala pisać bardzo wydajne programy

Języki programowania - cd Przykład kolejnym etapem są języki programowania wysokiego poziomu (np. Pascal, Ada, C++, Java,...) prosty zapis operacji C := A + B programy napisane w takich językach są tłumaczone na kod maszynowy przy pomocy specjalnego translatora

Od kodu do programu wykonywalnego Program napisany w języku programowania ma postać pliku tekstowego. Ta postać nazywana jest kodem źródłowym Aby program można było wykonać, musi zostać przetłumaczony na kod wykonywalny (program wykonywalny) zapisany w języku maszynowym proces tłumaczenia programu nazywany jest kompilacją

Od kodu do programu wykonywalnego - cd proces tłumaczenia programu składa się tak naprawdę z dwóch czynności: kompilacji i łączenia kompilacja (przetworzenie kodu źródłowego przez program zwany kompilatorem) zamienia program źródłowy na plik binarny zawierający program w kodzie maszynowym (object file). Najczęściej nie jest on jeszcze końcową wersją programu - zawiera odwołania do zewnętrznych podprogramów umieszczonych w bibliotekach kompilacja może być poprzedzona analizą kodu źródłowego wykonywaną przez program zwany preprocesorem (często kompilator spełnia równocześnie rolę preprocesora) łączenie (konsolidacja, linkowanie,) wykonywana przez program zwany konsolidatorem, tworzy kolejny plik binarny, w którym jest już wszystko co jest potrzebne do wykonania programu na danym sprzęcie z danym systemem operacyjnym

Języki interpretowane (skryptowe) Programy napisane w niektórych językach programowania (np. w języku Perl lub Python) uruchamiane są w inny sposób. do uruchomienia programu potrzebne jest środowisko uruchomieniowe - interpreter interpreter nie tworzy programu wykonywalnego; poszczególne instrukcje programu tłumaczone są po kolei na bieżąco na kod maszynowy i wykonywane. Odwołania do podprogramów umieszczonych w zewnętrznych bibliotekach również przetwarzane są na bieżąco

Etapy tworzenia programu Aby napisać program musimy: określić wymagania programu (faza analizy wymagań i specyfikacji) zaprojektować sposób rozwiązania problemu (faza projektowa) zapisać w/w projekt w wybranym języku programowania (faza implementacji) skompilować i uruchomić program sprawdzić, czy program działa poprawnie (faza testowania)... z czego faza implementacji jest chyba najprostsza... ;-)

PROGRAMOWANIE JEST JEDNO tylko językow programowania wiele

Algorytmy Aby napisać program, musimy znaleźć odpowiedni algorytm - czyli opisać, jak rozwiązać konkretny problem / zadanie Algorytmy można zapisywać na różne sposoby: w języku naturalnym w postaci schematu blokowego w postaci instrukcji programu w pseudokodzie...

Przykłady algorytmów przepis na ciasto instrukcja składania mebli przepis na rozwiązanie równania kwadratowego postaci ax 2 + bx + c = 0 metoda znalezienia największej liczby w (bardzo, bardzo długim) ciągu liczb

Elementy algorytmów Sposób opisu algorytmu musi pozwalać na wyrażenie: sekwencyjności wyboru iteracji rekursji (rekurencji)

Sekwencyjność Opisujemy kolejne kroki. Kroki muszą być wykonywane w takiej kolejności, w jakiej zostały zapisane Przykład weź 4 jajka, szklankę cukru i cukier waniliowy utrzyj żółtka z cukrem przygotuj szklankę mąki z łyżeczką proszku do pieczenia dodaj część mąki do ucieranej masy ubij pianę z białek dodaj do ucieranej masy pianę i resztę mąki...

Wybór Opisujemy fakt konieczności podjęcia decyzji którą z alternatywnych ścieżek wybrać Przykłady jeżeli ucierana masa jest zbyt gęsta, to dodaj łyżkę wody jeżeli uczestnik turnieju odpowiedział poprawnie na co najmniej 5 pytań, to przechodzi do następnego etapu, w przeciwnym razie odpada z gry jeżeli wyróżnik trójmianu kwadratowego jest ujemny, to piszemy że trójmian nie ma pierwiastków, jeżeli wyróżnik jest równy zero, to piszemy że trójmian ma jeden pierwiastek, w pozostałych przypadkach trójmian ma dwa pierwiastki

Iteracja Opisujemy fakt, że pewna część algorytmu będzie powtarzana - albo określoną ilość razy, albo do momentu zajścia pewnego warunku Przykłady podgrzewaj masę mieszając, dopóki cukier się nie rozpuści powtórz 100 razy czynność idź krok na północ (czyli idź 100 kroków na północ)

Rekurencja Problem dzielimy na mniejsze (zagnieżdżone) podproblemy o podobnej strukturze. Każdy z nich rozwiązujemy stosując ten sam algorytm.

Aby tworzyć algorytmy, powinniśmy rozumieć co jest w stanie zrobić komputer W przypadku bardziej złożonego problemu wygodnie jest: podzielić problem na mniejsze, prostsze podproblemy zaprojektować rozwiązanie dla każdego z nich, w razie potrzeby znów dzieląc je na podproblemy Jest to tzw. projektowanie od ogółu do szczegółu albo z góry w dół (top-down design) Kolejny krok to zapisanie algorytmu w wybranym języku programowania

Każdy język ma swoją składnię: słowa kluczowe instrukcje itd Na wykładzie / ćwiczeniach będziemy używać języka C++ jeden z bardziej popularnych języków programowania powstały w latach 80-tych XX wieku jako rozszerzenie języka C o mechanizmy programowania obiektowego

Musimy zaopatrzyć się w jakiś kompilator C++ (albo w odpowiednie IDE, tj. zintegrowane środowisko programistyczne dla danego języka) Przykłady IDE: Code::Blocks Dev-C++ Eclipse Falcon C++ wxdev-c++ VisualStudio Ultimate++...

Przykładowy program # include < iostream > /* dyrektywa preprocesora */ int main () // program glowny { std :: cout << " Dzien dobry! \n" ; std :: cout << " To ja, Twoj pierwszy program "; } return 0;

Dyrektywy preprocesora # include < iostream > linia zaczyna się od dyrektywy preprocesora preprocesor analizuje kod źródłowy poszukując przeznaczonych dla niego poleceń (dyrektyw lub makr) celem wykonania preprocesora jest przekształcenie kodu programu zgodnie z treścią tych poleceń w przypadku dyrektywy #include przekształcenie polega na dołączeniu w danym miejscu kodu pliku podanego po dyrektywie tu dołączamy plik (bibliotekę) iostream ponieważ będziemy używać tzw. strumieni do wypisania tekstu uwaga - preprocesor nie dokonuje kontroli poprawności programu!

Komentarze # include < iostream > /* dyrektywa preprocesora */ int main () // program glowny Komentarz to taki fragment zawartości pliku z kodem źródłowym programu, który nie jest brany pod uwagę przy kompilacji. W C++ istnieją dwa sposoby wstawiania komentarzy: komentarzem jest tekst zawarty między /* (otwarciem komentarza) i */ (zamknięciem komentarza) komentarzy tego typu nie można zagnieżdżać! komentarzem jest też tekst rozpoczynający się od // jest traktowany jako komentarz; końcem komentarza jest wówczas koniec linii

Definicja głównej funkcji programu int main () // program glowny {... // tresc programu return 0; } funkcja o nazwie main jest właściwym programem w C++. Nazwa ta jest zastrzeżona (nie można jej zmienić) każda funkcja zwraca wartość pewnego typu; dla main jest to zawsze int - wartość całkowita. Typ wyniku jest podany przed nazwą funkcji. Na końcu treści programu znajduje się instrukcja return 0; powodująca zwrócenie zera (oznaczającego zazwyczaj poprawne wykonanie programu) funkcja może przyjmować również pewne dane wejściowe - argumenty. Listę argumentów podaje się w nawiasach () następujących po nazwie funkcji. Pusta lista argumentów oznaczana jest pustymi nawiasami.. nawiasy klamrowe { i } wyznaczają początek i koniec bloku zawierającego instrukcje programu każda instrukcja programu jest zakończona średnikiem

Strumień wyjścia std::cout std :: cout << " Dzien dobry! \n" ; std :: cout << " To ja, Twoj pierwszy program "; użycie tzw. strumienia std::cout pozwala na przesłanie danych na standardowe wyjście (ekran) znaki << (nazywane operatorem strumienia wyjścia pozwalają wskazać dane które mają być przekazane do strumienia tu przekazujemy tekst (napis). Napis musi być ujęty w cudzysłowy polecenie przesyłania danych musi być zakończone średnikiem przekierowania można sklejać : std :: cout << " Dzien dobry! \n" << "To ja" ;

Znaki specjalne w tekście std :: cout << " Dzien dobry! \n" ; std :: cout << "To ja, \t \t Twoj pierwszy \" program \" "; W tekście można umieszczać znaki specjalne. Najczęściej używane to: \n - przejście do nowej linii \t - znak tabulacji \" - znak cudzysłowu Efekt przejścia do nowej linii można uzyskać również przesyłając na standardowe wyjście znak oznaczony std::endl

Przykładowy program - drobna zmiana # include < iostream > using namespace std ; // okreslenie przestrzeni nazw int main () { cout << " Dzien dobry! " << endl ; cout << " To ja, Twoj pierwszy program "; } return 0;

Przestrzenie nazw using namespace std ;... cout << " Dzien dobry! " << endl ; Powyższa linia mówi że w programie poniżej niej będziemy używać nazw ze standardowej przestrzeni nazw - std nie musimy zatem poprzedzać nazw cout i endl przedrostkiem std:: - kompilator wie gdzie poszukiwać danego elementu

Identyfikatory w C++ Nazwy wykorzystywane w programie, (tzw. identyfikatory) muszą być ciągami znaków złożonymi z liter, cyfr i znaków podkreślenia, zaczynającymi się od litery, przy czym znak podkreślenia traktowany jest jak litera. polskie znaki nie są traktowane jako litery! wielkie i małe litery są rozróżniane zazwyczaj rozróżniane są tylko pierwsze 32 znaki Przykłady poprawne: prog1, prog 1, moja zmienna, A123, JamesBond007, moj program niepoprawne: on&ona, 1szy program, max%

Słowa kluczowe w C++ Niektóre identyfikatory są tzw. słowami kluczowymi (zarezerwowanymi). Nie mogą one pojawiać się w programie w innym znaczeniu niż nadane w standardzie języka. Słowa kluczowe w C++ and and eq asm auto bitand bitor bool break case catch char class compl const const cast continue default delete do double dynamic cast else enum explicit export extern false float for friend goto if inline int long mutable namespace new not not eq operator or or eq private protected public register reinterpret cast return short signed sizeof static static cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile wchar t while xor xor eq