-
Piotr Maślanka authored37e4a1aa
Laboratorium 2
"Jedyne, co musisz wiedzieć, to gdzie jest biblioteka" - Albert Einstein
Z tego laboratorium przygotowujesz sprawozdanie. Przygotowujesz je na zajęciach, a przy ich zakończeniu wysyłasz na adres podany na końcu tej instrukcji. Instrukcja dla wszystkich jest taka sama.
Rzeczy oznaczone tak, jak poniżej, dotyczą tego, co masz zawrzeć w sprawozdaniu. Na przykład:
Zapisz swoje imię, nazwisko, adres e-mail, kierunek i rok studiów
oraz grupę laboratoryjną i numer albumu.
Podaj również numer zajęć laboratoryjnych (nr 2).
Mogą być to też pytania, na które w sprawozdaniu udzielisz odpowiedzi. Możesz pomagać sobie wyszukiwarką internetową, oraz zabrać głos w dyskusji, jeśli się jakaś wywiąże.
Do pewnego miejsca tą instrukcję należy wykonać. Niewykonanie jej będzie skutkowało obniżeniem oceny.
Praca w grupach
'Sukces ma wielu ojców, porażka jest sierotą'
Tą instrukcję należy wykonać w grupie. Dobierz się z innymi w grupy 3 lub 4-osobowe. Sprawozdanie wysyła każdy za siebie, tak więc wykonuj dokładne notatki!
Poniższe zadania cząstkowe, oznaczone nagłówkami, można spokojnie rozdzielić między członków grupy. Mogą je oczywiście robić wszyscy jednocześnie, choć wtedy zapewne nie starczy wam czasu, a i sens pracy w grupie jest w takim wypadku wątpliwy...
How do I compile
"Dwie podstawowe umiejętności każdego inżyniera to znajomość angielskiego i obsługa Google"
Pracując na systemie GNU/Linux, należy ustalić w jaki sposób kompilować programy napisane w języku C++. Prawie każda instalacja tego systemu dysponuje stosownym kompilatorem.
Rozwiązanie to można lubić lub nie. Z pewnością jest wygodne (jeśli akurat jesteśmy programistą C lub C++). Jest ono również pomocne dla hakerów, którzy włamując się na system linuksowy mają już wszystkie narzędzia pod ręką. Korzystał z tego również słynny robak Morrisa, który unieruchomił 10% ówczesnego Internetu.
Jako dowód działania, skompiluj prosty program:
#include <iostream>
#include <unistd.h>
using namespace std;
int main() {
cout << "My user ID is " << getuid() << endl;
}
geteuid() jest funkcją C pobierającą identyfikator obecnego użytkownika w systemie. Nie przejmuj się nią.
Ustal jak kompiluje się programy w C++ na systemie Linux. Użyj
Google albo zapytaj prowadzącego.
Skompiluj podany program. Co wyświetlił?`
Algorytm Euklidesa
Algorytm Euklidesa służy do wyznaczania największego wspólnego dzielnika dwóch liczb.
Zapisz wzór na największy wspólny dzielnik liczb x i y.
Matematyczny.
Policz "na piechotę" NWD 36 i 48.
Przypomnij sobie jak wyglądają funkcje rekurencyjne w C++. Na przykład, funkcja licząca n-tą liczbę Fibonacciego:
int fib(int n) {
if (n == 0) {
return 0;
}
if (n == 1) {
return 1;
}
return fib(n-1) + f(n-2);
}