li mejhed f C id5ol hna

Discussion dans 'Programmation' créé par danbi515, 29 Avril 2007.

  1. danbi515

    danbi515 Guest

    salam , 3endi un programme à faire li mejhed f C i3awena!!


    Alors le programme doit convertir un phrase normal par exemple " mmaaarriiiicccc" à ===>>>"m2a3r2i4c4"

    fhemtoni?

    wa li i3te9na finahoa :-(
     
  2. NoUnOuS

    NoUnOuS Prepare to Die x____x

    J'aime reçus:
    33
    Points:
    0
    Re : li mejhed f C id5ol hna

    je sens l'odeur des pointeurs o 3andi 7aassassiya manhoum :(
     
  3. saadisme

    saadisme Bannis

    J'aime reçus:
    0
    Points:
    0
    Re : li mejhed f C id5ol hna

    non demain radi nsaybo
     
  4. Pe|i

    Pe|i Green heart ^.^

    J'aime reçus:
    501
    Points:
    113
    Re : li mejhed f C id5ol hna

    wach lprogramme kaydir juste le calcul dial nombre d'occurrences? :D
     
  5. Pe|i

    Pe|i Green heart ^.^

    J'aime reçus:
    501
    Points:
    113
    Re : li mejhed f C id5ol hna

    Salam Danbi, hak lcode, je l'ai fait en Java. tu peux le traduire en C :D

    import java.util.*;
    import java.io.*;

    public class StringOccurence {
    public static void main(String[] args){
    try{
    int i;
    int count=1;
    String chaine="mmaaarriiiicccc";

    //creation du flux
    StringReader sr=new StringReader(chaine);

    // Création du vecteur dans lequel on va stocker les caractères
    Vector vect = new Vector();

    //lecture des données et remplissage du vecteur de char
    while((i=sr.read())!=-1){
    vect.addElement((char)i);
    }


    // Une boucle sur tous les élements du vect
    for(int j=0;j<vect.size()-1;j++)
    {

    if(vect.elementAt(j) != vect.elementAt(j+1))
    {
    System.out.print(vect.elementAt(j)+""+count);
    count=1; //On initialise de nouveau le compteur
    }
    else
    {
    count++;
    }
    // Quand la case 0 match avec la case1 alors on incrémente le compteur, et on continue. Quand on passe à un nouveau caractère, on imprime le caractère précédant avec le compteur correspondant :)
    }
    }catch(IOException e){
    }
    }
    }
     
  6. ikossan

    ikossan Accro

    J'aime reçus:
    65
    Points:
    48
    Re : li mejhed f C id5ol hna

    tu dois mettres ta phrase dans une string, et rechercher par une lecture/comparaison derniere lecture, si elle concorde alors tu incremente un compteur, s'il ne concorde pas tu affiches le caractere suivis de la valeur du compteur, et tu initialise a nouveau le conteur par un.
    l'algorithe est le plus important dans l'ecriture d'un programme. essay et on vas voir ta solution pour l'ammeliorer ou la cooriger, l'importance c'est d'essayer.
    un algorithe ecris en pascal (Delphi): ReadStr.exe

    code:
    [​IMG]


    bonne chance. :D
     
  7. BillGates

    BillGates Citoyen

    J'aime reçus:
    4
    Points:
    38
    Re : li mejhed f C id5ol hna

    voici le code en C avec un screenshot de la sortie... si tu as besoin d'explications, n'hesites pas a demander
    [​IMG]

    Code:
    [b]#include <string.h> 
    #include <stdio.h> 
    #include <conio.h> 
    
    int main(void) 
    { 
    	char MotEntre[20], /// mot lu au clavier 
    	c ; // contient temporairement un charactere 
    	int i, // index de la boucle qui traverse le mot au complet 
    	j, // index de la boucle qui traverse le reste du mot 
    	k, // compteur des characteres repetés 
    	len; // taille du mot entré 
    
    	j = 0; 
    	k=0; 
    
    	clrscr(); // nettoyer l'ecran 
    
    	printf("Entrez un mot : "); 
    	gets(MotEntre); 
    	len = strlen(MotEntre); // noter la taille du Mot 
    	for (i=0; i<len; i++) { 
    	c = MotEntre[i]; // lire un charactere du mot 
    	if(c != ' ') { // s'il n'est pas vide, c-a-d un nouveau charatere 
    		MotEntre[i] = ' '; // vide sa position
    		k=1; // signaler qu'on a un nouveau 
    	} 
    	if (k != 0) /// est-ce qu'on a un nouveau charactere ? 
    	{ 
    		for (j=i+1; j<len+1; j++) // Oui, alors balayage du reste du mot, et voir s'il se retrouve a d'autres positions. 
    		if (c == MotEntre[j]) { // oui on le retrouve ailleur 
    			k=k+1; // augmenter le nombre de recurence 
    			MotEntre[j]=' '; // le changer pour vide, pour eviter de le compter a nouveau 
    		} 
    		if (c != ' ') // le charactere n'est pas vide, alors afficher le resultat 
    			printf("%c%d",c, k); 
    			k = 0; // remettre le compteur a zero 
    		} 
    	}; 
    	getch(); 
    	return 0; 
    }[/b]
     
  8. hichamaladin

    hichamaladin Hicham

    J'aime reçus:
    0
    Points:
    0
    c´est bien ce que vous faites ici bon courage
     

Partager cette page