Zadania domowe przeprowadzające operacje na wprowadzonych liczbach

0

Dzień dobry.
Nie ukrywam i od razu powiem szczerze, że swoją naukę nie rozpoczynam z programowaniem. Taki to przedmiot mam na Studiach Podyplomowych a jestem z tego zielony i nie wiem o co chodzi. Programistą i internetowcem nie zostanę wiec piszę w sprawie pomocy. Nie mam nawet znajomego internetowca, którego mógłbym poprosić o pomoc dlatego zdecydowałem się do was napisać z prośbą o pomoc.
Mam zadana do wykonania, a mianowicie:

  1. Funkcjia o nazwie max / maksymalna mającej dwa parametry typu int i zwracającej wartość maksimum z tych parametrów: int max(int a, int b)
  2. Funkcjia o nazwie min / minimalna mającej dwa parametry typu float i zwracającej wartość minimalną z tych parametrów: float main(float a, float b)
  3. Funkcję silnia (int n) obliczająca wartość n!.
  4. Napisz prosty kalkulator: dodawanie,odejmowanie,mnozenie, dzielnie (warunek nie dzielimy przez 0),potęgowanie,pierwiastowanie.

Nie wiem co z czym sie je i nie wiem o co chodzi. Znalazłem taki oto przykład na jakiejś stronie dotyczące pytania 1, ale nie działa a nie wiem co jest do poprawy. próbowałem ale nie udał sie.
Na pytanie drugie nie mam nic.

 int max(int a, int b)"   {
if (a > b) {
        return a;
    } else {
        return b;
    }
}
int main() {
    int x = 5;
    int y = 10;
    int z = max(x, y);
    cout << "Maksymalna wartość to: " << z << endl;
    return 0;
}

NA zadanie drugie niczego nie znalazłem więc nie wiem co z tym zrobić. ?????????

NA zadanie trzecie mam takie o to coś. I co ciekawe jakoś działa.

n = int(input("Podaj liczbę: "))
def silnia(n): return n*silnia(n-1) if n > 1 else 1
print(silnia(n))

Na czwarte mam także i też jakoś działa :)
# obliczanie potęg
liczba = input("Podaj liczbę: ")
potega = input("Podaj potęgę: ")
wynik = float(liczba)**float(potega)
print(f"{liczba} ** {potega} = {wynik}")


liczba = float(input("Podaj liczbę do pierwiastkowania: "))
dokładnosc = float(input("Podaj dokładność obliczeń: "))

bok = liczba
while abs(bok-liczba/bok)>dokładnosc:
    bok = (bok + liczba/bok)/2

print("Pierwiastkiem liczby", liczba, "jest", round(bok,3))


class kalkulator:
    def dodawanie(x,y):
        dodaj = x +y
        print(dodaj)
    def odejmowanie(x,y):
        odejmij = x - y
        print(odejmij)
    def iloczyn(x,y):
        razy = x * y
        print(razy)
    def iloraz(x,y):
        dziel = x / y
        print(dziel)

Proszę o pomoc z zadaniami 1 i 2 bo nie wiem już gdzie szukać.

0

Czy te dwa pierwsze zadania to na pewno zadania z pythona?

Jeśli twoja liczba zawiera ułamek dziesiętny, Python automatycznie uzna ją za liczbę zmiennoprzecinkową. Jeśli nie, automatycznie uzna to za liczbę całkowitą np:

x = 1 # (python uzna to za int)

x = 1.1 # (python uzna to za float)

Jeśli chcemy zmienić liczbę zmiennoprzecinkową na całkowitą, możemy to zrobić za pomocą funkcji int(). Gdy to zrobimy, liczba zmiennoprzecinkowa straci swój ułamek dziesiętny i liczby za przecinkiem.

dodatkowo python zawiera sam w sobie funkcje min i max wiec mozna je wykorzysac zobacz to z dokumentacji:

https://docs.python.org/3/library/functions.html#max
https://docs.python.org/3/library/functions.html#min

wiec nie dziwie sie ze nie mnozna znaleźć przykładów ;-)

twoje rozwiazanie z c++ kodem jest ok ;-) tylko w pytonie to troche inaczej wyglada:

def max(a, b):
    if a > b:
        return a
    else:
        return b

if __name__ == "__main__":
    x = 5
    y = 10
    z = max(x, y)
    print("Maksymalna wartość to:", z)

ale ze w pytonie jest wbudowana juz funkcji max to nawet jej nie trzeba definionwac i to wyglada jescze krocej

if __name__ == "__main__":
    x = 5
    y = 10
    z = max(x, y)
    print("Maksymalna wartość to:", z)

dla minimalnej wartosci jest analogicznie , tylko python ma wbudowana funkcje min. Wiec to zadanie jakies dziwne jest i bez sensu.

Jak nie chcesz sie za bardzo sie wglebiac w kod z pythona a znajdujesz tylko kod z c++ mozesz go przekonwertowac do pythona dla takich prostych zadanek.
przykład z takiej strony:

https://www.codeconvert.ai/c++-to-python-converter

Ale ogólnie polecam troche sie zaznajomic z podstawami bo mozna sobie zrobić fajne rzeczy, i zautomatyzować nudna powtarzalną robote.

0
import math

def max(a, b):
    return a if a > b else b

def min(a, b):
    return a if a < b else b

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

def calculator(operation, a, b):
    if operation == 'dodawanie':
        return a + b
    elif operation == 'odejmowanie':
        return a - b
    elif operation == 'mnozenie':
        return a * b
    elif operation == 'dzielenie':
        if b != 0:
            return a / b
        else:
            return "Błąd: Nie można dzielić przez zero!"
    elif operation == 'potegowanie':
        return math.pow(a, b)
    elif operation == 'pierwiastkowanie':
        return math.sqrt(a) if a >= 0 else "Błąd: Nie można pierwiastkować liczby ujemnej!"
    else:
        return "Błąd: Nieznana operacja!"

# Przykładowe użycie funkcji:
print(max(5, 10))  # Output: 10
print(min(3.14, 2.71))  # Output: 2.71
print(factorial(5))  # Output: 120
print(calculator('dodawanie', 4, 2))  # Output: 6
print(calculator('dzielenie', 8, 4))  # Output: 2.0
print(calculator('dzielenie', 6, 0))  # Output: Błąd: Nie można dzielić przez zero!
print(calculator('potegowanie', 2, 3))  # Output: 8.0
print(calculator('pierwiastkowanie', 9))  # Output: 3.0
print(calculator('pierwiastkowanie', -1))  # Output: Błąd: Nie można pierwiastkować liczby ujemnej!
print(calculator('modulo', 5, 2))  # Output: Błąd: Nieznana operacja!


0

DarekRepos Ja mam zainstalowany Virtual Studio Code i tam mam ściągnięte te jakieś rozszerzenia Pythona. Na tej platformie mam zrobić te zadania. Dla mnie to jest czarna magia i nie wiem na obecną chwile co z czym się je.
ja wklejam to co mi napisałeś

def max(a, b):
    if a > b:
        return a
    else:
        return b

if __name__ == "__main__":
    x = 5
    y = 10
    z = max(x, y)
    print("Maksymalna wartość to:", z)

to wyświetla mi się że maksymalna wrtośc to 10 a jak wpisuję inną to nic się nie pokazuje. Więc nie wiem czy to jest dobrze. No i jeszcze ta minimalna wartość . co z nią mam zamienić max na min i wyjdzie coś czy trzeba napisdać od nowa wszystko jakoś inaczej.

0

Paweł Tometczak
Ja wkleiłem do Virual studio Code twoje napisane ale nie wychodzi mi pierwiastkowanie i potęgowanie.
Wlkeiłem to

def calculator(operation, a, b):
    if operation == 'dodawanie':
        return a + b
    elif operation == 'odejmowanie':
        return a - b
    elif operation == 'mnozenie':
        return a * b
    elif operation == 'dzielenie':
        if b != 0:
            return a / b
        else:
            return "Błąd: Nie można dzielić przez zero!"
    elif operation == 'potegowanie':
        return math.pow(a, b)
    elif operation == 'pierwiastkowanie':
        return math.sqrt(a) if a >= 0 else "Błąd: Nie można pierwiastkować liczby ujemnej!"
    else:
        return "Błąd: Nieznana operacja!"

I wychodzi mi że jest błąd. 3**3 oraz 1^3. Nie wiem jak to zrobić.

PS C:\Users\demic\Desktop\zadania> & C:/Users/demic/AppData/Local/Microsoft/WindowsApps/python3.11.exe "c:/Users/demic/Desktop/Internet rzeczy/nowerozwiazanie.py"
PS C:\Users\demic\Desktop\zadania> 2**3
At line:1 char:3

  • 2**3
  • ~
    You must provide a value expression following the '*' operator.
    + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpectedValueExpression

PS C:\Users\demic\Desktop\zadania> 25**3
At line:1 char:4

  • 25**3
  • ~
    You must provide a value expression following the '*' operator.
    + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpectedValueExpression

PS C:\Users\demic\Desktop\zadania> 1^3
1^3 : The term '1^3' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spe
lling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1

  • 1^3
    • CategoryInfo : ObjectNotFound: (1^3:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
0

Paweł Tometczak A to jest do tego pierwszego zadania i drugiego
import math


def max(a, b):
    return a if a > b else b

def min(a, b):
    return a if a < b else b

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

bo nie wyskakuje żadna operacja.

0

hmm nie mam pojecia jak to jest wpisywane skoro nie wychodzi, napisze tradycyjnie "u mnie działa" a teraz wytłumacze po kolei . Te zadania sa już w zasadzie rozwiązanie. Nie wiem czy moja wersja jest tutaj odpowiednia , moja jest troche dłuższa ale i tak mozna to napisac krócej.

odpowiedz na zadanie 1 to po porostu

def max(a, b):
    return a if a > b else b

lub do wyboru

def max(a, b):
    if a > b:
        return a
    else:
        return b

to jest to samo

dalsza czesc ponizej tych funkcji czy u mnie:

if __name__ == "__main__":
    x = 5
    y = 10
    z = max(x, y)
    print("Maksymalna wartość to:", z)

lub

print(max(5, 10))  # Output: 10

sa tu dane liczby całkowite wiec zawsze bedzie wypisywana maksymalna wartość z tych dwóch

nie wiem jak sa zapisaywane te zadania czy wszystko razem w jednym pliku czy jest podział

dla minimum to jest podobnie

def min(a, b):
    return a if a < b else b

lub do wyboru

def min(a, b):
    if a < b:
        return a
    else:
        return b

@JaTuTylkoWSprawiePomocy: jesli chodzi o to :

def max(a, b):
    return a if a > b else b

def min(a, b):
    return a if a < b else b

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

to sa wlasnie funkcje, które trzezba napisać, tu nie wyskoczy zadna operacja jak to sie skopiuje i uruchomi w pliku. To są 3 funkcje i odpowiedzi na 3 pierwsze zadania, a żeby było widać w konsoli że one dzialają to trzeba dopisac poniżej przyklad uzycia tych funkcji żeby coś wypisywalo . więc żeby cis wypisalo mozna najkrócej zrobic to jak @Paweł Tometczak, czyli napisac na samy dole w samym pliku przykład użycia.

def max(a, b):
    return a if a > b else b

def min(a, b):
    return a if a < b else b

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)
        
print(max(5, 10))  # Output: 10
print(min(3.14, 2.71))  # Output: 2.71
print(factorial(5))  # Output: 120

zeby uruchomic to wszystko skopiuj to do pliku

jesli chodzi o ten bład:


PS C:\Users\demic\Desktop\zadania> & C:/Users/demic/AppData/Local/Microsoft/WindowsApps/python3.11.exe "c:/Users/demic/Desktop/Internet rzeczy/nowerozwiazanie.py"
PS C:\Users\demic\Desktop\zadania> 2**3
At line:1 char:3

2**3
~
You must provide a value expression following the '*' operator.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpectedValueExpression

to chodzi o to ze 2**3 uruchamiane jest w konsoli . żeby cos wyskoczylo trzeba najpierw uruchomic interpreter pythona
w Twoim przypadku python3.11 a potem 2**3, to i tak wyjdzie 2*2*2 czyli 8. W tym przypadku i tak to jest bez sensu bo to jest dzialanie 2 do potegi 3, Natomiast działanie 1^3 to nie jest potegowanie tylko uzycie tak zwane "bitwise operator"(operatory bitowe). Pozwalają manipulować tymi pojedynczymi bitami danych na najbardziej szczegółowym poziomie. Wynik takiej operacji 1^3 to jest 2. Podsumowujac to nie sa funckje napisane dla zadania 4 tylko operatory wbudowane w interpreter python.

ja chesz użyć pierwiastkowanie od @Paweł Tometczak to musi zrobic to tak

dla potegowania na przykład

2 do potegi 6
print(calculator('potegowanie', 2, 6))

3 do potegi 4
print(calculator('potegowanie', 2, 6))

analogicznie pierwiastkowanie

pierwiestek z 9
print(calculator('pierwiastkowanie', 9))

pierwiastek z 4
print(calculator('pierwiastkowanie', 4))

wiec cały kod potrzebny do zadania 4 wyglada tak

def calculator(operation, a, b):
    if operation == 'dodawanie':
        return a + b
    elif operation == 'odejmowanie':
        return a - b
    elif operation == 'mnozenie':
        return a * b
    elif operation == 'dzielenie':
        if b != 0:
            return a / b
        else:
            return "Błąd: Nie można dzielić przez zero!"
    elif operation == 'potegowanie':
        return math.pow(a, b)
    elif operation == 'pierwiastkowanie':
        return math.sqrt(a) if a >= 0 else "Błąd: Nie można pierwiastkować liczby ujemnej!"
    else:
        return "Błąd: Nieznana operacja!"

# Przykładowe użycie funkcji:

print(calculator('dodawanie', 4, 2))  # Output: 6
print(calculator('dzielenie', 8, 4))  # Output: 2.0
print(calculator('dzielenie', 6, 0))  # Output: Błąd: Nie można dzielić przez zero!
print(calculator('potegowanie', 2, 3))  # Output: 8.0
print(calculator('pierwiastkowanie', 9))  # Output: 3.0

Mam nadzieje ze to jest juz jasne. Trudno cos pisać na forum nie pokazując na przykładzie jak to wygląda na żywo. Bo jak to się widzi jak to się uruchamia w konsoli albo skrypcie to inaczej już jest. NO i za bardzo się rozpisałem. Mi się wydaje że lepsze byłoby jakieś wideo z nagrywania ekranu monitora do tego ale już nie będę wariował ^^,

0

Myślę, że może Ci się przydać też to:

a = int(input("Podaj pierwszą liczbe: "))
b = int(input("Podaj druga liczbe: "))
operation = input("Podaj rodzaj dzaialania(dodawanie, odejmowanie, mnozenie, dzielenie, potegowanie, pierwiastkowanie): ")

print(calculator(operation, a, b))

Powyższy kod spowoduje, że będziesz mógł ręcznie w Terminalu wprowadzić liczby dla kalkulatora i wybrać działanie jakie chcesz na nich zastosować.
Funkcja:

input()

Spowoduje, że program będzie czekał na wpisanie z klawiatury liczby i zatwierdzenie jej Enterem.
Natomiast funkcja:

int()

zamieni łańcuch znaków na format liczbowy.
W tym przypadku nie będą Ci potrzebne linijki z przykładami użycia funkcji i zamiast nich wstaw ten kod

1 użytkowników online, w tym zalogowanych: 0, gości: 1