SII algorytmy

POLITECHNIKA POZNAŃSKA
Wydział Maszyn Roboczych i Transportu
SYSTEMY INFORMACYJNO-INFORMATYCZNE W TRANSPORCIE II
Wykonawca: Data wykonania ćwiczenia: Prowadzący:
Paulina Tomaszek 30.04.15 dr inż. Waldemar Walerjańczyk
Grupa, Semestr: Data oddania: Ocena:

Logistyka Transportu

Semestr 6

14.05.15

Cel ćwiczenia

Celem ćwiczenia jest zapoznanie się z tematyką budowy schematów blokowych (flowcharts) dla modelowania algorytmów komputerowych.

Przykład algorytmu kontroli poprawności danych dla sprawdzenia poprawności numeru NIP.

Numer identyfikacji podatkowej jest numerem niepowtarzalnym i jedynym dla danego podmiotu, który ma go identyfikować dla celów podatkowych. NIP jest zestawem cyfr tak dobranych, iż wyklucza powtórzenie się takiej samej kombinacji dla dwóch różnych podmiotów. Konstrukcja NIPu zakłada, że składa się on z 9-ciu cyfr kodujących, a ostatnia cyfra jest cyfrą kontrolną. Aby zweryfikować poprawność numeru musimy postąpić według następujących zasad (algorytm ogólny):

1. Wszystkim cyfrom kodującym przypisujemy wagi liczbowe w następujący sposób:1-sza cyfra NIPu ma wagę = 6, 2-ga cyfra ma wagę = 5, 3-cia cyfra otrzymała wagę = 7,... Pełny wektor wag wygląda następująco: [6, 5, 7, 2, 3, 4, 5, 6, 7].

2. Dla każdej cyfry kodującej z numeru NIP wyliczamy iloczyn jej wartości przez przypisaną do jej pozycji wartość wagi, czyli pierwsza cyfra NIPu * 6, druga cyfra NIPu * 5,...

3. Sumujemy dziewięć iloczynów otrzymanych w poprzednim kroku algorytmu weryfikacji

4. Obliczamy resztę z dzielenia przez 11 sumy otrzymanej w 3 kroku algorytmu weryfikacji.

5. Porównujemy resztę wyliczoną w 4 kroku z 10-tą, kontrolną cyfrą NIPu. Jeśli cyfry są identyczne to NIP jest poprawny, jeśli cyfry różnią się to znaczy, że numer NIP jest błędny.

Obliczenia w programie Excel:

Suma iloczynów -- =suma.iloczynow(„Nr NIP bez 7”;”Wagi”)

Reszta z dzielenia --- =mod(„suma iloczynów”;11)

Schemat blokowy:

Przykład algorytmu kontroli poprawności danych dla sprawdzenia poprawności numeru REGON

  1. Wszystkim cyfrom kodującym przypisujemy wagi liczbowe [8,9,2,3,4,5,6,7]

  2. Dla każdej cyfry kodującej z numeru REGON wyliczamy iloczyn jej wartości przez przypisaną do jej pozycji wartość wagi, czyli pierwsza cyfra REGONu * 8, druga cyfra * 9,...

  3. Sumujemy iloczyny otrzymanych w poprzednim kroku algorytmu weryfikacji

  4. Obliczamy resztę z dzielenia przez 11 sumy otrzymanej w 3 kroku algorytmu weryfikacji.

  5. Porównujemy resztę wyliczoną w 4 kroku z ostatnią, kontrolną cyfrą REGONu. Jeśli cyfry są identyczne to REGON jest poprawny, jeśli cyfry różnią się to znaczy, że numer jest błędny.

  6. Warto zauważyć, że wynik dzielenia modulo 11 może wyjść 10. Ponieważ cyfry "10" brak (a znaku X jak w numerze ISBN się tu nie stosuje) to w tym przypadku jako cyfrę kontrolną

należy przyjąć 0.

Schemat obliczania w programie Excel będzie bardzo podobny. Zmienią się tylko wagi i liczba cyfr w numerze.

Schemat blokowy:

Przykład algorytmu kontroli poprawności danych dla sprawdzenia poprawności numeru PESEL

  1. Wszystkim cyfrom kodującym przypisujemy wagi liczbowe [1,3,7,9,1,3,7,9,1,3]

  2. Dla każdej cyfry kodującej z numeru PESEL wyliczamy iloczyn jej wartości przez przypisaną do jej pozycji wartość wagi, czyli pierwsza cyfra * 1, druga cyfra * 3,...

  3. Sumujemy iloczyny otrzymanych w poprzednim kroku algorytmu weryfikacji

  4. Obliczamy resztę z dzielenia przez 10 sumy otrzymanej w 3 kroku algorytmu weryfikacji.

  5. Od 10 odejmujemy wartość uzyskaną w poprzednim kroku.

  6. Uzyskana liczba jest cyfrą kontrolną.

  7. Warto zauważyć, że jeśli w kroku 5 uzyskamy liczbę 10 to w tym przypadku jako cyfrę kontrolną należy przyjąć 0.

Schemat blokowy:

Przykład algorytmu liczącego silnie z danej liczby

Przykład algorytmu liczącego średnią z liczb

Wnioski

Czym są numery NIP, REGON oraz PESEL każdy z nas wie. Cechą wspólną tych numerów jest to, ze występuje w nich cyfra kontrolna. Zlokalizowana jest ona na końcu numeru. Bierze się ja zazwyczaj z iloczynu cyfr numeru i odpowiednich im wag. Algorytmy potwierdzania poprawności numeru pozwalają nam, na uniknięciu ewentualnych błędów podczas wpisywania danych do jakiegoś systemu. Mogą to być błędy np. związane ze zmianą kolejności cyfr.


Wyszukiwarka

Podobne podstrony:
SII 15 Projektowanie algorytmow
SII 15 Projektowanie algorytmow
Układy Napędowe oraz algorytmy sterowania w bioprotezach
5 Algorytmy
5 Algorytmy wyznaczania dyskretnej transformaty Fouriera (CPS)
SII 17 Technologie mobilne
W5 sII PCR i sekwencjonowanie cz 2
Tętniak aorty brzusznej algorytm
Algorytmy rastrowe
Algorytmy genetyczne
Teorie algorytmow genetycznych prezentacja
Algorytmy tekstowe
Algorytmy i struktury danych Wykład 1 Reprezentacja informacji w komputerze
ALGORYTM EUKLIDESA

więcej podobnych podstron