Języki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk. tel: Konsultacje: Piątek: 14:15-15:30

Podobne dokumenty
Zajęcia trwają 15 tygodni (2 godziny wykładu, 2 godziny laboratorium tygodniowo) Zaliczenie zajęć jest uwarunkowane zaliczeniem zajęć laboratoryjnych

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 1. Wprowadzenie, środowisko programistyczne, pierwsze programy

Języki Programowania z Programowaniem Obiektowym laboratorium (30 godzin/semestr)

dr inż. Jarosław Forenc

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

dr inż. Jarosław Forenc

KARTA KURSU. Programowanie obiektowe

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

Języki programowania II - opis przedmiotu

PRZEWODNIK PO PRZEDMIOCIE

Rok akademicki: 2016/2017 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Programowanie obiektowe 1 - opis przedmiotu

Programowanie - wykład 4

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

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

KARTA PRZEDMIOTU. Egzamin / zaliczenie. Egzamin / zaliczenie. ocenę*

Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)

Języki Programowania z Programowaniem Obiektowym wykład (15 godzin/semestr) laboratorium (30 godzin/semestr)

Semestr letni Brak Tak

1 Podstawy c++ w pigułce.

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie I C6

Elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Wprowadzenie do programowania i programowanie obiektowe

Opisy efektów kształcenia dla modułu

KARTA KURSU. Student zna podstawy analizy, projektowania i programowani obiektowego oraz podstawy języka C++.

Języki i paradygmaty programowania

PRZEDMIOTOWY SYSTEM OCENIANIA JĘZYK NIEMIECKI

Regulamin ćwiczeń z przedmiotu Hodowla Lasu

KARTA KURSU (realizowanego w module specjalności)

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com

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

Wstęp do programowania. Wykład 1

Informatyka, I stopień. Programowanie (PRO300.2)

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie II C16

Zaawansowane programowanie w języku C++ Wstęp

Programowanie w Javie nazwa przedmiotu SYLABUS A. Informacje ogólne

Podstawy Programowania

Programowanie w C++ Wykład 6. Katarzyna Grzelak. kwiecień K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

Informatyka 2. Informatyka 2. Wykład nr 1 ( ) Dane podstawowe. - Wydział Elektryczny. Politechnika Białostocka. Program wykładu (1/2)

Języki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk. tel: Konsultacje: piątek:

Organizacja kursu, paradygmaty, ogólnie o C i C++

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

KARTA PRZEDMIOTU. Programowanie wieloplatformowe, D1_1

Programowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20

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

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31

ZESPÓŁ SZKÓŁ PONADGIMNAZJALNYCH w CHOJNIE

Kierunek i poziom studiów: Matematyka, studia I stopnia (licencjackie), rok I

Zaliczenie przedmiotu:

NAZWA PRZEDMIOTU/MODUŁU KSZTAŁCENIA:

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe

Operacje wejścia/wyjścia odsłona pierwsza

Ocenianie ciągłe (praca przy Formująca tablicy oraz przy komputerze) pisemne, końcowe zaliczenie pisemne

Statystyka matematyczna SYLABUS

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013

Wstęp do Programowania, laboratorium 02

PRZEWODNIK PO PRZEDMIOCIE

PODSTAWY PROGRAMOWANIA STRUKTURALNEGO (C) SYLABUS A. Informacje ogólne

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

PRZEWODNIK PO PRZEDMIOCIE

Część 4 życie programu

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

SYSTEM OCENIANIA PRACY STUDENTA NA ZAJĘCIACH

Ćwiczenia laboratoryjne. Ćwiczenia projektowe (W) (Ć) (L) (P) (S) (T) IV

E5 potrafi zaprojektować i zaimplementować prosty model

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

PRZEDMIOT OCENY WYMAGANIA UWAGI DOTYCZĄCE OCENIANIA

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie II C10

A. USYTUOWANIE MODUŁU W SYSTEMIE STUDIÓW

1 Podstawy c++ w pigułce.

Z-ETI-0611 Język Programowania C++ Programming Language C++

Metody Numeryczne (Matematyka) Politechnika Warszawska

public: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje

Programowanie obiektowe Object programming. Elektrotechnika II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Laboratorium 1 - Programowanie proceduralne i obiektowe

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2014/2015. Forma studiów: Stacjonarne Kod kierunku: 11.

KARTA MODUŁU KSZTAŁCENIA

Programowanie obiektowe 2 - opis przedmiotu

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!

Przedmiotowe zasady oceniania z historii, wiedzy o społeczeństwie oraz historii i społeczeństwa

Podstawy Programowania

Rok akademicki: 2012/2013 Kod: EAR s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Podstawy algorytmiki i programowania - wykład 5 C-struktury cd.

Język Java i technologie Web - opis przedmiotu

Spis treści PROGRAMOWANIE OBIEKTOWE W JĘZYKU C++: FUNKCJE ZAPRZYJAŹNIONE Z KLASĄ, PRZEŁADOWANIE OPERATORÓW. Informatyka 2

PRZEWODNIK PO PRZEDMIOCIE

Transkrypt:

Języki Programowania Prowadząca: dr inż. Hanna Zbroszczyk e-mail: hanna.zbroszczyk@pw.edu.pl tel: +48 22 234 58 51 Konsultacje: Piątek: 14:15-15:30 www: http://www.if.pw.edu.pl/~gos/students/jp Politechnika Warszawska Wydział Fizyki Pok. 117b (wejście przez 115) 1

REGULAMIN PRZEDMIOTU 2

Informacje ogólne Zajęcia trwają 15 tygodni (2 godziny wykładu, 2 godziny laboratorium tygodniowo) Zaliczenie zajęć jest uwarunkowane zaliczeniem zajęć laboratoryjnych Prowadzący zajęcia laboratoryjne: dr inż. Łukasz Graczykowski dr inż. Małgorzata Janik dr inż. Daniel Kikoła mgr inż. Diana Pawłowska mgr inż. Sebastian Siejka mgr inż. Maria Stefaniak mgr inż. Paweł Szymański dr inż. Hanna Zbroszczyk Strona przedmiotu: http://www.if.pw.edu.pl/~gos/students/jp/ 3

Organizacja zajęć laboratoryjnych - Przewidzianych jest 14 zajęć laboratoryjnych (w tym 11 punktowanych, 2 kolokwia, 1 dodatkowe); - Zajęcia rozpoczynają się od drugiego tygodnia semestru; - Obecność jest obowiązkowa (możliwe są maksymalnie 2 nieobecności); - W przypadku osób, które uzyskały rejestrację na semestr w trakcie jego trwania koniecznym warunkiem do zdobycia pozytywnej oceny z przedmiotu będzie zaliczenie pierwszego kolokwium w terminie; - Spóźnienie na zajęcia powyżej 15 minut automatycznie jest odnotowane jako nieobecność; - Zajęcia trwają 90 minut, odbywają się bez przerwy; 4

Zasady oceniania na zajęciach punktowanych - I - zajęcia punktowane obejmują wykonanie 11 (jedenastu) zadań o zróżnicowanym stopniu trudności (pierwsze zajęcia są także punktowane); - dopuszczenie do wykonania zadania może być uwarunkowane zaliczeniem kolokwium wstępnego; - w trakcie pisania programu wolno korzystać z napisanych przez siebie programów oraz zasobów Internetu*; - napisany w trakcie trwania laboratorium program należy oddać na tych samych zajęciach; - przynajmniej jeden, a maksymalnie dwa programy będą pisane w dwuosobowych zespołach; - przynajmniej jeden, a maksymalnie dwa programy będą pisane przez dwa, niekoniecznie następujące po sobie zajęcia; - za każde zadanie można otrzymać 0-5 pkt (zrozumienie zadania: 1pkt, wykorzystanie formalnych środków języka C++: 3 pkt, aspekty użytkowe oraz strona estetyczna: 1 pkt) *) nie wolno korzystać z programów pocztowych (chyba, że prowadzący wyrazi zgodę), komunikatorów internetowych, serwisów społecznościowych (w celu komunikacji z innymi użytkownikami), ani z programów kolegów 5 z grupy swojej, jak i żadnej innej; korzystanie z telefonów komórkowych (smartfonów, tabletów) jest także zabronione.

Zasady oceniania na zajęciach punktowanych - II - w przypadku nieskończenia programu na zajęciach oceniony zostanie napisany, skompilowany oraz działający jego fragment (w przypadku programu, który nie kompiluje, ani nie wykonuje się poprawnie możliwe jest zdobycie maksymalnie 2 pkt); program należy skończyć we własnym zakresie i przedstawić prowadzącemu najpóźniej w kolejnym tygodniu zajęć (na zajęciach lub konsultacjach); za skończenie programu po zajęciach możliwe będzie zdobycie dodatkowego 1 pkt- ale tylko w przypadku przedstawienia w pełni działającego programu; suma zdobytych punktów za program skończony poza zajęciami nie może być większa niż 4; poprawa polega na zademonstrowaniu działającego programu oraz dyskusji z prowadzącym (co w przypadku prezentacji na kolejnych zajęciach skraca czas pisania programu dedykowanego dla tych konkretnych zajęć); nie dokończenie programu może skutkować niedopuszczeniem do kolejnych zajęć; 6

Zasady oceniania na zajęciach punktowanych - III - w przypadku nieobecności studenci są zobowiązani do zrealizowania materiału we własnym zakresie i przedstawienia rozwiązania najdalej 2 tygodnie po nieobecności (na zajęciach lub konsultacjach) - w przypadku usprawiedliwionej nieobecności możliwe jest zaliczenie zaległego programu na mniejszą (4 pkt) ilość punktów; w przypadku nieobecności nieusprawiedliwionej liczba zdobytych punktów wynosi 0 (zero); nie nadrobienie zaległości (zarówno w przypadku nieobecności usprawiedliwionej i nieusprawiedliwionej) może skutkować niedopuszczeniem do kolejnych zajęć; 7

Zasady oceniania kolokwiów - I - w trakcie semestru będą 2 (dwa) kolokwia: jedno w połowie semestru, drugie na końcu; kolokwium będzie polegało na samodzielnym napisaniu 1 (jednego) programu z materiału zrealizowanego na zajęciach (możliwe jest jednak korzystanie z: - własnych programów z zajęć, - materiałów wykładu dostępnych w trybie offline lub w wersji papierowej, - podręczników do programowania w C oraz C++, - własnych notatek); - próby niesamodzielnej pracy będą skutkowały niezaliczeniem kolokwium oraz brakiem możliwości jego poprawy; 8

Zasady oceniania kolokwiów - II - napisany program należy przesłać przed końcem trwania kolokwium na adres e-mailowy prowadzącego; - program będzie oceniany w skali 0-20 pkt (pierwsze kolokwium) oraz w skali 0-25 pkt (drugie kolokwium); oceniane będą: - zakres merytoryczny zrealizowanego zadania, - wykorzystane środki formalne języka C++, - aspekty użytkowe interfejsu, - strona estetyczna; 9

Zasady oceniania kolokwiów - III Istnieje możliwość poprawy kolokwium na ostatnich zajęciach (w grupie swojej lub innej), przy pierwszej poprawie kolokwium możliwe będzie zdobycie maksymalnie -5 pkt mniej niż w pierwszym terminie, przy drugiej poprawie 10 pkt mniej. Zaliczenie obu kolokwiów jest jednym z warunków zaliczenia przedmiotu! (warunkiem zaliczenia kolokwium jest otrzymanie za jego napisanie minimum 51% punktów możliwych do zdobycia) 10

Ocena końcowa - I Wyniki z kolokwium z laboratorium: 1 * 20 pkt + 1 * 25 pkt = 45 pkt; Wyniki z programów napisanych na zajęciach 11 * 5 pkt = 55 pkt. Ocena końcowa wystawiana jest na podstawie procentowego udziału sumy Uzyskanych punktów do sumy punktów możliwej do uzyskania (100 pkt) wg. następującej zależności: POZIOM ZAAWANSOWANY POZIOM PODSTAWOWY >= 51% - 3.0 >= 51% - 3.0 >= 61% - 3.5 >= 67% - 3.5 >= 71% - 4.0 >= 84% - 4.0 >= 81% - 4.5 >= 91% - 5.0 Do realizacji przedmiotu na poziomie zaawansowanym zostały zakwalifikowane osoby na podstawie kolokwium wstępnego (grupa jest utworzona liczy 7 osób). 11

Ocena końcowa - II Osoby, (tylko poziom podstawowy) które do końca grudnia uzyskają przynajmniej 95% punktów możliwych do zdobycia mogą ubiegać się o napisanie poza zajęciami dodatkowego programu (indywidualnie uzgodnionego z prowadzącym zajęcia), który umożliwi uzyskanie oceny 5.0 (w celu uzyskania oceny 5.0 pod koniec semestru suma zdobytych punktów musi być utrzymana na poziomie przynajmniej 95 pkt). Nie ma możliwości podniesienia niższej niż 4.0 oceny dodatkowo napisanym programem. Osoby uczęszczające na wykłady (dozwolona jedna! nieobecność) mogą mieć podwyższoną ocenę z przedmiotu o 0.5 oceny w przypadku zaliczonych zajęć laboratoryjnych oraz zaliczonych obu kolokwiów w pierwszym terminie. 12

Zaliczenie eksternistyczne (tylko na poziomie zaawansowanym) - I Dla osób programujących w C++ możliwe jest zaliczenie przedmiotu projektem eksternistycznym. Osoby chcące zaliczyć przedmiot w tej formie powinny zgłosić się do prowadzącego najdalej na drugich zajęciach laboratoryjnych, na trzecich zajęciach napiszą kolokwium kwalifikujące do pracy w tym trybie. Wymagania do projektów eksternistycznych: - nietrywialny problem, do którego rozwiązania najlepiej nadaje się podejście obiektowe, - dokładna specyfikacja projektu, - stworzony projekt z dokumentacją w kodzie źródłowym, - dokumentacja użytkownika. 13

Zaliczenie eksternistyczne (tylko na poziomie zaawansowanym) - II I) Zaliczenie projektu eksternistycznego polega na zaliczeniu 3 (trzech) etapów kontrolnych w terminach zajęć podanych w nawiasach: beta (5), release candidate (10), final (15). II) Po etapie beta prowadzący może projekt zdyskwalifikować, dlatego do tego czasu zalecane jest uczestniczenie w zajęciach programowych. III) Po etapie release candidate, w przypadku braku możliwości skończenia projektu zawierającego wszystkie elementy języka omawiane na wykładzie prowadzący może projekt zamknąć. Od tego momentu należy uczestniczyć w zajęciach. IV) Przy ustalaniu oceny ostatecznej brane pod uwagę są oceny z etapów pośrednich. 14

Zalecana literatura 1) B. Stroustrup Język C++ (The C++ Programming Language), WNT 2002 2) J. Grębosz Symfonia C++ standard, Pasja C++, Edition 2005 3) B. Eckel - Thinking in C++. Edycja polska, Helion 2002 4) S.B. Lippman Podstawy języka C++ (C++ Primer), WNT 1997 5) J. Liberty Poznaj C++ w 10 minut, Intersoftland 1999 6) Nicolai M. Josuttis - C++ Biblioteka standardowa. Podręcznik programisty, Helion 2003 15

Program wykładu 1) Wprowadzenie (zasady zaliczenia przedmiotu), literatura. Język C, a C++. Typy referencyjne. 2) Przeładowanie nazw funkcji, wprowadzenie do klas. 3) Konstruktory, destruktory, funkcje zaprzyjaźnione. 4) Przeładowanie operatorów. 5) Dziedziczenie. 6) Funkcje wirtualne. 7) Operacje wejścia / wyjścia. Operacje na plikach. 8) Szablony funkcji. 9) Szablony klas. 10) Elementy biblioteki STL 11) Obsługa sytuacji wyjątkowych. 12) Algorytmy, struktury danych I. 13) Algorytmy, struktury danych II. 14) Konwertery oraz konwersje. 16

JĘZYK C, A C++ 17

Język C, a C++ Stwórzmy prosty program do operacji na liczbach zespolonych: suma, różnica, iloczyn. Najpierw napiszemy go w C (jedynie z funkcją główną), następnie także w C, lecz pisząc oddzielne funkcje do każdej operacji, a następnie przepiszemy go w C++ (w różnych wariantach). 18

Operacje na liczbach zespolonych C (jedna funkcja) #include<stdio.h> struct cmplx { ; float rez, imz; /*suma*/ t[2].rez=t[0].rez+t[1].rez; t[2].imz=t[0].imz+t[1].imz; printf("\n Oto suma liczb zespolonych: %lf+%lfi\n",t[2].rez,t[2].imz); int main(){ cmplx t[5]; printf("\n Podaj czesc rzeczywista liczby zespolonej\n"); scanf("%lf", &t[0].rez); printf("\n Podaj czesc urojona liczby zespolonej\n"); scanf("%lf", &t[0].imz); printf("\n Oto liczba zespolona: %lf+%lfi\n",t[0].rez,t[0].imz); printf("\n Podaj czesc rzeczywista liczby zespolonej\n"); scanf("%lf", &t[1].rez); printf("\n Podaj czesc urojona liczby zespolonej\n"); scanf("%lf", &t[1].imz); printf("\n Oto liczba zespolona: %lf+%lfi\n",t[1].rez,t[1].imz); /*roznica*/ t[3].rez=t[0].rez-t[1].rez; t[3].imz=t[0].imz-t[1].imz; printf("\n Oto roznica liczb zespolonych: /*iloczyn*/ %lf+%lfi\n",t[3].rez,t[3].imz); t[4].rez=(t[0].rez*t[1].rez)-(t[0].imz*t[1].imz); t[4].imz=(t[0].rez*t[1].imz)+(t[0].imz*t[1].rez); printf("\n Oto iloczyn liczb zespolonych: return 0; %lf+%lfi\n",t[4].rez,t[4].imz); 19

Operacje na liczbach zespolonych C (wiele funkcji) - I #include<stdio.h> struct cmplx { ; float rez, imz; void read(cmplx *z) { printf("\n Podaj czesc rzeczywista liczby zespolonej\n"); scanf("%f", &(z->rez)); printf("\n Podaj czesc urojona liczby zespolonej\n"); scanf("%f", &(z->imz)); void print(cmplx z){ printf("\n Liczba zespolona: %f+%fi\n",z.rez,z.imz); cmplx sum(cmplx z1, cmplx z2){ cmplex z3; z3.rez = z1.rez+z2.rez; z3.imz= z1.imz+z2.imz; return z3; cmplx dif(cmplx z1, cmplx z2){ cmplx z3; z3.rez = z1.rez-z2.rez; z3.imz= z1.imz-z2.imz; return z3; cmplx mul(cmplx z1, cmplx z2){ cmplx z3; z3.rez=(z1.rez*z2.rez)-(z1.imz*z2.imz); z3.imz=(z1.rez*z2.imz)+(z1.imz*z2.rez); return z3; int main() { cmplx t[5]; printf("\n Oto pierwsza liczba zespolona: \n"); read(&t[0]); print(t[0]); 20

Operacje na liczbach zespolonych C (wiele funkcji) - II printf("\n Oto druga liczba zespolona: \n"); read(&t[1]); print(t[1]); /*suma*/ printf(" \n Oto suma liczb zespolonych: \n"); t[2]=sum(t[0],t[1]); print(t[2]); /*roznica*/ printf(" \n Oto roznica liczb zespolonych: \n"); t[3]=dif(t[0],t[1]); print(t[3]); /*iloczyn*/ printf(" \n Oto iloczyn liczb zespolonych: \n"); t[4]=mul(t[0],t[1]); print(t[4]); return 0; 21

Operacje na liczbach zespolonych C++ - wersja 1 - I #include<iostream> using namespace std; struct cmplx { float rez, imz; void read() { cout<<endl<<"podaj czesc rzeczywista cin>>rez; liczby zespolonej"<<endl; cout<<endl<<"podaj czesc urojona cin>>imz; liczby zespolonej"<<endl; cmplx sum(cmplx z1, cmplx z2){ cmplx z3; z3.rez = z1.rez+z2.rez; z3.imz= z1.imz+z2.imz; return z3; cmplx dif(cmplx z1, cmplx z2){ cmplx z3; z3.rez = z1.rez-z2.rez; z3.imz= z1.imz-z2.imz; return z3; ; void print() { cout<<endl<<"liczba zespolona: " <<rez<<"+i"<<imz<<endl; cmplx mul(cmplx z1, cmplx z2){ cmplx z3; z3.rez=(z1.rez*z2.rez)-(z1.imz*z2.imz); z3.imz=(z1.rez*z2.imz)+(z1.imz*z2.rez); return z3; 22

Operacje na liczbach zespolonych C++ - wersja 1 - II int main() { cmplx t[5]; cout<<endl<<"oto pierwsza liczba zespolona: "<<endl; t[0].read(); t[0].print(); cout<<endl<<"oto druga liczba zespolona: "<<endl; t[1].read(); t[1].print(); //roznica cout<<"oto roznica liczb zespolonych: "<<endl; t[3]=dif(t[0],t[1]); t[3].print(); //iloczyn cout<<"oto iloczyn liczb zespolonych: "<<endl; t[4]=mul(t[0],t[1]); t[4].print(); return 0; //suma cout<<"oto suma liczb zespolonych: "<<endl; t[2]=sum(t[0],t[1]); t[2].print(); 23

Operacje na liczbach zespolonych C++ - wersja 2 - I #include<iostream> using namespace std; struct cmplx { float rez, imz; void read() { cout<<endl<<"podaj czesc rzeczywista cin>>rez; liczby zespolonej"<<endl; cout<<endl<<"podaj czesc urojona cin>>imz; liczby zespolonej"<<endl; cmplx operator+(cmplx z1, cmplx z2){ cmplx z3; z3.rez = z1.rez+z2.rez; z3.imz= z1.imz+z2.imz; return z3; cmplx operator-(cmplx z1, cmplx z2){ cmplx z3; z3.rez = z1.rez-z2.rez; z3.imz= z1.imz-z2.imz; return z3; ; void print() { cout<<endl<<"liczba zespolona: " <<rez<<"+i"<<imz<<endl; cmplx operator*(cmplx z1, cmplx z2){ cmplx z3; z3.rez=(z1.rez*z2.rez)-(z1.imz*z2.imz); z3.imz=(z1.rez*z2.imz)+(z1.imz*z2.rez); return z3; 24

Operacje na liczbach zespolonych C++ - wersja 2 - II int main() { cmplx t[5]; cout<<endl<<"oto pierwsza liczba zespolona: "<<endl; t[0].read(); t[0].print(); cout<<endl<<"oto druga liczba zespolona: "<<endl; t[1].read(); t[1].print(); //suma cout<<"oto suma liczb zespolonych: " <<endl; t[2]=t[0]+t[1]; t[2].print(); //roznica cout<<"oto roznica liczb zespolonych: " <<endl; t[3]=t[0]-t[1]; t[3].print(); //iloczyn cout<<"oto iloczyn liczb zespolonych: " <<endl; t[4]=t[0]*t[1]; t[4].print(); return 0; 25

Operacje na liczbach zespolonych C++ - wersja 3 - I #ifndef _CMPLX_H #define _CMPLX_H cmplx.h struct cmplx { ; float rez, imz; void read(); void print(); cmplx operator+(cmplx, cmplx); cmplx operator-(cmplx, cmplx); cmplx operator*(cmplx, cmplx); #endif 26

Operacje na liczbach zespolonych C++ - wersja 3 - II #include "cmplx.h" #include <iostream> using namespace std; void cmplx::read() { cout<<endl<<"podaj czesc rzeczywista cin>>rez; liczby zespolonej"<<endl; cout<<endl<<"podaj czesc urojona cin>>imz; void cmplx::print() { liczby zespolonej"<<endl; cmplx.cpp cout<<endl<<"liczba zespolona: " <<rez<<"+i"<<imz<<endl; cmplx operator+(cmplx z1, cmplx z2){ cmplx z3; z3.rez = z1.rez+z2.rez; z3.imz= z1.imz+z2.imz; return z3; cmplx operator-(cmplx z1, cmplx z2){ cmplx z3; z3.rez = z1.rez-z2.rez; z3.imz= z1.imz-z2.imz; return z3; cmplx operator*(cmplx z1, cmplx z2){ cmplx z3; z3.rez=(z1.rez*z2.rez)-(z1.imz*z2.imz); z3.imz=(z1.rez*z2.imz)+(z1.imz*z2.rez); return z3; 27

Operacje na liczbach zespolonych C++ - wersja 3 - III #include "cmplx.h" #include <iostream> using namespace std; int main() { cmplx t[5]; cout<<endl<<"oto pierwsza liczba zespolona: "<<endl; t[0].read(); t[0].print(); cout<<endl<<"oto druga liczba zespolona: "<<endl; t[1].read(); t[1].print(); main.cpp //suma cout<<"oto suma liczb zespolonych: " <<endl; t[2]=t[0]+t[1]; t[2].print(); //roznica cout<<"oto roznica liczb zespolonych: "<<endl; t[3]=t[0]-t[1]; t[3].print(); //iloczyn cout<<"oto iloczyn liczb zespolonych: "<<endl; t[4]=t[0]*t[1]; t[4].print(); return 0; 28

Dzielenie kodu na kilka plików źródłowych Możemy zapisać nasz program w 3 plikach: cmplx.h plik nagłówkowy klasy (tu struktury!) (definicja klasy complex i deklaracje funkcji Wspomagających) cmplx.cpp plik implementacyjny klasy (definicje metod klasy complex i definicje funkcji wspomagających), main.cpp główny plik aplikacji (definicja funkcji main) 29

KONIEC WYKŁADU 1 30