Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 39
  1. #1

    [C/C++]Convertire stringa caratteri in ascii,poi in binario e infine in una matrice..

    Dovrei fare un programma in C(ma va bene pure in c++ al massimo ) che :

    1) legga una stringa di caratteri da tastiera

    2)per ogni carattere della stringa effetutti la conversione in ascii e dal numero ascii ottenuto in codice binario

    3)organizzi i caratteri cosi' tradotti ,in binario quindi, in una matrice(un carattere per riga).

    Mi potete aiutare scrivendone il codice? Vi prego non so davvero come fare specialmente nei punti 2 e 3....

    Grazie mille
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  2. #2
    Ragazzi ho scritto questo codice...
    codice:
    #include <stdio.h>
    #include <string.h>
    
    char nome[1000];
    int i;
    
    binario(int n);
    
    main()
    {
    gets(nome);
    
    for (i=0;i<strlen(nome);i++)
    printf("%c = %d \n",nome[i],nome[i]);
    
    
    for (i=0;i<strlen(nome);i++)
    binario(nome[i]);                          
                            
    }
    
    
    binario(int n)
    {
       int base=2, array[50];
    
       int counter = 0;
       int tmp = n;
    
       while( tmp != 0 )
       {
          counter++;
          array[counter] = tmp % base;
          tmp = tmp / base;
       }
    
       tmp = counter;
       printf("\n");
       for( int i = 0; i < counter; ++i )
       {
          printf("%d",array[tmp]);
          tmp--;
       }
    
    }
    Questo soddisfa i punti 1 e 2 cioè chiede in input una stringa,converte in codice ascii ogni singolo carattere e ogni singolo codice ascii viene convertito in binario....

    Ora mi manca di inserire quei codici binari che ho ottenuto in una matrice soddisfacendo cosi' il punto 3...mi potete aiutare????Ora non so propio ocme fare
    Aiutoooooooooooo

    grazie mille
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  3. #3
    Le "Stringhe" o i caratteri che inserisci puoi convertirli in ascii senza nessuna codiafica particolare :

    char a = 'A';
    printf ("%d", a);

    Stampa il Valore in ascii di a...
    #include <stdio.h>
    int main() { char m[18+1] = "_TeYS_We2^[TWda [f";
    int i = (((3*7))-21); for (; m[i]; i++)
    (i<27) ? m[i]+=(((13)*3)-25) : m[i] -= (7+(i)*(-1));
    puts(m); getchar(); return 0; };

  4. #4
    Prova Cosi'... Non l'ho Provato ma dovrebbe andare anche se e'
    un po' bruttino da vedere con tutte le variabili Globali...

    codice:
    #include <stdio.h>
    #include <string.h>
    
    #define MAX_R    10
    #define MAX_C	  8
    
    int matrix[MAX_R][MAX_C];
    char nome[1000];
    int step = 0;
    binario(int n);
    
    main()
    {
    	int i, j;
    gets(nome);
    
    for (i=0;i<strlen(nome);i++)
    printf("%c = %d \n",nome[i],nome[i]);
    
    
    for (i=0;i<strlen(nome);i++)
    	binario(nome[i]);
    
    
    getchar();
    }
    
    
    binario(int n)
    {
       int base=2, array[50];
       int i;
    
       int counter = 0;
       int tmp = n;
    
       while( tmp != 0 )
       {
          counter++;
          array[counter] = tmp % base;
          tmp = tmp / base;
       }
    
       tmp = counter;
       printf("\n");
       for( int i = 0; i < counter; ++i )
       {
          matrix[step][i] = array[tmp];
          tmp--;
       }
       step++;
    }
    #include <stdio.h>
    int main() { char m[18+1] = "_TeYS_We2^[TWda [f";
    int i = (((3*7))-21); for (; m[i]; i++)
    (i<27) ? m[i]+=(((13)*3)-25) : m[i] -= (7+(i)*(-1));
    puts(m); getchar(); return 0; };

  5. #5
    Originariamente inviato da nightfall
    Prova Cosi'... Non l'ho Provato ma dovrebbe andare anche se e'
    un po' bruttino da vedere con tutte le variabili Globali...

    codice:
    #include <stdio.h>
    #include <string.h>
    
    #define MAX_R    10
    #define MAX_C	  8
    
    int matrix[MAX_R][MAX_C];
    char nome[1000];
    int step = 0;
    binario(int n);
    
    main()
    {
    	int i, j;
    gets(nome);
    
    for (i=0;i<strlen(nome);i++)
    printf("%c = %d \n",nome[i],nome[i]);
    
    
    for (i=0;i<strlen(nome);i++)
    	binario(nome[i]);
    
    
    getchar();
    }
    
    
    binario(int n)
    {
       int base=2, array[50];
       int i;
    
       int counter = 0;
       int tmp = n;
    
       while( tmp != 0 )
       {
          counter++;
          array[counter] = tmp % base;
          tmp = tmp / base;
       }
    
       tmp = counter;
       printf("\n");
       for( int i = 0; i < counter; ++i )
       {
          matrix[step][i] = array[tmp];
          tmp--;
       }
       step++;
    }
    Cavolo com'è complicatoo!!!

    Dovete essere programmatori esperti!

  6. #6
    :quote: (Ma Quanto sei Simpatico)
    #include <stdio.h>
    int main() { char m[18+1] = "_TeYS_We2^[TWda [f";
    int i = (((3*7))-21); for (; m[i]; i++)
    (i<27) ? m[i]+=(((13)*3)-25) : m[i] -= (7+(i)*(-1));
    puts(m); getchar(); return 0; };

  7. #7
    Originariamente inviato da nightfall
    Prova Cosi'... Non l'ho Provato ma dovrebbe andare anche se e'
    un po' bruttino da vedere con tutte le variabili Globali...

    codice:
    #include <stdio.h>
    #include <string.h>
    
    #define MAX_R    10
    #define MAX_C	  8
    
    int matrix[MAX_R][MAX_C];
    char nome[1000];
    int step = 0;
    binario(int n);
    
    main()
    {
    	int i, j;
    gets(nome);
    
    for (i=0;i<strlen(nome);i++)
    printf("%c = %d \n",nome[i],nome[i]);
    
    
    for (i=0;i<strlen(nome);i++)
    	binario(nome[i]);
    
    
    getchar();
    }
    
    
    binario(int n)
    {
       int base=2, array[50];
       int i;
    
       int counter = 0;
       int tmp = n;
    
       while( tmp != 0 )
       {
          counter++;
          array[counter] = tmp % base;
          tmp = tmp / base;
       }
    
       tmp = counter;
       printf("\n");
       for( int i = 0; i < counter; ++i )
       {
          matrix[step][i] = array[tmp];
          tmp--;
       }
       step++;
    }
    questo programma da te modificato ,a partire da quello fatto da me, chiesta una stringa la trasforma ,carattere per carattere, in codice ascii ma mentre il mio andava "avanti" trasformando il codice ascii di ogni singola lettera in binario il tuo non fà altro lo potresti corregger per piacere???

    Grazie mille
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  8. #8
    Up aiutooooooo




    grazie...
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  9. #9
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Ecco il mio codice (testato, almeno un po')

    codice:
    #define MAX_C 100
    
    void main()
    {
    	cout << "Inserire i caratteri, per terminare '.'" << endl;
    
    	unsigned char c;
    	bool matrix[MAX_C][8];
    	int numchar = 0;
    	int i,j;
    
    	do {
    		c = getche();
    		if(c=='.') break;
    		numchar++;
    
    		for(i=7; i + 1; i--)
    		{
    			matrix[numchar-1][i] = c % 2;
    			c >>= 1;
    		}
    	} while(1);
    
    	cout << "Ecco tutti i valori in binario:" << endl;
    
    	for(j=0; j<numchar; j++) {
    		c = 0;
    		for(i=0; i<8; i++) {
    			c += pow(2, (8 - i - 1)) * matrix[j][i];
    
    			cout << matrix[j][i];
    		}
    		cout << "\t=\t" << c << endl;
    	}
    }

  10. #10
    Originariamente inviato da iguana13
    Ecco il mio codice (testato, almeno un po')

    codice:
    #define MAX_C 100
    
    void main()
    {
    	cout << "Inserire i caratteri, per terminare '.'" << endl;
    
    	unsigned char c;
    	bool matrix[MAX_C][8];
    	int numchar = 0;
    	int i,j;
    
    	do {
    		c = getche();
    		if(c=='.') break;
    		numchar++;
    
    		for(i=7; i + 1; i--)
    		{
    			matrix[numchar-1][i] = c % 2;
    			c >>= 1;
    		}
    	} while(1);
    
    	cout << "Ecco tutti i valori in binario:" << endl;
    
    	for(j=0; j<numchar; j++) {
    		c = 0;
    		for(i=0; i<8; i++) {
    			c += pow(2, (8 - i - 1)) * matrix[j][i];
    
    			cout << matrix[j][i];
    		}
    		cout << "\t=\t" << c << endl;
    	}
    }
    si includendo le librerie
    #include <iostream.h>
    #include <math.h>
    #include <conio.h>
    và grazie mille
    Ma i valori binari in uscita si trovano in una matrice vero??nel codice vedo matrix...

    No perchè dopo aver fatto questo devo , per ogni riga e colonna,della matrice appunto, aggiungere i bit di parità... cioè verificare per ogni riga e colonna se il numero degli 1 è pari:se lo è aggiungo 0 altrimenti aggiungo 1...poi con la stringa binaria ottenuta alla fine da questo lavoro ristrasformala in numero decimale,quindi ascii, e poi in carattere....

    Mi puoi aiutare anche in questo??scusa se ti disturbo ancora ...ma te ne sarei grato

    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.