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:
- Jakie dane otrzymujemy?
Długość i szerokość prostokąta. - Co trzeba zrobić z danymi?
Pomnożyć długość przez szerokość. - 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:
- Pobierz długość prostokąta.
- Pobierz szerokość prostokąta.
- Pomnóż długość przez szerokość.
- 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 = 17print(wiek)
Wynik:
17
Nazwy zmiennych powinny informować, co przechowują.
Dobrze:
wiek = 17cena = 25liczba_uczniow = 30
Mniej czytelnie:
x = 17a = 25z = 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:
5170-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.57.253.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 = 10b = 5print(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:
- pobierz długość,
- pobierz szerokość,
- oblicz pole,
- wyświetl wynik.
Program:
a = float(input("Podaj długość: "))b = float(input("Podaj szerokość: "))pole = a * bprint("Pole prostokąta wynosi:", pole)
Jeżeli podamy:
54
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:
- pobierz pierwszą ocenę,
- pobierz drugą ocenę,
- dodaj oceny,
- podziel sumę przez 2,
- wyświetl wynik.
ocena1 = float(input("Podaj pierwszą ocenę: "))ocena2 = float(input("Podaj drugą ocenę: "))srednia = (ocena1 + ocena2) / 2print("Ś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 + liczbaprint("Do zapłaty:", koszt)
B
cena = float(input("Podaj cenę biletu: "))liczba = int(input("Podaj liczbę biletów: "))koszt = cena * liczbaprint("Do zapłaty:", koszt)
C
cena = input("Podaj cenę biletu: ")liczba = input("Podaj liczbę biletów: ")koszt = cena * liczbaprint("Do zapłaty:", koszt)
D
cena = float(input("Podaj cenę biletu: "))liczba = int(input("Podaj liczbę biletów: "))koszt = cena / liczbaprint("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_noclegowprint("Koszt wycieczki:", koszt)
Najpierw obliczana jest cena wszystkich noclegów:
nocleg * liczba_noclegow
Następnie dodawany jest koszt przejazdu.
