Sei sulla pagina 1di 43

Universidad de Pamplona

Facultad de Ingenieras y Arquitectura


Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


1
Programacin 1

Objetivo del Curso:
Adquirir habilidad en la solucin de problemas por medio del computador, mediante el desarrollo del pensamiento algortmico.
Desarrollar habilidades en el uso de por lo menos un lenguaje y una herramienta de programacin.
Desarrollar aptitudes de anlisis, diseo y codificacin de soluciones a problemas bsicos de programacin.

Contenidos del curso
1. Generalidades
1.1Conceptos de mquina y computador
1.2 Componentes funcionales del computador
1.2.1 Software
1.2.1.1 Conceptos
1.2.1.2 Clasificacin
1.2.2 Hardware
1.2.2.1 Concepto
1.2.2.2 Divisin Funcional (CPU, Memoria y dispositivos de entrada y salida)

2. Resolucin de Problemas
2.1. Metodologa para la resolucin de problemas
2.2 Conceptos preliminares (Algoritmo, dato, variable, constante, expresin, tipos de expresiones)
2.3 Diagramas de Flujo
2.4 Estructuras de Control
2.4.1 Secuenciales o lineales
2.4.2 De seleccin
2.4.3 De repeticin (Para, Mientras que, hacer mientras)
2.5 Programacin modular
2.5.1 funciones
2.5.2 Parmetros por valor
2.5.2 Parmetros por referencia


3. Lenguaje de programacin
3.1 Fundamentos de C
3.2 Herramienta de programacin en C (dev c++)
3.3 Procedimientos para la edicin, compilacin y ejecucin de programas

Bibliografa Recomendada
Fundamentos de Programacin, Algoritmos, Estructuras de datos y Objetos, Luis Joyanes Aguilar, Tercera edicin. Editorial
McGraw Hill.
Informtica Bsica, Eduardo Alcalde y Miguel Garcia, Segunda edicin, Editorial McGraw Hill.
Fundamentos de Programacin, Algoritmos y Estructuras de datos, Luis Joyanes Aguilar, Segunda edicin. Editorial McGraw Hill.
Fundamentos de Programacin, Libro de problemas, Luis Joyanes Aguilar, Editorial McGraw Hill.
Turbo C/C++ 3.1 Manual de referencia, Herbert Schildt, McGraw Hill
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


2

Contenidos de la Gua

1 GENERALIDADES ................................................................................................................................................................. 3
1.1 CONCEPTOS PRELIMINARES PARA LA PROGRAMACIN....................................................................................................... 6
1.2 ESTRUCTURAS DE CONTROL............................................................................................................................................... 8
2 ESTRUCTURAS DE CONTROL BSICAS (ENTRADA, ASIGNACIN Y SALIDA) .................................................. 8
3 ESTRUCTURAS DE SELECCIN O CONDICIONALES............................................................................................... 10
4 ESTRUCTURAS REPETITIVAS......................................................................................................................................... 18
4.1 ESTRUCTURAS REPETITIVAS PARA ............................................................................................................................... 19
4.2 ESTRUCTURAS REPETITIVAS MIENTRAS QUE ................................................................................................................ 21
4.3 ESTRUCTURAS REPETITIVAS HACER MIENTAS ............................................................................................................. 22
4.4 EJERCICIOS MISCELNEOS SOBRE ESTRUCTURAS DE CONTROL REPETITIVAS................................................................... 22
5 PROGRAMACIN MODULAR (FUNCIONES) ............................................................................................................... 32
6 RESUMEN DE NOTACIONES DE LAS ESTRUCTURAS DE CONTROL................................................................... 42

Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


3

1 Generalidades
1- Defina y diferencie los siguientes conceptos generales:
1. Mquina.
1.1. Maquina Abstracta.
1.2. Maquina concreta.
2. Computador.
2.1. Software.
2.1.1. Lenguaje de programacin.
2.1.2. Sistemas de informacin.
2.1.3. Software Aplicativo.
2.1.4. Sistema Operativo.
2.2. Hardware.
2.2.1. Dispositivos E/S.
2.2.2. CPU (Unidad Central de Procesamiento).
2.2.3.2. Unidad de control (UC).
2.2.3.3. Unidad Aritmtico Lgica (ALU)
2.2.3.1 Memoria
2.2.3.1.1. Memoria de Datos.
2.2.3.1.2 Memoria de Instrucciones.
3. Algoritmo.
4. Traductores de Lenguaje
4.1. Compilador.
4.2. Interprete

2-Describir lo que representa cada una de siguientes figuras

Sistemas Operativos
Hardware
Software
Aplicativo
Sistemas de
Informacin
Lenguajes de
Programacin
Usuario


Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


4
Usuario
Dispositivos
de Entrada de datos
Dispositivos
de Salida de datos
Unidad Central de
procesamiento
Unidad de
Control
Unidad
Aritmetico-lgica
Memoria de
Instrucciones
Memoria de
Datos
a
b
c = a + b
c
10
12
22
a
b
c
Programador
Disea
los programas
Da y recibe informacin del
computador, cuando ejecuta un
programa, ya construido por un
programador
Computador
Solo ejecuta las
instrucciones,
almacenadas en
la memoria de
instrucciones y
previamente
diseadas por el
programador


3-De acuerdo al siguiente grfico que representa las fases en el desarrollo de un programa software, explique en que consiste cada
una de las fases y qu actividades hay que desarrollar en cada una de ellas.
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


5
Anlisis
Problema a solucionar
Diseo
Codificacin
Prueba
Implantacin
Mantenimiento
Reingeniera
Enunciados claros, sin ambigedad
de la situacin que se quiere automatizar
mediante la construccin de un programa
de computador
Identificacin de los datos que el usuario tiene que proveer
al computador cuanto el programa est ya construido (datos de entrada),
y de los datos que el computador entrega al usuario
como solucin del problema (datos de salida)
Descripcin de los pasos que debe seguir el computador (algoritmo)
para a partir de los datos de entrada, d solucin al problema.
Estos pasos pueden ser descritos mediante diferentes tcnicas
como diagramas de flujo o seudocdigo
Traduccin de los algoritmos especificados en el diseo
a un lenguaje de alto nivel entendible por el computador
en este caso a C
Verificacin de que el algoritmo,
soluciona el problema.



4- Ejercicios de seleccin mltiple
Un algoritmo debe ser:
a. Corto y Rpido.
b. Finito.
c. Matemtico
d. Complejo

El Diseo produce:
a. El programa ejecutable y las estructuras de los
datos.
b. Unidades de Tratamiento.
c. Un programa informtico.
d. Un algoritmo descrito en pseudocdigo o diagrama
de flujo.
e.Nada

((a div b)>5)and((b-a)>0))
a. No es una expresin vlida
b. Es una expresin numrica
c. Es una expresin booleana
d. Es una expresin alfanumrica

Si a= 3 b= --2 y c= 10 la expresin
((a*b)>c) and ((c div 3)>b) da como resultado
a. -2
Dentro de la metodologia estudiada, la fase de diseo
pretende:
a. Verifica que un algoritmo solucione el problema
b. Describir los pasos que sigue el computador c.
(algoritmo) para que a partir de los datos de entrada d
solucin al problema
d. Identificar los datos de entrada y de salida que
hacen parte de un problema
e. Traducir los algoritmos a un lenguaje de alto nivel
que entiende el computador
f. Todas las anteriores
g. Ninguna de las anteriores

Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


6
b. Falso
c. 1
d. 1
e. Verdadero
f. Ninguna de las anteriores

1.1 Conceptos preliminares para la programacin
Algoritmo: Conjunto de pasos lgicos, secuenciales y finitos para dar solucin a un problema general.
Dato: Es una caracterstica de un objeto o entidad, que adquiere un valor. Por ejemplo, si se piensa en los datos asociados a un
estudiante (la entidad es el estudiante), podemos identificar datos como su nombre, edad, sexo, estado civil, fecha de nacimiento, y
muchos otros ms datos, que pueden relacionarse con el estudiante.
Constante: Un datos se dice que es constante si su valor nunca cambia dentro de un algoritmo.
Variable: Una variable es un dato cuyo valor cambia por lo menos una vez dentro de un algoritmo. Toda variable debe ser
identificada mediante un nombre nico dentro de un algoritmo. Los nombres de las variables son palabras descriptivas del dato que
contienen, sin espacios ni signos de puntuacin, usando solo letras del alfabeto ingles y nmeros, comenzado siempre en letra.
Tipos de datos: Los datos se clasifican segn el tipo de valor que contenga as: Numricos (si su contenido es un nmero)
Alfanumricos (si su contenido es un carcter o una cadena de caracteres) y Booleanos (si su contenido es un valor de verdad, es
decir un verdadero o un Falso).

Enteros
Enteros Cortos
Enteros Propiamente dichos
Enteros Largos


Numricos

Reales

Tipos de datos



Alfanumricos



Caracteres

Cadenas de Caracteres (String)




Boolenos


Expresin: Es una combinacin apropiada de operandos, operadores, signos de agrupacin y funciones. Los operandos son datos
constantes o variables, los signos de agrupacin son los parntesis y las funciones son las predefinidas por el lenguaje o construidas
por el programador.
Nota: en este curso slo esta permitido el uso de los operadores aqu definidos.
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


7





Aritmticos
Suma +
Resta
Divisin real /
Multiplicacin *
Divisin entera div
Residuo de divisin entera mod

X Y X and Y X or Y Not X
V V V V F
V F F V F
F V F V V


Lgicos

And
Or
not

F F F F V


Relacionales

Mayor >
Menor <
Mayor o igual
Menor o Igual
Igual = =
Diferente











Operadores



Alfanumricos

El operador de concatenacin que tiene algunos lenguajes de
programacin y que bsicamente sirve para pegar dos
cadenas de caracteres

Evaluar una expresin: Es el proceso mediante el cual se realizan las operaciones indicadas en una expresin, con los valores que
en ese instante tengan las variables, respentando el orden que plantean los signos de agrupacin y obteniendo un nico valor que
puede ser un nmero, un carcter o cadena de caracteres, o un valor de verdad (un falso o un verdadero)
Tipos de expresin: Una expresin puede ser numrica, alfanumrica o booleana. Es numrica si despus de evaluar (calcular la
expresin) su resultado es un nmero; es alfanumrica si despus de evaluar la expresin el resultado es un carcter o cadena de
carcter y es booleana si despus de evaluar la expresin su resultado es un valor de verdad (un verdador o un falso)
Ejemplos: si a, b y c son datos numricos
(a+b)*c es una expresin numrica
((a+b)*c) > 5 es una expresin boleana
((a>b) and (c>a+b)) or (c >3) es una expresin booleana
(a div 4) = 0 es una expresin booleana
(a mod 5) > ( b div 4) es una expresin boolena
((a mod 5) > 4)*c no es una expresin vlida
((a mod 5) - 4)*c es una expresin numrica

5-Complete la siguiente tabla, sabiendo que a,b,c,d son variables numricas enteras cuyos valores en el instante que se desea
calcular las siguientes expresiones son: a=10, b=0 c=45 d=a
Expresin Valor generado al evaluar la expresin Tipo de expresin
(a*b) div 3
((a*b)>50 ) and ( 3> c )
((a-b)*5 ) mod d
(a +c ) < d

Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


8
1.2 Estructuras de control

Entrada de datos
Salida de datos
Asignacin


De seleccin o condicionales

Para
Mientras que






Estructuras de control

Repetitivas


Hacer mientras


2 Estructuras de control bsicas (Entrada, Asignacin y Salida)
Estructuras de control
Nombre Diagrama de flujo Seudocdigo En C
Entrada o captura de datos
b



Leer b

scanf ( %d, &b );
Salida o impresin de datos
a



Imprimir a

printf (cadena de formateo , a );
Asignacin
a = b+c


a = b + c

a = b + c ;

En una asignacin hay que tener en cuenta:
a = b + c
Variable cuyo valor
va a cambiar
Smbolo de asignacin
Expresin que va a
ser calculada, y cuyo resultado
ser almacenado en
la variable de la izquierda
En una asignacin,
primero se calcula el
valor de la expresin y
luego el resultado es
almacenado en la
variable de la izquierda
En una asignacin, el
tipo de dato de la
variable de la izquierda
debe ser igual al tipo de
expresin de la derecha



Para cada uno de los siguientes ejercicios realizar el respectivo anlisis, diseo y codificacin:
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


9
6-Calcular la altura de un cono conociendo el volumen y el radio de su base. a r V . . .
3
1
2
=
7-Convertir una temperatura dada en grados Celsius a grados Fahrenheit, sabiendo que 32
5
9
+ = c F
8-Dado un nmero de 3 cifras invertir el nmero. Ej 791 es, 197.

9-Tres personas deciden invertir su dinero para crear una empresa. Cada una de ellas invierte una cantidad distinta. Obtener el
porcentaje que cada quien invierte con respecto a la cantidad total invertida.

10-Calcular el rea de un tringulo en funcin de las longitudes de sus lados ) )( )( ( c p b p a p p Area =
donde 2 / ) ( c b a p + + = (semiperimetro), utilice la funcin sqrt(x) que calcula la raz cuadrada de x.

11-En una empresa que fabrica 3 tipos de productos (A, B, C) se cuenta con la colaboracin de 3 empleados (E1, E2, E3) para la
elaboracin de los mismos. Los tiempos que cada empleado demora en la elaboracin de un artculo de cada tipo de producto se
dan en la siguiente tabla en minutos:
Tipo Producto
Empleado
A B C
E1 12 13 7
E2 9 15 17
E3 15 8 6
Se desea saber, dada una determinada cantidad de artculos a fabricar de cada producto, cuanto tiempo laborar cada empleado en
total (estas cantidades puede ser diferente para cada producto).

12-Determinar el valor de una llamada telefnica, si por los primeros 3 minutos se cobran 300 minutos c/u y 150 por cada minuto
adicional. Suponer que las llamadas siempre duran ms de 3 minutos.

13-Dados los coeficientes de una ecuacin cuadrtica 0
2
= + + c bx ax (los coeficientes son a, b y c ) determinar sus races,
sabiendo que
a
c a b b
X
. 2
. . 4
2

=
14-Un alumno que desea saber cual ser su calificacin final en la materia de Programacin I. Dicha calificacin se compone de
los siguientes porcentajes
60 % Del promedio de sus tres calificaciones parciales.
25% Varios
15% Trabajos

15-Un vendedor recibe un sueldo base, ms un 10% extra por comisin de sus ventas, el vendedor desea saber cunto dinero
obtendr por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibir en el mes tomando en cuenta su
sueldo base y comisiones.

16-En un hospital existen tres reas: Ginecologa, Pediatra, Traumatologa. El presupuesto anual (o monto) del hospital se reparte
conforme a la siguiente tabla:
rea Porcentaje de presupuesto
Ginecologa 40%
Pediatra 30%
Traumatologa 30%
Calcular la cantidad de dinero que recibir cada rea, para cualquier monto presupuestal.
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


10


3 Estructuras de seleccin o Condicionales

Condicin
si no



Si condicin entonces
....Instrucciones para
....cuando la condicin
....sea verdadera

Sino
....Instrucciones para
....cuando la condicin
....sea falsa

Fin si

if ( condicin )
{

....Instrucciones en c para
....cuando la condicin
....sea verdadera
}
else
{

....Instrucciones en c para
....cuando la condicin
....sea falsa
};
En una estructura de seleccin hay que tener en cuenta:
Condicin
si no
Expresin booleana
que se evaluar para decidir
que conjunto de instrucciones
se ejecutar
Conjunto de instrucciones
que se ejecutarn, cuando
la condicin sea verdadera
Conjunto de instrucciones
que se ejecutarn, cuando
la condicin sea Falsa
Llegada a la
estructura
Terminacin de la estructura
Aqu se deben encontrar los caminos
del si y del no para continuar el algoritmo


17-Capturar por teclado un nmero y escriba el valor absoluto del mismo, sin usar funciones predefinidas en el lenguaje.

18-Calcular el nmero de pulsaciones que debe tener una persona por cada 10 segundos de ejercicio aerbico; la formula que se
aplica cuando el sexo es femenino es:
num. pulsaciones = (220 - edad)/10
y si el sexo es masculino:
num. pulsaciones = (210 - edad)/10

19-Dados 3 nmeros determinar el mayor (o el menor o el del medio en otros algoritmos)

20-Calcular el costo total de los pasajes areos para un viajero en la aerolnea VIENTOS AIR, para ello el viajero debe suministrar
los siguientes datos para registrar su reserva:
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


11
Nmero de Cdula.
Clase en la que desea viajar.
Destino.
Tipo de viaje.
Nmero de pasajes a adquirir.
Los costos de un (1) pasaje (en pesos) de acuerdo a la clase en que se viaja y a su destino son:
Destinos
Clases
Miami Madrid
Primera 1300000 2700000
Segunda 1120000 2500000
Tercera 1100000 2320000
Se debe tener en cuenta que el tipo de viaje corresponde a la siguiente tabla:
1 De negocios
2 Familiar
3 Turstico individual
Cuando el viaje sea de negocios no se realizar descuento al pasaje, cuando sea familiar el descuento ser del 7% para cada pasaje
individual, cuando sea turstico individual el descuento ser del 4,75%. Adems, dependiendo del nmero de pasajes a adquirir se
realizar un descuento adicional de acuerdo a la siguiente tabla:
Rango Descuento
3 5 2,6%
6 10 5,38%
11 y ms 7,24%

21-El Seguro Social requiere clasificar a las personas que se jubilarn en el ao de 2005. para este programa el seguro social
plantea las siguientes reglas:
Existen tres tipos de jubilaciones: por edad, por antigedad joven y por antigedad adulta. Las personas adscritas a la jubilacin
por edad deben tener 60 aos o ms y una antigedad en su empleo de menos de 25 aos. Las personas adscritas a la jubilacin por
antigedad joven deben tener menos de 60 aos y una antigedad en su empleo de 25 aos o ms. Las personas adscritas a la
jubilacin por antigedad adulta deben tener 60 aos o mas y una antigedad en su empleo de 25 aos o mas. Determinar en que
tipo de jubilacin, quedara adscrita una persona conociendo su edad y tiempo de trabajo.
Solucin
Anlisis:
Entrada: e: edad del empleado a: antigedad del empleado en la empresa
Salidas: Mensaje con el tipo de jubilacin
Diseo
Seudocdigo Diagrama de Flujo
inicio
imprimir digite la edad del empleado
leer e
imprimir digite la antigedad del empleado
leer a
si e >= 60 entonces
si a >=25 entonces
imprimir jubilacin por antigedad adulta
sino
imprimir jubilacin por edad
finsi
sino
si a >= 25 entonces
imprimir jubilacin por antigedad joven
sino
imprimir no tiene jubilacin
finsi

Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


12
fin si
fin
e
a
Inicio
e60
si no
a25 a25
Jubilacin
antigedad adulta
Jubilacin
por edad
Jubilacin
antigedad joven
No tiene
Jubilacin
no
si
no si
Fin

Codificacin
#include <stdio.h>
main( )
{
int e,a;
printf("digite la edad del empleado \n");
scanf("%d", &e);
printf("digite la antigedad del empleado \n");
scanf("%d",&a);
if (e >= 60)
{
if (a >= 25)
{
printf("jubilacin por antigedad adulta \n");
}
else
{
printf("jubilacin por edad \n");
};
}
else
{
if (a >= 25)
{
printf("jubilacin por antigedad joven \n");
}
else
{
printf("no tiene jubilacin \n");
};
};
}


Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


13
22-Capturar por teclado tres nmeros cualquiera (A, B y C) que corresponden a las aristas de un tringulo; el programa debe
determinar que tipo de triangulo, teniendo en cuenta la siguiente clasificacin:
Si los tres lados son iguales es equiltero
Si solo dos lados son iguales issceles
Si todos son diferentes escalenos
Solucin
Anlisis:
Entrada: A,B,C: medidas de las tres aristas de un tringulo
Salidas: Mensaje con el tipo de tringulo
Diseo
Seudocdigo Diagrama de flujo
inicio
imprimir digite el valor de la arista1
leer a
imprimir digite el valor de la arista2
leer b
imprimir digite el valor de la arista3
leer c
si a = b entonces
si b = c entonces
imprimir tringulo equiltero
sino
imprimir tringulo issceles
finsi
sino
si a= c entonces
imprimir tringulo issceles
sino
si b = c entonces
imprimir tringulo issceles
sino
imprimir tringulo escaleno
finsi
finsi
fin si
fin
a, b, c
inicio
a = b
si no
b = c
a = c
tringulo
equiltero
tringulo
issceles
tringulo
issceles
tringulo
escaleno
no si
fin
no si
b = c
tringulo
issceles
no si




Codificacin en C
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


14
#include <stdio.h>
main( )
{
int a,b,c;
printf("digite el valor de la arista1\n");
scanf("%d", &a);
printf("digite el valor de la arista2\n");
scanf("%d", &b);
printf("digite el valor de la arista3\n");
scanf("%d", &c);
if (a = = b)
{
if (b = = c)
{
printf("tringulo equiltero \n");
}
else
{
printf("tringulo issceles \n");
};
}
else
{
if (a = = c)
{
printf("tringulo issceles \n");
}
else
{
if (b = = c)
{
printf("tringulo issceles \n");
}
else
{
printf("tringulo escaleno \n");
};
};
};
} // aqu termina el main

23-Capturar por teclado dos valores los cuales corresponden al lanzamiento de dos dados. Dependiendo de los valores imprimir:
Si los dos valores son iguales imprimir Par
Si los dos valores son desiguales imprimir Lanzamiento
Si la suma de los valores es menor a 6 imprimir Juego Perdido
Si algn valor es 1 o 2 imprimir Puntaje Deficiente
Si algn valor es 5 o 6 imprimir Puntaje Alto

24-Un empleado trabajar 40 horas semanales en una empresa y recibe un salario de 260.000 pesos semanales. Si excede de las 40
horas la empresa debe pagar un recargo del 30% por hora extra trabajada. Dadas las horas semanales trabajadas de un empleado,
determinar el salario a pagar.

Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


15
25-Suponga que las tarifas de una compaa de gas se basan en el consumo de acuerdo con la siguiente informacin: los primeros
70 metros cbicos de gas usado tiene un costo mnimo de 500 pesos, los siguientes 100 metros cbicos de gas usado 50 pesos por
metro cbico, los siguientes 230 metros cbicos de gas usado 25 pesos por metro cbico, por encima de 400 metros cbicos de gas
usado 15 pesos por metro cbico. Dada la lectura anterior y actual de gas en metros cbicos, calcule el valor de la factura; teniendo
en cuenta que si la lectura actual es menor a la anterior hay una rebaja del 20% en las lecturas menores de 70 y mayores de 170
metros cbicos; adems si la lectura actual es igual al 50% de la lectura anterior se har una rebaja del 50% a las lecturas mayores
de 170 y menores de 400 metros cbicos.

26-En un cajero automtico se necesita determinar el menor nmero mnimo de billetes de 10.000, 5.000, 2.000, 1.000, y mnimo
de monedas de 500, 200 y 100 necesarios para pagar una cantidad X dada por teclado.

27-Desplegar un men con las opciones que le permita calcular el rea de: Cuadrado, Crculo, Tringulo, Rectngulo. Para lograr
lo anterior debe aplicar las formulas matemticas correspondientes para cada figura.

28-Calcular el valor de la cuota mensual y el nmero de cuotas a pagar, por la realizacin de un prstamo en un banco con las
siguientes condiciones: Si el prstamo es menor de $500000 se paga un inters de 10% sobre el total del prstamo y las cuotas
mensuales quedan de un 3% del monto total. Si el prstamo est entre $500000 y $1000000(inclusive) se paga un inters del 7% y
las cuotas quedan de un 5% del monto total. Y si el prstamo es superior a $1000000 se paga un inters del 4% y las cuotas quedan
de un 7% del monto total.

29-Una empresa de servicios pblicos desea liquidar el total de la factura teniendo en cuenta:
Estrato Nivel de
Consumo
Tarifa Bsica
1 <=10 $5000
2 <=25 $10000
3 <=35 $15000
4 <=40 $20000
Si el nivel de consumo se excede, debe pagar por cada punto adicional en el nivel de consumo $800, en cualquiera de los 4 estratos.
Ejemplo: Si se lee el estrato 3 y el nivel de consumo 45 entonces el valor de la factura es de 15000+(10*800)=23000 pesos

30- Dado un nmero X de 3 cifras determine la suma de las cifras pares y la suma de las cifras impares
Ejemplo: Si el nmero de tres cifras es 364, de los tres dgitos, los pares son 6 y 4.... Y en este caso el nico impar es 3 por lo tanto
la Suma de pares es 10 y la Suma de Impares 3.

31-Calcular e imprimir el valor total a pagar por concepto matricula de un estudiante.
Para realizar estos, se debe capturar el cdigo de estudiante, que permite definir los parmetros de liquidacin e informacin
adicional (El cdigo esta compuesto por 5 dgitos)
El primer dgito permite identificar el tipo de carrera que cursa el estudiante y valor base de matricula.
El segundo dgito representa la jornada y permite obtener recargo sobre la matricula.
Los siguientes dgitos (3) el consecutivo de la carrera.
Si el alumno tiene un consecutivo par tiene un descuento 20%.
Si el alumno tiene un consecutivo impar tiene un descuento 10%.
Las carreras estn definidas as:
Cdigo Tipo Valor base Matricula
1 Profesional $300.000
2 Tecnologa $150.000
3 Tcnico Profesional $100.000
La jornada permite definir un recargo as:
Cdigo Tipo Porc. Recargo
1 Diurna 5%
2 Nocturna 10%
El valor total de matricula (VTM) se calcula as:
V. T. M. = valor base de matricula + (valor base de matricula * Porc. recargo)
- (valor base de matricula * Porc. Desc)
Ejemplo: El alumno tiene el cdigo 12345. La liquidacin seria:
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


16
Valor base de Mat. 300.000 (tipo de carrera es 1 Profesional)
Recargo 30.000 (la jornada 2 es nocturna con recargo del 10%)
Descuento 30.000 (el consecutivo es impar 345 y tiene un Desc 10%)
V.T.M = 300.000

32-Un caf Internet cobra a sus usuarios de la siguiente forma.
Tiempo de navegacin Valor a pagar
De 1 a 15 minutos 500
De 16 a 30 minutos 1000
De 31 a 60 minutos 1400
Superior a 60 minutos, 20 pesos el minuto adicional.
Dado el tiempo navegado por una persona (en minutos) determinar el valor a pagar.

33- La empresa minutos ofrece la venta de minutos de celular de acuerdo a las siguientes condiciones:
La tarifa se cobra por minutos y segundos aproximados de la siguiente forma: Si el nmero de segundos es mayor de 30 se cobra
un minuto completo, pero si es menor o igual a 30 no se cobran los segundos excedidos.
La tarifa por minuto esta dada por la siguiente tabla
Tiempo de conversacin Valor a pagar
De 1 a 5 minutos 300 pesos por minuto
De 5 a 10 minutos 200 pesos por minuto
Ms de 10 minutos 1500 pesos por los 10 primeros minutos ms 100
pesos por minuto que se exceda de los 10 minutos
La empresa ofrece el 10% de descuento sobre el total a pagar, para las llamadas que cuesten ms de 1600 pesos. Dado por teclado
el tiempo de conversacin de una persona (en minutos y segundos) determinar el valor a pagar.

34-Se requiere calcular el valor neto a pagar a un trabajador (Contratistas y de Planta) en un mes, sabiendo que cada trabajador
tiene un sueldo bsico y teniendo en cuenta lo siguiente:
A todo trabajador de planta, se le debe descontar el 4% del sueldo bsico por concepto de salud y el 3.8% del sueldo bsico por
concepto de pensin.
Si el trabajador es de Planta y su sueldo bsico es de menos de $ 437.000 se le debe cancelar $ 40.000 adicional por concepto de
auxilio de transporte.
Si el trabajador es de Planta y devenga ms de $ 1.750.000 de salario bsico, se le descontar el 1% del sueldo bsico por concepto
de Solidaridad Pensional.
Si el trabajador es Contratista, se le debe descontar el 10% por concepto de retencin en la fuente solamente si su salario es
superior a $ 1.500.000.

35-En la ciudad de Pamplona se va a realizar un concierto por el da de amor y amistad todas las boletas estn identificadas con un
nmero de 6 cifras, que esta compuesto de la siguiente forma:
Si la suma del primer y el ltimo dgito es mayor que el dgito cinco la boleta es valida, en caso contrario no es valida.
El segundo Dgito determina el tipo de Boleta segn la siguiente tabla
Tipo de Entrada
De 1 a 5 Gramilla
De 6 a 9 incluyendo 0 General
El nmero que forma el tercer y cuarto dgito determina la hora y la puerta de entrada al evento segn la siguiente tabla

Si es par Puerta 1 a partir de las 7 pm
Si es impar Puerta 2 a partir de las 8 pm
Analice y disee un algoritmo donde se ingrese el nmero de una boleta y posteriormente determine: Si la boleta es valida, el tipo
de boleta y la puerta y horario al cual debe ingresar el espectador.
Ejemplo
Numero de Boleta 4 3 7 9 5 2

La suma del primer y ltimo dgito 4+2 = 6 6 es mayor que 5 la boleta es valida
El Segundo dgito es 3 Tipo de Boleta Vip
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


17
El tercer y cuarto dgito forman el 79 que es impar La persona entra por la Puerta 2 a partir de las 8 pm

36-El gobierno del estado de Mxico desea reforestar un bosque que mide determinado nmero de metros cuadrados. Si la
superficie del terreno excede a 1 milln de metros cuadrados, entonces decidir sembrar de la siguiente manera:
Porcentaje de la superficie del bosque Tipo de rbol
70% pino
20% oyamel
10% cedro
Si la superficie del terreno es menor o igual a un milln de metros cuadrados, entonces decidir sembrar de la siguiente manera:
Porcentaje de la superficie del bosque Tipo de rbol
50% pino
30% oyamel
20% cedro
El gobierno desea saber el numero de pinos, oyameles y cedros que tendr que sembrar en el bosque, si se sabe que en 10 metros
cuadrados caben 8 pinos, en 15 metros cuadrados caben 15 oyameles y en 18 metros cuadrados caben 10 cedros.

37- Calcular el valor a pagar de la factura del celular conociendo el tipo de plan, los minutos y la cantidad de mensajes de texto
consumidos en el mes, segn la siguiente tabla:
Tipo de plan Minutos Bsicos Mensajes T Bsicos Cargo Bsico
1. Ideal 100 10 80.000
2. Extensin 135 20 120.000
3. Familiar 425 30 180.000
Cada minuto extra tiene un costo de 855 pesos y los mensajes de texto un costo de 370 pesos (Para cualquier plan).

38-Calcular el salario final a pagar a un empleado a quien se le paga a X pesos la hora trabajada. Se hace un descuento de acuerdo
a la siguiente tabla comparativa con el salario mnimo (dado por teclado)

si el salario esta entre Descuento
1 y 2 (incluido) salarios mnimos 5%
2 y 6 (incluido) salarios mnimos 7%
Mas de 6 salarios mnimos 10%
En caso de que el salario sea menor a un salario mnimo se le dar una bonificacin de 20.000 pesos.

39-En central de abastos de Pamplona (bodegas donde se almacena al por mayor) se ha establecido un mecanismo para el ingreso
de vehculos que permite el cobro de parqueadero segn las siguientes condiciones: Al centro de abastos entran vehculos con dos
propsitos, algunos entran a descargar productos y otros entran a cargar (estos son los dos tipos de servicio que presta el centro de
abastos 1. Cargue y 2.descargue).
A los vehculos que entran a descargar se les cobra de acuerdo a la siguiente tabla
Peso transportado
Tipo de producto
Menos de 10 toneladas 10 o ms toneladas
1. Perecedero 10000 pesos por tonelada 7000 pesos por tonelada
2. No perecedero 50000 pesos por todo el producto
transportado
50000 por las primeras 10 toneladas y a 5000
pesos cada tonelada que exceda de 10
A los vehculos que entran a cargar se les cobra por el tiempo que permanecen dentro del centro de abastos as: Las primeras dos
horas son gratis para todos los vehculos que entran a cargar. Las horas extras que permanecen dentro del parqueadero se cobran a
2000 pesos la hora (siempre se cobra la hora completa) y tendr un incremento del 25% si el camin mide ms de 4 metros de
largo.
Hacer el anlisis y diseo de un algoritmo que ayude al portero del centro de abastos para calcular el costo de parqueadero de uno
de los camiones que hace uso de estos servicios.

40-Suponiendo que la universidad de Pamplona ha decidido cambiar la tabla de costos de matricula para sus estudiantes y desea
que se realice un programa de computacin que facilite el clculo del costo de la matricula para un estudiante. Las nuevas reglas
para la liquidacin de la matriculas son:
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


18
El valor base de la matricula depende del total de crditos matriculados por un estudiante, un crdito cuesta el 10% de un salario
mnimo legal vigente (dado por teclado).
Los programas acadmicos estn clasificados en tres grupos as: 1. de ingenieras, 2. de salud, 3. Otros.
Dependiendo de esta clasificacin y del sexo del estudiante la matricula tiene un incremento de acuerdo a la siguiente tabla:
Sexo
Tipo de programa
Mujeres Hombres
1. Ingenieras 10% 15%
2. Salud 20.7% 32.5%
3. Otros 3.2% 4.5%
Para las mujeres hay un descuento especial, dependiendo del nmero de hijos que tenga de acuerdo a la siguiente tabla:
Numero de hijos Descuento
Menos de 3 hijos 30.000 pesos por cada hijo
Entre 3 y 5 hijos 50% de descuento sobre el costo base de matricula
Mas de 5 hijos 80% de descuento sobre el costo base de la matricula

41-La secretaria de transito requiere un programa para generar de forma automtica la liquidacin del impuesto de vehculos para
el presente ao.
Para generar el precio a pagar por concepto de impuesto, se requiere que se introduzca el valor comercial del automvil, el nmero
de placa (numero de tres dgitos) y el mes (nmero de 1 a 12) en el cual se va a realizar el pago.
Con el dgito central de la placa se determina el tipo de automvil, lo cual genera el precio bsico del impuesto como se muestra en
la siguiente tabla
Dgito central de la placa Tipo de Vehculo Impuesto bsico
0 a 5 Particular 15 % del valor comercial
6 y 7 Servicio Publico 18% del Valor comercial
8 y 9 Camioneta 20% del Valor comercial
Sobre el impuesto bsico adems se genera un descuento o recargo inicial, dependiendo del mes en que se paga, como se ilustra en
el siguiente cuadro.
Nmero del mes de Pago Descuento o recargo inicial
1 - 4 Descuento del 15%
5 Se paga el impuesto bsico
6 -7 Recargo del 20%
8 en adelante Recargo del 40%
Adicional al descuento bsico, se ha sorteado un descuento de 2% adicional sobre el valor comercial, para los vehculos cuya suma
del primer y ltimo digito de la placa sea par, y de 3% para los que dicha suma sea impar.

Realizar el anlisis, diseo y codificacin en lenguaje C, de un programa que lea el nmero de la placa de un vehculo, su valor
comercial y el mes de pago, e imprima el tipo de vehculo y el precio a pagar por concepto de impuesto.
4 Estructuras repetitivas
Estructura repetitiva
Para

i=1; n ; 1




Para i=1 hasta n inc 1 haga

..... Instrucciones a repetir

fin para


for ( i =1 ; i<=n ; i=i+1 )
{

..... Instrucciones a repetir

};
Estructura repetitiva
Mientras que




Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


19
Condicin
no
si


MQ condicin haga

..... Instrucciones a repetir

fin MQ
while ( condicin )
{

..... Instrucciones a repetir

};

Estructura repetitiva
Hacer Mientras

Condicin
si
no




Hacer

..... Instrucciones a repetir

MQ condicin


Do
{

..... Instrucciones a repetir

} while ( condicin );

4.1 Estructuras repetitivas Para
En una estructura repetitiva para hay que tener en cuenta:
i = 1; n ; 1
Llegada por primera vez
al ciclo repetitivo
Terminacin del proceso
de repeticin del conjunto de
instrucciones
Conjunto de instrucciones que
se repetirn
Continua el proceso de repeticin
si el contador no ha superado
el lmite especificado
Variable que cuenta las
vueltas que va dando el ciclo
Valor final, hasta el cual
el contador debe llegar
Valor inicial del contador
Valor que se utiliza para
incrementar el contador
cada vez que se ejecuta
el conjunto de instrucciones

42-Sea F una funcin de los reales en los reales, definida por
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


20

>

<

+ =
5
5 5
5
2
3 ) (
2
x
x
x
si
si
si
x
x
x
x f
Haga un programa que lea n valores para x y calcule f(x) para cada uno de ellos.

43-Dados dos (2) nmeros x y z, calcular xelevado a la z

44-Dados dos (2) nmeros x y zdonde x es menor que z haga un algoritmo para calcular el producto y la suma de los
nmeros comprendidos entre x y z.

45-Hacer un programa en C que capture n nmeros y halle el mayor de los pares y el menor de los impares

46-Dado un (1) nmero entero x , calcular x ! (x factorial). El factorial de un nmero natural es el producto de los naturales
menores o iguales que el nmero dado. Ejemplo: 5! = 1x2x3x4x5 = 120

47-El nmero de combinaciones de m elementos tomados de n en n est determinado por
! ) ( !
!
n m n
m
n
m

=
|
|

\
|
Haga un algoritmo que lea dos nmeros m y n, calcule la combinatoria m,n.
Recordar que n y m son positivos y que si n es mayor que m la combinatoria es cero.

48-Las series de Taylor se definen por medio de sumatorias.
Para el clculo del seno de x (x dado en radianes) (realmente las sumatorias son hasta infinito, pero para efectos de programacin
se han acotado lo suficiente para que se puedan realizar los clculos y que el resultado sea aproximado al verdadero valor)...
Seno X x
x x x x
k
k
k
( )
! ! !
. . . ( )
( ) !
. . . . . = + + +
+
+
+ 3 5 7 2 1
3 5 7
1
2 1
utilizando notacin de sumatoria sera:

=
+
+
=
15
0
1 2
)! 1 2 (
) 1 ( ) (
k
k
k
k
x
x Seno

Para el coseno .....
! 2
) 1 ( ...
! 6 ! 4 ! 2
1 ) (
2 6 4 2
+ + + + =
k
x x x x
x Cos
k
k
Utilizando notacin de sumatoria sera:
C o s x
x
k
k
k
k
( ) ( )
( ) !
=
=

1
2
2
0
1 5

Para el exponencial e x
x x x
x
= + + + + + 1
2 3 4
2 3 4
! ! !
.... Utilizando notacin de sumatoria e
x
i
x
i
i
=
=

!
1

Hacer un algoritmo que lea un X y calcule Seno(x), Cos(x) y e
x
, utilizando las series de Taylor descritas anteriormente.


49-Calcular los n primeros trminos de la serie de Fibonacci y determinar la suma de los trminos pares y los trminos impares.
Para n = 7
La serie de Fibonacci es: 1, 1, 2, 3, 5, 8,13
La suma de los trminos pares es 2+8 = 10
La suma de los trminos impares es 1+1+3+5+13 = 23

50- Hacer un programa que calcule los N primeros trminos de la serie: 1, 4, 2, 8, 4, 16, 8, ...... Determinada por:
a
1
=1
a
2
= 2
2
/ a
1
= 4
a
3
= 2
3
/ a
2
= 2
a
4
= 2
4
/ a
3
= 8
.....
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


21
a
k
= 2
k
/ a
k-1


51-Hacer el anlisis, diseo, codificacin, ejecucin y prueba de los siguientes ejercicios
Juan Pablo Montoya, entrena todos los das, recorriendo cierta cantidad de kilmetros, de tal forma que todos los das recorre el
doble de lo que recorri el da anterior ms 10 km. Pero cada 3 das recorre solo la mitad de lo que recorri el da anterior. Hacer
un programa en C que lea el nmero de kilmetros recorridos el primer dia del entrenamiento y un nmero n de das y halle el
total de kilmetros acumulados hasta ese da (el n-simo da).
Por ejemplo, si el primer da recorri 5 Km....
Dia Kms Recorridos Acumulado
1 5 5
2 (5*2)+10= 20 25
3 20/2 = 10 35
4 (10*2)+10 = 30 65
5 (30*2)+10 = 70 135
6 70/2 = 35 170
7 (35*2) +10 = 80 250

52-Una persona desea invertir su dinero en un banco, el cual le otorga un 2% de inters mensual. Cul ser la cantidad de dinero
que esta persona tendr al cabo de 12 meses si la ganancia de cada mes es reinvertida y si cada mes hace m consignaciones?.


4.2 Estructuras repetitivas Mientras que

En una estructura repetitiva Mientras Que (MQ), hay que tener en cuenta:
Condicin
no
si
Llegada por primera vez
al ciclo repetitivo
Terminacin del proceso
de repeticin del conjunto de
instrucciones
Conjunto de instrucciones que
se repetirn
Regreso para evaluar
la expresin booleana
que permite decidir si se
continua o no la repeticin del
conjunto de instrucciones
Expresin booleana
que se evaluar y determina
si se sigue o no repitiendo
las instrucciones


53- El banco Santander tiene una modalidad de ahorro llamada todo da, consistente en que todos los das liquida los intereses de
acuerdo al saldo de ese da. Hacer un programa en C, que capture por teclado un capital inicial y calcule cuantos das se requieren
para que el saldo de la cuenta supere un determinado monto (capturado por teclado). Las condiciones para la liquidacin de los
intereses son las siguientes: si el saldo actual es menor o igual a $500000 pesos se sumar un inters del 0.2% del saldo actual, si el
saldo actual est entre $500000 pesos y un milln se liquidar un inters del 0.25% y si es superior a un milln, se liquidar 0.3%.


Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


22
4.3 Estructuras repetitivas Hacer Mientas
En una Estructura repetitiva Hacer Mientras, hay que tener en cuenta:
Llegada por primera vez
al ciclo repetitivo
Terminacin del proceso
de repeticin del conjunto de
instrucciones
Conjunto de instrucciones que
se repetirn
Regreso para repetir
nuevamente el
conjunto de instrucciones
Expresin booleana
que se evaluar y determina
si se sigue o no repitiendo
las instrucciones
Condicin
si
no



4.4 Ejercicios Miscelneos sobre estructuras de control repetitivas

54-Escriba un programa que lea las notas de un curso y escriba el promedio
Resuelva el problema para un curso de exactamente 50 alumnos.
Resuelva el problema general para cualquier curso; donde el profesor indique el nmero de alumnos que tiene en su grupo.
Resuelva el problema ms general para el caso en que el profesor no sabe cuntos alumnos tiene y en el cual cada alumno tenga un
nmero no determinado de notas con las cuales se obtiene la definitiva. Utilice como convencin para determinar el nmero de
notas del alumno un nmero que no este en el rango de notas vlidas y para determinar el nmero de alumnos utilice el cdigo
cero.

55-Dado un nmero calcular e imprimir si es primo
Solucin
Anlisis
Entradas: n: un entero positivo del cual se desea saber si es o no primo
Salidas: Un mensaje que diga si el nmero dado es primo o no
Diseo en seudocdigo Codificacin en lenguaje C
inicio
leer( n )
e=0
para i =1 hasta n hacer
si ( (n mod i ) == 0)
e = e+1
finsi
finpara
si (e <= 2) entonces
imprimir( el nmero es primo)
sino
imprimir( el nmero no es primo)
finsi
fin

#include<stdio.h>
main()
{
long int n,e, i;
printf("digite un nmero ");
scanf("%ld", &n);
e=0;
for( i =1; i <=n; i = i+1)
{
if ( (n % i ) ==0 )
{
e=e+1;
}
else
{
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


23
};
};
if ( e <=2 )
{
printf("El nmero %ld es primo", n);
}
else
{
printf("El nmero %ld No es primo", n);
};
system("pause");
}

56-Hacer un programa que imprima los n primeros nmeros primos. (n dado por teclado)

57-Se dice que un nmero N es nmero perfecto si la suma de sus divisores propios es igual a l mismo.
El conjunto de divisores propios de un nmero N, est formado por todos sus divisores, Excepto l mismo. Ejs, los divisores
propios de 9 son 1 y 3. Los divisores propios de 6 son 1,2 y 3.
Por lo tanto 6 es un nmero perfecto porque la suma de sus divisores propios 1 + 2 +3 es igual a l mismo (a 6). Y 9 no es
perfecto.
Hacer un algoritmo que lea un nmero y diga si es perfecto o no.
Hacer un algoritmo que halle todos los nmeros perfectos menores que un nmero dado.

58-Hacer el anlisis, diseo y codificacin de un algoritmo que dado un X y un N calcule la siguiente sumatoria
( )
( )
( ) !

1
1
1
2
1
k
k
k
N
x
k


59-Escriba un algoritmo que dado un nmero entero n, determine si n es un nmero factorial (es decir si existe un k tal que n=k!)

Solucin
Anlisis

Entradas: n: un entero positivo
Salidas: Decir si n es factorial de algn nmero
Diseo
Seudocdigo Diagrama de flujo
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


24
inicio
lea n
c=1
f=1
mq ( f < n )
c = c+ 1
f = f * c
finmq
si ( f = = n )
imprimir (n es el factorial de , c)
sino
imprimir (n no es el factorial de ningn nmero)
finsi
fin
f =1
c =1
n
f < n
no
si
n no es factorial
f = = n
si no
n es el factorial de c
c= c +1
f = f * c
inicio
fin


Codificacin en C
#include<stdio.h>
main()
{
int n,c,f;
printf (ingrese un nmero);
scanf(%d, &n);
c=1;
f =1;
while( f < n )
{
c = c+ 1;
f = f * c;
};
if ( f = = n)
{
printf ( %d es el factorial de %d , n, c);
}
else
{
printf ( %d no es factorial de ningn nmero , n);
};
system(pause);
}


60-Manolito tiene una cuenta de ahorros en la corporacin SINFONDOS. Esta corporacin otorga a sus ahorradores un inters
mensual y un inters anual sobre el saldo del momento. Determinar a partir del saldo de la cuenta, del inters mensual y del inters
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


25
anual, los ahorros que tendr Manolito despus de un nmero determinado de meses (dado por teclado), si l no retira ni deposita
dinero en ese tiempo.

61-Hallar el cociente y el residuo de una divisin entera mediante restas sucesivas (sin usar el operadores div ni mod % en c)..
Para el clculo del cociente y del residuo de una divisin entera, usando restas sucesivas tenga en cuenta los siguientes ejemplos:
El residuo de la divisin entera
entre 10 y 4
El residuo de la divisin entera
entre 19 y 5
El residuo de la divisin entera
entra 31 y 7
10 4 = 6
6 4 = 2
19 - 5 = 14
14 - 5 = 9
9 - 5 = 4
31 - 7 = 24
24 - 7 = 17
17 - 7 = 10
10 - 7 = 3
Cociente 2 pues se hicieron dos
restas
El residuo es 2 puesto que es el
ltimo resultado de la resta
El cociente es 3 pues se hicieron
tres restas
El residuo es 4 puesto que es el
ltimo resultado de la resta
Cociente es 4
Residuo es 3


62- La primitiva poblacin de OSCANDIA se rige por un modelo macroeconmico particular de oferta y Demanda para su
producto bsico: el OSCAO. En este modelo el precio del producto, su oferta y su demanda en un periodo i-esimo, estn dados en
funcin de los datos de ese periodo y del periodo anterior por las siguientes frmulas:
sea:
P
i
= Precio en el periodo i-esimo
O
i
= Oferta en el periodo i-esimo
d
i
= Demanda en el periodo i-esimo
P P
d
O
i i
i
i
=

1
1
1
*
O
P
P
O d
i
i
i
i i
= +


1
1 1
09 01 *( . * . * )
d d
P
P
Ratacrec
i i
i
i
= +

1
1
*
Donde Ratacrec es un valor constante igual a 100.
Haga un algoritmo que reciba el precio, la oferta y la demanda del OSCAO en un periodo inicial (i=0) y calcule y presente el
precio, la oferta y la demanda en cada uno de los 24 periodos siguientes.
Se debe indicar en cada periodo si la oferta supera la demanda, si la demanda a la oferta o si estn en equilibrio

63- (*) El mtodo de Newton-Raphson para calcular una raz cuadrada de un nmero X, parte de un nmero inicial r a partir del
cual se van calculando aproximaciones cada vez mas exactas a la solucin. Para calcular la aproximacin (i+1)-esima se usa la
anterior (la i-esima) y se aplica la formula:
r
r
x
r
i
i
i
+
=
+
1
2


64-Determinar el valor del salario de cada uno de los empleados de una empresa conocindose su cdigo, el valor actual del
salario, el porcentaje de inflacin del ao anterior. El incremento corresponde exactamente al porcentaje de la inflacin, para cada
empleado se debe mostrar el cdigo, el salario para el nuevo ao as como el valor incrementado. El programa termina cuando se
ingresa para el cdigo del empleado el valor cero (0).

65-Calcular el valor total de una factura conocindose el cdigo, el costo unitario y la cantidad de cada una de los artculos a
facturar. Al subtotal obtenido se le debe realizar un descuento del 5,32% cuando sobrepase los $500 000 en caso contrario el
descuento ser solo de 2,75%. Se debe mostrar al final el nmero de artculos facturados, el subtotal de la factura, el valor del
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


26
descuento y valor final de la factura, el programa debe mostrar estos datos cuando el la cantidad de un artculo facturado sea cero
(0).

66-Determinar el total de nmeros que no son mltiplos de 2, ni de 3, ni de 5 de una cantidad no determinada de nmeros
ingresados por teclado. El programa termina cuando se ingresa el nmero cero (0). Se debe mostrar tambin el total de nmeros
analizados, el total de nmeros que no son mltiplos solo de 2, el total de nmeros que no son mltiplos solo de 3 y el total de
nmeros que no son mltiplos solo de 5.

67-Encontrar el nmero de aos en los que una cantidad invertida se cuadruplicar, usando inters compuesto. Se conoce adems
de la cantidad invertida, el porcentaje anual de intereses. La frmula para el inters compuesto es S=P*(1 + i)
n
.

68-Hallar el nmero de aos en los que una cantidad invertida se cuadruplicar, usando inters simple. Se conoce adems de la
cantidad invertida, el porcentaje anual de intereses. La frmula para el inters simple es S = P*(1 + i*n).

69-Hallar la cantidad de rebotes despus de la cual un baln alcanza una altura mxima menor a la dcima parte de la altura desde
la cual fue soltado en cada libre. Por propiedades del baln, este luego de ser soltado desde una altura H alcanza en cada rebote el
10% menos de la altura que en el rebote anterior.

70-Capturar por teclado 2 nmeros A y B determine cual es el mltiplo de A ms cercano a B.

71-Hallar el ao en el que la poblacin de la ciudad de Pamplona iguale o supere a la poblacin de la ciudad de Bogot. Para ello
se sabe que la rata de crecimiento de la poblacin de Pamplona es del 2,35% anual y la de la poblacin de Bogot es del 1,06%
anual, adems se supone que dicha rata de crecimiento permanecer constante. Se conocen, tambin, las poblaciones actuales tanto
de Pamplona como de Bogot.

72-Determinar la cantidad de cifras que tiene un nmero entero. Ej: para el nmero 35689 el programa debe imprimir El nmero
35689 tiene 5 cifras.

73-Dado un nmero natural n encuentre su raz digital.
Raz digital de un natural: se calcula el natural m sumando los dgitos que componen a n. El proceso se repite sobre el nuevo
nmero hasta que el resultado sea de un dgito.
Ejemplo: 347 3 + 4 + 7 = 14 1 + 4 = 5 RD(347) = 5

74-Dado un nmero natural n (de cualquier cantidad de dgitos) encuentre otro entero m que sea n al revs, invirtiendo el orden de
los dgitos y diga si n es un palndromo. Si n es un palndromo, entonces se lee igual de izquierda a derecha que de derecha a
izquierda. Ejemplos: para n=345 el n al revs es 543 y no es palndromo. Para n=75357 el n al revs es 75357 y por lo tanto si es
palindromo.

75-Escribir un programa, que recoge del teclado las cdulas y aos trabajados en la empresa de una serie de empleados hasta que se
introduce una cdula que sea 0. El programa debe imprimir las cdulas de los empleados y la gratificacin correspondiente anual
con base al valor calculado teniendo en cuenta lo siguiente:
Aos trabajados Gratificacin en pesos
Menos de 10 No corresponde gratificacin
Entre 10 y 20 80.000
Entre 20 y 30 100.000
Ms de 30 150.000
Se desea calcular e imprimir:
La cdula y la gratificacin de cada empleado
El promedio de las gratificaciones a pagar por parte de la empresa a todos los empleados.

76- El cine vista fea tiene 3 salas de cine, donde se presentan 3 pelculas, existe una fila de un nmero indeterminado de personas
para entrar al cine, mximo pueden entrar 150 personas a las tres salas del cine, cada persona que quiere entrar al cine da su edad y
la sala a la que quiere ingresar. Los adultos pagan 10.000 pesos y los nios pagan 7.000 pesos (se considera nio a la persona
menor de 12 aos). Realizar un programa en C para calcular el valor total recaudado por las 3 salas.
Nota: La venta de la taquilla termina cuando la edad es igual a 0 o se completen las 150 personas.

Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


27
77-(**) Una propiedad de los nmeros impares, nos permite encontrar los cubos de los nmeros naturales as:
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29....
1
3
=1 2
3
=3+5 3
3
=7+9+11 4
3
=13+15+17+19 5
3
=21+23+25+27+29
Es decir que para calcular n
3
, se necesitan n nmeros impares consecutivos de acuerdo a la representacin anterior.
Hacer un programa en C que imprima los n trminos impares que son necesarios para calcular n
3
de acuerdo a la propiedad
expuesta anteriormente. (n es un nmero entero positivo dado por teclado)

78-Codifique un programa en C que lea por teclado cierta cantidad de nmeros hasta teclear 0 (cero). El programa debe validar que
cada uno de estos valores tecleados estn entre un intervalo [a,b] (a y b son dos nmeros ledo por teclado). El programada debe
imprimir la suma de aquellos valores que sean mltiplos de un valor z tambin ledo por teclado.

Por ejemplo para a=8, b=96 (intervalo [8,96] ) y z=4, se deben capturar por teclado ciertos valores hasta encontrar un cero
como por ejemplo 9, 13, 93, 16, 19, 27, 33, 36, 41, 59, 11, 24, 0. La suma de los mltiplos de z (z=4 en este caso) es 76
79-Calcular la siguiente sumatoria

=

+
b
k
a k
k
k
k k
5
3
5
, para los valores de a y b dados por teclado (validando que a sea mayor que
b), y teniendo en cuenta que k no puede ser 5 pues generaria una divisin por cero.
Ejemplo si a= 4 y b=8 entonces
5 8
8 8
5 7
7 7
5 6
6 6
5 4
4 4
5
8 3 7 3 6 3 4 3 8
5
4
3

+
+

+
+

+
+

+
=

=
k
k
k
k
k k

80-Suponga que el Gobierno Nacional y la comunidad internacional se dan cuenta, por fin, de que el ro Magdalena necesita
medidas urgentes para su recuperacin, ya que se est muriendo por los vertidos incontrolados de fbricas y de actividades
tursticas, adems de la pesca incontrolada, pesca de inmaduros (pequeines) y el empleo de las peligrosas redes de deriva. As, se
decide poner un lmite en los kilogramos de pesca que puede recoger en un mes un barco pesquero. Desarrolle un programa en C
al que primero se le d el lmite mximo permitido por ley y luego se le vayan dando los pesos de lo que se va pescando. Cada vez
que se introduzca un nuevo peso se mostrar el total de kilogramos pescados hasta ese momento. Cuando se supere el mximo
permitido se debe dar la alarma (desplegar un mensaje) y terminar el algoritmo, indicando el total de kilogramos pescados y el
nmero de kilogramos en los que se ha sobrepasado el limite legal. El algoritmo tambin terminar si introducimos un 0 (cero)
como kilogramos pescados y deber indicar un error si se introduce un nmero negativo (no se contabiliza).

81-El vendedor de una compaa de electrodomsticos desea llevar un clculo de las ganancias obtenidas por las ventas del mes.
Los artculos con costo menor a $5000, le reportan una ganancia del 15%, para los artculos con un valor entre $5000 y $12000
(inclusive), obtienen una ganancia del 20%, y los artculos que valen ms de $12000 le dejan un 30% de ganancia. Sabiendo que
cada artculo tiene un cdigo, un nombre, un precio y que ningn artculo tiene por cdigo 0(cero), haga un programa en C, que
de acuerdo al nmero y costo de artculos vendidos en el mes, obtenga las ganancias.

82-El profesor de programacin desea hallar el total de estudiantes que aprobaron, el total de estudiantes que perdieron la materia y
el promedio de notas de sus estudiantes. Sabiendo que cada estudiante tiene un nmero diferente de notas y que para calcular la
definitiva de un estudiante, se suman las notas y se dividen por el nmero de notas

83-Se dice que un nmero N es nmero perfecto si la suma de sus divisores propios es igual a l mismo.
El conjunto de divisores propios de un nmero N, est formado por todos sus divisores, excepto l mismo. Ejs, los divisores
propios de 9 son 1 y 3. Los divisores propios de 6 son 1,2 y 3.
Por lo tanto 6 es un nmero perfecto porque la suma de sus divisores propios 1 + 2 +3 es igual a l mismo (a 6). Hacer un
algoritmo que lea un nmero y diga si es perfecto o no.

84-El banco Santander tiene una modalidad de prstamo que consiste en lo siguiente:
Si el monto del prstamo es menor de 1.000.000 de pesos se paga un inters del 5% sobre le prstamo, pagando cuotas mensuales
por un ao
Si el monto del prstamo es mayor o igual de 1.000.000, pero menor de 10.000.000 de pesos se paga un inters del 10% sobre le
prstamo, pagando cuotas mensuales por dos aos.
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


28
Si el monto del prstamo es mayor o igual de 10.000.000 de pesos se paga un inters del 15% sobre le prstamo, pagando cuotas
mensuales por cinco aos.
Hacer un programa en C que calcule el valor de la cuota mensual que tiene que pagar cada uno de los n cliente que solicitan un
prstamo

85-En una universidad la matricula de los alumnos se determina segn el nmero de materias que cursan. El costo de todas las
materias es el mismo. Se ha establecido un programa para estimular a los alumnos, el cual consiste en lo siguiente: si el promedio
obtenido por un alumno en el ltimo periodo es mayor o igual que 4, se le har un descuento del 30% sobre el valor de la matricula
y no se le cobrara IVA; si el promedio obtenido es menor que 4 deber pagar la matricula completa, la cual incluye el 16% de IVA.
Hacer un programa en C para Obtener cuanto debe pagar cada uno de los n alumnos de una institucin y hallar la matricula
promedio

86-El profesor de fundamentos de programacin, acord con sus alumnos las siguientes reglas para la calificacin final de la
materia:
La calificacin final se obtiene de 3 notas parciales, que tienen igual peso
Si la nota es mayor de 3.5 se le suman 4 puntos. Es decir si la nota obtenida es de 3.7 el profesor suma 4 puntos, luego su nota final
ser de 4.1 (si la nota calculada da ms de 5 la definitiva se deja en 5).
Si la nota es menor de 2.5 se le resta 3 puntos. Es decir que si la nota obtenida es de 2.2 el profesor resta 3 puntos, luego su nota
final ser de 1.9. Si la nota resultante fuese menor que 0 (cero) la definitiva se deja en 0 (cero).
Disee un programa en C que capture las 3 notas para cada uno de los "n" estudiantes de un grupo e imprima la nota final. Tenga
en cuenta que las notas que el computador imprima, siempre deben estar entre 0 y 5

87-Haga un programa en C para calcular el valor a pagar en pesos de la factura del celular conociendo el tipo de plan, los minutos
consumidos y la cantidad de mensajes de texto enviados en el mes, segn la siguiente tabla:
Tipo de plan Minutos Bsicos Mensajes de Texto Bsicos Cargo Bsico
1. Ideal 100 10 80.000
2. Extensin 135 20 120.000
3. Familiar 425 30 180.000
Cada minuto extra tiene un costo de 855 pesos y los mensajes de texto un costo de 370 pesos (Para cualquier plan).

88-Escriba un programa que lea un nmero n e imprima si es deficiente, perfecto o abundante.
Un entero positivo se dice que es un perfecto si la suma de sus divisores propios es igual que el nmero Por ejemplo, 6 es
perfecto porque 1+2+3=6;
Un entero positivo se dice que es un deficiente, si la suma de sus divisores propios es menor que el nmero Por ejemplo, 8 es
deficiente porque sus divisores propios son 1, 2 y 4, y 1+2+4 <8;
Un entero positivo se dice que es un abundante si la suma de sus divisores propios es mayor que el nmero. Por ejemplo, 12 es
abundante, porque 1+2+3+4+6>12.
Los divisores propios de un entero n son los divisores positivos menores que n.

89-En el Departamento de Sistemas de la Universidad se han programado N grupos de la asignatura de Programacin I (N es dado
por teclado). Cada grupo tiene diferente cantidad de alumnos (no especificada por teclado) y por cada Alumno nos proporcionan
su cdigo y tres calificaciones. Se debe calcular la definitiva de cada alumno de acuerdo a la siguiente ponderacin de las
calificaciones:
Def = Cal1 * 35% + Cal2 * 35% + Cal3*30%. El proceso de un grupo termina cuando el cdigo del alumno es 0.
Hacer un programa en lenguaje C que calcule e imprima la definitiva y el cdigo de cada alumno. Calcule e imprima adems el
promedio grupal obtenido en la asignatura por cada uno de los N grupos. Hallar e imprimir adems el porcentaje de alumnos que
aprobaron la Asignatura Programacin I. (se aprueba con 3.0 superior).

90-Calcular e imprimir el valor total de matricula de un alumno. Dicha liquidacin se realiza con base a la cantidad de crditos
matriculados en el semestre as:
Los primeros 20 crditos cada uno tiene un costo $15.000
Los siguientes 15 crditos cada uno tiene un costo $25.000
Los crditos que estn por encima de los 35, cada uno tiene un costo $35.000
Dependiendo de la edad del estudiante se puede obtener un descuento as:
Edad Descuento
<20 10% en la tarifa de los crditos matriculados entre los 21 y 35
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


29
>40 5% en la tarifa de los crditos matriculados superiores a 35
>20 y <40 20% en la tarifa de los 20 primeros crditos matriculado
Ejemplo: El alumno tiene 25 aos y matriculo 38 crditos. La liquidacin se hara as:
Los primeros 20 Crditos 20*15000 $300.000
Los siguientes 15 crditos 15*25000 $375.000
Los siguientes crditos 3*35000 $105.000
Descuento es del 20% sobre los primeros 20 crditos, por que la edad es de 25 aos
(20*(15000*20%))
-$150.000
Total Matricula $630.000

91-Hacer un programa en C para capturar por teclado un nmero N (de cualquier cantidad de cifras), descomponerlo en sus dgitos
y calcular: La sumatoria de sus cifras pares y La sumatoria de las cifras impares
Ejemplo:
N es 1275
Sumatoria de dgitos pares 2 porque el nico dgito par es 2
Sumatoria impares 13 porque los dgitos impares son 1 7 y 5
92-Codifique un programa en C que calcule la siguiente sumatoria

=
+
=
b
a i
i
i
s
4
3
para 20 valores distintos de a y b ledos por
teclado. Es decir, debe hacer 20 veces el clculo de la sumatoria para valores distintos de a y b. Por ejemplo: Para a=3 y b=5
se tiene que:
S=
9
125
8
64
7
27
4 5
5
4 4
4
4 3
3
3 3 3
+ + =
+
+
+
+
+
= 25.7460

93-Codifique un programa en C que lea por teclado cierta cantidad de nmeros hasta teclear 0 (cero). El programa debe validar que
cada uno de estos valores tecleados estn entre un intervalo [a,b] (a y b son dos nmeros ledo por teclado). El programada debe
imprimir la suma de aquellos valores que sean mltiplos de un valor z tambin ledo por teclado.
Por ejemplo para a=8, b=96 (intervalo [8,96] ) y z=4, se deben capturar por teclado ciertos valores hasta encontrar un cero
como por ejemplo 9, 13, 93, 16, 19, 27, 33, 36, 41, 59, 11, 24, 0. La suma de los mltiplos de z (z=4 en este caso) es 76

94-Una lavandera ofrece sus servicios a la ciudad de Pamplona de acuerdo a la siguiente tabla.
Peso de Ropa
Tipo Cliente
0 Kg a 2,0 Kg 2,1 Kg a 4,0 Kg
1. Normal $200 $500
2. Especial $150 $450
Dada la informacin de N clientes(N dado por teclado): Tipo de Cliente y Peso de la ropa, Hacer un programa en C para
Determinar cuanto debe pagar cada cliente y el promedio de kilos de ropa que llevan los clientes.
El kilo adicional o fraccin despus de los 4 kilos tiene un valor de 100 pesos.
Ejemplo Otro ejemplo
Tipo cliente: 2
Peso de Ropa: 3,5
Paga $ 450 pesos
Tipo cliente: 1
Peso de Ropa: 7,0
500 por los 4 kilos normales
100 x 3(kilos adicionales)= 300 pesos por lo adicional
Paga $ 800 pesos

95-Realizar un programa en C que permita capturar por teclado un nmero N y contar el nmero de cifras que tiene, si el nmero
de cifras es par elevar el primer dgito del nmero a la suma de cifras, si el nmero de cifras es impar, elevar el ltimo dgito del
nmero a la suma de las cifras e imprimir el resultado de la potencia.
Ejemplo
N= 34562
Nmero de cifras es 5
Calcular 2 elevado a la 5 = 32

Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


30
96-Los hinchas del Ccuta Deportivo han decidido donar el total del cambio (los vueltos de cada hincha) (dinero sobrante de cada
compra) en la compra de boletas del partido del prximo domingo, para apoyar a los nios desplazados. Disee un programa en C
que solicite inicialmente la cantidad de boletas disponibles para el partido y el valor unitario de estas. El programa debe solicitar
repetidamente la cantidad de dinero que entrega el hincha en la taquilla e ir mostrando la cantidad de boletas para las que alcanza
ese dinero, las cuales se le entregarn al comprador (pero no se le entrega el dinero de vueltos... este dinero es la donacin). Al
final del programa se debe imprimir el total de boletas vendidas, el total de dinero recaudado por concepto de boletera y el total de
dinero donado por los compradores. El programa terminar cuando la cantidad de dinero entregado por un hincha en la taquilla sea
igual a cero o cuando se agote el total de boletas disponibles.

97-Escriba un programa en C que lea por teclado un nmero N e imprima si es un Nmero Feliz:
Nmero feliz: todo nmero natural que cumple la condicin de que si se suma los cuadrados de sus dgitos y se sigue el mismo
proceso con los resultados parciales hasta obtener un solo dgito... el resultado es 1. Por ejemplo, el nmero 203 es un nmero feliz
ya que
13 3 0 2
2 2 2
= + + el mismo proceso para el 13 es 10 3 1
2 2
= + , el mismo proceso para el 10 es,
1 0 1
2 2
= + ...... como el resultado es de un solo dgito ( en caso contrario seguir el proceso), se detiene el proceso para este
ejemplo (porque el resultado es de un solo dgito)

19 es feliz porque 1
2
+ 9
2
= 82 el mismo proceso para 82 .... 8
2
+ 2
2
=68 el mismo proceso para 68 6
2
+8
2
= 100 el mismo proceso
para 100 1
2
+ 0
2
+ 0
2
= 1

98-Se dice que un nmero es CUBO INTERESANTE si puede ser representado como la suma de los cubos de sus dgitos.
Desarrolle un programa en lenguaje C para imprimir en pantalla los 4 primeros cubos interesantes entre todos los enteros mayores
a 1. Uno de esos nmeros es 153 pues:
153= 1
3
+5
3
+3
3
= 1+125+27=153

99-Realiza un programa en C, que lea un entero n y un dgito d se debe invertir el numero n y si d aparece en n se debe reemplazar
por el valor 1 en la posicin en la que se encuentra d. Por ejemplo: si n=23668 y d=6. Se desplegara 81132.
Adems se debe imprimir:
Cuantos nmeros se reemplazaron y cuantos no se reemplazaron.
El aplicativo tambin debe informar al usuario de cuantas cifras era el nmero entero n ledo

100-Calcular cunto debe cancelar cada uno de los usuarios que ingresan a una peluquera, teniendo en cuanta que, los servicios
que pueden recibir son:
Tipo de servicio Descripcin Valor
1 Manicure 6000
2 Corte de cabello 10000
3 Tintura 50000
Cada usuario llega a utilizar un tipo de servicio. A cada uno de los usuarios se le entrega un ficho que contiene un
nmero entero (registrado mediante el teclado), si el ficho es un nmero par se le da un 10% de descuento, si es impar
un 5% sobre el servicio que adquiere. No se sabe cuantos usuarios ingresan a la peluquera. El programa se termina
cuando el ficho del usuario sea 0.
Adems se debe determinar: Cuntos usuarios ingresaron a la peluquera, Total recaudado en el da, Cuanto dinero suman los
descuentos realizados.

101-El propietario de un invernadero desea adquirir un software que le permita conocer el tiempo promedio de das que debe
mantener en el invernadero una planta de una familia, hasta alcanzar su tamao mximo, teniendo en cuenta que:
La informacin a procesar corresponde a 50 plantas. Por cada planta se debe especificar la familia a la que pertenece y el tamao
actual con el que ingresa al invernadero (en metros). Las familias de plantas existentes son 1. Cactceas, 2. Pinceas, y 3.
Liliceas. Las plantas tienen un crecimiento por da, y alcanzan un tamao mximo de acuerdo a la siguiente tabla (Al alcanzar la
altura mxima las plantas paran de crecer.):
Familia % de crecimiento por da, respecto al da anterior Tamao Mximo
1. Cactceas 2% 20 mts
2. Pinceas 10% 100 mts
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


31
3. Liliceas 3% 4 mts
Realice un programa en lenguaje C++ que permita conocer por cada una de las familias el tiempo promedio (en das) necesario
para que las plantas alcancen su tamao mximo.
Tenga en cuenta que los datos de entrada por cada una de las 50 plantas son: la familia de la planta (validar que el valor ingresado
corresponda a una familia valida 1, 2, o 3, de lo contrario deber volver a solicitar dicho dato) y el tamao inicial de la planta
(validar que el tamao ingresado no exceda al mximo de la planta (de acuerdo a la tabla), de lo contrario debe solicitar
nuevamente un valor para dicho dato). Por cada planta se debe calcular el total de das que necesita para alcanzar la altura mxima,
segn el porcentaje de crecimiento diario dado en la tabla.

102-En un parqueadero de la ciudad de Pamplona se cobra por minutos (a 15 pesos el minuto) y dada la proximidad del mundial de
ftbol, los administradores del parqueadero decidieron ofrecer la siguiente promocin:
Los autos cuyo nmero de placa termina en nmero par tiene un descuento de 10% si se registra la entrada entre las 9:00 am y las
12 del medio da y los nmeros de placa que terminan en nmero impar tienen un descuento del 15 % si se registran a la entrada
entre las 14:00 y 15:00 horas.
Los vehculos van llegando a diferentes horas y cuando el cliente retira el vehculo se registra la hora de entrada (hora y minuto,
dos nmeros enteros), de salida (hora y minuto, dos nmeros enteros) y el nmero de placa (numero entero de tres cifras)
Hacer un programa en C que permita averiguar cuando dinero recolect el parqueadero en un da de servicio, para lo cual se
registrara la informacin correspondiente de un nmero no conocido de vehculos (el proceso termina cuando la placa del vehculo
sea cero)

103-La industria minera Cerrejon S.A. realiza el transporte de carbn mediante caravanas de volquetas desde la mina en la Guajira,
hasta la central de despacho en la baha de Santa Marta.
Diariamente se despachan 50 caravanas y cada una se encuentra identificada con un cdigo numrico. No se conoce el total de
volquetas que viajan en cada caravana, en la recepcin de la carga de cada una de las volquetas de la caravana se pesa en una
bscula gigante, cada volqueta cargada (en toneladas), y se registra el cdigo numrico de cada volqueta (no todas las volquetas
llegan con la misma cantidad de carbn pues el proceso de cague se realiza con maquinaria pesada y durante el transporte se puede
perder carga). El proceso de registro de datos de cada caravana termina cuando se digita como cdigo de la volqueta el numero
cero (este dato no se tiene en cuenta para el procesamiento de la informacin).
El cdigo de la volqueta corresponde a un nmero de 6 cifras, de las cuales las tres ltimas, representan el peso en toneladas de la
volqueta (vaca sin carga), de la siguiente forma: por ejemplo si los tres ltimos dgitos del cdigo de la volqueta son 347 significa
que la volqueta pesa 34,7 toneladas (treinta y cuatro punto siete toneladas). Otro ejemplo si los tres ltimos dgitos del cdigo de la
volqueta es 568, significa que la volqueta pesa 56,8 toneladas (cincuenta y seis punto ocho toneladas)
Realice un programa en lenguaje C que:
Capture la informacin de las caravanas que ingresan a la central de despacho en un da y la informacin de las volquetas
(cdigo de la volqueta y peso total registrado en la bscula) por cada una de las caravanas.
Determinar e imprimir el cdigo de la caravana que ingres en el da, con mayor cantidad de carbn (cdigo de la
caravana y cantidad de carbn transportado en dicha caravana).
Determinar e imprimir el cdigo de la volqueta que transporto mayor cantidad de carbn en el da.
Determinar e imprimir la caravana que trajo el mayor numero de volquetas en el da (cdigo de la caravana y cantidad de
carbn transportado por la caravana).
Calcular e imprimir el total de carbn que ingres en el da (total de toneladas de carbn).

104-La empresa de comunicaciones GLOBAL COM por inauguracin ha decidido premiar a sus clientes, con un bono de
promocin el cual contiene un cdigo de cuatro cifras.
Se entregar a cada cliente un bono y si este es un nmero par se le realizar un descuento inicial del 10 % sobre todas sus
compras. Si es impar se le realiza el descuento inicial del 5%.
Adems se dar un descuento adicional dependiendo de la suma de los dgitos del bono.
Suma de dgitos del bono Porcentaje descuento adicional
Menor a 10 2 %
Entre 10 y 20 4%
ms de 20 5 %

Para cada cliente se registra el cdigo del bono y el valor total de su compra. No se sabe cuantos clientes ingresarn, a la empresa.
Pero el proceso de premiacin termina cuando el cdigo del bono del cliente sea cero.
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


32
Al terminar el da se debe saber:
Cuantos clientes ingresaron al lugar
El valor de la venta total en el da sin descuentos
Cual fue el valor total de los descuentos iniciales realizados
A cuanto ascendieron los descuentos adicionales.
Cuanto dinero ingres a la empresa en el da

5 Programacin Modular (Funciones)
Una funcin es un conjunto de instrucciones (estructuras de control) que realizan una tarea especfica y puede retornar un nico
valor. Las funciones pueden utilizar datos de entrada llamados parmetros que permiten el intercambio de datos entre el llamado de
la funcin y la ejecucin de la misma. Las funciones son utilizadas para descomponer grandes problemas en tareas simples y para
implementar operaciones que son comnmente utilizadas durante un programa y de esta manera reducir la cantidad de cdigo.
Cuando una funcin es invocada (llamada) se le pasa el control a dicha funcin, una vez que esta finaliz con su tarea el control es
devuelto al punto desde el cual la funcin fue llamada, retornando un nico valor.
Inicio
Instrucciones
Propias
De la funcin
Retorna valor
Funcin 3
Inicio
Instrucciones
Propias
De la funcin
Retorna valor
Funcin 3
Inicio
Instrucciones
Propias
De la funcin
Retorna valor
Funcin 2
Inicio
Instrucciones
Propias
De la funcin
Retorna valor
Funcin 2
Inicio
Instrucciones
Propias
De la funcin
Retorna valor
Funcin 1
Llamada
a la funcin 3
Inicio
Instrucciones
Propias
De la funcin
Retorna valor
Funcin 1
Llamada
a la funcin 3
Inicio
Llamada a la
funcin 1
Llamada a la
funcin 2
fin
Programa
principal
Inicio
Llamada a la
funcin 1
Llamada a la
funcin 2
fin
Programa
principal

Cada funcin se puede considerar como un programa totalmente independiente, es decir que se ejecuta en su propio espacio de
memoria, por lo tanto cada funcin una vez llamada (invocada) recibe los parmetros como variables de su propio contexto, y
procesa sus propios datos almacenados en su memoria de datos. Una funcin no debe acceder a datos del programa principal o de
otra funcin, y solo es posible intercambiar datos entre funciones o entre el programa principal y las funciones por medios de
parmetros. Los parmetros son datos de entrada para la funcin y por lo tanto se necesitan para que la funcin ejecute la tarea para
la cual fue diseada. Una vez terminadas las instrucciones que componen la funcin se retorna (opcionalmente) un valor al lugar
donde se hizo el llamado (invocacin) de la funcin.
Una vez la funcin termina su proceso y retorna un valor (a donde fue invocada) el espacio de memoria donde se ejecuto la funcin
deja es liberado (deja de existir), por lo tanto las variables locales dejan de existir y es por ese motivo que los valores de la
variables locales se pierden y no es posible recordarlas entre dos llamados de la misma funcin.
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


33
Dado que una funcin maneja su propio espacio de memoria, los nombres de las variables de la funcin pueden tener el mismo
nombre de las variables del programa principal o de otras funciones, sin embargo es necesario recordar que sin importar si tienen el
mismo nombre, son dos variables diferentes y cada una tendr su propio valor, la nica diferencia es que la funcin solo puede
acceder (usar) su propias variables y no tiene acceso a otros espacios de memoria de otras funciones o del programa principal.
Existen dos tipos de parmetros en una funcin: los parmetros por valor y los parmetros por referencia. En este curso solo se
utilizan los parmetros por valor (los parmetros por regencia se introducen en el siguiente curso cuando se utilizan los vectores.
Como todas las funciones solicitadas en esta gua usan parmetros por valor es necesario explicar su funcionamiento : Cuando una
funcin es llamada se le entrega un conjunto de datos dentro de parntesis a los cuales llamaremos Argumentos, la funcin se
empieza a ejecutar creando su propio espacio de memoria y saca una copia de los valores de los argumentos en los respectivos
parmetros (por eso se llaman parmetros por valor.. pues los parmetros extraen los valores de los argumentos sacando una
copia). La funcin puede definir todas las variables locales que necesite para realizar su proceso, con los parmetros que contienen
una copia de los valores de los argumentos, realiza el proceso requerido y retorna el valor correspondiente. Dentro de la funcin se
pueden modificar las variables que actan como parmetros sin que los argumentos sufran dichos cambios.

Programa principal
Memoria de
Instrucciones
Condicin
no
i=1; n ; 1
Inicio
fin
Memoria
de datos
a b
c
i
n
x
edad
peso
Programa principal
Memoria de
Instrucciones
Condicin
no
i=1; n ; 1
Inicio
fin
Memoria
de datos
a b
c
i
n
x
edad
peso
Memoria de
Instrucciones
Condicin
no
Condicin
no
i=1; n ; 1
Inicio
fin
Memoria
de datos
aa bb
cc
ii
nn
xx
edad edad
peso peso
Llamada
a la funcin 1
Con los
argumentos
correspondiente
Memoria de
Instrucciones
Funcin 1
Memoria
de datos
p h
c
i
n
x
Parmetros
Variables
Locales
Condicin
Condicin
no
s
i
Funcin (parmetros)
Retornar valor
Memoria de
Instrucciones
Funcin 1
Memoria
de datos
pp hh
cc
ii
nn
xx
Parmetros
Variables
Locales
Condicin
Condicin
no
s
i
Funcin (parmetros)
Retornar valor
Condicin
Condicin
no
s
i
Funcin (parmetros)
Retornar valor
Retorno
de valor
Calculado
en la
funcin 1
Memoria de
Instrucciones
Funcin 2
Memoria
de datos
x y
n
i
m
w
Parmetros
Variables
Locales
Condicin
Condicin
no
s
i
Funcin (parmetros)
Retornar valor
Memoria de
Instrucciones
Funcin 2
Memoria
de datos
xx yy
nn
ii
mm
ww
Parmetros
Variables
Locales
Condicin
Condicin
no
s
i
Funcin (parmetros)
Retornar valor
Condicin
Condicin
no
s
i
Funcin (parmetros)
Retornar valor


Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


34


105-Hacer la funcin Factorial.

>
=
=
0 .... 4 3 2 1
0 0
!
n si n x x x
n si
n

106-Cree la funcin Potencia

= =
<
>
=
=
=

0 0
0
1
0 ) (
0 0 1
0 0 0
1
y y x si definido no
y si
x
y si x x
y y x si
y y x si
x
y
y y

107-Calcule la siguiente formula

=
+
+
=
15
0
1 2
)! 1 2 (
) 1 ( ) (
k
k
k
k
x
x Seno

108-Escriba una funcin llamada magnitud que tenga cuatro parmetros de entrada llamados x1, x2, y1, y2 y que entregue como
resultado la distancia entre dos puntos cuyas coordenadas son (x1, y1) y (x2, y2) segn la siguiente frmula:
2
1 2
2
1 2
) ( ) ( x x y y dist + =

109-Dado un nmero entero N por teclado, hacer un programa en C con funciones para que calcule calcular la siguiente expresin
Z
Y
X
|

\
|
donde X es la suma de los divisores pares de N; Y es la suma de los divisores impares de N y Z es el nmero de dgitos de
N.

Ejemplo: Si el nmero N es 12 los divisores pares de 12 son 2,4,6 y 12 por lo tanto X=24 y los divisores impares de 12 son 1 y 3
por lo tanto Y= 4. Adems 12 tiene 2 cifras(Z=2), por lo tanto la expresin es igual a 36 6
4
24
2
2
= = |

\
|
= |

\
|
Z
Y
X
es decir que
el programa debe imprimir 36.

110-Escriba una funcin llamada digfinal que tenga un parmetro de entrada llamado nmero y que entregue como resultado el
dgito de las unidades del nmero. Por ejemplo, si el nmero es 234, el resultado es 4.

111-Escribe una funcin que tome 3 parmetros: dos de tipo enteros y uno de tipo carcter. La funcin deber sumar, restar,
multiplicar o dividir los valores de los dos primeros parmetros dependiendo del cdigo indicado en el tercer parmetro, y devolver
el resultado. (el carcter ser +, -, * , y / )

112-Escribe una funcin con dos parmetros de tal forma que diga si sus dos parmetros son mltiplo el uno del otro (no importa
cul de cul).

113-Euclides encontr que para dos nmeros enteros a y b cualesquiera:
mcd(a, b) = mcd(b, a)
mcd(0, b) = b
mcd(a, b) = mcd(a - b, b)
Escribe una funcin que devuelva el mximo comn divisor de sus dos argumentos:
mediante restas. Tngase aqu en cuenta que intercambiando los valores de a y de b y que debe existir un valor de mcd, siempre se
llegar mediante restas (el mayor menos el menor) a un valor de la resta a b que dar cero, dejando as el valor b como mcd.
Los valores de a y b son resultados de restas anteriores que tienden necesariamente a 0 y al mcd, respectivamente.
mediante divisin modular. Con esto se ahorran n = a DIV b restas, y se usa directamente el resto de esas n restas, que es el mdulo
a MOD b..

Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


35
114-Se dice que dos nmeros a y b son amigos si cada uno de ellos es la suma de los divisores del otro. Por ejemplo, los ms
pequeos son 220 y 284; comprobmoslo:
DivisoresDe(220) = (1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110)
SumaDivDe(220) = 284
DivisoresDe(284) = (1, 2, 4, 71, 142)
SumaDivDe(284) = 220
a. escriba una funcin que recibiendo dos nmeros devuelva si son amigos o no
b. escriba una funcin que tenga como entrada un nmero natural n y que escriba todas las parejas de nmeros amigos que
existan menores que n.

115-Haga un programa que despliegue un men que ayude en la operacin de la pizzera Domino Cicom. El programa debe

116- (**) Hacer un programa utilizando funciones que visualice el tringulo de Pascal.
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
Recuerde que, por ejemplo, la tercera lnea est dada por los combinatorios:
2
0
C
2
1
C
2
2
C
Utilice una funcin entera: combinaciones(r, k) que regrese las combinaciones de r tomadas de k en k. Suponga que r
representa el rengln del tringulo y k la columna del mismo.
)! ( !
!
k r k
r
C
r
k

=

Esta funcin, a su vez, utiliza otra funcin auxiliar: factorial (r)

117-Hacer un programa en Lenguaje C de forma modular que calcule los nmeros narcisistas del 1 al 10000, el programa deber
generar una lista de aquellos nmeros que cumplan con el requisito de ser narcisista.
Un nmero narcisista es un Nmero de n dgitos que resulta ser igual a la suma de las potencias de orden n de sus dgitos.
Ejemplo: 1 = 1
1

153 = 1 + 5 + 3.
9474 = 9
4
+ 4
4
+ 7
4
+ 4
4

El programa deber contener las siguientes funciones:
Una funcin que cuente el nmero de dgitos de un nmero entero
Una funcin potencia para calcular el resultado del dgito elevado a dicha potencia.
Una funcin donde se desglosar el nmero en cifras, calcule la suma de potencias y diga si el nmero es o no narcisista.

118-La empresa metalmecnica del oriente requiere un programa que muestre rpidamente el valor de las escalas de temperatura
de diferentes elementos de dicha empresa. Disee un programa en lenguaje c que muestre en pantalla un men con 4 opciones as
1.Centgrados 2.Fahrenheit 3.kelvin 4.salir. El usuario al digitar la opcin correspondiente deber escribir el valor de la
temperatura en dicha escala y luego se muestra en pantalla el valor de la temperatura digitada en las otras dos escalas. Por ejemplo
si se escoge 1 y se escribe 32 se muestra en pantalla Centgrados 32, Fahrenheit 89.6 y Kelvin 305.15 La conversin de
temperaturas se basa en las siguientes formulas
Centgrados (C) a Fahrenheit (F) F= C x (9 / 5) + 32
Fahrenheit (F) a Centgrados (C) C= (F-32) x (5 / 9 )
Centgrados a Kelvin(K) K = C + 273.15
Kelvin(F) a Centgrados(C) C = K - 273.15
Disee las funciones en C que realicen las conversiones de temperaturas necesarias para cada una de las opciones y utilice estas
funciones en el main para dar respuesta al men.

Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


36
119-Determine la cantidad mnima de billetes y muestre la forma de pagar una cuenta (considere la cuenta en mltiplos de $
10.000 nicamente), sabiendo que las denominaciones disponibles de los billetes son $10.000, $ 20.000 y $ 50.000.
Nota 1: Debe validar que el valor de la entrada (cuenta) sea mltiplo de 10.000 por medio de una funcin que tiene como
parmetro el valor de la cuenta y devuelve 1 si es mltiplo de 10.000 0 si no lo es .
Nota 2: Debe implementar una funcin que tiene como parmetros el valor de la cuenta y la denominacin del billete y que
devuelve el nmero de billetes de esa denominacin que se utilizarn para pagar la cuenta.

120-Cree un programa en C modular que: descomponga un nmero N de 6 dgitos en tres nmeros de 2 dgitos y calcule la
siguiente formula:
)! (
!
z x
z x
R
y
+
+
=
donde x, y, z se encuentran son los tres nmeros de dos cifras que componen el
nmero N
Ej: N = 230411 al descomponer el nmero x=23 y=04 z=11
Cree las siguientes Funciones:
Funcin verificar que recibe el nmero N y determina si el nmero es de 6 dgitos, Si es de 6 dgitos debe retornar un 1
pero si no debe retornar un 0.
Funcin Calcular que recibe el nmero N y lo descompone para calcular el resultado de la formula
Funcin Potencia
Funcin Factorial

121-Realizar las siguientes funciones:
Una funcin denominada calcular_sumatoria_divisores que reciba un valor n y devuelva la sumatoria de los divisores
propios del valor n.
Una funcin denominada valorar que reciba dos valores (el valor n y la sumatoria de los divisores propios de dicho
nmero) y devuelva : 0 si es perfecto, 1 si es abundante, 2si es deficiente
El programa principal (main) debe calcular entre X y Y ledos por teclado, cuantos nmeros son deficiente, abundantes y
perfectos. Para realizar estos procesos debe utilizar las funciones anteriores definidas en el presente enunciado.
Nmero perfecto es cuando la suma de sus divisores propios es igual al nmero ejemplo el 6 sus divisores son 1+2+3 = 6
Nmero deficiente cuando la suma de sus divisores es menor al nmero ejemplo 4
Divisores 1+2 =3
Nmero abundante cuando la suma de sus divisores es mayor al nmero ejemplo 12
Divisores 1+2+3+4+6 =16

122-Realice un programa en C, que lea un nmero entero positivo N, para que acumule y calcule los nmeros perfectos que existen
hasta el nmero N.
En el main() debe capturar por teclado el valor de N, realizar el llamado a las funciones necesarias (evalua_perfectos y
acum_perfectos) e imprimir el resultado de dicho acumulado.
Una funcin (evalua_perfectos) que permita evaluar, si el valor recibido es un nmero perfecto o no. Debe retornar el
valor 1 (si es perfecto) o el valor 0 (si no es perfecto)
La funcin (acum_perfectos) que acumule el valor de los nmeros perfectos menores que un nmero N dado (Haga uso
de la funcin anterior).
Ejemplo: Se lee n que es ( 30 ), entonces:
Perfectos que existen hasta N (30) : 6 , 28
Acumulado de los perfectos hasta N es : 34
Nota: Un nmero es perfecto si es igual a la suma de sus divisores, incluyendo al 1 y exceptuando a l mismo. Por ejemplo, 6 es
perfecto porque 6 =1+2+3.

123-La biblioteca pblica de la ciudad de Pamplona tiene sistematizado el total de libros que posee, y desea que usted cree un
programa que ayude en el control de prstamos y recoleccin de libros, la cantidad de personas que visitan la biblioteca es
indeterminada de ellos se conoce: Tipo de Servicio (1. Prstamo (Llevarse el libro para la casa) o 2. Entrega) y el cdigo del libro.
El proceso de prstamo y recoleccin termina cuando el tipo de servicio es 0.
Realice un programa que lea el tipo de servicio y el cdigo del libro y si es un cdigo debe determinar si se puede prestar el libro o
el valor a cobrar por los libros prestados (segn el tipo de servicio solicitado) y al final imprimir el total recaudado por prestamos
de libros.
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


37
El cdigo del libro est compuesto por 8 dgitos donde los tres primeros representan el rea del Libro, los siguientes dos la cantidad
de libros que existen y los ltimos 3 el identificador del libro.
Ej: Para el cdigo 10105153
El rea es 101 la cantidad de libros es 05 y su cdigo de identificacin es 153
Realice:
Main()
Funcin Validar cdigo: Debe recibir el cdigo del libro y este debe cumplir: ser un nmero de 8 dgitos, el rea debe
estar entre 101 y 108 y la cantidad debe ser diferente de 0. Si cumple debe retornar un 1(uno), si no cumple debe retornar
un 0 (cero).
Funcin Prstamo: La funcin debe recibir el cdigo del libro y solo se pueden prestar libros del rea 101, 102 y 104. La
funcin debe retornar 1 (uno) si se puede prestar o 0 (cero) si no se puede realizar el prstamo
Funcin Recoleccin: La funcin debe recibir el cdigo del libro y dependiendo de la cantidad de ejemplares disponibles
se cobra un valor al usuario segn la siguiente tabla, debe retornar el valor que se debe cobrar
Cantidad de ejemplares existentes Valor del servicio de prstamo
1 a 2 $2.000
3 a 6 $1.000
Mas de 6 $500

124-Una empresa de seguros desea que usted cree un programa que permita validar el cdigo de una pliza de seguro, determinar
el tipo de seguro y el valor que se debe pagar el cliente (monto) en una clnica al momento de presentar el seguro. La cantidad de
plizas que se consultarn es indeterminado, solo se sabe que la lectura del cdigo de las plizas termina cuando este nmero sea 0.

El Cdigo de la pliza esta compuesto por 7 dgitos donde el primero corresponde al tipo de pliza (Ver tabla). Los tipos de plizas
de seguro son los siguientes.
Tipo Cobertura
1. Total El 100% del Total del pago
2. Normal Cubre el 100% si no sobrepasa 1000.000 y si lo sobrepasa solo cubre el 70% del pago
3. Bsica Para cualquier monto cubre el 65% del pago
Cree las siguientes funciones:
Main
Funcin Validar Cdigo: que debe recibir el cdigo de la pliza y verificar que el cdigo sea de 7 dgitos, que el primer
dgito este entre 1 y 3 y la suma del ltimo dgito con el primero debe ser par. Si cumple, el nmero de pliza es valido
debe retornar un 1 sino debe retornar un 0.
Funcin CalcularPago: que debe recibir el cdigo del seguro y el monto a pagar y retornar el valor que se debe pagar la
persona.

125-Haga un programa en C de manera modular (usando funciones) para el siguiente problema: la empresa rapinet ofrece el
servicio de Internet de acuerdo a las siguientes condiciones:
La tarifa se cobra por horas y minutos de la siguiente forma: Si el nmero de minutos es menor de 30 no se le cobran los minutos
extras (solo las horas enteras) si los minutos estn entre 30 y 45 se cobra a 15 pesos los minutos que exceden de 30 y si los minutos
son mayores de 45 se le cobra una hora completa.
La tarifa por horas depende del nmero de horas que navegue de acuerdo a la siguiente tabla
Tiempo de navegacin Valor a pagar por hora
De 1 a 5 horas 1500 pesos por hora
De 5 a 10 horas 1200 pesos por hora
Ms de 10 horas 900 pesos por hora
La empresa ofrece el 10% de descuento sobre el total a pagar, para las personas cuya cuenta supere los 10000 pesos.
Dado por teclado el tiempo de navegacin de cada una de las personas que reciben el servicio en un da, hacer un programa en C
que calcule el total a pagar de cada una de las personas que hacen uso del servicio y el total recaudado por la empresa en un da.
Para ello desarrolle las siguientes funciones
Una funcin llamada calcular que calcule el total a pagar (sin descuento) conociendo el nmero de horas y minutos
navegados
Una funcin llamada descuento que calcule el total de dinero a descontar por el servicio de Internet, conociendo el total
a pagar sin descuento.
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


38
En el main se debe capturar las horas y minutos de navegacin de cada uno de los clientes del da. Como no se conoce el
nmero de clientes que atiende la empresa durante el da, el proceso termina cuando el nmero de horas navegadas sea un
nmero negativo. En el main tambin hay que calcular el total recaudado por la empresa en dicho da.

126-Una empresa tiene sus productos codificados mediante referencias compuestas por 4 cifras. Las dos primeras cifras
representan un consecutivo del producto, las siguientes dos cifras representan la lnea de produccin a la que pertenece (por
ejemplo la referencia 7211 esta asignada a un producto cuyo consecutivo es 72 y pertenece a la lnea 11). En la empresa existen
solo tres lneas de produccin 11, 22 y 44. Elabore un programa en C que lea n referencias validas de productos (n dado por
teclado), sus costos de produccin y precios de venta e indique cual es el producto que ms ganancia le genera a la empresa. Para
ello debe implementar las siguientes funciones:
Una funcin que lea n referencias de productos, sus costos de produccin y su valor de venta de cada uno y retorne la
referencia del producto que ms ganancia le genera a la empresa.
Una funcin que verifique si se trata de una referencia valida y retorne 1 si es valida y 0 si no lo es.
Una funcin que reciba la referencia de cada producto, su costo de produccin y su valor de venta y retorne el valor que
aporta de ganancia dicho producto.
La funcin main

127-Desarrolle un programa que permita capturar por teclado 10 nmeros ingresados por el usuario, de seis o ms cifras. Para cada
nmero ingresado el programa deber comprobar si el nmero es de seis o ms cifras, si es as deber separarlo en dos nmeros
independientes (uno compuesto por las cifras pares y otro compuesto por las cifras impares), para el programa se debern crear las
siguientes funciones:
Funcin comprobar: La funcin deber recibir como parmetro de entrada un nmero, y deber retornar uno (1) si el
nmero es de seis o ms cifras, y cero (0) si el nmero tiene menos de seis cifras.
Funcin numerodescompuesto: La funcin deber recibir como parmetro de entrada un nmero, deber descomponerlo
en sus cifras (de derecha a izquierda) y deber formar dos nuevos nmeros uno con las cifras pares, y otro con las cifras
impares, la funcin debe retornar el nmero mayor de los dos generados.
Ej. La funcin recibe como parmetro de entrada el nmero 1548792397563 deber generar los siguientes nmeros
157939753 y 4826, y deber retornar el nmero 157939753 dado que este es el mayor de los dos generados.
Funcin main: La funcin permitir ingresar 10 nmeros al usuario (implementar por medio de ciclo) y deber realizar lo
solicitado en el programa usando las funciones antes descritas

128-Un factorin es un nmero que es igual a la suma de los factoriales, de los dgitos que lo componen. Por ejemplo 145 es un
factorin, ya que 1! + 4! + 5! = 1 + 24 + 120 = 145. Escriba un programa en C, utilizando funciones que encuentre los tres
primeros factoriones.

129-Se necesita realizar un programa que imprima todos los nmeros precisos que existen hasta el 5000. Un nmero preciso es
aquel que al elevar al cuadrado la cantidad de cifras que tiene, su resultado es igual a la suma de cada uno de sus dgitos.
Ejemplo: el nmero 13, es preciso pues tiene 2 cifras, y 2
2
= 4
Ahora la suma de sus cifras es: 1+3 = 4. Como la suma de sus cifras es igual a la cantidad de cifras elevada al cuadrado este es un
nmero preciso.
Realizar las siguientes funciones:
Funcin cuadrado: que recibe el nmero y devuelve el cuadrado de la cantidad de cifras que tiene
Funcin suma: que recibe el nmero y suma las cifras del nmero
Funcin preciso: retorna 1 si el numero recibido como parmetro es preciso o 0 si no es preciso
Funcin main que lista cada uno de los nmeros precisos que existen hasta el 5000.

130-El gobierno nacional ha encargado a la empresa Arbolizadora de Colombia SA. La tarea de planear la arborizacin de un
nmero indeterminado hectreas ubicadas en el departamento Norte de Santander.
Para este proceso se est seleccionando la especie de rbol a sembrar, para cada especie se describe la cantidad de rboles que se
pueden sembrar por cada 10m
2
y el costo segn la siguiente tabla:
Id Especie Cantidad por 10 m2 Costo C/U
1 Cedro 4 30000
2 Roble 6 27000
3 Pino 9 18000
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


39
4 Eucalipto 7 11000
De acuerdo a la cantidad de arboles que se puedan sembrar se presenta un descuento en el costo, si la cantidad es par se da un
descuento del 10%, si es impar no se da descuento.
Una hectrea equivale a 10000 m
2

Realice las siguientes funciones:
Funcin espar, recibe un nmero cualquiera y retorna 1 si es par, o si es impar.
Funcin hectareaametros, recibe un nmero que representa la cantidad de hectreas y retorna la cantidad de metros.
Funcin cantidadarboles, recibe el Id de una especie de rboles y la cantidad de metros cuadrados, y retorna la cantidad
de arboles que se pueden sembrar.
Funcin costoarboles, recibe el Id de una especie de rboles, la cantidad de rboles que se pueden sembrar de esta, y
retorna el costo de sembrar el total de rboles de esa especie (implementa la funcin espar para la aplicacin del
descuento).
Funcin main, Solicita la cantidad de hectreas al usuario. Llama a las funciones hectareaametros, cantidadarboles y
costoarboles. Imprime en pantalla los siguientes datos: Especie cantidad rboles costo total. Por cada una de las
especies de rboles.

131-En una empresa de telefona, solo por el da de hoy, se esta ofreciendo una promocin de acceso a Internet, consistente en lo
siguiente: Las tarifas mensuales normales (sin descuento) dependen del tipo de acceso y del estrato as:
Estrato
Tipo de acceso
Del 1 al 3 Del 4 al 6
1. Internet Fcil 65.000 82.000
2. Internet Familiar 75.000 97.000
3. Internet Extremo 85.000 120.000
Segn el nmero de telfono de la lnea por la que se accede a Internet, se ofrece un descuento igual al nmero de dos cifras
formado por los primeros dgitos impares. Por ejemplo si el nmero es 5681232 el primer digito impar es 3 y el siguiente es 1 por
lo tanto se obtuvo el nmero 31 y este ser el descuento a aplicar. Si el nmero telefnico no tiene dgitos impares entonces el
porcentaje de descuento se obtiene buscando el tercer digito y multiplicando por 10.
Implementar las siguientes funciones
Funcin tienedigitosimpares (N) que retorne 1 si el nmero dado como parmetro tiene dgitos impares y 0 si no tiene dgitos
impares
Funcin extraer(num) que retorna un nmero de mximo dos cifras, conformado por los primeros 2 dgitos impares del nmero
dado como parmetro, si el nmero solo tiene un digito impar debe retornar este.
Ejemplos: extraer(5683145) retorna 51 y extraer(8682144) retorna 1
Funcin, digito(N,num) que retorne el dgito N-simo de un nmero num de tipo Entero largo, teniendo en cuenta que el dgito 0
es el dgito ms a la derecha (el menos significativo). La funcin devolver -1 si el nmero no tiene suficientes dgitos.
Ejemplos:
digito (0,233456) retorna 6
digito (1,43456) retorna 5
digito (4,3456) retorna -1
Funcin cuotamensual(telefono, tipoacceso, estrato) que recibe como parmetros el nmero de la lnea telefnica, el tipo de
acceso que se desea contratar y el estrato residencial del cliente, para retornar el valor de la cuota mensual segn las condiciones de
la promocin (haga uso de las funciones implementadas anteriormente).
En el main hay que construir el cdigo necesario para atender a una fila de clientes que acudieron a la empresa a comprar el acceso
de Internet (no se sabe cuantos clientes hay, el proceso termina cuando el numero telefnico tecleado sea cero). De igual manera en
el main se debe imprimir cuanto dinero recibir mensualmente la empresa por las ventas realizadas en el da de hoy que se ofreci
la promocin.

132-Los almacenes de cadena XITO, con motivo de la temporada de navidad, se encuentran desarrollando planes promocionales
para sus clientes. Al iniciar el da el cajero debe ingresar en la caja el da del mes (ej. 14), se atienden X cantidad de clientes en una
caja, por cada cliente se debe solicitar: nmero de documento, nmero de telfono, cantidad de productos, por cada producto se
solicita el cdigo (nmero de 4 dgitos y siempre comienza en nmero par) y valor. A cada cliente se le muestra el valor total a
pagar por sus productos. No se conoce la cantidad de clientes, al final del da el cajero digita el nmero de cdula 0. Los productos
que sus dos ltimos dgitos coincidan con el da tienen un descuento del 20%. En caso que la sumatoria de los dgitos de la cdula
sea igual al da, el cliente recibe un descuento del 100%. Realice un programa en C++ modular, que implemente las siguientes
funciones:
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


40
Funcin verificar: Recibe un nmero entero y verifica que corresponda a un cdigo valido, nmero de cuatro dgitos, de
los cuales el primer dgito (de izquierda a derecha) debe ser par.
Funcin descuentopromo: Recibe el cdigo de un producto, su valor y el da, retorna el valor del producto aplicando el
descuento en caso que los dos ltimos dgitos del cdigo coincidan con el da, de lo contrario retorna el valor del producto
sin descuento.
Funcin leerproductos: Recibe la cantidad de productos y el da, por cada uno de los productos solicita el cdigo (usa la
funcin verificar) y el valor, por cada producto deber usar la funcin descuentopromo para verificar si se debe aplicar el
descuento. Retorna el valor a pagar por los productos.
Funcin cedulaganadora: Recibe el nmero de cdula y el da, halla la sumatoria de los dgitos, retorna 1 si la sumatoria es
igual al da, y 0 si no lo es.
Funcin main(). Realiza el control del programa de acuerdo al enunciado inicial. Al final del da deber imprimir el total
recaudado por ventas, el cliente con mayor valor de compra, el total de dinero correspondiente a descuentos de 100%
entregados y la cantidad de personas que fueron premiadas con ese descuento.

133-Elabore un programa que reciba dos nmeros, los cuales representan la fecha de nacimiento y una fecha posterior al
nacimiento de una persona. Con estas fechas, la funcin debe retornar cuantos das exactamente han pasado entre la fecha de
nacimiento y la fecha posterior dada. Las fechas estn en formato aaaammdd, es decir, los cuatro primeros dgitos del nmero
recibido corresponden al ao, los siguientes dos dgitos corresponden al mes y los dos ltimos dgitos corresponden al da.
Tenga en cuenta que:
Enero, Marzo, Mayo, Julio, Agosto, Octubre y Diciembre tienen 31 das.
Abril, Junio, Septiembre y Noviembre tienen 30 das.
Febrero tiene 28 das en un ao no bisiesto y 29 das en un ao bisiesto.
Un ao no bisiesto tiene 365 das.
Un ao es bisiesto si no es mltiplo de 400 pero s es mltiplo de 4, salvo el caso en que sea mltiplo de 100. Por ejemplo
el ao 1900 no fue bisiesto, el 2000 s y el 2100 no lo ser.
Ejemplo: si la funcin recibe por parmetro las fechas 20020315 y 20070901, debe retornar 1995, que es la cantidad exacta de das
transcurridos desde el 15 de marzo de 2002 y el 01 de septiembre de 2007. El anterior resultado se debe a que la persona ha vivido
exactamente cinco aos no bisiestos mas 170 das.
Se sugieren, entre otras, las siguientes funciones:
Una funcin que dado un ao, retorne si es o no bisiesto.
Una funcin que dado un ao, retorne el nmero de das que tuvo (teniendo en cuenta si es o no bisiesto).
Una funcin que dado el nmero de un mes, retorne cuantos das tiene
Una funcin que retorne cuantos das exactamente han pasado entre las dos fechas.
Funcin main.

134-En la ciudad de Pamplona durante la ola invernal se vio incomunicada con el resto del pas, y con la preocupacin de
desabastecimiento de gasolina, la principal estacin de servicio de la ciudad defini las siguientes reglas para la venta de gasolina a
las interminables filas de autos que acudieron a solicitar el servicio.
El nmero de galones que se puede vender a un vehculo depende del tipo de vehculo (1. Automvil, 2 Camioneta) y de la
nacionalidad del vehculo (1 Venezolano, 2. Colombiano) segn la siguiente tabla.
Tipo de vehculo
Nacionalidad
1. Automvil 2. Camioneta
1. Venezolano 5 Galones 7 Galones
2. Colombiano 8 Galones 12 Galones
De igual manera el precio del galn no es el mismo para todo vehculo. Este depende de la hora de solicitud del servicio y del tipo
de vehculo as:
Hora de solicitud
Tipo de vehculo
6 a 13 13 a 20
1. Automvil 4750 Pesos por galn 3870 Pesos por galn
2. Camioneta 5500 Pesos por galn 4720 Pesos por galn
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


41
Como promocin se ofrece un descuento que depende del primer digito de la placa para los vehculos venezolanos y del ltimo
digito para los vehculos colombianos. Recordar que los autos venezolanos solo tienen dos dgitos numricos en la placa y los autos
colombianos tres dgitos. Por lo tanto con el nmero de la placa se puede determinar la nacionalidad del vehculo.
Realizar las siguientes funciones
Funcin nacionalidad que recibe como parmetro un nmero de placa y retorna un 1 si es venezolano (tiene dos dgitos) un 2 si es
Colombiano (tiene tres dgitos) o un 0 si no es un nmero de placa valido.
Funcin galonesavender, que recibe como parmetros el tipo de vehculo (1. Automvil, 2 Camioneta) y el numero de placa y
retorna el total de galones que se le pueden vender a dicho vehculo.
Funcin preciogalon que recibe como parmetros el tipo de vehculo (1. Automvil, 2 Camioneta) y la hora en que solicito el
servicio (nmero entre 6 y 20)
Funcin descuento que recibe como parmetros el numero de la placa del vehculo y retorne el porcentaje de descuento que hay
que realizar
En la funcin main se debe procesar la informacin de una fila de vehculos cuya cantidad no se conoce, pero se controla con el
numero de la placa, es decir que se atiende vehculo por vehculo hasta que el numero de la placa no sea valido es decir que el
numero de placa no corresponda a un auto venezolano o Colombiano.
Para cada vehculo se registra por teclado el nmero de placa, el tipo de vehculo y la hora en que solicito el servicio, el con esta
informacin y haciendo uso de las funciones definidas se calcula el total a pagar por cada uno de los vehculos (con descuento) el
cual se debe imprimir por pantalla. Tambin se debe imprimir al finalizar el proceso el total de dinero recaudado y el total de
galones de gasolina vendidos.

135-Se requiere desarrollar un programa para calcular la liquidacin de impuestos de vehculos. Para liquidar el impuesto el
programa requiere que se digite un cdigo asignado en la secretaria de trnsito. Dicho cdigo consta de 9 dgitos. Los 4 primeros
corresponden al modelo del carro, los dos siguientes a la cilindrada y los tres finales a la placa del carro.
El impuesto se liquida de acuerdo al valor comercial del vehculo, de la siguiente manera: para vehculos de este ao, el impuesto
es del 3% del valor comercial del vehculo, y este aumenta en 0.05% por cada ao de antigedad. Para calcular la cilindrada, los
dgitos 5 y 6 se dividen entre 10. Si la cilindrada pasa de 3.0 se incrementa el impuesto en 1% punto, si es menor o igual de 1.4 se
disminuye en 1%. Finalmente se desea hacer un descuento especial del 50% del impuesto final, a los vehculos cuya suma de los
dgitos del cdigo dado sea menor que los nmeros que determinan su cilindrada.
Ejemplo: si el cdigo es 200812435 tenemos que es un vehculo modelo 2008, su cilindrada es 1.2 c.c y su placa es 435.
Si el valor comercial es del $28.500.000, el impuesto se determina de la siguiente manera:
La base es de 3%, por la antigedad aadimos 0.05% x 3 (hay 3 aos entre el 2008 y el ao actual), como la cilindrada es 1.2,
disminuimos 1% y eso resulta 2.15% del valor comercial. Esto es $28.500.000 x 2.15/100 = =612.750. La suma de los dgitos del
cdigo es 2 + 8 + 0 + 0 + 1 + 2 + 4 + 3 + 5 = 25, y es mayo que los dgitos de su cilindrada (12) por tanto no se descuenta el 50%
del impuesto (En caso de haber conseguido el descuento, pagara solo $306.375).

Para realizar el programa anterior, codifique las siguientes funciones.
Funcin validar, que recibe el cdigo, y verifica que tenga 9 dgitos, que sea un ao valido (mayor de 1970 y menor que 2012). y
una cilindrada mayor que 1.0. En caso de ser valido retorna 1, de lo contrario retorna 0.
Funcin impuesto por modelo. Determina el porcentaje a descontar, de acuerdo al modelo del carro (recibe como parmetro el
cdigo completo)
Funcin impuesto por cilindrada. Determina el porcentaje a sumar o restar segn la cilindrada. Ser un nmero negativo si se debe
restar o uno positivo si se debe aadir. (recibe como parmetro el cdigo completo)
Funcin descuento. Devuelve 1 si el vehculo tendr el descuento especial del 50% o 0 en caso contrario. Utilice una estructura
iterativa para calcular la suma de los dgitos del cdigo.
Main, que pide el cdigo de liquidacin para una serie de carros hasta que se digita el cdigo cero. Utiliza la funcin validar. Si no
es un cdigo vlido lo solicita nuevamente hasta que este sea vlido. Liquida el impuesto utilizando para ellos las funciones
anteriores, imprime el impuesto y la placa del vehculo.
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


42


6 Resumen de notaciones de las estructuras de control


Entrada de datos
Salida de datos

Lineales



Asignacin


De seleccin o condicionales

Para
Mientras que






Estructuras de control

No Lineales



Repetitivas


Hacer mientras


Estructuras de control
Nombre Diagrama de flujo Seudocdigo En C
Entrada o captura de datos
b



Leer b

scanf ( %d, &b );
Salida o impresin de datos
a



Imprimir a

printf (cadena de formateo , a );
Asignacin
a = b+c


a = b + c

a = b + c ;



Condicin
si no



Si condicin entonces
....Instrucciones para
....cuando la condicin
....sea verdadera

Sino
....Instrucciones para
....cuando la condicin
....sea falsa

Fin si

if ( condicin )
{

....Instrucciones en c para
....cuando la condicin
....sea verdadera
}
else
{

....Instrucciones en c para
....cuando la condicin
....sea falsa
};

Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua del Estudiante para Programacin I Segundo Semestre 2011
---------------------------------------------------------------------------------------------------------------------------------------


43


Estructura repetitiva
Para

i=1; n ; 1




Para i=1 hasta n inc 1 haga

..... Instrucciones a repetir

fin para


for ( i =1 ; i<=n ; i=i+1 )
{

..... Instrucciones a repetir

};
Estructura repetitiva
Mientras que

Condicin
no
si




MQ condicin haga

..... Instrucciones a repetir

fin MQ


while ( condicin )
{

..... Instrucciones a repetir

};

Estructura repetitiva
Hacer Mientras

Condicin
si
no




Hacer

..... Instrucciones a repetir

MQ condicin


Do
{

..... Instrucciones a repetir

} while ( condicin );

Potrebbero piacerti anche