Monika Dekster

Laboratorium 1. Wstęp. Środowisko programistyczne.

Materiały pomocnicze

  1. Kompilator gcc/g++
  2. Przykładowe pliki:
    • Program w C++: sum_n.cpp (kompilacja: g++ -Wall -std=c++23 -o sum_n sum_n.cpp),
    • Program w C++: random.cpp (kompilacja: g++ -Wall -std=c++23 -o random random.cpp),

Zadania

  1. Paragon fiskalny zawiera następujące informacje: cenę jednostkową netto a, liczbę zakupionych sztuk towaru x oraz wysokość podatku VAT podaną w procentach p. Napisz program, który wczytuje powyższe dane z klawiatury, a następnie oblicza wartość netto zakupionego towaru, wartość podatku VAT oraz wartość towaru brutto. Wyniki obliczeń należy wypisać na ekranie w formie uproszczonego "paragonu fiskalnego".
  2. 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).
  3. Obliczanie wartości wielomianu za pomocą wzoru Hornera. Wielomian trzeciego stopnia zapisany jest wzorem: $W(x) = ax^3 + bx^2 + cx + d$. Napisz program, który oblicza wartość tego wielomianu za pomocą wzoru Hornera: $W(x) = ((a x + b) x + c) x + d$.
  4. Program losuje liczbę $0 \le X \lt 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$.
  5. 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.
  6. 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).
  7. Napisać 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 Maclaurina. $$\cos x=\sum _{n=0}^{\infty }{\frac {(-1)^{n}}{(2n)!}}x^{2n}\; = 1-{\frac {x^{2}}{2!}}+{\frac {x^{4}}{4!}}-\cdots $$