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 )
-
Napisz program, który wczyta
trzy liczby z klawiatury
a następnie wyświetli
liczę o największej wartości.
-
Napisz program, który wczyta N liczb rzeczywistych z klawiatury
(N jest również zadawane z klawiatury)
a następnie wyświetli na
ekranie: wartość oraz pozycję największej
z tych liczb (maksimum).
Pracownia 2. ( operacje
na plikach tekstowych )
-
Napisz program, który wyświetli
zawartość (kolejne polecenia) zawarte w pliku "autoexec.bat"
-
Napisz funkcję, która dopisze
nowy katalog np. "C:\MojeProg" do polecenia PATH w standardowym
pliku "autoexec.bat".
-
Policz ile jest poleceń
(wierszy postaci: "SŁOWO_KLUCZOWE = PARAMETR
\n" )
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 )
-
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.
-
Napisz program pozwalajacy przechowywac w jednym pliku dowolnej
dlugosci sekwencje danych typu: char, int, float zapisane w formie ciagu
blokow o strukturze:
[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 )
-
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:
- zadanie (lub zmiane) rozmiaru tablicy
- wczytanie zawartosci tablicy z klawiatury
- wyznaczenie wartosci sredniej ze wszystkich elementow
tablicy
- wyznaczenie wartosci maksymalnej
(*) wyznaczenie odchylenia sredniokwadratowego
-
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 )
-
Oprogramuj funkcje: tworzące,
wczytujące, wyświetlające i usuwające,
dwuwymiarową dynamiczną tablicę liczb
typu double o:
- 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).
-
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 )
-
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.
-
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 )
-
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.
-
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