prezentacja - Przemysław Juszczuk
Transkrypt
prezentacja - Przemysław Juszczuk
Języki programowania imperatywnego dr Przemysław Juszczuk Katedra Inżynierii Wiedzy laborki 1 dr Przemysław Juszczuk Języki programowania imperatywnego e-mail: [email protected] Konsultacje: na stronie katedry + na stronie domowej Pokój 202c budynek A pjuszczuk.pl dr Przemysław Juszczuk Języki programowania imperatywnego Języki imperatywne Wykład - 15 godzin; Laborki - 30 godzin. Języki imperatywne - warunki zaliczenia Sprawdzian 1 – oceniany w skali punktowej od 0 do 25 punktów; Sprawdzian 2 – oceniany w skali punktowej od 0 do 25 punktów; Ocena uzyskana z laboratorium stanowi 50% oceny końcowej; Wykład: Egzamin ustny – pytania otwarte. dr Przemysław Juszczuk Języki programowania imperatywnego Skala ocen 0 – 25 pkt. ocena niedostateczna; 26 – 30 pkt. ocena dostateczna; 31 – 35 pkt. ocena plus dostateczny; 36 – 40 pkt. ocena dobry; 41 – 45 pkt. ocena plus dobry; 46 – 50 pkt. ocena bardzo dobry. dr Przemysław Juszczuk Języki programowania imperatywnego Jeszcze organizacyjnie zestaw ok. 5 zadań na każde ćwiczenia; z każdego zestawu minimum 50% zadań musi zostać wykonanych (na ćwiczeniach, lub pokazanych najpóźniej na ćwiczeniach kolejnych); powyższe jest warunkiem zaliczenia danych laborek; dr Przemysław Juszczuk Języki programowania imperatywnego Zagadnienia klasy i obiekty: stałe, pola, właściwości, konstruktory, modyfikatory dostępu; klasy i obiekty: stałe, pola, właściwości, konstruktory, modyfikatory dostępu cz. 2; klasy statyczne; przeciążanie metod i operatorów; dziedziczenie przysłanianie metod, klasy abstrakcyjne i interfejsy I; dziedziczenie przysłanianie metod, klasy abstrakcyjne i interfejsy II; dziedziczenie przysłanianie metod, klasy abstrakcyjne i interfejsy III; sprawdzian I; system IO z uwzględnieniem asynchronicznych operacji wejścia wyjścia; Windows Presentation Foundation (WPF) – projektowanie UI z wykorzystaniem XAML praca z programem Blend for visual studio; dr Przemysław Juszczuk Języki programowania imperatywnego Zagadnienia II Windows Presentation Foundation (WPF) I; Windows Presentation Foundation (WPF) II; Windows Forms; Windows Apps (programy dla Windows 8.1 Windows 10); Sprawdzian II. dr Przemysław Juszczuk Języki programowania imperatywnego Metodyka (paradygmat) programowania - czyli? Metodyka (zwana też często paradygmatem) to ustandaryzowane dla wybranego obszaru podejście do rozwiązywania problemów. sposób programowania oparty na mechanizmach udostępnianych przez wybrany język programowania; w związku z odmiennym przeznaczeniem języków programowania mogą występować istotne różnice pomiędzy poszczególnymi paradygmatami; środowisko przeważnie nie narzuca paradygmatu; dobór odpowiedniej metodyki zależy od rozwiązywanego problemu; dr Przemysław Juszczuk Języki programowania imperatywnego Nadtypy paradygmatów Programowanie stacjonarne - tworzenie programu, uwzględniającego obliczenia wykonywane przez jeden procesor; Programowanie rozproszone - tworzenie programu, uwzględniającego obliczenia wykonywane bez współdzielenia zasobów obliczeniowych (współdzielenie danych - często rozproszonych); Programowanie równoległe - tworzenie kodu z uwzględnieniem obliczeń wykonywanych przez więcej niż jeden procesor. Konieczność synchronizacji i komunikacji; dr Przemysław Juszczuk Języki programowania imperatywnego Typy paradygmatów Programowanie imperatywne - słynna instrukcja ”goto”; Przykłady języków: Algol, Fortran, Pascal, C. Programowanie funkcyjne - Haskell (Wartościowanie leniwe); Programowanie opisowe - VHDL (język opisu i projektowania układów cyfrowych); Programowanie logiczne - Prolog (fakty i reguły); dr Przemysław Juszczuk Języki programowania imperatywnego Podstawowe rodzaje metodyk Programowanie liniowe - całość programu jest postrzegana jako jeden, ciągły blok; Programowanie proceduralne - dekompozycja problemu. Blok główny to szkielet programu, a poszczególne procedury i funkcje są wywoływane w określonej kolejności; Programowanie funkcyjne - wynik w programowaniu funkcyjnym otrzymywany poprzez złożenie funkcji. Przykładowo pętla zastępowana jest poprzez rekurencję. Programowanie obiektowe - klasa, obiekt, metoda, pole, enkapsulacja. Programowanie generyczne - programowanie uogólnione. Programowanie agentowe - dekompozycja kodu i wydzielenie zadań dla osobnych podprogramów/wątków/procesów. dr Przemysław Juszczuk Języki programowania imperatywnego Zadanie 1 Przygotuj klasę Punkt3D pozwalającą na reprezentowanie punktów w przestrzeni 3D. Współrzędne punktu to wartości rzeczywiste. przygotuj konstruktor domyślny bezparametrowy ustalający wartości punktu w początku układu współrzędnych (0,0,0); przygotuj konstruktor z trzema parametrami wskazującymi przesunięcie punktu względem początku układu współrzędnych; do każdego pola klasy napisz gettery oraz settery; napisz metodę pozwalającą wyznaczyć odległość punktu od początku układu współrzędnych w metryce euklidesowej; jw. ale przygotuj metodę dla metryki Manhattan. dr Przemysław Juszczuk Języki programowania imperatywnego Zadanie 2 Przygotuj klasę Student zawierającą pola: nazwisko, imię, wiek, rok studiów, oraz średnia. Następnie: przygotuj konstruktor inicjalizujący obiekt wartościami: ”noname”, ”noname”, 19, 1, 0.0; przygotuj drugi konstruktor inicjalizowany pięcioma parametrami odpowiadającymi poszczególnym polom, przy czym: wiek musi być większy od 18 i mniejszy od 65. Jeżeli nie jest - ustaw wartość domyślną równą 18. Rok studiów z przedziału 1 do 5 - w przeciwnym wypadku ustaw na 1; średnia z przedziału 2.0 do 5.0 - w przeciwnym wypadku ustaw na 4.0. klasa powinna zawierać metodę obliczSrednia, która przyjmuje jako parametr tablicę wartości typu double (oceny), a zwraca średnią ocen; przygotuj dodatkowo metodę ileZostalo przyjmującą jako parametr tablicę wartości typu double obliczającą liczbę przedmiotów pozostałych do zaliczenia w danej sesji - wartość ta wyznaczana jest poprzez zliczenie elementów tablicy mniejszych od 3.0. Wartość int zwracana jest jako rezultat funkcji. dr Przemysław Juszczuk Języki programowania imperatywnego