1. estructura es el nombre en C de los registros;
2. REGISTRO: grupo de información relacionada que se usa para almacenar datos acerca de un tema o actividad;
3. una colección de registros constituye un archivo;
4. los registros estan divididos en campos;
5. un campo es una variable de un tipo determinado.
Sintáxis:
1.)
2.)
3.)
struct
<nombre>
struct
<nombre>
struct <nombre>
Bloquev;
<var1>,...,<varN>;
Bloquev <var1>,...,<varN>
1. define un registro de nombre <nombre> donde los diferentes campos son definidos dentro de Bloquev. Este bloque solo debe contener definición de variables;
2. define los las variables <var1> a <varN> como de tipo: struct <nombre>. Se puede definir una variable de tipo, de una estructura dada, donde quiera que la estructura este definida;
3. es una abreviación de 1.) y
2.).
Operaciones estructuras y acceso campos
Operaciones estructuras:
1. operaciones sobre un campo en partícular;
2. el paso de una estructura como parámetro;
3. afectaciones y comparaciones entre estructuras son prohibidas.
Uso de un campo:
struct libro {
char titulo[20]; /* título del libro */
char autor[20]; /* autor del libro */
int num; /* número de libro */
};
struct libro lib1,lib2;
Para accesar los campos de lib1 y lib2 se usa el operador . de la forma siguiente:
lib1.titulo[i] o lib2.titulo[i]
para accesar el (i+1) caracter del título
lib1.autori[i] o lib2.autor[i]
para accesar el (i+1) caracter del autor
lib1.num o lib2.num
para el número del libro
#include <stdio.h>
int main()
{
struct triangulo {
int base;
int altura;
int l1, l2, l3;
float area;
float perimetro;
}
struct triangulo fig1, fig2;
printf("Proporcione las
longitudes de los lados del primer triangulo:")
scanf("%d
%d %d", &fig1.l1, &fig1.l2, &fig1.l3)
printf("Proporcione el valor de la
base y la altura del primer triangulo")
scanf ("%d %d",&fig1.base,
&fig1.altura);
fig1.area = (fig1.base
* fig1.altura)/2
fig1.perimetro = fig1.
l1 + fig1.l2 + fig1.l3;
printf("Proporcione las
longitudes de los lados del segundo triangulo:")
scanf("%d
%d %d", &fig2.l1, &fig2.l2, &fig2.l3)
printf("Proporcione el valor de la
base y la altura del segundo triangulo")
scanf("%d %d",&fig2.base,
&fig2.altura);
fig2.area = (fig2.base
* fig2.altura)/2
fig2.perimetro = fig2.
l1 + fig2.l2 + fig2.l3;
if (fig1.area > fig2.area)
printf("El primer triangulo
tiene un area mas grande: %.3f \n",fig1.area );
else
printf("El segundo triangulo
tiene un area mas grande: %.3f \n",fig2.area);
if (fig1.perimetro >
fig2.perimetro)
printf("El primer triangulo
tiene un perimetro mas grande: %.f \n",fig1.perimetro );
else
printf("El segundo triangulo
tiene un perimetro mas grande: %.1f \n",fig2.perimetro);
}
Ejercicio estructura
|
|
|