algorytm.org

Implementacja w Delphi/Pascal



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

UPC-A - Implementacja w Delphi/Pascal
Ocena użytkownikóww: *****  / 1
SłabyŚwietny
Nadesłany przez Tomasz Lubiński, 28 sierpnia 2007 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

upca_d/upca.dpr:
program upca;

//www.algorytm.org
//UPC-A
//(c) 2007 Tomasz Lubinski

{$APPTYPE CONSOLE}
uses
  SysUtils;

var
  UPC_A : array [0..13] of Integer;
  valid : boolean = false;
  UPC_A_str : string;

Systems : array [0 .. 9] of String = (
        'zwykły kod UPC', 'zarezerwowany', 'waga prduktów ważonych w sklepie',
        'lekarstwa', 'artykuł nie będący żywnością', 'kupony', 'zarezerwowany',
        'zwykły kod UPC', 'zarezerwowany', 'zarezerwowany' );

function checkSum(UPC_A: array of Integer): boolean;
var
        sum: Integer;
begin

        sum := 3 * UPC_A[0] +
	       1 * UPC_A[1] +
	       3 * UPC_A[2] +
	       1 * UPC_A[3] +
	       3 * UPC_A[4] +
	       1 * UPC_A[5] +
	       3 * UPC_A[6] +
	       1 * UPC_A[7] +
	       3 * UPC_A[8] +
	       1 * UPC_A[9] +
	       3 * UPC_A[10];
		
        sum := sum mod 10;
        sum := 10 - sum;
        sum := sum mod 10;

        if sum = UPC_A[11] then
		result := true
	else
		result := false;

end;

procedure UPCAValidator(UPCANumber: String);
var
        i : integer;
begin

	if (length(UPCANumber) <> 12) then
		valid := false
	else
            begin
		for i := 0 to 11 do
			UPC_A[i] := strToInt(UPCANumber[i+1]);

		if checkSum(UPC_A) then
			valid := true
		else
			valid := false;
  	    end;
end;


begin
        writeln('Podaj numer UPC-A (bez spacji i myslinikow)');
        readln(UPC_A_str);

        UPCAValidator(UPC_A_str);


        if valid then
           begin
        	writeln('Numer UPC-A jest prawidłowy');
        	writeln('Numer systemu: ' + Systems[UPC_A[0]]);
           end
        else
           begin
        	writeln('Numer UPC-A jest nieprawidłowy');
           end;

end.
Dodaj komentarz