martes, 18 de noviembre de 2008
Ejercicios para practica
Cédula, Nombre, edad, destino, peso equipaje. El valor del tiquete esta sujeto al destino y al peso del equipaje según la siguiente tabla
Destino valores
A 65.000
B 72.000
C 85.000
Todos los pasajeros tienen derecho a llevar 15 Kg de equipaje y por cada kilo adicional se incrementa el 2% del valor del tiquete por cada kilo adicional
Realice:
· Main
· Llenado.
· Cantidad de pasajeros por destino.
· El promedio de equipaje por pasajero en cada ruta.
· El cliente que más paga por exceso de equipaje.
· Nota el llenado de la estructura es hasta que la cé
2. Un centro de recreación quiere sistematizar la información de sus 534 socios de cada uno de ellos se conoce la siguiente información:
Nombre, Documento de Identidad, Sexo (Hombre (1), Mujer (2)), Fecha de Ingreso (Estructura Interna), Numero de Beneficiarios, Estado Civil (Soltero (0), casado (1)). ) Fecha de Ingreso tiene Día, Mes, Año.
· Declaración de la Estructura.
· Main
· Función de Llenado.
· Una función que cuente y retorne la cantidad de Socios solteros con más de 5 beneficiarios e imprima el nombre de dichos socios.
· Porcentaje de socios Hombres y mujeres.
· Recaudo por concepto de mensualidad del total de los socios, dependiendo de la tabla. Todos los socios con más de 15 años de antigüedad tienen un descuento del 5% sobre el valor a pagar.(Debe preguntar la fecha actual solo una vez para calcular los años de antigüedad)
Estado Numero de Beneficiarios Valor a Pagar
Soltero 1 a 3 55.000
Soltero Mayor de 3 78.000
Casado 1 a 4 25.000
Casado Mayor de 4 35.000
martes, 11 de noviembre de 2008
EJERCICIOS PARA PRACTICAR DE STRUCT
1. Dada la información de N estudiantes, donde N se da por teclado:
Código del estudiante
Nombre del estudiante
Sexo del alumno (1 = Masculino, 2 = Femenino)
Código de la carrera a la cual pertenece
Donde la carrera se da en la siguiente tabla:
1 Ingeniería Sistema
2 Ingeniería Mecánica
3 Ingeniería Electrónica
Cada estudiante ve 5 materias, por cada materia se da la siguiente información:
Código de la materia
Nombre de la materia
Código del profesor de la materia
Definitiva de la materia
Codifique un programa en forma modular utilizando registros que realice lo siguiente:
Una función que lea la información de cada estudiante y la almacena en registros
Una función que calcule y retorne el código de la carrera que tiene mas cantidad de hombres
Una función que calcule y retorne cual es el estudiante con mejor promedio
Una función que calcule y retorne código de la carrera con mejor promedio
2. En una agencia de turismo, las N personas que van a pagar el importe de su tiquete aéreo o terrestre, llegan a la caja y sacan una bolita de color, que les dirá el descuento que tendrán sobre el total de su pasaje. Se sabe que si el color de la bolita es roja el cliente obtendrá un 40% de descuento; si es amarilla un 25% y si es blanca no obtendrá descuento. La captura de información termina cuando el valor del tiquete terrestre o aéreo sea 0.
Se desea saber usando estructuras:
El tiquete con la información básica del cliente y con el valor a pagar.
La cantidad que pagaron los clientes que viajan por tierra cada día.
El valor de los descuentos generados por la bolita roja en el día.
El número de personas que no obtuvieron descuento en el día
El porcentaje de clientes con tiquete aéreo que sacaron la bolita amarilla
martes, 4 de noviembre de 2008
#include
#include
struct estudiante{ long int cod;
char nom[30];
float n;
}v[10];
void llenar(struct estudiante v[])
{ int i;
for(i=0;i<4;i++)
{ printf("\ndigite codigo: ");
scanf("%ld",&v[i].cod);
printf("\ndigite nombre: ");
scanf("%s",&v[i].nom);
printf("\ndigite nota: ");
scanf("%f",&v[i].n); } }
void ordenar(struct estudiante v[])
{ int i, j;
struct estudiante aux;
for(i=0;i<3;i++)
{for(j=i+1;j<4;j++)
{ if(v[i].cod>v[j].cod)
{aux.cod= v[i].cod;
strcpy(aux.nom,v[i].nom);
aux.n=v[i].n;
v[i].cod=v[j].cod;
strcpy(v[i].nom,v[j].nom);
v[i].n=v[j].n;
v[j].cod = aux.cod;
strcpy(v[j].nom,aux.nom);
v[j].n=aux.n; } }}}
void imprimir(struct estudiante v[])
{ int i; for(i=0;i<4;i++)
{ printf(" el codigo es: %ld \n nombre: %s \n nota final: %f\n",v[i].cod,v[i].nom,v[i].n); } }
main()
{ printf("llene la estructura\n");
llenar(v);ordenar(v);
printf("la estructura ordenada por codigo es :\n");
imprimir(v);getch();
}
miércoles, 29 de octubre de 2008
TRABAJO DE ESTRUCTURAS GRUPO DE LOS MIERCOLES
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
martes, 28 de octubre de 2008
TEMA REGISTROS O STRUCT EN C
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
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
#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();
}
domingo, 28 de septiembre de 2008
EJERCICIO DE TALLER - MARTES 30 DE SEPTIEMBRE
Haga un programa en C que calcule la suma del triángulo inferior más el triángulo superior de una matriz cuadrada de n X n (n leido por teclado maximo 50), dejando el resultado en el triángulo inferior de otra matriz cuadrada de dimensión n X n. La matriz resultante tendrá 0(CERO) en la diagonal y en el triángulo superior.
Por ejemplo, si la matriz que proporciona el usuario es:
5 7 8 9 10
1 6 4 5 6
2 3 9 2 3
4 5 6 4 1
7 8 9 3 10
Entonces la matriz resultante será:
0 0 0 0 0
8 0 0 0 0
10 7 0 0 0
13 10 8 0 0
17 14 12 11 0
Ya que la suma de los dos triángulos, dejando el resultado en el triángulo inferior es:
(1,0) = (1,0) + (0,1)
(2,0) = (2,0) + (0,2)
(2,1) = (2,1) + (1,2)
(3,0) = (3,0) + (0,3)
(3,1) = (3,1) + (1,3)
(3,2) = (3,2) + (2,3)
(4,0) = (4,0) + (0,4)
(4,1) = (4,1) + (1,4)
(4,2) = (4,2) + (2,4)
(4,3) = (4,3) + (3,4)
a) Haga un módulo llamado llenar que lea la matriz que proporciona el usuario.
b) Haga un módulo llamado sumatoria que calcule la suma de los 2 triángulos de una matriz y deje el resultado en el triángulo inferior de otra matriz .
c) Haga un módulo imprimir que imprima una matriz.
d) Haga el módulo principal (main) que lea y valide la dimensión de la matriz y que llame a los módulos anteriores, imprimiendo la matriz original y la matriz resultado.
jueves, 11 de septiembre de 2008
TALLER 15%

Una compañía ha clasificado a sus n(maximo 50) empleados dentro de los grupos 1 y 2. Cada empleado del grupo 1 recibirá, a partir de ahora, un aumento de $250.00 a la semana sobre su sueldo actual, mientras que a cada uno de los del grupo 2 sólo se le dará $150.00 adicionales por semana. La información que se proporciona de cada empleado es: cedula del empleado, grupo al que pertenece (1 o 2) y sueldo semanal actual. Si un empleado del grupo 1 con el nuevo sueldo gana semanalmente más que el sueldo promedio del grupo, entonces debe cambiar al grupo 2.
Analice, diseñe y codifique un programa modular que:
Lea la información de los n empleados e imprima la cedula, grupo y sueldo semanal nuevo para cada empleado, actualizando el grupo si es el caso.
Calcule el sueldo promedio de los empleados por grupo y calcule también el promedio general de todos, sin considerar el grupo.
Imprima la cedula del empleado con mayor salario.
miércoles, 10 de septiembre de 2008
martes, 20 de mayo de 2008
EJERCICIO DE TALLER
CLAVE
NOMBRE
SEMESTRE
MATERIAS
PROMEDIO
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 n alumnos y que está ordenado en forma ascendente por clave, escriba:
a)La definición del registro y la declaración de la variable donde se guarda la información de los n 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 y lo guarde en el campo promedio de la estructura.
d)Un módulo que imprima la clave, nombre, semestre y promedio de un determinado alumno.
e)Por último, escriba parte del programa principal donde se lean p claves y, utilizando los módulos anteriores, se escriban los datos de los p alumnos correspondientes.
martes, 25 de marzo de 2008
EJERCICIO DE PRACTICA GENERAL DE VECTORES
La tienda “Dulcecito” vende como máximo 50 productos diferentes.
La información sobre los productos se encuentra almacenada en los siguientes arreglos paralelos:
Producto guarda la clave de los diferentes dulces.
Cantidad es la cantidad de cajas de dulces de un producto.
El administrador necesita un programa en C modular (un módulo por inciso) para:
Saber:
- ¿cuál es la clave del producto que tiene la mayor cantidad de cajas?
(Función llamada mayor que reciba como parámetro el arreglo Cantidad y regrese el índice de la mayor cantidad de cajas. Asuma que no habrá cantidades iguales.) - ¿cuáles son los productos que necesita pedir al proveedor ya que tiene más de una caja y menos de 30 cajas en existencia?
(Función llamada pedido que regrese como parámetro el total de productos que necesita pedir al proveedor y generar un vector con las claves de los productos cuya cantidad sea cantidad<30)> - Ordenar en forma descendente ( de mayor a menor) por clave del producto.
(Función llamada Ordenar que ordene en forma descendente la clave del producto con su respectiva cantidad) - Hacer el programa principal que mande llamar cada una de las funciones anteriores e imprima la información requerida en cada uno de los incisos.
martes, 11 de marzo de 2008
EJERCICIO DE TALLER




1. Llenado de la información.
2. El código y la cantidad en unidades del producto más vendido.
3. El código y la cantidad en unidades del producto menos producido.
4. El total de las ventas.
sábado, 8 de marzo de 2008
VECTORES
http://www.bloodshed.net/dev/devcpp.html
Descargue el dev-c++, y copie el siguiente ejercicio:
1. Una fábrica de llantas quiere un programa para calcular el costo total de producción de los n modelos de llantas que produce.
ai enteros
ci enteros
Donde:
ai representa la cantidad de llantas producidas del modelo i
ci representa el costo de producción de una llanta del modelo i
2) Leer los datos y almacenarlos en un arreglo vec, de tal manera que queden:
vec a0 a1 . . . an-1
Copiar los datos a otro arreglo llamado inverso, de tal forma que queden almacenados como se indica a continuación:
inverso an-1. . .a0
Reemplazar cada ai en vec por (ai * 2 i) sin utilizar la función de potencia y optimizando el número de operaciones:
vec
ao* 20 (a1* 21) . . .


