Monika Dekster

Laboratorium 1

Użyteczne linki

  1. OIOIOI
  2. Ustawienie nowego hasła

Zapoznanie z podstawowymi narzędziami, edycja, kompilacja.

  1. Kompilator gcc/g++
  2. Przykładowe pliki:
    • Program w C: sum_N.c
      kompilacja: gcc -std=gnu11 -Wall -o sum_N sum_N.c -lm
    • Program w C: random.c
      kompilacja: gcc -std=gnu11 -Wall -o random random.c -lm
    • Program w C: random_unix.c
      kompilacja: gcc -std=gnu11 -Wall -o random_unix random_unix.c -lm

Zadania

  1. Napisz program, który wczytuje liczbę całkowitą $N$ a następnie oblicza i drukuje na ekran wartość $N!$. Uwaga: silnia bardzo szybko powoduje przepełnienie całkowitoliczbowe. Sprawdź dla jakich wartości $N$ program wyprowadza prawidłowy wynik. Przetestuj działanie programu dla różnych typów danych (dla ułatwienia można zastosować definicję typedef).
  2. Napisz program, który dla zadanej liczby naturalnej $n$ odpowiada na pytanie, czy liczba ta jest iloczynem dowolnych dwóch kolejnych wyrazów ciągu Fibonacciego. Zakładamy, że pierwsze dwa wyrazy ciągu Fibonacciego to 0 i 1.
  3. Liczba doskonała jest to taka liczba naturalna, która jest sumą wszystkich swych dzielników właściwych (to znaczy od niej mniejszych). Najmniejszą liczbą doskonałą jest 6, ponieważ jej dzielnikami właściwymi są 1, 2, 3 i 1 + 2 + 3 = 6. Napisz program, który znajduje wszystkie liczby doskonałe w zadanym przedziale oraz ich liczbę.
  4. Dana jest liczba całkowita dodatnia $n$. Napisz program, który znajduje wszystkie liczby pierwsze mniejsze od n, których cyfry tworzą ciąg niemalejący.
  5. Program losuje liczbę $0 \le X \le 100$. Napisz funkcję, która zgaduje wartość $X$. W pętli losujemy $n \in [0, 100]$. Jeżeli $X = n$ zgadliśmy $X$, jeżeli nie na podstawie wartości $X$ i $n$ ograniczamy przedział, z którego losujemy kolejne $n$.
  6. Szyfr Cezara polega na szyfrowaniu kolejnych liter (pozostałe znaki pozostawiamy bez zmian). Każda litera zostaje zamieniona w k-tą następną w alfabecie (k jest stałą szyfru), przy czym jeżeli taka nie istnieje (wychodzimy za 'z'), to odliczanie jest kontynuowane z powrotem od 'a'. Szyfrowanie zachowuje wielkość liter. Napisz funkcję, która szyfruje ciąg znaków podany jako argument.
  7. Znajdź pole powierzchni ograniczone osią $Ox$ i wykresem funkcji $\sin(x)$ w przedziale $[a, b]$ metodą Monte Carlo. Dane wejściowe: $a, b, N$ (liczba losowanych punktów).
  8. Napisz program tabelaryzujący funkcję cosinus w zadanym przedziale. Dane wejściowe: początek przedziału, koniec przedziału, krok (przyrost $x$). Tabela powinna zawierać 3 kolumny: wartość argumentu $x$, wartość $\cos(x)$ policzoną z wykorzystaniem funkcji bibliotecznej oraz wartość $\cos(x)$ policzoną z rozwinięcia w szereg Taylora.