Wydzial Elektroniki Kierunek: AiR - PowerPoint PPT Presentation

About This Presentation
Title:

Wydzial Elektroniki Kierunek: AiR

Description:

Wydzia Elektroniki Kierunek: AiR Zaawansowane metody programowania Wyk ad 1 Zaawansowane metody programowania Dane podstawowe Zaawansowane metody programowania ... – PowerPoint PPT presentation

Number of Views:169
Avg rating:3.0/5.0
Slides: 25
Provided by: JerzyKo
Category:

less

Transcript and Presenter's Notes

Title: Wydzial Elektroniki Kierunek: AiR


1
Wydzial ElektronikiKierunek AiR
  • Zaawansowane metody programowania
  • Wyklad 1

2
Zaawansowane metody programowaniaDane podstawowe
Wyklad 1 Laboratorium 2
Wyklad ocena (kolokwium na ostatnim
wykladzie) Laboratorium ocena
Dr inz. Jerzy Kotowski Instytut Informatyki
Automatyki i Robotyki Zaklad Sterowania i
Optymalizacji pok. 219 C-3 http//jerzy.kotowski.s
taff.iiar.pwr.wroc.pl
3
Zaawansowane metody programowaniaOpis przedmiotu
  • Cele zajec
  • Opanowanie zaawansowanych technik programowania
    umozliwiajacych samodzielna implementacje
    rozwiazan, praktyczne poslugiwanie sie
    narzedziami informatycznymi i biegloscia w
    programowaniu
  • Krótki opis zawartosci calego kursu
  • Omawiane sa techniki programowania
    umozliwiajacych programowanie w srodowisku
    rozproszonym i równoleglym/sieciowym. Ponadto
    prezentowane sa metody przyspieszania programów
    uwzgledniajace architektury wybranych systemów
    komputerowych. Poszczególne techniki ilustrowane
    sa za pomoca programów w jezykach C, Java i C.
  • Zespól dydaktyczny
  • Prof. dr hab. inz. Czeslaw Smutnicki
  • dr inz. Jerzy Kotowski
  • dr inz. Grzegorz Mzyk
  • dr inz. Przemyslaw Sliwinski

4
Zaawansowane metody programowaniaZawartosc
tematyczna wykladu
  1. Wprowadzenie do wybranych jezyków wysokiego
    poziomu (Java, C, C Wybrane jezyki srodowiska
    programowania)
  2. Szablony, generyki a programowanie obiektowe
  3. Kontenery, iteratory, algorytmy
  4. Strumienie, przetwarzanie lancuchów, wyrazenia
    regularne, wyszukiwanie wzorców
  5. Obsluga wyjatków. Procesy i watki. Komunikacja i
    synchronizacja zadan (Wspólbieznosc, procesy
    watki)
  6. Wzorce projektowe. Uruchamianie programów
    (Testowanie oprogramowania)
  7. Omówienie bibliotek interfejsu graficznego
    uzytkownika, multimedialnych i sieciowych.
  8. Zaliczenie

5
Zaawansowane metody programowaniaLiteratura
  • Literatura podstawowa
  • B. Stroustrup, Jezyk C, Wydawnictwo Naukowo
    Techniczne, Warszawa, 2002.
  • B. Eckel, Thinking In Java, Wydawnictwo Helion,
    2006
  • S.B. Lippman, J. Lajoie, Podstawy jezyka C,
    Wydawnictwo Naukowo Techniczne, Warszawa, 2003.
  • S. Meyers, Jezyk C bardziej efektywny. 35
    praktycznych sposobów ulepszenia programów,
    Wydawnictwa Naukowo-Techniczne, 1998
  • H. Sutter, Wyjatkowy jezyk C 47 lamiglówek,
    zadan programistycznych i rozwiazan, Wydawnictwa
    Naukowo-Techniczne, 2002
  • D. Vandevoorde, N. M. Josuttis, C szablony.
    Vademecum profesjonalisty, Helion, 2003
  • Literatura uzupelniajaca
  • B. Stroustrup, Projektowanie i rozwój jezyka C,
    Wydawnictwo Naukowo Techniczne, Warszawa, 1996.
  • D. Vandevoorde, Jezyk C . Cwiczenia i
    rozwiazania, Wydawnictwo Naukowo Techniczne,
    Warszawa, 2001.
  • D. E. Knuth, Sztuka programowania, T. I-III,
    Wydawnictwo Naukowo Techniczne, Warszawa, 2001.
  • S. Lippman, Model obiektu w C, Wydawnictwa
    Naukowo-Techniczne, 1999.
  • Przyszle wydania standardów ANSI C
    (http//www.boost.org).
  • Oficjalna strona jezyka Java (http//java.sun.com)
  • Oficjalna strona jezyka C (http//msdn.microsoft.
    com/vcsharp/)

6
Troche historiiENIAC
  • Electronic Numerical Integrator And Computer
  • Elektroniczny i Numeryczny Integrator i
    Komputer
  • konstrukcja 1943-1945 do 1955
  • kilka liczb
  • masa ponad 27 ton,
  • okolo 18 000 lamp elektronowych
  • powierzchnia ok. 140 m2
  • zapotrzebowanie na moc 180 kW
  • Szybkosc obliczen 5 tysiecy dodawan liczb
    dziesietnych dziesieciocyfrowych na sekunde
  • pluskwa bug, debugger, debugging

7
Troche historiiSuperkomputer
  • FLOPS FLoating point Operations Per Second
  • Wydajnosc komputera
  • megaflops 106
  • gigaflops 109
  • teraflops 1012
  • petaflops 1015
  • eksaflops 1018
  • zettaflops 1021
  • jottaflops 1024

Rok Komputer Wydajnosc
1946 ENIAC 5000 350 40/ na sek.
1976 Cray-1A 133 MFLOPS
1983 Cray X-MP 235 MFLOPS
1997 ASCI Red / 9152 1.3 TFLOPS
2002 Earth-Simulator 35.9 TFLOPS
2004 IBM Blue Gene 70.7 TFLOPS
2005 IBM Blue Gene 140 TFLOPS
2008 IBM Roadrunner 1 PFLOPS
8
Troche historiiRoadrunner
  • Posiadacz Department of Energy USA
  • Gdzie Los Alamos National Laboratory
  • 12960 mikroprocesorów Cell oraz 6948
    dwurdzeniowych mikroprocesorów AMD.
  • System operacyjny Red Hat Linux.
  • Koszt 100 mln
  • Waga 250 t
  • Szybkosc docelowa 1.5 PFLOPS

9
Troche historiiGeneracje jezyków programowania
  • W ciagu 50 lat powstaly cztery generacje jezyków
    programowania.
  • W jezykach pierwszej generacji (FORTRAN 1, COBOL)
    charakterystyczny jest wspólny obszar danych
    globalnych, do którego odwoluja sie podprogramy.
  • Podstawami rozwoju drugiej generacji jezyków byla
    taka modyfikacja podprogramów, by mogly one
    przekazywac miedzy soba parametry, byc
    zagniezdzane i miec zróznicowany zakres
    widocznosci deklaracji stalych i zmiennych.
    Wymienione wlasnosci spowodowaly powstanie
    strukturalnych metod projektowania
    oprogramowania.
  • Charakterystyczna cecha jezyków trzeciej
    generacji byla modulowosc. Wyodrebnienie modulów
    w procesie dekompozycji funkcjonalnej pozwalalo
    na rozdzielenie pracy pomiedzy samodzielnych
    programistów (jezyk ANSI C).

10
Troche historiiJezyki czwartej generacji
  • Jezyki czwartej generacji, zwane jezykami
    obiektowymi (np. C), zmieniaja podejscie do
    zagadnienia struktur danych.
  • Jezyki obiektowe rozszerzaja pojecie struktury
    danych o nowy element zwany obiektem (typem
    obiektowym).
  • Typ obiektowy zawiera dane i sposoby poslugiwania
    sie tymi danymi (metody obiektu, funkcje
    skladowe).
  • Programowanie obiektowe jest metoda tworzenia
    oprogramowania, w której programy sa organizowane
    jako kolekcje obiektów.
  • C, Java, C sa jezykami programowania
    obiektowego.

11
Troche historiiC
  • Jezyk C jest ewolucyjnym rozszerzeniem jezyka C
  • Jezyk C zaprojektowano w celu zachowania
    wysokiej efektywnosci i przenoszalnosci jezyka C,
    pelnej zgodnosci z jezykiem C, likwidacji wad
    jezyka C, w szczególnosci slabej kontroli typów
    danych, wyposazenia jezyka w nowoczesne
    mechanizmy ukrywania danych.
  • C powstal w Bell Labs w polowie 1980 - Bjarne
    Stroustrup
  • C dodaje do C koncepcje klasy - mechanizm,
    który pozwala wprowadzac nowe typy danych
    definiowane przez uzytkownika abstract data types
    - ADT. W konsekwencji pozwala to na object
    oriented programming OOP.
  • C is a machine level, while C is a problem
    level
  • C is an improved C

12
Troche historiiJava
  • Powstanie 1991 rok (18 miesiecy)
  • Twórcy James Gosling, Patrick Naughton, Chris
    Warth, Ed Frank, Mike Sheridan (Sun
    Microsystems).
  • Potrzeba zdefiniowania jezyka niezaleznego od
    platformy, do tworzenia oprogramowania
    wbudowanego w sprzet elektroniczny powszechnego
    uzytku (kuchenki mikrofalowe, pilot zdalnego
    sterowania).
  • W miedzy czasie, pojawil sie znacznie
    wazniejszy czynnik siec WWW.
  • Przeniesienie uwagi projektantów Javy z
    elektroniki powszechnego uzytku na programowanie
    dla Internetu.
  • Wpierw Oak. Zmiana w 1995 na Java.

13
Troche historiiC
  • Projekt C rozpoczal sie w 1998 roku.
  • Celem projektu bylo opracowanie prostego,
    nowoczesnego i obiektowego jezyka programowania
    przeznaczonego dla nowej platformy .NET (nazwa
    .NET pojawila sie pózniej).
  • C zostal zaprojektowany przez zespól pod
    kierunkiem Andersa Hejlsberga dla firmy
    Microsoft.
  • Program napisany w jezyku C jest kompilowany do
    jezyka Common Intermediate Language (CIL), tzn.
    kodu posredniego wykonywanego w srodowisku
    uruchomieniowym takim jak .NET Framework.
  • Wykonanie skompilowanego programu przez system
    operacyjny bez takiego srodowiska nie jest
    mozliwe.

14
Zaawansowane metody programowania Microsoft
Visual Studio 2008
15
Microsoft Visual C 2008 Pierwszy program
  • Create Project (File New Project) -gtOther
    languages -gt Visual C -gt Console Application -gt
    Name ZaMePro1 -gt OK.
  • Zwyczajowo pliki C maja rozszerzenie .cs
  • Inaczej niz w C w C (tak samo w Javie) nie
    jest mozliwe tworzenie funkcji globalnych ani
    globalnych wskazników do danych.
  • Kazda aplikacja w C musi posiadac klase
    definiujaca metode Main(), która zostanie
    wykorzystana do punktu poczatkowego aplikacji.
  • Styl komentarzy w C zostal zapozyczony z C.
  • static - metoda statyczna w klasie ma zasieg
    klasy i moze zostac wywolana bez tworzenia
    instancji obiektu.

16
Microsoft Visual C 2008 Pierwszy program code
  • using System
  • using System.Collections.Generic
  • using System.Linq
  • using System.Text
  • namespace ZaMePro1
  • class Program
  • static void Main(string args)
  • Console.WriteLine("Ala ma kota")
  • Console.ReadKey()

1.1
17
Microsoft Visual C 2008 Skladowe Console Class
  • Console Class - Represents the standard input,
    output, and error streams for console
    applications. This class cannot be inherited.
  • WriteLine(String) - Writes the specified string
    value, followed by the current line terminator,
    to the standard output stream.
  • ReadKey() - Obtains the next character or
    function key pressed by the user. The pressed key
    is displayed in the console window.
  • Beep()- Plays the sound of a beep through the
    console speaker
  • Clear() - Clears the console buffer and
    corresponding console window of display
    information.

18
Microsoft Visual C 2008 Drugi program code
  • using System
  • using System.Collections.Generic
  • using System.Linq
  • using System.Text
  • namespace ZaMePro1
  • class Program
  • static void Main(string args)
  • Console.WriteLine("Ala ma kota")
  • Console.ReadKey()
  • Console.Beep()
  • Console.BackgroundColor
    ConsoleColor.DarkBlue
  • Console.ForegroundColor
    ConsoleColor.Yellow
  • Console.Clear()
  • Console.WriteLine("Ela ma kota")
  • Console.ReadKey()

1.2
19
Microsoft Visual C 2008 Argumenty funkcji main
  • using System
  • using System.Collections.Generic
  • using System.Linq
  • using System.Text
  • namespace ZaMePro1
  • class Program
  • static void Main(string args)
  • Console.WriteLine("Ala ma kota")
  • Console.WriteLine()
  • // argumenty funkcji Main
  • for (int x 0 x lt args.Length x)
  • Console.WriteLine("Argument 0
    1 ", x, argsx)
  • Console.WriteLine("\nKoniec")
  • Console.ReadKey()

1.3
20
Microsoft Visual C 2008 Konstruktory
  • class Program
  • public Program() // konstruktor bez
    argumentów
  • Console.WriteLine("Ala ma kota")
  • public Program(string text) // Konstruktor z
    argumentem
  • Console.WriteLine(text)
  • public Program(int x) // Konstruktor z
    argumentem
  • X x
  • Console.WriteLine("Cena programu 0 ",
    X)
  • int X // Klasa Program ma
    skladowe typu dane
  • static void Main(string args)
  • // p1, p2, p3, p4 - tworzone wewnatrz
    klasy
  • Klasa Program ma trzy konstruktory
  • Nie ma destruktora
  • Garbage collection
  • Klasa ma skladowe typu dane
  • Metoda klasy tworzy instancje obiektów swojego
    typu

1.4
21
Microsoft Visual C 2008 Wszystko jest obiektem
- Everything is an Object
  • Podstawowa róznica pomiedzy C i C
  • w C wszystko jest obiektem (nawet liczba)
  • istnieje garbage collector (tzn. ze nie musimy, a
    nawet nie mozemy usuwac samemu niepotrzebnych
    obiektów)
  • C zostal stworzony dla Microsoftu (?).
  • The object type is an alias for Object in the
    .NET Framework. In the unified type system of C,
    all types, predefined and user-defined, reference
    types and value types, inherit directly or
    indirectly from Object.
  • You can assign values of any type to variables of
    type object.
  • When a variable of a value type is converted to
    object, it is said to be boxed. (pakowanie,
    paczka)
  • When a variable of type object is converted to a
    value type, it is said to be unboxed.
    (rozpakowywanie)

22
Microsoft Visual C 2008 Everything is an Object
  • using System
  • using System.Collections.Generic
  • using System.Linq
  • using System.Text
  • namespace ZaMePro1
  • class Program
  • static void Main(string args)
  • object A1 3 //
    pakowanie
  • object A2 "Ala ma kota" //
    pakowanie
  • int A3 (int)A1 //
    rozpakowywanie
  • string A4 (string)A2 //
    rozpakowywanie
  • Console.WriteLine("A1 0 \t\t typ
    1", A1, A1.GetType())
  • Console.WriteLine("A2 0 typ
    1", A2, A2.GetType())
  • Console.WriteLine("A3 0 \t\t typ
    1", A3, A3.GetType())
  • Console.WriteLine("A4 0 typ
    1", A4, A4.GetType())

1.5
23
Struktura programu w jezyku C Klasa stos
plik Program.cs
  • Podstawowe pojecia organizacyjne
  • Programy
  • Przestrzenie nazw
  • Typy
  • Skladowe
  • Podzespoly (assemblies).
  • Programy C skladaja sie z jednego lub kilku
    plików zródlowych
  • W jezyku C nie ma potrzeby uzywania dyrektywy
    include i plików naglówkowych.

namespace ZaMePro_2 class Program
static void Main()
Stack snew Stack() s.push(1)
s.push("Ala ma kota")
s.push(3.14) Console.WriteLine(s.Pop(
)) Console.WriteLine(s.Pop())
Console.WriteLine(s.Pop())
Console.ReadKey()
1.6
24
Struktura programu w jezyku C Klasa stos
plik Stack.cs
  • namespace ZaMePro_2
  • class Stack
  • Element top // obiekt na szczycie
    stosu
  • public void push(object dane) //
    skladanie na stosie
  • top new Element(top, dane)
  • public object Pop() // pobieranie ze
    stosu
  • if (top null) throw new
    InvalidOperationException()
  • object result top.dane
  • top top.next
  • return result

class Element // klasa zagniezdzona
public Element next // nastepny
element public object dane // element
na stosie public Element(Element next,
object dane) // konstruktor
this.next next this.dane
dane
1.6
Write a Comment
User Comments (0)
About PowerShow.com