Wstęp do Informatyki. Program, proces tworzenia programu Środowisko programistyczne Języki programowania



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

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Podstawy programowania wykład

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Programowanie komputerów

Technologie informacyjne - wykład 12 -

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

Podstawy programowania

Informatyczna Wieża Babel, czyli o różnych językach programowania. Informatyczna Wieża Babel, czyli o różnych językach programowania

PODSTAWY ALGORYTMIKI

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

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

Algorytmy od problemu do wyniku

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

Historia modeli programowania

Języki i metodyka programowania

Informatyka. Michał Rad

Język programowania PASCAL

Definicje. Algorytm to:

Języki i paradygmaty programowania. I. Wprowadzenie

Podstawy programowania. Wprowadzenie

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

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

Podstawy programowania.

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

Zapisywanie algorytmów w języku programowania

Języki programowania deklaratywnego

Wstęp do programowania

Język ludzki kod maszynowy

Algorytmy i struktury danych

Wykład 4. Algorytmy i programy. Algorytmy + struktury danych = programy. Niklaus Wirth. Algorytm = logika + sterowanie.

Podstawy Informatyki Języki programowania

ALGORYTMY I PROGRAMY

Algorytm. Definicja i algorytmu METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE

Wprowadzenie do programowania

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki


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

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

Programowanie obiektowe - 1.

Java EE produkcja oprogramowania

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

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

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Programowanie w C. dr inż. Stanisław Wszelak

Podstawy programowania w języku C

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

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!

Algorytm. Krótka historia algorytmów

Wstęp do Informatyki dla bioinformatyków

Algorytmy, reprezentacja algorytmów.

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Języki programowania zasady ich tworzenia

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Praktyka Programowania

Technika mikroprocesorowa. Języki programowania mikrokontrolerów

Modelowanie i Programowanie Obiektowe

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

Wprowadzenie do inżynierii przetwarzania informacji

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Podstawy programowania

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Technika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym

Programowanie w języku Python. Grażyna Koba

Podstawa programowa Technik informatyk PODSTAWA PROGRAMOWA KSZTAŁCENIA W ZAWODZIE TECHNIK INFORMATYK SYMBOL CYFROWY 312[01]

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

Dział II Budowa sieci komputerowej, typologie sieci. Ocena dostateczna. Ocena dobra. Ocena bardzo dobra [1+ 2] [ ] [ ] Uczeń:

wstęp (podstawowe pojęcia związane z programowaniem, przegląd języków programowania, sieci działań, ogólne zasady programowania zorientowanego

Algorytmika i programowanie usystematyzowanie wiadomości

Tworzenie oprogramowania

Algorytmika i pseudoprogramowanie

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

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

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

Podstawy Informatyki Języki programowania c.d.

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Cel stosowania metod i środków informatyki

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

2.8. Algorytmy, schematy, programy

Środowiska i platformy programistyczne


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

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

Opis efektów kształcenia dla modułu zajęć

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Język programowania: Lista instrukcji (IL Instruction List)

Ryszard Myhan. Wykład 1: Języki programowania

Paradygmaty programowania

Wstęp do programowania. Wykład 1

Programowanie w języku C++ Podstawowe paradygmaty programowania

Transkrypt:

Wstęp do Informatyki Program, proces tworzenia programu Środowisko programistyczne Języki programowania

Program - definicje Program jest przekładem problemu użytkownika na język maszyny Niklaus Wirth: "Program stanowi skonkretyzowane sformułowanie abstrakcyjnych algorytmów na podstawie określonej struktury danych" 2

Program Program jest wykonywany przez komputer, a dokładniej przez mikroprocesor. Wykonywany program znajduje się w pamięci operacyjnej. Programy w komputerze są zapisane w pamięci masowej w postaci plików. program 3

Program Program jest ciągiem instrukcji poleceń dla mikroprocesora Instrukcje są zazwyczaj wykonywane w kolejności ich zapisu w pamięci (jeśli nie ma skoków) Pamięć µp 4

Umiejętność programowania Programista powinien cechować się umiejętnością algorytmicznego postawienia zadania i rozwiązania go za pomocą mechanizmów dostępnych w danym języku programowania 5

Proces tworzenia programu Problem Projektowanie programu Czasochłonność poszczególnych faz: 33% Kodowanie 17% Testowanie 50% Program Jest to proces wieloetapowy i iteracyjny 6

Projektowanie programu Projektowanie programu jest procesem algorytmizacji problemu sprowadzenia problemu do zadania w postaci nadającej się do oprogramowania w wybranym języku programowania 7

Algorytm Zbiór reguł pozwalających mechanicznie wykonać czynności, składające się na realizację wybranego zadania W programowaniu algorytm jest rozkładem zadania obliczeniowego na operacje elementarne z punktu widzenia danego języka programowania 8

Algorytmizacja problemu Problem Zdefiniowanie zadania Wybór metody rozwiązania Podział na czynności elementarne Zapis (specyfikacja) algorytmu Kodowanie 9

Techniki specyfikacji algorytmu Opis słowny Zapis matematyczny Pseudokodowanie Prezentacja tabelaryczna Prezentacja graficzna - Schemat blokowy - Strukturogram 10

Elementy składowe schematów blokowych bloki funkcjonalne Początek lub koniec programu START STOP Blok wprowadzania lub wyprowadzania danych Blok przetwarzania danych Rozgałęzienie ścieżki programu 11

Reguły tworzenia schematów blokowych Poszczególne operacje są opisywane wewnątrz bloków Ścieżka programu jest reprezentowana strzałkami łączącymi bloki Wprowadź x, y, z START Rozgałęzienie programu następuje w wyniku sprawdzenia prawdziwości wybranego wyrażenia Schematy można przenosić na następną stronę a a Czy x>2? Tak Nie 12

Przykład schematu blokowego - obliczanie obwodu trójkąta START Wprowadź boki: a, b, c Czy a+b<c? Nie Czy a+c<b? Nie Czy b+c<a? Nie O=a+b+c Tak Tak Tak Pisz: "nie można zbudować trójkąta" Pisz: Obwód=",O STOP 13

Kodowanie Kodowanie algorytmu polega na jego zapisie w formie zrozumiałej dla komputera (programu tłumaczącego na ciąg instrukcji) Kodowanie wymaga znajomości wybranego języka programowania Kodowanie jest zazwyczaj realizowane z użyciem komputera, na który jest tworzony program. (W przeszłości stosowano specjalne maszyny do pisania programów) Źródło: http://pl.wikipedia.org/ 14

Język programowania Język programowania pozwala na zakodowanie utworzonego algorytmu Język programowania pozwala formalnie opisać realizowane zadanie Język programowania jest zrozumiały dla maszyny (komputera) lub programu tłumaczącego utworzony zapis na kod zrozumiały dla maszyny 15

Język programowania definicje elementów składowych języka Alfabet zbiór liter, cyfr i znaków specjalnych, wykorzystywanych podczas kodowania programu Składnia zbiór reguł łączenia ze sobą znaków w łańcuchy symboli Semantyka znaczenie tworzonych łańcuchów, reguły rozumienia utworzonego zapisu 16

Środowisko programowania Środowisko sprzętowe komputer Środowisko programistyczne: - system operacyjny - edytor - kompilator danego języka - konsolidator (linker) - debugger Integrated Development Environment (IDE) 17

Klasyfikacja języków programowania Język wewnętrzny (maszynowy) Język symboliczny (asembler) Języki symboliczne wysokiego poziomu: - liniowe - proceduralne (strukturalne) - obiektowe - inne 18

Język wewnętrzny Język wewnętrzny (maszynowy) jest definiowany operacjami realizowanymi przez mikroprocesor Lista instrukcji jest zbiorem wszystkich operacji wykonywanych przez mikroprocesor Odpowiednio uporządkowany ciąg instrukcji stanowi program kod maszynowy 19

Język symboliczny - asembler Asemblery są językami powstałymi na bazie języka maszynowego danego mikroprocesora przez zastąpienie kodów instrukcji nazwami symbolicznymi mnemonikami. Asembler jest językiem niskiego poziomu, jedno polecenie asemblera odpowiada zazwyczaj jednemu rozkazowi mikroprocesora 20

Języki wysokiego poziomu W językach wysokiego poziomu instrukcje dla procesora zastąpiono bardziej złożonymi poleceniami, co zwiększyło zwartość i czytelność kodu programu Pojedyncze polecenie języka wysokiego poziomu jest tłumaczone na ciąg instrukcji dla procesora przez kompilator danego języka 21

Przykład tłumaczenia kodu w języku C na instrukcje mikroprocesora if(i<led8segdigits) 9180007B LDS R24,0x007B ;Load direct from data space 3084 CPI R24,0x04 ;Compare with immediate F458 BRCC PC+0x0C ;Branch if carry cleared timecounter--; 91800078 LDS R24,0x0078 ;Load direct from data space 91900079 LDS R25,0x0079 ;Load direct from data space 9701 SBIW R24,0x01 ;Subtract immediate from word 93900079 STS 0x0079,R25 ;Store direct to data space 93800078 STS 0x0078,R24 ;Store direct to data space 22

Języki programowania liniowego Pozwalają na pisanie kodu programu w postaci pojedynczego bloku, bez zastosowania procedur i funkcji. Definiują jedynie zmienne globalne. Wykorzystują instrukcję skoku (goto) do przenoszenia sterowania. Przykład: BASIC Program tłumaczący był wbudowywany do 8-bitowych mikrokomputerów osobistych. Źródło: http://pl.wikipedia.org/ 23

Języki strukturalne i proceduralne Języki strukturalne pozwalają tworzyć programy składające się z jednolitych bloków, bez konieczności stosowania instrukcji skoku Języki proceduralne zakładają tworzenie programu w postaci tzw. programu głównego i zbioru procedur lub funkcji, które mogą być wielokrotnie wywoływane poleceniami w programie głównym lub innych procedurach Języki proceduralne są jednocześnie językami strukturalnymi Przykłady języków proceduralnych: Fortran, Pascal, Modula, C, Ada 24

Języki strukturalne i proceduralne - cechy Ukierunkowanie na problem a nie na procesor Programy czytelne dla człowieka Całkowite operowanie na nazwach symbolicznych Stosowanie uogólnionych nazw operacji 25

Języki zorientowane obiektowo (obiektowe) Są to języki pozwalające programiście skupić uwagę na rozwiązywanym problemie, bez konieczności posiadania dogłębnej wiedzy o działaniu maszyny wykonującej program. Języki obiektowe separują programistę od sprzętu przez stosowanie abstrakcyjnych obiektów, go reprezentujących. Przykłady języków obiektowych: SMALLTALK, C++, Java 26

Języki obiektowe - główne założenia programowania obiektowego Wszystko jest obiektem Program jest zbiorem obiektów przekazujących sobie informację za pomocą komunikatów Każdy obiekt posiada własną pamięć Każdy obiekt posiada swój typ (klasę) Wszystkie obiekty określonego typu mogą odbierać te same komunikaty 27

Inne języki Języki programowania wizualnego VPL budowanie aplikacji z elementów graficznych (Prograph, AppWare, Simulink) Języki obiektowe czwartej generacji 4GL pozwalają na pisanie kodu w kilku językach i opisania zadania bardzo prostym kodem (SQL, Delphi, FOCUS, NATURAL) Ciągle powstają zarówno nowe języki jak i środowiska wspomagające programowanie. 28

Ewolucja języków programowania Nowe języki powstają na bazie wcześniej opracowanych. Rozszerzają ich funkcjonalność i zakres zastosowań. Źródło: http://pl.wikipedia.org/ 29

Programy tłumaczące - translatory Interpretery tłumaczą na bieżąco polecenia programu na kod maszynowy podczas wykonywania programu (łatwość interakcyjnego modyfikowania programu) Kompilatory tłumaczą cały program na kod maszynowy (duża szybkość wykonania programu) 30

Zastosowanie interpreterów i kompilatorów Interpretery Basic, PHP, Javascript, Kompilatory Fortran, Pascal, C, C++, Programy w niektórych językach nadają się dobrze zarówno do interpretacji jak i kompilacji. 31

Języki programowania dedykowane do szczególnych zastosowań Języki do obsługi baz danych SQL, Oracle, Ingres Języki sztucznej inteligencji LISP Języki opisu stron WWW HTML Języki programowania dokumentów - TEX Języki do modelowania trójwymiarowego VRML Języki modelowania matematycznego - MATLAB Języki symulacyjne SIMULINK 32