topografoi.com



Author Topic: ΣΕΙΡΑ ΑΣΚΗΣΕΩΝ 1 - Μέρος Β του μαθήματος "Εισαγωγή στην Πληροφορική" σε python  (Read 6755 times)

vagvaf

  • Administrator
  • Posts: 204
  • Gender: Male
  • Not all those who wander are lost.
δεν είχα πως να περάσω την ώρα μου, οπότε είπα να κάτσω να λύσω την σειρά 1 των ασκήσεων του μαθήματος του έτους 2005-2006, τις εκφωνήσεις των οποίων μπορείτε να βρείτε εδώ

Αρχικά, θα παρατηρήσει κανείς ότι σε όψη φαίνονται πιο απλές από την "μπερδεμένη" C++.

Επίσης υπάρχουν κάποια νέα στοιχεία στον κώδικα που δεν περιγράφονται στο Python Wiki

Καταρχήν θα προσέξετε ότι όλες οι ασκήσεις αρχίζουν με ένα def onoma(parametroi): , αυτό σημαίνει ότι κάθε άσκηση έχει πλέον την μορφή συνάρτησης έτσι αν την ξαναχρειαστούμε να μην χρειάζεται να την γράψουμε από την αρχή απλά να γράψουμε onoma(parametroi) και αυτό ήταν!
Η περιγραφή που ακολουθεί ακριβώς μετά από κάθε συνάρτηση μπορεί να προσπελαστεί τόσο όταν διαβάζεται των κώδικα όσο και κατά την διάρκεια που το τρέχετε (runtime) γράφοντας,
Code: [Select]
onoma.__doc__ όπου __ είναι 2 underscores. Η επεξηγηματική αυτή γραμμή ονομάζεται docstring.

Ένα άλλο καλούδι που χρησιμοποιείται κατα κόρον στις λύσεις είναι η λίστα (list). Η λίστες είναι κάποιες πολύ πρακτικές δομές δεδομένων στις οποίες μπορούμε να παρέμβουμε και να τις χρησιμοποιήσουμε για υπολογισμούς. Περισσότερα θα αναρτηθούν στο Python Wiki.

Τέλος να ξαναθυμίσουμε ότι στην Python δεν χρειάζεται compilation.

ΥΓ. Είναι προφανές ότι η λύση μιας άσκησης απο κάθε έναν είναι διαφορετική. Σκοπός του παρόντος θέματος, δεν είναι ούτε να παρουσιάσει την βέλτιστη, ούτε την ταχύτερη, αλλά να δείξει πως ένα πρόβλημα λύνεται από πολλές γλώσσες :)

Code: [Select]
import math

def voc(r,h):
    '''Gia r=aktina kyklou kai h=ypsos kylindrou ypologizei ton ogko tou'''
    vol=math.pi*r*r*h
    print 'O ogkos toy kylindrou einai :' , vol

def sl(a,b,x):
    '''Gia tin ey8eia y=ax+b, eisagontas ta a,b,x ypologizetai to y'''
    y=a*x+b
    print 'To y einai : ', y

def ta(a,b):
    '''Eisagontas ta a,b tis y=ax+b ypologizetai pou i ey8eia temnei tous aksones'''
    Oy=(0,b)
    if a==0:
        print 'H ey8eia den temnei ton aksona Ox, enw temnei ton Oy sto', Oy
    else:
        Ox=(-b/a,0)
        print 'H ey8eia temnei ton aksona y sto', Oy,'kai ton aksona x sto ',Ox
       
def circle(r):
    '''Eisagontas tin aktina, ypologizei diametro, emvadon kai perifereia kyklou'''
    diametros=2*r
    emvadon=math.pi*r*r
    perifereia=2*r*math.pi
    print 'diametros :',diametros, 'emvadon:',emvadon,'perifereia:',perifereia
   
   
def triangle(a,b,c,h):
    '''Ypologismos tis perimetrou kai emvadou enos trigwnou me pleyres a,b,c kai h to ypsos pou
       einai ka8eto sti c'''
    if a+b>c and a+c>b and c+b>a:
        e=0.5*h*c
        p=a+b+c
        print 'To emvado tou trigwnou einai %s kai i perimetros %s' %(e,p)
       
    elif a==0 or b==0 or c==0:
        print 'Den sximatizetai trigwno me 1 i perissoteres midenikes pleyres'
       
    elif a+b==c or a+c==b or b+c==a:
        print 'Sximatizetai trigwno to opoio ekfyllizetai se ey8eia'

    else:
        print 'Den sximatizetai trigwno'

def pol(a,b,c,d,x):
    '''Ypologizei to polywnymo y=ax^3+bx^2+cx+d gia x!=0'''
    if x==0:
        pass
    else:
        first=a*pow(x,3)
        second=b*pow(x,2)
        third=c*x
        forth=d
        polywnymo=first+second+third+forth
        print 'y=',polywnymo

def poln(N,params,x):
    '''Ypologizei to polywnymo n-ostou va8mou, eisagwntas to N, mia lista me tis parametrous (px. [a,b,c,d,e]) kai telos to x'''
    if x==0:
        print 'vale x diaforo tou 0'
        pass
    else:
        y=[]
        for i in range(0,N+1):
            melos=params[-i-1]*pow(x,i)
            y.append(melos)
        print y
        print sum(y)


def polnt(params,x):
    '''Ypologizei to polywnymo n-ostou va8mou, eisagontas mia lista me tis parametrous (px. [a,b,c,d,e]) kai telos to x'''
    if x==0:
        print 'vale x diaforo tou 0'
        pass
    else:
        y=[]
        for i in range(0,len(params)):
            melos=params[-i-1]*pow(x,i)
            y.append(melos)
        print sum(y)

def dist(a,b):
    '''Gia 2 simeia A kai B, eisagwntas tis syntetagmenes tous se lista, ypologizetai i metaksi tous apostasi'''
    y=[]
    for i in range(len(a)):
        meli=(b[i-1]-a[i-1])**2
        y.append(meli)
    print sqrt(sum(y))
       
   
def tet(x,y):
    '''Eisagontas to x kai y enos simeio, mas epistrefei se poio tetartartimorio anhkei enos deksiostrofou systimatos'''
    f=[x,y]
    if f[0]>0 and f[1]>0:
        print 'T1'
    elif f[0]>0 and f[1]<0:
        print 'T2'
    elif f[0]<0 and f[1]<0:
        print 'T3'
    elif f[0]<0 and f[1]>0:
        print 'T4'
    elif f[0]==0 and f[1]==0:
        print 'Arxi twn aksonwn'

def g2r(x):
    '''Metatropi grad se rad'''
    y=x*math.pi/200
    print y


I ♥ Python's Standard Library
Ⓐ▼▲ Ⓐ▼▲

 

Copyright © topografoi.com