![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 0 Dołączył: 28.07.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Otóż mam mały problem ze zrobieniem takiego generatora. Podaje kod poniżej, wydaje mi się, że moja funkcja liczy źle modulo : / Jak ustawie w funkcji zamiast $num $acc to jaki numer konta nie podam to ciągle wylicza sumę kontrolną 98. Zaznaczam, że dopiero uczę się programowania w php (jestem testerem i dostałem takie zadanie domowe od programistów php)
Tutaj podaje do html'a kod jakby ktoś potrzebował. Ten post edytował Durkane 28.07.2015, 12:20:00 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 11 Dołączył: 20.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie możesz odnieść się do i-tego znalu ciągu za pomocą $num[$i];
Stwórz najpierw zmienną która będzie tablicą. Pomocne może być str_split PS. Po co jest to:
Skoro później robisz to
Ten post edytował Jarma 28.07.2015, 13:34:29 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 0 Dołączył: 28.07.2015 Ostrzeżenie: (0%) ![]() ![]() |
Suma kontrolna musi mieć 2 cyfry, więc jeżeli wychodzi od 0 do 9 to musimy z przodu dodać 0. Wiem, że jest do tego funkcja odpowiednia ![]() Później daje po to, aby mieć pewność, że odejmując to moje $CheckSum będzie intem (nie ufam za bardzo temu, że PHP samo zamienia na odpowiedni typ). Czyli jeżeli dobrze rozumiem to użyć str_split na ? ![]() Ten post edytował Durkane 28.07.2015, 14:57:47 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Ta funkcja nie ma sensu. Każdy obrót pętli, to nadpisanie poprzedniej wartości w CheckSum - wynieś inicjalizowanie zmiennej z pętli i podmień
na
Ten post edytował CuteOne 28.07.2015, 18:22:18 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 0 Dołączył: 28.07.2015 Ostrzeżenie: (0%) ![]() ![]() |
Ale to będzie brać po 1 liczbie i robić modulo dla jednej liczby. A z tego co mi tłumaczył programista algorytm to ma robić modulo i brać kolejną liczbę i dodawać do wyniku z modulo tzn. np. z modulo mamy 3, a następna liczba to 2, więc kolejny krok to 32%97. Czy to co podałeś będzie tak robić?
Bo to co wkleiłem na początku cały czas podaje mi różne wartości natomiast jeżeli usunę to wtedy suma kontrolna cały czas jest 98... Ale jutro sprawdzę Twoim sposobem i zobaczymy jak to wyjdzie ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 677 Pomógł: 89 Dołączył: 31.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze, numer konta bankowego w Polsce powinien mieć 28 znaków.
Po drugie, wg np. Wikipedii: Cytat Algorytm sprawdzania cyfr kontrolnych: Weź pełny numer konta (razem z kodem kraju), bez spacji. Sprawdź, czy zgadza się długość numeru dla danego kraju. Przenieś 4 pierwsze znaki numeru na jego koniec. Przekształć litery w numerze konta na ciągi cyfr, zamieniając 'A' na '10', 'B' na '11' itd., aż do 'Z' na '35' (dla Polski 2521). Potraktuj otrzymany ciąg znaków jak liczbę i wylicz resztę z dzielenia przez 97. Jeśli reszta jest równa 1, to numer konta ma prawidłowe cyfry kontrolne. Po trzecie - przyjmując, że numer konta jest poprawny (zaczyna się od "PL"):
gdzie sprawdzenie może wyglądać np. tak:
Ten post edytował mls 28.07.2015, 20:43:14 -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 0 Dołączył: 28.07.2015 Ostrzeżenie: (0%) ![]() ![]() |
Dobra dziękuje za pomoc
![]() ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.04.2025 - 00:29 |