Witam na mojej stronie na Wydziale Elektrycznym
Menu
Magister

Informatyka w Elektroenergetyce - Laboratorium

Opis zajęć


  1. Zajęcia wprowadzające. Rozdanie programów do zrealizowania w grupach trzyosobowych.
     
  2. Zmienne wbudowane typu int, char, float, double i bool.
    Typy pochodne. Wskaźniki i referencje.
    Wypisywanie komunikatów i zmiennych na ekran oraz wczytywanie danych z klawiatury.

    Literatura.
    Jerzy Grębosz: Symfonia C++ Standard.
    Rozdz.3: "Typy" z następującymi podrozdziałami:
    • Rozdz.3.1: "Deklaracje typów"
    • Rozdz.3.2: "Systematyka typów z języka C++"
    • Rozdz.3.3: "Typy fundamentalne" z podrozdziałami
    • Rozdz.3.4: "Stałe dosłowne" z podrozdziałami
    • Rozdz.3.5: "Typy złożone"
    • Rozdz.3.7: "Zakres ważności nazwy obiektu, a czas życia obiektu" tylko z podrozdziałem 3.7.1
    (23 strony)

     
  3. Instrukcje warunkowe if...else oraz switch...case.
    Pętle: for, while, do...while

    Przykładowy program.
    Napisać prosty kalkulator, który po wczytaniu od użytkownika dwóch liczb oraz znak działania (+, -, *, /) będzie wyliczał odpowiedź (użycie instrukcji switch). Program ma działać w pętli, tzn. ma pytać użytkownika, czy chce on przeprowadzić kolejne obliczenia, czy chce wyjść (instrukcja do..while).

    Literatura.
    Jerzy Grębosz: Symfonia C++ Standard.
    Rozdz.2: "Instrukcje sterujące" z wszystkimi podrozdziałami
    (26 stron)

     
  4. Funkcje. Argumenty formalne i lokalne.
    Zmienne globalne i lokalne, zasięg ważności zmiennych.

    Przykładowy program.
    Napisać program, który będzie obliczał koszt energii elektrycznej pobranej przez grzałkę. Koszt energii jest funkcją ceny jednego kilowata, napięcia zasilania, rezystancji grzałki oraz czasu:
    K = kjedn. * U2 / R * t
    Należy napisać jedną funkcję, która będzie wczytywała liczbę wiekszą od zera i zawołać ją kilka razy w celu wczytania każdego z potrzebnych parametrów. Dodatkowym argumentem funkcji ma być komunikat, który będzie wyświetlany na ekranie, np.: "Podaj koszt kWh:".
    Należy również napisać funkcję, która będzie służyła do obliczenia kosztu.
    Nie wolno używać zmiennych globalnych.
    Program ma działać w pętli, tzn. po obliczeniach użytkownik jest pytany czy chce kontynuować.

    Literatura.
    Jerzy Grębosz: Symfonia C++ Standard.
    Rozdz.5: "Funkcje" z następującymi podrozdziałami:
    • Rozdz.5.1: "Funkcja często wywołuje inną funkcję"
    • Rozdz.5.2: "Zwracanie rezultatu przez funkcję"
    • Rozdz.5.3: "Stos"
    • Rozdz.5.4: "Przesyłanie argumentów do funkcji przez wartość"
    • Rozdz.5.5: "Kiedy deklaracja funkcji nie jest konieczna?"
    (15 stron)

     
  5. Tablice jednowymiarowe.
    Przekazywanie tablic do funkcji.

    Przykładowy program.
    Napisać program, który:
    1. utworzy tablicę na 6 elementów typu float
    2. poprosi użytkownika o wprowadzenie dwóch liczb min oraz max typu float
    3. 6 razy poprosi uzytkownika o wprowadzenie dowolnej liczby i wstawi ją w kolejne miejsce w tablicy
    4. wypisze zawartość tablicy na ekranie
    5. przeszuka tablicę i w przypadku, gdy dany element jest mniejszy niż min to ustawi go jako równy min, podobnie jeżeli znajdzie w tablicy element większy niż max, to zamieni go na max
    6. wypisze zawartość tablicy na ekranie
    Uwagi:
    1. Może się zdarzyć, że użytkownik wprowadzi takie liczby, że min będzie większe od max. Wówczas program ma zaminić te dwie liczby tak, aby min było mniejsze od max.
    2. Program ma składać się z funkcji main oraz trzech pomocniczych funkcji: do wypełnienia tabeli, do ustawienia elmentów spoza zakresu min-max na wartości graniczne oraz do wyświetlania tablicy.

    Literatura.
    Jerzy Grębosz: Symfonia C++ Standard.
    Rozdz.7: "Tablice" z następującymi podrozdziałami:
    • Rozdz.7.1: "Elementy tablicy"
    • Rozdz.7.2: "Inicjalizacja tablic"
    • Rozdz.7.3: "Stos"
    • Rozdz.7.5: "Tablice znakowe"
    (21 stron)

     
  6. Klasy I. Publiczne, chronione i prywatne elementy składowe klasy. Klasa a obiekt.

    Przykładowy program.
    Zaprojektować klasę o nazwie Samochod, która będzie spełniała następujace warunki:
    1. posiada dwie publiczne zmienne: predkosc oraz bieg
    2. w publicznym konstruktorze (bezparametrowym) zeruje obie wielkości
    3. udostepnia metodę Przyspiesz oraz Zwolnij, w których predkosc będzie odpowiednio zwiekszana bądź zmniejszana o dziesiec ( w przedziale 0 - 120 ). Zmienna bieg będzie zmieniana automatycznie podczas przyspieszania przy przekraczaniu prędkości 0, 30, 60, 90 i zmniejszania podczas zwalniania przy przekraczaniu predkosci 80, 50, 20, 1
    4. posiada publiczną metodę o nazwie Wypisz, która wypisze na ekranie stan obiektu

    Literatura.
    Jerzy Grębosz: Symfonia C++ Standard.
    Rozdz.10: "Klasy" z następującymi podrozdziałami:
    • Rozdz.10.1: "Typy definowane przez użytjkownika"
    • Rozdz.10.2: "Składniki klasy"
    • Rozdz.10.3: "Składnik będący obiektem"
    • Rozdz.10.4: "Enkapsulacja"
    • Rozdz.10.5: "Ukrywanie informacji"
    • Rozdz.10.6: "Klasa, a obiekt"
    • Rozdz.10.7: "Funkcje składowe" z wszystkimi podrozdziałami
    • Rozdz.10.8: "Jak to właściwie jest? (this)"
    • Rozdz.10.9: "Odwołanie się do publicznych danych składowych"
    (23 strony)

     
  7. Struktury. Tablice struktur. Wskaźniki.

    Przykładowy program.
    Zaprojektować strukturę PRZEWOD, która będzie reprezentowała przewód instalacji elektrycznej. Struktura taka będzie zawierać następujące pola:
    • liczba żył
    • przekrój
    • rodzaj żyły (D-jendodrutowa, L-linka)
    Główna funkcja programu ma utworzyć tablicę 8 elementów typu PRZEWOD. Następnie odpowiednią liczbę razy powinna zostać zawołana funkcja, która dla kolejnego elementu ustawi jakieś parametry domyślne.
    Dalej program ma w pętli (pętla do...while) pytać użytkownika, czy chce:
    1. zakończyć pracę programu
    2. wyświetlić wszystkie przewody
    3. zmienić przekrój przewodu
    (Należy użyć instrukcji switch.)
    Wciśnięcie cyfry przez użytkownika powinno wywołać odpowiednią funkcję. W przypadku zmiany przekroju należy poprosić użytkownika o podanie numeru przewodu. Następnie ma zostać wywołana funkcja, która dostanie wskaźnik na strukturę PRZEWOD, i która wyświetli poprzedni przekrój przewodu, poprosi użytkownika o wpisanie nowej wartości i podmieni ją w strukturze.
    Wyświetlenie wszystkich przewodów też ma być zrealizowane za pomocą wywołania odpowiedniej funkcji. W trakcie wyświetlania ma być wypisana nazwa przewodu (np. YDY 3x1.5 czy YLY 5x10), która będzie tworzona automatycznie na podstawie zawartych w strukturze parametrów.

    Literatura.
    Jerzy Grębosz: Symfonia C++ Standard.
    Rozdz.13: "Struktury, Unie, Pola bitowe" z następującymi podrozdziałami:
    • Rozdz.13.1: "Struktura."
    Rozdz.8: "Wskaźniki" z następującymi podrozdziałami:
    • Rozdz.8.1: "Wskaźniki mogą bardzo ułatwić życie"
    • Rozdz.8.2: "Definiowanie wskaźników"
    • Rozdz.8.3: "Praca ze wskaźnikiem"
    • Rozdz.8.4: "L-wartość"
    • Rozdz.8.7: "Cztery domeny zastosowania wskaźników"
    • Rozdz.8.9: "Zastosowanie wskaźników w argumentach funkcji" z wszystkimi podrozdziałami
    (21 stron)

     
  8. Klasy II. Przeciążanie konstruktora, destruktor, operatory.

    Przykładowy program.
    Zaprojektować klasę Kabel, która będzie służyła do reprezentacji kabla elektroenergetycznego na średnie napięcie. Klasa taka będzie zawierać następujące zmienne chronione:
    • typ przewody (np. HAKFtA, AKFtA, HAKXS)
    • napięcie znamionowe
    • przekrój przewodu
    Ponadto klasa taka będzie zawierać następujące metody publiczne:
    • konstruktor z parametrami: będzie ustawiał zmienne klasy na parametry wywołania konstruktora
    • metodę wyświetlająca informacje o danym kablu
    • operator == służący do porównania napięcia znamionowego kabla z liczbą
    • operatory < i > służące do porównania dwóch kabli ze względu na przekrój
    Główna funkcja programu (main) ma utworzyć tablicę dziesięciu kabli o różnych przekrojach (240, 120, 95, 70, 50 mm2) i różnych napięciach (6, 15, 20 kV). Nastepnie program ma poprosić użytkownika o podanie napięcia znamionowego, a program ma wypisać wszystkie kable o zadanym napięciu (należy wykorzystać operator ==). Dalej program ma wypisać dwa kable o zadanym napięciu: o najmniejszym oraz o największym przekroju.

    Literatura.
    Jerzy Grębosz: Symfonia C++ Standard.
    Rozdz.15: "Konstruktory i Destruktory" z następującymi podrozdziałami:
    • Rozdz.15.1: "Konstruktor."
    • Rozdz.15.4: "Destruktor."
    Rozdz.19: "Przeładowanie operatorów." z następującymi podrozdziałami:
    • Rozdz.19.1: "Przeładowanie operatorów - definicja i trochę teorii."
    • Rozdz.19.3: "Funkcja operatorowa jako funkcja składowa"
    • Rozdz.19.7: "Operatory jednoargumentowe"
    • Rozdz.19.8: "Operatory dwuargumentowe"
    (38 stron)

     
  9. Klasy III. Dziedziczenie i funkcje wirtualne.

    Przykładowy program.
    Zaprojektować prosty schemat dziedziczenia:
    1. klasa bazowa Figura
    2. klasa pochodna do klasy Figura o nazwie Trojkat
    3. klasa pochodna do klasy Figura o nazwie Czworokat
    Metody i zmienne klasy Figura:
    1. publiczny konstruktor
    2. wirtualna metoda wypisz
    3. wirtualna metoda DlugosBokow
    Metody i zmienne klasy Trojkat:
    1. publiczny konstruktor zerujący wszystkie zmienne
    2. wirtualna metoda wypisz
    3. wirtualna metoda DlugosBokow wyliczająca sumę długości wszystkich boków trójkąta
    4. sześć zmiennych chronionych na współrzędne wierzchołków
    5. metody ustawiające poszczególne zmienne
    Metody i zmienne klasy Czworokat:
    1. publiczny konstruktor zerujący wszystkie zmienne
    2. wirtualna metoda wypisz
    3. wirtualna metoda DlugosBokow wyliczająca sumę długości wszystkich boków czworokąta
    4. osiem zmiennych chronionych na współrzędne wierzchołków
    5. metody ustawiające poszczególne zmienne
    Konstruktory klas pochodnych mają wywoływać konstruktor klasy bazowej.
    Wszystkie konstruktory oraz metoda wypisz mają wypisywać na ekranie swoją nazwę (nazwa klasy + nazwa metody)
    Napisać również kawałek programu wykorzystujący napisane klasy:
    • utworzyć obiekty klas Trojkat i Czworokat
    • utworzyć wskaźnik na obiekt klasy Figura
    • ustawić wskaźnik raz na obiekt klasy Trojkat, a raz na obiekt klasy Czworokat
    • za pomocą wskaźnika wywołać funkcje wypisz z obu obiektów

    Literatura.
    Jerzy Grębosz: Symfonia C++ Standard.
    Rozdz.20: "Dziedziczenie" z następującymi podrozdziałami:
    • Rozdz.20.1: "Istota dziedziczenia"
    • Rozdz.20.2: "Dostęp do składników."
    • Rozdz.20.3: "Czego się nie dziedziczy."
    • Rozdz.20.4: "Drzewo genealogiczne."
    Rozdz.21: "Funkcje wirtualne" z następującymi podrozdziałami:
    • Rozdz.21.1: "Polimorfizm"
    • Rozdz.21.3: "Dalsze szczegóły"
    • Rozdz.21.4: "Wczesne i późne wiązanie"
    (29 stron)

     
  10. Odczyt i zapis do pliku z wykorzystaniem klas ifstream oraz ofstream.

    Przykładowy program.
    • Dana jest klasa osoba (pobież plik), która będzie przechowywała informacje o osobie.
    • Dopisać do niej metody do odczytu oraz zapisu do pliku, aby można było odczytać ten plik.
    • Utworzyć tablicę na 20 elementów tego typu i tam umieścić wczytane obiekty.
    • Wyświetlić wczytane obiekty (tylko wczytane, a nie wszystkie 20).
    • Napisać funkcję, która będzie umożliwiać użytkownikowi wybranie jednego z obiektów i zmianę jego dowolnego parametru.
    • Zapisać dane do pliku (nie wszystkie 20 obiektów, ale tylko te wczytane).

    Literatura.
    Jerzy Grębosz: Symfonia C++ Standard.
    Rozdz.22: "Operacje Wejścia/Wyjścia" z następującymi podrozdziałami:
    • Rozdz.22.11: "Manipulatory."
    • Rozdz.22.14: "Strumienie płynące do lub od plików."
      21
    • Rozdz.22.15: "Błędy w trakcie pracy strumienia."
    (39 stron)

     
  11. Wykorzystanie elementów z biblioteki standardowej C++: vector, list, complex oraz string.

    Przykładowy program.
    Napisać program, który z pliku będzie wczytywał cztery liczby zespolone (należy utworzyć taki plik), następnie będzie z nich tworzył macierz o wymiarach 2x2, będzie obliczał wyznacznik tej macierzy i wynik (oraz macierz) będzie wypisywał na ekranie.
    Ponadto program ma być odporny na możliwe błędy odczytu z pliku.

    Literatura.
    stl-opis.pdf

     
 


Napisz do mnie



Nowości:

- UWAGA!!!

- Instalacje elektryczne

- Operacja Sesja-Lato'06

- Nowy semestr

- Boże Narodzenie

- 3..2..1..Start

- Koniec kampani wrześniowej

- Wakacje

- Wielkanoc

- Dżingel bels, dźingel bels

- Początek semestru zimowego

więcej...


Jesteś

gościem na mojej stronie

Masz jakieś uwagi? Napisz: tomasz.zdun@ien.pw.edu.pl
Warszawa, luty 2004