Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Kurosaki12

#1
Programación C/C++ / Re: Ayuda en dev c++
29 Mayo 2010, 02:25 AM
A lo que me refiero es que cuando ingreso una fracción impropia por ejemplo 13/5 el programa la convierte a fracción mixta y no hay ningún problema pero cuando ingreso una fracción que no es impropia por ejemplo 1/2 el programa me indica que no es impropia pero se traba y no me aparece el mensaje de "oprima cualquier tecla para continuar...." para cerrar el programa.
#2
Programación C/C++ / Ayuda en dev c++
28 Mayo 2010, 05:15 AM
Ayuda con el siguiente programa, lo que debe de hacer es que al ingresar una fraccion este determine si es fraccion impropia y transformarla en fraccion mixta y reducirla a su minima expresion y en el caso contrario de no ser fraccion impropia solo redusca la fraccion, el problema es que al introducir una fraccion que no es  impropia el programa se comporta algo extraño.

Nesecito ayuda porfavor!!!!!!!!!  :xD :xD :xD :xD :xD :xD

Código (cpp) [Seleccionar]


#include <iostream>
#include <stdlib.h>

float reduce(int *, int * );

using namespace std;

int main(){
   
    int num, den;
    int mix;
    float resultado;
   
   
    cout << "Ingresa el numerador: " ,cin >> num;
    cout << endl;
    cout << "Ingresa el denominador: " ,cin >> den;
    cout << endl;
   
    if(num>den){
    cout << "La fraccion " << num << "/" << den << " es impropia." << endl;
    mix=num/den;
   
    if(num % den ==0)
    {       
    cout << "La fraccion mixta es: " << mix ;
    cout << endl;}
   
    else 
    if(num%den>0){
    cout << "La fraccion mixta es: " << mix << " " << num%den << "/" << den;
    cout << endl;
    }
   
    }
   
    else
    if(num<den){
    cout << "La fraccion "<< num << "/" << den << " no es impropoia por lo tanto no se puede convertir a fraccion mixta";
    cout << endl;
   
    }
   
    if(num<den){
    resultado=reduce(&num, &den);
    cout << num << "/" << den << "= " << resultado << endl;}
   
   
    if(num>den){
    resultado=reduce(&num, &den);
    cout << mix << " " << num%den << "/" << den << "= " << resultado << endl;}             
   
   
   
   
   
    system("pause");
    return 0;
   
}

float reduce (int * nume, int * deno)
{    int multi=9;
// ------------ busca comun denominador -----------
     while  (multi != 1)
     {   multi=9;
         while (*nume%multi != 0 || *deno%multi != 0)
              multi--;

         *nume=*nume/multi;
         *deno=*deno/multi;
     }
// ---- busca simplificar en caso de ser primos ---
     while (*nume%*deno==0 || *deno%*nume==0){
         if  (*nume%*deno==0)
         {   *nume/= *deno;
             *deno %= *nume;
         }
         else
             if (*deno%*nume==0)
             {  *deno /= *nume;
                *nume %= *deno;
             }
     }
             
     return *nume/float(*deno);
}

#3

Si pongo automaticamente la opcion (op) en 1 (o en cualquier otro) si me permite ingresar caracteres con espacios ("%[^\n]"), en pocas palabras al hacer la pregunta de cual registro se desea modificar es cuando surgen los problemas. Pero no lo he resuelto ¿como plantear la pregunta adecuadamente?.



Código (cpp) [Seleccionar]

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
int main() {
   
    char nombre[5][50];
    int r, c, pre;
    int op;
   
    for (r=0; r<=4; r++)
    for (c=0; c<=0; c++)
         nombre[r][c]='0';
         
    nombre[0][1]='\0';
    nombre[1][1]='\0';
    nombre[2][1]='\0';
    nombre[3][1]='\0';
    nombre[4][1]='\0';
         
    do{
   
    cout << endl << "Registros disponibles: ";
   
    for (r=0; r<=4; r++)
    if(nombre[r][0]=='0')
    printf("%i ", r+1);
   
    if (nombre[0][0]!='0' && nombre[1][0]!='0' && nombre[2][0]!='0' && nombre[3][0]!='0' && nombre[4][0]!='0' )
    printf("Ninguno");
    else
    cout << endl;
   
    op=1;




switch (op){
           case 1:
                if (nombre[0][0]=='0')
                {printf("Teclea el nombre a ingresar: ");
                scanf("%[^\n]", nombre[0]);}                               
                else
                cout << "Registro ya ocupado por: " <<  nombre[0];
                break;
           case 2:
                if (nombre[1][0]=='0')
                {printf("Teclea el nombre a ingresar: ");
                scanf("%[^\n]", nombre[1]);}
                else
                cout << "Registro ya ocupado por: " <<  nombre[1];
                break;
           case 3:
                if (nombre[2][0]=='0')
                {printf("Teclea el nombre a ingresar: ");
                scanf("%[^\n]", nombre[2]);}
                else
                cout << "Registro ya ocupado por: " <<  nombre[2];
                break;
           case 4:
                if (nombre[3][0]=='0')
                {printf("Teclea el nombre a ingresar: ");
                scanf("%[^\n]", nombre[3]);}
                else
                cout << "Registro ya ocupado por: " <<  nombre[3];
                break;
           case 5:
                if (nombre[4][0]=='0')
                {printf("Teclea el nombre a ingresar: ");
                scanf("%[^\n]", nombre[4]);}
                else
                cout << "Registro ya ocupado por: " <<  nombre[4];
                break;
           default: cout<< "Has ingresado un dato erroneo\n";}
           cout << endl;
           cout << "Desea modificar otro registro?\nSi(1)\nNo(0)", cin >> pre;
           
}while (pre==1);
       cout << endl << "Los registros quedaron de la siguiente manera: " << endl;
       cout << "Registro 1: " << nombre[0] << endl;
       cout << "Registro 2: " << nombre[1] << endl;
       cout << "Registro 3: " << nombre[2] << endl;
       cout << "Registro 4: " << nombre[3] << endl;
       cout << "Registro 5: " << nombre[4] << endl;
    cout << endl;
    cout << endl;
    system("pause");
    return 0;
}


#4
Programación C/C++ / Re: Ayuda (DEV C++)
4 Mayo 2010, 22:52 PM
No me saleeeeeeeee  :-( :-( :-( :-( :-(

Ya intente eso del fgets y el cin.getline pero aun asi no sale.

alguien que me explique.
#5
ya intente usar gets pero me marca error en el programa
#6
Nesecito que alguien me ayude con este programa, no se como hacer para que al ingresar el nombre al registro me acepte espacios.

porfavor alguien que me ayude.

gracias


#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main() {
   
    char nombre[5][50];
    int r, c, op;
    char opc;
    for (r=0; r<=4; r++)
    for (c=0; c<=49; c++)
         nombre[r][c]=' ';
 
 
   
    cout << "Registros disponibles: ";
   
    for (r=0; r<=4; r++)
    if(nombre[r][0]==' ')
    printf("%i ", r+1);
   
    if (nombre[0][0]!=' ' && nombre[1][0]!=' ' && nombre[2][0]!=' ' && nombre[3][0]!=' ' && nombre[4][0]!=' ' )
    printf("Ninguno");
    else
    cout << endl;
   
     do{
   
    printf("Que registro desea editar (1 - 5): ");
    scanf("%i", &op);

    switch (op){

           case 1:
                if (nombre[0][0]==' ')
                {printf("Teclea el nombre a ingresar: ");
                scanf("%s", nombre[0]);}
                else
                printf("Registro ya ocupado por: %s \n", nombre[0]);
                break;

           case 2:
                if (nombre[2][0]!=' ')
                printf("Registro ya ocupado por: %s \n", nombre[1]);
                else
                printf("Teclea el nombre a ingresar: "), scanf("%s", nombre[1]);
                break;

           case 3:
                if (nombre[3][0]!=' ')
                printf("Registro ya ocupado por: %s \n", nombre[2]);
                else
                printf("Teclea el nombre a ingresar: "), scanf("%s", nombre[2]);
                break;

           case 4:
                if (nombre[3][0]!=' ')
                printf("Registro ya ocupado por: %s \n", nombre[3]);
                else
                printf("Teclea el nombre a ingresar: "), scanf("%s", nombre[3]);
                break;

           case 5:
                if (nombre[4][0]!=' ')
                printf("Registro ya ocupado por: %s \n", nombre[4]);
                else
                printf("Teclea el nombre a ingresar: "), scanf("%s", nombre[4]);
                break;
                default: cout<< "Has ingresado un dato erroneo\n";
}

cout << endl << "Deceas ingresar otro registro (S=Si,N=No):", cin >> opc;

} while(opc=='S' || opc=='s');

    cout << endl;
    cout << endl;
    cout << opc;
    system("pause");
    return 0;
}
#7
Programación C/C++ / Re: Ayuda (DEV C++)
4 Mayo 2010, 21:30 PM
Como puedo hacerle para que al ingresar el nombre en el registro me permita ingresar espacios???????????
#8
Programación C/C++ / Re: Ayuda (DEV C++)
4 Mayo 2010, 21:15 PM
Gracias :o :o :o :o :o
#9
Programación C/C++ / Ayuda (DEV C++)
4 Mayo 2010, 20:44 PM
Alguien que me diga que esta mal con el siguiente programa no puedo ingresar el nombre en el registro.


#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main() {
   
    char nombre[5][50];
    int r, c, op;
   
    for (r=0; r<=4; r++)
    for (c=0; c<=49; c++)
         nombre[r][c]=' ';
   
    cout << "Registros disponibles: ";
   
    for (r=0; r<=4; r++)
    if(nombre[r][0]==' ')
    printf("%i ", r+1);
   
    if (nombre[0][0]!=' ' && nombre[1][0]!=' ' && nombre[2][0]!=' ' && nombre[3][0]!=' ' && nombre[4][0]!=' ' )
    printf("Ninguno");
    else
    cout << endl;
   
    printf("Que registro desea editar (1 - 5): ");
    scanf("%i", &op);
    switch (op){
           case 1:
                if (nombre[0][0]==' ')
                {printf("Teclea el nombre a ingresar: ");
                scanf("%[^\n]", nombre[0]);}
                else
                printf("Registro ya ocupado por: %s \n", nombre[0]);
                break;
           case 2:
                if (nombre[2][0]!=' ')
                printf("Registro ya ocupado por: %s \n", nombre[1]);
                else
                printf("Teclea el nombre a ingresar: "), scanf("%[^\n]", nombre[1]);
                break;
           case 3:
                if (nombre[3][0]!=' ')
                printf("Registro ya ocupado por: %s \n", nombre[2]);
                else
                printf("Teclea el nombre a ingresar: "), scanf("%[^\n]", nombre[2]);
                break;
           case 4:
                if (nombre[3][0]!=' ')
                printf("Registro ya ocupado por: %s \n", nombre[3]);
                else
                printf("Teclea el nombre a ingresar: "), scanf("%[^\n]", nombre[3]);
                break;
           case 5:
                if (nombre[4][0]!=' ')
                printf("Registro ya ocupado por: %s \n", nombre[4]);
                else
                printf("Teclea el nombre a ingresar: "), scanf("%[^\n]", nombre[4]);
                break;
           default: cout<< "Has ingresado un dato erroneo\n";
}
    cout << endl;
    cout << endl;
    system("pause");
    return 0;
}
#10
Alguien que me pudiera explicar como realizar lo siguiente:

El programa que debo hacer me pide que ingrese 5 nombres, para esto debo crear un menu que me pregunte cual registro deseo ingresar y al ingresar el numero de registro el programa me indique si esta libre o ya existe un nombre en ese registro de lo contrario me imprima que el registro ya esta ocupado por un nombre y me diga si quiero ingresar otro nombre en otro registro.

En el siguiente programa ya pude ingresar los 5 registros pero no se como hacer lo anteror.



#include <iostream>
#include <stdlib.h>

using namespace std;

int main(){
    char nombres[5][50]={};
    int nom;
    int R,registro;
   
   
   
   
   
    for (registro=0; registro<=4; registro++){
         cout << "registro" << registro+1 << "=" << nombres[registro] << endl;
         }
 
 
 
   
    for(R=0; R<=5; R++)
    nombres[R];
   
       
   
    for(registro=0; registro<=0; registro++)
    for(nom=0; nom<=4; nom++){
               cout << "Ingresa el nombre " << registro+1 << "del registro" << nom+1 << ": ";
               
         
               
    cin >> nombres[registro];
    if (nom < 4); 
   
}

 
    system("pause");
   
    return 0;
}