nombre); printf("Numero de cuenta:\n"); scanf("%i", &(*a).cuenta); // mejor asi: scanf("%i", &a->cuenta); printf("Calificacion:\n"); scanf("%f", &(*a).calif); // mejor asi: scanf("%f", &a->calif); void escribeDatosAlumno(struct Alumno a) { printf("Nombre: %s ", a.nombre); printf("Numero de cuenta: %i ", a.cuenta); printf("Calificacion: %f\n", a.calif); } int main() { struct Alumno a; dameDatosAlumno(&a); escribeDatosAlumno(a); return 0; } int capturaDatosAlumnos(struct Alumno a[]) { int i, n; printf("Numero de alumnos\n"); scanf("%i", &n); for( i = 0; i < n; i++) dameDatosAlumno(&a[i]); return n; } void imprimeDatosAlumnos(struct Alumno a[], int n) { for(int i = 0; i < n; i++) escribeDatosAlumno(a[i]); } int main() { struct Alumno a[50]; int n = capturaDatosAlumnos(a); imprimeDatosAlumnos(a, n); return 0; } Paso de estructuras a funciones"> nombre); printf("Numero de cuenta:\n"); scanf("%i", &(*a).cuenta); // mejor asi: scanf("%i", &a->cuenta); printf("Calificacion:\n"); scanf("%f", &(*a).calif); // mejor asi: scanf("%f", &a->calif); void escribeDatosAlumno(struct Alumno a) { printf("Nombre: %s ", a.nombre); printf("Numero de cuenta: %i ", a.cuenta); printf("Calificacion: %f\n", a.calif); } int main() { struct Alumno a; dameDatosAlumno(&a); escribeDatosAlumno(a); return 0; } int capturaDatosAlumnos(struct Alumno a[]) { int i, n; printf("Numero de alumnos\n"); scanf("%i", &n); for( i = 0; i < n; i++) dameDatosAlumno(&a[i]); return n; } void imprimeDatosAlumnos(struct Alumno a[], int n) { for(int i = 0; i < n; i++) escribeDatosAlumno(a[i]); } int main() { struct Alumno a[50]; int n = capturaDatosAlumnos(a); imprimeDatosAlumnos(a, n); return 0; } Paso de estructuras a funciones">
Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porMilagros Piñeiro de la Fuente Modificado hace 8 años
1
Estructuras Una estructura es una colección de datos de diferente tipo. Se construye en dos pasos: 1- Creación del esqueleto de la estructura 2.- Colocación de la estructura en memoria struct nombreEstructura // Este es el esqueleto de la estructura { tipoDeDato1 identificador; // miembro 1 tipoDeDato2 identificador; // miembro 2 …. } ; int main() { struct nombreEstructura identificador; // estructura en la memoria return 0; } struct Alumno { char nombre[50]; int cuenta; float calif; } ; struct Alumno a; // estructura global int main() { struct Alumno b; return 0; }
2
Acceso a los miembros de la estructura #include struct Alumno { char nombre[50]; int cuenta; float calif; } a, b, c; // Tres estructuras globales int main() { struct Alumno *ap; // apuntador a una estructura strcpy(a.nombre, "Pedro Martinez"); a.cuenta = 34567; a.calif = 0; ap = &a; // Pon en el apuntador ap la dirección de a printf("Nombre del alumno: %s\n", (*ap).nombre); // acceso al contenido del miembro nombre printf("Nombre del alumno: %s\n", ap->nombre); // esta manera es más fácil return 0; }
3
include struct Alumno { char nombre[50]; int cuenta; float calif; }; void dameDatosAlumno(struct Alumno *a) { printf("Nombre del alumno:\n"); scanf("%s", (*a).nombre); // mejor asi: scanf("%s", a->nombre); printf("Numero de cuenta:\n"); scanf("%i", &(*a).cuenta); // mejor asi: scanf("%i", &a->cuenta); printf("Calificacion:\n"); scanf("%f", &(*a).calif); // mejor asi: scanf("%f", &a->calif); void escribeDatosAlumno(struct Alumno a) { printf("Nombre: %s ", a.nombre); printf("Numero de cuenta: %i ", a.cuenta); printf("Calificacion: %f\n", a.calif); } int main() { struct Alumno a; dameDatosAlumno(&a); escribeDatosAlumno(a); return 0; } int capturaDatosAlumnos(struct Alumno a[]) { int i, n; printf("Numero de alumnos\n"); scanf("%i", &n); for( i = 0; i < n; i++) dameDatosAlumno(&a[i]); return n; } void imprimeDatosAlumnos(struct Alumno a[], int n) { for(int i = 0; i < n; i++) escribeDatosAlumno(a[i]); } int main() { struct Alumno a[50]; int n = capturaDatosAlumnos(a); imprimeDatosAlumnos(a, n); return 0; } Paso de estructuras a funciones
4
1.- Creación de tipo de dato sinónimos: typedef TipoDeDato sinonimo; struct File {.... }; typedef char BYTE; // BYTE es sinónimo de char typedef struct File FILE; int main() { BYTE a, b, c; FILE *af ; // Apuntador a la estructura FILE } 2.- Inicio de un apuntador: Lo siguiente se puede hacer en un paso: int main() { int i; int *a; a = &i; } int main() { int i, *a = &i; } Cabitos sueltos
5
3.- Creación dinámica de arreglos: sizeof(tipoDeDato); // tamaño en bytes del tipo de dato void * malloc(NoDeElemntos * TamañodelTipoDeDato); #include int main() { int *b, a5[] = {3, 4, 5, 6, 7}; b =(int *) malloc(5 * sizeof(int)); // creación del espacio de memoria para 5 enteros for(int i = 0;i< 5;i++) b[i] = a[i]; free(b); // liberación del espacio de memoria } Cabitos sueltos
6
Escritura y lectura de archivos Escritura: 1.- Crear apuntador a FILE 2.- Abrir para escribir y dar nombre al archivo 3.- Escribir al archivo 4.- Cerrar el archivo #include int main() { float vel = 0, dir = 0; FILE *ap; // Crear apuntador a FILE ap = fopen("c:\\vientos.dat", "w"); // Abrir para escribir y dar nombre al archivo for(int i = 0; i< 100; i++) fprintf(ap, "%i %f %f\n", i+1, vel++, dir += 0.1); // Escribir al archivo fclose (ap); // Cerrar el archivo return 0; }
7
Escritura y lectura de archivos Lectura: 1.- Crear apuntador a FILE 2.- Abrir para leer el archivo dando su nombre y ruta 3.- Leer datos del archivo 4.- Cerrar el archivo #include int main() { float vel = 0, dir = 0; FILE *ap; // Crear apuntador a FILE ap = fopen("c:\\vientos.dat", "r"); // Abrir para leer el archivo for(int i = 0; i< 100; i++) { fscanf(ap, "%i %f %f\n",&i, &vel, &dir); // Leerr el archivo printf("%i %f %f\n", i, vel, dir); } fclose (ap); // Cerrar el archivo return 0; }
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.