II. Języki programowania

Podobne dokumenty
II. Języki programowania

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

MATERIAŁY DO ZAJĘĆ II

Microsoft IT Academy kurs programowania

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

Programowanie RAD Delphi

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

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

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

Język ludzki kod maszynowy

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

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

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

Wstęp do programowania. Wykład 1

Środowiska i platformy programistyczne

Język programowania PASCAL

Podstawy programowania wykład

Podstawy i języki programowania

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

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

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!

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

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

Programowanie komputerów

Podstawy programowania w języku C

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

Wstęp do programowania

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

Tworzenie aplikacji w języku Java

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

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

Programowanie Komputerów

Java EE produkcja oprogramowania

Języki i paradygmaty programowania - 1

Programowanie współbieżne i rozproszone

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

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

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

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

Programowanie proceduralne w języku C++ Podstawy

Programowanie strukturalne język C - wprowadzenie

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Spis treści. 1 Java T M

Programowanie obiektowe

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

1 Podstawy c++ w pigułce.

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

Definicje. Algorytm to:

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

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

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

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

Podstawy programowania - 1

Wstęp do programowania

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

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

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

Java jako język programowania

Programowanie obiektowe zastosowanie języka Java SE

Podstawy informatyki (3)

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

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

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

Technologie informacyjne - wykład 12 -

Programowanie w języku Python. Grażyna Koba

Programowanie w Internecie. Java

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Programowanie obiektowe

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

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

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

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Wstęp do programowania

Algorytmy i struktury danych. wykład 1

1 Podstawy c++ w pigułce.

Elementy języków programowania

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

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

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

Podstawowe części projektu w Javie

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Pascal - wprowadzenie

Programowanie, algorytmy i struktury danych

Podstawy programowania (1)

Programowanie Komputerów

Programowanie obiektowe

Wykład 1

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

Języki i paradygmaty programowania

Typy danych, zmienne i tablice. Tomasz Borzyszkowski

Podstawy programowania. Wprowadzenie

Typy danych. Przemysław Gawroński D-10, p lutego Wykład 1. (Wykład 1) Typy danych 25 lutego / 11

Platformy Programistyczne Podstawy języka Java

WPROWADZENIE DO JĘZYKA JAVA

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

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

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

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

Transkrypt:

1 2 3 4 5 6 II. Języki programowania Proces: algorytm => program Człowiek: tworzy algorytm zapisuje algorytm w postaci programu (postać źródłowa) Komputer: tłumaczy program do kodu maszynowego (postać wykonywalna) wykonuje program A w praktyce 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 Ważne Dokumentacja 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! 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) 1

2 GL (assembler, translator) 3 GL FLOW-MATIC - 1952 Grace Hopper; FORTRAN (IBM, 1954 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 7 8 9 Od źródła do kodu Pojęcie translatora interpreter kompilator kompilator skrośny (cross-compiler inna platforma) kod pośredni (pre-kod) środowisko uruchomieniowe Java,.NET Zintegrowane środowisko programistyczne (Integrated Development Environment, IDE) - aplikacja do: tworzenia, modyfikowania, testowania konserwacji oprogramowania. 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 - Turbo Pascal. Programowanie, Helion, dostępne w internecie www.centrumpascal.republika.pl - kursy i artykuły dot. TP Od C do C#... AT&T Bell Laboratories, Dennis Ritchie, 1972 roku. 1973 - jądro UNIXa zostało przepisane w C. 1978 Brian Kernigham i Dennis Ritchie książka C Programming Language, (biblia) 1989 Amerykański Narodowy Instytut Standaryzacji standard języka C (ANSI C). 80: B. Stroustrup, AT&T Bell Laboratories: C++ (obiektowo) 2

1999 Anders Hejlsberg (TurboPascal, Delphi, Visuala J++, C#): # - to hash; ale C# to C-sharp 10 11 12 1 2 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. Struktura programu (uproszczona) Pascal program nazwaprogramu; sekcja deklaracji begin sekcja programu: pierwsza instrukcja; druga instrukcja;... ostatnia instrukcja end. C# class Hello { static void Main() { pierwsza instrukcja; druga instrukcja;... ostatnia instrukcja 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) 3

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 13 14 15 16 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ć 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. 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ść komentarza komentarz blokowy /* treść komentarza */ Dla kogo komentarz? Wykorzystuj IntelliSense pomoc środowiska Visual Studio automatycznie uzupełnia i formatuje nazwy Zasady dot. nazw 4

17 18 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 Operacje In/Out Operacja 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 Pierwszy przykład program hello; begin writeln( Hello world ) end. 19 słowo kluczowe, instrukcja Co potrafi komputer? dziedzina algorytmiczna Dziedzina algorytmiczna Dziedziną algorytmiczną nazywamy system gdzie: 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 5

1 l 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 20 21 22 23 24 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, b)? Dziedzina dla równania kwadratowego? 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 Typy wartościowe (wybrane) Pozostałe (wybrane) Literały Stałe logiczne (bool) true; false; Stałe całkowite (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; 6

Stałe znakowe (chr) 'a'; 'X'; '1'; '\''; '\\'; '\x004d'; '\xc' Stałe napisowe (string) "Napis"; "\"Pan Tadeusz\""; @"C:\Kurs\"; Stałe nazwane (const) const double PI = 3.14159265; 25 26 27 Zmienne Pole koła to: r 2 (dla dowolnego koła o promienmiu r) Program: dla dowolnych ( ) danych deklaracja zmiennych (raz w bloku!) inicjalizacja zmiennych (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; Zmienne, identyfikatory 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! wielkość liter!!! 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) 7

http://home.comcast.net/~lancehunt/csharp_coding_standards.pdf, http://www.idesign.net/idesign/download/idesign Csharp Coding Standard.zip 28 29 30 31 Korzystanie z Visual Studio Pojęcie projektu (Project) to logiczny pojemnik na wszystkie elementy, który służą do budowy aplikacji. plik *.csproj Pojęcie rozwiązania (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) interfejs użytkowników plik *.sln Szablon projektu dostarcza kolekcję plików, szablon kodu, właściwości projektu Wybór szablonu Interfejs graficzny środowiska Zarządzanie projektem okno Solution Explorer okno programu Kompilacja, budowa i poprawa błędów Uruchamianie programu Interfejs środowiska 8