Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Dudas con la RAM y los código ASCII

Estas en el tema de Dudas con la RAM y los código ASCII en el foro de C/C++ en Foros del Web. Un gran saludo a todos De antemano les aclaro nuevamente que soy un autodidacta y un recién iniciado en C++ por lo tanto lo que ...
  #1 (permalink)  
Antiguo 13/05/2008, 20:00
RoDaVi
Invitado
 
Mensajes: n/a
Puntos:
Dudas con la RAM y los código ASCII

Un gran saludo a todos
De antemano les aclaro nuevamente que soy un autodidacta y un
recién iniciado en C++ por lo tanto lo que expongo como teoría
sobre la RAM y los código ASCII puede estar errados, por ello
recurro a vuestro conocimiento para disipar mis dudas.-
El código que les dejo a continuación lo estoy haciendo para
ordenar de forma alfabética los 5 productos ingresados, por
supuesto qué le falta muchos complemento, pero a los efectos
de aclarar mi duda por el momento es suficiente.-
Yo tengo entendido qué al ingresar por ej. "sal",en la RAM quedara
escrito "11597108" y si luego ingreso "sol" en la RAM aparecerá
"115111108" de allí deduzco qué si pongo sal > sol el compilador
me dirá que no.-
dos preguntas:
1): estoy en lo cierto o estoy delirando.-
2): Si esto fuera así, como puedo hacer para imprimir en pantalla
el ASCII de los productos ingresados....?

Código:
#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])
{
     string ordenar[6];
     cout << endl;
     cout << "------------- Alta de productos -------------" << endl;
     cout << endl;
     cout << " Ingrese producto.:";
     getline(cin,ordenar[0]);
     cout << " Ingrese producto.:";
     getline(cin,ordenar[1]);
     cout << " Ingrese producto.:";
     getline(cin,ordenar[2]);
     cout << " Ingrese producto.:";
     getline(cin,ordenar[3]);
     cout << " Ingrese producto.:";
     getline(cin,ordenar[4]);
     int orden = 0,orduno = 0,orddos = 1;

     for (int salir=0; salir<11; salir++)
     {
         orden = ordenar[orduno].compare(ordenar[orddos]);
         if (orden > 0)
            ordenar[orduno].swap(ordenar[orddos]);
         orduno++,orddos++;
         if(salir == 4 || salir == 7 || salir == 9)
             orduno = 0, orddos = 1;
     }       

     cout << endl;
     cout << " Productos ordenados" << endl;
     for (int fin=0; fin <6; fin++) cout << " " << ordenar[fin] << endl; 

     system("pause");
     return EXIT_SUCCESS;
}
Desde ya muchas gracias por el tiempo que deseen dedicarles a este post.-

Un gran abrazo para todos
Daniel
  #2 (permalink)  
Antiguo 14/05/2008, 12:41
Avatar de Mephisto  
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 18 años, 4 meses
Puntos: 3
Re: Dudas con la RAM y los código ASCII

Que tal Daniel,

Me tomo el atrevimiento tambien de realizarte algunos consejos que espero te sirvan

Código:
     cout << " Ingrese producto.:";
     getline(cin,ordenar[0]);
     cout << " Ingrese producto.:";
     getline(cin,ordenar[1]);
     cout << " Ingrese producto.:";
     getline(cin,ordenar[2]);
     cout << " Ingrese producto.:";
     getline(cin,ordenar[3]);
     cout << " Ingrese producto.:";
     getline(cin,ordenar[4]);
Esto de aca arriba lo puedes simplificar empleando un for y cambiando tu indice del arreglo para que no tengas que repetir las lineas de codigo...

Código:
for(int i=0;i<6;i++){
     cout << " Ingrese producto  "<<i<<":";
     getline(cin,ordenar[i]);
}
Para el caso del ordenamiento que deseas realizar no es necesario llegar a nivel ASCII, checa la funcion strcmp de la libreria string.

Código:
    for (int salir=0; salir<11; salir++)
     {
         orden = ordenar[orduno].compare(ordenar[orddos]);
         if (orden > 0)
            ordenar[orduno].swap(ordenar[orddos]);
         orduno++,orddos++;
         if(salir == 4 || salir == 7 || salir == 9)
             orduno = 0, orddos = 1;
     }
Otro consejo es que busques en internet los algoritmos de ordenamiento, encontraras maneras en las cuales optimizas tus ordenamientos sobre todo para cuando la cantidad de registros es grande...
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
  #3 (permalink)  
Antiguo 14/05/2008, 12:45
Avatar de Mephisto  
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 18 años, 4 meses
Puntos: 3
Re: Dudas con la RAM y los código ASCII

De todas maneras, aclarando tu duda del ASCII, efectivamente cuando almacenas sal en la RAM se almacena 115 97 108, pero en tres direcciones de memoria diferente

0001h 115
0002h 97
0003h 108

Por lo que no se toma como un solo numero, las funciones de comparacion de cadena realizan el proceso necesario para indicarte la relacion entre ambas...
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
  #4 (permalink)  
Antiguo 14/05/2008, 13:22
RoDaVi
Invitado
 
Mensajes: n/a
Puntos:
Re: Dudas con la RAM y los código ASCII

Hola Mephisto
Muchisimas gracias por tu pronta respuesta, en cuanto al bucle for perfecto ya tengo algo mas aprendido, con respecto a la función strcmp() ya mismo me pongo a investigar y muchas gracias por la aclaración en cuanto a la RAM.-
Evidentemente esto de ser autodidacta y no tener alguien cercano para consultar se hace cuestas arriba, pero bueno mientras existan gente como vos con buena predisposición seguiré adelante.-

Un gran abrazo
Daniel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:08.