Wstęp do programowania

Podobne dokumenty
Wstęp do programowania

Wstęp do programowania

Wstęp do programowania

Podstawy Programowania. Wykład 1

Algorytm. a programowanie -

Programowanie komputerów

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

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

Zapisywanie algorytmów w języku programowania

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

Podstawy Programowania Algorytmy i programowanie

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

Wstęp do programowania

Wstęp do programowania. Wykład 1

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie

Programowanie w języku Python. Grażyna Koba

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

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

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

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

Technologie informacyjne - wykład 12 -

Języki programowania zasady ich tworzenia

Ilość cyfr liczby naturalnej

Komputer. Komputer (computer) jest to urządzenie elektroniczne służące do zbierania, przechowywania, przetwarzania i wizualizacji informacji

Wstęp do informatyki- wykład 1

Jerzy Nawrocki, Wprowadzenie do informatyki

Podstawy programowania

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

Podstawy Programowania

Wprowadzenie do inżynierii przetwarzania informacji

ALGORYTMY I PROGRAMY

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

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

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

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

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

Język programowania PASCAL

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1

Język ludzki kod maszynowy

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

1 Wprowadzenie do algorytmiki

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

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!

Języki i metodyka programowania

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie.

Luty 2001 Algorytmy (7) 2000/2001

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Rekurencja (rekursja)

Programowanie i techniki algorytmiczne

Java EE produkcja oprogramowania

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

6. Pętle while. Przykłady

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

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

Algorytmy od problemu do wyniku

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

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

Podstawy programowania. Wykład 1 Wstęp. Krzysztof Banaś Podstawy programowania 1

Specyfikacja: Dane: Niepusty, skończony ciąg liczb dodatnich. Wynik:...

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Podstawy Informatyki dla Nauczyciela

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

2.8. Algorytmy, schematy, programy

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

Komputer i urządzenia z nim współpracujące.

Wstęp do Informatyki dla bioinformatyków

Wstęp do programowania

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

Informatyka I: Instrukcja 4.2

WHILE (wyrażenie) instrukcja;

Scenariusz lekcji. podać przykłady zalet użycia takiej instrukcji; opisać algorytm obliczania średniej n liczb;

EGZAMIN MATURALNY Z INFORMATYKI 17 MAJA 2016 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

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

1.1. Pozycyjne systemy liczbowe

Jerzy Nawrocki, Wprowadzenie do informatyki

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

EGZAMIN MATURALNY Z INFORMATYKI

Wstęp do Informatyki

Techniki multimedialne

Zadanie 1. Potęgi (14 pkt)

Podstawy i języki programowania

Algorytmika i pseudoprogramowanie

1 Podstawy c++ w pigułce.

Algorytmy i struktury danych. Wykład 4

Proste algorytmy w języku C

EGZAMIN MATURALNY 2011 INFORMATYKA

Metody Kompilacji Wykład 1 Wstęp

WHILE (wyrażenie) instrukcja;

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

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

1. Pobrać plik masm.zip (Macro Assembler 6.15 & Segmented Executable Linker 5.60) (

Wstęp do Programowania, laboratorium 02

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

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

Transkrypt:

Wstęp do programowania wykład 1 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula

Jak działa komputer 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 element nadzorujący i koordynujący działania komputera (CU control unit) oraz element odpowiedzialny za operacje arytmetyczne i logiczne (ALU arithmetic logic unit) Pamięć (wewnętrzna) przechowuje m.in. uruchamiany program, dane, tymczasowe struktury danych niezbędne do poprawnego działania uruchamianego programu itp.

Pamięć Pamięć komputera może być traktowana jako ciąg komórek pamięci (nazywanych czasami słowami). Każda komórka pamięci ma pewien adres, określający jej pozycję w pamięci.

Pamięć - cd Każda komórka pamięci składa się z pewnej liczby bitów (zazwyczaj 8, 16, 32 lub 64). Każdy bit zawiera cyfrę dwójkową (0 lub 1) Grupę 8 bitów nazywamy bajtem bajt (1B) = 8 bitów (8b) kilobajt (1kB) = 1024 bajty (2 10 B) megabajt (1MB) = 2 20 B gigabajt (1GB) = 2 30 B

System dziesiętny podstawa: 10 cyfry: 0,1,2,3,4,5,6,7,8,9 największa cyfra jest o 1 mniejsza od podstawy interpretacja liczby: 356 pozycja: 2 1 0 = 3 10 2 + 5 10 1 + 6 10 0

podstawa: 2 cyfry: 0,1 System dwójkowy największa cyfra jest o 1 mniejsza od podstawy interpretacja liczby: 110 pozycja: 2 1 0 = 1 2 2 + 1 2 1 + 0 2 0

Wykonywany program zajmuje grupę powiązanych z sobą komórek pamięci Komórki lub grupy komórek zawierają poszczególne instrukcje programu różne instrukcje są reprezentowane przez różne kombinacje bitów w komórkach pamięci instrukcja mówi komputerowi, że powinien wykonać jakieś zadanie (np. przenieść zawartość komórki pamięci do procesora albo dodać dwie liczby w ALU)

program ciąg instrukcji podczas wykonywania programu CU czyta kolejne instrukcje z pamięci i zapewnia, że są one wykonywane w tym samym porządku

Postać programu Instrukcja może być traktowana jako pewien ciąg zer i jedynek instrukcja o takiej samej roli może mieć różną postać na różnych modelach komputerów Program przechowywany w ten sposób może być wykonywany przez komputer. Mówimy, że jest w postaci kodu maszynowego

Początkowo programy były pisane w kodzie maszynowym Obecnie programy pisze się w językach wysokiego poziomu przykładowe języki: Ada, Pascal, C, C++, C#, Java Programy napisane w jęz. wysokiego poziomu są następnie tłumaczone na kod maszynowy za pomocą specjalnego translatora

Jeszcze o językach Kod maszynowy (przykład): 1100111101011000 1000000111110100 1100110011001010 Język asembler: LOAD A ADD B STORE C każda instrukcja odpowiada jednej instrukcji kodu maszynowego. Program jest następnie tłumaczony na kod maszynowy przy użyciu programu asemblera Język wysokiego poziomu: C := A + B

Części komputera - cd Aby komunikować się z otoczeniem, komputer musi być wyposażony w jednostki wejścia/wyjścia (ang. input, output units), jak ekran, klawiatura, mysz itp Komputer musi być w stanie przechować np. różnorodne dane, programy które nie są wykonywane itp. Służy do tego pamięć pomocnicza (np. dysk twardy, pamięć przenośna, itp.)

Zawartość pamięci pomocniczej jest zazwyczaj zorganizowana w pliki (ang. files) Plik jest zbiorem danych powiązanych z sobą w jakiś sposób (np. zawiera dane czy kod jednego programu). Do plików odwołujemy się poprzez ich nazwy. Można usuwać i tworzyć pliki oraz modyfikować ich zawartość

Etapy tworzenia programu Aby napisać program, musimy: określić zadania 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)

PROGRAMOWANIE JEST JEDNO TYLKO JĘZYKÓW WIELE

Algorytmy Aby napisać program, musimy znaleźć odpowiedni algorytm czyli opisać, jak rozwiązać konkretny problem 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 Metoda rozwiązywania równania kwadratowego itd... oczywiście nie wszystkie są przydatne w programowaniu

Elementy algorytmów Sposób opisu algorytmów musi pozwalać na wyrażenie: sekwencyjności opisujemy kolejne kroki. Kroki muszą być wykonywane w takiej kolejności, w jakiej zostały zapisane: 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...

wyboru opisujemy fakt konieczności podjęcia decyzji, którą z alternatywnych ścieżek wybrać: jeśli ucierana masa jest zbyt gęsta, to należy dodać łyżkę wody jeżeli ciasto odkleja się od łyżki, to zakańczamy wyrabianie; w przeciwnym wypadku kontynuujemy jeżeli delta jest mniejsza od zera, to piszemy, że równanie kwadratowe nie ma rozwiązań. W przeciwnym wypadku: jeśli delta jest równa zero, to piszemy, że równanie ma jedno rozwiązanie, a w przeciwnym razie, że równanie ma dwa rozwiązania

iteracji musimy być w stanie wyrazić fakt, że pewna część algorytmu może być powtarzana albo określoną ilość razy, albo do momentu zajścia pewnego warunku: podgrzewaj masę mieszając, dopóki cukier się nie rozpuści idź 100 kroków na północ (stukrotne powtórzenie instrukcji idź krok na północ ) rekursji (rekurencji) problem dzielimy na mniejsze (zagnieżdżone) podproblemy o podobnej strukturze. Każdy z nich rozwiązujemy stosując ten sam algorytm

Prosty przykład algorytmu Aby tworzyć algorytmy, musimy rozumieć jak będą one wykonywane przez komputer: obliczenie drugiej potęgi liczby: pobierz liczbę (i zapamiętaj w jakiejś komórce pamięci musimy wiedzieć jak się do niej później odwołać, musimy wiedzieć jak duża ma być ta komórka, bo komputer musi ją zarezerwować) oblicz iloczyn liczby przez nią samą (i zapamiętaj w jakiejś innej komórce pamięci, odwołanie i rozmiar jak wyżej) wypisz wynik (czyli zawartość tej komórki pamięci, w której umieszczono powyższy iloczyn)

dodanie dwóch liczb: pobierz liczbę 1 (i zapamiętaj w jakiejś komórce pamięci musimy wiedzieć jak się do niej później odwołać, musimy wiedzieć jak duża ma być ta komórka, bo komputer musi ją zarezerwować) pobierz liczbę 2 (i zapamiętaj w jakiejś innej komórce pamięci, możliwość odwołania i określenia rozmiaru jak wyżej) oblicz ich sumę (i zapamiętaj w jakiejś innej komórce pamięci, odwołanie i rozmiar jak wyżej) wypisz wynik (czyli zawartość tej komórki pamięci, w której umieszczono sumę)

Projekt algorytmu Dzielimy problem na mniejsze prostsze podproblemy Projektujemy rozwiązanie dla każdego z podproblemów (ewentualnie rekurencyjnie dzieląc ja na kolejne podproblemy) projektowanie od ogółu do szczegółu (ang. top-down design)

Algorytm

Język programowania Kolejny krok to zapisanie algorytmu w wybranym języku programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje itd...

Druga potęga w języku Pascal (* program obliczający drugą potęgę liczby *) program prog1; uses crt; var a, kwad: integer; begin writeln('program oblicza trzecia potege podanej liczby'); write('podaj a:'); read(a); kwad := a * a; writeln('wynik wynosi ', kwad); end.

Druga potęga w języku C /* program obliczający drugą potęgę liczby */ #include <stdio.h> int main() { int a, kwad; printf("program oblicza trzecia potege podanej liczby\n"); printf("podaj a: "); scanf("%d", &a); kwad = a * a; printf("wynik wynosi %d\n", kwad); return 0; }

Druga potęga w języku C++ /* program obliczający drugą potęgę liczby */ #include <iostream> int main() { int a, kwad; std::cout << "Program oblicza trzecia potege podanej liczby" << std::endl; std::cout << "Podaj a: "; std::cin >> a; kwad = a * a; std::cout << "Wynik wynosi " << kwad << std::endl; return 0; }

Trzecia potęga w języku Ada -- program obliczający drugą potęgę liczby with ada.text_io, ada.integer_text_io; use ada.text_io, ada.integer_text_io; procedure potega is a, kwad: integer; begin put_line("program oblicza trzecia potege podanej liczby"); put("podaj a: "); get(a); kwad := a * a; put("wynik wynosi "); put(kwad, 0); new_line; end potega;

Etapy Program piszemy posługując się edytorem tekstu (powstaje tekst źródłowy, inaczej kod źródłowy, programu)

Etapy - cd Wersja źródłowa programu musi zostać przetłumaczona na język maszyny (procesora) służy do tego kompilator danego języka programowania (etap kompilacja) kompilator sprawdza przy tym błędy składniowe skompilowana wersja (zazwyczaj zapisywana w pliku na dysku jako tzw. plik obiektowy - object file) jest już w języku maszynowym, ale jest jeszcze niepełna musi zostać połączona z bibliotekami

Etapy - cd Biblioteki zawierają dodatkowe instrukcje programu, napisane wcześniej bądź przez kogoś innego i oddzielnie skompilowane. Proces łączenia programu z bibliotekami wykonywany jest przez program zwany linkerem (etap linkowanie) inna, polska nazwa konsolidacja w wyniku otrzymujemy program gotowy do uruchomienia