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

Me dan una mano con este programa?

Estas en el tema de Me dan una mano con este programa? en el foro de C/C++ en Foros del Web. Buenas, hace poco empece a aprender C y C++ y tengo 2 programas que no me andan, aca les dejo las lineas de códigos para ...
  #1 (permalink)  
Antiguo 20/09/2012, 08:21
 
Fecha de Ingreso: septiembre-2012
Mensajes: 2
Antigüedad: 11 años, 6 meses
Puntos: 2
Pregunta Me dan una mano con este programa?

Buenas, hace poco empece a aprender C y C++ y tengo 2 programas que no me andan, aca les dejo las lineas de códigos para ver si me pueden ayudar a resolverlo...

1)

#include <STDLIB.H>
main() {
int i = 0;
char far * pant = (char far*) 0xB8000000;
for (i = 0; i < 2000; i++) {
pant [ i * 2] = i;
pant [i * 2 + 1] = 7;
}
system ("pause>nul");
return 0;
}

2)

#include <STDLIB.H>
main() {
int i = 0 , j;
struct P {char ASCII, attr;};
struct P for * P1 = (struct P for*) 0xB8000000;
struct P aux;
for (i = 0 ; i < 1999; i++) {
for ( j = i+1 ; j < 2000 ; j++) {
if ( P1[i].ASCII > P1[j].ASCII)
aux.ASCII = P1[i].ASCII; aux.attr = P1[i].attr;
P1[i].ASCII = P1[j].ASCII; P1[i].attr = P1[j].attr;
P1[j].ASCII = aux.ASCII; P1[j].attr = aux.attr;
}
}
system ("pause>nul");
return 0;
}




MUCAHS GRACIASSSSS

PD: uso el DEVCPP
  #2 (permalink)  
Antiguo 21/09/2012, 01:49
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 9 meses
Puntos: 73
Respuesta: Me dan una mano con este programa?

Errores aparte, estos programas no deberían funcionar en Windows. Lo digo por lo siguiente:

El atributo far aplicado a los punteros que has declarado era específico para los modos de direccionamiento de memoria que había en MS-DOS. Algo ya completamente obsoleto, no creo ni que exista en los compiladores actuales.

La dirección 0xB8000000 correspondía, si mal no recuerdo, a la memoria de video en los sistemas MS-DOS. Con los sistemas operativos actuales no se permite (en principio) el acceso directo a los recursos del sistema (como la memoria de video, por ejemplo), hay que hacerlo a través de los servicios proporcionados por el sistema operativo.

Sobre lo que hacen los programas, me parece que el primero colocaría una serie de valores y atributos en la pantalla, y el segundo haría una ordenación de lo que hay en la pantalla.

También sería conveniente que, además del código, posteases los errores que te tira el compilador.

Saludos,
  #3 (permalink)  
Antiguo 22/09/2012, 20:39
 
Fecha de Ingreso: agosto-2012
Mensajes: 94
Antigüedad: 11 años, 7 meses
Puntos: 7
Respuesta: Me dan una mano con este programa?

Cuando lei el codigo quede un poco /* con cara de tonto*/puesto que no conocia nada de ese sistema. Asi se hacia antes? Vaya lio.
  #4 (permalink)  
Antiguo 23/09/2012, 19:07
 
Fecha de Ingreso: septiembre-2012
Mensajes: 2
Antigüedad: 11 años, 6 meses
Puntos: 2
Respuesta: Me dan una mano con este programa?

Cita:
Iniciado por Fw190 Ver Mensaje
Errores aparte, estos programas no deberían funcionar en Windows. Lo digo por lo siguiente:

El atributo far aplicado a los punteros que has declarado era específico para los modos de direccionamiento de memoria que había en MS-DOS. Algo ya completamente obsoleto, no creo ni que exista en los compiladores actuales.

La dirección 0xB8000000 correspondía, si mal no recuerdo, a la memoria de video en los sistemas MS-DOS. Con los sistemas operativos actuales no se permite (en principio) el acceso directo a los recursos del sistema (como la memoria de video, por ejemplo), hay que hacerlo a través de los servicios proporcionados por el sistema operativo.

Sobre lo que hacen los programas, me parece que el primero colocaría una serie de valores y atributos en la pantalla, y el segundo haría una ordenación de lo que hay en la pantalla.


También sería conveniente que, además del código, posteases los errores que te tira el compilador.

Saludos,



Si gracias, es una dirección de memoria obsoleta, que es de MS-DOS... Fue un ejercicio que nos había dado el profesor que luego nos explico lo mismo que me acabas de explicar vos, igual te agradezco la respuesta...
Eso si, tengo un favor mas, como dije hace poco que estoy empezando con esto, quería saber si me podrías decir como resolver este enunciado (perdón si es muy tonto):

"Realizar un programa que solicite un valor numérico de tipo entero decimal por pantalla y muestre su representación binaria"


Desde ya muchas gracias!!!
  #5 (permalink)  
Antiguo 26/09/2012, 05:28
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 9 meses
Puntos: 73
Respuesta: Me dan una mano con este programa?

Como todo programa, requiere dos cosas:

1. Saber cómo resolver el problema, es decir, cómo resolverías el problema si solamente dispusieras de lápiz y papel.

2. Una vez que sabes cómo resolver el problema, proceder a escribir el programa que te lo haga.

Tu programa tendría tres partes:

1. Pedir el número entero.
2. Pasarlo a binario (esto es lo que deberías saber resolver con lápiz y papel).
3. Mostrar el resultado.

En tu caso, para pedir el número y mostrar resultados, aprende cómo trabajan las funciones printf y scanf, o cin y cout (depende de si vas a trabajar en C o en C++).

Para pasar un número a binario, simplemente lo vas dividiendo por dos hasta que ya no puedas continuar. El número binario será el último cociente (que siempre será 1), seguido de todos los restos de las divisiones, en orden inverso al de su obtención.

A partir de aquí te toca buscarte la vida, nadie te va a hacer la tarea. Si necesitas más ayuda, postea tu código e indica qué errores te tira el compilador, ahí sí que habrá mucha gente dispuesta a echar una mano.

Saludos,

Etiquetas: int, mano, programa
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:47.