Autor
|
Tema: Ayuda [Programa SUPERBÁSICO, aprendiendo] (Leído 6,433 veces)
|
S3kh
Desconectado
Mensajes: 58
|
Simplemente, leyendo un manual, y practicando de todas las maneras que se me ocurren, NO me sale un programa tan básico como este (El objetivo es pedir un nombre, un edad y mostrarlas. si, no tiene sentido, pero es para practicar). La idea es que para mostrarlos, llame a una funcion, y la idea es que lo haga 10 veces xD. En fin, me tira 500mil errores, y no llego a entender dónde me equivoco. Es mi primer programa que hago, asi que es un desastre seguramente, no se suiciden al verlo ni me insulten jaja. #include <iostream.h>
char Nombre[30],RetornoMD; char Edad[2];
void MostrarDatos(char N, int E);
int main() { //Pedir nombre cout << "Ingrese nombre su nombre: " <<endl; cin >>Nombre; cout << "Ingrese su edad: " << endl; cin >> Edad; for (int count = 1; count = 10; count = i++); MostrarDatos(Nombre, Edad); return 0; } void MostrarDatos(char N, char E) { cout << "Su nombre es: " << N << endl; cout << "Usted tiene " << E << " años" << endl; }
Desde ya ES UN DESASTRE, pero es lo que intento. Y otra cosa, si la función es void, no tengo que poner el return, no?xD Tengo 500mil errores, pero bueno n.n espero que un alma generosa me diga algún consejito n.n Gracias de antemano n.n un abrazo. USO DEV-C++
|
|
« Última modificación: 12 Julio 2011, 01:57 am por S3kh »
|
En línea
|
|
|
|
diskontrol
Desconectado
Mensajes: 89
RAWR!
|
Buenas, -No te recomiendo usar variables globales si no es necesario. -La variable RetornoMD no es usada. -En la declaración de la función las variables deben coincidir en tipo con las que le pases luego. -Al usar cout y cin, debes usarlos como std::cout y std::cin, o si te da pereza poner -En el bucle for usas una variable no declarada (e innecesaria) también te recomiendo inicializar los índices a 0. Además si pones ";" tras el bucle for no incluyes ninguna instrucción en el mismo Por lo que tu código quedaría más o menos así: #include <iostream> using namespace std;// void MostrarDatos(char N[], int E); int main() { char Nombre[30]; int Edad; //Pedir nombre cout << "Ingrese nombre su nombre: " <<endl; cin >>Nombre; cout << "Ingrese su edad: " << endl; cin >> Edad; for (int count = 0; count < 10; count++) MostrarDatos(Nombre, Edad); return 0; } void MostrarDatos(char N[], int E) { cout << "Su nombre es: " << N << endl; cout << "Usted tiene " << E << " años" << endl; }
Saludos!
|
|
|
En línea
|
Siempre ten tus cosas cuando las necesites con @Dropbox. ¡Una cuenta de 2 GB es gratis! http://db.tt/YxRhsCI
|
|
|
Khronos14
Desconectado
Mensajes: 443
A lie is a lie
|
Se me adelantó diskontrol, pero bueno #include <iostream> using namespace std; void MostrarDatos(char * Nombre, unsigned int Edad) { cout << "Su nombre es: " << Nombre << endl; cout << "Su edad es: " << Edad << endl; } int main(int argc, char * argv[]) { char Nombre[30]; unsigned int Edad = 0; cout << "Ingrese su nombre: "; cin.get(Nombre, 29); cout << "Ingresa tu edad: "; cin >> Edad; for (int i = 0; i < 10; i++) MostrarDatos(Nombre, Edad); return 0; }
Saludos.
|
|
|
En línea
|
|
|
|
S3kh
Desconectado
Mensajes: 58
|
Ah, gracias a las 2. Este manual que estoy leyendo en ningún momento nombra eso de using namespace std ni nada por el estilo. Con razón no me funcionaba je... Ahora, por lo que voy entendiendo, Diskontrol: Si yo hago el prototipo de una función y su declaración, y en sus parámetros va a recibir una cadena, tengo que poner los [ ] también? Ahora voy a buscar algo de info sobre eso de std::cout, std::cin. Y Khronos14, hay algo en lo que me confundí, según el material que estoy leyendo primero se definen los prototipos de función, y luego de la función main, recién la definición de dichas funciones. Es posible también definirlas sin declarar eso de prototipo? Es decir, yo hasta ahora tenía entendido que primero se declaraba el prototipo, después la función main, y después las funciones ya definidas. Por otro lado, en qué se diferencia poner usigned int a int? Digamos, tengo entendido que eso quiere decir "sin signo", pero, cuál es el fin, en qué afecta? Hay cosas que estoy leyendo en varios manuales, y sigo sin entender la utilidad de signed-unsigned. Je. Luego, "char * Nombre" en los parámetros de MostrarDatos, qué sería exactamente? Digamos, por qué el asterisco? TEngo una idea muy vaga de lo que pueda ser, ahora voy a ver si puedo encontrar algo. Y última duda, argc, char * argv[]... Ahí si que no tengo idea de que es jaja Ahora igual voy a ver si puedo encontrar mas info y demás Pero si me pueden aclarar esas duditas lo agradecería mucho Sobre todo la utilidad y necesidad de Signed-Unsigned. çMuchas gracias a ambos por las respuestas y la ayuda !
|
|
|
En línea
|
|
|
|
Acermax
Desconectado
Mensajes: 55
|
Si, en la declaración tienes que poner [] o en su defecto *. En cuanto llegues a la parte de punteros lo comprenderas... Una cadena no deja de ser un puntero al primer elemento, asi que por eso funciona de ambas maneras. En cuanto a lo de std::cout y tal, para buscar información, pon en google "espacio de nombres c++" o algo así. No es algo complejo ni mucho menos. Respecto al prototipo de la función. Yo prefiero declarar arriba el prototipo como dices, y abajo realizarla, porque así sale todo más ordenado (desde mi punto de vista). La diferencia entre int y unsigned int es eso que dices, que el unsigned no puede tomar valores negativos. Si vas a utilizar una variable que no puede usar valores negartivos (como la edad) está bien utilizarla como unsigned, pero bueno, por costumbre, porque en este caso no importaría demasiado. Básicamente se diferencian en su rango de representación. unsigned int 32 bits 0 a 4,294,967,295 int 32 bits -2,147,483,648 a 2,147,483,647 Como ves el unsigned puede representar exactamente el doble de números positivos. Y respecto al argc y argv[]... Eso se usa para pasarle datos al programa a la hora de ejecutarlo, me intentaré explicar. Cuando ejecutas el programa desde el CMD o desde la consola, lo haces de la siguiente manera miprograma.exe o ./miprograma
Pero imagina que además, a la hora de llamarlo quieres indicarle algo más, como por ejemplo un número (podría ser lo que quieras, 2 ficheros, más números o lo que sea) Entonces aquí entra en funcionamiento el argc y argv. int main (int argc, char* argv[]){ if (argc!=2) return 0; //argc indica el número de parámetros que le hemos //pasado a la hora de ejecutarse, en este caso //necesitamos comprobar que sean 2, pues queremos //leer también el número que le pasamos, si no le //pasamos el segundo parametro cerramos el programa int n=atoi(argv[1]); //Copiamos el número recibido en la variable n. //tenemos que usar atoi, o un cast, porque si no recuerdo mal //, argv devuelve una cadena de caracteres, y tenemos //que convertirlo en un entero.
Recuerda que argv[0] contiene el nombre del programa, por eso empiezo por argv[1]
|
|
|
En línea
|
|
|
|
Khronos14
Desconectado
Mensajes: 443
A lie is a lie
|
Yo el main siempre lo pongo abajo de todo, además no declaro los prototipos de las funciones, prefiero ordenar las funciones según se van llamando, aunque para gustos colores.
Para aprender C++ solo te hace falta dedicación, porque es el lenguaje de programación más documentado de toda la red.
Saludos.
|
|
|
En línea
|
|
|
|
S3kh
Desconectado
Mensajes: 58
|
Genial, ya entendí mucho mejor las cosas. Ya estoy haciendo programitas muy simples. je... Muchas gracias a todos los que respondieron y ayudaron Muchísimas gracias:)
|
|
|
En línea
|
|
|
|
albertini851204
Desconectado
Mensajes: 3
|
holaaaaa mi nombre es aliuska y necesito me ayuden a responder este programa es para una prueba final .
Boleta No. 10 En una cooperativa agrícola de viandas se poseen los datos correspondientes al ciclo productivo terminado en una época del año. Cada uno de los cooperativistas atendió todo el ciclo en la siembra de un solo tipo de viandas la cual podía ser papa, boniato o yuca. Se conoce la cantidad de caballerías sembradas por cada cooperativista y la producción obtenida.
Se conoce la norma de producción que debe rendir una caballería en cada tipo de vianda. Hacer un programa en C++ para: a) Conocer cuál fue el cooperativista que mejor eficiencia obtuvo en cada tipo de cultivo. b) Conocer la producción total de la cooperativa por cada tipo de vianda y la cantidad de cooperativistas cuya producción fue menor que la norma en cada tipo de vianda.
|
|
|
En línea
|
|
|
|
Died
Desconectado
Mensajes: 32
|
Me aburro mucho... Va en C #include <stdio.h> int mostrar (char *nom, int ed*) { return 0; } int main () { char nombre [20]; unsigned int edad; printf ("Introduzca su nombre: "); fgets (nombre , 20, stdin ); printf ("Introduzca su edad: "); mostrar (nombre, edad); printf (" --- done ----\n\n"); return 0; }
$ gcc -o code code.c $ ./code Introduzca su nombre: Sagrini Introduzca su edad: 50
Nombre: Sagrini Edad: 50 --- done ----
$
Un saludo. Sagrini
|
|
|
En línea
|
|
|
|
S3kh
Desconectado
Mensajes: 58
|
Claro, esa es usando stdio y printf. Justo estaba leyendo sobre eso. Je.
Otra dudita, supongamos que yo NO no quiera sumar dos números, si no que quiera trabajar con los números que sean, digamos, si el usuario quiere pasar 25 números, o si quiere pasar 2, como se define la función? Es decir, yo pongo
tipo funcion(param1, param2... etc);
Ahora bien, si yo NO sé cuántos parámetros va a recibir? Cómo sería? O me estoy metiendo en tema mas avanzado?
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Espia de Protocolos Web [aprendiendo a sniffear](descarga Programa)
Programación Visual Basic
|
Tengu
|
1
|
1,742
|
5 Agosto 2007, 19:10 pm
por Tengu
|
|
|
Aprendiendo C: Programa resolver ecuaciones de 2º grado
Programación C/C++
|
raulgombru
|
9
|
12,971
|
18 Septiembre 2010, 17:17 pm
por Lolo_Molo
|
|
|
ayuda, aprendiendo a descifrar cookies
Hacking
|
Belial & Grimoire
|
0
|
2,834
|
19 Febrero 2012, 22:59 pm
por Belial & Grimoire
|
|
|
Aprendiendo SQL Injection ... ayuda please? ^-^
Bugs y Exploits
|
Cha0s_Sasha
|
4
|
4,383
|
10 Mayo 2012, 17:13 pm
por Cha0s_Sasha
|
|
|
Ayuda con alcance de variables, Aprendiendo Java.
Java
|
Darknessfeatsunny
|
3
|
2,288
|
26 Junio 2014, 03:29 am
por gordo23
|
|