Hirdetés

Új hozzászólás Aktív témák

  • Janos46

    tag


    Gömbreteg felülete, térfogata, kis- és nagy sugara és magassága.
    # Továbbá a gömb térfogata és felülete.
    """ Amennyiben csak a sugár van megadva és a többi nulla, abban az esetben
    a gömb patramétereit számolja ki. A gömbréteg számolásánál a gömb sugarát
    és vagy a gömbréteg sugarait, vagy a magasságait kell megadni."""

    print("Gömb és gömbréteg.\n")
    from math import sqrt, pi
    from tkinter import *
    from colorama import Fore
    abl = Tk()
    abl.title("Gömb és gömbreteg számítása.")

    can = Canvas(abl, width=420, height=380, bg='lightgreen') # A kép ablakának mérete
    photo = PhotoImage(file='Gombreteg.gif')      # A kép csak "gif" lehet.
    item=can.create_image(210,190, image=photo)   # A kép mérete az ablakban   
    can.grid()
    abl.update()

    r=float(input("Mekkora a gömb sugara      (r)  :  ")) 
    q1=float(input("Gömbréteg felső sugara    (q1)  :  "))
    q2=float(input("Gömbréteg alsó sugara     (q2)  :  "))
    m1=float(input("Gömbréteg feletti magasság (m1) :  "))
    m2=float(input("Gömbréteg alatti magasság  (m2) :  "))
    M0=m1+m2

    if r>0 and q1==0 and q2==0 and m1==0 and m2==0:
    # Ha a sugarak és a magasságok nullák, akkor egy gömböt számol ki.
        A=4*pi*r**2
        V=(4/3)*pi*r**3
        print("\nA gömb felülete: ",round(A,2))
        print("A gömb térfogata:",round(V,2))

    if m1==0 and m2==0:
        if q1>r or q2>r or q1>=q2:
            print(Fore.RED + "\nHIBA1!  q1>r  q1>=q2")
        else:
            m1=r-sqrt(r**2-q1**2)    # Felső szelet magassága
            m2=r-sqrt(r**2-q2**2)    # Alsó szelet magassága
            M=r-(m2+m1)              # Gömbréteg magassága
            
            A=pi*(2*r*M+q1**2+q2**2) # Gömbréteg felülete
            V=((M*pi)/6)*(M**2+3*q1**2+3*q2**2) # Gömbréteg térfogata
            print("\nFelső szelet magasság: ",m1, "\nAlsó szelet magasság:  ",m2, "\nGömbréteg magassága:   ",M)
            print("\nGömbréteg felülete:    ",A, "\nGömbréteg térfogata:   ",V)

    if q1==0 or q2==0:
        if m1>=r or m2>=r or m1>m2 or M0>=r:
            print(Fore.RED + "\nHIBA valamelyik!   m2>r  m1>m2  m1+m2>=r")
        else:
            q1=sqrt(r**2-(r-m1)**2)  # Gömbréteg felső sugara
            q2=sqrt(r**2-(r-m2)**2)  # Gömbréteg alsó sugara
            M=r-(m2+m1)              # Gömbréteg magassága
            A=pi*(2*r*M+q1**2+q2**2) # Gömbréteg felülete
            V=((M*pi)/6)*(M**2+3*q1**2+3*q2**2) # Gömbréteg térfogata
            print("\nFelső gömbszelet sugara: ",q1, "\nAlsó gömbszelet sugara : ",q2, "\nGömbréteg magassága:     ",M)
            print("\nGömbréteg felülete:    ",A, "\nGömbréteg térfogata:   ",V)
         

    Rájöttem hogyan kell formázott formában felrakni. Itt a jó progi.

Új hozzászólás Aktív témák