Podstawy Informatyki dla Nauczyciela

Podobne dokumenty
Wykład 1

WPROWADZENIE DO JĘZYKA JAVA

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

Java jako język programowania

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

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

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

Podstawy programowania w Pythonie

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

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

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

Podstawy programowania wykład

Programowanie I. Wprowadzenie. Proces programowania

Java EE produkcja oprogramowania

Programowanie obiektowe zastosowanie języka Java SE

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

Podstawy języka Java. przygotował:

Programowanie obiektowe. Wprowadzenie

Wstęp do programowania. Wykład 1

GRAMATYKI BEZKONTEKSTOWE

Programowanie obiektowe

Język JAVA podstawy programowania

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Wstęp do Programowania 2

Tworzenie oprogramowania

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

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

Wstęp do programowania

Spis treści. 1 Java T M

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

Programowanie komputerów

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

Języki i gramatyki formalne

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

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

Wstęp do Programowania Obiektowego. Wykład 13 Paradygmaty. Składnia i semantyka.

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

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

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Języki programowania zasady ich tworzenia

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

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

Wykład 1: Wprowadzenie do technologii Java

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

Programowanie Proceduralne

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 I. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

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

Środowiska i platformy programistyczne

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

Język ludzki kod maszynowy

Metodologie programowania

Programowanie I. Kornel Warwas. ATH Katedra Matematyki i Informatyki

1 Podstawy c++ w pigułce.

Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja!

Ćwiczenie 1. Przygotowanie środowiska JAVA

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

Zadanie 2: Arytmetyka symboli

Wprowadzenie do programowania języki i gramatyki formalne. dr hab. inż. Mikołaj Morzy

Programowanie proceduralne w języku C++ Podstawy

Historia i podstawowe koncepcje. Tomasz Borzyszkowski

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

Programowanie w języku Python. Grażyna Koba

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

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

Metody Kompilacji Wykład 1 Wstęp

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Tworzenie aplikacji w języku Java

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

Podstawy Programowania. Wykład 1

Podstawy i języki programowania

Laboratorium Programowania Kart Elektronicznych

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

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

Podstawy Programowania

Informatyka I. dr inż. Andrzej Czerepicki.

JDK można pobrać ze strony

Wstęp do programowania w języku Java

Podstawy programowania - 1

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

KONSTRUKCJA KOMPILATORÓW

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

Algorytm. a programowanie -

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

WPROWADZENIE DO JĘZYKA JAVA

Podstawy programowania. Wprowadzenie

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

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

1 Podstawy c++ w pigułce.

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

1.Wstęp. 2.Generowanie systemu w EDK

Podstawy programowania w Pythonie

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

Programowanie obiektowe i C++ dla matematyków

Podstawy programowania obiektowego

C# /.NET. Copyright by 3bird Projects 2018,

Podstawy Programowania.

Transkrypt:

Podstawy Informatyki dla Nauczyciela Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 1 / 39

Języki porgramowania Co to jest? Język programowania jest sztucznym językiem pozwalajacym na zapisywanie algorytmów i innych zadań jakie komputer ma wykonać. Język programowania jest językiem komunikacji człowiek - komputerem. Język programowania jest zestawem poleceń dla komputera, których odpowiednie połaczenie tworzy zorganizowany program. Język programowania posiada swoja gramatykę czyli zasady określajace jego użycie. (tzw. Składnia). Język programowania posiada swoja semantykę czyli zasady jego interpretacji. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 2 / 39

Elementy języka Gramatyka - Składnia Składnia to zbiór reguł określajacy formalnie poprawne konstrukcje językowe. Składnia jest głównym elementem, za pomoca którego rozróżnia się języki programowania. Dla przykładu operator przypisania w języku Pascal ma postać: := a w języku C++ ma postać =. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 3 / 39

Elementy języka Gramatyka - Składnia BNF Składnia to zbiór reguł określajacy formalnie poprawne konstrukcje językowe. Składnia jest głównym elementem, za pomoca którego rozróżnia się języki programowania. Dla przykładu operator przypisania w języku Pascal ma postać: := a w języku C++ ma postać =. Składnia języków programowania (formalnych) jest zapisywana w tzw. notacji Backusa-Naura (ang. Backus-Naur form). Została ona wymyślona przez Johna Backusa w latach 50. w czasie praca nad językiem Fortran, a następnie zmodyfikowana przez Petera Naura i użyta do zdefiniowania składni języka Algol. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 3 / 39

Gramatyki bezkontekstowe Alfabet V = {v 0,..., v n } - dowolny skończony i niepusty zbiór symboli (liter), z których będa zestawiane słowa języka. Słowo nad alfabetem V - wszystkie skończone, uporzadkowane ciagi złożone z elementów alfabetu. Słowo puste, e - słowo nie majace żadnej litery. Język uniwersalny V - zbiór wszystkich słów nad alfabetem V. Język - dowolny podzbiór języka uniwersalnego V nad V. Gramatyka formalna nazywamy sposób opisu języka formalnego, czyli podzbioru zbioru wszystkich słów skończonej długości nad danym alfabetem. Przykład: Jeśli V = {a, b}, to V = {e, a, b, aa, ab, bb, aaa, aab,...}. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 4 / 39

Gramatyki bezkontekstowe Formalnie gramatyka to krotka G = (V, T, P, S), gdzie: V - zbiór symboli terminalnych - skończony, niepusty zbiór symboli końcowych, z których budowane sa słowa generowane przez gramatykę (zwany czasem alfabetem końcowym), T - zbiór symboli nieterminalnych - skończony, niepusty zbiór symboli pomocniczych, P - lista produkcji - reguły gramatyki, S - symbol startowy (aksjomat) - jest to wyróżniony symbol pomocniczy, z niego wyprowadzane sa wszystkie generowane przez gramatyk G słowa. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 5 / 39

Gramatyki bezkontekstowe Przykład: Reguły definiujace język postaci V = {1, 11, 111,...}, sa następujace: Symbol poczatkowy: S Produkcje (reguły zastępowania): 1: S 1 2: S S 1 Wywód: 1:= S 1 1 111 := S 2 S1 2 S11 1 111 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 6 / 39

BNF Przykład Gramatyka (bezkontekstowa) generujaca liczby binarne: <liczba binarna> ::=<liczba binarna><cyfra> <liczba binarna> ::=<cyfra> <cyfra> ::= 0 1 Gramatyka ma więc następujac a postać ogólna G = (V, T, P, S): V = {0, 1}, T = {< liczbabinarna >, < cyfra >}, P = {< liczbabinarna >::=< liczbabinarna >< cyfra >; < liczbabinarna >::=< cyfra >; < cyfra >::= 0 1}, S =< liczbabinarna >. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 7 / 39

BNF Przykład Gramatyka (bezkontekstowa) generujaca liczbę naturalna: <zero>::= 0 Przykład wartości: 0 <cyfra niezerowa>::= 1 2 3 4 5 6 7 8 9 Przykład wartości: 1, 2, 3 <cyfra>::= <zero> <cyfra niezerowa> Przykład wartości: 0, 1, 2, 3 <ciąg cyfr>::= <cyfra> <cyfra><ciąg cyfr> Przykład wartości: 0, 1, 01, 23, 99, 10023, 000001 <liczba naturalna>::= <cyfra> <cyfra niezerowa><ciąg cyfr> Przykład wartości: 0, 1, 2, 3456, 406, 556066 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 8 / 39

Zadanie Przykład Dany jest język L(G) nad gramatyka G =< V, T, P, S >, gdzie V = {a, b}, T = {S, A}, P = { (1) S aas; (2) S a; (3) A SbA; (4) A SS; (5) A ba; }. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 9 / 39

Zadanie Przykład Dany jest język L(G) nad gramatyka G =< V, T, P, S >, gdzie V = {a, b}, T = {S, A}, P = { (1) S aas; (2) S a; (3) A SbA; (4) A SS; (5) A ba; }. Czy słowo aabbaa należy do języka? TAK Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 9 / 39

Zadanie Przykład Dany jest język L(G) nad gramatyka G =< V, T, P, S >, gdzie V = {a, b}, T = {S, A}, P = { (1) S aas; (2) S a; (3) A SbA; (4) A SS; (5) A ba; }. Czy słowo aabbaa należy do języka? TAK Uzasadnienie: aabbaa := S 1 aas 3 asbas 2 aabas 5 aabbas 2 aabbaa. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 9 / 39

Zadanie Przykład Dany jest język L(G) nad gramatyka G =< V, T, P, S >, gdzie V = {a, b}, T = {S, A, B}, P = { (1) S asb; (2) S aas; (3) S abs; (4) S Sba; (5) S ab; (6) A aa; (7) B bb; }. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 10 / 39

Zadanie Przykład Dany jest język L(G) nad gramatyka G =< V, T, P, S >, gdzie V = {a, b}, T = {S, A, B}, P = { (1) S asb; (2) S aas; (3) S abs; (4) S Sba; (5) S ab; (6) A aa; (7) B bb; }. Czy słowa aababbabb, aaaaabbb należa do języka? Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 10 / 39

Zadanie Przykład Dany jest język L(G) nad gramatyka G =< V, T, P, S >, gdzie V = {a, b}, T = {S, A, B}, P = { (1) S asb; (2) S aas; (3) S abs; (4) S Sba; (5) S ab; (6) A aa; (7) B bb; }. Czy słowa aababbabb, aaaaabbb należa do języka? aababbabb := S 1 asb 7 asbb 3 aabsbb 4 aabsbabb 5 aababbabb: TAK Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 10 / 39

Zadanie Przykład Dany jest język L(G) nad gramatyka G =< V, T, P, S >, gdzie V = {a, b}, T = {S, A, B}, P = { (1) S asb; (2) S aas; (3) S abs; (4) S Sba; (5) S ab; (6) A aa; (7) B bb; }. Czy słowa aababbabb, aaaaabbb należa do języka? aababbabb := S 1 asb 7 asbb 3 aabsbb 4 aabsbabb 5 aababbabb: TAK aaaaabbb := S 2 aas 6 aaas 1 aaaasb 7 aaaasbb 5 aaaaabbb: TAK Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 10 / 39

Zadanie Podaj przykład gramatyki G generujacej język L(G) = {a n b n : n N} Odpowiedź: G =< V, T, P, S > jest postaci V = {a, b}, T = {S}, P = { (1) S e; (2) S asb; }. Przykładowe słowo: aabb := S 2 asb 2 aasbb 1 aaebb = aabb. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 11 / 39

Zadanie Podaj przykład gramatyki G generujacej język L(G) = {w : w {a, b} w = w R }, który jest językiem wszystkich palindromów (wyrazów, które wygladaj a tak samo niezależnie od tego, czy czytamy je normalnie, czy od tyłu) nad alfabetem {a, b}. Odpowiedź: G =< V, T, P, S > jest postaci V = {a, b}, T = {S}, P = { (1) S e; (2) S asa; (3) S bsb; (2) S a; (2) S b; }. Przykładowe słowo: abaaba := S 2 asa 3 absba 2 abasaba 1 abaeaba = abaaba. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 12 / 39

Elementy języka Semantyka Definiuje ona znaczenie poszczególnych symboli i funkcji. Najczęściej definiuje się ja słownie ze względu na zrozumiałość dla ludzi. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 13 / 39

Elementy języka Semantyka Definiuje ona znaczenie poszczególnych symboli i funkcji. Najczęściej definiuje się ja słownie ze względu na zrozumiałość dla ludzi. Typy danych Każdy język operuje na danych. Z tego względu niezbędne jest podzielenie ich na różne typy. Na przykład: typ całkowity typ rzeczywisty (liczby zmiennoprzecinkowe) typ logiczny (false/true) typ łańcuchowy (ciag znaków) Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 13 / 39

Elementy języka Standardowe Biblioteki Biblioteka zawiera funkcje i procedury pozwalajace realizować różnego rodzaju zadania. Na przykład: Obsługa wejścia-wyjścia. Obsługa plików. Zarzadzanie pamięcia. Operacje na ciagach tekstowych. Obsługa wielowatkowości. itp. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 14 / 39

Języki porgramowania Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla 17 Nauczyciela Wykład 11 15 / 39 Obecnie na świecie istnieje wiele języków programowania i ciagle powstaja nowe. Najpopularniejsze języki programowania (kolejność zgodna z http://www.tiobe.com/index.php/content/ paperinfo/tpci/index.html) 1 C 2 Java 3 C++ 4 Objective-C 5 C# 6 PHP 7 Visual Basic 8 Python 9 Perl 10 JavaScript 11 Ruby 12 Visual Basic.NET 13 PL/SQL 14 Delphi/Object Pascal 15 Lisp 16 Logo

Historia C i C++ w wielkim skrócie Przed C++ istniał język C. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 16 / 39

Historia C i C++ w wielkim skrócie Przed C++ istniał język C. Język C został zaprojektowany przez Dennisa Ritchie ego w laboratoriach Bella, w latach 70-tych XX wieku, a jego poprzednikiem był interpretowany język B, który Ritchie rozwinał właśnie w język C. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 16 / 39

Historia C i C++ w wielkim skrócie Przed C++ istniał język C. Język C został zaprojektowany przez Dennisa Ritchie ego w laboratoriach Bella, w latach 70-tych XX wieku, a jego poprzednikiem był interpretowany język B, który Ritchie rozwinał właśnie w język C. Język C przeznaczony był głównie do pisania platform operacyjnych oraz aplikacji niższego rzędu. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 16 / 39

Historia C i C++ w wielkim skrócie Przed C++ istniał język C. Język C został zaprojektowany przez Dennisa Ritchie ego w laboratoriach Bella, w latach 70-tych XX wieku, a jego poprzednikiem był interpretowany język B, który Ritchie rozwinał właśnie w język C. Język C przeznaczony był głównie do pisania platform operacyjnych oraz aplikacji niższego rzędu. Pierwszy okres rozwoju języka C to lata 1969-1973. W szczególności w roku 1973 w języku C udało się zaimplementować jadro (ang. kernel) systemu operacyjnego Unix. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 16 / 39

Historia C i C++ w wielkim skrócie Przed C++ istniał język C. Język C został zaprojektowany przez Dennisa Ritchie ego w laboratoriach Bella, w latach 70-tych XX wieku, a jego poprzednikiem był interpretowany język B, który Ritchie rozwinał właśnie w język C. Język C przeznaczony był głównie do pisania platform operacyjnych oraz aplikacji niższego rzędu. Pierwszy okres rozwoju języka C to lata 1969-1973. W szczególności w roku 1973 w języku C udało się zaimplementować jadro (ang. kernel) systemu operacyjnego Unix. W roku 1978 Brian Kernighan i Dennis Ritchie opublikowali dokumentację języka: The C Programming Language (wydanie polskie, Język ANSI C). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110163-3. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 16 / 39

Historia C i C++ w wielkim skrócie Wersja języka C opisana w The C Programming Language często nazywana jest K&R C (od nazwisk autorów), aby odróżnić ja od późniejszego standardu C89 wprowadzonego w roku 1989, nazywanego dziś ANSI C lub też Standard C. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 17 / 39

Historia C i C++ w wielkim skrócie Wersja języka C opisana w The C Programming Language często nazywana jest K&R C (od nazwisk autorów), aby odróżnić ja od późniejszego standardu C89 wprowadzonego w roku 1989, nazywanego dziś ANSI C lub też Standard C. W roku 1990 standard ANSI C został zmodyfikowany i nazwany C90. W roku 1999 standard C90 został zmodyfikowany i nazwany C99. W roku 2007 ogłoszono pracę nad nowym standardem C1X. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 17 / 39

Historia C i C++ w wielkim skrócie Wersja języka C opisana w The C Programming Language często nazywana jest K&R C (od nazwisk autorów), aby odróżnić ja od późniejszego standardu C89 wprowadzonego w roku 1989, nazywanego dziś ANSI C lub też Standard C. W roku 1990 standard ANSI C został zmodyfikowany i nazwany C90. W roku 1999 standard C90 został zmodyfikowany i nazwany C99. W roku 2007 ogłoszono pracę nad nowym standardem C1X. W latach 1983-1985, w laboratoriach Bella, język C został udoskonalony przez Bjarne Stroustrupa i nazwany językiem C++; C++ wzbogacił C o możliwość programowania obiektowego. C++ stał się językiem programowania powszechnego użytku, a jego wielka zaleta jest zgodność jego kodu źródłowego z kodem źródłowym języka C. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 17 / 39

Historia C i C++ w wielkim skrócie W październiku 1985 roku po raz pierwszy wydano komercyjna wersję języka C++. W tym samym roku Bjarne Stroustrup opublikował ksiażkę: The C++ Programming Language. Mimo uniwersalności języka C++, dopiero w latach 90-tych XX wieku został uznany jako jeden z najbardziej popularnych języków ogólnego użytku. C++ poczatkowo był głównie przeznaczony dla systemów UNIX. Wciaż język ten jest udoskonalany - wprowadzane sa poprawki ułatwiajace prace informatyków, a obecnie obowiazujacy stndard to: ISO/IEC 14882:2011. Oficjalna strona THE C++ STANDARDS COMMITTEE: http://www.open-std.org/jtc1/sc22/wg21/. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 18 / 39

Program w języku C Program w C to plik (zbiór) tekstowy, który zawiera instrukcje języka C (czyli ciagi znaków), zgodne z obowiazuj acym standardem tego języka (obecnie c99). Pliki z programami źródłowymi w języku C powinny mieć rozszerzenie c. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 19 / 39

Kompilacja programu w C Podstawowym (i najprostszym) poleceniem kompilacji pliku o nazwie plik.c jest gcc plik.c które w przypadku pomyślnym generuje plik wykonywalny o nazwie a.out umieszczony w tym samym katalogu, zaś w przypadku niepomyślnym wyświetla listę komunikatów o błędach. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 20 / 39

Kompilacja programu w C Jeśli chcemy, żeby plik wynikowy miał dowolna inna ustalona przez nas nazwę (rozszerzenie out nie jest obowiazkowe), możemy użyć polecenia postaci: gcc plik.c -o nazwa Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 21 / 39

Kompilacja programu w C Jeśli chcemy, żeby plik wynikowy miał dowolna inna ustalona przez nas nazwę (rozszerzenie out nie jest obowiazkowe), możemy użyć polecenia postaci: gcc plik.c -o nazwa Polecenie gcc umożliwia również jednoczesna kompilację i połaczenie w całość kilku plików źródłowych zawierajacych różne fragmenty (ale nie dowolne) jednego programu. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 21 / 39

Kompilacja programu w C Aby kompilować programy zgodne z najnowszym standardem c99 należy użyć następujacego polecenia: gcc -std=c99 plik.c -o nazwa Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 22 / 39

Kompilacja programu w C Aby kompilować programy zgodne z najnowszym standardem c99 należy użyć następujacego polecenia: gcc -std=c99 plik.c -o nazwa Aby kompilator gcc traktował ostrzeżenia jako błędy należy użyć następujacego polecenia: gcc -std=c99 -Wall plik.c -o nazwa Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 22 / 39

Kompilacja programu w C Aby kompilować programy zgodne z najnowszym standardem c99 należy użyć następujacego polecenia: gcc -std=c99 plik.c -o nazwa Aby kompilator gcc traktował ostrzeżenia jako błędy należy użyć następujacego polecenia: gcc -std=c99 -Wall plik.c -o nazwa Do przeprowadzania bardziej skomplikowanych kompilacji i łaczeń zalecany jest program make współpracujacy z zawierajacym polecenia dla niego plikiem Makefile. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 22 / 39

Kompilacja programu w C W przypadku pomyślnego przebiegu kompilacji kompilator gcc nie wyświetla żadnego komunikatu, zwraca jedynie sterowanie do linii poleceń. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 23 / 39

Kompilacja programu w C W przypadku pomyślnego przebiegu kompilacji kompilator gcc nie wyświetla żadnego komunikatu, zwraca jedynie sterowanie do linii poleceń. W przypadku błędów kompilator gcc wyprowadza na standardowe wyjście błędów (czyli zazwyczaj na ekran) od razu cała listę wykrytych błędów wraz z podanymi numerami linii programu, w których występuja. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 23 / 39

Prawie najprostszy program w C #include <stdio.h> int main(void) { printf("hello World!\n"); return 0; } Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 24 / 39

Przykładowy program w C Operatory arytmetyczne #include <stdio.h> int main (void) { int a = 100, b = 2, c =25, d = 4, result; result = a - b; // odejmowanie printf ("a - b = %i\n", result); result = b * c; // mnożenie printf ("b * c = %i\n", result); result = a / c; // dzielenie printf ("a / c = %i\n", result); result = a + b * c; // priorytety printf ("a + b * c = %i\n", result); printf ("a * b + c * d = %i\n", a * b + c * d); return 0; } Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 25 / 39

Przykładowy program w C #include <stdio.h> #include <stdlib.h> int main() { int n, cyfra, suma = 0; printf("n = "); scanf("%d", &n); printf("liczba: %d\n", n); do { cyfra = n%10; suma += cyfra; n /= 10; } while (n > 0); printf("suma cyfr: %d\n", suma); return 0; } Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 26 / 39

Kompilacja programu w C++ Program w C++ to zbiór funkcji, a każda funkcja to zbiór instrukcji. Program w C++ to plik (zbiór) tekstowy, który zawiera instrukcje języka C++ (czyli ciagi znaków), zgodne z obowiazuj acym standardem tego języka. Plik zawierajacy program w jezyku C++ powinien mieć rozszerzenie cpp (typowe dla kompilatorów firmy Microsoft, Borland) lub CC (typowe dla kompilatorów firmy Sun) lub cc. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 27 / 39

Prawie najprostszy program w C #include<iostream> int main() { std::cout << "Hello World!\n"; return 0; } Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 28 / 39

Prawie najprostszy program w C #include<iostream> using namespace std; int main() { cout << "Hello World!\n"; return 0; } Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 29 / 39

Przykładowy program w C++ #include <iostream> int main() { int n, cyfra, suma = 0; std::cout << "n = "; std::cin >> n; do { cyfra = n%10; suma += cyfra; n /= 10; } while (n > 0); std::cout << "Suma cyfr: " << suma << "\n"; return 0; } Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 30 / 39

Historia języka JAVA w wielkim skrócie 1990 - Bill Joy w raporcie Further sugeruje firmie Sun Microsystems stworzenie środowiska obiektowego na bazie C++. 1991 - W ramach projektu Green powstaje język OAK - Object Application Kernel (kerownik: James Gosling), przeznaczony dla aplikacji w elektronice powszechnego użytku. 1995 - zmiana nazwy na JAVA ze względu na zastrzeżenie nazwy OAK. 1996 - Pojawia się Netscape zgodny z Java 1.0, Sun propaguję darmowe środowisko JDK 1.0. 1999 - Java 2 Nowe oblicze Javy. Java jest językiem tworzenia programów źródłowych kompilowanych do kodu bajtowego, czyli postaci wykonywanej przez maszynę wirtualna. Jego podstawowe koncepcje zostały przejęte z języka Smalltalk (maszyna wirtualna, zarzadzanie pamięcia) oraz z języka C++ (duża część składni i słów kluczowych). Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 31 / 39

Platformy JAVY JSE (Java Standard Edition) dostarcza środowiska programistycznego do tworzenia aplikacji desktopowych oraz apletów na strony WWW, JEE (Java Enterprise Edition) dostarcza środowiska programistycznego do tworzenia rozbudowanych biznesowych aplikacji, stanowi rozszerzenie platformy JSE, JME (Java Micro Edition) dostarcza środowiska programistycznego do tworzenia aplikacji na niewielkie urzadzenia typu telefony komórkowe, Java Card technology dostarcza środowiska programistycznego do tworzenia oprogramowania dla inteligentnych kart (np. kart bankomatowych) o bardzo małej pamięci i niewielkiej mocy obliczeniowej. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 32 / 39

Platformy JAVY Firma Sun dostarcza dwa rodzaje platform JSE. Najbardziej rozpowszechniona, jest JRE. JRE (Java Runtime Environment) środowisko zawierajace niezbędne biblioteki oraz JVM czyli Wirtualna Maszynę Javy. JRE znajduje się na większości komputerów osobistych, jest bowiem niezbędne dla uruchamiania aplikacji Java w systemie. JDK (Java Development Kit) środowisko zawierajace JRE oraz dodatkowo narzędzia programistyczne, takie jak kompilator i debuger. JDK umożliwia pisanie własnych aplikacji. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 33 / 39

Jak działa Java? Program w języku Java to plik tekstowy zawierajacy program zapisany w języku Java. Zwyczajowo program zapisuje się w plikach z rozszerzeniem.java, np. hello.java. Kod źródłowy, czyli nasz plik z rozszerzeniem *.java kompilowany jest przez kompilator (javac) do kodu wynikowego plik *.class. Ten natomiast interpretowany jest przy pomocy interpretera (java) i uruchamiany w maszynie wirtualnej Javy. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 34 / 39

Prawie najprostszy program w C public class z1 { public static void main(string[] args) { System.out.println("Witaj w swiecie JAVY"); } } Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 35 / 39

Prawie najprostszy program w C import java.util.scanner; public class z2 { public static void main(string[] args) { int n=34, cyfra, suma = 0; System.out.print("n="); Scanner in = new Scanner(System.in); n = in.nextint(); do { cyfra = n%10; suma += cyfra; n /= 10; } while (n > 0); System.out.println("Suma cyfr: "+suma); } } Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 36 / 39

Krótka historia języka Python Python to interpretowany, interaktywny, skryptowy język programowania stworzony przez Guido van Rossuma w 1990. Język został tak nazwany w ślad za programem telewizyjnym BBC Latajacy cyrk Monty Pythona. Obecnie Python rozwijany jest jako projekt Open Source, zarzadzany przez Python Software Foundation, będac a organizacja non-profit. 3 grudnia 2008 roku został wydany Python 3.0. W stosunku do wcześniejszych wersji języka Python w wersji 3.0 wprowadzono wiele istotnych zmian, które spowodowały brak zgodności wstecz. Najnowsza wersja języka Python jest wersja 3.2.3, która została wydana 11 kwietniu 2012 roku. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 37 / 39

Krótka historia języka Python Python posiada w pełni dynamiczny system typów i automatyczne zarzadzanie pamięcia, jest zatem podobny do takich języków, jak Tcl, Perl, Scheme czy Ruby. Do zarzadzania pamięcia stosuje się architekturę garbage collection podobnie jak w języku Ruby czy Java. Python posiada wbudowane abstrakcyjne typy danych takie jak np. listy, krotki, zbiory i słowniki. W Pythonie możliwe jest programowanie obiektowe, programowanie strukturalne i programowanie funkcyjne. Cecha wyróżniajac a Pythona spośród innych jezyków jest stosowanie wcięć do wydzielania bloków kodu. Program napisany w jezyku Python najpierw kompilowany jest do postaci pośredniej, która następnie wykonywana jest przez Wirtualna Maszyne Pythona (PVM) Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 38 / 39

Kompilacja programu w Python Program (skrypt) w Pythonie to plik tekstowy zawierajacy program zapisany w języku Python. Zwyczajowo skrypty Pythona zapisuje się w plikach z rozszerzeniem.py, np. hello.py. Aby wykonać skrypt hello.py wydajemy w konsoli polecenie: python hello.py Mozemy tez uruchomić skrypt hello.py wydajac w konsoli polecenie:./hello.py o ile w pierwszej linii pliku hello.py znajduje się odwołanie do interpretera: #!/usr/bin/env python3 a ponadto plik hello.py ma ustawiony atrybut wykonywalności. Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 39 / 39

Prawie najprostszy program w Python #!/usr/bin/env python print("hello World!") Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 40 / 39

Prawie najprostszy program w Python #!/usr/bin/env python suma = 0 n = input("n=") cyfra = n%10; suma += cyfra; n /= 10; while (n > 0): cyfra = n%10; suma += cyfra; n /= 10; print("suma cyfr: ", suma) Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 11 41 / 39