Lista 2 (18 października 2005): 11 punktów.

Jeszcze raz przeczytaj z książki B.W.Kernighana i D.M.Ritchiego Język ANSI C rozdział 1: Elementarz. Tym razem czytaj powoli, dokładnie, z głębokim zrozumieniem.

  1. (2 punkty) Napisz program, który wczyta dodatnią liczbę całkowitą i wypisze jej rozwinięcie w układzie dwójkowym.
    Uwaga: Zastosuj rekurencję do rozwiązania tego zadania.
  2. (3 punkty) Napisz program, który wczytuje do tablicy znakowej napis ze standardowego wejścia i sprawdza, czy jest on palindromem. Wczytany napis ma mieć nie więcej niż 79 znaków.
    Uwaga:
    Uwaga: Palindrom to napis, który ma to samo znaczenie niezależnie od tego, czy czytamy go normalnie czy wspak. Przykładowe znane palindromy w języku polskim to: Kajak, Anna, KobyłaMaMałyBok, ZakopaneNaPokaz, MożeJutroTaDamaDaTortuJeżom.
  3. (2 punkty) Napisz program, który wczytuje liczbę rzeczywistą oznaczającą prędkość pojazdu liczoną w km/h. Oblicz i wypisz, ile wynosi ta prędkość liczona w mi/h i m/s.
    Uwaga: 1[km]=0.621371[mi].
  4. (3 punkty) Napisz program, który wczytuje długość ciągu, a później ciąg liczb całkowitych. Określ jaka jest w tym ciągu wartość najmniejsza i największa.
    Uwaga: Program nie powinien tablicować wczytywanych danych.
  5. (5 punktów) Napisz program, który wczytuje ze standardowego wejścia kolejne znaki, aż do napotkania symbolu EOF. Na końcu program powinien wypisać na standardowym wyjściu dla błędów statystykę dotycząca wczytanego tekstu: ile było wszystkich przeczytanych znaków, z ilu linii składał się tekst, oraz ile razy występowały poszczególne litery alfabetu.
    Uwaga: Program powinien posłużyć się tablicą liczników dla wszystkich wczytywanych znaków.
  6. (7 punktów) Zaprogramuj prosty kalkulator. Ma on działać w pętli: najpierw wczytuje liczbę, potem symbol działania arytmetycznego, i znowu liczbę i symbol działania arytmetycznego, itd. Program działa, wyliczając na bieżąco wyniki operacji arytmetycznych, aż do wczytania symbolu równości (=).
    Uwaga: Dopuszczalne operacje arytmetyczne to: dodawanie (+), odejmowanie (-), mnożenie (*), dzielenie (/).