• Nie Znaleziono Wyników

Algorytmy i struktury danych, USM, zaoczne. Ćwiczenie 4.

N/A
N/A
Protected

Academic year: 2021

Share "Algorytmy i struktury danych, USM, zaoczne. Ćwiczenie 4."

Copied!
1
0
0

Pełen tekst

(1)

Algorytmy i struktury danych, USM, zaoczne. Ćwiczenie 4.

Pliki binarne i tekstowe

Cel ćwiczenia: Wykorzystanie plików binarnych i tekstowych w programach. Operacje na plikach struktur. Zapisywanie uporządkowanych danych w pliku.

1. Zdefiniować plik binarny zawierający liczby całkowite typu int. Wczytać z klawiatury nazwę pliku. Opracować następujące funkcje:

a) zapisującą do pliku N losowych liczb całkowitych należących do przedziału [-100, 100), gdzie N – stała;

b) wyprowadzającą elementy pliku na ekran wierszami, po 12 elementów w wierszu, każdy element na czterech polach ekranu.

2. Zdefiniować plik binarny zawierający losowe struktury typu struct tosoba { char nazwisko[20]; unsigned r, m, d; long id; } Pole nazwisko należy zainicjować łańcuchem, który składa się ze słowa ”naz” zakończonego losową liczbą należącą do przedziału [1,1000). Pole r powinno zawierać rok, m - miesiąc, natomiast d - dzień miesiąca. Do pola id można wprowadzić numer kolejny struktury. Opracować następujące funkcje:

a) zapisującą do pliku losowe struktury typu tosoba;

b) wyprowadzającą zawartość pliku na ekran;

c) wyprowadzającą na ekran pozycje i zawartości wszystkich struktur o ustalonej wartości pola nazwisko;

d) usuwającą z pliku strukturę znajdującą się na określonej pozycji;

e) zapisującą do pliku struktury typu tosoba uporządkowane według nazwisk.

Przetestować opracowane funkcje w programie głównym.

3. Wprowadzić do pliku tekstowego N losowych liczb całkowitych, należących do przedziału [0,100), gdzie N – stała. Kolejne liczby powinny być oddzielone w pliku spacjami (co najmniej jedna spacja przed każdym elementem; brak spacji po ostatnim elemencie). Opracować funkcję, która przekształca zawartość pliku w sposób następujący:

jeżeli liczba x odczytana z pliku jest nieparzysta, to należy dopisać bezpośrednio za nią liczbę 2x. Na przykład dla pliku o elementach 2 3 5 4 6 7, po przekształceniu, powstanie plik 2 3 6 5 10 4 6 7 14. Wyprowadzić na ekran zawartości obu plików.

4. Zdefiniować strukturę typu struct tosoba {char nazwisko[20]; unsigned r, m, d; long id;}

oraz zmienną zawierającą nazwę pliku nazp typu char *. Opracować następujące funkcje:

a) inicjującą strukturę typu tosoba losowymi danymi;

nagłówek: void InitR(tosoba *r);

b) wyprowadzającą pola struktury typu tosoba na ekran;

nagłówek: void PiszR(tosoba *r);

c) zapisującą do pliku tekstowego losowe struktury typu tosoba oraz znaki przejścia do nowej linii (’\n’); otwarcie i zamknięcie pliku zrealizować wewnątrz funkcji;

nagłówek: void WstawR(char * nazp, int ile);

d) odczytującą z pliku tekstowego strukturę typu tosoba oraz znaki przejścia do nowej linii; nagłówek: void CzytajR(char *nazp, tosoba *r);

e) zapisującą do pliku tekstowego struktury typu tosoba uporządkowane według dat (losować dane i wpisywać do pliku na odpowiedniej pozycji; nie sortować struktur w tablicy tylko wpisywać je bezpośrednio do pliku);

nagłówek: void WstawPorzR(char *nazp, int ile);

Przetestować opracowane funkcje w programie głównym.

Cytaty

Powiązane dokumenty

Zadanie Do zbioru reprezentowanego przez drzewo D dołączyć element e, o ile nie należy on jeszcze do etykiet drzewa D.... Zastosowanie: wyszukiwanie

Powiemy, że problem jest rozstrzygalny, jeśli istnieje algorytm, który dla dowolnych danych x po skończonej liczbie kroków daje rozwiązanie problemu. W przeciwnym

b) Opracować funkcję wyprowadzającą zawartość struktury typu tosoba na ekran (parametrem funkcji jest zmienna typu tosoba). Zainicjować zmienną stud wartościami

Wyznaczyć czasy działania algorytmów w przypadku sortowania tablicy liczb całkowitych (wykorzystać funkcję pomiaru czasu). Wyprowadzić na ekran czasy

W programie głównym zdefiniować tablicę tab typu ttab oraz zmienną ile typu unsigned, w której pamiętana jest liczba struktur wprowadzonych do tablicy

Prostsza wersja zadania może polegać na dokonaniu konwersji pliku tekstowego do binarnego, sortowaniu pliku binarnego i zapisaniu wyniku sortowania ponownie do pliku

Jeżeli operacja przydziału pamięci dla t1 i t2 zakończyła się pomyślnie (wskaźniki t1 i t2 są różne od NULL), to zainicjować tablicę t1 losowymi znakami o kodach należących

a) dodającą element o podanej wartości klucza na koniec kolejki; przydzielić pamięć, wpisać daną x do klucza, zmodyfikować wskaźniki kolejki (pocz, kon);