Aide programmation tableau
NCE26
-
cchristian Messages postés 928 Statut Membre -
cchristian Messages postés 928 Statut Membre -
Bonjour à tous,
Je dois faire un exercice mais je bloque.
Pourriez-vous m'aider svp ?
L'exercice dit:
Soit A, un tableau contenant n entiers non triés. Ecrire une procédure qui permet d'écalter A en deux tableaux, T1 et T2 triés et contenant respectivement les éléments impairs et pairs de A.
Merci!
David
Je dois faire un exercice mais je bloque.
Pourriez-vous m'aider svp ?
L'exercice dit:
Soit A, un tableau contenant n entiers non triés. Ecrire une procédure qui permet d'écalter A en deux tableaux, T1 et T2 triés et contenant respectivement les éléments impairs et pairs de A.
Merci!
David
Configuration: Windows XP Firefox 3.0.3
17 réponses
-
T'as pas crée un bout de script ... ? Un début quoi ?
-
Bonsoir,
NON , les gars, faut se bouger un peu, faites au moins un début d'embryon de commencement de quelque chose. Que l'on ait pas l'impression d'être pris pour des bourricots. -
J'ai bien essayé de faire mais je n'y arrive pas du tout...je débute dans la programmation c'est ma première année, c'est pour ça que je demande un peu d'aide...
Merci
David -
bouge toi avec modulo 2
(X%2)==0 ===>X est pair
sinon =======>X est impair -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Ben ouais mais ils filent pas d'exercices sans que t'ai quelques connaissances en général ... :O
-
-
tu dois remplire les deux tableaux puis les trier
il te faut deux fonctions parametrées -
<?php
// Tableau A
$a = array('12','51','3','18','66','21');
?>
A toi de faire un peu le reste. -
-
Bonsoir,
A tout hasard en C(++) :void raz_Tn (int (*T1), int (*T2), int (*T3), int nb_elemts_T) { int i = 0 ; for ( i = 0; i < nb_elemts_T; i++) { T1 [i] = 0 ; T2 [i] = 0 ; T3 [i] = 0 ; } } void tri_T1 (int (*T1), int nb_elemts_T) { int i = 0 ; int j = 1 ; int int_T1 = 0 ; for ( i = 0; i < nb_elemts_T; i++) { for ( j = i + 1; j < nb_elemts_T; j++) { if ( T1 [i] > T1 [j] ) { int_T1 = T1 [j] ; T1 [j] = T1 [i] ; T1 [i] = int_T1 ; } } } } void parit_Tn (int (*T1), int (*T2), int (*T3), int nb_elemts_T) { int i = 0 ; int j = 0 ; int k = 0 ; int reste = 0 ; for ( i = 0; i < nb_elemts_T; i++) { reste = T1 [i] % 2 ; if ( reste > 0 ) { T2 [j] = T1 [i] ; j++ ; } else { T3 [k] = T1 [i] ; k++ ; } } } int main () { int I = 0 ; int N = 0 ; int nb_elemts_T = 10 ; //Affectation des ressources mémoire au tableau. int * T1 = NULL ; T1 = (int*) malloc (nb_elemts_T * sizeof (int*)) ; int * T2 = NULL ; T2 = (int*) malloc (nb_elemts_T * sizeof (int*)) ; int * T3 = NULL ; T3 = (int*) malloc (nb_elemts_T * sizeof (int*)) ; //Spécifique C++ (à tout hasard) remplacé ici par malloc // int * T1 = NULL ; // T1 = new int [nb_elemts_T] ; // int * T2 = NULL ; // T2 = new int [nb_elemts_T] ; // int * T3 = NULL ; // T3 = new int [nb_elemts_T] ; //Fin spécifique C++ IF (T1 == NULL) {printf ("nom_pgm: Probleme a la creation du tableau T1") ; return (1) ;} IF (T2 == NULL) {printf ("nom_pgm: Probleme a la creation du tableau T2") ; return (2) ;} IF (T3 == NULL) {printf ("nom_pgm: Probleme a la creation du tableau T3") ; return (3) ;} raz_Tn (T1, T2, T3, nb_elemts_T) ; for ( I = 0; I < nb_elemts_T; I++) { T1 [I] = rand (); } tri_T1 (T1, nb_elemts_T) ; // Pour Contrôles visuels : printf ("\n\n\nTABLEAU T1 DES %i VALEURS ALEATOIRES :", nb_elemts_T); for ( I = 0; I < nb_elemts_T; I++) { printf ("\nT1 : %i", T1 [I]); } // fin Pour Contrôles visuels : parit_Tn (T1, T2, T3, nb_elemts_T) ; // Pour Contrôles visuels : printf ("\n\n\nTABLEAU T2 DES VALEURS IMPAIRES :"); for ( I = 0; I < nb_elemts_T; I++) { printf ("\n%T2 : %i", T2 [I]); } printf ("\n\n\nTABLEAU T3 DES VALEURS PAIRES :"); for ( I = 0; I < nb_elemts_T; I++) { printf ("\nT3 : %i", T3 [I]); } // fin Pour Contrôles visuels : //Libération des ressources mémoire affectées au tableau. //Spécifique C++ (à tout hasard remplacé ici par free) // delete [] T1 ; //Fin spécifique C++ free (T1) ; IF (T1 == NULL) {printf("\nom_pgm: Probleme a la destruction du tableau T1"); return (4) ;} //Spécifique C++ (à tout hasard remplacé ici par free) // delete [] T2 ; //Fin spécifique C++ free (T2) ; IF (T2 == NULL) {printf("\nom_pgm: Probleme a la destruction du tableau T2"); return (5) ;} //Spécifique C++ (à tout hasard remplacé ici par free) // delete [] T3 ; //Fin spécifique C++ free (T3) ; IF (T3 == NULL) {printf("\nom_pgm: Probleme a la destruction du tableau T3"); return (4) ;} printf ("\n Fin du traitement \n\n" ) ; _getch () ; return (0) ; }-
Sans blague, faut tout ca en C++ pour faire ce simple exercice ??!!
Après c'est vrai que dans son post, c'est pas précisé en quel language il veut faire ca :)- Bah j'ai vu grand, je renseigne le tableau avec des nombres aléatoires, j'édite systématiquement
les résultats (printf) pour contrôles visuels, je donne lorsque c'est utile, les 2 versions
C et C++ (malloc, free),....
Faut bien aider, je me suis fait engueuler (par MP) par un membre qui n'a pas aimé ma
première remarque (voir plus haut) !
-
Version simplifiée :
void tri_T1 (int (*T1), int nb_elemts_T) {int i = 0, j = 1, int_T1 = 0; for ( i = 0; i < nb_elemts_T; i++) { for ( j = i + 1; j < nb_elemts_T; j++) { if ( T1 [i] > T1 [j] ) { int_T1 = T1 [j] ; T1 [j] = T1 [i] ; T1 [i] = int_T1 ;} } } } void parit_Tn (int (*T1), int (*T2), int (*T3), int nb_elemts_T) {int i = 0, j = 0, k = 0; for ( i = 0; i < nb_elemts_T; i++) { if ( (T1 [i] % 2) > 0 ) { T2 [j++] = T1 [i] ; } else { T3 [k++] = T1 [i] ; } } } int main () { int I = 0, nb_elemts_T = 10 ; int * T1 = NULL ; T1 = (int*) malloc (nb_elemts_T * sizeof (int*)) ; int * T2 = NULL ; T2 = (int*) malloc (nb_elemts_T * sizeof (int*)) ; int * T3 = NULL ; T3 = (int*) malloc (nb_elemts_T * sizeof (int*)) ; for ( I = 0; I < nb_elemts_T; I++) { T1 [I] = rand (); } tri_T1 (T1, nb_elemts_T) ; printf ("\n\n\nTABLEAU T1 DES %i VALEURS ALEATOIRES :", nb_elemts_T); for ( I = 0; I < nb_elemts_T; I++) { printf ("\nT1 : %i", T1 [I]); } parit_Tn (T1, T2, T3, nb_elemts_T) ; printf ("\n\n\nTABLEAU T2 DES VALEURS IMPAIRES :"); for ( I = 0; I < nb_elemts_T; I++) { printf ("\n%T2 : %i", T2 [I]);} printf ("\n\n\nTABLEAU T3 DES VALEURS PAIRES :"); for ( I = 0; I < nb_elemts_T; I++) { printf ("\nT3 : %i", T3 [I]); } free (T1), (T2), (T3) ; _getch () ; return (0) ; }
-
-
Salut,
Allez, il y a du C++, du PHP. Je propose ma version python ^^.import random liste=[random.randint(1,15) for i in range(10)] b=sorted([j for j in liste if j%2==0]) c=sorted([j for j in liste if j%2]) print liste print b print c
-
Version php complète :
<?php
$a = $t1 = $t2 = array();
for ($i=0;$i<=50;$i++)
array_push($a,rand(0,200));
print_r($a);
echo '<br />';
natsort($a);
foreach($a as $tri=>$valeur) {
if ( $valeur%2 != 0 )
array_push($t1,$valeur);
else
array_push($t2,$valeur);
}
print_r($t1);
echo '<br />';
print_r($t2);
?> -
Salut,
En fait, on fait ça en Français, un peu comme du C mais en Français.
Merci à tous
David-
Bonjour,
Si C en français, C sous forme algorithmique alors ?
Algorithme :
Ensemble de règles opératoires dont l'application permet de résoudre un problème énoncé au moyen d'un nombre fini d'opérations. Un algorithme peut être traduit, grâce à un langage de programmation, en un programme exécutable par un ordinateur. © Larousse 2004
-
-
Salut,
Voici ce que j'ai fais:
procedure blabla
{tabinit=tableau d'entier
tabimp= pareil
tabpr=pareil
nbpr=entier
nbimp=pareil
t=entier}
{t est la taille du tableau}={nbpr: les nombres pair
nbimp: les nombres impair}
var i entier
nbpr<---tabpr[0]
nbimp<---tabimp[0]
pour i de 0 à t-1
Si tab init[i]=0
alors tabpr[i]<---nbpr
sinon
tabimp[i]<---nbimp
fin si
fin pour
fin procédure
Voilà voilà...si vous pouvez me la corriger ça serait sympa. -
Bonsoir,
Il faut que tu commentes ton algo car en ce qui me concerne je ne comprends pas très bien. -
J'ai essayé de faire quelque chose, je vous ai dis, je débute en algorithimique...
En tous cas, l'excercice dit:
Soit A, un tableau contenant n entiers non triés. Ecrire une procédure qui permet d'écalter A en deux tableaux, T1 et T2 triés et contenant respectivement les éléments impairs et pairs de A.
J'ai remplacé quelques appellations, mais à la fin c'est pareil.
Si vous pouvez me le corriger, ça serait super cool, en plus c'est pour demain après-midi...
Merci
David -
Bonsoir,
Voici une base de travail, de réflexion,
DEBUT PGM ---Définition et Initialisation des variables élémentaires nb_elemts_T=n, I = 1, J = 1, K = 1......... ---Définition et allocation mémoires de 3 tableaux numériques de tailles identiques T1, T2, T3. --- FAIRE pour tout les nb-elemts_T de T2 et T3: --- Initialisation à la valeurs zéro des nb-elemts_T des 2 tableaux T2 et T3. --- FIN FAIRE --- FAIRE pour tout les nb-elemts_T de T3 : --- Chargement des nb_elemts_T du tableau T1 avec des valeurs numériques (nombres aléatoires ?) --- FIN FAIRE Trier en valeurs ascendantes les éléments du tableau T1 (sous programme ou utilitaire de tri) --- FAIRE pour chaque element (e[I]) de T1, progression de 1 à chaque itération jusqu'à e[nb_elemts_T - 1]: --- FAIRE une comparison avec les éléments suivants du tableau ( e[I+1], e[I+2], ...e[nb_elemts_T] ) : --- Si element (e[I]) de T1 > element (e[I+n]) de T1 --- Permuter les valeurs de : element (e[I]) de T1 avec element (e[I+n]) de T1 --- FI SI --- FIN FAIRE --- FIN FAIRE Recherche parité ou non parité (sous programme I = 1, J = 1, K = 1) : --- FAIRE pour chaque element (e[I]) de T1, progression de 1 à chaque itération jusqu'à e[nb_elemts_T]: --- Si element (e[I]) de T1 % 2 > 0 (nombre impair dans T2) --- valeur contenu dans element (e[I]) de T1 dans élément (e[J++] de T2 --- SINON (nombre pair dans T3) --- valeur contenu dans element (e[I]) de T1 dans élement (e[K++] de T3 --- FI SI --- FIN FAIRE --- FAIRE pour chaque element de T1, T2 et T3,progression de 1 à chaque itération jusqu'à nb_elemts_T : ---- Affichage à la console (ou impression papier) par tableau des valeurs qu'ils contiennent.. --- FIN FAIRE --- Libération des ressources mémoires (le cas échéant suivant le langage) ............................. (suite événtuelle du programme) .............................. FIN PGM
NB. Les élément des tableaux sont référencés de 1 à n. Variable++ signifie progression de 1
du contenu de la variable aprés son utilisation dans l'instruction qui la contient.