Języki i Paradygmaty Programowania 1, laboratorium 06 Zadanie 1

Transkrypt

Języki i Paradygmaty Programowania 1, laboratorium 06 Zadanie 1
Języki i Paradygmaty Programowania 1, laboratorium 06
Zadanie 1. Przy pomocy funkcji malloc stwórz dwuwymiarową tablicę typu char o wymiarach
podanych przez użytkownika. Wypełnij tablicę spacjami, a potem narysuj w niej szachownicę (np.
wstawiając znak #), której wielkość pola jest ustalana przez użytkownika.
Zadanie 2. Napisz funkcje:
• Tworzącą dwuwymiarową tablicę zmiennych typu float (macierz) o wymiarach podanych
jako argumenty:
float** StworzTablice(int kolumny, int wiersze);
•
•
•
Wypełniającą tablicę dwuwymiarową przesłaną jako argument losowymi liczbami
rzeczywistymi od 0 do 10,
Wypisującą na ekran tablice dwuwymiarową przesłaną jako argument (liczby w kolumnach
powinny być wyrównane),
Dodającą dwie macierze (tablice dwuwymiarowe), np.:
void Dodaj(float **a, float **b, float **wynik, int kolumny, int wiersze);
Napisz program pytający użytkownika o dwie liczby całkowite, utwórz dwie (trzy – dodatkowa na
sumę) tablice dwuwymiarowe o wymiarach podanych przez użytkownika, wypełnij losowymi
liczbami, wypisz ich zawartość oraz wynik ich dodawania.
Zadanie 3. Stwórz strukturę macierzy, zawierającą wskaźnik na dane oraz dwie zmienne typu int,
opisujące liczbę kolumn i wierszy macierzy. Zmodyfikuj funkcje z zadania 2. tak, aby używały tej
struktury.
struct Macierz
{
int kolumny;
int wiersze;
float **dane;
};
Zadanie 4. Napisz program tworzący dwuwymiarową tablicę typu int o wymiarach podanych
przez użytkownika. Utwórz stałe:
• wartość 0 → puste miejsce
• wartość 1 → przeszkoda
• wartość 2 → spadający obiekt
Wypełnij tablicę wartościami oznaczającymi puste miejsce. W całym ostatnim wierszu tablicy, oraz
w kilku losowych miejscach, wstaw wartości oznaczające przeszkodę. W programie stwórz pętlę
nieskończoną, która:
1. W pierwszym wierszu tablicy, w losowym, pustym miejscu wstawia wartość oznaczającą
spadający obiekt,
2. Przesuwa wszystkie 'spadające obiekty' do następnego wiersza, o ile pole to jest puste,
3. Jeżeli pole poniżej nie jest puste, ale wolne jest pole wiersz niżej w kolumnie obok (po
lewej lub prawej), przesuwa 'spadające obiekty' do niego,
4. Wypisuje zawartość tablicy: puste pola jako spacje, przeszkody jako '#', spadające obiekty
jako '@',
5. Czyści ekran:
system("clear");
Zadanie 5. Napisz funkcję wczytującą linię tekstu z konsoli, zwracającą tablicę typu char. Linia
może być dowolnej długości.
Stwórz tablicę typu char pewnej wielkości. Wczytaj jeden znak i wpisz go do tablicy. Jeśli w
tablicy skończyło się miejsce, stwórz większą tablicę i przekopiuj do niej zawartość starej (pamiętaj
o jej zwolnieniu).