Informatyka w Elektroenergetyce - Laboratorium

Opis zajęć

  1. Zajęcia wprowadzające. Przedstawienie regulaminu, literatury, tematyki zajeć oraz sposobu oceniania. Zapoznanie się z kompilatorem.

  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 (23 strony)
    Rozdz.3: "Typy" z następującymi podrozdziałami:

  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 znaku 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 (26 stron)
    Rozdz.2: "Instrukcje sterujące" z wszystkimi podrozdziałami


  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 (15 stron)
    Rozdz.5: "Funkcje" z następującymi podrozdziałami:

  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 (21 stron)
    Rozdz.7: "Tablice" z następującymi podrozdziałami:

  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 (23 strony)
    Rozdz.10: "Klasy" z następującymi podrozdziałami:

  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:
    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 (21 stron)
    Rozdz.13: "Struktury, Unie, Pola bitowe" z następującymi podrozdziałami: Rozdz.8: "Wskaźniki" z następującymi podrozdziałami:

  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: Ponadto klasa taka będzie zawierać następujące metody publiczne: 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 (38 stron)
    Rozdz.15: "Konstruktory i Destruktory" z następującymi podrozdziałami: Rozdz.19: "Przeładowanie operatorów." z następującymi podrozdziałami:

  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:
    Literatura
    Jerzy Grębosz: Symfonia C++ Standard (29 stron)
    Rozdz.20: "Dziedziczenie" z następującymi podrozdziałami: Rozdz.21: "Funkcje wirtualne" z następującymi podrozdziałami:


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

    Przykładowy program

    Literatura
    Jerzy Grębosz: Symfonia C++ Standard (39 stron)
    Rozdz.22: "Operacje Wejścia/Wyjścia" z następującymi podrozdziałami:

  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