C/Visual C - utilizacion de matrices

 
Vista:

utilizacion de matrices

Publicado por Kathysin V: (3 intervenciones) el 18/03/2001 14:18:51
Tengo que resolver este problema y no me han enseñado mucho sobre caracteres y en internet y libros no he podido encontrar mucho, seria de gran ayuda si alguien me diera un consejo para mi programa gracias yo coloque los dos arreglos tipo
char y me imprime todos los paises con sus capitales pero no puedo comparar bien lo que guardo en consulta con mi arreglo de paises.

Utilizando

PAIS CAPITAL

CANADA OTAWA
INGLATERRA LONDRES
FRANCIA PARIS
ISRAEL JERUSALEN
ITALIA ROMA
JAPON TOKIO
MEXICO MEXICO
PANAMA PANAMA
USA WASHINGTON
URSS MOSCU

hacer un programa que acepte como a un pais entrada y escriba su correspondiente capital. Diseñe el programa de modo que se ejecute repetidamente el proceso hasta que se introduzca al palabra FIN:
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:utilizacion de matrices

Publicado por Huca (15 intervenciones) el 18/03/2001 20:44:27
No se muy bien a que te refieres con eso de comparar, si se trata de la finalización del bucle solo tienes que usar la funcion strcmp, para que te hagas una idea te pongo tu ejercicio hecho con una tabla de registros:

#include <stdio.h>
#include <string.h>

typedef struct
{
char pais[20];
char capital[10];
} paises;

void main(void)
{
paises tabla[10];
int i=0;
while (strcmp(tabla[i-1].pais,"FIN")!=0)
{
printf("\nIntroduzca el pais: "); gets(tabla[i].pais);
printf("\nIntroduzca la capital: "); gets(tabla[i].capital);
i++;
}

Un saludo, (espero que te sirva).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:utilizacion de matrices

Publicado por Germán B. (143 intervenciones) el 18/03/2001 22:17:23
Me parece que no entendiste bien el problema; la idea era que el programa contenga esa tabla y el usuario consulte capitales ingresando nombres de países, y el FIN indicaría que el usuario desea finalizar las consultas.
Fijate también que estás asignando 0 a 'i' e inmediatamente después accediendo a tabla[i-1], cosa no recomendable por ser impredecible el contenido de posiciones negativas.

Acá aporto mi código para el problema. Me tomé el atrevimiento de reemplazar URSS por Rusia (¡ese problema debe tener sus años!). Nota: en las llamadas a strcmp() no estoy comparando el resultado con nada porque el resultado mismo puede ser entendido como Verdadero (strings distintos) o Falso (strings iguales).
Saludos
Germán

#include <stdio.h>
#include <string.h>

typedef struct
{
char pais[20];
char capital[15];
} paises;

void main(void)
{
paises tabla[10]={
{ "CANADA", "OTAWA" },
{ "INGLATERRA", "LONDRES" },
{ "FRANCIA", "PARIS" },
{ "ISRAEL", "JERUSALEN" },
{ "ITALIA", "ROMA" },
{ "JAPON", "TOKIO" },
{ "MEXICO", "MEXICO" },
{ "PANAMA", "PANAMA" },
{ "USA", "WASHINGTON" },
{ "RUSIA", "MOSCU"}
};
char entrada[20];
int i;

printf("\nIntroduzca el pais: "); gets(entrada);
while(strcmp(entrada,"FIN")) {

for(i=0;i<10 && strcmp(entrada,tabla[i].pais);i%2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:utilizacion de matrices

Publicado por Endos (143 intervenciones) el 18/03/2001 22:15:12
Es muy sencillo. Fijate en este codigo:

#include <stdio.h>
#include <string.h>

#define NUMERO_PAISES 10

int main(void)
{
int bucle, Encontrado=0;
char EntradaUsuario[40];
char *Paises[]=
{
"CANADA","INGLATERRA","FRANCIA","ISRAEL","ITALIA",
"JAPON","MEXICO","PANAMA","USA","URSS"
};
char *Capitales[]=
{
"OTAWA","LONDRES","PARIS","JERUSALEN","ROMA",
"TOKIO","MEXICO","PANAMA","WASHINGTON","MOSCU"
};

while(strcmpi(EntradaUsuario,"FIN")) // Hasta que se entre 'fin'
{
printf("Introduzca Pais (FIN para terminar) :"); // Preguntar el pais
scanf("%s",EntradaUsuario);

for(bucle=0; bucle<NUMERO_PAISES; bucle++) // Buscarlo en el arreglo de paises
if(strcmpi(EntradaUsuario,Paises[bucle])==0)
{
printf("\nCapital de %s : %s\n\n",EntradaUsuario,Capitales[bucle]);
Encontrado=1; // Para evitar mostrar el mensaje de no encontrado
break; // Salir del bucle for
}
if(Encontrado==0)
printf("\nNo se pudo encontrar la capital de %s\n\n",EntradaUsuario);

Encontrado=0; // Resetar variable
}
}

Saludos,
Endos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

OPINION======================

Publicado por Javier (54 intervenciones) el 19/03/2001 19:27:21
Una vez que se ingresa el string para el pais,es aconsejable que realice el proceso siguiente( o sea la busqueda, condicion simple, etc)si el usuario ingresa FIN???? Propuesta:

for (;;)
{
printf("Introduzca Pais (FIN para terminar) :"); // Preguntar el pais
scanf("%s",EntradaUsuario);
if (strcmp(EntradaUsuario,"FIN")
break;
:
//PROCESO.
}
Saludos
Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:OPINION======================

Publicado por Endos (143 intervenciones) el 20/03/2001 19:09:47
En este caso es irrelevante porque el listado es muy corto.
Aunque es un buen apunte.

Otra forma de hacer lo mismo:

while(printf("Introduzca Pais (FIN para terminar) :"), scanf("%s",EntradaUsuario), strcmpi(EntradaUsuario,"FIN"))
{
// Resto de codigo
...
}

Saludos,
Endos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

SIGO OPINANDO=========

Publicado por Javier Albo (54 intervenciones) el 20/03/2001 19:29:26
Considero,sin ofender, que las buenas costumbres son para todos los casos, sean o no irrelevantes. Tirar un papelito al suelo no es como derramar petroleo, pero...
Gracias por creer que es un buen apunte.
Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SIGO OPINANDO=========

Publicado por Endos (143 intervenciones) el 20/03/2001 19:38:31
En eso te doy la razon. Las buenas formas son las buenas formas.

Saludos,
Endos.

P.D. Procurare ser mas meticuloso ;O)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

VUELVO A OPINAR=========

Publicado por javier (54 intervenciones) el 20/03/2001 21:42:15
Espero equivocarme, pero con eso de "Procurare ser mas meticuloso", no te estarás riendo de mi, verdad?

Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VUELVO A OPINAR=========

Publicado por Endos (143 intervenciones) el 20/03/2001 22:33:47
Para nada. No se que significado tendra 'meticuloso' en Argentina; aquí en España significa 'tener cuidado con los pequeños detalles'.

Saludos y no seas tan mal pensado,
Endos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

OTRA VEZ YO =============

Publicado por JAvier Albo (54 intervenciones) el 22/03/2001 06:32:04
Por aqui tambien significa lo mismo. Lo que pasa es que a veces el contexto te inclina a pensar mal y bueno como el programa no es "gran cosa", por ahi lo de "meticuloso" sonaba a "cargada".
Ok, nos vemos.
Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:utilizacion de matrices MILLLL GRACIASSSS!!!!=)

Publicado por kathysin Vizcaino (3 intervenciones) el 19/03/2001 02:53:56
GRACIASSSSS POR LA AYUDAAA ESTA PAGINA ES LO MAXIMOO!!!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar