Created
October 24, 2018 16:30
-
-
Save rafalw/af8c004065786bc4aca1b1af4e54b718 to your computer and use it in GitHub Desktop.
Intensywny kurs Pythona – dla uczniów technikum, informatyka rozszerzona (cz. 2)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python3 | |
# Równianie kwadratowe – wersja 1, prosta | |
from math import sqrt | |
print("Rozwiązywanie równiania kwadratowego") | |
a = float(input("Podaj wartość a: ")) | |
b = float(input("Podaj wartość b: ")) | |
c = float(input("Podaj wartość c: ")) | |
print("a = ", a, ", b = ", b, ", c = ", c) | |
if a == 0: | |
print("To nie jest równanie kwadratowe.") | |
else: | |
delta = b*b - 4*a*c | |
if delta < 0: | |
print("Równanie nie ma rozwiązań w zbiorze liczb rzeczywistych.") | |
elif delta == 0: | |
print("Delta równa 0, więc...") | |
x = -b / (2*a) | |
print("...rozwiązaniem równania jest x = ", x) | |
else: | |
s_delta = sqrt(delta) | |
x1 = (-b - s_delta)/(2*a) | |
x2 = (-b + s_delta)/(2*a) | |
print("Delta większa od zera, więc...") | |
print("...rozwiązaniem równania są x1 = ", x1, " i x2 = ", x2) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Równanie kwadratowe – dane wejściowe w pliku tekstowym, w osobnych wierszach | |
# Wyniki również umieszczane w pliku. | |
# Program wrażliwy na błędne dane w pliku wejściowym | |
# << dane_we.txt | |
# >> dane_wy.txt | |
# Pełna ścieżka dostępu do pliku ze względu na problemy z katalogiem roboczym | |
# w środowisku VScode | |
from math import sqrt | |
# Uwaga: proszę podać własną ścieżkę dostępu do pliku (może być względna) | |
plik = open("/home/rafal/Projects/Python-386/Delta_X1/dane_we.txt", "r") | |
if plik: | |
dane = plik.readlines() | |
plik.close() | |
a = float(dane[0]) | |
b = float(dane[1]) | |
c = float(dane[2]) | |
if a == 0.0: | |
print("To nie jest równanie kwadratowe.") | |
else: | |
delta = b*b - 4*a*c | |
if delta < 0: | |
print("Równanie nie ma roziązań w zbiorze liczb rzeczywistych.") | |
elif delta == 0: | |
x = -b / (2*a) | |
print("Rozwiązanie równania to x = ", x) | |
plik = open("/home/rafal/Projects/Python-386/Delta_X1/dane_wy.txt", "w") | |
plik.write(x+"\n") | |
plik.close() | |
else: | |
x1 = (-b - sqrt(delta)) / (2*a) | |
x2 = (-b + sqrt(delta)) / (2*a) | |
print("Roziązanie równania to:") | |
print("x1 = ", x1) | |
print("x2 = ", x2) | |
plik = open("/home/rafal/Projects/Python-386/Delta_X1/dane_wy.txt", "w+") | |
plik.write(str(x1) + "\n") # żeby konkatenować ciągi znaków potrzebna jest jawna konwersja | |
plik.write(str(x2) + "\n") | |
plik.close() | |
else: | |
print("Błąd odczytu danych.") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Równanie kwadratowe – dane wejściowe przekazywane jako lista parametrów wywołania programu | |
from math import sqrt | |
from sys import argv | |
if len(argv) <= 3: | |
print("Prawidłowe wywołanie programu:\n") | |
print("delta_x2 <a> <b> <c>\n") | |
print("gdzie a, b i c są liczbami rzeczywistymi.") | |
else: | |
# Uwaga: argv[0] to nazwa programu! | |
a = float(argv[1]) | |
b = float(argv[2]) | |
c = float(argv[3]) | |
print("a = ", a, ", b = ", b, ", c = ", c) | |
if a == 0: | |
print("To nie jest równanie kwadratowe.") | |
else: | |
delta = b*b - 4*a*c | |
if delta < 0: | |
print("Równanie nie ma rozwiązań w zbiorze liczb rzeczywistych.") | |
elif delta == 0: | |
print("Delta równa 0, więc...") | |
x = -b / (2*a) | |
print("...rozwiązaniem równania jest x = ", x) | |
else: | |
s_delta = sqrt(delta) | |
x1 = (-b - s_delta)/(2*a) | |
x2 = (-b + s_delta)/(2*a) | |
print("Delta większa od zera, więc...") | |
print("...rozwiązaniem równania są x1 = ", x1, " i x2 = ", x2) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from sys import argv | |
# Definicja funkcji obliczającej n-ty element ciągu Fibonacciego | |
# Metoda iteracyjna. | |
# >> Parametr przekazywany do funkcji – n: numer elemntu ciągu do obliczenia | |
# << Wartość zwracana – wartość n-tego elementu ciągu | |
# Proszę zwrócić uwagę na wielokrotne przypisania (wiersz 9 i 11 – do dwóch zmiennych dwie różne wartości) | |
def fibonacci(n): | |
a,b = 1,1 | |
for i in range(n-1): | |
a,b = b,a+b | |
return a | |
# sprawdzenie... | |
if len(argv) < 2: | |
print("Prawidłowe wywołanie programu:\n") | |
print("fibo_iter.py <n>\n") | |
print("gdzie n to numer elementu ciągu Fibonacciego do obliczenia.") | |
else: | |
element = int(argv[1]) | |
print(fibonacci(element)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from sys import argv | |
# Definicja funkcji obliczającej n-ty element ciągu Fibonacciego | |
# Metoda rekurencyjna. Wyjątkowo nieefektywna... | |
# >> n: numer elemntu ciągu do obliczenia | |
# << wartość n-tego elementu ciągu | |
def fibonacci(n): | |
if n == 1 or n == 2: | |
return 1 | |
return fibonacci(n-1) + fibonacci(n-2) | |
# sprawdzenie... | |
if len(argv) < 2: | |
print("Prawidłowe wywołanie programu:\n") | |
print("fibo_iter.py <n>\n") | |
print("gdzie n to numer elementu ciągu Fibonacciego do obliczenia.") | |
else: | |
element = int(argv[1]) | |
print(fibonacci(element)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment