Programování I Úvod Jan Růžička

Slides:



Advertisements
Podobné prezentace
Tomáš Petříček Microsoft C# MVP
Advertisements

VÝVOJ PROGRAMOVACÍCH JAZYKŮ PERSPEKTIVY ELEKTRONIKY 3. Celostátní seminář, 18. března 2003 Ing. Pavel Pokorný UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ Fakulta technologická.
Seminář C++ 5. cvičení Dědičnost Ing. Jan Mikulka.
YOUR LOGO ADO.NET - Práca s databázou. YOUR LOGO ADO.NET  ADO.NET představuje soubor tříd pro přístup k datům v technologii.NET.
HYPERTEXT PREPROCESSOR. PROGRAMOVÁNÍ. DEFINICE POJMŮ Problém Problém nevyřešený, nežádoucí stav obvykle vyžaduje nějaké řešení Neřešitelný problém Neřešitelný.
Aplikační a programové vybavení
LOV, Listbox, Poplist a Combobox v Oracle Forms LOV – seznam hodnot, které se zobrazí po stisku klávesy Enter v textovém poli. LOV – seznam hodnot, které.
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Pole, ukazatele a odkazy
Práce se soubory. Ukládání dat Textové soubory s jednoduchou strukturou (např..txt a.csv) textové soubory s vnitřní hierarchií (např..xml) Soubory binárního.
„Programátor by měl být v prvé řadě líný.“. PIFovo Web API (API = Application Programming Interface)
Počítače a programování 1. Obsah přednášky Výjimky - základní typy výjimek Způsoby zpracování výjimek.
C# pro začátečníky Mgr. Jaromír Osčádal
Programování v C++ Cvičení.
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
PRÁCE S PROUDY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky.
Kapitoly z metodologie pedagogického výzkumu Prostředí pro výuku algoritmů Vojtěch Ouška.
OSNOVA: a) Řetězce v C b) Funkce stdio.h pro řetězce c) Funkce string.h pro řetězce d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
Ing. Josef Veselý Označení šablony a vzdělávací sady viz.rozpis.
C# - Exceptions (výjimky)
Objektové programování
Podpora vláken a jejich synchronizace v jazyce C# Jan Kučera Jan Mittner Petr Effenberger 4IT353 Klient/server aplikace v Javě.
Rozšíření jednouživatelské verze IS na víceuživatelskou Prezentace Diplomové práce Autor : Libor Tomášek Spoluautoři : Pobucký M., Drábek L. Vedoucí :
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
PRÁCE S VLÁKNY A APLIKAČNÍ DOMÉNY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky.
C# - Úvod Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Síťové programování Informační technologie - praxe SPŠE V úžlabině Jan Klepal, Mgr. Radka Müllerová Verze 2.
6. cvičení Polymorfismus
Alg91 Textové soubory Na rozdíl od jiných typů souborů jsou textové soubory určené pro gramotné lidské oko. Textový soubor je posloupnost znaků členěná.
Počítače a programování 1
VISUAL BASIC PRALG.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
IB111 Programování a algoritmizace
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
12/04/20151 Kolekce (1) Kolekce (collection) představují standardní datové struktury (seskupení) prvků (objektů) Jsou definovány ve jmenném prostoru System.Collections.
uložené procedury (stored procedures) triggery, sekvence, pohledy, funkce, parametrické dotazy (prepared statements) komplexní agregace a SQL dotazy jiné.
ADO – práce s databázemi
13/04/20151 Indexery (1) Členy třídy (struktury) umožňující třídě (struk- tuře) používat hranaté závorky a pracovat s ní podobně jako s polem (používat.
UNIX Shell skripty Roman Danel VŠB TU Ostrava, Hornicko – geologická fakulta.
ADO.NET – Objekt DataSet (offline scenář) Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
1 Počítače a programování 1 13.přednáška. 2 Obsah přednášky Vstupy a výstupy – 1.část.
1 Programování a p. jazyky Postup při tvorbě programu (systému) –strategie –analýza ( konceptuální modely) Datová Procesní –návrh (i/o, výjimky, algoritmus)
123.
Netrvaloppa21 Vytvořte třídu Student pro reprezentaci struktury student na ZČU. Atributy třídy budou fakulta a osobniCislo. Název třídy: Student proměnné.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Programování POCSI. Programovani/POCSI2 Základní pojmy Akce - děj nad objekty, mající začátek a konec, a mající přesně definovaný účinek. Příkaz - popis.
FEL Komunikátor. Memory Leak program konsumuje operační paměť, kterou neumožňuje uvolnit o uvolnění paměti stará Garbage Collector ▫plně v režii Java.
Pokročilé programování v C++ (část B)
Delphi a databáze MS SQL Server.
PŘÍKAZ while úkol 1_42.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Kam se ubírá jazyk C#? Dr. Ing. Dalibor Kačmář Academic Developer Evangelist Developer & Platform Evangelist Group Microsoft Czech & Slovakia Anders Hejlsberg.
Databázové aplikace v Delphi
Visual Basic - programování
YOUR LOGO C# ADO.NET. YOUR LOGO Úvod – ADO.NET  ADO.NET zajišťuje přístup k databázím  2 koncepčně jedinečné styly -Připojeně -Odpojeně přechodné (offline)
Překladače 1. Překladače a programovací jazyky © Milan Keršlágerhttp:// Obsah:
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
Databázové systémy přednáška 5 – Přístup na data
Y36PJC Programování v jazyce C/C++
Jazyk C# a platforma .NET ZS 2016/2017
Y36PJC Programování v jazyce C/C++
Technologie ADO.NET Technologie ADO.NET
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Bridge.
C# přehled vlastností.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Transkript prezentace:

Programování I Úvod Jan Růžička

Studijní materiály ● ●

Cíle ● Algoritmizace ● Kódování ● Návrh software ● Testování ● Platformy, nástroje ●.NET Framework

Očekávání ● S pomocí – Schopni popsat algoritmem jednoduchou úlohu – Schopni tento algoritmus zapsat v programovacím jazyce ● Bez pomoci – Porozumět jednoduchému cizímu kódu

Proč ● Příklad 1: Šeliga ● Příklad 2: Jenks

Algoritmizace ● Rozděl a panuj ● Př. Točení piva

Jazyky ● Strojově orientované – assembler – strojový jazyk ● Vyšší – procedurální (C#, Java, Visual Basic, Pascal,...) – funkcionální (Haskel, Lisp) – analytický, matematický, ekonomický software

Jazyky / 2 ● Objektově orientované ● Značkovací

Jazyky / 3 ● Kompilované ● Interpretované – zdrojové – pseudokódové (mezikódové)

Kompilované Zdrojový kód v jazyku C Překlad v GNU Linuxu Překlad v Solarisu Překlad v MS Windows Program pro MS Windows Program pro Solaris Program pro GNU Linux OS MS Windows OS GNU Linux OS Solaris

Interpretované Zdrojový kód v jazyku Java soubor.java Překlad (javac) Bytecode soubor.class OS MS Windows OS GNU Linux OS Solaris JR E

Objektově orientované programování ● Třída ● Rozhraní ● Zapouzdření ● Dědičnost ● Předefinování ● Polymorfismus

Procedurální programování ● Proměnné ● Vstup, Výstup ● Řídící struktury (podmínky, cykly) ● Procedury

Aplikace ● Command Line ● GUI ● WebGUI ●...

Aplikace ● Stand alone ● Klient/server ● Distribuované

Aplikace ● Knihovny (DLL, SO,...) ● Spouštěče (EXE, SH)

C# ● Moderní ● Žádaný ● Relativně jednoduchý ● Objektově orientovaný ● Svázaný s platformou.NET

.NET Framework ● Sada knihoven, interpretu a překladače ● Dostupná na téměř všech OS MS Windows ● Dostupná omezeně pro MacOS a GNU/Linux

Vývojová prostředí pro C# ● V zásadě jakýkoli textový editor ● Lépe však IDE ● Reálně tři možnosti – MS Visual Studio – SharpDevelop – MonoDevelop

Visual Studio

SharpDevelop

MonoDevelop

Základy jazyka C# // Hello1.cs public class Hello1 { public static void Main() { System.Console.WriteLine("Hello, World!"); }

Základy jazyka C# // Hello1.cs using System; public class Hello1 { public static void Main() { Console.WriteLine("Hello, World!"); }

Algoritmus hledání území ● Vstupy – Podmínky – Oblast ● Možnost nenalezení výsledku – cyklus, podmínka, opakování vstupu

C# ● Výjimky ● Komponentové programování ● Jednoduchá dedičnost, více rozhraní ● Přidává události ● Automatická správa paměti

C# - Datové typy ● Objekty ● Primitivní datové typy ● Pole

C# - Primitivní datové typy ● bool, int, double, short, char,... bool content = true; int pocet = 150;

C# - Objekty ● Téměř vše ostatní Osoba karel = new Osoba(); Map mapa = new Map();

C# - Podmínka if (oblasti.Count < 1) { //Zmen parametry //Spust analyzu znovu }

C# - Podmínka / 2 if (oblasti.Count < 1) { //Zmen parametry //Spust analyzu znovu } else { //Zobraz vysledky }

C# - Cyklus do { SpustitAnalyzu(parametry) if (uzemi.Count < 1) { //Zmen parametry; } } while (uzemi.Count < 1);

C# - Komentáře /// /// Summary description. /// class Class1 { static void Main(string[] args) { // TODO: Add code }

.NET Framework ● Sada knihoven, interpretu a překladače ● Dostupná na téměř všech OS MS Windows ● Dostupná omezeně pro MacOS a GNU/Linux

Common Language Runtime

Assembly ● Nasazování aplikací ● Kolekce EXE, DLL, module, manifest ● Private ● Shared (př. Windows Forms)

C# - OOP ● Struktury – struct ● Třídy – class ● Rozhraní – interface

C# - Vlastnosti ● Členská data – public int vek; ● Vlastnosti private short pvek; public short Vek { get { return pvek; } set { pvek = value; }

C# - Metody ● Běžné procedury (funkce)

C# - Metody - parametry ● Hodnotou ● Odkazem (ref) ● Výstupní (out)

C# - Konstruktory public Osoba() { } public Osoba(string jmeno) { pjmeno = jmeno; }

C# - Dědičnost class Student : Osoba { }

C# - Výjimky try { } catch (Exception ex) { }

.NET - System.Object ● Základní třída ● Všechny ostattní jsou z ní odvozeny

.NET - Soubory ● System.IO ● StreamReader ● StreamWriter ● FileStream ● File ● Directory

Zápis do textového souboru using System.IO;... FileStream fs = new FileStream("soubor.txt", FileMode.Create); StreamWriter sw = new StreamWriter(fs); for(int i=0; i<text.GetLength(); i++) { sw.WriteLine(i); }... sw.Close();

Čtení z textového souboru... FileStream fs = new FileStream("soubor.txt"); StreamReader sr = new StreamReader(fs); while((line = sr.ReadLine()) != null) { Console.WriteLine(line); } sr.Close();...

Zápis do binárního souboru using System.IO;... BinaryWriter bw = new BinaryWriter(File.Create("soubor.bin")); for(int i=0; i<text.GetLength(0); i++) bw.Write(i); bw.Close();...

Čtení z binárního souboru using System.IO;... BinaryReader br = new BinaryReader(File.Open("soubor.bin")); try { while(true) Console.WriteLine(br.ReadInt32()); } catch (EndOfStreamException ex) {} finally { br.Close(); }

.NET - System.String ● IndexOf ● Replace ● Split ● Substring ● Trim ● Compare

Algoritmus náhrady řetězců ● Textový soubor k překladu ● Soubor s českými slovy ● Soubor s maďarskými ekvivalenty

Jednorozměné pole ● typ[] nazev_pole; ● int[] polecisel; ● int[] polecisel = new int[10]; ● int[] polecisel = new int[2] {1, 3};

Použití ● polecisel[0] = 10; ● polecisel[1] = 15; ● int x = polecisel[0] + polecisel[1];

Vícerozměrná pole ● int[,] pole; ● int[,] pole = new int[2,2] ; ● int[,] pole = new int[2,2] { {2, 1}, {4, 3} };

Kolekce ● Podobně jako pole ● Více ruzných struktur ● Lepší práce

Iterování ● Stejné pro všechny druhy ● Zajištěno s využitím – IEnumerable – IEnumerator

IEnumerable, IEnumerator public interface IEnumerable { IEnumerator GetEnumerator(); } public interface IEnumerator { bool MoveNext(); object Current {get;} void Reset(); }

Příklad procházení MyCollection myCollection = new MyCollection();... IEnumerator ie = myCollection.GetEnumerator(); while(ie.MoveNext()) { XXX item = (XXX) ie.Current; Console.WriteLine(item);... }

Příklad procházení MyCollection myCollection = new MyCollection()... foreach(XXX item in myCollection) { Console.WriteLine(item);... }

ICollection public interface ICollection : IEnumerable { void copyTo(Array array, int index); int Count {get;} bool IsReadOnly {get;} bool IsSynchronized {get;} object SyncRoot {get;} }

IList public interface IList : ICollection, IEnumerable { object this[int index] {get; set;} int Add(object o); void Clear(); bool Contains(object value); int IndexOf(object value); void Insert(int index, object value); void Remove(object value); void RemoveAt(int index); }

IDictionary public interface IDictionary : ICollection, IEnumerable { object this[object key] {get; set;} ICollection Keys {get;} ICollection Values {get;} void Clear(); bool Contains(object value); IDictionaryEnumerator GetEnumerator(); void Remove(object key); }

Existující třídy kolekcí ● Array ● ArrayList ● Hashtable ● Queue ● Stack ● SortedList

Vícevláknové aplikace ● Nezávislé části kódu běžící v rámci jedné aplikace “paralelně”

Thread ● Instance třídy Thread ● Konstruktor třídy Thread s parametrem ThreadStart ● ThreadStart je delegát ukazující na metodu kde má začít běh vlákna Thread t = new Thread(new ThreadStart(vl.Makej));

Spuštění ● Metoda Start třídy Thread Thread t = new Thread(new ThreadStart(vl.Makej)); t.Start();

Lock ● Zamezení přístupu jiného vlákna lock (this) { for(char c='a'; c<'z'; c++) { Console.Write(c); }

Řízení běhu ● Předání běhu jinému vláknu lock (this) { for(char c='a'; c<'z'; c++) { Console.Write(c); Monitor.Pulse(this); Monitor.Wait(this); }

ADO.NET ● Access Data Objects ● Connection ● DataAdapter ● DataSet ● SqlCommand ● SqlDataReader

ADO.NET Databáze Připojení Datový adaptér Sada dat Formulář s vázanými ovládacími prvky

Connection 1/5 ● Připojení k datovému zdroji ● Různé druhy zdrojů ● SqlConnection (MS SQL Server) ● OLE DB Connection (MS Access (JET), MS Excel, DBF,...) ● ODBC Connection ● Oracle Connection ●...

Connection 2/5 ● using System.Data; ● using System.Data.SqlClient; ● SqlConnection ● SqlConnection.ConnectionString

Connection 3/5 sqlConnection = new System.Data.SqlClient.SqlConnection(); sqlConnection.ConnectionString = "workstation id=GIS;packet size=4096;integrated " + "security=SSPI;data source=GIS;persist security info=False;initial catalog=master";

Connection 4/5 connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + _ "Data Source=D:\Pokusna.mdb;"D:\Pokusna.mdb New OleDbConnection(connectionString)

Connection 5/5 try { sqlConnection.Open(); } catch (Exception ex) { Console.Write(ex.Message); }

ADO.NET Usnadnění 1/5 ● ServerExplorer ● Průvodce vytvořením spojení ● Průvodce vytvořením adapteru ● Průvodce vytvořením datové sady

ADO.NET Usnadnění 2/5

ADO.NET Usnadnění 3/5

ADO.NET Usnadnění 4/5

ADO.NET Usnadnění 5/5

DataAdapter ● Prostředník mezi datovým zdrojem a datovou sadou ● Má definovány SQL dotazy – SELECT – UPDATE, INSERT, DELETE ● Metoda Fill – naplnění datové sady

DataSet ● I více tabulek ● Vazby ● Off line ● XSD – schéma dat ● Možnost převodu do XML

Přístup k datům ● V kódu ● Přes vázané ovládací prvky

Přístup k datům v kódu string s = dsZam.Zamestnanci[0].IDzam;

Přístup k datům přes prvky ● TextBox, ● ComboBox, ● ListBox, ● CheckBox, ● RadioButton, ● DataGrid ● PictureBox

Přístup k datům přes prvky 2

Přístup k datům přes prvky 3 ● Vlastnost DataBindings

Čtení přes SqlDataReader SqlCommand cmd = new SqlCommand("select * from Customers", conn); SqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(rdr[0]); }

Editace ● Přes vázané ovládací prvky ● Pomocí metod a vlastností tříd DataSet a DataAdapter ● Pomocí SqlCommand

Změna hodnoty pole ● DataSet.Tabulka[Řádek].Sloupec = “hodnota” dsZam.Zamestnanci[0].IDzam = “ruz76”;

Změna dat ve zdroji ● DataAdapter.Update(DataSet); ● DataAdapter.Update(DataTable); ● DataAdapter.Update(DataRow);

Změna dat ve zdroji ● DataAdapter.Update(DataSet); try { OleDbDA.Update(dsZamestnanci); } catch (Exception ex) {... }

Pomocí SqlCommand string insertString insert into Categories (CategoryName, Description) values ('Miscellaneous', 'xx')"; SqlCommand cmd = new SqlCommand(insertString, conn); cmd.ExecuteNonQuery();

Transakce ● Spojení poskytuje instanci transakce ● Váže se s DataAdapterem a jeho příkazy pro aktualizaci

Transakce 2 tr = Con.BeginTransaction(); DbDA.DeleteCommand.Transaction = tr; DbDA.InsertCommand.Transaction = tr; try { DbDA.Update(dsZamestnanci); tr.Commit(); } catch (Exception ex) { tr.Rollback(); }

Zdroje ● us/library/aa288436(VS.71).aspx ● ● ual_Studio_2008_SP1.png ●

Zdroje ● /swi113/slajdy.html ● ostavy/kral/01-m.jpg ● net/content.htm ● nasky/index.html

Zdroje ● ● ● ● ekce=139&kategorie=361