II. Języki programowania



Podobne dokumenty
II. Języki programowania

MATERIAŁY DO ZAJĘĆ II

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

Microsoft IT Academy kurs programowania

Programowanie RAD Delphi

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

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

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

Język programowania PASCAL

Środowiska i platformy programistyczne

Język ludzki kod maszynowy

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

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

Programowanie Komputerów

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

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

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

Tworzenie aplikacji w języku Java

Programowanie obiektowe zastosowanie języka Java SE

Wstęp do programowania. Wykład 1

Programowanie C# mgr in. Dariusz Ku. p. 119A

Podstawy programowania wykład

Metodyki i Techniki Programowania MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

Podstawy i języki programowania

Programowanie obiektowe

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

Podstawy programowania w języku C

Programowanie obiektowe

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

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

Programowanie w środowiskach graficznych. Wykład 3 Język C#

Programowanie strukturalne język C - wprowadzenie

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

Programowanie współbieżne i rozproszone

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

Wstęp do programowania

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Języki i paradygmaty programowania - 1

Programowanie komputerów

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Java EE produkcja oprogramowania

Algorytmy i struktury danych. wykład 1

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

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!

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

Programowanie obiektowe

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

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Spis treści. 1 Java T M

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

Powtórka algorytmów. Wprowadzenie do języka Java.

2. Składnia, środowisko i konwencje w Javie

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

Programowanie Komputerów

Powtórka algorytmów. Wprowadzenie do języka Java.

WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}

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

Programowanie obiektowe

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

ForPascal Interpreter języka Pascal

Metodyka programowania. Podstawy C#

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

Wykład 1

Programowanie proceduralne w języku C++ Podstawy

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

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

1 Podstawy c++ w pigułce.

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

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

Platformy Programistyczne Podstawy języka Java

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Programowanie w Internecie. Java

Język C++ Różnice między C a C++

Podstawy programowania - 1

Wstęp do programowania

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy

Wprowadzenie do języka Java

Szablony funkcji i szablony klas

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

Podstawy informatyki (3)

Java jako język programowania

( wykł. dr Marek Piasecki )

Programowanie, algorytmy i struktury danych

Definicje. Algorytm to:

Pascal - wprowadzenie

Programowanie w języku Python. Grażyna Koba

Ćwiczenie 1. Przygotowanie środowiska JAVA

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

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

Technologie informacyjne - wykład 12 -

76.Struktura oprogramowania rozproszonego.

Interpreter - EasyCompile

Podstawowe części projektu w Javie

Transkrypt:

II. Języki programowania 1/30 Człowiek: Algorytm => program tworzy algorytm zapisuje algorytm w postaci programu (postać źródłowa) Komputer: tłumaczy program do kodu maszynowego (postać wykonywalna) wykonuje program 2/28

Etapy programowania Etap projektowania defnicja i analiza problemu specyfikacja rozwiązania problemu układanie i zapis algorytmu sprawdzenie poprawności rozwiązania (zgodności ze specyfikacją) Etap implementacji kodowanie (tłumaczenie algorytmu na język programowania) translacja (do kodu maszynowego) testowanie i usuwanie błędów (z pomocą komputera) Etap instalacji na docelowym komputerze Etap uŝytkowania i pielęgnacji 3/28 Dokumentacja WaŜne algorytm dokumentacja techniczna dokumentacja uŝytkowa komentarze Błędy w programie (ale nie na sprawdzianie ) Koszty błędów na poszczególnych etapach Rola testowania i uruchamiania Błędy kompilacji, wykonania, algorytmu będzie wykład! 4/28

Rozwój języków programowania Generacje języków: Układ przełączników i przekaźników (ENIAC) 1 GL (język maszynowy) 2 GL (assembler( assembler,, translator) 3 GL FLOW-MATIC - 1952 Grace Hopper; FORTRAN (IBM, 1954 57) 57) C, C++, Pascal, Java, Delphi, C#, 4 GL (języki zapytań, generatory raportów, przetwarzanie danych, analiza i raportowanie) SQL, FOCUS, PL/SQL, NATURAL, Progress 4GL, BuildProfessional, GEMBase,, IDL-PV/WAVE, LINC, NATURAL, Clarion, Ab Initio,, ABAP, Aubit-4GL, Informix-4GL, 5 GL Prolog, Lisp 5/28 Od źródła do kodu Pojęcie translatora interpreter kompilator kompilator skrośny (cross( cross-compilercompiler inna platforma) kod pośredni (pre( pre-kod) środowisko uruchomieniowe Java,,.NET Zintegrowane środowisko programistyczne (Integrated Development Environment,, IDE) - aplikacja do: tworzenia, modyfikowania, testowania konserwacji oprogramowania. 6/28

Dydaktyka-Pascal Algol Pascal (Blaise( Pascal), Niklausa Wirtha,, 1970 The programming language Pascal, Acta Informatica 1/1971 The programming language Pascal (Revised( Report), Bericht der Fachrgruppe Computer Wissenschaften 5/1972 pierwszy podręcznik: Jensen, Wirth, Pascal, User Manual and Report 1974. Pierwotnie: do nauki programowania strukturalnego. Szczyt popularności: lata 80, początek 90 Borland International Turbo Pascal dialekt obiektowy: Object Pascal (w Delphi, Kyliksie Borland). Wolne: kompilator- Free Pascal, środowisko IDE- Lazarus. Ciekawe linki: www.freepascal.org - darmowy, 32-bitowy kompilator Pascala www.pascal.eu.org - kurs programowania w Pascalu dla początkujących http://turbopascal.helion.pl turbopascal.helion.pl - Turbo Pascal. Programowanie, Helion,, dostępne w internecie www.centrumpascal.republika.pl - kursy i artykuły dot. TP 7/28 Od C do C#... Dennis Ritchie,, 1972 roku. 1973 - jądro UNIXa zostało przepisane w C. 1978 Brian Kernigham i Dennis Ritchie AT&T Bell Laboratories, Dennis ksiąŝka C Programming Language,, (biblia) 1989 Amerykański Narodowy Instytut Standaryzacji standard języka C (ANSI( C). C 80: B. Stroustrup,, AT&T Bell Laboratories: C++ (obiektowo) 1999 Anders Hejlsberg (TurboPascal, Delphi, Visuala J++, C#): # - to hash; ; ale C# to C-sharp 8/28

Struktura programu Program zrozumiany przez komputer (moŝliwy do przetłumaczenia) napisany zgodnie ze sztywnymi regułami uŝywanie jedynie specjalnych kombinacji wybranych symboli i tzw. słów kluczowych. Zestaw takich reguł to składnia języka programowania. 9/28 Struktura programu (uproszczona) class Hello { } C# static void Main() { pierwsza instrukcja; druga instrukcja;... ostatnia instrukcja } Pascal program nazwaprogramu Programu; sekcja deklaracji begin sekcja programu: pierwsza instrukcja; druga instrukcja;... ostatnia instrukcja end. 10/28

Punkt startowy Od metody Main,, czyli w pliku źródłowym: static void Main(string[] args) lub static void Main() teŝ: public static pojęcia: metoda, void Programowanie Obiektowe moŝna przyjąć Ŝe metoda to pewne polecenie (funkcja, procedura) nie jest bezpośrednio instrukcją danego języka kompilator potrafi zamienić to na ciąg instrukcji. Za metodą Main - blok kodu pewna logiczna całość, złoŝony z instrukcji programu, zamknięty nawiasami klamrowymi. Program: kolekcja klas static void Main() { instrukcja1; instrukcja2;... instrukcjan; } 11/28 Przestrzeń nazw Klasy umieszczane są w pewnych logicznych pudełkach na nazwy - namespace namespace PierwszyProgram { class Program { static void Main(string[] args) { } } } JeŜeli tylko jedna przestrzeń nie trzeba definiować 12/28

Nazwy Nazwa kwalifikowana (bezwzględna) klasy: PierwszyProgram.Program skrócona (w programie): Program takŝe sięgnięcie do innej przestrzeni nazw: using np. using System; oznacza, Ŝe jeŝeli kompilator nie rozpoznaje jakiejś nazwy w bieŝącym kontekście, powinien sprawdzić przestrzeń nazw System. 13/28 Ogólne zasady formatowania kodu KaŜdą instrukcję kończ znakiem średnika ; UwaŜaj na wielkość liter! main <> Main UŜywaj wcięć, róŝnicuj bloki zagnieŝdŝone Stosuj komentarze komentarz w linii //tre treść komentarza komentarz blokowy /* treść komentarza */ Dla kogo komentarz? Wykorzystuj IntelliSense pomoc środowiska Visual Studio automatycznie uzupełnia i formatuje nazwy 14/28

Zasady dot. nazw Identyfikator to ciąg znaków a-z, A-Z (duŝe i małe litery są rozróŝniane) 0-9, znak podkreślenia _ Pierwszym znakiem musi być litera lub _! dobrze: x, Xmax,, Xk_10, zm5, ZM5,, _ (!!!) źle: 6, 2zmienna, class,, ile dni, ile-dni konwencja nazwa dla programisty źle: x1, x2, z50, z34 dobrze: iledni, pensjapracownika, saldokonta zwyczajowo: całkowite: i, j, k, l, m, n 15/28 Operacja Out Operacje In/Out wypisanie tekstu na ekranie Console.WriteLine("Tekst do wypisania"); Console.Write("Tekst do wypisania"); Operacja In pobranie danych z klawiatury Console.ReadLine(); Console.Read(); W przestrzeni nazw System System.Console.WriteLine("Tekst "); using System lub using System.Console operacje we - wy 16/28

Pierwszy przykład program hello; begin writeln( ( Hello world ) end. słowo kluczowe, instrukcja Co potrafi komputer? dziedzina algorytmiczna 17/28 Dziedzina algorytmiczna Dziedziną algorytmiczną nazywamy system gdzie: A =< Α; r1,..., rk; f1,..., fl > A pewien niepusty zbiór, tzw. nośnik r 1,, r k relacje określone na elementach tego zbioru, f 1,, f l operacje (funkcje) określone na elementach ze zbioru A i dające wynik w zbiorze A, funkcje nie muszą być całkowite (określone dla kaŝdego zestawu argumentów) Ten zestaw operacji i relacji, którymi dysponujemy decyduje o moŝliwości opisywania algorytmów słuŝy do określenia tzw. złoŝoności algorytmu jest to miara słuŝąca do porównywania róŝnych algorytmów 18/28

Przykłady dziedzin algorytmicznych Arytmetyka 4 (?) klasa SP zbiór: liczby R, operacje: +, -, *, / relacje: <, >,,, = NWD(a,, b) (Euklides1 np. 72 i 20) zbiór: liczby N, operacje: -, zamień relacje: =, <, NWW (a, b) = a*b/nwd(a NWD(a,, b)? Dziedzina dla równania kwadratowego? 19/28 W języku programowania Na czym wykonywane są operacje? Jakie operacje są dostępne? dozwolone? dziedzina algorytmiczna to typ danych Typy danych w C# wartościowe (prosty, wyliczeniowy, struktura) bezpośrednio zawierają wartości dane referencyjne (klasa, interfejs, delegacja, tablica) zawierają referencję do właściwej danej 20/28

Typy wartościowe (wybrane) Category Bits Type Range/Precision całkowite ze znakiem 8 16 32 sbyte short int 128...127 32,768...32,767 2,147,483,648...2,147,483,647 64 long 9,223,372,036,854,775,808...9,223,372,036,854,775,807 całkowite bez znaku 8 16 byte ushort 0...255 0...65,535 32 uint 0...4,294,967,295 64 ulong 0...18,446,744,073,709,551,615 zmiennoprzecinko we 32 64 128 float double decimal 1.5 10 45 to 3.4 10 38, 7-digit precision 5.0 10 324 to 1.7 10 308, 15-digit precision 1.0 10 28 to 7.9 10 28, 28-digit precision 21/28 Pozostałe (wybrane) Bits Type Range 16 8 char Bool enum string struct Typy referencyjne: Class types Interface types Array types Delegate types Unicode characters Boolean User-defined types of the form enum E {...} Unicode character strings User-defined types of the form struct S {...} 22/28

Stałe logiczne (bool) true; false; Stałe całkowite (int Literały int, sbyte, short, long, byte ) dziesiętne: 0; 12; -234; szesnastkowe: 0xFF; -0xAF; Stałe rzeczywiste (float, double, decimal ) 2.3; 2.3e2;.23; 4f; -2.3e-10; Stałe znakowe (chr) 'a'; 'X'; '1'; '\'';' ''; '\\';' '; '\x004d';' '\xc'' Stałe napisowe (string) "Napis"; "\"Pan" "Pan Tadeusz\""; @"C: C:\Kurs\"; Stałe nazwane (const) const double PI = 3.14159265; 23/28 Zmienne Pole koła to: πr 2 (dla dowolnego koła a o promienmiu r) Program: dla dowolnych ( )( ) danych deklaracja zmiennych (raz( w bloku!) inicjalizacja zmiennych (opcja( opcja) przeznaczone do przechowywania danych określonego typu Przykład: int wys; ; // deklaracja zmiennej typu int o nazwie wys double pole; // dekl.. zmiennej typu double o nazwie pole string s; //sekwencja znaków kilka zmiennych tego samego typu: int wys, szer,, dl, obj; int n, m, r; char litera1, litera2; 24/28

Zmienne, identyfikatori dentyfikatory typ nazwa[=wyraŝenie] [,nazwa_n[=wyraŝenie_n] ]; int x; int a = 10, b = 20, c; Nazwa - identyfikator: składa się z liter, cyfr i znaku podkreślenia nie moŝe zaczynać się od cyfry nie moŝe być słowem kluczowym abstract, event, new, struct,, as, explicit, null,, musi być unikalna w bloku kodu! moŝna, ale wielkość liter!!! 25/28 Konwencje Nieprzestrzeganie nie powoduje błędów, ale: świadczy o dobrym stylu ułatwia późniejszą analizę. Zasady: stosuj identyfikatory mówiące, do czego słuŝy zmienna; nazwa powinna mieć konkretne znaczenie, uŝywaj formatu PascalCase lub formatu camelcase PascalCase: WriteLine, ReadLine, Console, SByte formatu uŝywamy dla nazw typów, stałych nazwanych, właściwości, przestrzeni nazw. camelcase: loopcountmax formatu uŝywamy dla nazw zmiennych lokalnych, parametrów funkcji. unikaj znaku podkreślenia, nie uŝywaj notacji węgierskiej (prefiks - informacja o typie zmiennej), unikaj skrótów i akronimów (jeŝeli, to powszechnie znane i rozumiane), stosuj w miarę moŝliwości nazwy anglojęzyczne (szczególnie przy tworzeniu bibliotek), nie mieszaj języków (np. w nazwach słów angielskich i polskich) http://home.comcast.net/~lancehunt/csharp_coding_standards.pdf home.comcast.net/~lancehunt/csharp_coding_standards.pdf, http://www.idesign.net/idesign/download/idesign Csharp Coding Standard.zip 26/28

Korzystanie z Visual Studio Pojęcie projektu (Project( Project) to logiczny pojemnik na wszystkie elementy, który słuŝą do budowy aplikacji. plik *.csproj Pojęcie rozwiązania (Solution( Solution) kontener, w którym osadzony jest projekt zawiera projekty, pliki i metadane,, które ułatwiają definiowanie rozwiązania jako spójnej całości. przykład: baza danych + lokalny interfejs administratora + zdalny (www) w) interfejs uŝytkowników plik *.sln Szablon projektu dostarcza kolekcję plików, szablon kodu, właściwości projektu 27/28 Wybór szablonu 28/28

Interfejs graficzny środowiska Zarządzanie projektem okno Solution Explorer okno programu Kompilacja, budowa i poprawa błędów Uruchamianie programu 29/28 Interfejs środowiska 30/28