Zad. 1. Ile cyfr w zapisie siódemkowym ma liczba 1234567891234567891234567892020? Odpowiedź uzasadnij, nie odwołując się do zapisu tej liczby w sytemie siódemkowym.
Zad. 2. Podaj algorytm/pseudokod/program rozwiązujący algebraf DWA·DWA=CZTERY.
Zad. 3. Profesor Roztrzepany przechodzi na emeryturę. Pragnie zaprosić wszystkich swoich studentów na pożegnalny odczyt. Dane jego studentów zanjdują się w pliku. Pomóż profesorowi utworzyć listę danych adresowych, które powędrują na koperty zaproszeń, wg wzoru:
Szanowna Pani/Szanowny Pan
Imię Nazwisko
Nazwa ulicy Numer domu Numer mieszkania (jeśli podano)
Kod pocztowy Miejscowość
Państwo (jeśli inne niż Polska).
W ostatnim zestawie zadan zamykającym edycję 2020/21 wszyscy zawodnicy dali się w zastawione w zadaniu 3 pułapki. Zdarzały się też się drobne pomyłki lub luki.
W czerwcu uczestnicy Ligi uzyskali następujące wyniki:
- 2,75 pkt. - Krystyna Lisiowska - redaktor z Warszawy,
- 2,5 pkt. - Andrzej Piasecki - administrator IT z Oleśnicy,
- 1,5 pkt. - Igor Wojtun - uczeń I LO w Głogowie,
- 1 pkt. - Krzysztof Danielak - student data science na UE we Wrocławiu.
Po zakończeniu Ligi uczestnicy zdobyli łącznie następujące liczby punktów:
- 25,25 pkt. - Andrzej Piasecki - administrator IT z Oleśnicy,
- 24,75 pkt. - Krystyna Lisiowska - redaktor z Warszawy,
- 18,75 pkt. - Igor Wojtun - uczeń I LO w Głogowie,
- 11,75 pkt. - Krzysztof Danielak - student data science na UE we Wrocławiu,
- 1,25 pkt. - Dominik Zygmunt - ekonomista z Białej Rawskiej.
Zad. 1. Liczba 1.234.567.891.234.567.891.234.567.892.020 ma w swoim zapisie 31 cyfr. Sprawdźmy zatem, pomiędzy którymi kolejnymi potęgami siódemki leży nasza liczba. 735 = 378.818.692.265.664.781.682.717.625.943, a 736 = 2.651.730.845.859.653.471.779.023.381.601. Zatem dana liczba w zapisie siódemkowym ma 36 cyfr.
Zad.2. Przykładowy kod w języku C++:
int main()
{
int i, j, k, l;
int a1[3];
int a2[6];
for (l=317;l<1000;l++)
{
k=l;
for (i=0;i<3;i++)
{
a1[i]=k%10;
k=k/10;
}
if ((a1[0] != 0) and (a1[0] != 1) and (a1[0] != 5) and (a1[0] != 6)
and (a1[0] != a1[1]) and (a1[0] != a1[2]) and (a1[1] != a1[2]))
{
k=l*l;
for (i=0;i<6;i++)
{
a2[i]=k%10;
k=k/10;
}
k=0;
for (i=0;i<3;i++)
{
for (j=0;j<6;j++)
{
if (a1[i] == a2[j])
{
k=k+1;
}
}
}
for (i=0;i<5;i++)
{
for (j=i+1;j<6;j++)
{
if (a2[i] == a2[j])
{
k=k+1;
}
}
}
if (k==0)
{
cout<<"l: "<< l << endl;
}
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
Przykładowowe rozwiązanie w formie algorytmu:
1. Weź liczbę X = 317.
2. Sprawdź, czy któraś cyfra w zapisie liczby X się powtarza.
3. Jeżeli tak, idź do punku nr 7.
4. W przeciwnym wypadku oblicz: Y = X * X.
5. Sprawdź, czy wszystkie cyfry w zapisie liczby Y są różne oraz różnią się od cyfr liczby X.
6. Jeżeli tak, to wypisz liczbę X.
7. Weź następną liczbę X = X + 1.
8. Jeśli X < 1000 idź do punktu nr 2.
9. W przeciwnym wypadku zakończ działanie.
Zad. 3. W zadaniu pojawiło się kilka "min" w postaci imion żeńskich nie kończących się literą "a" oraz imion męskich kończących się na "a". Przed wykonaniem formuły należy przygotować dane w ten sposób, że:
- zwroty grzecznościowe "Szanowna Pani" i "Szanowny Pan" umieścić w komórkach E1 i E2 odpowiednio,
- pięć imion odbiegającyh od standardu umieścić w komórkach od E3 do E7,
- w celu skorzystania z funkcji VLOOKUP w zakładce "Państwa" wszystkie miasta umieścić w kolumnie A, a odpowiadające im państwa w kolumnie B oraz posortować całość alfabetycznie.
Dzięki tym zabiegom formuła może być w pełni sparametryzowana. Dla uzyskania wymaganego efektu, w odpowiednich miejscach należy wstawić znak łamania wiersza. Teraz korzystając z odpowiedniego skrótu klawiaturowego, w łatwy sposób automatycznie wypełnimy wszystkie komórki właściwą formułą. Wybierając funkcję "zwijania tekstu w komórce" aktywują się wstawione łamania wiersza.
=CONCATENATE(IF(OR(Adresy!A2=Adresy!$E$3;Adresy!A2=Adresy!$E$4);Adresy!$E$1;IF(
OR(Adresy!A2=Adresy!$E$5;Adresy!A2=Adresy!$E$6;Adresy!A2=Adresy!$E$7);Adresy!$E$2;
IF(RIGHT(Adresy!A2;1)="a";Adresy!$E$1;Adresy!$E$2))));"
";Adresy!A2;" ";Adresy!B2;"
";Adresy!C2;"
";Adresy!D2;IF(MID(Adresy!D2;3;1)="-";"";CONCATENATE("
";VLOOKUP(IF(MID(Adresy!D2;6;1)=" ";RIGHT(Adresy!D2;LEN(Adresy!D2)-6);RIGHT(Adresy!D2;LEN(Adresy!D2)-7));
Państwa!A$2:B$106;2;FALSE))))