Politechnika Wrocławska Rok akademicki Wydział Geoinżynierii, Górnictwa i Geologii 2012/2013
Geodezja i Kartografia
Zadania z Informatyki I
Wykonał:
Krystian Młodzik
Wrocław, 16.10.2012r.
Zad. 1 Obliczanie średniej arytmetycznej trzech liczb naturalnych
Przepis:
Podajemy 3 liczby naturalne: a, b, c. Obliczamy ich sumę a następnie dzielimy ją przez 3.
Wzór:
∀a, b, c ϵN+ $\ \exists\overset{\overline{}}{x} \in Q\ $dla którego$\ \overset{\overline{}}{x} = \frac{a + b + c}{3}$
Pseudokod:
Start
Podaj 3 liczby a, b, c ∈ N+
Oblicz sumę 3 liczb naturalnych za pomocą wzoru S: =a+b+c
Oblicz średnią ze wzoru $\overset{\overline{}}{x}:\ = \frac{S}{3}$
Wyświetl wynik
Stop
Schemat blokowy:
Zad. 2 Obliczanie pola trójkąta
Przepis:
Podajemy długości boków trójkąta a, b, c które są liczbami dodatnimi. Sprawdzamy czy podane boki mogą tworzyć trójkąt z założenia, że suma długości dwóch najkrótszych boków jest większa od 3. Następnie obliczamy p, czyli połowę obwodu i obliczamy pole trójkąta korzystając ze wzoru P=$\sqrt{p(p - a)(p - b)(p - c)}$
Wzór:
∀a, b, c ∈ {a, b, c : a, b, c > 0, a + b > c, a + c > b, b + c > a} ∃P, p ∈ R+ dla których
$p = \frac{1}{2} \bullet (a + b + c)$ i P=$\sqrt{p(p - a)(p - b)(p - c)}$
Pseudokod:
Start
Podaj długości boków a, b, c
Sprawdź czy spełnione jest założenie a, b, c > 0; Jeżeli nie to idź to punktu 6, jeżeli tak kontynuuj proces
Sprawdź czy podane boki mogą tworzyć trójkąt ze wzorów a+b>c, a+c>b, b+c>a
Jeżeli założenie 3 spełnione to przejdź do punktu 6, jeżeli nie to idź do punktu 5
Wyświetl brak rozwiązania
Policz p : =0, 5 * (a + b + c)
Policz pole ze wzoru P: =$\sqrt{p*\left( p - a \right)*\left( p - b \right)*(p - c)}$
Podaj wynik P
Koniec
Schemat blokowy:
N T
Zad. 3 Obliczanie n % z dowolnej liczby rzeczywistej.
Przepis:
Podajemy 2 liczby: a ∈ R (liczba, z której chcemy obliczyć procent), n (liczba procent). Obliczamy ich iloczyn a następnie dzielimy przez 100.
Wzór:
∀a ∈ R ∃k ∈ R dla którego $k = \frac{n \bullet a}{100}$ , gdzie n – procent danej liczby
Pseudokod:
Start
Podaj liczbę a
Podaj procent n danej liczby
Oblicz k, czyli n% a, gdzie k: =n*a/100
Wyświetl wartość k
Koniec
Schemat blokowy:
Zad. 4 Oblicz jaki procent liczby a stanowi liczba b.
Przepis:
Podajemy 2 liczby: a ∈ R/{0}, b ∈ R. Obliczamy iloraz b przez a, a następnie mnożymy go przez 100%.
Wzór:
∀a ∈ R/{0} ∧ b ∈ R ∃k ∈ R dla którego $k = \frac{b \bullet 100}{a}$
Pseudokod:
Start
Podaj liczbę b dla której będziemy liczyć procent
Podaj wartość liczby a względem której będziemy liczyć procent
Oblicz k, k: =b*100/a
Wyświetl wartość k
Koniec
Schemat blokowy:
Zad. 5 Oblicz drogę przebytą w czasie t przez pojazd, poruszający się ze średnią prędkością v
Przepis:
Podajemy 2 liczby: v, t>0. Obliczamy ich iloczyn.
Wzór:
∀v, t ∈ R+ ∃S ∈ R+ dla którego s = v • t
Pseudokod:
Start
Podaj v, t
Sprawdź czy spełnione jest założenie v, t > 0; Jeżeli nie to idź to punktu 4, jeżeli tak to idź do punktu 5
Wyświetl błąd danych
Oblicz S: =v*t
Wyświetl wartość S
Koniec
Schemat blokowy:
N T
Zad. 6 Obliczanie wartości bezwzględnej dowolnej liczby rzeczywistej
Przepis:
Wybieramy liczbę x ∈ R. Jeśli jest ona większa lub równa zero, to ją przepisujemy. W przeciwnym wypadku piszemy liczbę do niej przeciwną.
Wzór:
∀a ∈ R $\left| a \right| = \left\{ \begin{matrix}
a\ dla\ a \geq 0 \\
- a\ dla\ a < 0 \\
\end{matrix} \right.\ $
Pseudokod:
Start
podaj a
Sprawdź czy spełnione jest założenie a ≥ 0; Jeżeli nie to idź to punktu 4, jeżeli tak to idź do punktu 5
Oblicz k: =-a, wyświetl wartość k i idź do punktu 6
Oblicz z: =a, wyświetl wartość z
Koniec
Schemat blokowy:
N T
Zad. 7 Określanie największej liczby z dwóch liczb całkowitych
Przepis:
Wybieramy dwie liczby całkowite: a i b. Sprawdzamy czy spełnione jest założenia a>b, jeżeli tak to a jest max, jeżeli nie to sprawdzamy założenie a=b, jeżeli tak to liczby są równe jeżeli nie to b jest max.
Wzór:
∃A ∈ {a,b}, a, b ∈ Z gdzie K = MAX(A)
Pseudokod:
Start
podaj a, b
Sprawdź czy spełnione jest założenie a > b; Jeżeli nie to idź to punktu 4, jeżeli tak to wyświetl a i idź do punktu 6
Sprawdź czy spełnione jest założenie a = b; Jeżeli nie to wyświetl b, jeżeli tak to wyświetl liczby są równe
Koniec
Schemat blokowy:
N T
Zad. 8 Obliczanie sumy n liczb naturalnych
Przepis:
Podajemy liczbę n składników sumy. Później podajemy poszczególne składniki xi sumy. Aby otrzymać sumę S musimy dodać wszystkie składniki.
Wzór:
$S = \sum_{i = 1}^{n}x_{i}$
Pseudokod:
Start
Podaj liczbę n dodawanych liczb
Wprowadź wartość i zsumuj
Sprawdź czy ilość wpisanych liczb k=n, jeżeli nie to wróć do punktu 3, jeżeli tak to idź dalej
Wyświetl sumę
Koniec
Schemat blokowy:
Zad. 9 Obliczanie sumy oraz średniej arytmetycznej n liczb naturalnych
Przepis:
Podajemy najpierw liczbę n składników sumy. Później podajemy poszczególne składniki sumy. Aby otrzymać sumę S musimy dodać wszystkie składniki. Aby otrzymać średnią s musimy podzielić sumę przez liczbę składników.
Wzór:
$\overset{\overline{}}{x} = \frac{\sum_{i = 1}^{n}x_{i}}{n}$
Pseudokod:
Start
Podaj liczbę n dodawanych liczb
Wprowadź wartość i zsumuj
Sprawdź czy ilość wpisanych liczb k=n, jeżeli nie to wróć do punktu 3, jeżeli tak to idź dalej
Oblicz średnią $\overset{\overline{}}{x} = S/n$
Koniec
Schemat blokowy:
Zad. 10 Sortowanie danych metodą bąbelkową
Przepis:
Wybieramy n liczb i ustawiamy je w ciągu. Porównujemy dwa sąsiadujące elementy i odpowiednio je przestawiamy. Jeżeli chcemy ustawić liczby od najmniejszej do największej to z każdej pary liczb mniejszą zapisujemy po lewej stronie a większą po prawej. Każdy element jest tak długo przesuwany w ciągu, aż napotkany zostanie element większy od niego. Po pierwszym przebiegu ciąg nie musi być jeszcze uporządkowany, ale na pozycji n znajdzie się maksymalny element ciągu. Zatem w drugim przejściu wystarczy porządkować elementy na pozycjach od 1 do n-1. Po drugim przebiegu, dwa ostatnie elementy są na odpowiednich miejscach, czyli pozostaje posortować ciąg o dwa elementy krótszy. Sortowanie kończy się, gdy podczas kolejnego przejścia nie dokonano żadnej zmiany.
Pseudokod:
Start
Wprowadź j, i ∈ N; x1, x2, …, xn
Oprogramuj pętle zewnętrzną na warunek początkowy j: = n - 1
Sprawdź warunek j ≥ 1,jeżeli nie to wyświetl „zbiór posortowany” i idź do punktu 10, jeżeli tak to idź do punktu 5
Oprogramuj pętle wewnętrzną na warunek początkowy i: = 1
Sprawdź warunek i ≤ j,jeżeli nie to idź do punktu 7, jeżeli tak to idź do punktu 8
Kontynuuj sprawdzanie dla j: = j – 1 i wróć do punktu 4
Sprawdź warunek xi > xi + 1 , jeżeli tak to zamień liczby i idź do punktu 9, jeżeli nie to idź do punktu 9
Kontynuuj sprawdzanie dla i: = i + 1 i wróć do punktu 6
Koniec
Schemat blokowy:
Zad. 11 Sortowanie danych przez wstawienie
Przepis:
Wybieramy n liczb. Pierwszy element pozostaje na swoim miejscu. Następnie bierzemy drugi i sprawdzamy, w jakiej relacji jest on z pierwszym. Jeśli jest większy, to zostaje na drugim miejscu, w przeciwnym wypadku ustawiamy go na pierwszym miejscu. Dalej sprawdzamy trzeci element (porównujemy go do dwóch pierwszych i wstawiamy w odpowiednie miejsce), czwarty (porównujemy z trzema pierwszymi), piąty itd. Za każdym razem wybieramy liczbę z części nieposortowanej i wstawiamy do części posortowanej. Szukamy dla niej takiego miejsca, aby liczba na lewo była niewiększa a liczba na prawo niemniejsza.
Pseudokod:
Start
Wprowadź j, i ∈ N; x1, x2, …, xn
Oprogramuj pętle zewnętrzną na warunek początkowy j: = n - 1
Sprawdź warunek j ≥ 1,jeżeli nie to wyświetl „zbiór posortowany” i idź do punktu 10, jeżeli tak to idź do punktu 5
Oprogramuj x: = xj
Oprogramuj i: = j +1
Sprawdź warunek i ≤ n,jeżeli nie to idź do punktu 8, jeżeli tak to idź do punktu 9
x: = xi − 1 ; j: =j-1 i wróć do punktu 7
Kontynuuj sprawdzanie dla x < xi jeżeli tak to idź 8, a jeżeli nie to idź dalej
xi − 1 ← xi
Kontynuuj sprawdzanie dla i: = i + 1 i wróć do punktu 7
Koniec
Schemat blokowy:
Zad. 12 Sortowanie danych metodą kubełkową
Przepis:
Wybieramy przedział liczb. Dzielimy je na n podprzedziałów jednakowej długości (kubełki). Sortujemy zawartość kubełków, a następnie przeglądamy po kolei kubełki i wypisujemy uporządkowany ciąg liczb.
Pseudokod:
Start
Wprowadź i, j ∈ N; x1, x2, …, xn
Przypisz i: = xmin
Sprawdź warunek i ≤ xmax, jeżeli nie idź do punktu 5, jeżeli tak to idź do punktu 9
Przypisz i: = 1
Sprawdź warunek i ≤ n, jeżeli nie to idź do punktu 11, jeżeli tak kontynuuj dalej
Przypisz lw[d(i)] lw[d(i)] + 1
Przypisz i: = i + 1 i wróć do 6
Przypisz lw[i]: = 0
Przypisz i: = i + 1 i wróć do 4
Przypisz j: = 1
Przypisz i: = xmin
Sprawdź i ≤ xmax, jeżeli tak to idź do punktu 14, jeżeli nie to wyświetl zbiór posortowany i koniec
Sprawdź warunek lw[i]>0, jeżeli tak to idź do punktu 15, jeżeli nie to idź do punktu 16
Przypisz d[j]: = 1; lw[i] = lw[i] − 1; j: = j + 1 i idź do 14
Przypisz i: = i + 1 i idź do 13
Schemat blokowy: