Rechercher : dans
Par :

[c++] remplir un tableau de bool pae cin

howto, le 25 déc 2007 à 01:10:04 
 Signaler ce message aux modérateurs

Bonjour,
je veux faire un programme qui gere un tableau de bool (c'est comme un registre). il additionne (ORlogique) ou multiplie (AND logique) les "bits" du registre un par un. j'ai pu (normalement) developper tous les methodes sauf que j'ai pas su comme remplir les registre par clavier ou outres directement dans le main...

voila mon header.h

#include<iostream.h>

class registre
{
bool *tab ;
int taille ;
public :
	registre(int n=8):taille(n) {}
	registre(const registre & r)
	{
	taille=r.taille;
	tab=new bool[taille];
		for (int i=0 ; i<taille ;i++)
			tab[i]=r.tab[i];
	}
//	~registre(){delete[]tab;} ;
registre  operator*  (registre) ;
registre  operator+  (registre) ;
registre  operator<  (int) ;
registre  operator>  (int) ;
void affich () ;
void remplir () ;
} ;


mon registre.cpp

#include "header.h"
#include <string.h>

registre registre :: operator* (registre r)
{	
	

	if (taille > r.taille)
	{
		registre r1(taille);

		for (int i=taille;i>r.taille;i--)
		{
			r1.tab[i] = tab[i] & 0;
		}

		for (int j=r.taille;j>0;j--)
		{
			r1.tab[j] = tab[j] & r.tab[j];
		}
		return r1;
	}
	
	
	else 
	{
		registre r2(r.taille);

		for (int i=r.taille;i>taille;i--)
		{
			r2.tab[i] = r.tab[i] & 0;
		}

		for (int j=taille;j>0;j--)
		{
			r2.tab[j] = tab[j] & r.tab[j];
		}
		return r2;
	}

}

registre registre :: operator+ (registre r)
{
	

	if (taille > r.taille)
	{
		registre r1(taille);

		for (int i=taille;i>r.taille;i--)
		{
			r1.tab[i] = tab[i] | 0;
		}

		for (int j=r.taille;j>0;j--)
		{
			r1.tab[j] = tab[j] | r.tab[j];
		}
		return r1;
	}
	
	
	else 
	{
		registre r2(r.taille);

		for (int i=r.taille;i>taille;i--)
		{
			r2.tab[i] = r.tab[i] | 0;
		}

		for (int j=taille;j>0;j--)
		{
			r2.tab[j] = tab[j] | r.tab[j];
		}
		return r2;
	}

}

registre registre ::operator< (int n)
{
	for (int i=taille ; i<n ;i++)
	{
		for (int j=0 ; j< taille ; j++)
		{
			tab[j] = tab[j+1];
		}
		tab [taille] = 0;
	}
	return *this;
}

registre registre ::operator> (int n)
{
	for (int i=0 ; i<n ;i++)
	{
		for (int j=taille ; j< 0 ; j++)
		{
			tab[j+1] = tab[j];
		}
		tab [0] = 0;
		}
	return *this;
}

void registre ::affich()  // je pense que c'est comme ça , je suis pas sur !!
{
	for (int i=0;i<taille;i++)
	{
		
		if (tab[i]==true)
			cout << "1";
		else
			cout << "0";
	}
}

void registre ::remplir() // je pense que c'est comme ça , je suis pas sur !!
{int a;
	for (int i=0;i<taille;i++)
	{
		cin >> a;
		if (a==0)
			tab[i]=false;
		else 
			tab[i]=true;
	}

}


mon main pas terminer

#include "header.h"
#include <string.h>

void main() 
{
registre r2(15);
registre r1= // ici comment on peut remplir l'objet directement ?
r1.affich();

}


dans bcp des cas (j'ai essaye plusieur truc) je recois pas de erreurs de compliation mais le programme s'arrete et je recoit la fameuse ne pas envoyé de microsoft...

merci.
Configuration: Windows XP
Firefox 2.0.0.11

Meilleures réponses pour « [c++] remplir un tableau de bool pae cin » dans :
Les structures en langage C VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
Les classes en langage C++ VoirLa notion d'objet Le langage C est un langage procédural, c'est-à-dire que c'est un langage permettant de définir des données grâce à des variables, et des traitements grâce aux fonctions. L'apport principal du langage C++ par rapport au...