czwartek, 26 grudnia 2013

Rozwiązywanie problemów

1. Lista kroków - Wykonanie algorytmu opisujemy przedstawiając kolejne kroki tego procesu. W każdym kroku opisujemy zwięźle wykonywaną operację. Istnieją pewne zasady tego opisu. Kroki są numerowane i wykonywane zgodnie z numerami, o ile nie zostanie nakazane inaczej. Przed listą kroków należy umieścić tzw. specyfikację danych. Jest to opis danych wejściowych i wyjściowych algorytmu. Dane wejściowe to informacja, którą musi otrzymać algorytm w celu rozwiązania problemu. Dane wyjściowe to wyniki pracy algorytmu.

Przykład:

Algorytm Euklidesa wyznaczania NWD dwóch liczb a i b

Wejście:
    a,b - liczby naturalne, których NWD oblicza algorytm
Wyjście:
    a lub b - wartość NWD pierwotnych liczb a i b.

Krok 1: Czytaj a,b ; wczytujemy dane wejściowe
Krok 2: Jeśli a = b, to idź do kroku 5 ; jeśli a = b, to NWD jest a lub b
Krok 3: Jeśli a > b, to aa - b. Inaczej bb - a ; jeśli a jest różne od b, to od większej liczby odejmujemy mniejszą
Krok 4: Idź do kroku 2 ; wracamy do sprawdzania warunku w kroku 2
Krok 5: Pisz a ; wypisujemy NWD
Krok 6: Zakończ ; koniec algorytmu

Użyte operacje:
Czytaj - powoduje odczyt danych i przypisanie ich podanym symbolom.
Pisz - powoduje wypisanie informacji
Idź do kroku n
- powoduje, że następna operacja zostanie wykonana od kroku n.
Jeśli warunek, to operacja1. Inaczej operacja2 - jeśli warunek jest spełniony, to zostaje wykonana operacja1. Inaczej wykonana zostanie operacja2.
Zakończ - powoduje zakończenie wykonywania algorytmu.

2.Schemat blokowy - Algorytm opisywany jest w sposób graficzny za pomocą następujących symboli:
Symbol startowy, od którego rozpoczyna się wykonanie algorytmu
Symbol końca algorytmu
Strzałka określa kierunek wykonania. Prowadzi do następnego symbolu w algorytmie.
Symbol przetwarzania danych
Symbol operacji wprowadzania danych lub wyprowadzania wyników.
Symbol decyzyjny. W zależności od wyniku testu idziemy drogą TAK, jeśli test jest spełniony lub drogą NIE, jeśli test nie jest spełniony.
Schemat blokowy również wymaga specyfikacji danych wejściowych i wyjściowych.

3. Arkusz kalkulacyjny - program komputerowy przedstawiający dane, głównie liczbowe, w postaci zestawu dużych tabel dwuwymiarowych, pozwalający na automatyczną obróbkę tych danych oraz na prezentację ich w różny sposób.
Najważniejszym narzędziem arkusza kalkulacyjnego są funkcje (matematyczne, statystyczne, daty i czasu, finansowe, bazodanowe, logiczne), za pomocą których wprowadzone do arkusza dane są automatycznie przetwarzane. Możliwe jest także tworzenie różnego rodzaju symulacji. Za pomocą arkusza kalkulacyjnego można także wizualizować dane, prezentując je w postaci wykresów (kolumnowych, słupkowych, kołowych, liniowych, warstwowych itd.), które pozwalają łatwiej zorientować się we wzajemnych zależnościach i tendencjach.


Rozwiazanie problemu w arkuszu kalkulacyjnym MS Excel444
:




4. Visual basic - język programowania wysokiego poziomu i narzędzie programowania firmy Microsoft. Składnia jest oparta na języku BASIC,
 ale unowocześniona. Zawiera kilkaset instrukcji,funkcji i słów kluczowych. Nie jest językiem w pełni obiektowym, gdyż nie udostępnia np. możliwości dziedziczenia, czy polimorfizmu. Wykorzystuje technologię ActiveX.



5. Turbo Pascal – jedna z popularniejszych implementacji kompilatorów języka Pascal, zintegrowane środowisko programistyczne, produkt firmy Borland International dla procesorów Z-80 (system CP/M) oraz rodziny Intel 80x86 i nowszych. Obecnie nie jest już rozwijany. Następcą Turbo Pascala jest Borland Delphi.

 Rozwiązywanie problemu przy pomocy Turbo Pascal (listing):

program wydawanie_reszty; uses crt; var reszta : longint;
begin
clrscr;
writeln('podaj kwotę: '); readln(reszta); writeln;
writeln(reszta div 200, ' banknotow 200zl');
reszta:=reszta mod 200;
writeln(reszta div 100, ' banknotow 100zl');
reszta:=reszta mod 100;
writeln(reszta div 50, ' banknotow 50zl');
reszta:=reszta mod 50;
writeln(reszta div 20, ' banknotow 20zl');
reszta:=reszta mod 20;
writeln(reszta div 10, ' banknotow 10zl');
reszta:=reszta mod 10;
writeln(reszta div 5, ' monet 5zl');
reszta:=reszta mod 5;
writeln(reszta div 2, ' monet 2 zl');
reszta:=reszta mod 2;
writeln(reszta, ' monet 1 zl');
repeat until keypressed;
end.





6. C++ – język programowania ogólnego przeznaczenia. Umożliwia abstrakcję danych oraz stosowanie kilku paradygmatów programowania: proceduralnego, obiektowego i generycznego. Charakteryzuje się wysoką wydajnością kodu wynikowego, bezpośrednim dostępem do zasobów sprzętowych i funkcji systemowych, łatwością tworzenia i korzystania z bibliotek (napisanych w C++, C lub innych językach), niezależnością od konkretnej platformy sprzętowej lub systemowej (co gwarantuje wysoką przenośność kodów źródłowych) oraz niewielkim środowiskiem uruchomieniowym. Podstawowym obszarem jego zastosowań są aplikacje i systemy operacyjne.

Rozwiązywanie problemu przy pomocy C++ (listing)

//Wydawanie reszty, C++
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(int argc, char *argv[])
{
//tablica dostepnych nominalow
int N[8]={200, 100, 50, 20, 10, 5, 2, 1};
int R,P, i;
cout << "Podaj reszte do wyplacenia: ";
cin >> R;
i=0;
while (R>0) //dopoki nie wydano calej reszty
{
if (R >= N[i]) //sprawdz czy mozna wydac danym nominalem
{
P=R / N[i]; //ile razy wydac dany nominal
R=R-(N[i]*P); //zmniejsz reszte o wydany nominal
cout << N[i] << " x " << P << endl; //wypisz wynik
}
i++; //rozpatrz kolejny nominal
}
system("PAUSE");
return 0;
}


                                                             

Brak komentarzy:

Prześlij komentarz