Laboratorium 3


Pętle while i do-while

Instrukcja warunkowa "if"

if warunek:
	instrukcje wykonywane, jeżeli warunek jest spełniony
else:
	instrukcje wykonywane, jeżeli warunek nie został spełniony

if warunek1:
	instrukcje wykonywane, jeżeli warunek jest spełniony
elif warunek2:
	instrukcje wykonywane, jeżeli poprzedni warunek nie został spełniony, natomiast warunek2 jest spełniony
...
else:
	instrukcje wykonywane, jeżeli żadne z wcześniejszych wyrażeń nie zostały spełnione	

Pętla while

while warunek:
	instrukcje do wykonania w pętli, jeżeli warunek jest spełniony

Pętla do-while

while True: 
	instrukcje do wykonania w pętli, jeżeli warunek jest spełniony (True - zawsze jest spełniony)
	if not warunek:
		break

Pobieranie danych od użytkownika (domyślne wejście dla skryptu, input())

a = input() # pobiera dane z klawiatury i przypisuje je do zmiennej a, wejście zawsze jest typu string
b = int(input()) # rzutowanie danych typu string na liczbę całkowitą, dane muszą mieć odpowiedni format, np. "15"
Zadania
  1. Przeprowadź analizę poniższych schematów blokowych. Następnie zaimplementuj je w Python'ie. Dla jakich wartości k i m oba algorytmy działają w ten ssam sposób, tzn. dla takich samych wartości początkowych zwracają taki sam wynik.


  2. Napisz skrypt, który będzie pobierał od użytkownika liczby dopóki nie zostanie podana wartość 0 (0 oznacza koniec pobierania). Następnie wyświetli sumę podanych wartości.
    Wejście:
    Zmienna liczba, przechowująca kolejne podane liczby.
    Wyjście:
    Na ekranie pojawia się suma podanych liczb.
    Warunki poprawności zadania:
    Po podaniu wszystkich liczb wyświetla się ich suma. Upewnij się, że prawidłowa wartość pojawia się przy podaniu liczb ujemnych, ułamkowych.

  3. Napisz skrypt, który będzie pobierał od użytkownika liczby dopóki nie zostanie podana wartość 0 (0 oznacza koniec pobierania). Następnie wyświetli ile z pośród podanych liczb jest dodatnich, a ile ujemnych.
    Wejście:
    Zmienna liczba, przechowująca kolejne podane liczby.
    Wyjście:
    Na ekranie pojawia się informacje odnośnie liczby podanych liczb dodatnich i ujemnych.
    Warunki poprawności zadania:
    Po podaniu wszystkich liczb wyświetla się odpowiednia informacja na temat liczby podanych dodatnich i ujemnych liczb. Upewnij się, że prawidłowa wartość pojawia się przy podaniu liczb ujemnych, ułamkowych.

  4. Napisz skrypt, który dla liczby n wyznaczy największą liczbę m taką, że: 1 + 2 + 3 + ... + m <= n.
    Wejście:
    Zmienna n przechowująca liczbę całkowitą dodatnią.
    Wyjście:
    Na ekranie pojawiają się największa liczba m taka, że: 1 + 2 + 3 + ... + m <= n.
    Warunki poprawności zadania:
    Upewnij się, że dla liczby n pojawia się największa liczba m taka, że: 1+2+3+...+m <= n.

  5. Napisz skrypt, który dla dwóch liczb zwróci informację jaki jest ich największy wspólny dzielnik, np. dla liczb 24 i 18, będzie to 6. Wykorzystaj do tego algorytm Euklidesa z odejmowaniem:
    dopóki a jest różne od b to:
    	od liczby większej odejmij mniejszą i podstaw nowy wynik.
    
    Przykład dla 24 i 18:
    	a) a = 24, b = 18
    	b) a = 24 - 18, b = 18
    	c) a = 6, b = 18 - 6
    	d) a = 6, b = 6, NWD(a,b) = 6
    

    Wejście:
    Zmienna a i b, przechowująca dwie dodatnie liczby całkowite.
    Wyjście:
    Na ekranie pojawia się największy wspólny dzielnik tych liczb.
    Warunki poprawności zadania:
    Upewnij się, że dla dowolnych liczb powinien pojawi się ich największy wspólny dzielnik.

  6. Napisz skrypt, który dla dowolnej liczby w systemie dwójkowym wyświetli jego odpowiednik w systemie dziesiętnym. Wykonaj to zadanie bez korzystania z wbudowanych funkcji przeliczających na inny system liczbowy.
    Wejście:
    Zmienna bin przechowująca dodatnią liczbę całkowitą zapisaną w systemie dwójkowym.
    Wyjście:
    Na ekranie pojawia się podana liczba w systemie dziesiętnym.
    Warunki poprawności zadania:
    Upewnij się, że dla każdej liczby bin pojawia się odpowiednia konwersja liczby z systemu dwójkowego na system dziesiętny.

  7. Napisz skrypt odpowiadający prostemu kalkulatorowi, który bedzie obliczał wybrane przez użytkownika działania, dopóki użytkownik nie zechce zakończyć jego działania.
    Wyjście:
    Na ekranie pojawia się pseudograficzna struktura kalkulatora, odpowiedni teskt i wyniki działań.