Crear un programa!

Tengo que hacer un programa en C++, que haga lo siguiente:
1)Cuando corras el programa te va a preguntar por 10 nombres en forma de lista, los cuales tu vas a escribir tan pronto termines de escribir el décimo nombre. El programa debe de presentar los nombres alrevez o sea si el primer nombre que entraste fue Luis Rivera, debe de aparecer "areviR siuL", O SEA ALREVEZ se debe de usar punteros y arreglos para realizar este programa.
Es la primera vez que uso C++ y no se como crearlo!

2 respuestas

Respuesta
1
Lo que tienes que hacer, es leer de la entrada estándar todos los nombres de las personas. A medida que los vas leyendo, los almacenas en un array. Finalmente, solo tienes que escribirlos al revés.
Para leer los nombres, deberías usar alguna de las siguientes funciones, scanf, getchar.
Los almacenas en un array, un array bidimensional si quieres. char nombres[num_personas][nombre_persona].
Una vez los tengas almacenados, para cada persona almacenada vas recorriendo el array al revés. ¿Cuál es la ultima intentar del array del nombre? Pues lo sabes si usas la instrucción strlen.
¿Fácil no?
Si tienes dudas sobre el lenguaje C, mirate esta página (hay ejemplos):
http://acm.asoc.fi.upm.es/documentacion/c2003/node7.html#SECTION00710000000000000000
¿Cuándo tengas hecho alguna cosa, si sigues con problemas me informas y te doy algo más concreto ok?
Venga.
Amigo yo nunca he trabajado antes con C++.. es mi primera vez!
Esto fue un ejemplo que encontré con ayuda.. y no se si esta bien... en verdad no se casi nada... ni puntero, arrays etc. No se ni donde poner los nombres,, ni si tengo que tener un ejecutable cuando vaya a entregar el trabajo!
char nombres[3];
int i; // Variable para los bucles
// Introducción de nombres (3)
for(i=0;i<3;i++)cin >> nombres;
// Presentación de nombres en pantalla
for(i=2;i>=0;i--) cout << nombres << endl;
Si me puedes modificeste... te lo agradecería!
Contigo haremos una excepción, aquí tienes una solución a tu problema.
// Prac.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main(int argc, char* argv[])
{
char nombres[2][20];
int i,j; // Variable para los bucles
char ch;
// Introducción de nombres (MAX_NOMBRES)
for(j=0;j<2;j++) {
for(i=0; (i < 80) && ((ch = getchar()) != EOF)&& (ch != '\n'); i++ ) nombres[j] = (char)ch;
/* Terminate string with null character: */
nombres[j] = '\0';
}
// Presentación de nombres en pantalla
for(j=0;j<2;j++) {
for(i=strlen(nombres[j])-1;i>=0;i--) printf("%c",nombres[j]);
printf("\n");
}
return 0;
}
El programa salio perfecto... pero tengo duda con lo del ejecutable... como crearlo... me imagino que lo necesito cuando vaya a entregar el programa en el floppy!
¿Cómo lo hago?
¿Cómo sabes que el programa salio perfecto?
Seguramente porque lo ejecutaste!
El compilador te habrá generado un ejecutable en alguna parte... sino no entiendo como supiste que funcionaba.
¿Con qué lo estas compilando?
En principio, tiene que haber una opción que te permite ejecutar el programa, un Run, o un Build all o alguna cosa por el estilo. Eso te generara un ejecutable.
no se, dime el compilador...
Hola amigo!
El compilador es C++ 4.9.8.0
Le di a compilar y ejecutable y salio sin errores y me abrió el ejecutable... pero vacío... que debo hacer ahí...
Otra cosa.. el programa que me enviaste donde dice lo de char nombres.. el numero 20 es una función o la cantidad de nombres...
Y duda que tengo... los nombres como tal... yo los tengo que escribir y si es así en que parte... ya que al correr el programa me va a preguntar por los nombres como me pidió el profesor!
Espero que me entiendas, cualquier otra cosa te digo...
Creo que ya todo esta bien.. le cambie el # a 10.. ya que pidieron esa cantidad.. Lo único que cuando termino de escribir el ultimo nombre la pantalla se va.. y no los puedo ver al revés..
¿Alguna sugerencia?
Cuando ejecutas el programa... basta con que escribas un nombre, pulses enter, luego escribas otro nombre y pulses enter.
Luego te aparecerán los dos nombres al revés.
En el array char nombres[2][20];, el 2 representa el numero de nombres. El 20 el numero de letras para cada nombre.
para que te pregunte el programa por los nombres, basta con que pongas un printf("Escriba los nombres de las personas:");
Y ya esta...
Si, puedes poner al final de todo otro getchar con un mensaje que diga: pulse una tecla.
De esta manera hasta que no pulses la tecla no se terminara el programa.
Bueno Gino, espero que te pongan buena nota... porque vamos... después del trabajo que me has dadooooo... :-P
Respuesta
La verdad es que no veo ni la más mínima necesidad de punteros, con los arreglos a arrays se puede hacer todo el programa pero bueno.
Realmente lo único que tienes que hacer es declarar una array de caracteres y mediante un bucle indicarle al "usuario" que introduzca los diez nombres.
Una vez estén introducidos los nombres y mediante otro bucle mostrar los nombres.
Te pongo un ejemplo:
char nombres[3];
int i; // Variable para los bucles
// Introducción de nombres (3)
for(i=0;i<3;i++)cin >> nombres;
// Presentación de nombres en pantalla
for(i=2;i>=0;i--) cout << nombres << endl;
Y con esto ya estaría hecho el programa.
Intenta tú hacer uso de punteros en algún lugar del programa, si no lo consigues coméntamelo y te echaré una mano.
Bueno..no se mucho de C++...tenia unas dudas..
1-¿Necesito ejecutable al entregar el trabajo?
2-¿Dónde debo escribir los nombre y como?
3-Como son 10.. ¿dónde doy ese valor?
EStoy leyendo haber si comprendo mejor los términos... ya que no los conozco!
Hum, creo que deberías empezar leyendo un curso sobre c++, en cuanto lleves relativamente poco de este curso estudiado ya podrás hacer el ejemplo sin demasiados problemas.
Te paso la dirección de una página donde hay un curso muy bueno.
http://c.conclase.net/
Respecto a las preguntas (1-, 2- y 3-) creo que es mejor que vayas leyendo el curso. Cuando te animes a hacer el programa si tienes más dudas ya sabes donde encontrarme.
Cierra la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas