LEKCJA 1. Od problemu do programu – dane, zmienne, wejście i wyjście

Temat 1/ Klasa 3/ Lekcja 1

1. Co to znaczy „rozwiązać problem”?

W informatyce problem to zadanie, dla którego chcemy znaleźć sposób rozwiązania.

Przykład:

Oblicz pole prostokąta o bokach podanych przez użytkownika.

Zanim zaczniemy pisać program, warto odpowiedzieć na trzy pytania:

  1. Jakie dane otrzymujemy?
    Długość i szerokość prostokąta.
  2. Co trzeba zrobić z danymi?
    Pomnożyć długość przez szerokość.
  3. Jaki wynik ma podać program?
    Pole prostokąta.

Możemy więc zapisać plan:

dane → obliczenia → wynik

To jeden z najprostszych sposobów planowania programu.


2. Algorytm

Algorytm to uporządkowany i jednoznaczny sposób rozwiązania problemu, zapisany jako ciąg kolejnych czynności.

Algorytm obliczania pola prostokąta może wyglądać tak:

  1. Pobierz długość prostokąta.
  2. Pobierz szerokość prostokąta.
  3. Pomnóż długość przez szerokość.
  4. Wyświetl wynik.

Dopiero na podstawie takiego planu możemy napisać program.


3. Program komputerowy

Program komputerowy to zapis instrukcji w języku zrozumiałym dla komputera.

Na lekcjach będziemy używać języka Python.

Przykładowa instrukcja:

print("Witaj!")

Funkcja print() służy do wyświetlania informacji na ekranie.

Po uruchomieniu programu zobaczymy:

Witaj!

4. Zmienna

Programy muszą gdzieś przechowywać dane. Służą do tego zmienne.

Zmienną można wyobrazić sobie jako podpisane pudełko, w którym program przechowuje określoną wartość.

wiek = 17

Powstała zmienna wiek, w której zapisano wartość 17.

Możemy ją wyświetlić:

wiek = 17
print(wiek)

Wynik:

17

Nazwy zmiennych powinny informować, co przechowują.

Dobrze:

wiek = 17
cena = 25
liczba_uczniow = 30

Mniej czytelnie:

x = 17
a = 25
z = 30

W prostych obliczeniach matematycznych nazwy a, b czy x są jednak dopuszczalne.


5. Pobieranie danych – input()

Jeżeli użytkownik ma coś wpisać, używamy funkcji input().

imie = input("Podaj swoje imię: ")
print(imie)

Jeżeli użytkownik wpisze:

Anna

program wyświetli:

Anna

Możemy również napisać:

imie = input("Podaj swoje imię: ")
print("Witaj", imie)

Wynik może wyglądać tak:

Witaj Anna

6. Tekst a liczba

To bardzo ważna zasada.

Dane pobrane przez input() Python traktuje domyślnie jako tekst.

Dlatego:

wiek = input("Podaj wiek: ")

nie oznacza jeszcze, że wiek jest liczbą.

Jeżeli potrzebujemy liczby całkowitej, możemy użyć:

wiek = int(input("Podaj wiek: "))

int() zamienia odpowiedni tekst na liczbę całkowitą.

Przykładowe liczby całkowite:

5
17
0
-3

Jeżeli chcemy dopuścić liczby z częścią dziesiętną, możemy zastosować float():

cena = float(input("Podaj cenę: "))

Przykładowe wartości:

12.5
7.25
3.0

W Pythonie część dziesiętną zapisujemy z kropką, a nie z przecinkiem.


7. Podstawowe działania

Python może wykonywać działania matematyczne.

a = 10
b = 5
print(a + b)
print(a - b)
print(a * b)
print(a / b)

Najważniejsze operatory:

  • + – dodawanie,
  • - – odejmowanie,
  • * – mnożenie,
  • / – dzielenie.

8. Przykład – pole prostokąta

Problem:

Napisz program obliczający pole prostokąta.

Najpierw plan:

  1. pobierz długość,
  2. pobierz szerokość,
  3. oblicz pole,
  4. wyświetl wynik.

Program:

a = float(input("Podaj długość: "))
b = float(input("Podaj szerokość: "))
pole = a * b
print("Pole prostokąta wynosi:", pole)

Jeżeli podamy:

5
4

otrzymamy:

Pole prostokąta wynosi: 20.0

Zwróć uwagę, że program jest bezpośrednim przełożeniem wcześniej przygotowanego planu.


9. Przykład – średnia dwóch ocen

Plan:

  1. pobierz pierwszą ocenę,
  2. pobierz drugą ocenę,
  3. dodaj oceny,
  4. podziel sumę przez 2,
  5. wyświetl wynik.
ocena1 = float(input("Podaj pierwszą ocenę: "))
ocena2 = float(input("Podaj drugą ocenę: "))
srednia = (ocena1 + ocena2) / 2
print("Średnia wynosi:", srednia)

Nawias jest tutaj ważny. Najpierw chcemy dodać dwie oceny, a dopiero później podzielić wynik przez 2.


10. Typowe błędy początkujących

Brak zamiany tekstu na liczbę

a = input("Podaj liczbę: ")
b = input("Podaj liczbę: ")
print(a + b)

Jeżeli wpiszemy 2 oraz 3, możemy otrzymać:

23

Python połączył dwa teksty.

Poprawnie:

a = int(input("Podaj liczbę: "))
b = int(input("Podaj liczbę: "))
print(a + b)

Teraz wynikiem będzie:

5

Zadanie podsumowujące

Napisz program, który:

  • pobiera cenę jednego biletu,
  • pobiera liczbę kupowanych biletów,
  • oblicza całkowity koszt,
  • wyświetla wynik.

Przykład:

Cena biletu: 18

Liczba biletów: 3

Wynik:

Do zapłaty: 54.0

Najpierw spróbuj napisać program samodzielnie i uruchom go w IDLE Python. Dopiero później porównaj swoje rozwiązanie z odpowiedziami.

Który program jest poprawny?

A

cena = float(input("Podaj cenę biletu: "))
liczba = int(input("Podaj liczbę biletów: "))
koszt = cena + liczba
print("Do zapłaty:", koszt)

B

cena = float(input("Podaj cenę biletu: "))
liczba = int(input("Podaj liczbę biletów: "))
koszt = cena * liczba
print("Do zapłaty:", koszt)

C

cena = input("Podaj cenę biletu: ")
liczba = input("Podaj liczbę biletów: ")
koszt = cena * liczba
print("Do zapłaty:", koszt)

D

cena = float(input("Podaj cenę biletu: "))
liczba = int(input("Podaj liczbę biletów: "))
koszt = cena / liczba
print("Do zapłaty:", koszt)

Wskazówka

Zastanów się:

Jeśli jeden bilet kosztuje 18 zł, a kupujemy 3 bilety, jakie działanie należy wykonać?

Odpowiedź

Prawidłowa odpowiedź: B.

W programie B cena jest mnożona przez liczbę biletów:

koszt = cena * liczba

A jest błędne, ponieważ dodaje cenę biletu do liczby biletów.

C jest błędne, ponieważ wartości pobrane przez input() pozostają tekstem. Nie można w taki sposób pomnożyć dwóch tekstów.

D jest błędne, ponieważ dzieli cenę jednego biletu przez liczbę biletów zamiast obliczyć koszt wszystkich biletów.


Zadanie z gwiazdką ★

Napisz program obliczający koszt wycieczki dla jednej osoby.

Program powinien pobrać:

  • koszt przejazdu,
  • koszt noclegu za jedną noc,
  • liczbę noclegów,

a następnie obliczyć:

koszt przejazdu + koszt wszystkich noclegów

Rozwiązanie

przejazd = float(input("Koszt przejazdu: "))
nocleg = float(input("Cena jednego noclegu: "))
liczba_noclegow = int(input("Liczba noclegów: "))
koszt = przejazd + nocleg * liczba_noclegow
print("Koszt wycieczki:", koszt)

Najpierw obliczana jest cena wszystkich noclegów:

nocleg * liczba_noclegow

Następnie dodawany jest koszt przejazdu.