Entregar el Miercoles 5 de noviembre, en hoja de examen a mano.
1. Se tiene un arreglo de una dimensión en el que cada uno de sus elementos tiene la siguiente estructura: CLAVE, NOMBRE, SEMESTRE, MATERIAS
En MATERIAS se almacena información acerca de las 6 calificaciones obtenidas por un alumno en el semestre indicado
por SEMESTRE (entero). Suponiendo que en el arreglo ya se almacena la información completa de 30 alumnos escriba:
a) La definición del registro y la declaración de la variable donde se guarda la información de los 30 alumnos.
b) Una función que busque en el arreglo una determinada clave, si ésta existe regrese como valor el lugar en el arreglo donde se encuentra. Si la clave buscada no existe deberá regresar un –1.
c) Un módulo que calcule el promedio de un cierto alumno.
d) Un módulo que imprima la clave, nombre, semestre y promedio de un determinado alumno.
e) Por último, escriba el main del programa donde se lean X claves y, utilizando los módulos anteriores, se escriban los datos de los X alumnos correspondientes.
2. Considere la siguiente definición y declaraciones
struct estudiante
{
char nombre[20], apellido [20];
flota calif[4], prom;
};
/* declaracion de la variables */
struct estudiante est1, est2;
Indique para cada uno de las siguientes expresiones en C, si es correcta o no. En caso de ser incorrecta diga brevemente por qué.
a) printf(“%s”, est1);
b) int i,s=0
for (i=0;i <4;i ++)
s=s+calif[i];
c) est2.prom = est1.prom;
d) if (calif == calif)
printf(“Iguales”);
e) if (est1 == est2)
printf(“Iguales”);
f) if (est1.nombre == est2.nombre)
printf(“Iguales”);
g) est2.prom=4
miércoles, 29 de octubre de 2008
martes, 28 de octubre de 2008
TEMA REGISTROS O STRUCT EN C
Una estructura es una agrupación, bajo un mismo nombre de variable, distintos datos que pueden ser de diferente tipo. Las estructuras vienen a salvar la limitación de los vectores, que solo almacenan un único tipo de dato.
Una estructura también es llamada registro y cabe su analogía con los registros de una tabla, donde un registro tiene varios datos (campos) y estos pueden diferir en su tipo:
Ejemplo: Luego de las librerias se define la estructura o registro
struct alumnos { long int cedula;
char nombres[50];
char apellido[30];
float notaf;
} x;
// Lo anterior es la definicion del registro alumno y se declaro una variable x de tipo struct alumnos que contiene 4 campos cedula, nombre, apellido y nota final.
para llenar cada campo en el programa quedaria asi:
main()
{ printf( "digite cedula");
scanf("%ld",&x.cedula);
printf( "digite nombre");
gets(x.nombre);
printf( "digite apellido");
gets(x.apellido);
printf( "digite nota final");
scanf("%f",&x.notaf);
}
Se coloca la variable de tipo struct en este caso x luego un punto(.) y el campo en el cual vamos a registrar la informacion, En este caso esa informacion es para un solo alumno.
Consulte:
1. Si deseo registrar la informacion de 10 alumnos como quedaria la definicion y como se llenaria el registro o struct?
2. Calcule el promedio de notas para un grupo de 10 alumnos.
3. Imprima la cedula del estudiante con mayor nota.
Una estructura también es llamada registro y cabe su analogía con los registros de una tabla, donde un registro tiene varios datos (campos) y estos pueden diferir en su tipo:
Ejemplo: Luego de las librerias se define la estructura o registro
struct alumnos { long int cedula;
char nombres[50];
char apellido[30];
float notaf;
} x;
// Lo anterior es la definicion del registro alumno y se declaro una variable x de tipo struct alumnos que contiene 4 campos cedula, nombre, apellido y nota final.
para llenar cada campo en el programa quedaria asi:
main()
{ printf( "digite cedula");
scanf("%ld",&x.cedula);
printf( "digite nombre");
gets(x.nombre);
printf( "digite apellido");
gets(x.apellido);
printf( "digite nota final");
scanf("%f",&x.notaf);
}
Se coloca la variable de tipo struct en este caso x luego un punto(.) y el campo en el cual vamos a registrar la informacion, En este caso esa informacion es para un solo alumno.
Consulte:
1. Si deseo registrar la informacion de 10 alumnos como quedaria la definicion y como se llenaria el registro o struct?
2. Calcule el promedio de notas para un grupo de 10 alumnos.
3. Imprima la cedula del estudiante con mayor nota.
martes, 21 de octubre de 2008
ejercicio
#include
#include
int longitud( char c[])
{ int i;
for(i=0;c[i]!='\0';i++);
return(i);
}
int longitud_palabra(char c[])
{ int i,con=0, m=0,j,x;
for(i=0;c[i]!='\0';i++)
{ con=0;
while((c[i]!=' ')||(c[i]!='\0 '))
{ con++;
i++;
}
if(con>m)
{ m=con;
x=i-con;
}
printf("posicion de la palabra es %d\n",x);
}
return(x);
}
void reemplazar(char c1[],char c2[],char c3[])
{ int i,x1,x2,j=0;
x1=longitud_palabra(c1);
x2=longitud_palabra(c2);
printf("posicion de la palabra mas larga de c1 es %d",x1);
for(i=0;c2[i]!=0;i++)
{ if(x2==i)
{ while(c1[x1]!=' ')
{j=x2;
c3[j]=c1[x1];
x1++;
j++;
}
}
c3[j]=c2[i];
j++;
}
}
int comparar(char c1[], char c2[])
{ int i;
for(i=0;c1[i]!='\0';i++)
{ if(c1[i]!=c2[i])
return(1);
}
return(0);
}
void concatenar(char c1[], char c2[],char c3[])
{ int i,j;
for(i=0;c1[i]!='\0';i++)
c3[i]=c1[i];
c3[i]=' ';
i++;
for(j=0;c2[j]!='\0';j++)
{ c3[i]=c2[j];
i++;
}
c3[i] ='\0';
}
main()
{ char c1[50],c2[50],c3[100];
int l1,l2,r;
printf("digite cadena 1\n");
gets(c1);
printf("digite cadena 2\n");
gets(c2);
l1=longitud(c1);
l2=longitud(c2);
if(l1==l2)
{ r=comparar(c1,c2);
if( r==0 )
{ concatenar(c1,c2,c3);
printf("la cadena final es %s",c3);
}
else
{ reemplazar(c1,c2,c3);
printf("la cadena final es %s",c3);
}
}
else
{ reemplazar(c1,c2,c3);
printf("la cadena final es %s",c3);}
getch();
}
#include
int longitud( char c[])
{ int i;
for(i=0;c[i]!='\0';i++);
return(i);
}
int longitud_palabra(char c[])
{ int i,con=0, m=0,j,x;
for(i=0;c[i]!='\0';i++)
{ con=0;
while((c[i]!=' ')||(c[i]!='\0 '))
{ con++;
i++;
}
if(con>m)
{ m=con;
x=i-con;
}
printf("posicion de la palabra es %d\n",x);
}
return(x);
}
void reemplazar(char c1[],char c2[],char c3[])
{ int i,x1,x2,j=0;
x1=longitud_palabra(c1);
x2=longitud_palabra(c2);
printf("posicion de la palabra mas larga de c1 es %d",x1);
for(i=0;c2[i]!=0;i++)
{ if(x2==i)
{ while(c1[x1]!=' ')
{j=x2;
c3[j]=c1[x1];
x1++;
j++;
}
}
c3[j]=c2[i];
j++;
}
}
int comparar(char c1[], char c2[])
{ int i;
for(i=0;c1[i]!='\0';i++)
{ if(c1[i]!=c2[i])
return(1);
}
return(0);
}
void concatenar(char c1[], char c2[],char c3[])
{ int i,j;
for(i=0;c1[i]!='\0';i++)
c3[i]=c1[i];
c3[i]=' ';
i++;
for(j=0;c2[j]!='\0';j++)
{ c3[i]=c2[j];
i++;
}
c3[i] ='\0';
}
main()
{ char c1[50],c2[50],c3[100];
int l1,l2,r;
printf("digite cadena 1\n");
gets(c1);
printf("digite cadena 2\n");
gets(c2);
l1=longitud(c1);
l2=longitud(c2);
if(l1==l2)
{ r=comparar(c1,c2);
if( r==0 )
{ concatenar(c1,c2,c3);
printf("la cadena final es %s",c3);
}
else
{ reemplazar(c1,c2,c3);
printf("la cadena final es %s",c3);
}
}
else
{ reemplazar(c1,c2,c3);
printf("la cadena final es %s",c3);}
getch();
}
viernes, 3 de octubre de 2008
Ejercicio 35 pagina 28 resuelto
A CONTINUACION LA PALABRA MEN LA REEMPLAZAN POR EL SIGNO MENOR Y MAY POR EL SIGNO MAYOR
#include"stdio.h"
#include"conio.h"
void llenar(float M[100][4])
{ int i;
for(i=0;i MEN 3;i++)
{printf("digite codigo : ");
scanf("%f",&M[i][0]);
printf("digite nota : ");
scanf("%f",&M[i][1]);
printf("digite departamento(1,2,3) : ");
scanf("%f",&M[i][2]);
printf("digite ciclo(1 o 2) : ");
scanf("%f",&M[i][3]);
}
}
void alumnospordpto(float M[3][4])
{ int i,c1=0,c2=0,c3=0;
for(i=0;i MEN 3;i++)
{ if(M[i][2]==1)
c1++;
else
{ if(M[i][2]==2)
c2++;
else
c3++;
}
}
printf("los alumnos de sistemas son %d, electronica %d y telecomunicacions %d",c1,c2,c3);
}
int mayor(float M[3][4])
{ float m=M[0][1];
int i,p=0;
for(i=0;i MEN 3;i++)
{ if(M[i][1] MAY m)
{ m=M[i][1];
p=i;
}
}
return(p);
}
void promedio(float M[3][4])
{ int i;
float c1=0,a1=0,c2=0,a2=0,p1,p2;
for(i=0;i MEN 3;i++)
{ if(M[i][3]==1)
{ a1=a1+M[i][1];
c1++;
}
else
{a2=a2+M[i][1];
c2++;
}
}
p1=a1/c1;
p2=a2/c2;
printf("el promedio de notas de los el ciclo 1 es %f y ciclo2 %f",p1,p2);
}
main()
{ float M[3][4];
int p;
llenar(M);
alumnospordpto(M);
p=mayor(M);
printf("el codigo del estudiante con mayor nota es %f",M[p][0]);
promedio(M);
getch();
}
#include"stdio.h"
#include"conio.h"
void llenar(float M[100][4])
{ int i;
for(i=0;i MEN 3;i++)
{printf("digite codigo : ");
scanf("%f",&M[i][0]);
printf("digite nota : ");
scanf("%f",&M[i][1]);
printf("digite departamento(1,2,3) : ");
scanf("%f",&M[i][2]);
printf("digite ciclo(1 o 2) : ");
scanf("%f",&M[i][3]);
}
}
void alumnospordpto(float M[3][4])
{ int i,c1=0,c2=0,c3=0;
for(i=0;i MEN 3;i++)
{ if(M[i][2]==1)
c1++;
else
{ if(M[i][2]==2)
c2++;
else
c3++;
}
}
printf("los alumnos de sistemas son %d, electronica %d y telecomunicacions %d",c1,c2,c3);
}
int mayor(float M[3][4])
{ float m=M[0][1];
int i,p=0;
for(i=0;i MEN 3;i++)
{ if(M[i][1] MAY m)
{ m=M[i][1];
p=i;
}
}
return(p);
}
void promedio(float M[3][4])
{ int i;
float c1=0,a1=0,c2=0,a2=0,p1,p2;
for(i=0;i MEN 3;i++)
{ if(M[i][3]==1)
{ a1=a1+M[i][1];
c1++;
}
else
{a2=a2+M[i][1];
c2++;
}
}
p1=a1/c1;
p2=a2/c2;
printf("el promedio de notas de los el ciclo 1 es %f y ciclo2 %f",p1,p2);
}
main()
{ float M[3][4];
int p;
llenar(M);
alumnospordpto(M);
p=mayor(M);
printf("el codigo del estudiante con mayor nota es %f",M[p][0]);
promedio(M);
getch();
}
Suscribirse a:
Comentarios (Atom)