Zestaw pośredni 2

Materiały do zajęć z Systemów operacyjnych prowadzonych na Wydziale Matematyki i Informatyki Uniwersytetu im. Adama Mickiewicza w Poznaniu.

« Wróć do spisu materiałów

Ćwiczenia powtórzeniowe

Napisz w języku C program, który wypisuje na standardowym wyjściu napis Hello world!

Napisz program, który wypisuje na wyjściu ciąg tych liczb całkowitych z przedziału od 1 do 100, które nie dzielą się przez 3. W jednym wierszu powinna zostać wypisana jedna liczba.

Napisz program, który wypisuje na wyjściu tabliczkę mnożenia liczb od 1 do 10. Upewnij się, że wypisane liczby będą zajmować dokładnie 4 znaki i będą wyrównane do prawej.

Zdefiniuj funkcję toInt, która przyjmuje jako argument ciąg znaków i przekształca go do postaci liczbowej, a uzyskaną w ten sposób wartość zwraca. Znaki niebędące cyframi powinny być przez funkcję ignorowane. Jeśli przekazany ciąg znaków nie zawiera w sobie żadnej cyfry, funkcja powinna zwrócić wartość 0.

Napisz funkcję nwd, która przyjmuje jako argumenty dwie liczby całkowite i zwraca ich największy wspólny dzielnik. Zaimplementuj w niej algorytm Euklidesa z dzieleniem.

Napisz program, który wypisuje na wyjściu przekazane do niego argumenty, po jednym w wierszu.

Napisz program, który przyjmuje dwa argumenty reprezentujące liczby i wypisuje na wyjściu ich największy wspólny dzielnik. Wykorzystaj funkcje toInt oraz nwd.

Napisz funkcję toHex, która przyjmuje jako argument nieujemną liczbę całkowitą dziesiętną i przekształca ją w ciąg znaków reprezentujący ją w postaci szesnastkowej. Nie wykorzystuj żadnych wbudowanych funkcji ani formatowania wyjścia.

Napisz funkcję fromDec, która przyjmuje jako argument nieujemną liczbę całkowitą i liczbę całkowitą z przedziału od 2 do 16 oraz zwraca ciąg znaków reprezentujący liczbę przekazaną jako pierwszy argument zapisaną w systemie liczbowym, którego podstawę determinuje drugi argument. Nie wykorzystuj żadnych wbudowanych funkcji ani formatowania wyjścia.

Napisz funkcję toDec, która przyjmuje jako argument ciąg znaków i liczbę całkowitą z przedziału od 2 do 16, a następnie (traktując ciąg znaków jako nieujemną liczbę zapisaną we wskazanym systemie liczbowym) przekształca ją do postaci dziesiętnej i zwraca tak otrzymaną wartość liczbową. Niepoprawne znaki powinny być ignorowane. Jeśli ciąg znaków nie zawiera żadnej cyfry we wskazanym systemie, funkcja powinna zwrócić 0.

Napisz program, który przyjmuje trzy argumenty, reprezentujące odpowiednio: liczbę, podstawę systemu liczbowego, w którym jest zapisana oraz podstawę systemu liczbowego, do którego ma zostać ona przekonwertowana, a następnie wypisuje na wyjściu wynik tej konwersji. Wykorzystaj funkcje z poprzednich zadań.