• Nie Znaleziono Wyników

Programowanie proceduralne Laboratorium 5-6

N/A
N/A
Protected

Academic year: 2021

Share "Programowanie proceduralne Laboratorium 5-6"

Copied!
2
0
0

Pełen tekst

(1)

Programowanie proceduralne

Laboratorium 5-6 – Algorytmy sortowania, pliki nagłówkowe.

1. Zaimplementuj funkcję znajdującą największy element w tablicy n-elementowej.

Funkcja powinna pobierać jako argumenty: tablicę liczb rzeczywistych oraz liczbę jej elementów. Funkcja powinna zwracać wartość elementu największego.

Aby zademonstrować działanie tej funkcji, napisz program, który wywołuje przygotowaną funkcję dla testowych danych (dane mogą być zapisane w programie lub mogą być podawane przez użytkownika).

2. Zaimplementuj funkcje działające na n-elementowej tablicy liczb rzeczywistych:

 wyznaczającą indeks największego elementu,

 znajdującą najmniejszy element,

 wyznaczającą indeks najmniejszego elementu.

Zademonstruj działanie tych funkcji – napisz program, który wywołuje funkcje dla testowych danych.

3. Zaimplementuj funkcję, która pobiera trzy argumenty: tablicę liczb rzeczywistych, liczbę elementów w tablicy, oraz zmienną całkowitą max_ind przekazywaną przez adres. Funkcja powinna zwracać wartość elementu maksymalnego w tablicy, a wartość zmiennej powinna być ustawiona na indeks elementu maksymalnego. Napisz program demonstrujący działanie tej funkcji.

4. Przeanalizuj działanie funkcji z zadań 1-3 wyznaczających indeks elementu maksymalnego (minimalnego). Jakie będą wyniki ich działania dla tablic, w których jest więcej niż jeden element maksymalny (minimalny)?

5. W ramach projektu Code∷Blocksa, przygotuj program demonstrujący działanie funkcji z zadań 1 i 2. Deklaracje funkcji powinny znaleźć się w pliku sort.h, natomiast definicje funkcji – każda w oddzielnym pliku źródłowym. Deklaracje funkcji z kolejnych zadań (6-10) umieszczaj także w pliku nagłówkowym sort.h, a ich definicje w oddzielnych plikach.

6. Zaimplementuj funkcję swap, która w tablicy liczb rzeczywistych zamienia miejscami dwa elementy (o podanych indeksach).

7. Przeanalizuj algorytm sortowania przez wybór. Zauważ, że dysponujesz funkcjami:

 znajdującą indeks elementu minimalnego w tablicy,

 zamieniającą dwa elementy miejscami.

Napisz funkcję selectsort, która sortuje n-elementową tablicę liczb rzeczywistych, wykorzystując algorytm sortowania przez wybieranie. Zademonstruj działanie funkcji w programie.

(2)

8. Przeanalizuj algorytm sortowania bąbelkowego. Zaimplementuj funkcję bubblesort, która sortuje n-elementową tablicę liczb rzeczywistych, wykorzystując ten algorytm. Zauważ, że dysponujesz funkcją zamieniającą miejscami dwa elementy tablicy. Zademonstruj działanie funkcji w programie.

9. Przeanalizuj algorytm sortowania przez scalanie. Zaimplementuj funkcję mergesort, która sortuje n-elementową tablicę liczb rzeczywistych, wykorzystując ten algorytm.

Zauważ, że przydatne byłoby przygotowanie osobnej funkcji (merge) służącej do scalania dwóch posortowanych fragmentów tablicy. W funkcji merge konieczna będzie alokacja dodatkowej pamięci. Zademonstruj działanie funkcji mergesort w programie.

10. Przeanalizuj algorytm sortowania szybkiego. Zaimplementuj funkcję quicksort, która sortuje n-elementową tablicę liczb rzeczywistych, wykorzystując ten algorytm.

Zauważ, że przydatne będzie przygotowanie osobnej funkcji (divide) służącej do podziału elementów tablicy na dwa zbiory elementów: mniejsze oraz większe/równe od wybranego elementu. W funkcji divide wykorzystuj funkcję swap. Zademonstruj działanie funkcji quicksort w programie.

Karol Tarnowski Wrocław, 2019

Cytaty

Powiązane dokumenty

Aby zademonstrować działanie tej funkcji, napisz program, który wywołuje przygotowaną funkcję dla testowych danych (dane mogą być zapisane w programie lub

Napisz program, który wczytuje dane z plików imiona_zenskie.txt oraz imiona_meskie.txt zawierające zestawienie 10 najczęściej nadawanych imion w Polsce w 2019.. Program

Napisz program, który pobiera od użytkownika nazwę pliku tekstowego i wyświetla informację ile ten plik zawiera: liter (w rozbiciu na małe i duże), cyfr, białych znaków

Napisz program, który prosi użytkownika o podanie dwóch liczb całkowitych, a następnie wypisuje na ekranie wyniki ich mnożenia, dzielenia, dzielenia modulo,

Zaimplementuj funkcje pozwalające na dodawanie elementów na początek listy, wyświetlanie listy, usuwanie elementów listy. (**) Zdefiniuj strukturę Node i typ Tree pozwalające

Program prosi użytkownika o podanie liczby całkowitej n, a następnie zapisuje do pliku n liczb całkowitych od 0 do n-1.. (c) Zmodyfikuj program, aby działał

Do listy dołączono trzy pliki tekstowe zawierające dane zgodnie z następującą specyfikacją: w pierwszym wierszu znajduje się liczba całkowita określająca

Zaimplementuj funkcję selectsort, która sortuje n-elementową tablicę liczb rzeczywistych, wykorzystując algorytm sortowania przez wybierania.. Zademonstruj