Z.1. (1 pkt) Liczba doskonała to taka, która jest sumą swoich dzielników mniejszych od niej, np. 6=1+2+3. Proszę wyszukać liczby doskonałe mniejsze od 400.
Z.2. (1 pkt) Dominantą nazywamy najczęściej występującą wartość w zbiorze. Jeśli takich jest kilka, to wszystkie uznajemy za dominanty. Proszę napisać program, w którym dla tablicy 30 elementowej przechowującej wylosowane liczby całkowite z zakresu 0-10, znajdowana jest dominanta.
Aby ją odnaleźć, używamy dwóch dodatkowych tablic – jednej przechowującej różne wartości z tablicy danych w porządku ich wystąpienia, drugiej – przechowującej ilość wystąpień danej liczby, na miejscu odpowiadającym tej liczbie w pierwszej tablicy.
Przykład:
Wylosowana tablica: T=[3,4,2,3,4,...]. Na początku tablice L i W są puste.
Przeglądamy tablicę T. Ponieważ pierwszej liczby, czyli 3, nie ma jeszcze w L, wstawiamy ją do L z indeksem 0 i jednocześnie do tablicy W wstawiamy 1 również z indeksem 0. Rozważamy kolejny element z T, tym razem jest to 4, nie ma go w tablicy L, a więc postępujemy jak poprzednio: L=[3,4], W=[1,1]. Dla 2 – analogicznie:
L=[3,4,2], W=[1,1,1]. Kolejny element z T to 3, ponieważ już występowała w L, więc jedynie na odpowiednim miejscu w W zwiększamy wartość o 1: L=[3,4,2], W=[2,1,1].
Itd. Dominanty to oczywiście wartości z tablicy L stojące na miejscach, na których w tablicy W znajduje się maksimum.
Z.3. (1 pkt) Dowód osobisty jest dokumentem stwierdzającym tożsamość osoby i poświadczającym jej obywatelstwo. Jak każdy dokument posiada unikalny identyfikator w tym przypadku jest to seria i numer dowodu.
Seria dowodu to 3 litery które w trakcie sprawdzania jego cyfry kontrolnej zamienia się na wartości liczbowe wg poniższego wzoru:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
Natomiast numer dowodu osobistego to 6 cyfr z czego pierwsza cyfra to cyfra kontrolna.
Aby obliczyć cyfrę kontrolną należy wartość każdego znaku identyfikatora (za wyjątkiem cyfry kontrolnej) pomnożyć przez odpowiednią wagę. Wagi te to, kolejno: 7 3 1 7 3 1 7 3. Następnie iloczyny te sumuje się i dzieli modulo 10.
Sprawdzimy poprawność numeru: ABS 123456
Dane: A B S 1 2 3 4 5 6
Wartość: 10 11 28 (1) 2 3 4 5 6
Waga: 7 3 1 - 7 3 1 7 3
Iloczyn: 70 33 28 - 14 9 4 35 18 Suma: 70 + 33 + 28 + 14 + 9 + 4 +35 +18 = 211
Reszta z dzielenia 211 mod 10 = 1.
Jak widać wynik oraz cyfra kontrolna są sobie równe, zatem podany numer dowodu osobistego jest prawidłowy.
Proszę napisać program sprawdzający, czy podany numer jest poprawnym numerem dowodu. Proszę uwzględnić pomyłki polegające na podaniu za niewłaściwej liczby liter lub cyfr.