algorytmy_zadania_01..

Transkrypt

algorytmy_zadania_01..
WPROWADZENIE DO ALGORYTMÓW
ALGORYTM – to precyzyjny opis sposobu rozwiązania określonego zadania lub osiągnięcia jakiegoś celu.
Wykonawcą algorytmu może być człowiek lub komputer. Algorytm jest podstawowym pojęciem informatyki.
Każdy program komputerowy jest zapisem jakiegoś algorytmu. Algorytm może być zapisany:
słownie
w postaci listy kroków
w postaci graficznej, jako schemat blokowy lub drzewo algorytmu
w jednym z języków programowania i wtedy jest zrozumiały dla komputera
Schemat blokowy przedstawia algorytm w postaci symboli graficznych. Składa się on z wielu elementów,
wśród których podstawowym jest skrzynka (blok):
Nazwa skrzynki
Wygląd skrzynki
START
Skrzynka rozpoczynająca i kończąca
algorytm
STOP
a := 5
b := 6
c := a + b
Skrzynka przypisania
Skrzynka wejścia i wyjścia
Skrzynka warunkowa
PISZ("Szkoła")
PISZ(c)
TAK
PODAJ(a)
PODAJ(x1)
NIE
I >= 10
3
Skrzynka łącznikowa
3
-1-
WPROWADZENIE DO ALGORYTMÓW
Ważnym elementem podczas tworzenia algorytmu jest określenie danych z których korzysta algorytm podczas
rozwiązywania problemu jak i efekt działania algorytmu, czyli wynik. Opis ten nazywamy specyfikacją
problemu algorytmicznego (specyfikacją algorytmu).
Oto przykład zapisu algorytmu za pomocą schematu blokowego:
Specyfikacja algorytmu:
Problem:
Dane:
Wynik:
Obliczanie średniej arytmetycznej dwóch liczb rzeczywistych
a, b ∈ R
sr ∈ R – średnia liczb a, b
START
Wprowadź: a, b
sr:=(a+b)/2
Wypisz: sr
STOP
A to przykład algorytmu zapisanego za pomocą listy kroków:
Specyfikacja algorytmu:
Problem:
Dane:
Wynik:
Zmienna pomocnicza:
Krok 1
Krok 2
Obliczanie pola trójkąta o danych długościach boków za pomocą wzoru
Herona
a, b, c – długości boków trójkąta
Pole – pole trójkąta
p –połowa długości obwodu
Oblicz połowę długości obwodu trójkąta: p:=(a+b+c)/2
Oblicz pole trójkąta wg wzoru:
Pole := p( p − a )( p − b)( p − c )
-2-
WPROWADZENIE DO ALGORYTMÓW
ZADANIA
Algorytmy liniowe (sekwencyjne) i algorytmy z rozgałęzieniami
1. Napisz za pomocą schematu blokowego algorytm obliczania pola trójkąta za pomocą wzoru Herona
2. Napisz algorytm za pomocą pseudojęzyka lub schematu blokowego. Algorytm ma obliczać pole
powierzchni i obwód koła.
3. Samochód spala 6,5 litra benzyny na 100 km. 1 litr benzyny kosztuje 3,29 zł. Z Zakopanego do
Krakowa jest 132 km. Napisz algorytm, który oblicza koszt przejazdu z Zakopanego do Krakowa.
4. Napisz algorytm, który podaną prędkość wyrażoną w m/s przekształca na km/h
5. (Zamiana zmiennych) W dwóch kubeczkach mamy po jednej kulce. Na powierzchni każdej z nich
podana jest długość jej promienia. Mamy za zadanie zamienić kulki w tych kubeczkach, w ten sposób
że:
1. możemy przekładać kulki tylko do kubeczków
2. mamy do dyspozycji trzeci (pusty) kubeczek
3. w jednym kubeczku może znajdować się co najwyżej jedna kulka.
Opracuj algorytm, który wczyta długości promieni dwóch kulek i zamieni je miejscami w kubeczkach
wedle podanej powyżej reguły.
WSK: Zmienne, służące do zapamiętania długości promieni potraktuj jako kubeczki, zaś ich wartości
jako promienie kulek.
6. Babcia powiedziała Bartkowi, że na każde urodziny otrzyma od niej dwa razy więcej złotych niż będzie
miał lat, a dziadek powiedział, że od niego dostanie na każde urodziny o 20 złotych więcej niż liczba
jego lat. Napisz algorytm, który będzie obliczał ilość pieniędzy jaką otrzyma Bartek od babci i dziadka
na x-te urodziny.
7. Kasia ulokowała w banku pewna ilość złotych na okres jednego roku. Oprocentowanie roczne w tym
banku wynosi 19,4%. Napisz algorytm, który będzie obliczał ilość pieniędzy na koncie po jednym roku
dla dowolnej sumy pieniędzy.
8. Bartek ma w skarbonce 358 złotych. Postanowił kupić na Dzień Matki trzy prezenty: kwiaty,
bombonierę i perfumy. Napisz algorytm, który będzie wczytywał z klawiatury wartości trzech towarów
oraz obliczał ilość pieniędzy jaka pozostanie Bartkowi na koncie.
9. Pobrano próbkę wody z pewnego morza. Okazało się, że w tej wodzie znajduje się 0,012% wagowych
chlorku sodu. Napisz algorytm, który będzie wczytywał masę wody i podawał ile gramów chlorku sodu
znajduje się w tej wodzie.
-3-
WPROWADZENIE DO ALGORYTMÓW
10. Poniżej podano algorytm. Wskaż błąd w tym algorytmie oraz zbuduj treść zadania do tego algorytmu
START
11. Masz kilka patyczków (np. do zapałek). Na każdym patyku podana jest jego
długość. Wybierasz losowo 3 z nich i budujesz z nich trójkąt. Utwórz algorytm,
dzięki któremu można będzie sprawdzić, czy z trzech patyczków o podanej przez
PODAJ(a)
PODAJ(b)
ciebie wielkości można będzie zbudować trójkąt
12. Teraz Twoim zadaniem jest wyznaczenie spośród trzech zadanych patyczków
PISZ(a + b)
tego, który jest największy. Opracuj algorytm, który dla podanych trzech długości
patyczków wyznaczy największy z nich.
13. Napisz algorytm za pomocą pseudojęzyka lub schematów blokowych. Algorytm
STOP
ma wczytywać z klawiatury dowolne dwie liczby. Zakładamy, że będą to liczby
całkowite. Napisz algorytm który ma wyświetlić na ekranie monitora te liczby
rys. do zadania 10
w kolejności rosnącej.
14. Dany jest schemat blokowy algorytmu. Podaj jakie wartości otrzymamy na wyjściu, jeśli wprowadzimy
odpowiednio: a=4, b-2, c=0
START
Podaj: a, b, c
NIE
NIE
TAK
a>b
TAK
a:=b+4
c:=b+2
NIE
a>c
a:=1+c
c:=b
TAK
a>c
a:=a-c
b:=b+7
a:=b+c
c:=0
Pisz: a, b, c
STOP
rys. do zadania 14
-4-
a:=b-c
b:=0