Laboratorium nr 1. i 2.

Transkrypt

Laboratorium nr 1. i 2.
Laboratorium nr 1. i 2.
Celem laboratorium jest zapoznanie się ze zintegrowanym środowiskiem
programistycznym, na przykładzie podstawowych aplikacji z obsługą standardowego
wejścia wyjścia, podstawowych typów danych, definicji stałych i deklaracji zmiennych,
wyrażeń arytmetycznych, użyciem instrukcji przypisania, wprowadzaniem
i wyprowadzaniem danych, instrukcja warunkowa if, blok instrukcji.
1. Napisz program wyświetlający na ekranie tekst wprowadzony przez Użytkownika
programu.
2. Napisz program, który oblicza pole powierzchni prostokąta.
3. Napisz program, który oblicza średnią arytmetyczną z trzech wprowadonych
dowolnych liczb.
4. Napisz program, który sprawdza tożsamość (a+b)(a-b) = a2-b2.
5. Dane są przyprostokątne trójkąta prostokątnego a i b. Oblicz przyprostokątną c oraz
kąty trójkąta w radianach i stopniach.
6. Napisz program obliczający wartość prostej funkcji określonej przedziałami.
Laboratorium nr 3. i 4.
Celem laboratorium jest pisanie programów z pętlami (for(), while, do...while),
operatorami z uwzględnieniem priorytetów oraz użyciem funkcji matematycznych
z biblioteki standardowej.
1. Napisz program do sumowania n (podane przez Użytkownika) dowolnych liczb
rzeczywistych.
2. Napisz program, który wyznacza sumę kolejnych wyrazów szeregu, tak długo, aż
równica między kolejnymi dwoma wyrazami nie będzie większa od stałej epsilon, np.
równej 0,0001.
3. Oblicz wariancję σ2(x) i odchylenie standardowe
pomiarów x1,x2, ... , xm (m <= 20).
dla m niezależnych
gdzie
4. Sprawdź, czy wszystkie liczby naturalne z wybranego przedziału <a, b> spełniają
nierówność:
Wypisz liczby, dla których nierówność nie jest prawdziwa.
5. Znaleźć najmniejszą liczbę naturalną n taką, że:
a.
b.
, gdzie ε jest dowolną liczbą dodatnią.
6. Dany jest ciąg liczb rzeczywistych zakończony podaniem liczby 123, która nie jest
wliczana do ciągu. Obliczy średnią arytmetyczną z wyrazów dodatnich ciągu oraz
ustal, ile wyrazów ma wartość bezwzględną mniejszą od 100.
Laboratorium nr 5. i 6.
Celem laboratorium są operacje na zmiennych typu tablicowego i formatowanie
wyników.
1. Napisz program, który wczytuje do tablicy imiona i nazwiska, nr albumu n Studentów
(n < 10, podane przez Użytkownika), a następnie drukuje zawartość tablicy na ekranie
w trzech kolumnach w sformatowany sposób.
2. Napisz program, który wczytuje do tablicy elementy macierzy A o wymiarze m x n
(m, n < 20) oraz:
a. oblicza i wyświetla macierz sum elementów w wierszu,
b. oblicza i wyświetla macierz sum elementów w kolumnie.
Wyświetla wynik w sformatowany sposób.
Laboratorium nr 7.
Kolokwium obejmujące laboratoria 1-6.
Laboratorium nr 8. i 9.
Celem laboratorium jest poznanie elementów programowania strukturalnego (funkcje
i podział projektu na pliki).
1. Dana jest funkcja:
Malejąca dla dodatnich parametrów A, B, C. Należy napisać program do tablicowania
tej funkcji z krokiem delta x. Tablicowanie należy zakończyć, gdy wartość funkcji f(x)
zmaleje poniżej założonej wartości ε.
Wyniki należy drukować stronami w dwóch kolumnach. Wydruk kolejnej strony
powinien nastąpić po naciśnięciu dowolnego klawisza.
2. Napisz program, który oblicza wartość wyrażenia W(n), gdzie n jest podana przez
Użytkownika liczbą naturalną.
Przerób program na funkcję i wykorzystaj ją do napisania programu, który zapisuje
w tablicy kolejne liczby naturalne z danego przedziału <a, b> oraz odpowiadające im
wartości wyrażenia. Wyświetl wyniki na ekranie, korzystając z wcześniej napisanej
procedury wyświetlania wyników.
3. Napisz program, który sprawdza, czy dana liczba jest liczbą pierwszą. Przerób
program na funkcję i wykorzystaj ją do napisania programu, który zapisuje w tablicy
i wyświetla na ekranie liczby pierwsze oraz liczby podzielne przez 23 z danego
przedziału <a, b>.
Laboratorium nr 10. i 11.
Celem laboratorium jest stosowanie instrukcji sterujących switch, break, continue.
1. Liczby bliźniacze to liczby pierwsze, których różnica wynosi 2, np. 3 i 5, 11 i 13, itd.
Napisz program, który zapisuje w tablicy i wyświetla na ekranie 20 par liczb
bliźniaczych większych od a, gdzie a jest dowolną liczbą całkowitą dodatnią, wpisaną
z klawiatury, mniejszą od 1000. Program powinien być odporny na błędne podanie
zamiast liczby innych znaków lub nie dozwolonych wartości liczby a .
2. Hipoteza Goldbacha mówi, że każda liczba parzysta może być przedstawiona jako
suma dwóch liczb pierwszych. Napisz program, który sprawdza tę hipotezę dla 20
pierwszych liczb parzystych.
3. Napisz program, który w podanym przez użytkownika przedziale <x1, x2> wykonuje
jedną z trzech operacji:
a. wyznacza liczby pierwsze,
b. wyznacza liczby bliźniacze,
c. sprawdza hipotezę Goldbacha,
w zależności od wyboru dokonanego przez użytkownika. W programie należy
wykorzystać instrukcję warunkową switch.
Laboratorium nr 12.
Celem laboratorium jest stosowanie z funkcjami wywoływanymi rekurencyjnie,
porównanie różnych typów zmiennych całkowitych i rzeczywistych i ich zakresów,
kwalifikatory typów.
1. Napisz program, który wyznacza silnię dla dowolnej liczby naturalnej n wpisywanej z
klawiatury metodą wybraną przez użytkownika. Program powinien posiadać dwie
funkcje do wyznaczania silni:
a. metodą iteracyjną ze wzoru definicyjnego:
n! = 1*2*...*n,
b. metodą rekurencyjną zgodnie z definicją:
n! = n*(n-1)! przy czym 0! = 1.
Wyznacz doświadczalnie maksymalne wartości n, dla których można wyznaczyć silnię
przy zastosowaniu w programie wszystkich poznanych typów zmiennych całkowitych
i rzeczywistych.
2. Napisz program, który dla dowolnego n wyznacza funkcję 2n metodą wybraną przez
użytkownika. Program powinien posiadać dwie funkcje do jej wyznaczania:
a. metodą iteracyjną ze wzoru definicyjnego:
2n = 2*2*...*2,
b. metodą rekurencyjną zgodnie z definicją:
2n = 2*2n-1 przy czym 20 = 1.
Określ maksymalną wartość n dla typu zmiennej zastosowanej w programie.
3. Liczby Fibonacciego definiowane są następująco:
x1 = 2, x2 = 5,
xn = 2 xn-2 + xn-1, n = 3,4,5,...
a. Napisz funkcję, która wyznacza n pierwszych liczb Fibonacciego.
b. Wykorzystaj funkcję do napisania programu, który oblicza liczby Fibonacciego
w dowolnym przedziale <k, l> wpisanym z klawiatury.
4. Wieże Hanoi - Według legendy w pewnej świątyni buddyjskiej w Hanoi siedzą mnisi i
przekładają 64 złote krążki z jednego stosu na drugi. Krążki są kolejno coraz mniejsze,
a problem polega na tym, że podczas przekładania po jednym krążku nie można
położyć krążka większego na mniejszy - istnieje więc stos pomocniczy. Zgodnie z
legendą w chwili położenia ostatniego krążka nastąpi koniec świata. Nie ma się
jednak czego obawiać, gdyż nawet gdyby robili to w tempie jeden ruch na sekundę,
to i tak nie zdążyliby przed zgaśnięciem naszego słońca. Problem ten jest dosyć
złożony, ale łatwo jest sformułować dla niego rozwiązanie rekurencyjne. W celu
przełożenia n krążków ze stosu A na B, należy najpierw przełożyć n-1 krążków ze
stosu A na stos pomocniczy, przenieść n-ty największy krążek z A na B, po czym
przełożyć n-1 krążków ze stosu pomocniczego na stos B.
Napisz program, który dla zadanej liczby krążków n rozwiązuje problem wież Hanoi.
Laboratorium nr 13. i 14.
Celem laboratorium jest poznanie wybranych metod sortowania tablic oraz organizacji
dużych programów z podziałem na pliki, tworzenie prostych bibliotek, a także ćwiczenie
wcześniej poznanych elementów programowania.
1. Napisz program, który generuje 100 losowo wybranych liczb całkowitych z zakresu
<0,1000> i zapisuje je w tablicy o wymiarze 1x100, a następnie sortuje liczby
niemalejąco metodą sortowania bąbelkowego (przez prostą zamianę) oraz wyświetla
wynik na ekranie. W programie powinna być wyodrębniona funkcja sortowania
bąbelkowego.
2. Napisz program, który wczytuje z klawiatury ciąg n liczb całkowitych, wpisuje je do
tablicy i wyświetla na ekranie, a następnie sortuje liczby niemalejąco metodą
sortowania karcianego (przez proste wstawianie) oraz wyświetla wynik na ekranie.
W programie powinna być wyodrębniona procedura sortowania karcianego.
3. Wykorzystując programy z zadań 1 i 2 napisz program, który umożliwia
użytkownikowi wpisanie ciągu n liczb z klawiatury lub wygenerowanie go losowo,
wybór metody sortowania oraz wyświetlanie ciągów wejściowego i posortowanego
w takim formacie, aby liczby były wyświetlane w kolumnach i mieściły się na ekranie.
4. Napisz funkcję do sortowania prostego i dołącz ją do programu z zadania 3.
5. Napisz funkcję do sortowania szybkiego i dołącz ją do napisanego w zadaniach 1-4
programu. Wyodrębnij w programie plik zawierający wszystkie funkcje sortowania.
6. Napisz program, który wczytuje z klawiatury imiona i nazwiska grupy n studentów
i zapisuje dane do tablicy, a następnie sortuje je według nazwisk w kolejności
alfabetycznej bez uwzględniania polskich liter (metoda sortowania dowolna).
Laboratorium nr 15.
Kolokwium obejmujące laboratoria 8-14.