facultad de ingenierías y arquitectura guía del estudiante ... · pdf...

71
Universidad de Pamplona Facultad de Ingenierías y Arquitectura Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch ----------------------------------------------------------------------------------------------------------------------------------- 1 Programación estructurada Objetivo del Curso: Adquirir habilidad en la solución de problemas por medio del computador, mediante el desarrollo del pensamiento algorítmico. Desarrollar habilidades en el uso de por lo menos un lenguaje y una herramienta de programación. Desarrollar aptitudes de análisis, diseño y codificación de soluciones a problemas básicos de programación. Contenidos del curso 1. Generalidades 1.1Conceptos de máquina y computador 1.2 Componentes funcionales del computador 1.2.1 Software 1.2.1.1 Conceptos 1.2.1.2 Clasificación 1.2.2 Hardware 1.2.2.1 Concepto 1.2.2.2 División Funcional (CPU, Memoria y dispositivos de entrada y salida) 2. Resolución de Problemas 2.1. Metodología para la resolución de problemas 2.2 Conceptos preliminares (Algoritmo, dato, variable, constante, expresión, tipos de expresiones) 2.3 Diagramas de Flujo 2.4 Estructuras de Control 2.4.1 Secuenciales o lineales 2.4.2 De selección 2.4.3 De repetición (Para, Mientras que, hacer mientras) 2.5 Programación modular 2.5.1 funciones 2.5.2 Parámetros por valor 2.5.2 Parámetros por referencia 3. Lenguaje de programación 3.1 Fundamentos de C 3.2 Herramienta de programación en C (dev c++) 3.3 Procedimientos para la edición, compilación y ejecución de programas Bibliografía Recomendada Fundamentos de Programación, Algoritmos, Estructuras de datos y Objetos, Luis Joyanes Aguilar, Tercera edición. Editorial McGraw Hill. Informática Básica, Eduardo Alcalde y Miguel Garcia, Segunda edición, Editorial McGraw Hill. Fundamentos de Programación, Algoritmos y Estructuras de datos, Luis Joyanes Aguilar, Segunda edición. Editorial McGraw Hill. Fundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, Editorial McGraw Hill. Turbo C/C++ 3.1 Manual de referencia, Herbert Schildt, McGraw Hill

Upload: hadien

Post on 06-Mar-2018

220 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 1

Programación estructurada

Objetivo del Curso: Adquirir habilidad en la solución de problemas por medio del computador, mediante el desarrollo del pensamiento algorítmico. Desarrollar habilidades en el uso de por lo menos un lenguaje y una herramienta de programación. Desarrollar aptitudes de análisis, diseño y codificación de soluciones a problemas básicos de programación.

Contenidos del curso 1. Generalidades 1.1Conceptos de máquina y computador 1.2 Componentes funcionales del computador 1.2.1 Software 1.2.1.1 Conceptos 1.2.1.2 Clasificación 1.2.2 Hardware 1.2.2.1 Concepto 1.2.2.2 División Funcional (CPU, Memoria y dispositivos de entrada y salida)

2. Resolución de Problemas 2.1. Metodología para la resolución de problemas 2.2 Conceptos preliminares (Algoritmo, dato, variable, constante, expresión, tipos de expresiones) 2.3 Diagramas de Flujo 2.4 Estructuras de Control 2.4.1 Secuenciales o lineales 2.4.2 De selección 2.4.3 De repetición (Para, Mientras que, hacer mientras) 2.5 Programación modular 2.5.1 funciones 2.5.2 Parámetros por valor 2.5.2 Parámetros por referencia

3. Lenguaje de programación 3.1 Fundamentos de C 3.2 Herramienta de programación en C (dev c++) 3.3 Procedimientos para la edición, compilación y ejecución de programas

Bibliografía Recomendada Fundamentos de Programación, Algoritmos, Estructuras de datos y Objetos, Luis Joyanes Aguilar, Tercera edición. Editorial McGraw Hill. Informática Básica, Eduardo Alcalde y Miguel Garcia, Segunda edición, Editorial McGraw Hill. Fundamentos de Programación, Algoritmos y Estructuras de datos, Luis Joyanes Aguilar, Segunda edición. Editorial McGraw Hill. Fundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, Editorial McGraw Hill. Turbo C/C++ 3.1 Manual de referencia, Herbert Schildt, McGraw Hill

Page 2: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 2

Contenidos de la Guía

1 GENERALIDADES ................................................................................................................................................................. 3

1.1 CONCEPTOS PRELIMINARES PARA LA PROGRAMACIÓN ....................................................................................................... 6 1.2 ESTRUCTURAS DE CONTROL............................................................................................................................................... 8

2 ESTRUCTURAS DE CONTROL BÁSICAS (ENTRADA, ASIGNACIÓN Y SALIDA) .................................................. 8

3 ESTRUCTURAS DE SELECCIÓN O CONDICIONALES............................................................................................... 10

4 ESTRUCTURAS REPETITIVAS......................................................................................................................................... 23

4.1 ESTRUCTURAS REPETITIVAS “PARA” ............................................................................................................................... 24 4.2 ESTRUCTURAS REPETITIVAS “MIENTRAS QUE” ................................................................................................................ 26 4.3 ESTRUCTURAS REPETITIVAS “HACER MIENTAS” ............................................................................................................. 27 4.4 EJERCICIOS MISCELÁNEOS SOBRE ESTRUCTURAS DE CONTROL REPETITIVAS................................................................... 27

5 PROGRAMACIÓN MODULAR (FUNCIONES) ............................................................................................................... 37

6 RESUMEN DE NOTACIONES DE LAS ESTRUCTURAS DE CONTROL ................................................................... 51

Page 3: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 3

1 Generalidades

1- Defina y diferencie los siguientes conceptos generales: 1. Máquina. 1.1. Maquina Abstracta. 1.2. Maquina concreta. 2. Computador. 2.1. Software. 2.1.1. Lenguaje de programación. 2.1.2. Sistemas de información. 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 Aritmético Lógica (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

Usuario

Sistemas de Información

Software Aplicativo

Lenguajes de Programación

Sistemas Operativos

Hardware

Page 4: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 4

Usuario

Da y recibe información del computador, cuando ejecuta un programa, ya construido por un programador

Computador

Dispositivos de Entrada de datos

Dispositivos de Salida de datos

Solo ejecuta las instrucciones, almacenadas en la memoria de instrucciones y previamente

Unidad Central de procesamiento

Unidad de Control

Memoria de Instrucciones

a

b

Memoria de Datos

a

10 b

diseñadas por el programador

Unidad Aritmetico-lógica

c = a + b 12 c

c 22

Programador

Diseña los programas

3-De acuerdo al siguiente gráfico 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.

Page 5: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 5

Enunciados claros, sin ambigüedad

de la situación que se quiere automatizar mediante la construcción de un programa

de computador

Problema a solucionar

Identificación 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 solución del problema (datos de salida)

Análisis

Diseño

Codificación

Descripción de los pasos que debe seguir el computador (algoritmo) para a partir de los datos de entrada, dé solución al problema. Estos

pasos pueden ser descritos mediante diferentes técnicas como diagramas de flujo o seudocódigo

Prueba

Implantación

Traducción de los algoritmos especificados en el diseño a un lenguaje de alto nivel entendible por el computador

en este caso a C

Mantenimiento

Reingeniería Verificación de que el algoritmo,

soluciona el problema.

Ejercicios de selección múltiple Un algoritmo debe ser: a. Corto y Rápido. b. Finito. c. Matemático d. Complejo El Diseño produce: a. El programa ejecutable y las estructuras de los datos. b. Unidades de Tratamiento. c. Un programa informático. d. Un algoritmo descrito en pseudocódigo o diagrama de flujo. e.Nada

((a div b)>5)and((b-a)>0))

a. No es una expresión válida b. Es una expresión numérica c. Es una expresión booleana d. Es una expresión alfanumérica

Dentro de la metodologia estudiada, la fase de diseño 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é solución 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

Si a= 3 b= --2 y c= 10 la expresión ((a*b)>c) and ((c div 3)>b) da como resultado a. -2 b. Falso c. –1 d. 1 e. Verdadero

f. Ninguna de las anteriores

Page 6: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 6

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 F F F F V

1.1 Conceptos preliminares para la programación

Algoritmo: Conjunto de pasos lógicos, secuenciales y finitos para dar solución a un problema general. Dato: Es una característica 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 más 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 puntuación, usando solo letras del alfabeto ingles y números, comenzado siempre en letra. Tipos de datos: Los datos se clasifican según el tipo de valor que contenga así: Numéricos (si su contenido es un número) Alfanuméricos (si su contenido es un carácter o una cadena de caracteres) y Booleanos (si su contenido es un valor de verdad, es decir un verdadero o un Falso).

Numéricos

Enteros

Enteros Cortos Enteros Propiamente dichos Enteros Largos

Reales

Tipos de datos

Alfanuméricos

Caracteres Cadenas de Caracteres (String)

Boolenos

Expresión: Es una combinación apropiada de operandos, operadores, signos de agrupación y funciones. Los operandos son datos constantes o variables, los signos de agrupación son los paréntesis y las funciones son las predefinidas por el lenguaje o construidas por el programador. Nota: en este curso sólo está permitido el uso de los operadores aquí definidos.

Aritméticos

Suma + Resta – División real / Multiplicación * División entera div Residuo de división entera mod

Operadores

Lógicos

And Or not

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

Alfanuméricos

El operador de concatenación que tiene algunos lenguajes de programación y que básicamente sirve para pegar dos cadenas de caracteres

Page 7: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 7

Evaluar una expresión: Es el proceso mediante el cual se realizan las operaciones indicadas en una expresión, con los valores que en ese instante tengan las variables, respentando el orden que plantean los signos de agrupación y obteniendo un único valor que puede ser un número, un carácter o cadena de caracteres, o un valor de verdad (un falso o un verdadero) Tipos de expresión: Una expresión puede ser numérica, alfanumérica o booleana. Es numérica si después de evaluar (calcular la expresión) su resultado es un número; es alfanumérica si después de evaluar la expresión el resultado es un carácter o cadena de carácter y es booleana si después de evaluar la expresión su resultado es un valor de verdad (un verdador o un falso) Ejemplos: si a, b y c son datos numéricos (a+b)*c es una expresión numérica ((a+b)*c) > 5 es una expresión boleana ((a>b) and (c>a+b)) or (c >3) es una expresión booleana (a div 4) = 0 es una expresión booleana (a mod 5) > ( b div 4) es una expresión boolena ((a mod 5) > 4)*c no es una expresión válida ((a mod 5) - 4)*c es una expresión numérica

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

1.2 Estructuras de control

Entrada de datos Salida de datos Asignación

Estructuras de control

De selección o condicionales

Para Repetitivas Mientras que

Hacer mientras

2 Estructuras de control básicas (Entrada, Asignación y Salida)

Estructuras de control Nombre Diagrama de flujo Seudocódigo En C Entrada o captura de datos

b

Leer b

scanf ( “%d”, &b );

Salida o impresión de datos

a

Imprimir a

printf (“cadena de formateo ”, a );

Asignación a = b + c

a = b + c ; a = b+c

Page 8: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 8

En una asignación hay que tener en cuenta:

Variable cuyo valor va a cambiar

Símbolo de asignación

En una asignación, primero se calcula el valor de la expresión y luego el resultado es almacenado en la variable de la izquierda

a = b + c

Expresión que va a ser calculada, y cuyo resultado

será almacenado en la variable de la izquierda

En una asignación, el tipo de dato de la variable de la izquierda debe ser igual al tipo de expresión de la derecha

Para cada uno de los siguientes ejercicios realizar el respectivo análisis, diseño y codificación: 6- Calcular la altura de un cono conociendo el volumen y el radio de su base.

arV ...3

1 2π=

7-Convertir una temperatura dada en grados Celsius a grados Fahrenheit, sabiendo que

325

9+= cF

8-Dado un número de 3 cifras invertir el número. 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 triángulo en función de las longitudes de sus lados ))()(( cpbpappArea −−−= donde

2/)( cbap ++= (semiperimetro) , utilice la función sqrt(x) que calcula la raíz cuadrada de x.

11-En una empresa que fabrica 3 tipos de productos (A, B, C) se cuenta con la colaboración de 3 empleados (E1, E2, E3) para la elaboración de los mismos. Los tiempos que cada empleado demora en la elaboración de un artículo de cada tipo de producto se dan en la siguiente tabla en minutos:

Tipo Producto A B C

Empleado E1 12 13 7 E2 9 15 17 E3 15 8 6

Se desea saber, dada una determinada cantidad de artículos 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 telefónica, si por los primeros 3 minutos se cobran 300 minutos c/u y 150 por cada minuto adicional. Suponer que las llamadas siempre duran más de 3 minutos.

13- Dados los coeficientes de una ecuación cuadrática 02 =++ cbxax ( los coeficientes son a , b y c ) determinar sus raíces ,

sabiendo que a

cabbX

.2

..42 −±−=

Page 9: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 9

12-Dado un valor en pesos y conociendo la tasa de cambio del dólar, el bolívar y el euro con respecto al peso, determine a cuanto equivale el valor dado en pesos, en cada una de estas otras monedas. (tenga en cuenta las siguientes tasas de cambio 1 dólar =2500 pesos, 1 euro =3000 pesos, un bolivar = 0.52 pesos)

15-Un vendedor recibe un sueldo base, más un 10% extra por comisión de sus ventas, el vendedor desea saber cuánto 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: Ginecología, Pediatría, Traumatología. El presupuesto anual (o monto) del hospital se reparte conforme a la siguiente tabla:

Área Porcentaje de presupuesto Ginecología 40% Pediatría 30% Traumatología 30%

Calcular la cantidad de dinero que recibirá cada área, para cualquier monto presupuestal.

3 Estructuras de selección o Condicionales

no si Condición

Si condición entonces ....Instrucciones para ....cuando la condición ....sea verdadera

Sino ....Instrucciones para ....cuando la condición

....sea falsa

if ( condición ) {

....Instrucciones en c para ....cuando la condición

....sea verdadera

} else

{

Fin si

En una estructura de selección hay que tener en cuenta:

....Instrucciones en c para

....cuando la condición

....sea falsa };

Expresión booleana

que se evaluará para decidir que conjunto de instrucciones

se ejecutará

Llegada a la estructura

Conjunto de instrucciones que se ejecutarán, cuando la condición sea verdadera

no si Condición

Conjunto de instrucciones que se ejecutarán, cuando

la condición sea Falsa

Terminación de la estructura Aquí se deben encontrar los caminos del si y del no para continuar el algoritmo

Page 10: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch --

--------------------------------------------------------------------------------------------------------------------------------- 10

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

18-Calcular el número de pulsaciones que debe tener una persona por cada 10 segundos de ejercicio aeróbico; 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 números determinar el mayor (o el menor o el del medio en otros algoritmos)

20-Calcular el costo total de los pasajes aéreos para un viajero en la aerolínea VIENTOS AIR, para ello el viajero debe suministrar los siguientes datos para registrar su reserva:

Número de Cédula. Clase en la que desea viajar. Destino. Tipo de viaje. Número 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 Miami Madrid Clases 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 Turístico 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 turístico individual el descuento será del 4,75%. Además, dependiendo del número 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 más 7,24%

21-El Seguro Social requiere clasificar a las personas que se jubilarán en el año de 2005. para este programa el seguro social plantea las siguientes reglas: Existen tres tipos de jubilaciones: por edad, por antigüedad joven y por antigüedad adulta. Las personas adscritas a la jubilación por edad deben tener 60 años o más y una antigüedad en su empleo de menos de 25 años. Las personas adscritas a la jubilación por antigüedad joven deben tener menos de 60 años y una antigüedad en su empleo de 25 años o más. Las personas adscritas a la jubilación por antigüedad adulta deben tener 60 años o mas y una antigüedad en su empleo de 25 años o mas. Determinar en que tipo de jubilación, quedara adscrita una persona conociendo su edad y tiempo de trabajo.

Page 11: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch --

--------------------------------------------------------------------------------------------------------------------------------- 11

Solución Análisis: Entrada: e: edad del empleado a: antigüedad del empleado en la empresa Salidas: Mensaje con el tipo de jubilación Diseño Seudocódigo Diagrama de Flujo inicio imprimir “digite la edad del empleado” leer e imprimir “digite la antigüedad del empleado” leer a

si e >= 60 entonces si a >=25 entonces

imprimir “jubilación por antigüedad adulta” sino

imprimir “jubilación por edad” finsi

sino si a >= 25 entonces

imprimir “jubilación por antigüedad joven” sino

imprimir “no tiene jubilación” finsi

fin si fin

Codificación #include <stdio.h> main( ) {

int e,a; printf("digite la edad del empleado \n");

scanf("%d", &e); printf("digite la antigüedad del empleado \n"); scanf("%d",&a);

if (e >= 60) {

if (a >= 25) {

printf("jubilación por antigüedad adulta \n");

} else {

printf("jubilación por edad \n"); };

} else { if (a >= 25) {

printf("jubilación por antigüedad joven \n"); } else {

printf("no tiene jubilación \n"); }; }; }

Page 12: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de PamploFacultad de Ingenierías y Arquitec

Guía del Estudiante para Programación Estructurada---------------------------------------------------------------

22-Capturar por teclado tres números cualquieradeterminar que tipo de triangulo, teniendo en cueSi los tres lados son iguales es equilátero Si solo dos lados son iguales isósceles Si todos son diferentes escalenos Solución Análisis: Entrada: A,B,C: medidas de las tres aristas de uSalidas: Mensaje con el tipo de triángulo Diseño Seudocódigo Diinicio 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 “triángulo equilátero”

sino

imprimir “triángulo isósceles” finsi

sino si a= c entonces

imprimir “triángulo isósceles”

sino

si b = c entonces imprimir “triángulo isósceles”

sino imprimir “triángulo escaleno”

finsi finsi

fin si fin

ona ctura

Programación Estructurada – Alexis Olvany Torres Ch

--------------------------------------------------------------------------------

era (A, B y C) que corresponden a las aristas de un triánenta la siguiente clasificación:

un triángulo

iagrama de flujo inicio

a, b, c

no a = b

si

no si no b = ca =c

no si “triángulo “triángulo b = c isósceles” isósceles”

“triángulo “triángulo

escaleno ” isósceles”

fin

Alexis Olvany Torres Ch -

----------------- 12

ngulo; el programa debe

b = c si

“triángulo equilátero”

Page 13: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 13

Codificación en C

#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("triángulo equilátero \n");

}

else

{

printf("triángulo isósceles \n");

};

}

else

{ if (a = = c)

{ printf("triángulo isósceles \n");

}

else

{ if (b = = c)

{ printf("triángulo isósceles \n");

}

else

{ printf("triángulo 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 algún valor es 1 o 2 imprimir “Puntaje Deficiente” Si algún 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.

Page 14: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 14

25-Suponga que las tarifas de una compañía de gas se basan en el consumo de acuerdo con la siguiente información: los primeros 70 metros cúbicos de gas usado tiene un costo mínimo de 500 pesos, los siguientes 100 metros cúbicos de gas usado 50 pesos por metro cúbico, los siguientes 230 metros cúbicos de gas usado 25 pesos por metro cúbico, por encima de 400 metros cúbicos de gas usado 15 pesos por metro cúbico. Dada la lectura anterior y actual de gas en metros cúbicos, 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 cúbicos; además 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 cúbicos.

26-En un cajero automático se necesita determinar el menor número mínimo de billetes de 10.000, 5.000, 2.000, 1.000, y mínimo 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, Círculo, Triángulo, Rectángulo. Para lograr lo anterior debe aplicar las formulas matemáticas correspondientes para cada figura. 28-omando como base los resultados obtenidos en un laboratorio de análisis clínicos, realice un programa que le permita a un medico determinar si una persona tiene anemia o no, lo cual depende de su nivel de hemoglobina en la sangre, de su edad y de su sexo. Si el nivel de hemoglobina que tiene una persona es menor que el rango que le corresponde, se determina su resultado como positivo y en caso contrario como negativo. La tabla en la que el medico se basa para obtener el resultado es la siguiente:

EDAD NIVEL HEMOGLOBINA 0 - 1 mes 13 - 26 g% > 1 y < = 6 meses 10 - 18 g% > 6 y < = 12 meses 11 - 15 g% > 1 y < = 5 años 11.5 - 15 g% > 5 y < = 10 años 12.6 - 15.5 g% > 10 y < = 15 años 13 - 15.5 g% mujeres > 15 años 12 - 16 g% hombres > 15 años - 18 g%

29-Una fábrica de computadoras planea ofrecer a los clientes un descuento que dependerá del número de computadoras que compre. Si las computadoras son menos de cinco se les dará un 10% de descuento sobre el total de la compra; si el número de computadoras es mayor o igual a cinco pero menos de diez se le otorga un 20% de descuento; y si son 10 o más se les da un 40% de descuento. El precio de cada computadora es de $1500 dolares, desarrolle un programa que le permita a la empresa de computadores saber el valor de la venta con y sin descuento. 30-Calcular el valor de la cuota mensual y el número de cuotas a pagar, por la realización de un préstamo en un banco con las siguientes condiciones: Si el préstamo es menor de $500000 se paga un interés de 10% sobre el total del préstamo y las cuotas mensuales quedan de un 3% del monto total. Si el préstamo está entre $500000 y $1000000(inclusive) se paga un interés del 7% y las cuotas quedan de un 5% del monto total. Y si el préstamo es superior a $1000000 se paga un interés del 4% y las cuotas quedan de un 7% del monto total. 31-Una empresa de servicios públicos desea liquidar el total de la factura teniendo en cuenta:

Estrato Nivel de Consumo

Tarifa Básica

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 32-Dado un número X de 3 cifras determine la suma de las cifras pares y la suma de las cifras impares Ejemplo: Si el número de tres cifras es 364, de los tres dígitos, 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. 33-Calcular e imprimir el valor total a pagar por concepto matricula de un estudiante. Para realizar estos, se debe capturar el código de estudiante, que permite definir los parámetros de liquidación e información adicional (El código esta compuesto por 5 dígitos) El primer dígito permite identificar el tipo de carrera que cursa el estudiante y valor base de matricula. El segundo dígito representa la jornada y permite obtener recargo sobre la matricula. Los siguientes dígitos (3) el consecutivo de la carrera.

Page 15: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 15

Código Tipo Valor base Matricula 1 Profesional $300.000 2 Tecnología $150.000 3 Técnico Profesional $100.000

Si el alumno tiene un consecutivo par tiene un descuento 20%. Si el alumno tiene un consecutivo impar tiene un descuento 10%. Las carreras están definidas así:

La jornada permite definir un recargo así:

Código 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 código 12345. La liquidación seria:

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

34-Un café Internet cobra a sus usuarios de la siguiente forma.

Tiempo de navegación 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.

35- 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 número 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 conversación Valor a pagar De 1 a 5 minutos 300 pesos por minuto De 5 a 10 minutos 200 pesos por minuto Más de 10 minutos 1500 pesos por los 10 primeros minutos más 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 más de 1600 pesos. Dado por teclado el tiempo de conversación de una persona (en minutos y segundos) determinar el valor a pagar.

36-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 básico y teniendo en cuenta lo siguiente: A todo trabajador de planta, se le debe descontar el 4% del sueldo básico por concepto de salud y el 3.8% del sueldo básico por concepto de pensión. Si el trabajador es de Planta y su sueldo básico 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 más de $ 1.750.000 de salario básico, se le descontará el 1% del sueldo básico por concepto de Solidaridad Pensional. Si el trabajador es Contratista, se le debe descontar el 10% por concepto de retención en la fuente solamente si su salario es superior a $ 1.500.000.

Page 16: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 16

37-En la ciudad de Pamplona se va a realizar un concierto por el día de amor y amistad todas las boletas están identificadas con un número de 6 cifras, que esta compuesto de la siguiente forma: Si la suma del primer y el último dígito es mayor que el dígito cinco la boleta es valida, en caso contrario no es valida. El segundo Dígito determina el tipo de Boleta según la siguiente tabla

Tipo de Entrada De 1 a 5 Gramilla De 6 a 9 incluyendo 0 General

El número que forma el tercer y cuarto dígito determina la hora y la puerta de entrada al evento según 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 diseñe un algoritmo donde se ingrese el número 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 dígito 4+2 = 6 6 es mayor que 5 la boleta es valida El Segundo dígito es 3 Tipo de Boleta Vip

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

38-El gobierno del estado de México desea reforestar un bosque que mide determinado número de metros cuadrados. Si la superficie del terreno excede a 1 millón 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 millón 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.

39- 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, según la siguiente tabla:

Tipo de plan Minutos Básicos Mensajes T Básicos Cargo Básico 1. Ideal 100 10 80.000 2. Extensión 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).

40-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 mínimo (dado por teclado)

si el salario esta entre Descuento 1 y 2 (incluido) salarios mínimos 5% 2 y 6 (incluido) salarios mínimos 7% Mas de 6 salarios mínimos 10%

En caso de que el salario sea menor a un salario mínimo se le dará una bonificación de 20.000 pesos

Page 17: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 17

41-En central de abastos de Pamplona (bodegas donde se almacena al por mayor) se ha establecido un mecanismo para el ingreso de vehículos que permite el cobro de parqueadero según las siguientes condiciones: Al centro de abastos entran vehículos con dos propósitos, 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 vehículos que entran a descargar se les cobra de acuerdo a la siguientetabla

Peso transportado Menos de 10 toneladas 10 o más toneladas Tipo de producto 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 vehículos 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 vehículos 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 camión mide más de 4 metros de largo. Hacer el análisis y diseño 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.

42-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 computación que facilite el cálculo del costo de la matricula para un estudiante. Las nuevas reglas para la liquidación de la matriculas son:

El valor base de la matricula depende del total de créditos matriculados por un estudiante, un crédito cuesta el 10% de un salario mínimo legal vigente (dado por teclado). Los programas académicos están clasificados en tres grupos así: 1. de ingenierías, 2. de salud, 3. Otros. Dependiendo de esta clasificación y del sexo del estudiante la matricula tiene un incremento de acuerdo a la siguiente tabla:

Sexo→

Tipo de programa ↓

Mujeres Hombres

1. Ingenierías 10% 15%

2. Salud 20.7% 32.5%

3. Otros 3.2% 4.5% Para las mujeres hay un descuento especial, dependiendo del número 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

43-La secretaria de transito requiere un programa para generar de forma automática la liquidación del impuesto de vehículos para el presente año. Para generar el precio a pagar por concepto de impuesto, se requiere que se introduzca el valor comercial del automóvil, el número de placa (numero de tres dígitos) y el mes (número de 1 a 12) en el cual se va a realizar el pago. Con el dígito central de la placa se determina el tipo de automóvil, lo cual genera el precio básico del impuesto como se muestra en la siguiente tabla

Dígito central de la placa Tipo de Vehículo Impuesto básico 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

Page 18: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 18

Sobre el impuesto básico además se genera un descuento o recargo inicial, dependiendo del mes en que se paga, como se ilustra en el siguiente cuadro.

Número del mes de Pago Descuento o recargo inicial 1 - 4 Descuento del 15% 5 Se paga el impuesto básico

6 -7 Recargo del 20% 8 en adelante Recargo del 40%

Adicional al descuento básico, se ha sorteado un descuento de 2% adicional sobre el valor comercial, para los vehículos cuya suma del primer y último digito de la placa sea par, y de 3% para los que dicha suma sea impar. Realizar el análisis, diseño y codificación en lenguaje C, de un programa que lea el número de la placa de un vehículo, su valor comercial y el mes de pago, e imprima el tipo de vehículo y el precio a pagar por concepto de impuesto.

44-Una empresa maneja códigos numéricos con las siguientes características: Cada código consta de cuatro dígitos: El primero representa una provincia, El segundo el tipo de operación y Los dos últimos, el número de la operación. Escriba un programa que lea de teclado un número de cuatro dígitos, y posteriormente imprima en pantalla la siguiente información: por ejemplo si el código es 5922 Provincia 5 Tipo de operación 9 Número de operación 22 En caso de que tenga mas de 4 dígitos en lugar del mensaje anterior, habrá que imprimir en pantalla el siguiente mensaje de error: error código no valido. Si tiene menos de 4 dígitos se suponen 0 los primeros. De acuerdo al valor de la provincia se debe especificar el área geográfica a que pertenece así:

Código Provincia Área Geográfica De 1 al 3 Norte

Del 4 al 6 Sur

Del 7 al 9 Este

0 Oeste 45- En una agencia de viajes se desea realizar un programa para determinar el valor a pagar por cierta cantidad de pasajes de ida saliendo desde Cúcuta, de acuerdo con la siguiente tabla.

1. Bogotá 2. Cali 1 Clase 250.000 450.000 2 Clase 180.000 350.000 3 Clase 150.000 300.000

Determinar el valor a pagar de acuerdo a la clase, realizar un descuento del 10% si se compran más de 5 pasajes sin importar la clase. 46- Calcular el total de dinero propio de una empresa a invertir en una compra, el total de dinero solicitado en préstamo al banco y el total de dinero a pagar a la fabrica por concepto de crédito. La empresa quiere hacer una compra de N piezas de la misma clase a una fabrica, a X pesos cada pieza. La empresa, dependiendo del monto total de la compra, decidirá que hacer para pagar a la fabrica. Si el monto total de la compra es mayor de $1 000 000 la empresa tendrá la capacidad de invertir de su propio dinero un 55% del monto de la compra, pedir prestado al banco un 30% y el resto lo pagara solicitando un crédito al fabricante. Si el monto total de la compra está entre $500 000(inclusive) y $1 000 000 la empresa tendrá capacidad de invertir de su propio dinero un 60%, pedir prestado al banco un 15% y el restante 25% lo pagara solicitando crédito al fabricante. Si el monto total de la compra es menor de $500 000 la empresa tendrá capacidad de invertir de su propio dinero un 70% y el restante 30% lo pagara solicitando crédito al fabricante. El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le pague a crédito

Page 19: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 19

47- Hacer un programa que asista el proceso de elecciones democráticas. Se desea saber para que votara una persona (Senado o Cámara), para qué partido político y el número del candidato por el cual voto el pasado domingo, Si se da un número de 4 dígitos (que representa el voto de la persona) con los cual se puede deducir: El primer dígito nos indica el partido político

Número Partido 1 Liberal 2 Conservador 3 Partido de la U 4 a 9 Otros Partidos

El segundo dígito nos indica si el voto fue para Cámara o Senado. Si el dígito es par el voto fue para Cámara, en caso de que el dígito sea impar el voto fue para Senado Los dos últimos dígitos nos indican el número del candidato 48- Los peajes en Colombia recaudan sus tarifas de acuerdo a la siguiente tabla

Categoría de peaje Categoría 1 Categoría 2

Tipo de vehículo 1. Motos 2000 2500 2. Carros 3800 4200 3. Camiones 10200 15500

Dado el tipo de vehículo y la categoría del peaje determinar el valor a pagar 49- Un supermercado ofrece a sus clientes una promoción que consiste en lo siguiente: Si el valor de las compras es superior a 50.000 pesos, solo se le cobrará el 5% de IVA sobre el valor de la compra y se les ofrecerá escoger de una bolsa negra una de tres pelotas de colores, el cajero tecleará 1 si la bola seleccionada por el cliente es roja, 2 si es amarilla o 3 si es verde. Si la bola es roja se le hará un descuento adicional del 10% sobre el valor de la compra, si es amarilla un 15% y si es verde un 20%. Para las compras inferiores o iguales a 50.000 pesos no tendrá ningún descuento y se le cobrará el IVA del 16%. Hacer el análisis y diseño de un algoritmo que liquide el total a pagar de un cliente 50- En una empresa de ventas de automóviles COLOMBIAUTOS LTDA, se tiene la siguiente tabla de precios sin importar la marca:

Tipo De Auto Precio Comisión

1. Automóvil 45’000.000 5 % 2. Camioneta 60’000.000 8 % 3. Camión 100’000.000 10 %

Un empleado gana un salario básico mas comisiones de las ventas de dicho mes según el tipo de auto que venda. Si las ventas son menores a 3 autos (sin importar el tipo), al salario básico se hace un descuento del 10 %. Para los empleados que vendan más de 3 autos se le da el salario básico más las comisiones respectivas de acuerdo a la tabla anterior. A todos los empleados se les hace un descuento del 3% correspondiente SALUD y 5% correspondiente a PENSIONES sobre el SALARIO TOTAL= (SALARIO BASICO +COMISIONES). Hacer un programa que calcule el salario a pagar a un empleado de acuerdo a las condiciones anteriores. 51- Hacer un programa para determinar el precio de un Libro, conociendo el área y el tipo del libro

Tipo 1(Nacionales) Tipo 2(Importados)

Área de Ingeniarías 78.000 132.000 Área de Administración 69.000 125.000 Área de Salud 143.000 235.000 Otras Áreas 55.600 86.000

Por ser el mes del ingeniero se realizara un descuento del 10% para las ventas en esta área.

Page 20: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 20

52- Los profesores de psicología de la Universidad requieren que les desarrollen un algoritmo para determinar el grado de estrés que tienen los estudiantes durante la semana de exámenes y para ello se basan en las siguientes reglas: El nivel de estrés se mide en puntos de estrés que se calculan de la siguiente forma: si al estudiante que se le está midiendo su grado de estrés es hombre entre 15 y 25 años entonces su grado estrés está determinado por el semestre en que está matriculado dividido entre el número de horas que le dedicó a estudiar y si es mayor de 25 años su nivel de estrés depende de las materias que tiene matriculadas multiplicadas por el semestre que cursa, dividido entre 100. Para las mujeres se calcula asi: Si está cursando entre primer y quinto semestre los puntos de estrés se miden por la edad dividido entre 10. Y si está cursando entre sexto y décimo semestre, el estrés se mide como el numero de materias que está cursando dividido entre el 30% de las horas dedicadas a estudiar. Hacer el algoritmo que le permita a los profesores de psicología calcular el nivel de estrés de cualquier estudiante, durante la semana de exámenes. 53- Dado un número de tres cifras, descomponerlo en sus dígitos. Construir con dichos dígitos dos números de dos cifras de tal manera que uno de esos números de dos cifras sea el más grande posible y el otro el más pequeño posible. Ejemplo si el número de tres cifras es 491 sus dígitos son 4, 9 y 1 el más grande numero de dos dígitos que se puede construir con estos dígitos es 94 y el más pequeño de dos cifras es 19 54- En la ciudad de Pamplona las autoridades de tránsito desean crear el pico y placa ecológico para todos los vehículos de la ciudad, el día de pico y placa de cada carro se impondrá de la siguiente manera: el último dígito del número de placa determinara el día y la hora que tiene restricción de circulación, según la siguiente tabla:

Como en la ciudad de Pamplona el número de carros no es muy alto se ha determinado que existirán dos horarios de pico y placa. Que se aplicará a los vehículos de la siguiente forma. Si la suma de los dos primeros dígitos es par debe cumplir el primer horario De 7:00 a 9:00 am y Si la suma de los dos primeros dígitos es impar el segundo horario de 12:00 a 2:00 de la tarde. Ejemplo: Número de Placa: 637. El último dígito es 7 entonces le corresponde el Miércoles y Jueves. Los dos primeros dígitos son 6 y 3 al sumarlos da 9 que es un número impar por lo tanto le corresponde el horario de 12:00 a 2:00 pm Analice y diseñe un algoritmo que lea el número de la placa de un carro (número de 3 cifras) y determine el día y el horario del pico y placa de dicho carro 55- Suponga que es propietario de una peluquería canina. Necesita desarrollar el análisis y diseño para calcular el costo total de los servicios, si se ingresa un código de 4 cifras. Las tarifas para los servicios son:

Según se considere el tamaño del perro:

Según la cantidad de perros:

Ej: Si el dato que se ingresó es 0421, esto significa ( 04=Cantidad de perros, 2 = Tamaño de la raza, 1= Servicio)

Page 21: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 21

56- Liquidar el salario de un empleado en una empresa, sabiendo que el trabajador recibe su salario por concepto de las horas normales y horas extras trabajadas en la empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto se consideran horas extras y que estas se pagan al doble de una hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se pagan las horas normales y el resto al triple. Una hora normal se paga a 5000 pesos. 57- Dado un número de cuatro cifras, descomponerlo en dos números de dos cifras. Si el primer número de dos cifras es mayor que el segundo, sumar los dígitos que sean pares del primer número, en caso contrario sumar los dígitos que sean impares del segundo número. Ejemplo: si el número de 4 cifras es 3521 al descomponerlo en dos números de dos cifras será 35 y 21, como el primero de estos dos números es mayor que el segundo se sumarían los dígitos que son pares de 35. Como ninguno de los dígitos es par 3 y 5, entonces la suma será 0 (cero) Ejemplo 2: si el número de 4 cifras es 1521 al descomponerlo en dos números de dos cifras será 15 y 21, como el primero de estos dos números no es mayor que el segundo se sumarían los dígitos que son impares del segundo número 21. Como los dígitos del segundo son 2 y 1 y el único impar es 1, entonces la suma será 1 (uno) 58- Realice el análisis y diseño de un algoritmo que permita calcular el precio de la boletería para ingresar a un concierto de inicio de semestre a la universidad. Se ingresa un número de seis dígitos. El primer dígito representa la ubicación y el valor neto a pagar así:

Los siguientes tres dígitos representan el número de la silla. Si el número es par se hará un descuento del 5% y si es impar un descuento del 10%. Los dos últimos dígitos representan un recargo que será consumible así:

Al final deberá determinar cuánto debe cancelar por su boleta mostrando su ubicación, y cuanto puede consumir 59- Hacer el análisis y diseño de un algoritmo que calcule el total que hay que pagar a un empleado de una empresa sabiendo que la empresa exige a sus trabajadores laborar 40 horas semanales. Para liquidar el salario semanal a pagar se tiene en cuenta las siguientes condiciones: El salario base para las mujeres de de 500.000 pesos semanales y para los hombres es de 700.000 pesos semanales. Si el empleado es mujer es necesario hacer una bonificación de 20.000 pesos por cada hijo que tenga. Si el empleado es hombre la bonificación depende solo de la edad así: entre 18 y 30 años 10% del salario base, entre 30 y 40 años 20% y más de 40 años tendrá una bonificación del 25 % del salario base A todos los empleados (sin importar si son hombres o mujeres) se les descuenta 5000 pesos por cada hora que deje de laborar de las 40 horas que se exigen A todos los empleados que hayan trabajado más de 30 horas a la semana se les hace un descuento del 10% de su salario semanal (incluida las bonificaciones) por concepto de pensión. 60- Realizar el análisis y diseño de un algoritmo para una clínica, que permita calcular e imprimir el valor total a pagar por un paciente. A cada paciente se le asigna un código (número entero) el cual permite obtener la información necesaria para calcular el total a pagar. El código está compuesto por 5 dígitos.

Page 22: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 22

El primer dígito (de la izquierda: más significativo) indica si es afiliado (1) o particular (2). El segundo dígito determina el servicio que solicita el paciente y su costo:

La suma del tercero, cuarto y quinto dígito determinará el descuento o recargo a que tiene derecho el paciente así: Si la suma es par y el paciente es afiliado obtendrá un descuento del 15% Si la suma es par y el paciente es particular tendrá un recargo del 15% Si la suma es impar y el paciente es afiliado obtendrá un descuento del 25% Si la suma es impar y el paciente es particular tendrá un recargo del 25% Ejemplo: Si el código del paciente es: 14562 Primer dígito: 1, que indicará que el paciente es afiliado Segundo dígito: 4, indicará que el servicio es consulta externa y tiene un costo de $40.000 La suma del tercer, cuarto y quinto dígito es impar (5+6+2 = 13), y como el paciente es afiliado entonces tendrá un descuento del 25% sobre el costo del servicio. Entonces el valor a pagar será de $30.000. 61- Una empresa de muebles se dedica a la fabricación de muebles en madera. Dado que la empresa solo recibe pedidos por internet, todos sus clientes se encuentran codificados. El código identificador de cada cliente está compuesto de 6 cifras estructurado de la siguiente manera: Las dos primeras cifras (de izquierda a derecha) identifican la región de la que proviene el cliente 11 – Norte 12 – Nororiente 13 - Noroccidente 22 – Oriente 23 – Occidente 31 – Sur 32 – Suroriente 33 – Suroccidente La tercera cifra (de izquierda a derecha) identifica el grupo poblacional: 1 a 3 – Mayores de 50 años 4 a 5 – Mayores de 40 años y menores de 49 6 a 9 – Mayores de 20 años y menores de 39 Igualmente la tercera cifra permite identificar el género Par – Mujer Impar – Hombre Las tres últimas cifras corresponden al consecutivo del cliente. De acuerdo a la región donde proviene el cliente existe un costo para el envío del producto:

Realice un programa que reciba como entrada el código de un usuario, el programa deberá validar que sea un código correcto (que tenga 6 cifras y que las dos primeras correspondan a alguna de las regiones señaladas), en caso de encontrar que el código es correcto imprimir en pantalla la región, el grupo poblacional, el sexo, el consecutivo del cliente, y el costo de realizar un envío a la región del cliente.

Page 23: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 23

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

MQ condición haga

..... Instrucciones a repetir

fin MQ

while ( condición ) {

..... Instrucciones a repetir

};

Estructura repetitiva Hacer Mientras

Hacer

..... Instrucciones a repetir

MQ condición

Do

{

..... Instrucciones a repetir

} while ( condición );

Page 24: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 24

4.1 Estructuras repetitivas “Para”

En una estructura repetitiva para hay que tener en cuenta:

Variable que cuenta las vueltas que va dando el ciclo

Valor inicial del contador

Llegada por primera vez al ciclo repetitivo

Valor final, hasta el cual el contador debe llegar

i = 1; n ; 1 Valor que se utiliza para incrementar el contador cada vez que se ejecuta

el conjunto de instrucciones

Continua el proceso de repetición

si el contador no ha superado el límite especificado

Conjunto de instrucciones que se repetirán

Terminación del proceso de repetición del conjunto de

instrucciones

62- Sea F una función de los reales en los reales, definida por

>

≤≤−

−<

+=

5

55

5

2

3)(2 x

x

x

si

si

si

x

x

x

xf

Haga un programa que lea n valores para “x” y calcule f(x) para cada uno de ellos.

63-Dados dos (2) números ·”x” y “z”, calcular “x”elevado a la ”z”

64-Dados dos (2) números ·”x” y “z”donde “x” es menor que “z” haga un algoritmo para calcular el producto y la suma de los números comprendidos entre ”x” y “z”.

65-Hacer un programa en C que capture n números y halle el mayor de los pares y el menor de los impares

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

67-El número de combinaciones de m elementos tomados de n en n está determinado por

Haga un algoritmo que lea dos números 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

Page 25: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 25

68-Las series de Taylor se definen por medio de sumatorias. Para el cálculo del seno de x (x dado en radianes) (realmente las sumatorias son hasta infinito, pero para efectos de programación se han acotado lo suficiente para que se puedan realizar los cálculos y que el resultado sea aproximado al verdadero valor)...

Seno X xx x x x

kk

k

( )! ! !

. . . ( )( ) !

. . . . .= − + − + + −+

++3 5 7 2 1

3 5 71

2 1utilizando notación de sumatoria sería:

∑=

+

+−=

15

0

12

)!12()1()(

k

kk

k

xxSeno

Para el coseno .....!2

)1(...!6!4!2

1)(2642

+−++−+−=k

xxxxxCos

kk

Utilizando notación de sumatoria sería:

C o s xx

k

k

k

k

( ) ( )( ) !

= −=∑ 1

2

2

0

1 5

Para el exponencial e xx x x

x = + + + + +12 3 4

2 3 4

! ! !.... Utilizando notación de sumatoria e

x

ix

i

i

==

∑ !1

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

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

70- Hacer un programa que calcule los N primeros términos de la serie: 1, 4, 2, 8, 4, 16, 8, ...... Determinada por: a1=1 a2= 22 / a1 = 4 a3= 23 / a2 = 2 a4 = 24 / a3

= 8 ..... ak= 2k / ak-1

71-Hacer el análisis, diseño, codificación, ejecución y prueba de los siguientes ejercicios Nairo Quintana, entrena todos los días, recorriendo cierta cantidad de kilómetros, de tal forma que todos los días recorre el doble de lo que recorrió el día anterior más 10 km. Pero cada 3 días recorre solo la mitad de lo que recorrió el día anterior. Hacer un programa en C que lea el número de kilómetros recorridos el primer dia del entrenamiento y un número n de días y halle el total de kilómetros acumulados hasta ese día (el n-ésimo día). Por ejemplo, si el primer día 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

72-Una persona desea invertir su dinero en un banco, el cual le otorga un 2% de interés mensual. Cuál 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?.

Page 26: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 26

4.2 Estructuras repetitivas “Mientras que”

En una estructura repetitiva Mientras Que (MQ), hay que tener en cuenta:

Expresión booleana que se evaluará y determina si se sigue o no repitiendo

las instrucciones

Llegada por primera vez al ciclo repetitivo

Regreso para evaluar la expresión booleana que

permite decidir si se continua o no la repetición del

conjunto de instrucciones

no Condición

si

Conjunto de instrucciones que se repetirán

Terminación del proceso de repetición del conjunto de

instrucciones

73- El banco Santander tiene una modalidad de ahorro llamada “todo día”, consistente en que todos los días liquida los intereses de acuerdo al saldo de ese día. Hacer un programa en C, que capture por teclado un capital inicial y calcule cuantos días se requieren para que el saldo de la cuenta supere un determinado monto (capturado por teclado). Las condiciones para la liquidación de los intereses son las siguientes: si el saldo actual es menor o igual a $500000 pesos se sumará un interés del 0.2% del saldo actual, si el saldo actual está entre $500000 pesos y un millón se liquidará un interés del 0.25% y si es superior a un millón, se liquidará 0.3%.

4.3 Estructuras repetitivas “Hacer Mientas”

En una Estructura repetitiva Hacer Mientras, hay que tener en cuenta:

Regreso para repetir

nuevamente el conjunto de instrucciones

Llegada por primera vez al ciclo repetitivo

Expresión booleana

que se evaluará y determina si se sigue o no repitiendo

las instrucciones

Conjunto de instrucciones que se repetirán

si Condición

no

Terminación del proceso de repetición del conjunto de

instrucciones

Page 27: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch --

--------------------------------------------------------------------------------------------------------------------------------- 27

4.4 Ejercicios Misceláneos sobre estructuras de control repetitivas

74-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 número de alumnos que tiene en su grupo. Resuelva el problema más general para el caso en que el profesor no sabe cuántos alumnos tiene y en el cual cada alumno tenga un número no determinado de notas con las cuales se obtiene la definitiva. Utilice como convención para determinar el número de notas del alumno un número que no este en el rango de notas válidas y para determinar el número de alumnos utilice el código cero.

75-Dado un número calcular e imprimir si es primo Solución Análisis Entradas: n: un entero positivo del cual se desea saber si es o no primo Salidas: Un mensaje que diga si el número dado es primo o no Diseño en seudocódigo Codificación 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 número es primo”)

sino imprimir( “el número no es primo”)

finsi fin

#include<stdio.h> main() { long int n,e, i; printf("digite un número ");

scanf("%ld", &n); e=0; for( i =1; i <=n; i = i+1) { if ( (n % i ) ==0 )

{

e=e+1; } else {

}; }; if ( e <=2 )

{

printf("El número %ld es primo", n);

} else

{

printf("El número %ld No es primo", n);

};

system("pause");

}

76-Hacer un programa que imprima los n primeros números primos. (n dado por teclado)

77-Se dice que un número N es número perfecto si la suma de sus divisores propios es igual a él mismo. El conjunto de divisores propios de un número 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 número 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 número y diga si es perfecto o no. Hacer un algoritmo que halle todos los números perfectos menores que un número dado.

78-Hacer el análisis, diseño y codificación de un algoritmo que dado un X y un N calcule la siguiente sumatoria

∑= −

−−

N

k

kk

k

x

1

2

)!1(

)1()1(

Page 28: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 28

f =1c =1

n

f < n no

si

“n no es factorial”

f = = n sino

“n es el factorial de c”

c= c +1f = f * c

inicio

fin

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

Solución Análisis Entradas: n: un entero positivo

Salidas: Decir si n es factorial de algún número Diseño Seudocódigo Diagrama de flujo 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 ningún número”)

finsi fin

Codificación en C #include<stdio.h> main() {

int n,c,f;

printf (“ingrese un número”); 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 ningún número ”, n);

};

system(“pause”); }

Page 29: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 29

80-Manolito tiene una cuenta de ahorros en la corporación SINFONDOS. Esta corporación otorga a sus ahorradores un interés mensual y un interés anual sobre el saldo del momento. Determinar a partir del saldo de la cuenta, del interés mensual y del interés anual, los ahorros que tendrá Manolito después de un número determinado de meses (dado por teclado), si él no retira ni deposita dinero en ese tiempo.

81-Hallar el cociente y el residuo de una división entera mediante restas sucesivas (sin usar el operadores “div” ni “mod” % en c).. Para el cálculo del cociente y del residuo de una división entera, usando restas sucesivas tenga en cuenta los siguientes ejemplos: El residuo de la división entera entre 10 y 4

El residuo de la división entera entre 19 y 5

El residuo de la división 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

82- La primitiva población de OSCANDIA se rige por un modelo macroeconómico particular de oferta y Demanda para su producto básico: el OSCAO. En este modelo el precio del producto, su oferta y su demanda en un periodo i-esimo, están dados en función de los datos de ese periodo y del periodo anterior por las siguientes fórmulas: sea:

Pi = Precio en el periodo i-esimo

Oi = Oferta en el periodo i-esimo

di = Demanda en el periodo i-esimo

P Pd

Oi i

i

i

= −−

−1

1

1

*

OP

PO di

i

i

i i= +−

− −

11 10 9 01*( . * . * )

d dP

PRatacreci i

i

i

= +−

11*

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 están en equilibrio

83- (*) El método de Newton-Raphson para calcular una raíz cuadrada de un número X, parte de un número inicial r a partir del cual se van calculando aproximaciones cada vez mas exactas a la solución. Para calcular la aproximación (i+1)-esima se usa la anterior (la i-esima) y se aplica la formula:

r

rx

ri

i

i

+ =

+

1 2

Page 30: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 30

84-Determinar el valor del salario de cada uno de los empleados de una empresa conociéndose su código, el valor actual del salario, el porcentaje de inflación del año anterior. El incremento corresponde exactamente al porcentaje de la inflación, para cada empleado se debe mostrar el código, el salario para el nuevo año así como el valor incrementado. El programa termina cuando se ingresa para el código del empleado el valor cero (0).

85-Calcular el valor total de una factura conociéndose el código, el costo unitario y la cantidad de cada una de los artículos 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 número de artículos facturados, el subtotal de la factura, el valor de descuento y valor final de la factura, el programa debe mostrar estos datos cuando la cantidad de un artículo facturado sea cero(0).

86-Determinar el total de números que no son múltiplos de 2, ni de 3, ni de 5 de una cantidad no determinada de números ingresados por teclado. El programa termina cuando se ingresa el número cero (0). Se debe mostrar también el total de números analizados, el total de números que no son múltiplos solo de 2, el total de números que no son múltiplos solo de 3 y el total de números que no son múltiplos solo de 5.

87-Encontrar el número de años en los que una cantidad invertida se cuadruplicará, usando interés compuesto. Se conoce además de la cantidad invertida, el porcentaje anual de intereses. La fórmula para el interés compuesto es S=P*(1 + i)n.

88-Hallar el número de años en los que una cantidad invertida se cuadruplicará, usando interés simple. Se conoce además de la cantidad invertida, el porcentaje anual de intereses. La fórmula para el interés simple es S = P*(1 + i*n).

89-Hallar la cantidad de rebotes después de la cual un balón alcanza una altura máxima menor a la décima parte de la altura desde la cual fue soltado en caída libre. Por propiedades del balón, este luego de ser soltado desde una altura H alcanza en cada rebote el 10% menos de la altura que en el rebote anterior.

90-Capturar por teclado 2 números A y B determine cual es el múltiplo de A más cercano a B.

91-Hallar el año en el que la población de la ciudad de Pamplona iguale o supere a la población de la ciudad de Bogotá. Para ello se sabe que la rata de crecimiento de la población de Pamplona es del 2,35% anual y la de la población de Bogotá es del 1,06% anual, además se supone que dicha rata de crecimiento permanecerá constante. Se conocen, también, las poblaciones actuales tanto de Pamplona como de Bogotá.

92- Una compañía que vende gaseosas realizó una encuesta a 100 personas. En dicha encuesta se pregunta lo siguiente:

Si el encuestado toma o no gaseosa. Si toma, de qué marca prefiere la gaseosa.( 1=PepsiCola, 2=CocaCola 3=Otra marca) Si toma, cuántas gaseosas toma en un día.

Se le pide que realice un programa que conteste lo siguiente:

¿Cuántos personas que no toman gaseosa fueron encuestados? ¿Cuántas personas: • toman Marca 1 • toman Marca 2

¿Calcular el promedio por día de gaseosas de las personas que la consumen?

93- Determinar la cantidad de cifras que tiene un número entero. Ej: para el número 35689 el programa debe imprimir “El número 35689 tiene 5 cifras”.

94-Dado un número natural n encuentre su raíz digital. Raíz digital de un natural: se calcula el natural m sumando los dígitos que componen a n. El proceso se repite sobre el nuevo número hasta que el resultado sea de un dígito. Ejemplo: 347 3 + 4 + 7 = 14 1 + 4 = 5 RD(347) = 5

95-Dado un número natural n (de cualquier cantidad de dígitos) encuentre otro entero m que sea n al revés, invirtiendo el orden de los dígitos y diga si n es un palíndromo. Si n es un palíndromo, entonces se lee igual de izquierda a derecha que de derecha a izquierda. Ejemplos: para n=345 el n al revés es 543 y no es palíndromo. Para n=75357 el n al revés es 75357 y por lo tanto si es palindromo.

96-Escribir un programa, que recoge del teclado las cédulas y años trabajados en la empresa de una serie de empleados hasta que se introduce una cédula que sea 0. El programa debe imprimir las cédulas de los empleados y la gratificación correspondiente anual con base al valor calculado teniendo en cuenta lo siguiente:

Page 31: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 31

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29.... 13=1 23=3+5 33=7+9+11 43=13+15+17+19 53=21+23+25+27+29

Años trabajados Gratificación en pesos Menos de 10 No corresponde gratificación Entre 10 y 20 80.000 Entre 20 y 30 100.000 Más de 30 150.000

Se desea calcular e imprimir: La cédula y la gratificación de cada empleado El promedio de las gratificaciones a pagar por parte de la empresa a todos los empleados.

97- El cine vista fea tiene 3 salas de cine, donde se presentan 3 películas, existe una fila de un número indeterminado de personas para entrar al cine, máximo 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 niños pagan 7.000 pesos (se considera niño a la persona menor de 12 años). 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.

98-(**) Una propiedad de los números impares, nos permite encontrar los cubos de los números naturales así:

Es decir que para calcular n3, se necesitan n números impares consecutivos de acuerdo a la representación anterior. Hacer un programa en C que imprima los n términos impares que son necesarios para calcular n3 de acuerdo a la propiedad expuesta anteriormente. (n es un número entero positivo dado por teclado)

99-Codifique un programa en C que lea por teclado cierta cantidad de números hasta teclear 0 (cero). El programa debe validar que cada uno de estos valores tecleados estén entre un intervalo [a,b] (a y b son dos números leído por teclado). El programada debe imprimir la suma de aquellos valores que sean múltiplos de un valor z también leído 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 múltiplos de z (z=4 en este caso) es 76

100-Calcular la siguiente sumatoria ∑≠

= −

+b

k

ak

k

k

kk

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 división por cero.

Ejemplo si a= 4 y b=8 entonces 58

88

57

77

56

66

54

44

5

837363438

5

4

3

++

++

++

+=

+∑≠

=

k

k

k

k

kk

101-Suponga que el Gobierno Nacional y la comunidad internacional se dan cuenta, por fin, de que el río Magdalena necesita medidas urgentes para su recuperación, ya que se está muriendo por los vertidos incontrolados de fábricas y de actividades turísticas, además de la pesca incontrolada, pesca de inmaduros (pequeñines) y el empleo de las peligrosas redes de deriva. Así, se decide poner un límite 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 límite máximo 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 máximo permitido se debe dar la alarma (desplegar un mensaje) y terminar el algoritmo, indicando el total de kilogramos pescados y el número de kilogramos en los que se ha sobrepasado el limite legal. El algoritmo también terminará si introducimos un 0 (cero) como kilogramos pescados y deberá indicar un error si se introduce un número negativo (no se contabiliza).

102-Realice un programa en C para determinar el valor que deben pagar los clientes de un restaurante (factura) y el total recaudado por el restaurante. El restaurante tiene 15 mesas, cada mesa realiza un número no determinado de pedidos (cantidad y valor) hasta que el pedido (cantidad) sea 0. Adicional al valor de la factura se incrementa el 10% por concepto de propina.

Page 32: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 32

103-El vendedor de una compañía de electrodomésticos desea llevar un cálculo de las ganancias obtenidas por las ventas del mes. Los artículos con costo menor a $5000, le reportan una ganancia del 15%, para los artículos con un valor entre $5000 y $12000 (inclusive), obtienen una ganancia del 20%, y los artículos que valen más de $12000 le dejan un 30% de ganancia. Sabiendo que cada artículo tiene un código, un nombre, un precio y que ningún artículo tiene por código 0(cero), haga un programa en C, que de acuerdo al número y costo de artículos vendidos en el mes, obtenga las ganancias.

104-Hacer un programa en C que le permita al profesor de programación 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 número diferente de notas y que para calcular la definitiva de un estudiante, se suman las notas y se dividen por el número de notas 105-En el curso de programación hay n estudiantes, y para calcular la definitiva de un estudiante se utilizan 3 notas, cada una con los siguientes pesos: 25%, 35% y 40% respectivamente. El profesor desea construir un algoritmo que calcule la definitiva para cada uno de los n estudiantes y que calcule el promedio de notas de los estudiantes que pasaron, el promedio de notas de los estudiantes que perdieron y el promedio de notas de los estudiantes cuya nota esté entre 4 y 5.

106-Hacer un programa en C que capture n números y halle el mayor de los pares y el menor de los impares 107- Se dice que un número N es número perfecto si la suma de sus divisores propios es igual a él mismo. El conjunto de divisores propios de un número 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 número perfecto porque la suma de sus divisores propios 1 + 2 +3 es igual a él mismo (a 6). Hacer un algoritmo que lea un número y diga si es perfecto o no. 108- El banco Santander tiene una modalidad de préstamo que consiste en lo siguiente: Si el monto del préstamo es menor de 1.000.000 de pesos se paga un interés del 5% sobre le préstamo, pagando cuotas mensuales por un año Si el monto del préstamo es mayor o igual de 1.000.000, pero menor de 10.000.000 de pesos se paga un interés del 10% sobre le préstamo, pagando cuotas mensuales por dos años.

Si el monto del préstamo es mayor o igual de 10.000.000 de pesos se paga un interés del 15% sobre le préstamo, pagando cuotas mensuales por cinco años. 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 préstamo 109-En una universidad la matricula de los alumnos se determina según el número 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 institución y hallar la matricula promedio

110-El profesor de fundamentos de programación, acordó con sus alumnos las siguientes reglas para la calificación final de la materia: La calificación 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 más 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). Diseñe 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 111-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, según la siguiente tabla:

Tipo de plan Minutos Básicos Mensajes de Texto Básicos Cargo Básico 1. Ideal 100 10 80.000 2. Extensión 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).

Page 33: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 33

i

112-Escriba un programa que lea un número 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 número 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 número 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 número. 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.

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

114-Calcular e imprimir el valor total de matricula de un alumno. Dicha liquidación se realiza con base a la cantidad de créditos matriculados en el semestre así: Los primeros 20 créditos cada uno tiene un costo $15.000 Los siguientes 15 créditos cada uno tiene un costo $25.000 Los créditos que estén 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 créditos matriculados entre los 21 y 35 40 5% en la tarifa de los créditos matriculados superiores a 35 >20 y <40 20% en la tarifa de los 20 primeros créditos matriculado

Ejemplo: El alumno tiene 25 años y matriculo 38 créditos. La liquidación se haría así:

Los primeros 20 Créditos 20*15000 $300.000 Los siguientes 15 créditos 15*25000 $375.000 Los siguientes créditos 3*35000 $105.000 Descuento es del 20% sobre los primeros 20 créditos, por que la edad es de 25 años (20*(15000*20%))

-$150.000

Total Matricula $630.000

115-Hacer un programa en C para capturar por teclado un número N (de cualquier cantidad de cifras), descomponerlo en sus dígitos y calcular: La sumatoria de sus cifras pares y La sumatoria de las cifras impares Ejemplo: N es 1275 Sumatoria de dígitos pares 2 porque el único dígito par es 2 Sumatoria impares 13 porque los dígitos impares son 1 7 y 5

116- Codifique un programa en C que calcule la siguiente sumatoria ∑= +

=b

ai i

is

4

3

para 20 valores distintos de a y b leídos por

teclado. Es decir, debe hacer 20 veces el cálculo 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

45

5

44

4

43

3 333

++=+

++

++

= 25.7460

117- Codifique un programa en C que lea por teclado cierta cantidad de números hasta teclear 0 (cero). El programa debe validar que cada uno de estos valores tecleados estén entre un intervalo [a,b] (a y b son dos números leído por teclado). El programada debe imprimir la suma de aquellos valores que sean múltiplos de un valor z también leído 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 múltiplos de z (z=4 en este caso) es 76

Page 34: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 34

118-Una lavandería 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 información 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 fracción después 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

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

120- José tiene un capital de 1’000.000 de pesos que decide invertir en su totalidad, distribuidos en dos negocios, en uno de los negocios gana el 2% mensual y en otro el 3% mensual sobre lo invertido y mes a mes los intereses se van acumulando como capital. Realizar un programa en C para que conociendo el valor invertido (dado por teclado) en uno de los negocios, se cuente el número de meses que son necesarios para que con estos negocios José pueda comprar un automóvil usado cuyo valor es dado por teclado.

121-Los hinchas del Cúcuta 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 próximo domingo, para apoyar a los niños desplazados. Diseñe 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 entregarán al comprador (pero no se le entrega el dinero de vueltos... este dinero es la donación). Al final del programa se debe imprimir el total de boletas vendidas, el total de dinero recaudado por concepto de boletería 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.

122- Escriba un programa en C que lea por teclado un número N e imprima si es un Número Feliz: Número feliz: todo número natural que cumple la condición de que si se suma los cuadrados de sus dígitos y se sigue el mismo proceso con los resultados parciales hasta obtener un solo dígito... el resultado es 1. Por ejemplo, el número 203 es un número feliz ya que

2 2 0 2 32 13 el mismo proceso para el 13 es 12 32

10 , el mismo proceso para el 10 es,

12 0 2 1 ...... como el resultado es de un solo dígito ( en caso contrario seguir el proceso), se detiene el proceso para este ejemplo (porque el resultado es de un solo dígito)

19 es feliz porque 12 + 92 = 82 el mismo proceso para 82 .... 82 + 22 =68 el mismo proceso para 68 62+82 = 100 el mismo proceso para 100 12 + 02 + 02 = 1

123-Se dice que un número es CUBO INTERESANTE si puede ser representado como la suma de los cubos de sus dígitos. 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 números es 153 pues: 153= 13 +53+33 = 1+125+27=153

Page 35: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 35

124- Un peaje de la ciudad quiere que usted sistematice el control del pago de los peajes, por este pasan tres tipos de automotores: 1. Vehículos, 2. Camiones y 3. Tractomulas no se sabe cuantos de estos pasan al día por el peaje, pero cuando el día finaliza se registra un tipo de automotor cero 0.

El cobro por cada tipo de automotor es el siguiente:

Desarrolle un programa en C donde conociendo el tipo de automotor determinar: El valor a pagar por cada automotor que pase por el peaje Total recaudado en el peaje en ese día. Total recaudado por cada tipo de automotor. Cual es el tipo de Automotor que más transita por el peaje. 125- Realiza un programa en C, que lea un entero n y un dígito d se debe invertir el numero n y si d aparece en n se debe reemplazar por el valor 1 en la posición en la que se encuentra d. Por ejemplo: si n=23668 y d=6. Se desplegaría 81132. Además se debe imprimir: Cuantos números se reemplazaron y cuantos no se reemplazaron. El aplicativo también debe informar al usuario de cuantas cifras era el número entero n leído 126- En la oficina de personal de una empresa se esta llevando la nómina de sus trabajadores. Se desea saber el salario mensual de los trabajadores, dependiendo de las horas que cada uno ha laborado. Se debe saber la cédula del trabajador y cuantas horas ha laborado en el mes, teniendo en cuenta cuantas horas han sido en horario normal, cuantas nocturnas y cuantas en día festivo. Si las horas son normales se pagan a $ 9500 la hora, si son nocturnas su valor se incrementa un 15%, y si son festivas se incrementa un 25%. Se debe mostrar para cada trabajador su cedula y el salario mensual. El programa termina cuando se ingrese como dato del trabajador la cédula cero. Además se debe saber cuantas horas normales, cuantas nocturnas y cuantas festivas han sido liquidadas por la empresa en el mes.

127-Calcular cuánto debe cancelar cada uno de los usuarios que ingresan a una peluquería, teniendo en cuanta que, los servicios que pueden recibir son:

Tipo de servicio Descripción 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 número entero (registrado mediante el teclado), si el ficho es un número 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 peluquería. El programa se termina cuando el ficho del usuario sea 0. Además se debe determinar: Cuántos usuarios ingresaron a la peluquería, Total recaudado en el día, Cuanto dinero suman los descuentos realizados.

128-El propietario de un invernadero desea adquirir un software que le permita conocer el tiempo promedio de días que debe mantener en el invernadero una planta de una familia, hasta alcanzar su tamaño máximo, teniendo en cuenta que: La información a procesar corresponde a 50 plantas. Por cada planta se debe especificar la familia a la que pertenece y el tamaño actual con el que ingresa al invernadero (en metros). Las familias de plantas existentes son 1. Cactáceas, 2. Pináceas, y 3. Liliáceas. Las plantas tienen un crecimiento por día, y alcanzan un tamaño máximo de acuerdo a la siguiente tabla (Al alcanzar la altura máxima las plantas paran de crecer.):

Familia % de crecimiento por día, respecto al día anterior Tamaño Máximo 1. Cactáceas 2% 20 mts 2. Pináceas 10% 100 mts

3. Liliáceas 3% 4 mts

Page 36: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 36

125- Realice un programa en lenguaje C++ que permita conocer por cada una de las familias el tiempo promedio (en días) necesario para que las plantas alcancen su tamaño máximo. 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 tamaño inicial de la planta (validar que el tamaño ingresado no exceda al máximo 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 días que necesita para alcanzar la altura máxima, según el porcentaje de crecimiento diario dado en la tabla.

126-En un parqueadero de la ciudad de Pamplona se cobra por minutos (a 15 pesos el minuto) y dada la proximidad del mundial de fútbol, los administradores del parqueadero decidieron ofrecer la siguiente promoción: Los autos cuyo número de placa termina en número par tiene un descuento de 10% si se registra la entrada entre las 9:00 am y las 12 del medio día y los números de placa que terminan en número impar tienen un descuento del 15 % si se registran a la entrada entre las 14:00 y 15:00 horas. Los vehículos van llegando a diferentes horas y cuando el cliente retira el vehículo se registra la hora de entrada (hora y minuto, dos números enteros), de salida (hora y minuto, dos números enteros) y el número de placa (numero entero de tres cifras) Hacer un programa en C que permita averiguar cuando dinero recolectó el parqueadero en un día de servicio, para lo cual se registrara la información correspondiente de un número no conocido de vehículos (el proceso termina cuando la placa del vehículo sea cero) 127- La empresa de comunicaciones GLOBAL COM por inauguración ha decidido premiar a sus clientes, con un bono de promoción el cual contiene un código de cuatro cifras. Se entregará a cada cliente un bono y si este es un número par se le realizará un descuento inicial del 10 % sobre todas sus compras. Si es impar se le realiza el descuento inicial del 5%. Además se dará un descuento adicional dependiendo de la suma de los dígitos del bono.

Suma de dígitos del bono Porcentaje descuento adicional

Menor a 10 2 %

Entre 10 y 20 4%

más de 20 5 %

Para cada cliente se registra el código del bono y el valor total de su compra. No se sabe cuantos clientes ingresarán, a la empresa. Pero el proceso de premiación termina cuando el código del bono del cliente sea cero.

Al terminar el día se debe saber: Cuantos clientes ingresaron al lugar El valor de la venta total en el día 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 día 127-La industria minera Cerrejon S.A. realiza el transporte de carbón mediante caravanas de volquetas desde la mina en la Guajira, hasta la central de despacho en la bahía de Santa Marta. Diariamente se despachan 50 caravanas y cada una se encuentra identificada con un código numérico. No se conoce el total de volquetas que viajan en cada caravana, en la recepción de la carga de cada una de las volquetas de la caravana se pesa en una báscula gigante, cada volqueta cargada (en toneladas), y se registra el código numérico de cada volqueta (no todas las volquetas llegan con la misma cantidad de carbón 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 código de la volqueta el numero cero (este dato no se tiene en cuenta para el procesamiento de la información). El código de la volqueta corresponde a un número de 6 cifras, de las cuales las tres últimas, representan el peso en toneladas de la volqueta (vacía sin carga), de la siguiente forma: por ejemplo si los tres últimos dígitos del código 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 dígitos del código 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 información de las caravanas que ingresan a la central de despacho en un día y la información de las volquetas

(código de la volqueta y peso total registrado en la báscula) por cada una de las caravanas. Determinar e imprimir el código de la caravana que ingresó en el día, con mayor cantidad de carbón (código de la

caravana y cantidad de carbón transportado en dicha caravana). Determinar e imprimir el código de la volqueta que transporto mayor cantidad de carbón en el día. Determinar e imprimir la caravana que trajo el mayor numero de volquetas en el día (código de la caravana y cantidad de

carbón transportado por la caravana). Calcular e imprimir el total de carbón que ingresó en el día (total de toneladas de carbón).

Page 37: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de PamplFacultad de Ingenierías y Arquite

Guía del Estudiante para Programación Estructurada----------------------------------------------------------------

5 Programación Modular (Funciones)

Una función es un conjunto de instrucciones (evalor. Las funciones pueden utilizar datos de entla función y la ejecución de la misma. Las funcimplementar operaciones que son comúnmenteCuando una función es invocada (llamada) se ledevuelto al punto desde el cual la función fue lla

Programa principal

Inicio

Llamada a la función 1

Función

Inicio

InstruccionPropias

De la función

Llamada a la función

Llamada a la función 2

Retorna val

fin

Función

Inicio

InstruccionesPropias

De la función

Retorna valor

Cada función se puede considerar como un promemoria, por lo tanto cada función una vez llprocesa sus propios datos almacenados en su motra función, y solo es posible intercambiar daparámetros. Los parámetros son datos de entradala cual fue diseñada. Una vez terminadas las indonde se hizo el llamado (invocación) de la funcUna vez la función termina su proceso y retornadeja es liberado (deja de existir), por lo tanto variables locales se pierden y no es posible recor

lona ectura

Programación Estructurada – Alexis Olvany Torres Ch

------------------------------------------------------------------------------

estructuras de control) que realizan una tarea específica y ntrada llamados parámetros que permiten el intercambio de ciones son utilizadas para descomponer grandes problemase utilizadas durante un programa y de esta manera reducie pasa el control a dicha función, una vez que esta finalizó amada, retornando un único valor.

n 1

nes ón

ón 3

Función 3

Inicio

Instrucciones Propias

De la función

lor Retorna valor

2

ones

ón

or

ograma totalmente independiente, es decir que se ejecuta lamada (invocada) recibe los parámetros como variables d

memoria de datos. Una función no debe acceder a datos delatos entre funciones o entre el programa principal y las fa para la función y por lo tanto se necesitan para que la funnstrucciones que componen la función se retorna (opcionalción. a un valor (a donde fue invocada) el espacio de memoria do las variables locales dejan de existir y es por ese motivrdarlas entre dos llamados de la misma función.

Alexis Olvany Torres Ch

------------------- 37

puede retornar un único datos entre el llamado de s en tareas simples y para ir la cantidad de código. con su tarea el control es

en su propio espacio de de su propio contexto, y l programa principal o de funciones por medios de

unción ejecute la tarea para lmente) un valor al lugar

onde se ejecuto la función vo que los valores de la

Page 38: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de PamplFacultad de Ingenierías y Arquite

Guía del Estudiante para Programación Estructurada----------------------------------------------------------------

Dado que una función maneja su propio espacionombre de las variables del programa principal omismo nombre, son dos variables diferentes y caacceder (usar) su propias variables y no tiene accExisten dos tipos de parámetros en una funciónutilizan los parámetros por valor (los parámetros Como todas las funciones solicitadas en esta guífunción es llamada se le entrega un conjunto dempieza a ejecutar creando su propio espacio dparámetros (por eso se llaman parámetros por copia). La función puede definir todas las variabuna copia de los valores de los argumentos, realipueden modificar las variables que actúan como

Programa principal

Memoria de Instrucciones

Inicio

i=1; n ; 1

Memoria de datos

a b

c n

no

Condición

fin

i edad

x

eso

FuMemoria deInstruccion

Función

Co

s i

Cond

R

lona ectura

Programación Estructurada – Alexis Olvany Torres Ch

------------------------------------------------------------------------------

o de memoria, los nombres de las variables de la función o de otras funciones, sin embargo es necesario recordar que cada una tendrá su propio valor, la única diferencia es que

acceso a otros espacios de memoria de otras funciones o del prn: los parámetros por valor y los parámetros por referencia. por regencia se introducen en el siguiente curso cuando se ía usan parámetros por valor es necesario explicar su funcionde datos dentro de paréntesis a los cuales llamaremos Argde memoria y saca una copia de los valores de los argume valor.. pues los parámetros extraen los valores de los a

bles locales que necesite para realizar su proceso, con los paliza el proceso requerido y retorna el valor correspondiente. parámetros sin que los argumentos sufran dichos cambios.

Llamada Función 1

a la función 1 Con los

argumentos correspondiente

Memoria de Instrucción es

Función (parámetros)

no Condición

s

i Retorno de valor

Calculado en la

función 1

Condición

unción 2 de

Retornar valor

nes

n (parámetros)

ondición no

s i

Memoria de datos

Parámetros

x y

Variables Locales

w i

ndición

m

n

Retornar valor

Alexis Olvany Torres Ch

------------------- 38

pueden tener el mismo sin importar si tienen el e la función solo puede rograma principal. a. En este curso solo se utilizan los vectores. onamiento : Cuando una gumentos, la función se entos en los respectivos argumentos sacando una arámetros que contienen Dentro de la función se

Memoria de datos

Parámetros

p h Variables Locales

x i

n

c

Page 39: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 39

Programación Modular (Funciones)

105-Hacer la función Factorial.

>

==

0....4321

00!

nsinxxx

nsin

106-Cree la función Potencia

==

<

>

=≠

≠=

=

00

010)(

001

000

1

yyxsidefinidono

ysix

ysixx

yyxsi

yyxsi

x

y

yy

107-Calcule la siguiente formula S e n o xx

k

k

k

k

( ) ( )( ) !

= −+

+

=∑ 1

2 1

2 1

0

1 5

108- Escriba una función llamada bisuma que calcule la suma de dos variables num1 y num2 enteras y regrese un resultado entero. Escriba una función llamada media_de_3 que reciba como parámetro un dato entero y lo divida entre 3. Suponga que el dato enviado a la función es el total de sumar 3 números, por lo que el resultado de esta función será la media de los 3 datos. Codifique un programa que lea tres valores enteros para las variables a, b, c, que enseguida invoque a las funciones bisuma y media_de_3 y que, por último, despliegue el valor promedio de los tres datos con un mensaje apropiado. ¿Qué cambios necesitaría realizar a las funciones para obtener el promedio de más de 3 datos? 109-Escriba una función llamada cuadrado que tenga un parámetro de entrada llamado longitud y entregue como resultado el perímetro del cuadrado cuyo lado sea la longitud especificada y su área. Todas las variables son reales. 110- Escriba una función llamada magnitud que tenga cuatro parámetros 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) según la siguiente fórmula:

212

212 )()( xxyydist −+−=

111- Un piso rectangular que mide 12 metros por 15 metros está cubierto parcialmente por tapetes circulares. El radio de un tapete es un metro. El radio del otro es de dos metros. Analice, diseñe y codifique un programa que encuentre el área de la parte del piso que está descubierta. El programa deberá tener:

Una función que reciba como parámetro el radio de un círculo y que regrese el valor del área de ese círculo. Suponga que el radio y el área son reales.

Una función con dos parámetros reales que calcule el área de un rectángulo de base y altura dadas.

112- Dado un número entero N por teclado, hacer un programa en C con funciones para que calcule calcular la siguiente expresión 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 número de dígitos de N.

Ejemplo: Si el número 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. Además 12 tiene 2 cifras(Z=2), por lo tanto la expresión es igual a 3664

24 22

==

=

Z

Y

X es decir que el

programa debe imprimir 36.

113-Escriba una función llamada digfinal que tenga un parámetro de entrada llamado número y que entregue como resultado el dígito de las unidades del número. Por ejemplo, si el número es 234, el resultado es 4.

114-Escribe una función que tome 3 parámetros: dos de tipo enteros y uno de tipo carácter. La función deberá sumar, restar, multiplicar o dividir los valores de los dos primeros parámetros dependiendo del código indicado en el tercer parámetro, y devolver el resultado. (el carácter será ‘+’, ‘-‘, ‘ * ’, y ‘/ ’)

Page 40: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 40

115-Escribe una función que devuelva el (a) factorial, (b) n-simo número de Fibonacci, de su argumento. 116-Escribe una función con dos parámetros de tal forma que diga si sus dos parámetros son múltiplo el uno del otro (no importa cuál de cuál).

117-Euclides encontró que para dos números enteros a y b cualesquiera: mcd(a, b) = mcd(b, a) mcd(0, b) = b mcd(a, b) = mcd(a - b, b) Escribe una función que devuelva el máximo común divisor de sus dos argumentos: mediante restas. Téngase 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 división modular. Con esto se ahorran n = a DIV b restas, y se usa directamente el resto de esas n restas, que es el módulo a MOD b.. 118- (**)Escribe una función para calcular el mcd pero mediante la técnica práctica de: “comunes con el menor exponente” de sus descomposiciones factoriales. Por ejemplo: 24 = 23 × 3 y 9 = 32, de modo que mcd(24, 9) = 3. NOTA: Para descomponer el número n en sus factores primos, ir dividiendo (y contando cuántas veces se puede dividir) por cada primo

hasta la n ).

119- Escriba una función que imprima los divisores y la suma de los divisores de todos los enteros que se encuentran entre dos valores m y n dados por el usuario. Por último la función debe regresar cuál fue el número cuya suma de divisores fue mayor. Por ejemplo, si m=100 y n=110, entonces la salida será:

i Divisores suma 100 1 2 4 5 10 20 25 50 100 217 . . . 110 1 2 5 10 11 22 55 110 216

120-Se dice que dos números a y b son “amigos” si cada uno de ellos es la suma de los divisores del otro. Por ejemplo, los más pequeños son 220 y 284; comprobémoslo: 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 función que recibiendo dos números devuelva si son amigos o no b. escriba una función que tenga como entrada un número natural n y que ‘escriba’ todas las parejas de números amigos que existan menores que n. 114-Se dice que dos números a y b son “amigos” si cada uno de ellos es la suma de los divisores del otro. Por ejemplo, los más pequeños son 220 y 284; comprobémoslo: 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 función que recibiendo dos números devuelva si son amigos o no b. escriba una función que tenga como entrada un número natural n y que ‘escriba’ todas las parejas de números amigos que existan menores que n.

115- Haga un programa que despliegue un menú que ayude en la operación de la pizzería “Domino Cicom”. El programa debe contener dos funciones: Pedido: solicita al usuario el tamaño de la pizza que desea ordenar y el número de ingredientes que debe contener, y Calcula: determina el precio de la pizza y el tiempo de entrega del pedido realizado. Las pizzas chicas (‘c’) cuestan 70 pesos, las medianas (‘m’) 90, las grandes (‘g’) 110 y las familiares (‘f’) 130. Además, cada ingrediente solicitado cuesta 10 pesos. El tiempo de entrega de las pizzas es de 20 minutos, a menos que sea una pizza familiar o que tenga más de 3 ingredientes, en cuyo caso el tiempo de entrega es de 30 minutos.

Page 41: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 41

116- (**) Hacer un programa utilizando funciones que visualice el triángulo 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 línea está dada por los combinatorios:

20C

21C

22C

Utilice una función entera: combinaciones(r, k) que regrese las combinaciones de r tomadas de k en k. Suponga que r representa el renglón del triángulo y k la columna del mismo.

)!(!

!

krk

rC r

k−

=

Esta función, a su vez, utiliza otra función auxiliar: factorial (r)

117- Haga un programa que le permita al usuario obtener los valores de las funciones trigonométricas: seno, coseno, tangente y cotangente, utilizando las series de taylos descritas en la sección anterior de esta guía. El programa debe utilizar una función que le muestre al usuario un menú con las diversas operaciones, en donde se debe incluir la posibilidad de terminar. El programa llamará a la función correspondiente a la opción elegida por el usuario, solicitándole antes el valor de y que representa un ángulo en grados. Este valor debe ser convertido a radiantes mediante una función. Este proceso se repetirá hasta que el usuario decida terminar.

El valor de x debe expresarse en grados y posteriormente convertirse a radianes para poder utilizar las fórmulas.

El fin del cálculo de la serie se dará cuando el valor absoluto del nuevo término sea menor o igual a 0.0001.

Recordar también que: )(cos

)(sen)(

xeno

xoxtang = y que

)(

1)(

xtangxCottang =

118-Hacer un programa en Lenguaje C de forma modular que calcule los números narcisistas del 1 al 10000, el programa deberá generar una lista de aquellos números que cumplan con el requisito de ser narcisista. Un número narcisista es un Número de n dígitos que resulta ser igual a la suma de las potencias de orden n de sus dígitos. Ejemplo: 1 = 11

153 = 1³ + 5³ + 3³.

9474 = 94 + 44 + 74 + 44

El programa deberá contener las siguientes funciones: Una función que cuente el número de dígitos de un número entero Una función potencia para calcular el resultado del dígito elevado a dicha potencia. Una función donde se desglosará el número en cifras, calcule la suma de potencias y diga si el número es o no narcisista.

Page 42: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 42

119-La empresa metalmecánica del oriente requiere un programa que muestre rápidamente el valor de las escalas de temperatura de diferentes elementos de dicha empresa. Diseñe un programa en lenguaje c que muestre en pantalla un menú con 4 opciones así 1.Centígrados 2.Fahrenheit 3.kelvin 4.salir. El usuario al digitar la opción 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 Centígrados 32, Fahrenheit 89.6 y Kelvin 305.15 La conversión de temperaturas se basa en las siguientes formulas Centígrados (C) a Fahrenheit (F) F= C x (9 / 5) + 32 Fahrenheit (F) a Centígrados (C) C= (F-32) x (5 / 9 ) Centígrados a Kelvin(K) K = C + 273.15 Kelvin(F) a Centígrados(C) C = K - 273.15 Diseñe 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ú. 120-Determine la cantidad mínima de billetes y muestre la forma de pagar una cuenta (considere la cuenta en múltiplos 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 múltiplo de 10.000 por medio de una función que tiene como parámetro el valor de la cuenta y devuelve 1 si es múltiplo de 10.000 ó 0 si no lo es . Nota 2: Debe implementar una función que tiene como parámetros el valor de la cuenta y la denominación del billete y que devuelve el número de billetes de esa denominación que se utilizarán para pagar la cuenta.

121-Cree un programa en C modular que: descomponga un número N de 6 dígitos en tres números de 2 dígitos y calcule la

y

R siguiente formula:

número N

x ! z

( x z)!

donde x, y, z se encuentran son los tres números de dos cifras que componen el

Ej: N = 230411 al descomponer el número x=23 y=04 z=11 Cree las siguientes Funciones: Función verificar que recibe el número N y determina si el número es de 6 dígitos, Si es de 6 dígitos debe retornar un 1

pero si no debe retornar un 0. Función Calcular que recibe el número N y lo descompone para calcular el resultado de la formula Función Potencia Función Factorial

122- Se dice que dos número N y M son números amigos si la suma de los divisores propios de N da como resultado M y al mismo tiempo la suma de los divisores propios de M da como resultado N. El conjunto de divisores propios de un número N, está formado por todos sus divisores, Excepto él mismo. Ejemplo

Los divisores propios de 284 son 1,2,4,71 y 142 ; su suma resulta igual a 220.

Los divisores propios de 220 son 1,2,4,5,10,11,20,22,44,55 y 110; su suma resulta igual a 284.

Por lo tanto 284 y 220 son números amigos.

Hacer un programa en C que lea dos número (N,M) y diga si son amigos o no, haciendo uso de un subprograma (función) que calcule la suma de los divisores propios de un número dado.

123-Realizar las siguientes funciones: Una función denominada calcular_sumatoria_divisores que reciba un valor n y devuelva la sumatoria de los divisores propios del valor n. Una función denominada valorar que reciba dos valores (el valor n y la sumatoria de los divisores propios de dicho

número) y devuelva : 0 si es perfecto, 1 si es abundante, 2si es deficiente El programa principal (main) debe calcular entre X y Y leídos por teclado, cuantos números son deficiente, abundantes y perfectos. Para realizar estos procesos debe utilizar las funciones anteriores definidas en el presente enunciado. Número perfecto es cuando la suma de sus divisores propios es igual al número ejemplo el 6 sus divisores son 1+2+3 = 6 Número deficiente cuando la suma de sus divisores es menor al número ejemplo 4

Divisores 1+2 =3 Número abundante cuando la suma de sus divisores es mayor al número ejemplo 12 Divisores 1+2+3+4+6 =16

Page 43: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 43

124-Realice un programa en C, que lea un número entero positivo N, para que acumule y calcule los números perfectos que existen hasta el número 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 función (evalua_perfectos) que permita evaluar, si el valor recibido es un número perfecto o no. Debe retornar el

valor 1 (si es perfecto) o el valor 0 (si no es perfecto) La función (acum_perfectos) que acumule el valor de los números perfectos menores que un número N dado (Haga uso

de la función 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 número 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.

125-Los estudiantes de la universidad de Pamplona están preocupados por sus definitivas y le han solicitado a usted que cree un programa que lea el código del estudiante y las notas de los tres cortes (excepto la del examen final), el número de estudiantes es indeterminado (la lectura termina cuando el código del estudiante sea 0), el programa debe determinar la nota acumulada del estudiante, la nota que debe sacar el estudiante para pasar y el porcentaje de estudiantes que tiene el ponderado por encima de 2.5. Realice: � Main � Función Acumulado: que Reciba las 5 notas (Nota 1 (Examen 20%), Nota 2 (TrabajoQuiz 15%), Nota 3 (Examen 20%), Nota 4 (TrabajoQuiz 15%) y Nota 5 (TrabajoQuizFinal10%)) y retorne en cuanto lleva la materia el estudiante. � Función Cálculo: que reciba en cuanto lleva el estudiante la materia y retorne cuanto debe sacar en el último examen para pasar la materia.

126-Hacer un programa en C utilizando funciones que lea un número entero positivo de cualquier cantidad de dígitos (cifras), que averigüe e imprima lo siguiente: si la cantidad de cifras es impar averiguar si el número es capicúa (Ej:585,25352) y el si la cantidad de cifras es par, averiguar si el número es múltiplo de 4 y termina en 8 (Ej:28). NOTA: Debe tener las siguientes funciones: � main. � Una función que reciba el número leído y devuelva 1 (UNO) si la cantidad de cifras es impar y devuelva 0 (CERO) si la cantidad de cifras es par. � Una función que reciba el número cuya cantidad de dígitos sea impar y que devuelva 1 (UNO) Si el número es capicúa (Ej:585,25352) y devuelva 0 (CERO) si el número NO es capicúa. (Ej:485,35352). � Una función que reciba el número cuya cantidad de dígitos sea par y que calcule e imprima si el número es múltiplo de 4 y termina en 8. (Ej:28). 127- La biblioteca pública 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 préstamos y recolección de libros, la cantidad de personas que visitan la biblioteca es indeterminada de ellos se conoce: Tipo de Servicio (1. Préstamo (Llevarse el libro para la casa) o 2. Entrega) y el código del libro. El proceso de préstamo y recolección termina cuando el tipo de servicio es 0. Realice un programa que lea el tipo de servicio y el código del libro y si es un código debe determinar si se puede prestar el libro o el valor a cobrar por los libros prestados (según el tipo de servicio solicitado) y al final imprimir el total recaudado por prestamos de libros. El código del libro está compuesto por 8 dígitos 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 código 10105153 El área es 101 la cantidad de libros es 05 y su código de identificación es 153 Realice:

Main() Función Validar código: Debe recibir el código del libro y este debe cumplir: ser un número de 8 dígitos, 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). Función Préstamo: La función debe recibir el código del libro y solo se pueden prestar libros del área 101, 102 y 104. La función debe retornar 1 (uno) si se puede prestar o 0 (cero) si no se puede realizar el préstamo Función Recolección: La función debe recibir el código del libro y dependiendo de la cantidad de ejemplares disponibles se cobra un valor al usuario según la siguiente tabla, debe retornar el valor que se debe cobrar

Cantidad de ejemplares existentes Valor del servicio de préstamo 1 a 2 $2.000 3 a 6 $1.000 Mas de 6 $500

Page 44: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 44

128- Dado un número de 6 cifras, hacer un programa en forma modular que realice lo siguiente: Descomponga un número N de 6 dígitos en tres números de dos dígitos cada uno en la función main (siempre y cuando el número sea de 6 dígitos). Ejemplo: N = 121589 al descomponer el número a=12 b=15 c=89 Cree las siguientes Funciones: � Función verificar que recibe el número N y determina si el número es de 6 dígitos, Si es de 6 dígitos debe retornar un 1 pero si no debe retornar un 0. si el numero es de 6 cifras debe continuar � Función Calcular_tabla que recibe los números a y b y genera las tablas de multiplicar de a hasta b, donde a debe ser

menor que b. Ejemplo:

Función Unir que recibe a y c y debe retornar un solo numero resultado de unir a y c, el número devuelto debe quedar de 4 cifras. Ejemplo: a = 12 c = 89, el número nuevo queda así: nuevo = 1289

� El main

129-Una empresa de seguros desea que usted cree un programa que permita validar el código de una póliza de seguro, determinar el tipo de seguro y el valor que se debe pagar el cliente (monto) en una clínica al momento de presentar el seguro. La cantidad de pólizas que se consultarán es indeterminado, solo se sabe que la lectura del código de las pólizas termina cuando este número sea 0.

El Código de la póliza esta compuesto por 7 dígitos donde el primero corresponde al tipo de póliza (Ver tabla). Los tipos de pólizas de seguro son los siguientes.

Tipo Cobertura 1. Total El 100% del Total del pago 2. Normal Cubre el 100% si no sobrepasa 1’000.000 y si lo sobrepasa solo cubre el 70% del pago 3. Básica Para cualquier monto cubre el 65% del pago

Cree las siguientes funciones: Main Función Validar Código: que debe recibir el código de la póliza y verificar que el código sea de 7 dígitos, que el primer

dígito este entre 1 y 3 y la suma del último dígito con el primero debe ser par. Si cumple, el número de póliza es valido debe retornar un 1 sino debe retornar un 0.

Función CalcularPago: que debe recibir el código del seguro y el monto a pagar y retornará el valor que se debe pagar la persona.

130-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 número de minutos es menor de 30 no se le cobran los minutos extras (solo las horas enteras) si los minutos están 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 número de horas que navegue de acuerdo a la siguiente tabla

Tiempo de navegación Valor a pagar por hora De 1 a 5 horas 1500 pesos por hora De 5 a 10 horas 1200 pesos por hora Más 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 navegación de cada una de las personas que reciben el servicio en un día, 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 día. Para ello desarrolle las siguientes funciones: Una función llamada “calcular” que calcule el total a pagar (sin descuento) conociendo el número de horas y minutos navegados Una función llamada “descuento” que calcule el total de dinero a descontar por el servicio de Internet, conociendo el total a pagar sin descuento.

Page 45: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 45

En el main se debe capturar las horas y minutos de navegación de cada uno de los clientes del día. Como no se conoce el número de clientes que atiende la empresa durante el día, el proceso termina cuando el número de horas navegadas sea un número negativo. En el main también hay que calcular el total recaudado por la empresa en dicho día.

131- Dado un número de cualquier cantidad de cifras, sumar las cifras que son menores o iguales del número de cifras que componen el

número. Ejemplos Si le número dado es 7428 tiene 4 cifras y los dígitos de 7428 que son menores o iguales de 4 son 4 y 2, por lo tanto la suma da 6 Si el número dado es 924 tiene 3 cifras y el único dígitos de 924 que es menor o iguales de 3 es el 2 y por lo tanto la suma es 2 Si el número es 23418 tiene 5 cifras y los dígitos de 23418 que son menores o iguales de 5 son el 2, el 3, el 4 y el 1 y por lo tanto la suma es 10 Si el número dado es 7 tiene 1 cifra y este número no tiene dígitos menores o iguales a 1 por lo tanto la suma es cero Hacer las siguientes funciones en C: _ Una función que dado un número entero como parámetro devuelva el número de cifras que tiene dicho número _ Una función que dado un número entero de cualquier cantidad de dígitos y un número entero de un dígito, sume los dígitos del primer parámetro que sean menores o iguales del segundo parámetro _ Realizar el main en el cual se capture por teclado cinco números enteros de cualquier cantidad de dígitos e imprima para cada uno de ellos la suma de los dígitos menores o iguales del número de cifras que tiene cada número tecleado- 132- 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 línea de producción a la que pertenece (por ejemplo la referencia 7211 esta asignada a un producto cuyo consecutivo es 72 y pertenece a la línea 11). En la empresa existen solo tres líneas de producción 11, 22 y 44. Elabore un programa en C que lea n referencias validas de productos (n dado por teclado), sus costos de producción y precios de venta e indique cual es el producto que más ganancia le genera a la empresa. Para ello debe implementar las siguientes funciones: Una función que lea n referencias de productos, sus costos de producción y su valor de venta de cada uno y retorne la

referencia del producto que más ganancia le genera a la empresa. Una función que verifique si se trata de una referencia valida y retorne 1 si es valida y 0 si no lo es. Una función que reciba la referencia de cada producto, su costo de producción y su valor de venta y retorne el valor que

aporta de ganancia dicho producto. La función main

133-Desarrolle un programa que permita capturar por teclado 10 números ingresados por el usuario, de seis o más cifras. Para cada número ingresado el programa deberá comprobar si el número es de seis o más cifras, si es así deberá separarlo en dos números independientes (uno compuesto por las cifras pares y otro compuesto por las cifras impares), para el programa se deberán crear las siguientes funciones: Función comprobar: La función deberá recibir como parámetro de entrada un número, y deberá retornar uno (1) si el

número es de seis o más cifras, y cero (0) si el número tiene menos de seis cifras. Función numerodescompuesto: La función deberá recibir como parámetro de entrada un número, deberá descomponerlo

en sus cifras (de derecha a izquierda) y deberá formar dos nuevos números uno con las cifras pares, y otro con las cifras impares, la función debe retornar el número mayor de los dos generados.

Ej. La función recibe como parámetro de entrada el número 1548792397563 deberá generar los siguientes números 157939753 y 4826, y deberá retornar el número 157939753 dado que este es el mayor de los dos generados.

Función main: La función permitirá ingresar 10 números al usuario (implementar por medio de ciclo) y deberá realizar lo solicitado en el programa usando las funciones antes descritas

134-Un factorión es un número que es igual a la suma de los factoriales, de los dígitos que lo componen. Por ejemplo 145 es un factorión, ya que 1! + 4! + 5! = 1 + 24 + 120 = 145. Escriba un programa en C, utilizando funciones que encuentre los tres primeros factoriones.

135-Se necesita realizar un programa que imprima todos los números precisos que existen hasta el 5000. Un número 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 dígitos. Ejemplo: el número 13, es preciso pues tiene 2 cifras, y 22 = 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 número preciso. Realizar las siguientes funciones: Función cuadrado: que recibe el número y devuelve el cuadrado de la cantidad de cifras que tiene Función suma: que recibe el número y suma las cifras del número Función preciso: retorna 1 si el numero recibido como parámetro es preciso o 0 si no es preciso Función main que lista cada uno de los números precisos que existen hasta el 5000.

Page 46: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 46

136-El gobierno nacional ha encargado a la empresa Arbolizadora de Colombia SA. La tarea de planear la arborización de un número indeterminado hectáreas 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 10m2 y el costo según la siguiente tabla:

Id Especie Cantidad por 10 m2 Costo C/U 1 Cedro 4 30000 2 Roble 6 27000 3 Pino 9 18000 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 hectárea equivale a 10000 m2

Realice las siguientes funciones:

Función espar, recibe un número cualquiera y retorna 1 si es par, o si es impar. Función hectareaametros, recibe un número que representa la cantidad de hectáreas y retorna la cantidad de metros. Función 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. Función 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 función espar para la aplicación del descuento).

Función main, Solicita la cantidad de hectáreas 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.

137-En una empresa de telefonía, solo por el día de hoy, se esta ofreciendo una promoción 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 Fácil 65.000 82.000 2. Internet Familiar 75.000 97.000 3. Internet Extremo 85.000 120.000

Según el número de teléfono de la línea por la que se accede a Internet, se ofrece un descuento igual al número de dos cifras formado por los primeros dígitos impares. Por ejemplo si el número es 5681232 el primer digito impar es 3 y el siguiente es 1 por lo tanto se obtuvo el número 31 y este será el descuento a aplicar. Si el número telefónico no tiene dígitos impares entonces el porcentaje de descuento se obtiene buscando el tercer digito y multiplicando por 10. Implementar las siguientes funciones Función tienedigitosimpares (N) que retorne 1 si el número dado como parámetro tiene dígitos impares y 0 si no tiene dígitos impares Función extraer(num) que retorna un número de máximo dos cifras, conformado por los primeros 2 dígitos impares del número dado como parámetro, si el número solo tiene un digito impar debe retornar este. Ejemplos: extraer(5683145) retorna 51 y extraer(8682144) retorna 1 Función, digito(N,num) que retorne el dígito N-ésimo de un número num de tipo Entero largo, teniendo en cuenta que el dígito 0 es el dígito más a la derecha (el menos significativo). La función devolverá -1 si el número no tiene suficientes dígitos. Ejemplos: digito (0,233456) retorna 6 digito (1,43456) retorna 5 digito (4,3456) retorna -1 Función cuotamensual(telefono, tipoacceso, estrato) que recibe como parámetros el número de la línea telefónica, el tipo de acceso que se desea contratar y el estrato residencial del cliente, para retornar el valor de la cuota mensual según las condiciones de la promoción (haga uso de las funciones implementadas anteriormente). En el main hay que construir el código 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 telefónico tecleado sea cero). De igual manera en el main se debe imprimir cuanto dinero recibirá mensualmente la empresa por las ventas realizadas en el día de hoy que se ofreció la promoción.

Page 47: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 47

138-Los almacenes de cadena ÉXITO, con motivo de la temporada de navidad, se encuentran desarrollando planes promocionales para sus clientes. Al iniciar el día el cajero debe ingresar en la caja el día del mes (ej. 14), se atienden X cantidad de clientes en una caja, por cada cliente se debe solicitar: número de documento, número de teléfono, cantidad de productos, por cada producto se solicita el código (número de 4 dígitos y siempre comienza en número 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 día el cajero digita el número de cédula 0. Los productos que sus dos últimos dígitos coincidan con el día tienen un descuento del 20%. En caso que la sumatoria de los dígitos de la cédula sea igual al día, el cliente recibe un descuento del 100%. Realice un programa en C++ modular, que implemente las siguientes funciones:

Función verificar: Recibe un número entero y verifica que corresponda a un código valido, número de cuatro dígitos, de los cuales el primer dígito (de izquierda a derecha) debe ser par. Función descuentopromo: Recibe el código de un producto, su valor y el día, retorna el valor del producto aplicando el descuento en caso que los dos últimos dígitos del código coincidan con el día, de lo contrario retorna el valor del producto sin descuento. Función leerproductos: Recibe la cantidad de productos y el día, por cada uno de los productos solicita el código (usa la función verificar) y el valor, por cada producto deberá usar la función descuentopromo para verificar si se debe aplicar el descuento. Retorna el valor a pagar por los productos. Función cedulaganadora: Recibe el número de cédula y el día, halla la sumatoria de los dígitos, retorna 1 si la sumatoria es igual al día, y 0 si no lo es. Función main(). Realiza el control del programa de acuerdo al enunciado inicial. Al final del día 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.

139-Elabore un programa que reciba dos números, los cuales representan la fecha de nacimiento y una fecha posterior al nacimiento de una persona. Con estas fechas, la función debe retornar cuantos días exactamente han pasado entre la fecha de nacimiento y la fecha posterior dada. Las fechas están en formato aaaammdd, es decir, los cuatro primeros dígitos del número recibido corresponden al año, los siguientes dos dígitos corresponden al mes y los dos últimos dígitos corresponden al día. Tenga en cuenta que:

Enero, Marzo, Mayo, Julio, Agosto, Octubre y Diciembre tienen 31 días. Abril, Junio, Septiembre y Noviembre tienen 30 días. Febrero tiene 28 días en un año no bisiesto y 29 días en un año bisiesto. Un año no bisiesto tiene 365 días. Un año es bisiesto si no es múltiplo de 400 pero sí es múltiplo de 4, salvo el caso en que sea múltiplo de 100. Por ejemplo

el año 1900 no fue bisiesto, el 2000 sí y el 2100 no lo será. Ejemplo: si la función recibe por parámetro las fechas 20020315 y 20070901, debe retornar 1995, que es la cantidad exacta de días 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 años no bisiestos mas 170 días. Se sugieren, entre otras, las siguientes funciones:

Una función que dado un año, retorne si es o no bisiesto. Una función que dado un año, retorne el número de días que tuvo (teniendo en cuenta si es o no bisiesto). Una función que dado el número de un mes, retorne cuantos días tiene Una función que retorne cuantos días exactamente han pasado entre las dos fechas. Función main.

140-En la ciudad de Pamplona durante la ola invernal se vio incomunicada con el resto del país, y con la preocupación de desabastecimiento de gasolina, la principal estación 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 número de galones que se puede vender a un vehículo depende del tipo de vehículo (1. Automóvil, 2 Camioneta) y de la nacionalidad del vehículo (1 Venezolano, 2. Colombiano) según la siguiente tabla.

Tipo de vehículo→

Nacionalidad↓

1. Automóvil 2. Camioneta

1. Venezolano 5 Galones 7 Galones

2. Colombiano 8 Galones 12 Galones

Page 48: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 48

De igual manera el precio del galón no es el mismo para todo vehículo. Este depende de la hora de solicitud del servicio y del tipo de vehículo así:

Hora de solicitud→

Tipo de vehículo↓

6 a 13 13 a 20

1. Automóvil 4750 Pesos por galón 3870 Pesos por galón

2. Camioneta 5500 Pesos por galón 4720 Pesos por galón

Como promoción se ofrece un descuento que depende del primer digito de la placa para los vehículos venezolanos y del último digito para los vehículos colombianos. Recordar que los autos venezolanos solo tienen dos dígitos numéricos en la placa y los autos colombianos tres dígitos. Por lo tanto con el número de la placa se puede determinar la nacionalidad del vehículo.

Realizar las siguientes funciones Función nacionalidad que recibe como parámetro un número de placa y retorna un 1 si es venezolano (tiene dos dígitos) un 2 si es Colombiano (tiene tres dígitos) o un 0 si no es un número de placa valido. Función galonesavender, que recibe como parámetros el tipo de vehículo (1. Automóvil, 2 Camioneta) y el numero de placa y retorna el total de galones que se le pueden vender a dicho vehículo. Función preciogalon que recibe como parámetros el tipo de vehículo (1. Automóvil, 2 Camioneta) y la hora en que solicito el servicio (número entre 6 y 20) Función descuento que recibe como parámetros el numero de la placa del vehículo y retorne el porcentaje de descuento que hay que realizar En la función main se debe procesar la información de una fila de vehículos cuya cantidad no se conoce, pero se controla con el numero de la placa, es decir que se atiende vehículo por vehículo 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 vehículo se registra por teclado el número de placa, el tipo de vehículo y la hora en que solicito el servicio, el con esta información y haciendo uso de las funciones definidas se calcula el total a pagar por cada uno de los vehículos (con descuento) el cual se debe imprimir por pantalla. También se debe imprimir al finalizar el proceso el total de dinero recaudado y el total de galones de gasolina vendidos.

141-Se requiere desarrollar un programa para calcular la liquidación de impuestos de vehículos. Para liquidar el impuesto el programa requiere que se digite un código asignado en la secretaria de tránsito. Dicho código consta de 9 dígitos. 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 vehículo, de la siguiente manera: para vehículos de este año, el impuesto es del 3% del valor comercial del vehículo, y este aumenta en 0.05% por cada año de antigüedad. Para calcular la cilindrada, los dígitos 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 vehículos cuya suma de los dígitos del código dado sea menor que los números que determinan su cilindrada. Ejemplo: si el código es 200812435 tenemos que es un vehículo 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 antigüedad añadimos 0.05% x 3 (hay 3 años entre el 2008 y el año 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 dígitos del código es 2 + 8 + 0 + 0 + 1 + 2 + 4 + 3 + 5 = 25, y es mayo que los dígitos de su cilindrada (12) por tanto no se descuenta el 50% del impuesto (En caso de haber conseguido el descuento, pagaría solo $306.375).

Para realizar el programa anterior, codifique las siguientes funciones. Función validar, que recibe el código, y verifica que tenga 9 dígitos, que sea un año 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. Función impuesto por modelo. Determina el porcentaje a descontar, de acuerdo al modelo del carro (recibe como parámetro el código completo) Función impuesto por cilindrada. Determina el porcentaje a sumar o restar según la cilindrada. Será un número negativo si se debe restar o uno positivo si se debe añadir. (recibe como parámetro el código completo) Función descuento. Devuelve 1 si el vehículo tendrá el descuento especial del 50% o 0 en caso contrario. Utilice una estructura iterativa para calcular la suma de los dígitos del código. Main, que pide el código de liquidación para una serie de carros hasta que se digita el código cero. Utiliza la función validar. Si no es un código válido lo solicita nuevamente hasta que este sea válido. Liquida el impuesto utilizando para ellos las funciones anteriores, imprime el impuesto y la placa del vehículo.

Page 49: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 49

6 Resumen de notaciones de las estructuras de control

Lineales

Estructuras de control No Lineales

Entrada de datos Salida de datos Asignación

De selección o condicionales

Repetitivas Para Mientras que Hacer mientras

Estructuras de control Nombre Diagrama de flujo Seudocódigo En C Entrada o captura de datos

B

Leer b

scanf ( “%d”, &b );

Salida o impresión de datos

A

Imprimir a

printf (“cadena de formateo ”, a );

Asignación a = b + c

a = b + c ; a = b+c

no si Condición

Si condición entonces ....Instrucciones para ....cuando la condición ....sea verdadera

Sino ....Instrucciones para ....cuando la condición ....sea falsa

Fin si

if ( condición ) {

....Instrucciones en c para ....cuando la condición

....sea verdadera

} else {

....Instrucciones en c para ....cuando la condición ....sea falsa

};

Page 50: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 50

Page 51: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 51

2. Estructuras de datos estáticas 2.1 Arreglos 2.1.1 Arreglos Unidimensionales o Vectores 2.1.2 Conceptualización 2.1.3 Definición de vectores en un lenguaje de programación 2.1.4 Captura, almacenamiento, recorridos y procesamiento de datos en vectores 2.1.5 Paso de vectores como parámetros a una función 2.1.6 Aplicación del concepto en la resolución de problemas 2.2 Arreglos bidimensionales o Matrices 2.2.1 Conceptualización 2.2.2 Definición de Matrices en un lenguaje de programación 2.2.3 Captura, almacenamiento, recorridos y procesamiento de datos en Matrices 2.2.4 Paso de Matrices como parámetros a una función 2.2.5 Aplicación del concepto en la resolución de problemas Bibliografía Recomendada Fundamentos de Programación, Algoritmos, Estructuras de datos y Objetos, Luis Joyanes Aguilar, Tercera edición. Editorial McGraw Hill. Informática Básica, Eduardo Alcalde y Miguel Garcia, Segunda edición, Editorial McGraw Hill. Fundamentos de Programación, Algoritmos y Estructuras de datos, Luis Joyanes Aguilar, Segunda edición. Editorial McGraw Hill. Fundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, Editorial McGraw Hill. Turbo C/C++ 3.1 Manual de referencia, Herbert Schildt, McGraw Hill

Page 52: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 52

Contenidos de la Guía

1 RESUMEN DE NOTACIONES DE LAS ESTRUCTURAS DE CONTROL ..................................................................... 53

2 ESTRUCTURAS DE DATOS ................................................................................................................................................. 54

3 ARREGLOS UNIDIMENSIONALES (VECTORES) .......................................................................................................... 56

4 VECTORES PARALELOS ................................................................................................................................................... 58

5 ARREGLOS BIDIMENSIONALES O MATRICES .......................................................................................................... 64

Page 53: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 53

2 Estructuras de datos

Estructuras de Datos

Estáticas

Arreglos Registros Combinaciones

Unidimensionales o vectores Bidimensionales o matrices Multidimensionales

Registros con campos que son arreglos Arreglos de registros

Dinámicas Listas encadenadas Árboles Grafos en general

Se denominan estructuras estáticas aquellas colecciones de datos cuyo número de datos se define en tiempo de diseño, es decir cuando se está escribiendo el código del programa y por eso durante la ejecución del programa la colección de datos no podrá crecer en capacidad, es decir que si una estructura está diseñada para almacenar 50 datos, en tiempo de ejecución no podrá incrementarse este tamaño, por lo tanto solo podrá almacenar esos 50 datos. Mientras que las estructuras dinámicas son colecciones de datos que en tiempo de ejecución pueden incrementar el número de miembros (datos) que pertenecen a la estructura. Este es el caso de las listas encadenadas para lo cual se requiere conceptos (que no son del alcance de esta materia) como la asignación dinámica de memoria. En algunos lenguajes se permite que en tiempo de ejecución se cambie el tamaño de algunas estructuras estáticas como los vectores…pero para evitar ambigüedad de conceptos, esto no se tendrá en cuenta. En este curso las estructuras estáticas no cambian de tamaño en tiempo de ejecución.

Dentro de las estructuras de datos estáticas están los arreglos que son colecciones de datos del mismo tipo, referenciadas con un solo nombre, y que para acceder a cada uno de los datos de la colección se hace uso de subíndices. Cuando solo se necesita un subíndice para acceder a los datos de la colección, a estas estructuras se les llama arreglos unidimensionales o vectores. Si se necesitan dos subíndices se les llama arreglos bidimensionales o matrices y si es necesario tres o más subíndices se les conoce como arreglos multidimensionales.

3 Arreglos unidimensionales (vectores)

Un vector o arreglo unidimesional es una colección de datos del mismo tipo, referenciada con un solo nombre y que para acceder a cada uno de sus datos, se necesita un subíndice que en este caso indica la posición (de orden) donde se encuentra almacenado un dato, dentro de la colección.

Page 54: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 54

Nombre de la colección de datos Nombre del Vector

A[1]

Dato que está almacenado en la cuarta posición de la colección (vector)

A[n-1]

A[3]

A 234 45 22 65 21 45 127

0 1 2 3 4

. . . . .

n-1

Subíndice que indica la posición donde se encuentra almacenado

un dato dentro de la colección(vector)

234, 45,22,65, etc son datos del mismo tipo (en este caso todos son enteros), que están almacenados

en esta colección (vector o arreglo unidimensional), llamada A y que tiene capacidad para almacenar n datos

Recuerde que todos los ejercicios se deben realizar de forma modular

1- Considere la función funcion1 y el arreglo G dado Arreglo G

5 14 34 56 2 46 7 23 67 98 2 89 int funcion1(int x[], int n, int v ){ int r = 0, k = 6; for( i = 0; i<n; i++) {

if( x[ i ] = = v){ r = i;

k = k +1; };

}; return( x [ r ] );

};

Pregunta Rta 1 Diga cual es el valor de la variable r para la función funcion1, con el siguiente llamado

a=funcion1(G,12,29); cuando el valor de i es 7.

2 Diga el valor que retorna la función con el siguiente llamado a=funcion1(G,7,89); 3 Cual debe ser el valor de p en el siguiente llamado a=funcion1(G,12,p); para que la

función retorne 98

4 Con que valor termina la variable k con el siguiente llamado a=funcion1(G,12,2); 5 Con que valor queda a después de ejecutarse la siguiente asignación

a = (funcion1(G,12,2)*10) - 5;

2-Llenar un vector de 15 posiciones para posteriormente determinar el número menor y la posición que ocupa. (modif. A un vector de N posiciones “N dado por teclado”)

3-Llenar un vector de N posiciones (N dado por teclado) para posteriormente determinar el promedio de las posiciones pares y el producto de las impares.

4-Llenar dos vectores de N posiciones (N dado por teclado) para posteriormente, crear un tercer vector con la suma de los dos anteriores.

5-Llenar un vector de n posiciones para posteriormente, invertirlo sobre si mismo.

6-Llenar un vector de N posiciones (N dado por teclado) y posteriormente solicitar un numero “X” para determinar cuantas veces esta “X” repetido dentro del vector.

Page 55: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 55

12345 589 4245 ….

54321 985 5424 …..

2 40 25 7 40 28 17 45 6 0 4 5

7-Llenar un vector de N posiciones (N dado por teclado) y posteriormente solicitar un numero “X” y un numero “Z” para reemplazar todos los valores “X” con ”Z” dentro del vector. Insertar todos los valores de un vector V1 en un vector V2 a partir de una posición determinada en el vector V2 sin perder los valores de V2. (se debe Capturar por teclado el tamaño de los dos vectores)

8-Insertar todos los valores de un vector V1 en un vector V2 a partir de una posición determinada en el vector V2 sin perder los valores de V2. (se debe Capturar por teclado el tamaño de los dos vectores)

9-Hacer un programa en Lenguaje C para llenar un vector de N posiciones (N dado por teclado), para posteriormente crear un segundo vector con el espejo del primero.

A B (espejo) 0 1 2

n-1

10-Llenar dos vectores A y B de n y m posiciones respectivamente (n y m dados por teclado). Supóngase que los vectores A y B representan conjuntos (hay que eliminar los repetidos de cada vector), por lo tanto hallar en vectores diferentes las siguientes operaciones entre conjuntos: A intersectado con B Valores del primero que están en el segundo. A unido con B Valores del primero y del segundo en un solo vector (sin repetir datos). A – B los valores que están en A y que no están en B A diferencia simétrica con B, son los que están en A que no están en B y los que están en B que no están en A

11- Capturar por teclado los datos de un vector de enteros de n datos (n dado por teclado y 1<n<200) y clasificar los datos del vector en dos vectores uno con los números primos y otro con los números perfectos. Un número es primo si solo tiene dos divisores, 1 y él mismo, ejemplos 1,2,3,5,7,11 etc. Un número es perfecto si la suma de sus divisores propios es igual a él mismo. Ejemplo el 6,28, etc. Por ejemplo para un vector dado por teclado como el siguiente

Los datos clasificados en el vector de primos es:

2 7 17 5 Y el vector de perfectos es

28 6

12-En la piscina de la universidad se va a realizar un campeonato de clavados para n deportistas (n dado por teclado). Los deportistas serán calificados por un jurado de 10 personas. Para calcular su puntuación se determina el promedio de los puntajes dados por jurado calificador pero con la única salvedad que la peor y la mejor nota no se tienen en cuenta. Cree un vector con el promedio de las calificaciones y luego determine el promedio mas alto y la mas bajo de los deportistas Ejemplo:

4.9 7.6 5.5 3.1 7.9 4.6 9.0 8.4 5,4 6,2 0 1 2 3 4 5 6 7 8 9

Prom= (4.9+7,6+5,5+7,9+4,6+8,4+5,4+6,2)/8 Las calificaciones 3,1 y 9,0 no son tenidas en cuenta por ser la más alta y la más baja

13-Llenar un vector A de n posiciones (n dado por teclado), para posteriormente, ordenarlo de mayor a menor en otro vector y de menor a mayor en el mismo vector A. Utilice el método de burbuja y averigüe por otros métodos de ordenación que se podría utilizar para realizar la misma tarea.

14-Lea dos vectores de igual tamaño y cree un nuevo vector con los datos de los dos primeros pero intercalados. Por ejemplo si los dos vectores son:

2 40 25 7 40 28 17

3 45 23 2 25 45 72 El vector resultante es:

2 3 40 45 25 23 7 2 40 25 28 45 17 72

Page 56: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 56

100

500

600

0

800

700

15-Se tiene el arreglo ventas

0 1 2 10 11 vene vfeb vmar . . vnov vdic

Donde se almacenan las ventas mensuales de una empresa. Elabore una función que muestre los siguientes datos: ¿En qué mes se dieron las ventas máximas de la empresa? ¿A cuánto ascendieron las ventas máximas? ¿Cuál fue el total de las ventas? ¿Cuál fue el promedio de las ventas?

16-Se tiene un conjunto de n parejas de datos Xi, Yi donde cada pareja representa las coordenadas del punto i de un polígono irregular de n lados. Suponga que las coordenadas se proporcionarán en orden adyacente. Elabore una función para Capturar por teclado el número de lados del polígono, Capturar por teclado las coordenadas de los puntos y obtener el área del polígono irregular utilizando la siguiente fórmula: Area = [(X0+X1)*(Y0-Y1 ) + (X1+X2)*(Y1-Y2)+. . .+ (Xn-1+X0)*(Yn-1-Y0) /2

Suponga que los Xi ,Yi son reales y n es entero con 1 n 50.

17-Una cooperativa de productores de naranjas almacena el total de toneladas cosechadas durante el último año en N parcelas (1 N 50). En cada parcela se pueden cultivar dos tipos de naranjas: para jugo y para comer. Se conoce el total de toneladas cosechadas de cada uno de los tipos de naranjas. Si en una parcela no se hubiera cosechado alguno de los tipos, entonces habrá 0. La información se almacena en un arreglo como se muestra en el siguiente ejemplo:

Naranjas para jugo Naranjas para comer

En la parcela 1 se cosecharon: 100 toneladas de naranjas para jugo y 500 toneladas de naranjas para comer. En la parcela 2 se cosecharon: 600 toneladas de naranjas para jugo y 0 toneladas de naranjas para comer. NOTA: Observe que la información de una misma parcela ocupa posiciones consecutivas en el arreglo. Se le pide que analice, diseñe y codifique un programa, usando módulos, que pueda: Capturar por Calcular e imprimir el total de la producción por parcela. Eliminar la información de una parcela. El dato requerido para esta opción es el número de parcela a eliminar. Buscar e imprimir el número de una parcela (si hubiera) que no haya tenido producción de ninguno de los tipos de naranjas. Es decir, durante el último año su producción total fue 0. 18-Hacer un programa en Lenguaje C para capturar por teclado los datos de dos vectores de 12 posiciones denominados prod1 y prod2. Dichos vectores almacenarán la cantidad de unidades generadas de cada producto, mes a mes. Adicionalmente, capturar por teclado los datos de un tercer vector denominado costou de dos posiciones, el cual almacenara el costo unitario de los dos productos. Crear una función que permita: en un cuarto vector denominado costot de 12 posiciones, calcular y almacenar el costo de la producción total, mes a mes, así: Costo Total = (Cantidad Unidades del Prod1* Valor Unitario Prod1) + (Cantidad Unidades del Prod2 * Valor Unitario Prod2) Crear una función que calcule y retorne el promedio de cada uno de los cuatro trimestres del vector costot. Crear una función que calcule y retorne el mes, donde se encuentra el mayor valor del vector costot. (si existen dos iguales, se asume como mayor el primero)

. . .

. . .

Page 57: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 57

19-Dado un vector V1 de tipo entero de tamaño n, donde n se da por teclado, hacer un programa que: Llene el vector V1 a través de una función Invierta el vector V1 sin utilizar otro vector (en el mismo) Genere un vector V2 que será el contenido de las posiciones impares de V1 ya invertido a través de una función. Imprima el vector V2 por medio de una función imprimir en forma ascendente.

Ejemplo:

20-Dados 2 vectores V1 y V2 de tipo entero de tamaño n y m, donde n y m se da por teclado, hacer un programa que: Llene los vectores V1 y V2 con una función llenar. Genere un vector V3 que es el resultado de concatenar (Unir) V1 y V2 a través de una función Genere un vector V4 a partir de V3, donde V4 contiene aquellos números perfectos que existen en V3. Nota: Un número perfecto es aquel número tal que la suma de sus divisores propios es igual al mismo número. Y los divisores propios de un número son todos sus divisores excepto el mismo número. Ejemplo. V1

4 6 12 28 60 5 0 1 2 3 4 5

V2 2 45 496 0 1 2

V3

4 6 12 28 60 5 2 45 496 0 1 2 3 4 5 6 7 8

V4 6 28 496 0 1 2

21-Crear un programa en lenguaje C que registre en un vector de enteros muchos números (máximo 1000 números), hasta finalizar con cero. Sólo se podrán ingresar los números 1, 2 y 3 (en cualquier orden). Se pide contar la cantidad de veces que se ingreso la secuencia: 1 2 3. Por Ejemplo: Si se ingresaron los siguientes datos: 1,1,2,2,1, 2, 3, 1, 1, 1, 1, 3, 1, 1, 2, 1, 1, 1, 3, 3, 3, 1, 2, 3, 2, 2. Las veces que se ingreso la secuencia 1,2,3 es 2 veces

Realizar las Funciones: Main Llenar el vector Contar la cantidad de veces que se ingreso la serie 1 2 3

22-Cree un programa en C que lea un vector de N posiciones (N dado por teclado) y posteriormente cree un segundo vector con todos los valores que se repitan exactamente 2 veces en el primer vector imprima el vector resultante. Realice: Main Lectura Creación del segundo Vector Impresión del segundo vector

23-Cree un programa en C que lea un vector de N posiciones (N dado por teclado) y posteriormente cree un segundo vector con los valores de la siguiente forma:

1er Mayor

1er Menor

2do Mayor

2do Menor

3er Mayor

3er Menor

… …

0 1 2 3 4 5 n-1

Page 58: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 58

Realie Main Lectura Creación del 2 Vector Impresión del 2 vector

24- Haga un Programa en C para llenar un vector A de N posiciones (N Máximo 50) “N DESCONOCIDO” ¡No Puede ser capturado por teclado! La lectura de los Valores termina cuando el usuario ingrese un número que ya está almacenado en el vector o cuando el vector llegue a su máximo de posiciones. Cree un nuevo Vector B, ordenado de menor a mayor (a partir del vector A) Cree un Vector C con los valores Impares y Pares intercalados (en ese Orden) del Vector B y en el momento en que no se puedan intercalar terminaría el llenado del Vector C.

Ejemplo Se llena el vector A. A

6 2 18 12 7 4 9 1

Se crea el Vector B ordenando su contenido de menor a mayor B

1 2 4 6 7 9 12 18

Se crea el Vector C con los valores intercalados Impares/Pares del Vector B C

1 2 7 4 9 6

Cree: Main. Función para el Llenado del Vector A. Función para la Creación y Ordenamiento del Vector B. Función para la Creación del Vector C. Función para la impresión de cualquier vector. Debe usarse en el main para imprimir los tres vectores

Nota: Puede usar vectores

25-Elabore un programa en lenguaje C que lea dos arreglos de números enteros (entre 1 y 100) A y B de cualquier tamaño (no necesariamente de igual tamaño) (el tamaño debe ser de máximo 500 posiciones cada uno) y luego construya un tercer vector C, que contenga los datos almacenados en los arreglos A y B en forma intercalada de a dos elementos. Es decir, dos datos del arreglo A y luego dos datos del arreglo B, así sucesivamente. Si se terminan los datos del arreglo A y aun quedan datos en B, se deben pasar todos los datos que sobran de B al arreglo C en forma consecutiva. Y en caso que se terminen primero los datos del arreglo B y aun queden datos en A se deben pasar todos los datos que sobran de A al arreglo C en forma consecutiva. Por ejemplo sea A:

5 12 4 9 3

0 1 2 3 4 y sea B:

2 11 7 22 45 1 16 8 14

0 1 2 3 4 5 6 7 8

Entonces se debe construir un arreglo C con los siguientes valores:

5 12 2 11 4 9 7 22 3 45 1 16 8 14

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

El programa debe contener funciones que realicen lo siguiente: Validar la lectura de números enteros en el intervalo de 1 a 100. (valor 1,0) Llenar arreglos de cualquier tamaño.(valor 1,0) Construir el vector C en la forma indicada en el enunciado anterior, recibiendo como entrada los arreglos A y B llenos.(valor 2,0) Función main.(valor 1,0)

Page 59: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 59

26-Elabore un programa en lenguaje C capture por teclado los elementos de un vector T (de máximo 100 posiciones) de enteros positivos, sin dar por teclado el tamaño del vector, hasta que se capture un entero negativo (este elemento negativo no hará parte del vector). Después construir un vector S a partir de los datos del vector T así: S(0)=T(0) S(1)=T(0) -T(1) S(2)=T(0)+T(1)+T(2) S(3)=T(0) - T(1) +T(2) -T(3) S(4)=T(0) + T(1) +T(2) + T(3) + T(4) S(5)=T(0) - T(1) + T(2) - T(3) + T(4) - T(5) S(k)= …….. Nótese que para las posiciones pares de S se realizan solo suma de elementos de T, pero para las posiciones impares de S se realizan sumas y restas intercaladas de elementos de T. Elaborar las siguientes funciones Función de llenado como se indica en el enunciado Fundón para construir el vector S a partir de los elementos del Vector T Función main

4 Vectores paralelos

27-Una compañía ha clasificado a sus n (1 n 50) empleados dentro de los grupos 1 y 2. Cada empleado del grupo 1 recibirá, a partir de ahora, un aumento de $250.00 a la semana sobre su sueldo actual, mientras que a cada uno de los del grupo 2 sólo se le dará $150.00 adicionales por semana. La información que se proporciona de cada empleado es: clave del empleado (comprendida entre 100 y 2500, inclusive), grupo al que pertenece (1 o 2) y sueldo semanal actual (entre $300.00 y $6000.00). Si un empleado del grupo 1 con el nuevo sueldo gana semanalmente más que el sueldo promedio del grupo, entonces debe cambiar al grupo 2. Analice, diseñe y codifique un programa modular que: Lea la información de los n empleados e imprima la clave, grupo y sueldo semanal nuevo para cada empleado, actualizando el grupo si es el caso.

Calcule el sueldo promedio de los empleados por grupo y calcule también el promedio general de todos, sin considerar el grupo. Indique cuántos empleados cambiaron del grupo 1 al 2.

Page 60: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 60

28-Llenar 2 vectores V1 y V2 de N posiciones (N dado por teclado), para posteriormente, ordenarlo de mayor a menor de forma paralela usando a V1 como vector base

29-Un casino desea llevar a cabo unas estadísticas sobre el juego de ruleta. Se solicita un programa modular que cuente el número de veces que cada número es ganador en una jornada y al final del día imprima un reporte con lo siguiente: ¿Cuántas veces resultó ganador cada elemento de la ruleta? ¿Cuáles elementos no resultaron ganadores en toda la jornada? ¿Cuál fue el número de cada color que ganó más veces?(suponga que sólo hay uno) ¿Cuál fue el elemento que ganó en más ocasiones? Recuerde que la ruleta está formada por 70 elementos. Existen del 1 al 34 rojos, del 1 al 34 negros, el 0 y el 00. El casino desconoce el número de juegos de una jornada. Los datos que el casino proporcionará son los siguientes: número, color número, color ... -1 Donde:

Número representa el número correspondiente al elemento ganador, con 0 número 34 Donde el 0 se representa como un 0 rojo y el 00 se representa como un 0 negro. Color representa el color correspondiente al elemento ganador con: R = rojo, N = negro -1 representan el fin de la jornada

30-Se lee la información de 100 estudiantes, en tres vectores En el vector A se almacena LA NOTA DEL ESTUDIANTE En el vector B se almacena LA CARRERA En el vector C se almacena EL

Existen las siguientes carreras adscritas cada una a una facultad.

Facultad Carrera Ingenierías 1. Ing Sistemas Ingenierías 2. Ing Industrial Ingenierías 3. Ing Mecatronica Ciencias Económicas 4. Contaduría Ciencias Económicas 5. Admón. empresas Ciencias Económicas 6. Economía Salud 7. Medicina Salud 8. Nutrición

Se debe calcular e imprimir Cuantos estudiantes hay en cada facultad El código del estudiante con la nota más alta en cada Facultad El promedio de notas de los estudiantes por carrera

31- Se desea registrar la información de código y temperatura de 50 ciudades Realizar funciones para: Capturar por teclado los datos de los vectores Capturar por teclado la temperatura donde desea vivir una persona hasta cuando se digite 0, e imprimir los posibles códigos de las ciudades que tienen dicha temperatura, en caso contrario imprimir “No existe ciudad”. Calcular e imprimir el código de la ciudad con mayor temperatura. Ordenar los dos vectores teniendo en cuenta la temperatura en orden ascendente. Nota: los dos vectores deben ser ordenados al tiempo de forma paralela

32-De los 100 alumnos de programación I, se desea almacenar la siguiente información, para cada uno de ellos, en tres vectores que corresponden a la siguiente información: Código, Edad, Zona (Los datos serán [1. Urbano 2. Rural]) La zona permite definir el valor de matricula así:

Zona Valor 2 500.000.oo 1 1.000.000.oo

El valor de matricula tendrá un descuento, del 30% solo para los estudiantes menores de edad. (un menor de edad es el estudiante que tiene menos de 18 años) Realizar: (implementando funciones) Capturar por teclado la información de los estudiantes en los vectores (código, edad, zona) Calcular e imprimir el valor de la matricula de cada estudiante Contar los estudiantes menores de edad, que residen en la zona Urbana y Rural

Page 61: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 61

Código Materia

1003 1001 1002 1003 1001 1003

Nota Materia

4,2 2,4 3,5 1,2 5,0 2,5

33-Una empresa de flores (rosas) desea llevar el control de sus ventas en el mes de la mujer cuenta con la siguiente información Código del tipo de rosa, Cantidad cultivada, Cantidad Vendida y precio de venta. Para N tipos de rosas (N dado por teclado). Realice las siguientes funciones: Llenado de la información. El código y la cantidad en unidades del producto más vendido. El código y la cantidad en unidades del producto menos producido. El total de las ventas.

34-Un Banco de la ciudad quiere que usted cree un programa modular en C para llevar el control de los Números de Cuenta, Cédulas de Clientes y Saldo de la Cuenta (un cliente puede tener varias cuentas). En el Banco Existen 325 cuentas. Debe realizar el llenado de la información Números de Cuenta, Cédulas de Clientes y Saldo de la Cuenta, posteriormente debe solicitar el número de cédula de un cliente para indicarle el saldo total de las cuentas del cliente en el banco, debe indicar el cliente con menos dinero en el banco y por ultimo debe solicitar Dos numero de cuenta (Cuenta Origen y Cuenta Destino) y un monto el cual será restado de la cuenta Origen y sumado a la cuenta Destino. Realice: Main Función Llenado Función Saldo por Cliente Función Cliente con menos dinero Función Transferencia

Nota: Para la función transferencia debe validar que la cuenta Origen tenga fondos suficientes para poder realizar la transferencia.

35-El instituto de bienestar familiar necesita manejar la información de adultos mayores beneficiados en uno de sus programas sociales. Para ello requiere manejar la siguiente información: documento de identidad, edad, estatura (en metros), peso (kilogramos). Se debe calcular el índice de masa corporal para cada individuo mediante la formula IMC = masa(kg) / estatura2(metros). Si el índice de masa esta por debajo de 21, se dice que hay desnutrición, si está entre 21 y 25, está en su peso normal y por encima de 25 hay sobrepeso. Realizar un programa modular que me permita. Llenar la información de todos los individuos. Determinar el índice de masa corporal para cada individuo Determinar la cantidad de individuos con sobrepeso, con peso normal y con desnutrición. Determinar el promedio de edades de los individuos, así como el mayor de todos y el más joven de todos.

36-En un Instituto de educación existen 10 estudiantes, cada uno ve 3 materias (1001 Matemática, 1002 Biología y 1003 Dibujo) y en cada una de ellas se almacena la nota que saco. Cree 3 vectores un vector de Código del Estudiante, un Vector de Código de Materia y un vector de Notas. Ejemplo: Código estudiante 2116 2133 2116 2436 2116 2436

Función para llenar la información Función para determinar el promedio general por materia Función para determinar el promedio de un estudiante (dado su código por teclado) Función para determinar la nota más alta por materia

37- En una empresa se piensa contratar a máximo 20 empleados, de los cuales se necesita saber la cédula, edad y salario a que aspira, datos que serán almacenados en tres vectores paralelos. Dada la cantidad de candidatos a contratar por teclado (no sobrepasar de 20), introducir los datos de cada uno. Si el candidato es menor a 30 años y aspira un salario entre 500.000 y 800.000 este se puede contratar. Se debe tener en cuenta que quienes reciban un salario menor a 600.000 tendrán una bonificación de 5% de su salario. Haga un programa en C con uso de funciones que permita al final saber: Cuantos pueden ser contratados según el salario a que aspiran El total de la nómina que debe pagar la empresa, según los posibles contratados. Cuantos de los posibles contratados tienen bonificación Cual de los posibles contratados tiene mayor edad. En el main además debe imprimir la información de cada uno de los posibles contratados (cédula, edad, salario) con su

correspondiente bonificación

Page 62: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 62

38- En una fábrica de textiles se almacena la información de las telas existentes en tres arreglos unidimensionales de la siguiente manera:

CÓDIGO METROS COLOR

El código de la tela es un número de 5 dígitos que se encuentra estructurado de la siguiente manera: Los dos primeros dígitos (de izquierda a derecha) identifican el tipo de tela: 11 seda, 22 dacron, 33 algodón, 44 paño, 55 algodón El tercer dígito (de izquierda a derecha) permite

1 unicolor, 2 líneas, 3 cuadros, 4 rombos. Los dos últimos dígitos corresponden al consecutivo de la tela, por regla este número debe encontrarse entre 11 y 88. Los colores usados en la fábrica se identifican con un número de un solo dígito, y son los siguientes: 1 Rojo, 2 Verde, 3 Azul, 4 Amarillo, 5 Naranja, 6 Violeta, 7 Blanco, 8 Negro, 9 Gris. Realice un programa en C++ que implemente las siguientes funciones: Función validar: recibe un número (correspondiente a un código) y retorna 1 si el código es válido, 0 si no lo es. Función llenado: Recibe los tres arreglos, y la cantidad de registros a llenar, solicita los datos (código, metros y color) y almacena en cada arreglo la información correspondiente. Implementa la función validar, para validar el código ingresado, en caso de ser incorrecto deberá solicitar nuevamente el ingreso del mismo. Para el color, en caso de capturar por teclado un número de más de un dígito deberá almacenar el último del mismo (ej. 1428 almacena el 8). Función buscar tela: la función recibe los tres arreglos y tres variables que identifican un tipo de tela, un diseño y un color, la función debe retornar la cantidad de metros de tela que existen con esas especificaciones (tipo de tela, diseño y color). Función buscar color: la función recibe como entrada los tres arreglos y un número que identifica un color a buscar, la función debe imprimir en pantalla los códigos de las telas que son del color señalado, y retornar el código de esas telas que tiene mayor metraje. Función Main: Implementa las funciones anteriores, solicitando al usuario los datos que serán enviados como argumentos a cada una de las funciones.

5 Arreglos Bidimensionales o Matrices

Una Matriz o arreglo bidimesional es una colección de datos del mismo tipo, referenciada con un solo nombre y que para acceder a cada uno de sus datos se necesita dos subíndice que indican la posición (la fila y la columna) donde se encuentra almacenado un dato, dentro de la colección. En este caso los datos están organizados en dos dimensiones (Filas y columnas) y por esta razón se requiere de dos subíndices para ubicar un dato en particular. Uno de los subíndices indicará la fila donde se encuentra el dato y el otro subíndice la columna.

Page 63: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 63

56- Capturar por teclado los datos de una matriz de 3x6 y posteriormente, sumar todos sus valores, determinar la cantidad de valores positivos y negativos dentro de la matriz, hallar la suma de cada columna y registrar en la fila 4 dichos valores, hallar el menor valor dentro de la matriz y la posición que ocupa.

57-Dada una matriz de 5x5 hacer un programa para llenarla y posteriormente, hallar la traza (la suma de la diagonal principal), hallar la suma de la diagonal secundaria, determinar si es un cuadrado mágico. Para ser un cuadrado mágico debe cumplir las siguientes reglas: la suma de la diagonal principal, segundaria, de las filas, columnas deben dar en todas lo mismo.

58-Dadas dos matrices de 5x8 hacer un programa para llenarlas y posteriormente, construir una tercera matriz con la suma de las dos anteriores.

59-Dada una matriz de 4x4 hacer un programa para llenarla y posteriormente, determinar si es una matriz identidad. Para ser matriz identidad debe cumplir con las siguientes reglas: Todos los elementos de la diagonal principal son 1 y los demás deben ser 0 . 60-Dadas dos matrices una de 5x3 y otra de 3x2 hacer un programa para llenarlas y posteriormente, crear una tercera matriz con la multiplicación de ambas.

61-Dada una matriz cuadrada de nxn hacer un programa para llenarla, una función que intercambiar los contenidos de dos números de fila dados como parámetros.

62-Elabore un programa que lea una matriz de m x n y genere una segunda matriz con las columnas como renglones(filas) y los renglones(filas) como columnas. Por ejemplo, si la matriz que da el usuario es:

4 7 1 3 5 2 0 6 9 7 3 1 2 6 4

Page 64: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 64

Entonces el programa debe escribir la matriz transpuesta:

4 2 3 7 0 1 1 6 2 3 9 6 5 7 4

63-(*) Elabore un programa que lea una matriz de 3 X 3 y calcule la inversa usando el método de Gauss-Jordan.

64- (*) Resuelva el siguiente sistema de ecuaciones lineales utilizando matrices para su representación y solución. 2 x – 2y + z = 1 -x + y + z = 0 -x +3y + 5z = 0

65-Elabore un programa que genere las tablas de multiplicar del 1 al 10 en un solo arreglo de dos dimensiones y posteriormente imprima dicho arreglo.

66-Una matriz cuadrada A se dice que es simétrica si A(i, j) = A(j, i) para todo i, j dentro de los límites de la matriz. Elabore un programa que lea una matriz y diga si es simétrica o no

67-Una empresa tiene n empleados que trabajan en tres departamentos distintos (1001, 1002,1003) se ha elaborado un registro de cada uno de ellos: cedula, edad, sexo, salario, departamento y años de antigüedad. Elabore un programa que permita determinar: Número de empleados hombres y mujeres. Cedula de la persona con el salario mas bajo. Número de personas por departamento Cedula de la persona más antigua de la empresa. Cedula de la persona más joven de la empresa.

Nombre de la Matriz

Cédulas de los empleados columna 0

Edades columna 1

Columna 2: Sexo 1=Hombre 2=Mujer

Columna 3 Salarios

Columna 4 Departamento

Columna 5 Años de antigüedad

datos 0

1 2

3

... n

0 1 2 3 4 5 Salario del primer empleado datos[0][3]

Departamento al que pertenece el segundo

empleado: datos[1][4]

Años de antigüedad del ultimo empleado

Cada fila contiene los datos de un empleado

Cédula del cuarto

empleado

Cédula del primer empleado datos[0][0]

Sexo del segundo empleado datos[1][2]

datos[n][5]

datos[3][0] Para poder usar una matriz en este caso todos los datos (cédula, edad, sexo, salario,

departamento, y años de antigüedad, tiene que ser del mismo tipo (en este caso enteros)

68-Hacer un programa que procese las notas de un grupo de estudiantes. Debe empezar solicitando la cantidad de alumnos y de notas a ingresar, almacenar el nombre del estudiante y las notas que obtuvo, tenga en cuenta que debe utilizar 2 matrices, una tipo char para los nombres y otra tipo float para las notas. Determine nombre del estudiante con el promedio más alto Determine nombre del estudiante con el promedio más bajo

Page 65: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 65

69-Se tienen los resultados de las últimas elecciones a gobernador en el departamento X, el cual está conformado por 5 municipios. En dichas elecciones participaron 4 candidatos. (5X4). Elabore un programa que: Lea e imprima una tabla indicando los votos obtenidos en cada municipio por los 4 candidatos. Calcule el total de votos recibidos por cada candidato y el porcentaje del total de votos emitidos. Calcule el candidato más votado. Si un candidato recibió más del 50% de los votos, indicar que es el ganador. Si ningún candidato recibió más del 50% de

los votos, el programa debe imprimir los dos candidatos más votados, que serán los que pasen a la segunda ronda de las elecciones.

70-En unas elecciones presidenciales del país, la registraduria va a sistematizar el conteo de votos; se leen los siguientes datos: número de mesa, votos por el candidato 54, 78 y 98, votos en blanco y nulos. El total de mesas fue de 200.345 en todo el país. Determinar: La cantidad de votos de cada candidato El número total de votos nulos El número total de votos en blanco El gran total de la votación El porcentaje de abstinencia si el potencial de electores es de 8000000 de habitantes.

71-Se desea registrar en una matriz la votación para presidente (# de votos). El país esta compuesto por 11 departamentos. Se tiene 18 candidatos (representado en las columnas) Guardar en un vector el porcentaje de votación de cada candidato. Determine: El (los) candidato(s) que obtuvo (obtuvieron) mayor votación El candidato con menos votos expresar en porcentaje Los candidatos que fueron penalizados (dotación menor o igual al 5%).

72- En el prestigioso colegio “El arca de Noe” estudian 1935 alumnos. Allí solo cursan 5 asignaturas y solo hay tres cursos 6,7 y 8 de cada uno se ha registrado la siguiente información correspondiente al segundo bimestre: Código del estudiante, curso, nota asignatura 1, nota asignatura 2, nota asignatura 3, nota asignatura 4, nota asignatura 5. Usted debe hacer un hacer un programa que permita establecer: El promedio de cada estudiante. El promedio de cada curso El código del mejor estudiante del colegio El promedio general del colegio Imprimir en orden descendente los cursos de acuerdo al promedio que se obtuvo en cada uno de ellos

73-En una empresa se va procesar la información de los 1240 empleados de cada uno ellos se conocen: Código, sexo, salario básico, departamento al cual pertenece. Los departamentos son: 01 Contabilidad 02 Administración 03 Mercadeo 04 Sistemas Se debe determinar: Cuantas mujeres y cuantos hombres hay en cada departamento Cuantos empleados ganan menos de 100000 Cuantas mujeres ganan más de 500000 Cual es el hombre y la mujer que ganan más. Cual es el hombre y la mujer que ganan menos.

74-En un banco de la ciudad hay 1458 clientes que poseen cuenta corriente. Los saldos de las cuentas se actualizan al final del día alimentando el computador con las transacciones de todo el día, para cada cuenta se permite máximo una transacción se lee: Número de cuenta, Cedula del Cliente, Saldo Anterior, Valor de la transacción, Tipo de transacción (1 deposito 2 Cheque girado) Se desea imprimir: El listado de cuentas con el saldo actualizado Cuantas cuentas y quienes son sus titulares, quedaron con saldo en rojo (Saldo negativo) Cual es el total de dinero de sus clientes que posee el banco al final del día. Cual es el cliente que tiene más dinero en su cuenta y de cuanto es el monto Cuanto suman los cheques girados al final del día

Page 66: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 66

75-Una empresa automotriz tiene cinco agencias y cuenta con la información acerca de las ventas mensuales de automóviles logradas el año pasado por cada una de éstas. A partir de estos datos la empresa construyó la siguiente matriz ventas:

Lomas Vallejo Perisur del Valle Oriente Enero Febrero . . . Noviembre Diciembre

Elabore un programa para contestar las siguientes preguntas: ¿Cuál fue el total de ventas en el año de la agencia Lomas? ¿Cuál fue el promedio de ventas en el mes de diciembre? ¿Qué agencia tuvo mayores ventas en el mes de mayo? ¿En qué mes se registraron las menores ventas del año, considerando todas las agencias?

76-Un observatorio astronómico requiere de un programa que analice una fotografía del cielo tomada por la noche. La información de la fotografía está almacenada en forma de tabla, donde cada elemento representa la cantidad de luz que se registró para cada punto. Los valores registrados van del 0 al 20, por ejemplo:

0 3 4 0 0 0 6 8 5 13 6 0 0 0 2 3 2 6 2 7 3 0 10 0 0 0 4 15 4 1 8 0 0 0 7 12 6 9 10 4 5 0 6 10 6 4 8 0

La persona encargada de analizar la información supone que hay una estrella en (i, j) si: el punto no se encuentra en las orillas de la fotografía (primero o último renglón o columna), y (a[i, j] + a[i - 1, j] + a[i + 1, j] + a[i, j - 1] + a[i, j + 1]) > 30 Se espera como resultado del análisis, una tabla b con un “*” en las parejas (i, j) en las que se supone que hay una estrella. El resto de la tabla debe quedar lleno de espacios. La tabla b que resulta del ejemplo anterior es:

1 2 3 4 5 6 7 8

Elabore un programa que:

1 2 * 3 4 * 5 * * * 6

Lea las dimensiones de la tabla m y n con (1 m, n 20). Lea los valores de cada elemento de la tabla a. Construya la tabla b. Imprima la tabla b.

Page 67: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 67

1 2 3 4 5 6 7 8 3.5 0.1 2.0 1.5 6.0 4.2 2.5 1.3

1 2 3 4 5 6 7 8 120 0 20 60 40 90 10 0

Elabore un programa para:

Tipo de servicio 01 Puerta a Puerta 02 Normal 03 Encomienda

77-Una fábrica de bombas hidráulicas tiene una matriz con los insumos necesarios para la producción de un conjunto de motores. Por ejemplo, suponiendo que la planta produce 7 motores y se utilizan 8 insumos en diferentes cantidades para su producción, la matriz sería:

Insumos

1 2 3 4 5 6 7 8 M 1 10 20 30 40 0 60 10 80 O 2 0 70 0 50 40 30 0 10 T 3 5 10 15 0 10 15 5 0 O 4 10 20 10 20 10 0 10 20 R 5 4 0 8 0 6 8 4 0 E 6 0 6 9 12 15 0 1 24 S 7 20 18 0 14 0 10 8 6

Analizando la matriz anterior, podríamos ver que para producir un motor del tipo 3 es necesario utilizar 5 unidades del insumo 1, 10 unidades del insumo 2, 15 unidades del insumo 3, 10 unidades del insumo 5, 15 unidades del insumo 6 y 5 unidades del insumo 7. Por otro lado se tiene un arreglo con los costos unitarios en pesos de cada insumo: Costo de Insumos

Se tiene otro arreglo con los pedidos a surtir en el presente mes: Pedidos del mes de cada motor

1 2 3 4 5 6 7

100 25 75 150 80 90 10 También se tiene un último arreglo con la existencia actual de cada uno de los insumos: Existencia de Insumos

Capturar por teclado el número m de motores que fabrica la planta (máximo 50). Capturar por teclado el número n de insumos necesarios para la fabricación de los motores (máximo 50). Capturar por teclado los datos de la matriz de Insumos/Motor. Capturar por teclado los datos del arreglo de costos unitarios de insumos. Capturar por teclado los datos del arreglo de pedidos del mes de cada motor. Capturar por teclado los datos del arreglo de insumos existentes en la planta. Obtener e imprimir un arreglo de m elementos, con el costo de producción de cada motor. Suponga que el costo de

producción de un motor consiste en sumar el producto de insumos necesarios por el costo unitario de cada insumo. Obtener e imprimir un arreglo de n elementos, con la cantidad de unidades de cada insumo, necesaria para cumplir con los

pedidos del mes. Obtener e imprimir un arreglo de n elementos, cuyos datos indiquen cuál es el costo total por concepto de cada insumo

para cumplir con los pedidos del mes. Obtenga e imprima el costo total (tomando en cuenta todos los insumos) para cumplir con la producción del mes. Obtenga e imprima un arreglo de n elementos, con la diferencia de los insumos necesarios para la producción mensual

menos los insumos existentes en la planta, con el fin de poder surtir dichos insumos a tiempo.

78-En una empresa de taxis se desea registrar la información de las N (N dado por teclado) carreras realizadas por sus móviles (taxis) a los clientes de la empresa, existen 5 Taxis. Dada la siguiente información: Código del taxi, cédula del cliente, tipo de servicio y valor del servicio. Donde:

Código del Taxi 01 02 03 04 05

Determine: Cual es el valor total producido por cada taxi. Cual es el servicio que más se usa. Que cliente paga más por un servicio.

Page 68: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 68

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

55000 65000 85000 95000 60000

Ejemplo de representación de la información en forma de matriz (arreglo bidimensional): Número del taxi Cédula Cliente Tipo servicio Valor 02 88030900 03 5000 03 60623890 01 2500 01 79120765 02 3000 ………. ……. ….. ……..

79- Se lee la información de 100 estudiantes, el código, la nota final, el departamento (1. SISTEMA, 2. ELECTRÓNICA, 3. TELECOMUNICACIONES), y el ciclo de formación al que pertenece (1 para los Primeros 5 semestres y 2 para los 5 últimos semestres). Representando esta información en una matriz. Se debe calcular e imprimir Cuantos estudiantes hay en cada departamento El código del estudiante con la nota más alta El promedio de notas de los estudiantes de primer ciclo, y segundo ciclo

80- Capturar por teclado los datos de una matriz de 3x4, las filas representan los productos 0,1,2 y las columnas representan las sucursales 0,1,2,3... en cada celda de la matriz se registra la cantidad mensual vendida de productos de la empresa. Se tiene además un vector de 3 posiciones con el costo de venta de cada producto. Calcular e imprimir un vector de 4 posiciones con el valor total vendido por sucursal Calcular e imprimir la sucursal que más dinero recaudo.

0 1 2 3 4 Vector costo de productos 0 10000 1 15000 2 5000

Total Vendido

81-Un concesionario de automóviles alquila sus vehículos por días, dependiendo del tipo de vehículo los precios son así: Tipo 01 Familiar valor $20.000 diarios Tipo 02 Deportivo valor $30.000 diarios Tipo 03 Camioneta valor $50.000 diarios Realice un programa que almacene la siguiente información Cedula, Tipo de vehículo, Días, Total a pagar, para N clientes (N es un numero desconocido) El llenado de la información termina cuando la cedula del cliente es 0. A los clientes con más de 8 días de alquiler en cualquier tipo se les hace un descuento del 5% sobre el valor total. Realice con Funciones: Función de Llenado ( Solo puede solicitar cedula, Tipo de vehículo y días) Función valor a pagar por cliente (almacenar este valor en la matriz) Valor promedio de alquiler por tipo y general. Cual es el tipo de vehículo que mas se alquila. Ejemplo de Matriz: Cédula Tipo de Vehículo Días Valor a Pagar

82-La universidad de Pamplona desea llevar un registro de los 96 estudiantes deportistas vinculados a las selecciones de la universidad. Existen 3 selecciones

Código Nombre 1015 Fútbol 1030 Rugby 1045 Taekwondo

De cada estudiante se conoce: Cédula, Sexo (1 Hombre, 2 Mujer), Edad, Código de la Selección a la que pertenece.

Page 69: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 69

Datos aficionado 1

Datos aficionado 2

Datos aficionado 3

Datos aficionado n

Existencia

Numero de láminas repetidas

Existencia

Numero de láminas repetidas

Existencia

Numero de láminas repetidas

Existencia

Numero de láminas repetidas

1 5 0 0 1 14 … 1 0

0

0

1

5

0

0

1

2

1

4

1

1

1

2

1

5

1

6

1

2

0

0

1

6

Realice con funciones: Llenado de la matriz. Determine el porcentaje de Hombres y mujeres (de toda la matriz). Determine la selección con el deportista más joven. Determine el número de deportistas por selección.

83-Una empresa de celulares quiere llevar el control de todos los planes que a vendido. Existen 528 clientes y de ellos se conoce: Cédula, Sexo (1 Hombre, 2 Mujer), Tipo de Plan (01 Familiar, 02 Estudiante y 03 Corporativo), Número de Celular y minutos consumidos. Los Planes son los siguientes:

Tipo de Plan Minutos Valor 01. Familiar 300 45.000 02. Estudiante 150 20.000 03. Corporativo 600 75.000

Realice: Main Función Llenado de la matriz que almacena los datos mencionados. Función que imprima el total que debe pagar cada cliente (debe tener en cuenta que al valor hay que sumarle los minutos

extra si estos existen). Función que determine quien consume más minutos hombres o mujeres. Función cual es el cliente que más paga en su factura

Nota: Por cada minuto que se exceda un cliente en su plan debe pagar los minutos adicionales a 350 pesos cada uno.

84-Una empresa tiene 10 camiones tolva que trabajan los 7 días de la semana (Lunes a Domingo). Las horas trabajadas por día para cada camión se guardan en un arreglo BIDIMENSIONAL de 10 x7 elementos, con el fin de obtener después de cada semana la siguiente estadística: Los promedios de horas trabajadas cada día de la semana por los camiones. Los promedios de horas trabajadas por cada camión en la semana Deberá indicar el número de camión que trabajo un mayor número de horas durante la semana. En el main hacer el proceso de captura de información para el llenado del arreglo bidimensional (la matriz) de 10x7.

85-Realizar un programa en lenguaje C que permita el registro y control de láminas del álbum del mundial de fútbol en una matriz de 629 x 2N. Existen una cantidad N de aficionados. La información de cada aficionado se registra en dos columnas. Cada fila de la matriz representa una lámina. Por cada aficionado, en su primera columna se registra la existencia de la ficha: un 1 si la tiene y un 0 si no la tiene; en la siguiente columna se registra la cantidad de láminas repetidas que pueden ser intercambiadas ( de tal manera que las columnas pares contienen la existencia de la lamina o no y las columnas pares contienen la cantidad de laminas repetidas que contiene cada aficionado) .

0 1 2 3 4 5 … 2n-2 2n-1

0

1

627

628

Desarrolle las siguientes funciones: Función de llenado de la matriz. Función que cuente la cantidad de láminas que le faltan para llenar el álbum a cada aficionado. Función que cuente la cantidad de fichas repetidas por cada aficionado. Función que indique el aficionado que tiene más fichas repetidas. Función main que llame las funciones e imprima los datos solicitados.

Page 70: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch

----------------------------------------------------------------------------------------------------------------------------------- 70

1020 60123456 1011 88321654 20000

1015 88030040 1020 88987654 50000

25 80 0 10 40 120 10 0 50 125 1100 0 .. … 40 56 40 60

$10.000 $15.000 $9.000 … $25.000

l u i s m e n d e z ‘\0’

Ced

ula

Eda

d

Sex

o

anti

güed

ad

Sal

ario

Bas

e

…. ... ... ... ...

... ... ... ... ...

86-Una empresa dedicada al envió y entrega de giros de dinero, desea un programa en C usando matrices para almacenar la información de 32 giros enviados. De cada giro se almacena Código Ciudad Origen, Cedula de Quien Envía, Código Ciudad Destino, Cedula de quien Recibe y Valor del Giro. Los códigos de las ciudades son 1011, 1015 y 1020. Por ejemplo

Código Ciudad Origen

Cc Envia Código Ciudad Destino

Cc Recibe Valor

0 1 2 3 4

0

1 2

31

Realice: Main Función Llenado de la Matriz Función que retorne el total enviado por Ciudad Función que retorne el promedio recibido por Ciudad Dado por teclado un número de Cedula Función que determine y retorne cuánto recibe esa persona por concepto de giros.

87-En una empresa de construcción se lleva el registro de las horas trabajadas por los obreros en cada uno de los proyectos. La información de las horas trabajadas se almacena en una matriz de m x n (m hace referencia al número de obreros, n hace referencia al número de proyectos.). La empresa cuenta con aproximadamente 1000 obreros y tiene como máximo 10 proyectos en ejecución. También se tiene la información del valor de la hora por cada proyecto. Ejemplo:

Proyecto 0 Proyecto 1 Proyecto 2 … Proyecto n-1 Obrero 0 Obrero 1 Obrero 2 … Obrero m-1

Valor de la hora por proyecto

Hacer un programa en C que lea la información de la matriz de cantidades y el vector de valores y determine la siguiente información: Vector con la Cantidad total de horas trabajadas por cada uno de los obreros. Vector con el valor total pagado por mano de obra de cada proyecto. Indicar el proyecto más costoso de la empresa. Indicar la cantidad promedio de horas trabajadas por los obreros.

88- En una compañía de seguros se almacena la información de sus 150 afiliados en dos matrices de datos una en la que se almacenan el primer nombre y el primer apellido, y la segunda en la que se almacena el número de cedula, la edad, el sexo (1 Fem, 2 Masc), la antigüedad y el salario base de la persona.

Nombre y Apellido

0 1 … 150

0 1 2 3 4 5 6 .. … … … … 50 0 1 2 3 4

Page 71: Facultad de Ingenierías y Arquitectura Guía del Estudiante ... · PDF fileFundamentos de Programación, Libro de problemas, Luis Joyanes Aguilar, ... 1- Defina y diferencie los siguientes

Universidad de Pamplona Facultad de Ingenierías y Arquitectura

Guía del Estudiante para Programación Estructurada – Alexis Olvany Torres Ch -

---------------------------------------------------------------------------------------------------------------------------------- 71

Realice un programa modular en lenguaje C en el que implemente lo siguiente: Función llenado: debe permitir Capturar por teclado la información de los 150 clientes almacenándola en las dos matrices

de datos.

Función imprimir nombre: debe imprimir el nombre de un cliente cualquiera (toma como referencia el número de la fila), imprimiendo el apellido en mayúsculas y el nombre en minúsculas separado por una coma (ej. MENDEZ, jorge) sin afectar la forma como se encuentra almacenado el nombre en la matriz de datos. Recuede que en el código ASCII A=65 Z=90, a=97 z=122.

Función imprimir datos, debe imprimir los datos de una persona cualquiera (cédula, apellidos y nombres (función imprimirnombre), edad y sexo) teniendo como referencia el número de cédula.

Función promedio edad: de debe calcular y retornar el promedio de las edades de las personas registradas. Función personas en la edad promedio: debe imprimir en pantalla los datos de las personas que se encuentran en la edad

promedio (usa las funciones promedioedad e imprimirdatos). Función rango salario: recibe dos salarios (salario inferior y salario superior) e imprimen en pantalla los datos de las

personas que se encuentran en ese rango. La empresa igualmente tiene un plan de sorteos en el cual la persona ganadora recibe un premio de 2.000.000. Para

determinar la persona ganadora se tiene en cuenta el día de la semana (1. Lun, 2. Mar, 3. Mier, 4. Jue, 5. Vier) y una consonante (b,c,d,f,g……). El día de la semana corresponde a una vocal (1. a, 2. e, 3. i, 4. o, 5. u) la persona ganadora es aquella que tenga en su nombre y apellido más repetida la vocal (correspondiente al día de la semana) y la consonante ingresada. Realice una función que permita conocer el número de cédula de la persona ganadora (los datos de la vocal y consonante se reciben en minúscula pero debe contar así se encuentre en el nombre en mayúscula).

Función vocal: recibe el número del día y retorna la vocal correspondiente en minúscula. El main() Realiza el llamado a la función llenado. Realiza el llamado a la función personasenedadpromedio. Solicita dos salarios (inferior y superior) y realiza el llamado a la funciónrangosalario Solicita el día de la semana y una consonante y realiza el llamado a la función creada para conocer la persona ganadora. Imprime los datos de la persona ganadora. No se pueden usar las funciones gets y puts, ni el carácter de salida %s. una de las 4 partes de voz.