Aide programmation tableau

Fermé
NCE26 - 2 nov. 2008 à 17:39
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 4 nov. 2008 à 01:54
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
A voir également:

17 réponses

djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 95
2 nov. 2008 à 18:18
T'as pas crée un bout de script ... ? Un début quoi ?
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
2 nov. 2008 à 18:21
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.
0
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 95
2 nov. 2008 à 18:22
D'accord avec toi ;)
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131 > djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015
2 nov. 2008 à 18:23
Et moi avec toi.
0
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
0
ziedzico Messages postés 393 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 12 avril 2014 112
2 nov. 2008 à 22:24
bouge toi avec modulo 2

(X%2)==0 ===>X est pair
sinon =======>X est impair
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 95
2 nov. 2008 à 22:38
Ben ouais mais ils filent pas d'exercices sans que t'ai quelques connaissances en général ... :O
0
ziedzico Messages postés 393 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 12 avril 2014 112
2 nov. 2008 à 22:39
tu veux dire koi ?
0
ziedzico Messages postés 393 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 12 avril 2014 112
2 nov. 2008 à 22:41
tu dois remplire les deux tableaux puis les trier

il te faut deux fonctions parametrées
0
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 95
2 nov. 2008 à 22:50
<?php

// Tableau A

$a = array('12','51','3','18','66','21');

?>

A toi de faire un peu le reste.
0
ziedzico Messages postés 393 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 12 avril 2014 112
2 nov. 2008 à 22:58
il a sorti laisse tomber
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
3 nov. 2008 à 00:11
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)                                    ;
} 
0
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 95
3 nov. 2008 à 00:17
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 :)
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131 > djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015
3 nov. 2008 à 00:27
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) !
0
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 95 > cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012
3 nov. 2008 à 00:36
Lol j'y ai pas eu droit à la remarque, ouf ... :)

Sinon en php, ca doit prendre 10 lignes grand maximum, c'est pour ca que quand j'ai vu ton post j'ai eu très très peur ...

Mais bon à chacun son langage , surtout que j'y connais absolument rien en c++ et php je connais mais j'en suis pas un pro :)
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131 > djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015
3 nov. 2008 à 00:43
En fait c'est dans la discussion "programation c++ besoin d'aide.."
que j'ai fait un mécontent avec le même énoncé de message..........

Quant à moi je ne connais pas php, mais en programmation c'est vrai que
j'ai tendance à m'étaler un peu.
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
3 nov. 2008 à 01:29
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)                                    ;
} 
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 845
3 nov. 2008 à 00:52
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
0
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 95
3 nov. 2008 à 11:58
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);

?>
0
Salut,

En fait, on fait ça en Français, un peu comme du C mais en Français.

Merci à tous

David
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
3 nov. 2008 à 16:43
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

0
NCE26 > cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012
3 nov. 2008 à 20:27
Salut,

Oui, c'est exatement ça, en algorithimique.

Merci beaucoup de vos aides et future aide!

David
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 845 > NCE26
3 nov. 2008 à 20:50
Poste nous le travail que tu as fait jusqu'à maintenant qu'on puisse t'aider.
Si t'as des questions, n'hésite pas ;)
Tu peux t'aider des programmes qui ont été donné jusqu'à maintenant.
0
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.
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
3 nov. 2008 à 22:02
Bonsoir,

Il faut que tu commentes ton algo car en ce qui me concerne je ne comprends pas très bien.
0
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
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
3 nov. 2008 à 23:52
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.
0
Salut Christian,

Merci beaucoup de ton aide.

Bonne Nuit.

Merci.
David
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131 > NCE26
4 nov. 2008 à 01:54
Bonne nuit également.
0