un'altra domanda perchè hai definito la matrix come BOOL??? se la metto come INT và lo stesso...mi spieghi![]()
grazie ancora![]()
![]()
![]()
un'altra domanda perchè hai definito la matrix come BOOL??? se la metto come INT và lo stesso...mi spieghi![]()
grazie ancora![]()
![]()
![]()
Vediamo..sogni che diventano professione...passioni che diventano vita...Free as in Freedom...
Il tipo bool può contenere solo valori di vero/falso o 0/1, quindi bit.
La matrice è matrix[][].
Ora cerco di risolvere anche l'altro problema e commentare n po'!
si ok messo int sul valore della matrice tanto i valori che deve contenere la matrice sono binari solo bit 0 e 1 è indifferente alloraOriginariamente inviato da iguana13
Il tipo bool può contenere solo valori di vero/falso o 0/1, quindi bit.
La matrice è matrix[][].
Ora cerco di risolvere anche l'altro problema e commentare n po'!![]()
Si i commenti nn ti preoccupare...il problema è il fatto di aggiungere gli 1 (o gli 0 se sono già in numero pari gli 1) AD OGNI RIGA E COLONNA DELLA MATRICE...
Ottenere poi una stringa finale insomma una riga di bit 0 e 1da trasformare in decimale(ascii cioè) e in carattere
![]()
![]()
Vediamo..sogni che diventano professione...passioni che diventano vita...Free as in Freedom...
Ora ho solo aggiunto i commenti al codice, che è lo stesso.
Analizzalo per bene!
Codice PHP:#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <math.h>
using namespace std;
// Numero massimo di carattere
// (costante)
#define MAX_C 100
void main()
{
cout << "Inserire i caratteri, per terminare '.'" << endl;
// Il valore del carattere che chiede
// è unsigned
unsigned char c;
// La matrice:
// il primo indice è il carattere
// il secondo è il bit
bool matrix[MAX_C][8];
// Numero totale di caratteri
int numchar = 0;
// Contatori per la matrice
int i,j;
do {
// Attende la pressione di un carattere
c = getche();
// Se è un punto, termina
if(c=='.') break;
// Incrementa il numero di caratteri
numchar++;
// Altro ciclo: per ogni bit,
// partendo dall'ultimo...
for(i=7; i + 1; i--)
{
// Faccio il modulo con 2 per trovare
// la cifra binaria
matrix[numchar-1][i] = c % 2;
// Dicido c per due
c >>= 1;
}
// Continua finchè non si attiva il break di prima
} while(1);
// Scrive tutto in binario ora
cout << "Ecco tutti i valori in binario:" << endl;
// Ciclo esterno: per ogni carattere...
for(j=0; j<numchar; j++) {
// Ricalcolerà il carattere partendo dalla cifra binaria
c = 0;
// Ciclo interno: per ogni bit...
for(i=0; i<8; i++) {
// c = c + (2 ^ numerobit) * valore_bit
c += pow(2, (8 - i - 1)) * matrix[j][i];
// Scrivo il valore del bit
cout << matrix[j][i];
}
// Scrivo anche il carattere
cout << "\t=\t" << c << endl;
}
}
Aggiungere 0 non significa lasciarlo così com'è??
E poi se ogni colonna della matrice è un bit (0 o 1) come posso aggiungere 1 ad ogni bit?
Non ha senso!!
E' un esercizio per l'univ?
si grazie tradotto in C e lo sto studiando attendo l'altra parte grazie mille![]()
![]()
Vediamo..sogni che diventano professione...passioni che diventano vita...Free as in Freedom...
Cioè ora abbiamo tutti i numeri binari messi in una matrice OKOriginariamente inviato da iguana13
Aggiungere 0 non significa lasciarlo così com'è??
E poi se ogni colonna della matrice è un bit (0 o 1) come posso aggiungere 1 ad ogni bit?
Non ha senso!!
E' un esercizio per l'univ?![]()
poi...
A questa matrice controllo per ogni riga se il numero dei bit 1 è pari: se lo è aggiungo(non è che lo sommo lo metto propio come elemento nuovo) a sinistra della riga 0 ,se invece è dispari aggiungo un 1,sempre a sinistra,rendendoli cosi' cmq pari(il numero dei bit 1 cioè).
La stessa identica cosa la faccio per ogni colonna della matrice aggiungendo un 1 o uno 0,con lo stesso criterio di sopra, ma questa volta in basso al termine di ogni colonna....
La stringa cosi' ottenuta in basso la devo trasformare in decimale e poi nella corrispettiva lettera del codice ascii..
No è un esercizio che è sul libro del 3 superiore informatica abacus che io frequento![]()
![]()
Ti sarei grato se mi aiutasti..
E' un esercizio relativo al capitolo della trasmissione e controllo degli errori...
![]()
Vediamo..sogni che diventano professione...passioni che diventano vita...Free as in Freedom...
Puoi fare un esempio di cosa devi fare?
Nella matrice le colonne sono i songoli bit!!
Esempio:
01000010
01000011
00010001
E poi la larghezza delle righe è fissa a 8! Se aggiungo 1 supero il limite del byte!
Hai il testo integrale?
Si ti scrivo il testo integrale e propio l'esempio che c'è sul libro relativo a questo esercizio da svolgere..Originariamente inviato da iguana13
Puoi fare un esempio di cosa devi fare?
Nella matrice le colonne sono i songoli bit!!
Esempio:
01000010
01000011
00010001
E poi la larghezza delle righe è fissa a 8! Se aggiungo 1 supero il limite del byte!
Hai il testo integrale?![]()
1)leggere una stringa da tastiera
2)per ogni carattere della stringa effettuare la conversione ASCII/binario
3)organizzare i caratteri cosi' ottenuti in una matrice(un carattere per riga),7 colonne.
3)effettuare il controllo di parità incrociata,aggiungendo a ogni carattere un bit di parità orizzontale e,alla fine della stringa, un bit di parità verticale.
4)tradurre nel corrispondente simbolo ASCII il byte aggiunto
ESEMPIO:
Supponendo che stringa letta sia MOUSE
CODICE__ASCII___PARITA'_ORIZZONTALE
M ==== 77 ======== 0 ____ 1 0 0 1 1 0 1
O ==== 79 ======== 1 ____ 1 0 0 1 1 1 1
U ==== 85 ======== 0 ____ 1 0 1 0 1 0 1
S ==== 83 ======== 0 ____ 1 0 1 0 0 1 1
E ==== 69 ======== 1 ____ 1 0 0 0 1 0 1
PARITA' VERTICALE__0 ____1 0 0 0 0 0 1
Il byte trovato ,in questo caso, è in binario 01000001,cioè il carattere ASCII 64 = 'A'
Ecco tutto spero mi puoi aiutare grazie mille te ne sarei veramente grato![]()
![]()
![]()
Grazie![]()
ps ho messo quegli underscore per rendere il tutto + leggibile qua sul forum...
ps2 la matrice deve avere,come da testo, la grandezza 7 infatti lavoriamo con il codice ascii a 7bit
Vediamo..sogni che diventano professione...passioni che diventano vita...Free as in Freedom...
Per quelli in verticale non c'è problema!
In orrizzontale ho certi dubbi...
Vabbè appena ho tempo provo!