INK9114L - Pracownia programowania

IV semestr Zaocznych Studiów Inżynierskich
PWr, Elektronika, kierunek Informatyka
Prow. dr Marek Piasecki ( Marek.Piasecki pwr.wroc.pl )


Wyniki kolokwium zaliczeniowego z niedzieli 23 maja 2004



ZADANIA REALIZOWANE NA KOLEJNYCH ZAJĘCIACH:

Pracownia 1. ( powtórzenie z poprzedniego semestru )

  1. Napisz program, który wczyta trzy liczby z klawiatury

  2. a następnie wyświetli liczę o największej wartości.
  3. Napisz program, który wczyta N liczb rzeczywistych z klawiatury (N jest również zadawane z klawiatury)

  4. a następnie wyświetli na ekranie: wartość oraz pozycję największej z tych liczb (maksimum).
Pracownia 2. ( operacje na plikach tekstowych )
  1. Napisz program, który wyświetli zawartość (kolejne polecenia) zawarte w pliku "autoexec.bat"
  2. Napisz funkcję, która dopisze nowy katalog np. "C:\MojeProg" do polecenia PATH w standardowym pliku "autoexec.bat".
  3. Policz ile jest poleceń (wierszy postaci: "SŁOWO_KLUCZOWE = PARAMETR \n" )

  4. w pliku konfiguracyjnym "system.ini". Napisz funkcję zwracającą tekst parametru dla słowa kluczowego zadawanego jako parametr wejściowy tej funkcji.
Pracownia 3. ( operacje na plikach binarnych )
  1. Napisz dwa programy. Pierwszy program powinien zapisywać na dysku w pliku binarnym 10 liczb typu long pobieranych z klawiatury. Drugi program powinien odczytywać zawartość tego pliku i wyświetlać go na ekranie komputera.
  2. Napisz program pozwalajacy przechowywac w jednym pliku dowolnej dlugosci sekwencje danych typu: char, int, float zapisane w formie ciagu blokow o strukturze:

  3.      [Litera_naglowka] [Ilosc_danych] [sekwencja_bajtow_kodujaca_dane]
    gdzie:
    [Litera_naglowka] - jeden kod ASCII informujacy o typie danych
         'c' - ciag danych typu <char>
         'i' - ciag danych typu <int>
         'f' - ciag danych typu <float>
    [Ilosc_danych] - liczba <unsigned int> informujacao ilosci danych danego typu
    [sekwencja_bajtow] - ciag bajtow zawierajacy dane danego typu o dlugosci = [Ilosc_danych]*sizeof(typ).
Pracownia 4. ( wskaźniki - dynamiczna alokacja pamięci - dynamiczne tablice jednowymiarowe )
  1. Napisz program pozwalajacy wykonywac proste obliczenia na dynamicznej tablicy liczb o rozmiarze zadawanym z klawiatury. Obszar tablicy powinien byc dynamicznie przydzielany za pomoca funkcji <calloc> lub operatora <new>. Program powinien posiadac <menu> umozliwiajace:

  2. - zadanie (lub zmiane) rozmiaru tablicy
    - wczytanie zawartosci tablicy z klawiatury
    - wyznaczenie wartosci sredniej ze wszystkich elementow tablicy
    - wyznaczenie wartosci maksymalnej
    (*) wyznaczenie odchylenia sredniokwadratowego
  3. Napisz program, który najpierw utworzy i wczyta z klawiatury N-elementową dynamiczną tablicę liczb float (N-jest zadawane z klawiatury), a następnie skopiuje do nowo utworzonej (drugiej) dynamicznej tablicy tylko te liczby, których wartości są mniejsze od zera.
Pracownia 5. ( dynamiczne struktury wiązane - dwu-wymiarowa tablica dwuwymiarowa )
  1. Oprogramuj funkcje: tworzące, wczytujące, wyświetlające i usuwające, dwuwymiarową dynamiczną tablicę liczb typu double o:

  2. - stałej ilości wierszy i kolumn,
    - zmiennej ilości wierszy ale stałej ilości kolumn (dynamiczna jednowymiarowa tablica tablic),
    - stałej ilości wierszy i zmiennej ilości kolumn (zwykła tablica wskaźników na dynamiczne tablice liczb)
    - zmiennej ilości wierszy i kolumn (dynamiczna tablica wskaźników na dynamiczne tablice liczb).
  3. Napisz program tworzący w obszarze pamięci dynamicznej łańcuchy znaków o rozmiarze dopasowanym do długości tekstów wprowadzanych z klawiatury. (Uwaga: do wczytywania tekstów kilkuwyrazowych należy wykorzystać funkcję <gets> zamiast standardowej funkcji <scanf>.
Pracownia 6. ( dynamiczne struktury rekurencyjne - lista jednokierunkowa )
  1. Zdefiniuj typ elementu listy jednokierunkowej przechowujący dane personalne studentów (nazwisko, imię, płeć, numer indeksu, średnia ocen). Następnie oprogramuj funkcje umożliwiające: dodawanie, usuwanie i przeglądanie osób znajdujących się na liście.
  2. Zmodyfikuj funkcje z zadania (a) w taki sposób aby lista zawsze była alfabetycznie uporządkowana w/g nazwisk i imion..
Pracownia 7. ( dynamiczne struktury rekurencyjne - lista dwukierunkowa )
  1. Wykonaj zadania (a) i (b) z pracowni (6) wprowadzając dwa powiązania (wskaźniki) każdego elementu z sąsiednimi (wskaźnik elementu poprzedniego i następnego.
  2. Zmodyfikuj funkcje z zadania (a) w taki sposób aby kolejne elementy tworzyły nieprzerwany łańcuch tzw. listę cykliczną (ostatni element jako następny ma wskaźnik pierwszego, a pierwszy element jako poprzedni ma zapamietany element ostatni).


Powrót do strony głównej