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

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
130
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
130 > 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
110
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
110
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
110
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
110
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
130
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
130 > 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
130 > 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
130
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
11067
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 804
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
130
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
11067
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 804 > 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
130
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
130
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
130 > NCE26
4 nov. 2008 à 01:54
Bonne nuit également.
0