# Copyright (c) 2024. # Luc Bergevin, tous droits réservés. # Créé le 2024-11-11 10 h 24 import sys from math import factorial currentArgvIndex = 0 ''' Numéro 1 Faites un programme qui prend en paramètre une marque de voiture sur la ligne de commande et qui affiche le message suivant : "Vous aimez la vitesse" si la marque est Ferrari ou Porsche. "Vous aimez le luxe" si la marque est Audi ou BMW. "Vous aimez l'économie" si la marque est Hyundai. "Pouasch" si la marque est Lada. "Je ne connais pas cette marque" si la marque est autre. ''' print("Numéro 1 :") currentArgvIndex += 1 brand = sys.argv[currentArgvIndex] match brand: case "Ferrari": print("Vous aimez la vitesse") case "Audi" | "BMW": print("Vous aimez le luxe") case "Hyundai": print("Vous aimez l'économie") case "Lada": print("Pouasch") case _: print("Je ne connais pas cette marque") ''' Numéro 2 À partir de ce fichier, faites un programme qui: liste les éléments dont l’indice est pair. liste les voitures dont le nom commence par une lettre entre 'A' et 'F'. ''' voitures = ["Audi", "Lada", "Toyota", "BMW", "Honda", "Chevrolet", "Ferrari", "Ford", "Porsche", "Hyundai"] print("\n\nNuméro 2 : ") print("Éléments dont l'indice est pair") for index in range(len(voitures)): if index % 2 == 0: print(voitures[index]) print("Éléments dont le nom commence par une lettre entre 'A' et 'F'") for element in voitures: if ord(element[0]) in range(ord('A'), ord('G')): print((element)) ''' Numéro 3 À partir de ce fichier qui contient les notes de certains étudiants (pas ceux de votre cours!), faites un programme qui: Compte combien d'étudiants sont en dessous de 60%. Compte combien d'étudiants sont au dessus de 59%. Calcule la moyenne de tous les étudiants. Calcule la moyenne des étudiants qui sont en dessous de 60%. Calcule la moyenne des étudiants qui sont au dessus de 59%. Trouve la plus haute note. Trouve la plus basse note. ''' notes = [32, 45, 87, 98, 24, 86, 59, 74, 79, 73, 82, 90, 65, 44, 79, 86, 70, 94] nbUnder60 = 0 nbOver59 = 0 averageGlobal = 0 averageUnder60 = 0 averageOver59 = 0 maximum = 0 minimum = 100 for element in notes: averageGlobal += element if element < 60: nbUnder60 += 1 averageUnder60 += element else: nbOver59 += 1 averageOver59 += element if element > maximum: maximum = element if element < minimum: minimum = element averageGlobal = averageGlobal / len(notes) averageUnder60 = averageUnder60 / nbUnder60 averageOver59 = averageOver59 / nbOver59 print("\n\nNuméro 3 : ") print(f"Nb d'étudiants en dessous de 60% : {nbUnder60}") print(f"Nb d'étudiants au dessus de 59% : {nbOver59}") print(f"Moyenne de tous les étudiants : {averageGlobal:2.3f}") print(f"Moyenne des étudiants qui sont en dessous de 60% : {averageUnder60:2.3f}") print(f"Moyenne des étudiants qui sont au dessus de 59% : {averageOver59:2.3f}") print(f"Plus haute note : {maximum}") print(f"Plus basse note : {minimum}") ''' Numéro 4 À partir de ce fichier qui contient 2 tableaux synchrones, faites un programme qui: Liste les voitures qui viennent d'Europe. Liste les voitures qui viennent d'Asie. ''' voitures = ["Audi", "Lada", "Toyota", "BMW", "Honda", "Chevrolet", "Ferrari", "Ford", "Porsche", "Hyundai"] origines = ["Europe", "Russie", "Asie", "Europe", "Asie", "USA", "Europe", "USA", "Europe", "Asie"] europe = [] asie = [] for index in range(len(voitures)): if origines[index] == "Europe": europe.append(voitures[index]) if origines[index] == "Asie": asie.append(voitures[index]) print("\n\nNuméro 4 :") print(f"Voitures qui viennent d'Europe : {europe}") print(f"Voitures qui viennent d'Asie : {asie}") ''' Numéro 5 À partir de ce fichier qui contient 2 tableaux synchrones, faites un programme qui: Liste les étudiants qui sont en dessous de 60%. Liste les étudiants qui sont au dessus de 59% ''' etudiants = ["Arminius", "Brutus", "Caligula", "Diplodocus", "Ephrem", "Fernand", "Gengis Khan", "Hypocrate", "Imelda", "Justinien", "Kharlamov", "Listeria", "Maximinus", "Néron", "Octavius", "Poutine", "Raspoutine", "Varus"] notes = [32, 45, 87, 98, 24, 86, 59, 74, 79, 73, 82, 90, 65, 44, 79, 86, 70, 94] over = [] under = [] for index in range(len(notes)): if notes[index] < 60: under.append(etudiants[index]) else: over.append(etudiants[index]) print("\n\nNuméro 5 :") print(f"Étudiants qui sont en dessous de 60% : {under}") print(f"Étudiants qui sont au dessus de 59% : {over}") ''' Numéro 6 Faites un programme qui liste des 20 premiers factoriels. ''' print("\n\nNuméro 6 :") print("Liste des 20 premiers factoriels (méthode 1) :") for number in range(1, 21): print(factorial(number)) print("\nListe des 20 premiers factoriels (méthode 2) :") facto = 1 for number in range(1, 21): facto *= number print(facto) ''' Numéro 7 Faites un programme qui liste les N premiers factoriels jusqu'à ce que le résultat du factoriel soit plus de 100 000. ''' print("\n\nNuméro 7 :") print( "Liste des N premiers factoriels jusqu'à ce que le résultat du factoriel soit plus de 100 000 :") number = 1 facto = 1 while facto < 100_000: print(f"{number} --> {facto:_}") number += 1 facto *= number ''' Numéro 8 Faites un programme qui liste : les N premiers carrés parfaits jusqu'à ce que le résultat du carré parfait soit plus de 50 000. les N premiers cubes parfaits jusqu'à ce que le résultat du cube parfait soit plus de 100 000. ''' number = 1 square = 1 print("\n\nNuméro 8 :") print( "Liste des N premiers carrés parfaits jusqu'à ce que le résultat du carré parfait soit plus de 50 000 :") while square < 50_000: print(f"{number} --> {square:_}") number += 1 square = number ** 2 print( "\nListe des N premiers cubes parfaits jusqu'à ce que le résultat du cube parfait soit plus " "de 100 000 :") number = 1 cube = 1 while cube < 100_000: print(f"{number} --> {cube:_}") number += 1 cube = number ** 3 ''' Numéro 9 Faites la somme et la multiplication de 4 valeurs supérieures à 100 entrées sur la ligne de commande : en utilisant les fonctions ord() et chr(); refaites-le sans utiliser ces deux fonctions. ''' alphaNumbers = [] for i in range(0, 4): currentArgvIndex += 1 alphaNumbers.append(sys.argv[currentArgvIndex]) print("\n\nNuméro 9 :") print( "Somme et multiplication de 4 valeurs supérieures à 100 entrées sur la ligne de commande", "en utilisant les fonctions ord() et chr() :") sum = 0 mult = 1 for element in alphaNumbers: value = 0 for letter in element: value *= 10 value += (ord(letter) - 48) sum += value mult *= value print(f"Somme de {alphaNumbers} = {sum:_}") print(f"Multiplication de {alphaNumbers} = {mult:_}") print( "\nSomme et multiplication de 4 valeurs supérieures à 100 entrées sur la ligne de commande " "sans utiliser les fonctions ord() et chr() :") sum = 0 mult = 1 for element in alphaNumbers: sum += int(element) mult *= int(element) print(f"Somme de {alphaNumbers} = {sum:_}") print(f"Multiplication de {alphaNumbers} = {mult:_}") ''' Numéro 10 À partir de ce fichier qui contient 2 tableaux synchrones, faites un programme qui trie les étudiants et les notes en ordre décroissant de notes, sans utiliser la fonction sorted fournie par la plate-forme python. ''' students = ["Arminius", "Brutus", "Caligula", "Diplodocus", "Ephrem", "Fernand", "Gengis Khan", "Hypocrate", "Imelda", "Justinien", "Kharlamov", "Listeria", "Maximinus", "Néron", "Octavius", "Poutine", "Raspoutine", "Varus"] grades = [32, 45, 87, 98, 24, 86, 59, 74, 79, 73, 82, 90, 65, 44, 79, 86, 70, 94] print("\n\nNuméro 10 :") print( "À partir de ce fichier qui contient 2 tableaux synchrones, faites un programme qui trie", "les étudiants et les notes en ordre décroissant de notes, sans utiliser la fonction sorted", "fournie par la plate-forme python.") sortedStudents = [] sortedGrades = [] while len(grades) > 0: maxIndex = 0 for index in range(len(grades)): if grades[index] > grades[maxIndex]: maxIndex = index sortedGrades.append(grades[maxIndex]) sortedStudents.append(students[maxIndex]) print(f"{students[maxIndex]:>12} --> {grades[maxIndex]}") students.pop(maxIndex) grades.pop(maxIndex) print(f"Étudiants en ordre décroissant : {sortedStudents}") print(f"Notes en ordre décroissant : {sortedGrades}")