DEV-INFO-PLUS est mon site personnel spécifié aux développement Informatique et les nouvelles technologies , destiné aux étudiants, professionnels, développeurs,…
Algorithme et Programmation
- Points Cols d’une Matrice N*N
Les points Cols d’ une matrice M d’entiers sont les éléments qui son minimum sur ligne et maximum sur colonne
Exemple:
9 5 7 5 4 2 2 3 4 3 3 2 8 5 6 5 7 4 10 4 M de type Mat les points cols sont : M[ 1 , 2] , M[ 1 , 4] ,M[ 4 , 2] , M[ 4, 4]
Ecrire un algorithme qui permet de remplir un fichier de type texte F_cols par les points cols d’une matrice M avec n *m
5(1,2)
5(1,4)
5(4,2)
5(4,4)Fichier Texte Travail demandé:
- Remplir deux matrices M_min et M-max qui contient qui contiendra de 1 dans le minimum sur ligne et 0 pour les autres éléments et même chose pour la matrice M_max
- Remplir le fichier F_cols comme le montre l’image précédante
0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 1 M_min 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 M_max Solution
Ecrire deux procédure M_imn et M_max qui permettent de trouver le minimum sur ligne et maximum sur colonnes et les remplacez par 1 et 0 comme le montre l’exemple
Procédure M_min
Procédure M-min ( M :mat , @M_min : mat , n,m :Entier) Début Pour i de 1 à n Faire indice <-- 1 Pour j de 1 à m Faire Si M[i,j] < M[i,indice] Alors M_min[i,indice] <-- 0 M_min[i,j] <-- 1 indice <-- j Sinon Si M[i,j] = M[i,indice] Alors M_min[i,j] <-- 1 Sinon M_min[i,j] <-- 0 FinSi FinPour FinPour Fin
Procédure M_Max
Procédure M_max (M:mat ,@M_max , n,m :entier) Début
- Correction Exercices
Exercice Trouver le K plus petit élément dans un tableau T
Enoncé :
Ecrire un algorithme qui permet de remplir un tableau T de N entiers positifs de 3 chiffres , de chercher et d’afficher le Kième plus petit élément s’il existe et l’indice de sa première apparition dans le tableau T
L’objectif est de trouver le k-ième plus petit élément dans un tableau sans trier le tableau, puis d’afficher sa première position. Le processus consiste à exclure successivement les plus petits éléments jusqu’à atteindre le k-ième
#Programme Principale Algorithme K_app debut Ecrire("donner la taille du tableau") lire(N) Remplir(N) Min_Tab(T) Max_Tab(T) Modifier(T,n,m) Premier_apparition(T, n) Kieme(T,K) Fin.
Commencez par saisir et remplir le tableau t avec les contrôles du saisie
Procédure Remplir(N: Entier) Début pour i de 1 à N faire Répéter Ecrire ("Donner l'élément ",i) lire (X) T[i] 0 ET 100<X<999) Fin Pour Fin
le maximum et le minimum du tableau on doit utiliser deux fonction qui ont comme type de retour un entier
Fonction Minimum( T:tab ,N: Entier) : Entier Début Min <-- T[0] pour i de 1 à N faire si T[i] < Min alors Min <-- T[i] finsi fin pour retourner Min Fin
Fonction Maximum(T: tab , N: Entier ):Entier Début Max Max alors Max <-- T[i] finsi fin pour retourner Max fin
Le module
Modifier
est utilisé pour remplacer un élément dans le tableau par une valeur supérieure à tous les autres éléments. Cela nous permet d’exclure cet élément des prochaines recherches.Procédure Modifier( T:tab , n : entier , m : Entier) Début pour i de 1 à N faire Si T[i] = n Alors # l'élément a rechercher T[i] <-- m # l'élément à remplacer FinSi FinPour Fin
le module Premier_apparition() nous permet de renvoyez l’indice de l’élément
Fonction premier_apparition( T: tab , x : Entier):Entier Début r <-- -1 pour i de 1 à N faire Si T[i] = x Alors r <-- i FinSi FinPour Retourner r Fin
Le module Kieme orchestre tout le processus. Il trouve le k-ième plus petit élément en excluant progressivement les plus petits éléments
Procédure Kieme (T:Tab , K : Entier) Début max <-- Maximum (T) pour i de 1 à N faire min <-- Minimum(T) Si i = K Alors pos <-- premier_apparition(T,min) Ecrire ("Le ",K,"ime élément est ",min,"à la position",pos) Sinon Modifier(T,min,max) FinSi finpour Ecrire ("pas de K ieme élément") Fin
- Exercice Corrigés
Exercice 1:
Un nombre est dit k-pp (Presque Premiers),s’il s’écrit sous forme d’un produit de k nombres premiers non nécessairement distincts.
Exemple : 385 = 5 * 7 * 11 est un nombre 3-pp
Notre problème est d’ecrire un algorithme et le décomposer en des sous programmes qui permet de:
- remplir un tableau T par N entiers positifs avec 5=< N <=50 de 3 chiffres
- chercher et afficher les k-presque premiers nombres du tableau T
sachant que k est un entier choisi aléatoirement dans l’intervalle [2,5]
Exemple: Pour N =4 et K = 3 et le tableau T suivant :
935 846 231 490 Les nombres 231 et 935 sont dits 3-pp et seront affichés de cette manière
231 = 3 * 7 * 11 et 935 = 5 * 11 * 17
Correction