HACKING 120% {Hacking, programmazione, computer & molto altro}

Esercizi vari

« Older   Newer »
  Share  
Krypt05
view post Posted on 26/6/2012, 17:39     +1   -1




Ho trovato degli esercizi carini sul blog di un professore di informatica, eccoli:


1)
Nel 1950 la città A ha 100 abitanti, la città B 40. La città A cresce al tasso dell'otto per cento annuo, la citta B a quello del dieci percento. In che anno la città A e la città B avranno lo stesso numero di abitanti?


2)
Dati due numero A e B, calcolare il risultato e il resto della divisione di A per B senza usare l'operatore di divisione (/ o //)


3)
Dati il prezzo di una scatola di materiale ed il numero di scatole acquistate, calcolare quanto si è speso in tutto (iva= 20%)


4)
Quanti giorni ci sono in A anni e B mesi e C settimane?


5)
Ad una gara di sci partecipano 100 sciatori, presi in input i loro tempi, calcolare il tempo medio di discesa.


6)
Pierpaoloantonio studia solo nei giorni pari dei mesi dispari oppure nei giorni dispari dei mesi pari. Un giorno alla settimana è a scuola il pomeriggio e quindi non studia, tranne che in maggio. Oggi deve studiare??? Suggerimento: inserire in input il numero N del giorno della settimana che ha il pomeriggio (1=lunedì, 2=martedì ecc.) e la data odierna nella forma G (giorno, 1=lunedì, 2=martedì ecc.) e M (mese, 1=gennaio, 2=febbraio ecc.)


7)
Ad una gara di sci partecipano 100 sciatori che scendono in ordine progressivo di numero di pettorale, presi in input i loro tempi, dire il numero di pettorale dello sciatore che ha vinto.


8)
Data in input una sequenza di N numeri, calcolare la somma dei numeri pari in essa contenuti (anche N è in input)


9)
Presi in input due numeri, dare in output il massimo dei loro valori assoluti

10)
effettuare il controllo formale di una data nel formato G M A


11)
ad una festa una damigiana contiene 45 litri di coca cola. E' possibile spillare un bicchiere pieno alla volta (1 decilitro) oppure mezzo bicchiere ( mezzo decilitro). Quante richieste è possibile soddisfare?


Ho fatto il primo in questo modo:
CODICE
anno=1950
AbA=100
AbB=40
PercA=8.0
PercB=10.0
while AbA!=AbB:
   AbA=AbA+(AbA*PercA/100)
   AbB=AbB+(AbB*PercB/100)
   anno=anno+1
print anno
ma il mio risultato è diverso da quello della soluzione che dà il sito, mentre il codice della soluzione sembra uguale al mio, ma come potrete verificare, il risultato è diverso:
CODICE
#Codice soluzione:
z=1950
a=100
b=40
x=0.08
y=0.10
while a!=b:
     z=z+1
     a=a+(a*x)
     b=b+(b*y)
print("il risultato è:")
print (z)

L'errore è nel fatto che lui metta direttamente x=0.08 mentre io faccio la divisione all'interno del ciclo, eppure non capisco cosa vada storto in questo modo...
 
Top
view post Posted on 26/6/2012, 20:01     +1   -1
Avatar

Water can take unforseen forms.

Group:
Founder
Posts:
5,273
Reputation:
+1,147
Location:
Shabang

Status:


Colpa di python. Quando fai moltiplicazioni e divisioni, falle su due righe staccate, oppure metti delle parentesi in modo che non faccia più di due passaggi diversi per volta.



Comunque qualcuno lo farò anche io.
 
Web  Top
Krypt05
view post Posted on 26/6/2012, 20:09     +1   -1




Vero, aggiungendo le parentesi cambia.
Sai anche cos'è che accade di preciso senza e con le parentesi?
 
Top
view post Posted on 26/6/2012, 20:22     +1   -1
Avatar

Water can take unforseen forms.

Group:
Founder
Posts:
5,273
Reputation:
+1,147
Location:
Shabang

Status:


Esercizio 2

CODICE
def trovaf(a,s,lista):
   lista.append(s)
   if s < a:
       trovaf(a,s+lista[0],lista)
   else:
       return lista

def divisionepowa(a,s):
   d=range(a+1)
   lista=[]
   n=0
   trovaf(a,s,lista)
   for x in d:
       if x in lista:
           n+=1
   ris=a-lista[-1]
   if ris < 0:
       ris+=s
   print "Il risultato è %d con un resto di %d" %(n,ris)
   print


divisionepowa(145,12)


CITAZIONE
Sai anche cos'è che accade di preciso senza e con le parentesi?

Semplicemente python evita di fare l'operazione se non ci sono le parentesi.
 
Web  Top
3 replies since 26/6/2012, 17:39   250 views
  Share