Test na programistę

wynik-testu-na-programiste

Dzisiaj pokażę Ci jak rozwiązać test na programistę, korzystając z języka VBA. Krąży w sieci zagadka dla osób chcących sprawdzić się pod względem tego, czy mogą zostać programistami.

Czym jest test na programistę?

Test polega na tym, aby wypisać liczby od 1 do 100, ale jeśli liczba będzie podzielna przez 3, to zamiast niej powinno pojawić się słowo „Fizz”, jeśli przez 5 to „Buzz”, ale jeśli jest podzielna przez 15 to „Fizz-Buzz”. Pozostałe liczby mają się wstawić bez zmian.

Zanim zaczniesz czytać dalej, spróbuj sam rozwiązać ten test.

A teraz przystępuję do rozwiązania zadania. Nową procedurę rozpoczynam od zdefiniowania zmiennej i jako double dla liczb zmiennoprzecinkowych. Na początek aktywuję komórkę A1, od której rozpocznie się wpisywanie wyników pętli.

definiowanie-zmiennej

Użyję pętli For Next, która idealnie się tutaj nada. Teraz wstawiam warunek sprawdzający, czy wynik dzielenia liczby i przez 15 równy jest wynikowi funkcji INT z dzielenia i przez 15. Funkcja INT wyciąga całości z liczb dodatnich, a to co jest po przecinku już się dla niej nie liczy.

otwarcie-petli

Najważniejsze w rozwiązaniu tego testu jest to, aby zacząć sprawdzanie liczb od najwyższej z nich, ponieważ liczba 15 jest podzielna przez 15, 5 i przez 3. Gdybym rozpoczął sprawdzanie od najmniejszej liczby, to wynik byłby nieprawidłowy.

Teraz do aktywnej komórki wprowadzam wartość „Fizz-Buzz” jeśli spełniony jest pierwszy warunek. Jeśli nie, to wprowadzam kolejne warunki sprawdzające. Czyli jeśli nie przez 15, to czy jest podzielna przez 5, a następnie przez 3. Jeśli liczba i nie jest podzielna przez żadną z tych liczb, to ma wstawić po prostu jej wartość.

Na koniec zamykam pętlę, przechodzę do kolejnej komórki i uruchamiam makro, które wypisuje liczby według założonego schematu.

kompletny-kod-test-na-programiste

Jeśli wolisz wideo to zapraszam Cię na mój kanał YT:

Spodobał Ci się artykuł ? Udostępnij go znajomym.

Share on facebook
Share on linkedin
Share on twitter

2 thoughts on “Test na programistę”

  1. Sub FizzBuzz()
    Dim a As Long
    With ActiveSheet
    For a = 1 To 100
    If a Mod 15 = 0 Then
    .Cells(a, 1).Value = „Fizz-Buzz”
    ElseIf a Mod 3 = 0 Then
    .Cells(a, 1).Value = „Fizz”
    ElseIf a Mod 5 = 0 Then
    .Cells(a, 1).Value = „Buzz”
    Else
    .Cells(a, 1).Value = a
    End If
    Next
    End With
    End Sub

    1. Dariusz Skórniewski

      Cześć Tom,
      Dziękuję za Twój komentarz. Przyznaję się, że wtedy jeszcze nie znałem modulo w VBA i w sumie dziś też uczę się coraz to nowych rzeczy 🙂

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *