You are on page 1of 20

1

Definir una estructura de datos, usando registros, para almacenar una


DIRECCIN (Urbanizacion, Calle, Edif, NumCasa/Apto, telefono) y luego usar
esta estructura en otro registro que guarda los datos de los clientes de una
empresa (NOMBRE, CEDULA, DIRECCIN HABITACION, DIRECCIN TRABAJO)

Dadas las definiciones de t1 y t2 dibuje la tabla


de datos asociada con ellas.

Dada una tabla que contiene los datos NOMBRE, EDAD y PESO de un grupo
de 300 estudiantes de una escuela primaria. Disear un algoritmo que
permita cargar los datos y determinar y mostrar cuantos estudiantes son
mayores de 10 aos y tienen un peso superior a 20 Kg.

Se desea crear una estructura para controlar los datos de los productos que
maneja una entidad comercial. La informacin de cada producto debe
contener cdigo de producto, descripcin del producto, precio , IVA (impuesto
= 12% del costo).

Disear el algoritmo que permita leer un nmero variable de registros. El fin


de la entrada de datos se produce cuando se introduce un cdigo igual a cero
5
(0).
Para el ejercicio anterior, disear un algoritmo que permita calcular el precio
total de un conjunto de productos, conocido su cdigo/cantidad (FACTURA). Se
debe permitir leer cdigo/cantidad hasta que se responda "N" a la pregunta
Agregar producto S/N". No se desea almacenar los cdigos de los productos
adquiridos.

A partir de la declaracin de las


estructuras (datos/atletas) disee un
algoritmo en pseudocodigo que lea el
arreglo ATLETAS y devuelva los datos
(nombre, pas, deporte) del atleta que ha
ganado mas de medallas.

Se tiene una tabla que contiene la


produccin mensual durante un ao de
10 modelos de vehculos que produce
una fabrica. Escribir un algoritmo que
permita procesar los datos de la tabla,
calculando, almacenando y mostrando el
acumulado por trimestre y por modelo.
8 Se tienen dos tablas que contienen los datos de los PADRES (NOMBRE,
CEDULA, DIRECCIN, TELEFONO) e HIJOS (NOMBRE, CEDULA, CEDULA_PADRE,
EDAD). Escribir un algoritmo tipo men que permita:
Buscar el telfono de un padre, utilizando la cedula del hijo.
Mostrar el numero de hijos que tiene cada padre en la escuela.
7

10

Se tiene la informacin sobre la produccin mensual de 10 hornos de una


Acera durante un ao. La informacin se guarda en una estructura que tiene
2 campos N del horno (1 a 10), Mes (1 a 12). Se requiere disear un
algoritmo que calcule y muestre la produccin promedio por horno y la
produccin promedio por mes.
Una empresa Distribuidora de Energa Elctrica lleva el control del consumo
de sus clientes para los ltimos diez aos, como el que se muestra en la
tabla:

Escribir un algoritmo que permita almacenar los datos, buscar el cliente que
tuvo el mayor consumo en los diez aos indicando el mes y el ao en el cual
ocurri ese consumo y calcular y almacenar el promedio de los diez aos
para cada cliente.

EJERCICIO N 1
Definir una estructura de datos, usando registros, para almacenar
una DIRECCIN (Urbanizacion, Calle, Edif, NumCasa/Apto, telefono) y
luego usar esta estructura en otro registro que guarda los datos de
los clientes de una empresa (NOMBRE, CEDULA, DIRECCIN
HABITACION, DIRECCIN TRABAJO)

struct t_dir
{
char URB[20], CALLE[15], EDIF[15];
int NCA, TELEF;
};

struct t_cli
{ char NOMBRE[20];
int CEDULA;
t_dir DIR_HAB, DIR_TRAB;
};

EJERCICIO N 2
Dadas las definiciones de t1 y t2 dibuje la tabla de datos
asociada con ellas.

struct t1
{ float A[3];
};
struct t2
{ int X;
t1 B[4];
};
t2 N[10];

EJERCICIO N 3
Dada una tabla que contiene
los datos NOMBRE, EDAD y
PESO de un grupo de 300
estudiantes de una escuela
primaria.
Disear un algoritmo que
permi-ta cargar los datos y
determinar
cuantos
estudiantes son mayores de
10 aos y tienen un peso
superior a 20 Kg.

n
1
:
300

cedul
a

eda
d

pes
o

algoritmo contar_alumnos
inicio
//Definicin de variable tipo alumno
registro alumno
ent
cedula, edad
real
peso
fin_registro
//Declaracin de variable tipo alumno
alumno LISTA[300]
entero I, CONTADOR
//Cargar datos
mostrar("Introducir NOMBRE, EDAD, PESO")
repetir_desde( I=1,I<=300,I=I+1)
leer(LISTA[I].cedula)
leer(LISTA[I].edad)
leer(LISTA[I].peso)
fin_repetir_desde
CONTADOR = 0
repetir_desde( I=1,I<=300,I=I+1)
si ((LISTA[I].edad > 10) && (LISTA[I].peso >
20))
CONTADOR = CONTADOR + 1
fin_si
fin_repetir_desde
mostrar("N Alumnos EDAD > 10 y PESO > 20
", CONTADOR)
fin

EJERCICIO N 4
Se desea crear una estructura para
con-trolar los datos de los productos
que ma-neja una entidad comercial.
La infor-macin de cada producto
debe
contener:
cdigo,
descripcin, precio, IVA (12% del
costo)
Disear el algoritmo que permita
leer
un
nmero
variable
de
registros. El fin de la entrada de
datos se produce cuando se
introduce un cdigo igual a cero (0).
Al finalizar ingreso de registros se
debe mostrar los datos ingresados

algoritmo carga_registro
inicio
car IVA
entero CONT = 1, i,K=1
real PIVA=0.12
registro tipo_prod
car DESC[20]
int COD
real COSTO, IVA
fin_registro
tipo_prod P[1000]
repetir_mientras (K>0 && CONT<=1000)
mostrar("Codigo: "), leer(P[CONT].COD)
K= P[CONT].COD
si(K>0)
mostrar("Descripcin: "), leer(P[CONT].DESC)
mostrar("Costo: "), leer(P[CONT].COSTO)
mostrar("IVA (S/N): ), leer(IVA)
si(IVA=='S')
P[CONT].IVA= PIVA*P[CONT].COSTO
fin_si
CONT = CONT + 1
fin_si
fin_repetir_mientras
si(CONT>1000)
mostrar("Debe aumentar capacidad almac.")
si_no
repetir_desde(i=1,i<=CONT-1,i=i+1)
mostrar(P[i].COD, P[i].DESC, P[i].COSTO,

EJERCICIO N 5
Para el ejercicio anterior, disear un algoritmo que permita calcular el
precio total de un conjunto de productos, conocido su cdigo/cantidad
(FACTURA). Se debe permitir leer cdigo/cantidad hasta que se responda
"N" a la pregunta Agregar producto S/N". No se desea almacenar los
cdigos de los productos adquiridos.
algoritmo factura
inicio
//codigo del ejercicio anterior
real PRECIO=0
entero codigo,cant
car RESP = 'S'
repetir_mientras (RESP == 'S' || RESP == 's')
leer(codigo, cant)
i =1
repetir_mientras(PRO[i].CODIGO != cdigo && i< CONT)
i = i+1
fin_repetir_mientras
si(PRO[i].CODIGO == cdigo)
PRECIO=PRECIO+ cant * PRO[i].COSTO* + PRO[i].IVA
si_no
mostrar("producto no existe")
fin_si
mostrar("Agregar producto S/N")
leer(RESP)
fin_repetir_mientras
mostrar("Costo Total = ", precio)
fin

EJERCICIO N 6
A partir de la declaracin de las siguientes estructuras disee un
algoritmo en pseudocodigo que lea el arreglo ATLETAS y devuelva y
devuelva los datos (nombre, pas, deporte) del atleta que ha ganado
mayor nmero de medallas.
repetir_desde(i=1;i<=30;i=i+1)
registro datos
algoritmo
si(ATLETAS[i].nmedallas >
car
medallas
max_med)
nombre[40]
inicio
max_med=ATLETAS[i].nmedallas
car pais[25]
ent i,
fin_registro
max_med=0
max_nom=ATLETAS[i].sujeto.nombre
registro atleta
registro datos
max_pais=
car
car
ATLETAS[i].sujeto.pais
deporte[30]
nombre[40]
max_dep= ATLETAS[i].deporte
datos sujeto
car pais[25]
fin_si
ent
fin_registro
fin_repetir_desde
nmedallas
registro atleta
mostrar("Atleta con mayor N medallas")
fin_registro
car
mostrar("NOMBRE: ",max_nom)
atleta
deporte[30]
mostrar("PAIS: ",max_pais)
car max_nom[40]
ATLETAS[30];
datos sujeto
mostrar("DEPORTE: ",max_dep)
car max_pais[25],
max_dep[30]
ent
mostrar("MEDALLAS: ",max_med)
repetir_desde(i=1;i<=30;i=i+1)
nmedallas
fin
mostrar("Datos Personales")
fin_registro
mostrar(Deporte:), leer(ATLETAS[i].deporte
atleta
mostrar(Nombre:),
ATLETAS[30]
leer(ATLETAS[i].sujeto.nombre)
mostrar(Pais:), leer(ATLETAS[i].sujeto.pais
mostrar(Medallas:),
leer(ATLETAS[i].nmedallas)
fin_repetir_desde

EJERCICIO N 7
Se tiene una tabla que contiene la produccin mensual durante un
ao de 10 modelos de vehculos que produce una fabrica. Escribir un
algoritmo que permita procesar los datos de la tabla, calculando,
almacenando y mostrando el acumulado por trimestre y por modelo.

model
N
o
1
1

UNO

RITMO

MESES
2

9 10 11 12

10 12 10 11 11 11 12 11 11 11 10 10
7

TRIMESTRE
model
N
o
1 2 3 4
1
2

UNO

32 33 34 31

RITMO 18 18 17 19

10 OPTRA

model
o
1

10 OPTRA 15 9

MESES
2

TRIMESTRE
8

1
0

1
1

1
2

UNO

10 12 10 11 11 11 12 11 11 11 10 10 32 33 34 31

RITMO

6 18 18 17 19

OPTRA

3 15 9

:
10

EJERCICIO N 7

model
o
1

UNO

RITMO

MESES
2

TRIMESTRE
8

1
0

1
1

1
2

10 12 10 11 11 11 12 11 11 11 10 10 32 33 34 31
7

6 18 18 17 19

10 OPTRA
7 4 4 3 3 3
algoritmo
krros
inicio
registro t1
car modelo[10]
ent MES[12], TRI[4];
fin_registro
t1 PROD[10];
ent i,j,k,sum,N;
repetir_desde(i=1;i<=10;i++)
mostrar("modelo",i)
leer(PROD[i].modelo)

3 repetir_desde(i=1;i<=10;i=i+1)
3 2 2 3 15 9 9 7
repetir_desde(j=1;j<=4;j=j+1)
sum=0;

repetir_desde(j=1;j<=12;j=j+1)
mostrar("MES ",j)
leer(PROD[i].MES[j])
fin_repetir_desde
fin_repetir_desde

repetir_desde(k=1;k<=3;k=k+1)
N=3*(j-1)+k;
sum=sum+PROD[i].MES[N];
fin_repetir_desde
PROD[i].TRI[j]=sum;
fin_repetir_desde
fin_repetir_desde
repetir_desde(i=1;i<=10;i++)
mostrar(PROD[i].modelo)
repetir_desde(j=1;j<=4;j=j+1)
mostrar(PROD[i].TRI[j])
fin_repetir_desde
fin_repetir_desde
fin

trimestre
j

1
1
1
2
2
2
3
3
3
4
4
4

mes
k

1
2
3
1
2
3
1
2
3
1
2
3

N=3*(j-1)+k

1
2
3
4
5
6
7
8
9
10
11
12

repetir_desde(i=1;i<=10;i=i+1)
repetir_desde(j=1;j<=4;j=j+1)
sum=0;
repetir_desde(k=1;k<=3;k=k+1)
N=3*(j-1)+k;
sum=sum+PROD[i].MES[N];
fin_repetir_desde
PROD[i].TRI[j]=sum;
fin_repetir_desde
fin_repetir_desde

mes

trimestre

mes
j

1
2
3
4
5
6
7
8
9
10
11
12

trimestre
rest sum= t=1 TRI[t]
o
0

1
2
0
1
2
0
1
2
0
1
2
0

10
22
32
11
22
33
12
23
34
11
21
31

1
1
1
2
2
2
3
3
3
4
4
4

x
x
32
x
x
33
x
x
34
x
x
31

repetir_desde(i=1;i<=10;i=i+1)
t=1
sum=0
repetir_desde (j=1;j<=12;j++)
sum=sum+PROD[i].MES[j]
resto=j%3
si(resto==0)
PROD[i].TRI[t]=sum
tr=tr+1
sum=0
fin_si
fin_repetir_desde
fin_repetir_desde

mes

trimestre

EJERCICIO N 8
Se tienen dos tablas que contienen los datos de los PADRES (NOMBRE,
CEDULA, DIRECCIN, TELEFONO) e HIJOS (NOMBRE, CEDULA,
CEDULA_PADRE, EDAD). Escribir un algoritmo tipo men que permita:
Buscar el telfono de un padre, utilizando la cedula del hijo.
Mostrar el numero de hijos que tiene cada padre en la escuela.
NOMBRE

CED1

DIRECCION

TEFE
F

PEDRO

1555

PO V CENTRAL

91234

JUAN

7766

PO V
COLOMBIA

95567

LUIS

5544

SF UD45

93876

ROSA

9876

SF UD46

98888

MARIA

2341

PO V LATINA

96666

CARLOS

8877

SF EL GALLO

91111

JOSE

4356

PO V ASIA

96675

PAULA

9988

PO UNARE

97777

PABLO

4439

PO CAMPO F

99999

CARMEN

5439

PO V CENTRAL

93333

NOMBRE
MARIA
CARLOS
LUIS
JUAN
SAUL
ANA
MARIO
JUANA
LUIS
LINA
PABLO
HUGO
JAIME
RAUL
FLORA
DANIEL
NORA
ELIA

CED2
15111
14333
14888
15099
16789
15454
15555
14999
15744
12333
13997
13777
12876
16222
13456
16755
13456
12998

CED1
5439
5439
8877
2341
5544
1555
7766
9988
7766
4356
1555
7766
5544
9876
2341
8877
4356
9988

EDAD
8
9
9
8
7
8
8
9
8
12
10
10
11
7
10
7
10
12

EJERCICIO N 8
algoritmo escuela
repetir
inicio
mostrar("[1] Lista padres")
registro T1
mostrar("[2] Lista hijos")
car
nombre[12], dir[20]
mostrar("[3] Buscar Telefono")
ent ced1, telf
mostrar("[4] Cant hijos x padre")
fin_registro
mostrar("[5] Salir")
registro T2
mostrar("Opcion: "), leer(opc)
car
nombre[12]
en_caso_de(opc)
ent ced2, ced1, edad
caso 1:
fin_registro
repetir_desde(i=1;i<=10;i=i+1)
ent i,j, cedula, flag, cont
mostrar(PA[i].nombre)
T1 PA[10]
mostrar(PA[i].ced1
T2 HI[20]
fin_repetir_desde
repetir_desde(i=1;i<=10;i=i+1)
mostrar("Ingrese datos padre",i)
caso 2:
mostrar("nombre: "), leer(PA[i].nombre
repetir_desde(i=1;i<=20;i=i+1)
mostrar("cedula: "), leer(PA[i].ced1
mostrar(HI[i].nombre)
mostrar("direccion: "), leer(PA[i].dir
mostrar(HI[i].ced2)
mostrar("telefono: "), leer(PA[i].telf
fin_repetir_desde
fin_repetir_desde
caso 3:
repetir_desde(i=1;i<=20;i=i+1)
mostrar("Ingrese datos hijo ",i)
caso 4:
mostrar("nombre: "), leer(HI[i].nombre
mostrar("cedula: "), leer(HI[i].ced2
mientras(opc<5)
mostrar("cedula padre: "), leer(HI[i].ced1
mostrar("edad: "), leer(HI[i].edad fin
fin_repetir_desde

EJERCICIO N 8
caso 3:
flag=0;
mostrar("cedula: "), leer(cedula)
repetir_desde(i=1;i<=20;i=i+1)
si(cedula == HI[i].ced2)
flag=1;
repetir_desde(j=1;j<=10;j=j+1)
si(HI[i].ced1==PA[j].ced1)
mostrar("Padre: ",PA[j].nombre)
mostrar("Telef: ", PA[j].telf)
fin_si
fin_repetir_desde
fin_si
fin_repetir_desde
si(flag==0)
mostrar("Cedula No Existe")
fin_si
caso 4:
repetir_desde(i=1;i<=10;i=i+1)
cont=0;
repetir_desde(j=1;j<=20;j=j+1)
si(PA[i].ced1==HI[j].ced1)
cont=cont+1
fin_si
fin_repetir_desde
mostrar(PA[i].nombre, "tiene", cont, "hijos")
fin_repetir_desde

EJERCICIO N 9
Se tiene la informacin sobre la
pro-duccin mensual de 10 hornos
de una Acera durante un ao. La
informacin se guarda en una
estructura que tiene 2 campos N
del horno (1 a 10), Mes (1 a 12). Se
requiere disear un algoritmo que
calcule y muestre la produccin
promedio por horno y la produccin
promedio por mes.

algoritmo hornos_2
inicio
entero i, j
registro t_prod
entero HOR
real TON[12],PROM
fin_registro
t_prod PRO[10]
real PRO_MES[12]
repetir_desde( i=1,i<=10,i=i+1)
S=0
repetir_desde (j=1,j<=12,j=j+1)
S = S + PRO[i].TON[j]
fin_repetir_desde
PRO[i].PROM = S/12
mostrar(PRO[i].PROM )
fin_repetir_desde
repetir_desde (i=1,i<=12,i=i+1)
S=0
repetir_desde( j=1,j<=10,j=j+1)
S = S + PRO[j].TON[i]
fin_repetir_desde
PRO_MES[i] = S2[i]/10
mostrar(PRO_MES[i])
fin_repetir_desde
fin

EJERCICIO N 10
Una empresa Distribuidora de Energa Elctrica lleva el control del
consumo de sus clientes para los ltimos diez aos, como el que se
muestra en la tabla:
N

2003

cedula nombre

1 2 --- 12 prom

2004
1

2 12 prom 1

2012
2 12 prom

1
2
:

Escribir un algoritmo que permita almacenar los datos, buscar el cliente


1000
que
tuvo el mayor consumo en los diez aos indicando el mes y el ao
en el cual ocurri ese consumo y calcular y almacenar el promedio de
los diez aos para cada cliente.
registro T1
real mes[12], prom
fin_registro
registro T2
car nombre[12]
ent cedula
T1
ao[10]
real prom
fin_registro

EJERCICIO N 10
algoritmo corpoelec
inicio
car MES[12]
[4]={"ENE","FEB","MAR","ABR","MAY","JUN,"JUL","AGO","SEP","OCT","NOV","DIC"}
registro T1
real mes[12], prom
fin_registro
registro T2
car nombre[12]
ent cedula
T1 ao[10]
real prom
fin_registro
T2 TABLA[1000]
ent i, j, k
real sum1, sum2
repetir_desde(i=1;i<=1000;i=i+1)
mostrar("Datos cliente ",i)
mostrar("nombre: "), leer(TABLA[i].nombre)
mostrar("cedula: "), leer(TABLA[i].cedula)
ao=2003
repetir_desde(j=1; j<=10; j=j+1)
mostrar("Datos ao ",ao)
repetir_desde(k=1; k<=12; k=k+1)
mostrar("Consumo de ",MES[k])
leer(TABLA[i].ao[j].mes[k]
fin_repetir_desde
ao=ao+1
fin_repetir_desde

max=0
repetir_desde(i=1;i<=1000;i=i+1)
sum1=0
repetir_desde(j=1; j<=10; j=j+1)
sum2=0
repetir_desde(k=1; k<=12; k=k+1)
sum2=sum2+ TABLA[i].ao[j].mes[k]
si(TABLA[i].ao[j].mes[k] > max)
max= TABLA[i].ao[j].mes[k]
ao_max=j+2002
mes_max=MES[k]
cliente_max=TABLA[i].nombre
fin_si
fin_repetir_desde
TABLA[i].ao[j].prom=sum2/12
sum1=sum1+ TABLA[i].ao[j].prom
fin_repetir_desde
TABLA[i].prom=sum1/10
fin_repetir_desde
mostrar("El valor mximo es : ", max)
mostrar("corresponde a: ", cliente_max)
mostrar("en el mes: "mes_max)
mostrar("del ao ", ao_max)
repetir_desde(i=1;i<=1000;i=i+1)
mostrar(TABLA[i].cedula)
mostrar(TABLA[i].nombre)
mostrar(TABLA[i].prom)
fin_repetir_desde
fin

You might also like