Chapitre 7. Un peu d'algorithmique, correction

Correction des exercices du Chapitre 1, Échauffement : un peu d'algorithmique.

  1.         for i in range (21,146):
                print i,
          
  2.         for i in range (1,251):
                print '*',
          

    On aurait aussi pu écrire :

            print 250*'*'
          
  3.         for i in range (1,501):
                print i,'Je dois faire des sauvegardes régulières de mes fichiers'
          
  4.         s = 0
            for i in range (21,146):
                s += i
            print 'somme =',s
          
  5.         f = 1
            for i in range (1,36):
                f *= i
            print '36! =',f
          
  6.         for i in range (1,21):
                for j in range (1,i+1):
                    print '*',
                print
          

    On aurait aussi pu écrire :

            for i in range (1,21):
                print i*'*'
          
  7.         for i in range (1,14):
                print i,'x 13 =',i*13
          
  8.         for i in range (1,11):
                for j in range (1,11):
                    print i*j,'\t',
                print
          

    ou, mieux :

            print '\t  ',
            for j in range (1,11):
                print j,'\t  ',
            print
            print '\t',
            for j in range (1,11):
                print '-----\t',
            print
            for i in range (1,11):
                print '  ',i,'\t|',
                for j in range (1,11):
                    print i*j,'\t  ',
                print
          
  9.         nbMoutons = input(" Entrez le nombre de moutons : ")
            nbVaches = input(" Entrez le nombre de vaches : ")
            valeur = nbVaches * 9000 + nbMoutons * 5000
            print "La valeur du troupeau est de ", valeur
          
  10.         def saisie (texte):
                h = input("Horaire n%s.   heures : " %texte)
                m = input("             minutes : ")
                s = input("            secondes : ")
                return h,m,s
            
            def convertir(h,m,s):
                return h*3600+m*60+s
            
            h1,m1,s1 = saisie (1)
            h2,m2,s2 = saisie (2)
            horaire1 = convertir(h1,m1,s1)
            horaire2 = convertir(h2,m2,s2)
            if horaire1 < horaire2:
                print h1,'h',m1,'mn',s1,'s  est avant ', h2,'h',m2,'mn',s2,'s'
            else:
                print h2,'h',m2,'mn',s2,'s  est avant ', h1,'h',m1,'mn',s1,'s'
          
  11.         # -*- coding: utf-8
            def saisie (texte):
                h = input("Horaire n%s.   heures : " %texte)
                m = input("             minutes : ")
                s = input("            secondes : ")
                return h,m,s
            
            def convertir(h,m,s):
                return h*3600+m*60+s
            
            h1,m1,s1 = saisie (1)
            h2,m2,s2 = saisie (2)
            horaire1 = convertir(h1,m1,s1)
            horaire2 = convertir(h2,m2,s2)
            print 'durée écoulée : '
            if horaire1 < horaire2:
                print horaire2-horaire1
            else:
                print horaire1-horaire2
          

    ou mieux :

            # -*- coding: utf-8 
            def saisie (texte):
                h = input("Horaire n%s.   heures : " %texte)
                m = input("             minutes : ")
                s = input("            secondes : ")
                return h,m,s
            
            def convertir(h,m,s):
                return h*3600+m*60+s
            
            h1,m1,s1 = saisie (1)
            h2,m2,s2 = saisie (2)
            print 'durée écoulée : ',abs( convertir(h1,m1,s1) - convertir(h2,m2,s2) )
          
  12.         n = input("un entier SVP : ")
            s = 0
            for i in range (1,n+1):
                s += i
            print 'La somme est',s
          

    ou :

            n = input("un entier SVP : ")
            print 'La somme est',n*(n+1)/2
          
  13.         # -*- coding: utf-8 
            def tchacatchac(v):
                heure = 9 + int(170 / v)
                minutes =  (60 * 170 / v) % 60
                print " À", v, "km/h, je me fais déchiqueter à ", heure, "h", minutes, "mn."
            
            i = 100
            while i <= 300:
                tchacatchac(i)
                i += 10
          
  14.         # -*- coding: utf-8 
            def PermisSup(p,c,v,a):
                pointsperdus = p+3*c+5*v+10*a
                nbrepermis = pointsperdus/100
                return 200*nbrepermis
            
            poules = input("Combien de poules ? ")
            chiens = input("Combien de chiens ? ")
            vaches = input("Combien de vaches ? ")
            amis   = input("   Combien d'amis ? ")
            print 'À payer : ',
            payer = PermisSup(poules,chiens,vaches,amis)
            if payer == 0:
                print "rien à payer"
            else:
                print payer,'euros'
          
  15.         # -*- coding: utf-8 
            def hauteurParcourue (nb,h):
                print "Pour",nb,"marches de",h,"cm, il parcourt",
                print nb*h*2*5*7/100,"mètres en une semaine"
            
            nbmarches = input("Combien de marches ? ")
            hauteurmarche = input("Hauteur (en centimètres) d'une marche ? ")
            hauteurParcourue (nbmarches,hauteurmarche)