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).