1) Invocando la función con el nombre del tipo creado como struct. La función invocada recibe la dirección de la estructura y usa un alias para referirse a ella.
2) Invocando la función con el nombre del tipo creado como struct. La función invocada recibe como parámetro un dato del tipo creado como struct.
Pasar estructuras a funciones es muy parecido a pasar un arreglo.
En el siguiente ejemplo se usan los dos casos mencionados.
#include <iostream> using namespace::std; struct Datos { // Estos datos no se pueden // inicializar int anio; int mes; int dia; }; // Prototipos de funcion void Recibe( Datos &s); void Imprime1( Datos &t); void Imprime2( Datos Nacimiento); ///////////////////////////////////////////////////////////// // MAIN ///////////////////////////////////////////////////////////// int main() { // Abre main // Declaracion de Elisa como tipo Datos Datos Elisa; // Se reciben los datos de Elisa mediante la funcion Recibe Recibe(Elisa); // Se imprimen los datos de Elisa desde la funcion Imprime1 cout <<"\nLa fecha de nacimiento de Elisa desde Imprime1: "<<endl; Imprime1(Elisa); // Se imprimen los datos de Elisa desde la funcion Imprime2 cout <<"\nLa fecha de nacimiento de Elisa desde Imprime2:" <<endl; Imprime2(Elisa); // Se imprimen los datos de Elisa desde main cout <<"\nLa fecha de nacimiento de Elisa desde main." <<endl; cout <<Elisa.dia<<"/" <<Elisa.mes<< "/" << Elisa.anio << endl << endl; return 0; } // Cierra main ///////////////////////////////////////////////////////////////// // RECIBE //////////////////////////////////////////////////////////////// void Recibe( Datos &s) { // Abre funcion Recibe cout << "\nIntroduzca el anio de nacimiento: " <<endl; cin >> s.anio; cout << "\nIntroduzca el mes de nacimiento: " <<endl; cin >> s.mes; cout <<"\nIntroduzca el dia de nacimiento: " <<endl; cin >> s.dia; } // Cierra funcion Recibe //////////////////////////////////////////////////////////////// // IMPRIME1 //////////////////////////////////////////////////////////////// void Imprime1( Datos &t) { // Abre Imprime cout <<t.dia <<"/"<<t.mes<<"/"<<t.anio<<endl; return; } // Cierra Imprime //////////////////////////////////////////////////////////////// // IMPRIME2 //////////////////////////////////////////////////////////////// void Imprime2( Datos Nacimiento) { // Abre cout << Nacimiento.dia <<"/" <<Nacimiento.mes<<"/"<< Nacimiento.anio << endl; return; }
Una ejecución de este programa es la siguiente:
Me ha servido, gracias
ResponderEliminar¡Gracias a ti! Muchos saludos.
ResponderEliminarplease necesito qee me ayuden hacer un programa qee lea desde el teclado un arreglo please
ResponderEliminarHola. Tendrías qué decir que tipo de datos quieres recibir y cual es el lenguaje en el cual lo quieres (supongo que c++). Si quieres recibir números pues te dejo este programa
ResponderEliminar#include iostream
using namespace::std;
#define Tamano 10
int main()
{ // Abre main
int Arreglo[Tamano] = {0, 0, 0};
for (int i = 0; i < Tamano; i++ )
{ // Abre for
cout <<"\nPor favor introduzca un numero: "<< endl;
cin >> Arreglo[i];
} // Cierra for
cout <<"\nLos numeros:"<< endl;
for ( int j = 1; j < Tamano; j++ )
cout <<"\t"<< Arreglo[j];
cout << endl;
return 0;
} // Cierra main
Si quieres echarle un ojo a este programa en c es un poco más ilustrativo: Kernighan-Ritchie1.17
Esto es demasiado vago, tendrías que decirme qué quieres exactamente para poder ayudarte mejor.
Saludos.
ummmmm..... cuando corro el programa de la fecha de nacimiento no pausa y no sale lo que se imprime
ResponderEliminarno crees q deberia tener un getch()?
y tbm falta imprimir la funcion main(Datos Nacimiento)
ResponderEliminarSí. Mira, es cierto, necesitas ponerle getch() para que haga una pausa porque compilas con turbo C++.La razón por la que no le pongo esa función, es porque getch() no es estandar en el lenguaje, sino sólo parte de ese compilador. Yo uso g++ y ejecuto desde una consola y no tengo problema. También puedes hacer una llamada al sistema escribiendo
ResponderEliminarsystem("PAUSE");
system es una instrucción del lenguaje; PAUSE es una instrucción de windows y lo que hace es detener la ejecución hasta que le das un enter.
Espero que te funcione el programa. Saludos.
Podrian ayudarme a crear un programa con los siguientes datos:
ResponderEliminarUn medico almacena informacion de sus pacientes: nombre, direccion, telefono, fecha ultima visita, si es o no privado, si tiene alergias, y un campo de observaciones.Se desea un programa con las sgts opciones:
A.- Intr. de registros interactivamente.
B.- Imprimir en pantalla toda la informacion del paciente
C.- Dado un nombre de un paciente encontrar lka fecha de la ultima visita
D.- Listar todos los pacientes con alergia
E.-listar alfabeticamente todos los pacientes privados
F.- Imprimir todo el listado completo de paciente
Hola, anonimo. Lamento no poder ayudarte, pero estoy bastante ocupado. Si puedo en una semana, trato de hacer algo con tu problema.
EliminarSaludos.
ayuudaaa con este ejercicio porfavor.. me he quedado atascado en la utilizacion del switch para el menu!!!
ResponderEliminarRealizar un programa que incluya: funciones, arreglos. Usted escogerá una opción entre las
Siguientes: Panadería, Farmacia, Zapatería, Carnicería, Charcutería, Concesionaria de Vehículos.
Una vez que haya seleccionado alguno de los anteriores desarrollará un programa que muestre un
menú que permite ingresar elementos (como por ejemplo clientes, precios, artículo) y debe
Permitir mostrar en pantalla los elementos de los arreglos.
De igual forma permitirá, a través de funciones, realizar operaciones entre los valores numéricos,
Así como también debe crear estructuras para los elementos de los arreglos que va a ingresar.
Lo ideal es que el usuario seleccione a través del menú las operaciones a realizar
¿Por qué no escribes el código que tienes, y así lo revisamos juntos?
EliminarAyudaa, necesito que me colaboren haciendo este programa.
ResponderEliminarelaborar un algoritmo que pida la hora militar al usuario y me la muestre en hora normal. ayuda plis
Mmmm. ¡Hola! ¿Te estarás refirendo a el programa que viene en el libro de Deitel? Aquí no tengo algo así, pero está en los libros de Deitel, cuando empieza a ver clases y objetos. No dices en qué lenguaje lo quieres, pero ese es un ejemplo de todos los libros de Deitel. Chécalos ahí, y si tienes una duda en concreto, pues me dices.
EliminarSaludos, Lorena.
Que tal buenas noches, se nota que saben mucho sobre c++, pudiera pedirles un favor, estoy estudiando en linea c++ pero es algo complicado pues no es lo mismo que estudiar en un aula.
ResponderEliminarMe pideron crear un programa, poco a poco y cree uno con el uso de for e if y una estructura, pero ahora me piden pasar ese mismo programa como funcion o funciones segun considere.
He intentado hacerlo pero no corre el programa mi programa original es este:
El cual debe permitir ingresar los datos de los alumnos de un aula y asignandoles una clave por default y depsues de guardar sus datos permite con un menu de opciones ingresar otro alumno o ingresar las calificaciones de dicho alumno usando la clave que se asigno antes.
Por ultimo mostrara en pantalla los datos junto con las calificaciones y el promedio.
#include
#include
#include
#include
#define TAM 3
main()
{
struct alumnos
{
char nombre[20];
char apellido[30];
char materia[10];
int edad;
int prom;
}
alumnos [15];
int c=1, opc;
int calif[TAM];
int i=1;
int clave;
double prom=0;
do
{
system("color 9f");
printf( "\n......:::::Bienvenido:::::......\n\n");
printf( "Programa para ingresar datos de alumnos, y calificaciones\n\n" );
printf( "1) Registrar un alumno \n" );
printf( "2) Ingresar calificaciones \n" );
printf( "3) Buscar alumnos \n" );
printf( "4) Salir \n" );
printf( "Elige una opcion: \n");
scanf("%d2",&opc);
switch (opc)
{
case 1:
if (c>=15)
printf("el registro esta lleno\n");
else
{
printf("clave: %2d\n",c);
printf("ingresa los datos del alumno\n\n");
printf( "Por favor introduce: \n\n");
gets( alumnos[c].nombre);
printf("El nombre del alumno:\n");
gets( alumnos[c].nombre);
printf("El apellido del alumno:\n");
gets( alumnos[c].apellido);
printf("La materia alumno:\n");
gets( alumnos[c].materia);
printf("La edad:\n");
scanf("%d", &alumnos[c].edad);
c++;
}
break;
case 2:
for(i=0; i < TAM; i++)
{
printf("Proporciona la calificacion %d: ",i+1);
scanf("%d", &calif[i]);
prom = prom + calif[i];
}
prom = prom/TAM;
printf("\nLas calificaciones ingresadas fueron: \n");
for(i=0; i < TAM; i++)
printf("\nCalificacion %d: %d",i+1, calif[i]);
printf("\n\n\tPromedio = %.2f\n\n", prom);
break;
case 3: printf( "\n Clave: \n");
scanf("%d",&clave);
while (clave<=15 and clave>=1)
{
printf("nombre:%s\n",alumnos[clave].nombre);
printf("apellido: %s\n",alumnos[clave].apellido);
printf("materia: %s\n",alumnos[clave].materia);
printf("edad: %d años\n",alumnos[clave].edad);
printf("promedio %.2f \n",prom);
prom=0;
break;
}
break;
case 4: printf("\n\nAdios\n");
system("pause");
break;
break;
printf("\n\n Opcion Invalida");
}
}while (opc!=4);
}
PD: me tarde algo realizandolo pues soy principiante en esto y como mencione antes se me complico algo el estudiar en linea y trabajar.
Quisiera pedirles de favor me pudieran ayudar a saber como puedo pasarlo a funciones.
Creo aun tiene algunos errores, pues es mi primer programa, pero creo que hace lo que queria que hiciera.
Gracias.
buenas noches.
//Editado y compilado y probado en Borland C++// Estudiante de Ing. Walfer Alvarez*/
Eliminar#include
#include
#include //funciones toupper e isalpha
#include //funciones ofstream e ifstream
#include //funciones como gotoxy, textcolor
#include //para colocar pausa en ciertas partes del programa
#define TAM 3
main()
{
struct alumnos
{
char nombre[20];
char apellido[30];
char materia[10];
int edad;
int prom;
}
alumnos [15];
int c=1, opc;
int calif[TAM];
int i=1;
int clave;
double prom=0;
do
{
system("color 9f");
printf( "\n......:::::Bienvenido:::::......\n\n");
printf( "Programa para ingresar datos de alumnos, y calificaciones\n\n" );
printf( "1) Registrar un alumno \n" );
printf( "2) Ingresar calificaciones \n" );
printf( "3) Buscar alumnos \n" );
printf( "4) Salir \n" );
printf( "Elige una opcion: \n");
scanf("%d2",&opc);
switch (opc)
{
case 1:
if (c>=15)
printf("el registro esta lleno\n");
else
{
printf("clave: %2d\n",c);
printf("ingresa los datos del alumno\n\n");
printf( "Por favor introduce: \n\n");
gets( alumnos[c].nombre);
printf("El nombre del alumno:\n");
gets( alumnos[c].nombre);
printf("El apellido del alumno:\n");
gets( alumnos[c].apellido);
printf("La materia alumno:\n");
gets( alumnos[c].materia);
printf("La edad:\n");
scanf("%d", &alumnos[c].edad);
c++;
}
break;
case 2:
for(i=0; i < TAM; i++)
{
printf("Proporciona la calificacion %d: ",i+1);
scanf("%d", &calif[i]);
prom = prom + calif[i];
}
prom = prom/TAM;
printf("\nLas calificaciones ingresadas fueron: \n");
for(i=0; i < TAM; i++)
printf("\nCalificacion %d: %d",i+1, calif[i]);
printf("\n\n\tPromedio = %.2f\n\n", prom);
break;
case 3: printf( "\n Clave: \n");
scanf("%d",&clave);
while ( clave>=1);
{
printf("nombre:%s\n",alumnos[clave].nombre);
printf("apellido: %s\n",alumnos[clave].apellido);
printf("materia: %s\n",alumnos[clave].materia);
printf("edad: %d años\n",alumnos[clave].edad);
printf("promedio %.2f \n",prom);
prom=0;
break;
}
break;
case 4: printf("\n\nAdios\n");
system("pause");
break;
break;
printf("\n\n Opcion Invalida");
}
}while (opc!=4);
}
Este comentario ha sido eliminado por el autor.
ResponderEliminar¡Hola!, la verdad tu problema es un programa un poco tedioso y ahora estoy ocupado como para poder analizarlo.
EliminarLamento no poder ayudarte. Muchos saludos.
necesito ayuda tengo q entregarlo mañana temprano
Eliminarayuda necesito realizar este programa en devc++Un Empresario cuenta con solo 3 departamentos ventas, producción y administración. Necesita adquirir 5 nuevos empleados (1ventas, 3 producción y 1 administrativo) por lo tanto solo contratará bajo los siguientes criterios: Edad (20-60 años), que sea de alguna de las 3 áreas, que cuente con experiencia de 6 meses mínimo al área que requiere ingresar y que esté dispuesto a recibir de pago de acuerdo con:
ResponderEliminara) Ventas de 3,000 a 4,000 mensuales
b) Producción 3,500 a 4,500 mensuales
c) Administración 4,000 a 5,000 mensuales
Escriba una aplicación que muestre en la ventana de comandos los múltiplos del entero 2 (es decir, 2, 4, 8, 16, 32, 64, etc.). Su ciclo no debe terminar (es decir, debe crear un ciclo infinito). ¿Qué ocurre cuando ejecuta éste programa?
ResponderEliminarVan a crear un proyecto y lo guardan como structsysuapellido
ResponderEliminarMiembros de la estructura:
Materia
Primer parcial
Segundo parcial
Tercer parcial
Definitiva
Estado.
Se deben de leer las notas y calcular la definitiva y se almacena en los respectivos miembros de la
estructura. En el estado se visualiza si se gano o no la materia
Los porcentajes son primer parcial 30%, segundo parcial 30%, tercer parcial 40%