czerwiec 2017

Data ostatniej modyfikacji:
2018-09-15

Zad. 1. Na stole leży n monet, z których jedna leży do góry orzełkiem, a reszta reszką. W pojedynczym ruchu możemy odwrócić dowolne trzy monety. Czy da się uzyskać n reszek, a jeśli tak, to w ilu ruchach minimalnie, jeśli: a) n = 100, b) n = 101, c) n = 102?

Zad. 2. Zwariowany komputer wyświetla na ekranie liczbę k, którą uzyskuje, wykonując poniższy ciąg instrukcji:
a) zaczyna od k = 0;
b) dodaje do k dowolnie wiele (być może zero) razy liczbę 10;
c) albo powiększa k o 1 i kończy działanie, wyświetlając wartość k, albo dowolnie wiele razy (być może zero) dodaje do k liczbę 15;
d) powiększa k o 4 albo o 2;
e) kończy działanie, wypisując wartość k.
Ile jest liczb wśród 1, 2, ..., 2016, 2017, które mogą zostać wyświetlone?

Zad. 3. Podaj algorytm, który oblicza, którym dniem w roku zwykłym jest dzień o zadanej dacie (d - numer dnia, m - numer miesiąca).

 

Wyniki: 

W tym miesiącu punkty zdobyli:

  • 3 pkt. - Jadwiga Bąk (nauczycielka z Karłowic), Krzysztof Danielak (student informatyki przemysłowej na PWr), Szymon Meyer (student matematyki na PWr), Andrzej Piasecki (administrator IT z Oleśnicy), Wojciech Tomiczek (inżynier z Lipowej), Marzena Wąsiewicz (gospodyni domowa z Kajetan),
  • 2,5 pkt. - Jakub Ptak SP 64 Wrocław
  • 2 pkt. - Daria Bumażnik (studentka chemii i toksykologii sądowej na UWr), Krystyna Lisiowska (redaktor z Warszawy).

Po dziewięciu miesiącach trwania Ligi  Zadaniowej z Kalkulatorem i Komputerem wyniki czołówki są następujące (na 30 możliwych punktów):

  • 29,5 pkt. - Marzena Wąsiewicz
  • 28,75 pkt. - Jadwiga Bąk
  • 28,5 pkt. - Andrzej Piasecki
  • 26 pkt. - Szymon Meyer
  • 24,75 pkt. - Krzysztof Danielak
  • 23,75 pkt. - Wojciech Tomiczek
  • 22,6 pkt. - Jakub Ptak
  • 21,25 pkt. - Krystyna Lisiowska
  • 20,75 pkt. - Daria Bumażnik.

 

Odpowiedzi: 

Zad. 1. We wszystkich przypadkach minimalna liczba ruchów wynosi 3. W pierwszych dwóch ruchach odwracamy po dwie reszki i orła, a w trzecim odwracamy trzy orły i mamy n reszek.

Zad. 2. Może zostać wyświetlone 1007 liczb. Komputer wyświetla liczby postaci: 10n+1, 10n+15m+2, 10n+15m+4, gdzie n, m ≥ 0.

W każdej dziesiątce liczb (oprócz pierwszej) znajduje się 5 liczb, które
komputer może wyświetlić (np.

31 = 10·3+1,

32 = 10·3+15·0+2,

34 = 10·3+15·0+4,

37 = 10·2+15·1+2,

39 = 10·2+15·1+4).

Zatem wśród liczb od 10 do 2009 mamy 200·5=1000 liczb, które mogą być
wyświetlone. Ponadto są jeszcze 3 liczby z zakresu 1-9 (1, 2, i 4) oraz 4 z zakresu 2010-2017 (2011, 2012, 2014, 2017).

Zad. 3. Oto przykładowy algorytm. Standardowo instrukcja warunkowa działa tak, że wykonuje wszystkie linie programu, gdy jest spełniona, a opuszcza kolejną i wykonuje pozostałe, gdy nie jest spełniona.

przyjmij d
przyjmij m
wstaw d do zmiennej x
jeżeli m>1 zwiększ x o 31
jeżeli m>2 zwiększ x o 28
jeżeli m>3 zwiększ x o 31
jeżeli m>4 zwiększ x o 30
jeżeli m>5 zwiększ x o 31
jeżeli m>6 zwiększ x o 30
jeżeli m>7 zwiększ x o 31
jeżeli m>8 zwiększ x o 31
jeżeli m>9 zwiększ x o 30
jeżeli m>10 zwiększ x o 31
jeżeli m>11 zwiększ x o 30
wyświetl x

Dni kolejnych miesięcy można zapamiętać w postaci listy L = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}. Wtedy instrukcje warunkowe można zastąpić pętlą.

przyjmij d
przyjmij m
wstaw d do zmiennej x
wstaw 1 do zmiennej n
etykieta1
x+L(n) wstaw do x
wstaw n+1 do zmiennej n
jeżeli n<m przejdź do etykiety 1
wyświetl x

Można zmniejszyć liczbę warunków ([a] oznacza część całkowitą liczby a).

przyjmij d
przyjmij m
wstaw d do zmiennej x
jeżeli m<3 wstaw x+31*(m-1) do x
w przeciwnym razie
   jeżeli m<9 wstaw x+59+[m-2/2]*31+[m-3/2]*30 do x
   wstaw x+59+[m-1/2]*31+[m-4/2]*30 do x
wyświetl x

A można też tak:

przyjmij d
przyjmij m
wyświetl [m+10/12]*31+[m+9/12]*28+[m+8/12]*31+[m+7/12]*30+[m+6/12]*31+[m+5/12]*30+[m+4/12]*31+[m+3/12]*31+[m+2/12]*30+[m+1/12]*31+[m/12]*30+d

 

Powrót na górę strony