Sunteți pe pagina 1din 39

Universidad de Pamplona 1

Guía del Estudiante


Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Programación Estructurada

Objetivo del Curso:

Utilizar el concepto de función como principal herramienta para la abstracción y


descomposición en un problema complejo y como fundamento de la programación
estructurada

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 estructurada

Contenidos del curso


1. Introducción
1.1 Conceptos de máquina y computador
1.2 Componentes funcionales del computador
1.2.1 Software
1.2.2 Hardware
1.3. La función como elemento fundamental del procesamiento de datos
1.4. El dato y su procesamiento Tipos de datos (conjuntos), datos (elementos)
1.5. Asignación y expresiones numéricas
1.6. Lenguajes de programación openbasic
1.7. Herramienta de programación Calc

2. Estructuras de Control
2.1 De selección
2.2 De repetición Mientras que

3. Estructuras de datos
3.1 Otro lenguaje de programación
3.2 Arreglos
3.2.1 Vectores
3.2.2 Matrices
3.3 Registros
Universidad de Pamplona 2
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Contenidos de la Guía

1 INTRODUCCIÓN A LA PROGRAMACIÓN................................................................................... 3

2 FUNCIÓN............................................................................................................................... 4
2.1 EL DATO Y SU PROCESAMIENTO................................................................................................................ 6
2.2 EXPRESIONES Y LA ASIGNACIÓN............................................................................................................... 7
2.3 PROCESAMIENTO BÁSICO CON DATOS NUMÉRICOS ..................................................................................... 8
3 ESTRUCTURAS DE CONTROL ............................................................................................... 10
3.1 ESTRUCTURAS DE SELECCIÓN O CONDICIONALES .................................................................................... 10
3.2 ESTRUCTURAS REPETITIVAS................................................................................................................... 15
3.3 EJERCICIOS MISCELÁNEOS ................................................................................................................... 19
4 RECURSIVIDAD ................................................................................................................... 21

5 ESTRUCTURAS DE DATOS ................................................................................................... 23


5.1 ARREGLOS ........................................................................................................................................... 23
5.1.1 Arreglos unidimensionales (vectores) ............................................................................................ 23
5.1.2 Vectores paralelos ......................................................................................................................... 27
5.1.3 Arreglos Bidimensionales o Matrices ............................................................................................ 28
5.2 REGISTROS .......................................................................................................................................... 34
Universidad de Pamplona 3
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

1 Introducción a la programación

1-Describir lo que representa cada una de siguientes figuras

Usuario

Software
Sistemas de Aplicativo Lenguajes de
Información Programación

Sistemas Operativos

Hardware
__________ _______________________ ______________________________________ _____________________
Universidad de Pamplona 4
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

2 Función
Una función como el procesamiento de datos de entrada que produce datos de salida.

Así pues, la función se puede interpretar como una máquina que recibe objetos (pertenecientes a
un determinado conjunto) los procesa de alguna forma y devuelve (retorna) objetos pertenecientes
a otro conjunto.
Todos los posibles objetos que puede procesar una función conforman el dominio de la función y
todos los posibles objetos procesados y retornados por una función conformar el rango de la
función. De esta manera se puede notar la función así:
f :: Dominio  Rango
objeto a procesar  objeto retornado (procesado)
Una función es un conjunto de instrucciones (asignaciones y estructuras de control) que realizan
una tarea específica y puede retornar un único valor. Las funciones pueden utilizar datos de
entrada llamados parámetros que permiten el intercambio de datos entre el llamado de la función
y la ejecución de la misma. Las funciones son utilizadas para descomponer grandes problemas en
tareas simples y para implementar operaciones que son comúnmente utilizadas durante un
programa y de esta manera reducir la cantidad de código. Cuando una función es invocada
(llamada) se le pasa el control a dicha función, una vez que esta finalizó con su tarea el control es
devuelto al punto desde el cual la función fue llamada, retornando un único valor.
Universidad de Pamplona 5
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Cada función se puede considerar como un programa totalmente independiente, es decir que se
ejecuta en su propio espacio de memoria, por lo tanto cada función una vez llamada (invocada)
recibe los parámetros como variables de su propio contexto, y procesa sus propios datos
almacenados en su memoria de datos. Una función no debe acceder a datos del programa
principal o de otra función, y solo es posible intercambiar datos entre funciones o entre el
programa principal y las funciones por medios de parámetros. Los parámetros son datos de
entrada para la función y por lo tanto se necesitan para que la función ejecute la tarea para la
cual fue diseñada. Una vez terminadas las instrucciones que componen la función se retorna
(opcionalmente) un valor al lugar donde se hizo el llamado (invocación) de la función.
Una vez la función termina su proceso y retorna un valor (a donde fue invocada) el espacio de
memoria donde se ejecutó la función deja es liberado (deja de existir), por lo tanto las variables
locales dejan de existir y es por ese motivo que los valores de la variables locales se pierd en y no
es posible recordarlas entre dos llamados de la misma función.

Dado que una función maneja su propio espacio de memoria, los nombres de las variables de la
función pueden tener el mismo nombre de las variables del programa principal o de otras
funciones, sin embargo es necesario recordar que sin importar si tienen el mismo nombre, son
dos variables diferentes y cada una tendrá su propio valor, la única diferencia es que la función
solo puede acceder (usar) su propias variables y no tiene acceso a otros espacios de memoria de
otras funciones o del programa principal.

Existen dos tipos de parámetros en una función: los parámetros por valor y los parámetros por
referencia. En este curso solo se utilizan los parámetros por valor (los parámetros por re gencia se
introducen en el siguiente curso cuando se utilizan los vectores.
Como todas las funciones solicitadas en esta guía usan parámetros por valor es necesario
explicar su funcionamiento : Cuando una función es llamada se le entrega un conjunto de datos
dentro de paréntesis a los cuales llamaremos Argumentos, la función se empieza a ejecutar
creando su propio espacio de memoria y saca una copia de los valores de los argumentos en los
respectivos parámetros (por eso se llaman parámetros por valor.. pues los parámetros extraen los
valores de los argumentos sacando una copia). La función puede definir todas las variables
locales que necesite para realizar su proceso, con los parámetros que contienen una copia de los
valores de los argumentos, realiza el proceso requerido y retorna el valor correspondiente. Dentro
de la función se pueden modificar las variables que actúan como parámetros sin que los
argumentos sufran dichos cambios.
Universidad de Pamplona 6
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

2.1 El dato y su procesamiento

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 estudian te), 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 inglés 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).
Universidad de Pamplona 7
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Enteros
Numéricos
Reales

Tipos de datos Caracteres


Alfanuméricos
Cadenas de Caracteres (String)

Booleanos

2.2 Expresiones y la Asignación


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.

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

And X Y X and Y X or Y Not X


Lógicos Or V V V V F
not V F F V F
F V F V V
Operadores F F F F V

Mayor >
Relacionales Menor <
Mayor o igual 
Menor o Igual 
Igual = =
Diferente 

El operador de concatenación que tiene algunos lenguajes


Alfanuméricos de programación y que básicamente sirve para pegar dos
cadenas de caracteres

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, representando 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
Universidad de Pamplona 8
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

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 verdadero 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

2-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 Tipo de expresión
expresión
(a*b) div 3
((a*b)>50 ) and ( 3> c )
((a-b)*5 ) mod d
(a +c ) < d

2.3 Procesamiento básico con datos numéricos

Asignación: Es un proceso mediante el cual se cambia el valor de una variable por el resultado
de calcular una expresión.

En una asignación hay que tener en cuenta:


Variable cuyo valor
Símbolo de asignación
va a cambiar

En una asignación, el
a = b+c tipo de dato de la
En una asignación, variable de la izquierda
primero se calcula el debe ser igual al tipo de
valor de la expresión y expresión de la derecha
luego el resultado es
almacenado en la
variable de la izquierda Expresión que va a
ser calculada, y cuyo resultado
será almacenado en
la variable de la izquierda

Para cada uno de los siguientes ejercicios realizar y probar las funciones que se consideren
necesarias:
3- Calcular la función f ( x)  3x  2 x  1
2

4- Calcular el área de un círculo sabiendo que A   .r


2

5- Calcular el perímetro de un círculo P  2. .r


Universidad de Pamplona 9
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

1
6- Calcular la altura de un cono conociendo el volumen y el radio de su base. V  . .r 2 .a
3
7- Hacer una función que dado un número de 3 cifras retorne el número invertido.
Ejemplos: al llamado invertir(791) retornará 197
al llamado invertir(248) retornará 841

8-Calcular el área de un triángulo en función de las longitudes de sus lados


Area  p( p  a)( p  b)( p  c)
donde p  (a  b  c) / 2 (semiperimetro), utilice la función sqrt(x)
que calcula la raíz cuadrada de x.

9-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.

10- Hacer las funciones necesaria para la conversión de temperaturas mediante 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

11-Hacer dos funciones para calcular cada una de las raíces de una ecuación cuadrática
 b  b 2  4.a.c
ax  bx  c  0 , sabiendo que X 
2

2.a
Ejemplo: para la ecuación x  5x  24  0 en donde a=1, b=5 y c=-24, frente al llamado
2

primeraraiz( 1, 5, -24) retornará 3 y al llamado segundaraiz( 1, 5, -24) retornará -8.

12- La nota final de un estudiante de Programación, se compone de los siguientes porcentajes:


60% Examen, 25% Quices y 15% Trabajos. Las calificaciones corresponden a números decimales
entre 0 y 5.
Hacer una función que conociendo las tres calificaciones retorne la definitiva
Hacer otra función que conociendo las notas de Quices y trabajos retorne la nota que debe sacar
en el examen para aprobar la materia con la nota mínima de 3.0.

13-Un vendedor recibe un sueldo base mensual, más un 10% de las ventas realizadas (comisión),
hacer una función que dado el salario base y el total de ventas realizadas retorne el salario que le
corresponde en el mes.

14-Escriba una función llamada magnitud que tenga cuatro parámetros de entrada llamados x1,
y1, x2, y2 y que retorne como resultado la distancia entre dos puntos cuyas coordenadas son (x1,
y1) y (x2, y2) según la siguiente fórmula:
dist  ( y 2  y1 ) 2  ( x2  x1 ) 2
Universidad de Pamplona 10
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

3 Estructuras de control

De selección o condicionales

Mientras que
Estructuras de Repetitivas Para
control Hacer mientras

3.1 Estructuras de selección o Condicionales

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

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

Fin si

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


Llegada a la
Expresión booleana estructura
Conjunto de instrucciones
que se evaluará para decidir que se ejecutarán, cuando
que conjunto de instrucciones la condición sea verdadera
se ejecutará

no si
Condición

Conjunto de instrucciones Terminación de la estructura


que se ejecutarán, cuando Aquí se deben encontrar los caminos
la condición sea Falsa del si y del no para continuar el algoritmo

15- Calcular el valor absoluto de un número real, sin usar funciones predefinidas del lenguaje.
Ejemplo: Al llamado valorabsoluto(10) retornará 10
valorabsoluto(-5) retornará 5
Universidad de Pamplona 11
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

16-Hacer una función que dados 3 números retorne el mayor el mayor (o el menor o el del medio
en otras funciones separadas)

17- Calcular f (x) donde f es una función de los reales en los reales, definida por
x si x  5

f ( x)   x  3 si  5  x  5
 x 2  2 si x  5

18-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. Hacer una función que dadas las horas semanales trabajadas de un empleado,
retorne el salario a pagar según estas condiciones.

19-Escribe una función con dos parámetros de tal forma que determine si sus dos parámetros
son múltiplo el uno del otro (no importa cuál de cuál).

20-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 de 500 pesos
y esto se constituye en tarifa básica (si consume menos de 70m igual se cobrará los 500 pesos) ,
los siguientes 100 metros cúbicos de gas se cobran a 50 pesos el metro cúbico, los siguientes 150
metros cúbicos de gas consumido se cobran a 25 pesos por metro cúbico, por encima de 400
metros cúbicos de gas consumidos se cobrará a 15 pesos por metro cúbico. Dada la lectura del
contador al inicio de mes y al final del mes (dos números enteros el primero menor que el
segundo), en metros cúbicos, calcule el valor de la factura.

21-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.
Hacer una función que dado el tiempo navegado por una persona (en minutos) determinar y
retorne el valor a pagar.

22-Calcular mediante una función el valor de la cuota mensual y mediante otra 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.

23-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
Universidad de Pamplona 12
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Si el nivel de consumo se excede, debe pagar por cada punto adicional e n el nivel de consumo
$800, en cualquiera de los 4 estratos.
Ejemplo: Si el estrato es 3 y el nivel de consumo 45 entonces el valor de la factura es de
15000+(10*800)=23000 pesos

24- Dado un número X de 3 cifras determine la suma de las cifras pares


Ejemplo: Si el número de tres cifras es 364, de los tres dígitos, los pares son 6 y 4 por lo tanto la
Suma de sus dígitos pares es 10

25- Dada las longitudes de los lados de un triángulo, hacer una función que determine el tipo de
triangulo, teniendo en cuenta la siguiente clasificación:
Si los tres lados son iguales es equilátero
Si solo dos lados son iguales isósceles
Si todos son diferentes escalenos

26-Calcular el valor total a pagar por concepto matricula de un estudiante.


Para realizar esto, se debe hacer a partir del código de estudiante, que permite definir los
parámetros de liquidación e información adicional (El código está compuesto por 5 dígitos)
El primer dígito permite identificar el tipo de carrera que cursa el estudiante y valor base de
matrícula.
El segundo dígito representa la jornada y permite obtener recargo sobre la matricula.
Los siguientes dígitos (3) el consecutivo de la carrera.
Si el alumno tiene un consecutivo par tiene un descuento 20%.
Si el alumno tiene un consecutivo impar tiene un descuento 10%.
Las carreras están definidas así:
Código Tipo Valor base Matricula
1 Profesional $300.000
2 Tecnología $150.000
3 Técnico $100.000
Profesional
La jornada permite definir un recargo así:
Código Tipo Porc. Recargo
1 Diurna 5%
2 Nocturna 10%
El valor total de matrícula (VTM) se calcula así:
V. T. M. = valor base de matrícula + (valor base de matrícula * Porc. recargo)
- (valor base de matrícula * 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

27- 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 está dada por la siguiente tabla
Tiempo de conversación Valor a pagar
Universidad de Pamplona 13
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

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 el tiempo de conversación de una persona en minutos y segundos (dos
datos separados) determinar el valor a pagar.

28- Calcular el valor a pagar de la factura del celular conociendo el tipo de plan, la cantidad de
minutos y de mensajes de texto consumidos en el mes, según la siguiente tabla:
Tipo de plan Minutos Básicos Mensajes 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).

29-Escribe una función que tome 3 parámetros: dos de tipo real 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 símbolo indicado en el tercer parámetro, y devolver el resultado (el carácter será
„+‟, „-„, „ * ‟, y „/ ‟).

30- 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 siguiente tabla
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 50000 por las primeras 10 toneladas y a
producto transportado 5000 pesos cada tonelada que exceda de
10
A los vehículos que entran al centro de abastos a cargar se les cobra por el tiempo que
permanecen dentro así: Las primeras dos horas son gratis, pero las horas extras que permanecen
dentro del parqueadero se cobran a 2000 pesos la hora.
Hacer una función que permita calcular el total a pagar por el servicio de parqueadero de un
vehículo.

31-Suponiendo que la universidad de Pamplona ha decidido cambiar la tabla de costos de


matrícula para sus estudiantes y desea que se realice un programa de computación que facilite el
cálculo del costo de la matrícula 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.
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:
Universidad de Pamplona 14
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Sexo→ Mujeres Hombres


Tipo de programa ↓
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:
Número 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
Más de 5 hijos 80% de descuento sobre el costo base de la matricula

32-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 el valor comercial del
automóvil, el número de placa (número 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 a5 Particular 15 % del valor comercial
6y7 Servicio Publico 18% del Valor comercial
8y9 Camioneta 20% del Valor comercial
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 las funciones necesarias para calcular el precio a pagar por concepto de impuesto de un
vehículo dado.

33-Calcular el número de pulsaciones que debe tener una persona por cada 10 segundos de
ejercicio aeróbico; la fórmula 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

34-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:
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:
Universidad de Pamplona 15
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Miami Madrid
Destinos
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%

3.2 Estructuras repetitivas


Mientras
que
MQ condición haga
no
Condición
..... Instrucciones a
si repetir

fin MQ

En una estructura repetitiva “Mientras que” hay que tener en cuenta:

Expresión booleana Llegada por primera vez


que se evaluará y determina al ciclo repetitivo
si se sigue o no repitiendo
las instrucciones

no
Condición
si
Regreso para evaluar
la expresión booleana
que permite decidir si se
continua o no la repetición del
conjunto de instrucciones

Terminación del proceso


de repetición del conjunto de
Conjunto de instrucciones que instrucciones
se repetirán
Universidad de Pamplona 16
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

 0 si n  0
35- Hacer la función Factorial. n! 
1x 2 x3x 4....n si n  0

 0 si x  0 y y0
 1 si x  0 y y0

y 1
36- Cree la función Potencia x   x( x )
y
si y0
 1 y si y0
 x
no definido si x  0 y y0
37- Dados dos (2) números ·”x” y “z”donde “x” es menor que “z” haga una función para calcular la
suma de los números comprendidos entre ”x” y “z”.

38- Hacer dos funciones una para hallar el cociente y otra para hallar el residuo de una división
entera mediante restas sucesivas (sin usar el operadores “div” ni “mod” que disponen la mayoría
de lenguajes de programación)..
Para el cálculo del cociente y del residuo de una división entera, usando restas sucesivas tenga
en cuenta los siguientes ejemplos:
División entera entre 10 y 4 División entera entre 19 y 5 División entera entra 31 y 7
10 – 4 = 6 19 - 5 = 14 31 - 7 = 24
6–4 =2 14 - 5 = 9 24 - 7 = 17
9 - 5= 4 17 - 7 = 10
10 - 7 = 3
Cociente 2 pues se hicieron El cociente es 3 pues se Cociente es 4
dos restas hicieron tres restas Residuo es 3
El residuo es 2 puesto que es El residuo es 4 puesto que es
el último resultado de la el último resultado de la resta
resta

39- Hallar la cantidad de dígitos que tiene un número entero

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


 m m!
   Haga una función factorial y una función combinarlo con dos parámetros n y
 n  n !( m  n) !
m. Recordar que n y m son positivos y que si n es mayor que m la combinatoria es cero.

41- 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)...
x3 x5 x7 x 2 k 1
Seno( X )  x    ...( 1) k
..... utilizando notación de sumatoria sería:
3! 5! 7! (2 k  1)!
15
x 2 k 1
Seno ( x)   (1)
k 0
k

( 2k  1)!
Universidad de Pamplona 17
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

x2 x4 x6 k x
2k
Para el coseno Cos( x)  1 
   ...  ( 1)  ..... Utilizando notación de sumatoria
2! 4! 6! 2k!
15
x 2k
sería: Cos( x )   ( 1)
k

k 0 ( 2 k )!

x2 x3 x4 xi
Para el exponencial e  1  x 
x
  .... Utilizando notación de sumatoria e  1  
x
2! 3! 4! i 1 i!
2 k 1
1  x 1 

Para el logaritmo natural ln( x)  2  
k 0 2k  1 x  1 

 1k 1

Para calcular el valor de pi   4
k 1 ( 2k  1)
Hacer las funciones necesarias para que dado un valor real de X se calcule Seno(x), Cos(x) y e x,
utilizando las series de Taylor descritas anteriormente.

42- Calcular el n-esimo término de la serie de Fibonacci.


Para n = 7
La serie de Fibonacci es: 1, 1, 2, 3, 5, 8,13
Por lo tanto el séptimo término es 13

43- Hacer una función que dado un X y un N calcule la siguiente sumatoria


N
( x  1) 2k

 ( 1)
k 1
k

( k  1)!

44- 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 una función que determine si un número es perfecto o no.

45- Hacer un programa que calcule los N-esimo término de la serie: 1, 4, 2, 8, 4, 16, 8,
...... Determinada por:
a1=1
a 2 = 2 2 / a1 = 4
a 3 = 2 3 / a2 = 2
a 4 = 2 4 / a3 = 8
.....
ak= 2k / ak-1

46- Juan Pablo Montoya, 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. Realice una función que dado el
número de kilómetros recorridos el primer día 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....
Día Kms Recorridos Acumulado
Universidad de Pamplona 18
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

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

47- Dado un número determinar si es primo. Sabiendo que un número es primo si tiene hasta
dos divisores (1 y él mismo)

48- 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, si él no retira ni deposita
dinero en ese tiempo.

49- 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
Hacer una función que recibiendo dos números devuelva si son amigos o no

50-Hacer una función que determine si un número es narcisista o no. 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: 7 = 71
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.

51- 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 a función que dado
capital inicial, calcule cuantos días se requieren para que el saldo de la cuenta supere un
determinado monto. 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%.

52-Hacer una función 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!)

53-Dado un número natural n encuentre su raíz digital.


Universidad de Pamplona 19
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

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

54-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 e jemplo, si el número es
234, el resultado es 4.

55- (*) 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 más exactas a
la solución. Para calcular la aproximación (i+1)-esima se usa la anterior (la i-esima) y se aplica la
fórmula:
x
ri 
ri
ri 1 
2
56-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.

57-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 0,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á.

3.3 Ejercicios Misceláneos

58-Dado un número natural n (de cualquier cantidad de dígitos) hacer una función que
encuentre otro entero m que sea n al revés, invirtiendo el orden de los dígitos y otra función que
permita saber 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 palíndromo.
b
k3  kk
59-Calcular la siguiente sumatoria

k a k  5 , para los valores de a y b dados (validando que
k 5
“a” sea mayor que “b”), y teniendo en cuenta que k no puede ser 5 pues generaría una división
por cero.
8
k 3  k k 43  44 63  66 73  77 83  88
Ejemplo si a= 4 y b=8 entonces 
k 4 k  5

45

65

75

85
k 5

60-El profesor de programación, acordó con sus estudiantes 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
Universidad de Pamplona 20
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Si la nota es mayor de 3.5 se le suman 0.4. Es decir si la nota obtenida es de 3.7 el profesor
suma 0.4, 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 0.3. Es decir que si la nota obtenida es de 2.2 el profesor
resta 0.3, luego su nota final será de 1.9. Si la nota resultante fuese menor que 0 (cero) la
definitiva se deja en 0 (cero).
Haga una función que dadas las 3 notas para cada un estudiante calcule la nota final.

61-Haga una función que determine si un número “n” 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.

62-Calcular el valor total de matrícula de un estudiante, la cual se realiza con base a la cantidad
de créditos matriculados en el semestre así:
Los primeros 10 créditos cada uno tiene un costo $15.000
Los siguientes 6 créditos cada uno tienen un costo $25.000
El restante de créditos matriculados, cada uno tiene un costo $35.000
Dependiendo de la edad del estudiante se puede obtener un descuento así:
Edad Descuento
<20 10% de los costos por créditos matriculados
>40 5% de los costos por créditos matriculados
>20 y <40 20% de los costos por créditos matriculados
b
i3
63-Hacer una función que calcule la siguiente sumatoria s Por ejemplo: Para a=3 y
ia i  4

b=5 se tiene que:


3
3 43 53 27 64 125
S=      = 25.7460
3 4 4 4 5 4 7 8 9

64-Una lavandería ofrece sus servicios a la ciudad de Pamplona de acuerdo a la siguiente tabla.
Peso de Ropa → 0 Kg a 2,0 Kg 2,1 Kg a 4,0 Kg
Tipo Cliente↓
1. Normal $200 $500
2. Especial $150 $450
Hacer una función para determinar cuánto debe pagar un cliente por un servicio

65-Escriba una función que dado un número N determine 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, 1  0  1 ...... como el resultado es de un solo dígito ( en caso contrario seguir el proceso),
2 2

se detiene el proceso para este ejemplo (porque el resultado es de un solo dígito)


Universidad de Pamplona 21
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

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

66-Se dice que un número es CUBO INTERESANTE si puede ser representado como la suma de
los cubos de sus dígitos. Haga una función que determine si un número es un cubo interesante.
Por ejemplo 153 es cubo interesante pues:
153= 13 +53+33 = 1+125+27=153

67-En un parqueadero de la ciudad de Pamplona se cobra por minutos (a 15 pesos el minuto) y


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 mediodí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.
Hacer una función que determine el valor a pagar por parqueadero de un cliente.

4 Recursividad

68- Haga una función recursiva de tal manera que calcule el factorial de un número entero dado,
 1 si n0
de acuerdo a las siguientes reglas: n!  
n( n  1)! si n0

69- Hacer una función que dado un número natural n encuentre su raíz digital.
La raíz digital de un natural n se obtiene calculando el natural m sumando los dígitos que
componen al número 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
Nota: utilice las funciones “div” y “mod” que sirven para calcular la división entera y el residuo
de la división entera.

70-Hacer un programa que calcule un combinatorio según la siguiente definición recursiva:


n n
      1
0 n
 n   n  1  n  1
       
 k   k   k  1

71-Dadas las siguientes afirmaciones sobre el máximo común divisor mcd de dos números x, y:
El mcd de un número y él mismo, es el mismo número
El mcd entre uno (1) y cualquier otro número es uno (1)
El mcd entre dos números es igual al mcd entre el menor de los dos y la diferencia (el mayor
menos el menor)
Por ejemplo el mcd entre 5 y 15 es igual al mcd entre 5 (el menor) y la diferencia que es 10 (15-5).
El mcd entre 10 y 5 es igual al mcd entre 5 y la diferencia 5 (10-5). El mcd entre 5 y 5 es 5.
Por lo tanto el mcd entre 5 y 15 es 5.
Hacer una función que calcule el máximo común divisor entre dos enteros positivos.
Universidad de Pamplona 22
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

72- Calcular una potencia aplicando las siguientes reglas: Cero a cualquier número diferente de
cero da cero. Cualquier entero diferente de cero elevado a la 0 da como resultado 1. Un número
X elevado a la Y es igual a X multiplicado por la potencia de X a la Y-1. Un número X diferente de
cero elevado a un número negativo Y es igual a 1 sobre la potencia de X elevado a la –Y

73- Hacer una función que cuente el número de dígitos de un número entero dado.

74- Hacer una función que reciba un entero n y devuelva un valor de verdad que indique si el
número n es o no 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

75- 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
d i 1
Pi  Pi 1 *
Oi 1
Pi 1
Oi  * (0.9 * Oi 1  01
. * d i 1 )
Pi
Pi 1
d i  d i 1 *  Ratacrec
Pi
Donde Ratacrec es un valor constante igual a 100.
Haga una función que reciba el precio, la oferta y la demanda del OSCAO en un periodo inicial
(i=0), calcule el precio en un determinado periodo n.
Universidad de Pamplona 23
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

5 Estructuras de datos

Unidimensionales o vectores
Arreglos Bidimensionales o matrices
Multidimensionales
Registros
Estáticas
Registros con campos que
Combinaciones son arreglos
Estructuras de Arreglos de registros
Datos

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.

5.1 Arreglos
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.

5.1.1 Arreglos unidimensionales (vectores)


Un vector o arreglo unidimensional 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.
Universidad de Pamplona 24
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Dato que está almacenado en la


cuarta posición de la colección (vector)
Nombre de la colección de datos
Nombre del Vector
A[1]
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 234, 45,22,65, etc son datos del mismo tipo
donde se encuentra almacenado (en este caso todos son enteros), que están almacenados
un dato dentro de la colección(vector) en esta colección (vector o arreglo unidimensional),
llamada A y que tiene capacidad para almacenar n datos

76- Hacer una función que dado un vector de números enteros determine cuantos números son
positivos

77- Hacer una función que determine cuál es el menor de los datos de un vector.

78- Hacer una función que dados dos vectores del mismo tamaño retorne un vector con la suma
de los dos vectores recibidos como parámetros.

79- Hacer una función que invierta el orden de los elementos de un vector.

80- Contar cuantas veces esta un elemento en un vector.

81- Remplazar un dato por otro dentro de un vector.

82- Hacer función que dado un vector retorne un vector espejo, es decir invertir cada uno de los
números del vector de entrada en el vector de salida.
A B (espejo)
0 12345 54321
1 589 985
2 4245 5424
…. …..
n-1
83- Hacer las funciones necesarias para realizar operaciones entre conjuntos, recibiendo dos
vectores y retornando un vector con el resultado de la operación
 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
Universidad de Pamplona 25
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

84- Hacer una función que dado un vector de enteros retorne 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 como el siguiente
2 40 25 7 40 28 17 45 6 0 4 5
Los datos clasificados en el vector de primos es:
2 7 17 5
Y el vector de perfectos es
28 6

85-En la piscina de la universidad se va a realizar un campeonato. 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 el jurado calificador pero con la única salvedad que la peor y la mejor
nota no se tienen en cuenta.
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
Calificación final = (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

86- Hacer una función que intercale los elementos de dos vectores. 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

87-Se tiene el arreglo que almacena el valor de las ventas realizadas en una empresa así:
ventas
0 1 2 10 11
vene vfeb vmar . . vnov vdic
Donde se almacenan las ventas mensuales de una empresa.
Elabore las funciones necesarias para que se respondan las siguientes preguntas:
¿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?

88-Dado un vector V1 de tipo entero de tamaño n, hacer las funciones necesarias para:
Invierta el vector V1
Genere un vector V2 que será el contenido de las posiciones impares de V1 ya invertido a través
de una función.
Ejemplo:
V1
5 7 1 3 60 30
Universidad de Pamplona 26
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

0 1 2 3 4 5
V1 invertido
30 60 3 1 7 5
0 1 2 3 4 5
V2
60 1 5
0 1 2

89-Dados 2 vectores V1 y V2 de tipo entero de tamaño n y m, hacer las funciones necesarias


para que:
Genere un vector V3 que es el resultado de concatenar (Unir) V1 y V2
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
90-Realice una función que construya 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.

91- Hacer las funciones que considere necesarias para contar cuantos elementos de un vector de
números están por encima del promedio

92- Hacer una función que retorne un vector con las posiciones donde se encuentra un elemento
dado.
Por ejemplo: si el vector es x = [7, 9, 4, 7, 2, 7, 15] buscar (7, x) retornará el vector [0, 3, 5] que
corresponden a las posiciones donde se encuentra el dato 7

93- Hacer una función que retorne verdadero en caso de que un vector este ordenado
ascendentemente, de lo contrario retornará falso
Ejemplos: si el vector x=[1,3,4,6,8,9,11] el llamado estaordenado(x) retornará verdadero (True)
Universidad de Pamplona 27
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Si el vector y=[1,3,4,2,8,9,11] el llamado estaordenado(y) retornará falso (False)

94- Hacer una función que dados dos arreglos unidimensionales de números enteros
ORDENADOS, ascendentemente, retorne la lista ordenada de la mezcla de los dos. Por ejemplo,
si los dos arreglos son x=[1, 3, 6, 9, 17, 45, 60] y=[2, 4, 10, 17,19] el llamado a la función
mezclar (x , y) retornará el vector [ 1, 2, 3, 4, 6, 9, 10, 17, 17, 19, 45, 60]

5.1.2 Vectores paralelos

95-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 adicional 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.
Realizar las funciones necesarias para calcular el sueldo promedio de los empleados por grupo y
calcular el promedio general de todos, sin considerar el grupo. Y calcular cuántos empleados
cambiaron del grupo 1 al 2.

Nombre del vector de enteros Nombre del vector de enteros


que almacena las claves (códigos) que almacena el grupo
de los empleados al cual pertenece cada empleado

Nombre del vector de números


reales que almacena el sueldo actual
clave grupo sueldo de cada uno de los empleados
0 0 0

1 1 1 sueldo[0] es el sueldo actual


Subíndice del primer empleado
de cada uno 2 2 2
de los vectores
3 3 3 sueldo[2] es el sueldo actual
del tercer empleado
.. .. ..
clave[2]
código del n-1 n-1 n-1 sueldo[n-1] es el sueldo actual
tercer del último empleado
empleado
grupo[2]
grupo al que grupo[n-1]
pertenece el grupo al que
tercer pertenece el
empleado último
empleado

96- Dados dos vectores V1 y V2 de N elementos cada uno, ordenarlo de mayor a menor de forma
paralela usando a V1 como vector base
Universidad de Pamplona 28
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

97-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 matrícula así:
Zona Valor
2 500.000.oo
1 1.000.000.oo
El valor de matrícula 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 las funciones necesarias que permita
Calcular el valor de la matrícula de cada estudiante
Contar los estudiantes menores de edad, que residen en la zona Urbana y Rural

98-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 fórmula IMC = masa(kg) /
estatura2(metros). Si el índice de masa está 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 las
funciones necesarias para que permitan:
 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.

5.1.3 Arreglos Bidimensionales o Matrices

Una Matriz o arreglo bidimensional 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índices 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.
Universidad de Pamplona 29
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Subíndice que enumera las columnas de


Nombre de la colección de datos la colección de datos (matriz)
Nombre de la Matriz
Columna 2
M 0 1 2 c-1 M[0][c-1]
.....
0 3.5 2.7 22.0 41.3
1 5.4 10.2 0.5 4.3
Fila 1
2 14.3 9.9 2.2 7.0 M[1][2]

...
f-1 4.3 2.9 0.0 3.2 M[f-1][c-1]

3.5, 2.7, 5.4, 10.2, etc son datos del mismo tipo
Subíndice que enumera las filas de (en este caso todos son números reales),
la colección de datos (matriz) que están almacenados en esta colección
(matriz o arreglo bidimensional),
llamada M y que tiene capacidad para almacenar f x c datos
Es decir que la matriz tiene f filas y c columnas

99-Dada una matriz de 5x5 hacer las funciones necesarias para, 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 cada una de las filas, y de cada una de las columnas deben dar en
todas lo mismo.
100-Dadas dos matrices de NxM hacer una función que construir una tercera matriz con la suma
de las dos anteriores.

101- Hacer una función para determinar si es una matriz es 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.

102-Dadas dos matrices una de 5x3 y otra de 3x2 hacer una función para crear una tercera
matriz con la multiplicación de ambas.

103-Dada una matriz cuadrada de nxn hacer una función que intercambie los contenidos de dos
filas dados como parámetros.

104- Hacer una función que halle la transpuesta de una matriz, convirtiendo las filas en
columnas y las columnas en filas
Por ejemplo, si la matriz es:
4 7 1 3 5
2 0 6 9 7
3 1 2 6 4
Entonces la matriz transpuesta es:
4 2 3
7 0 1
1 6 2
3 9 6
5 7 4
Universidad de Pamplona 30
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

105- Considere la siguiente definición: “una matriz es rala si para cada fila y para cada columna
todos sus elementos son 0( cero) excepto uno elemento que es un 1 (uno). Haga una función que
determine si una matriz es o no rala.

106-(*) Elabore un programa que dada una matriz de nxN calcule la inversa usando el método de
Gauss-Jordan.

107- (*) 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

108-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 función que determine si una matriz es simétrica o no

109- Generar la siguiente matriz de orden NxN (N mayor que 3). El ejemplo es para matrices 5x5

110- Generar la siguiente matriz de orden NxN (N mayor que 3). El ejemplo es para matrices 5x5

111-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. Realice las funciones necesarias que permita determinar:
 Número de empleados hombres y mujeres.
 Cedula de la persona con el salario más 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.
Universidad de Pamplona 31
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Cédulas de los Columna 2: Sexo Columna 4


empleados 1=Hombre Departamento
columna 0 2=Mujer
Nombre de la Matriz Columna 3 Columna 5
Edades
Salarios Años de antigüedad
columna 1
0 1 2 3 4 5 Salario del primer
datos empleado datos[0][3]
0
1 Departamento al que
2 pertenece el segundo
3 empleado: datos[1][4]
...
n
Años de antigüedad
del ultimo empleado
Cada fila contiene los Cédula del primer Sexo del segundo datos[n][5]
datos de un empleado empleado empleado
datos[0][0] datos[1][2]
Cédula del cuarto
empleado
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)

112-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 (primera o última fila 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
1
2 *
3
4 *
5 * * *
6
Universidad de Pamplona 32
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Elabore las funciones necesarias para que a partir de una matriz dada se obtenga la matriz que
representa las posibles estrellas

113- (**) Una compañía de transportes que tiene sucursales en 20 ciudades del país, quiere
saber la distancia que recorre un conductor al ir de una ciudad a otra. Los datos referentes a las
distancias están indicados como se muestra a continuación:
0 dist0,1 dist0,2 ... dist0,19
Dist1,0 0 dist1,2 ... dist1,19
Dist2,0 dist2,1 0 ... dist2,19
… … … ... …
Dist19,0 dist19,1 dist19,2 ... 0
Dónde:
Dist (i, j) > 0 representa que hay carretera de la ciudad i a la ciudad j y la distancia existente
entre ambas ciudades.
Dist (i, j) = 0 si i diferente a j, representa que no hay carretera entre la ciudad i y la ciudad j.
Elabore las funciones necesarias que permitan dada una matriz como la descrita, calcular la
distancia que debe recorrer un conductor ir de la ciudad “a” a la ciudad “b”. Si no existe
carretera directa, entonces deberá encontrar una ciudad intermedia “c”, para hacer el recorrido
de la ciudad “a” a la ciudad “c“ y de la ciudad “c” a la cuidad “b”.

114-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
1 2 3 4 5 6 7 8
3.5 0.1 2.0 1.5 6.0 4.2 2.5 1.3
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
1 2 3 4 5 6 7 8
120 0 20 60 40 90 10 0
Elabore las funciones necesarias para:
Universidad de Pamplona 33
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

 Obtener 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 un arreglo de n elementos, con la cantidad de unidades de cada insumo,
necesaria para cumplir con los pedidos del mes.
 Obtener 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.
 Obtener el costo total (tomando en cuenta todos los insumos) para cumplir con la
producción del mes.
 Obtener 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.

115- Dada una matriz de 3x4, las filas representan los productos 0,1,2 y las columnas
representan las sucursales 0,1,2,3...de una empresa, 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.
Realizar las funciones necesarias para
Calcular un vector de 4 posiciones con el valor total vendido por sucursal
Calcular la sucursal que más dinero recaudo.
0 1 2 3 4 Vector costo de productos
0 1 2 3 5 1 10000
1 2 1 2 2 2 15000
2 3 5 5 3 4 5000

Total 55000 65000 85000 95000 60000


Vendido

116-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 25 80 0 10
Obrero 1 40 120 10 0
Obrero 2 50 125 1100 0
… .. …
Obrero m-1 40 56 40 60

Valor de la $10.000 $15.000 $9.000 … $25.000


hora por
proyecto
Definir las funciones necesarias para:
 Determinar en un vector la Cantidad total de horas trabajadas por cada uno de los
obreros.
 Determinar en un vector el valor total pagado por mano de obra de cada proyecto.
 Determinar el proyecto más costoso de la empresa.
 Indicar la cantidad promedio de horas trabajadas por todos los obreros.
Universidad de Pamplona 34
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

5.2 Registros
Los registros a diferencia de los arreglos son colecciones de datos que pueden albergar datos de
diferentes tipos. A los datos que pertenecen a dicha colección se les denominan campos y se
referencia con un nombre diferente para cada uno de los campos. Para tener acceso a cada uno
de los datos de la colección (registro) se hace uso de la notación de punto así:
nombreregistro.nombrecampo.

Nombre de la colección de
Campo código (número entero)
datos que pueden ser de diferente tipo
Nombre del registro E.codigo

E
codigo 45678 E.nombre

Campo nombre nombre Campo sexo


(cadena de caracteres) Pepito perez (caracter)

Campo edad edad 19 sexo M E.sexo


(número entero)

E.edad
estatura 1,80

Campo estatura 45678,”Pepito Perez”,19,”M”, 1,80


E.estatura
(número real) son los datos que hacen parte
de esta colección (registro) y que
frecuentemente son de diferente tipo

Otro ejemplo de registros


A es el nombre B es el nombre
del registro A.codigo del registro B.codigo
entero
entero

A B
codigo 45678 codigo 4523
A.nombre
cadena de nombre Pepito perez nombre Juanita Jaimes
caracteres

edad 19 sexo M edad 17 sexo F


A.edad
entero
nota 4.5 nota 3.7

A.nota
número real A.sexo B.nota
caracter Número real
Universidad de Pamplona 35
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Registros Anidados
Registros en los cuales uno de sus campos también es registro
A es el nombre
del registro A.codigo // En lenguaje c
entero #include<stdio.h>
struct tfecha{
int dia,mes,anio;
A };
codigo struct testudiante{
45678 int codigo;
A.nombre A.sexo char nombre[40];
cadena de nombre Pepito perez caracter int edad;
caracteres char sexo;
float nota;
edad 35 sexo M tfecha fechan;
A.edad
};
entero
int main{
nota 4.5 A.fechan.día testudiante A,B;
entero
}
A.nota
número real fechan dia 1
mes 6 A.fechan.mes
A.fechan entero
que también anio 1970
es un registro A.fechan.anio
entero

Registros con vectores


Ejemplo de registros en los cuales uno de sus campos es un vector
A es el nombre
del registro A.codigo // En lenguaje c
entero #include<stdio.h>
struct tfecha{
A int dia,mes,anio;
codigo 45678
A.nombre };
A.sexo struct testudiante{
cadena de caracteres nombre caracter
Pepito perez int codigo;
A.edad char nombre[40];
entero int edad;
edad 35 sexo M A.notas[2] char sexo;
A.nnota real int nnotas;
entero que indica nnotas 3 float notas[10];
el número de notas A.definitiva float definitiva;
que tiene el estudiante notas real tfecha fechan;
3.5 1.5 4.0 .... };
0 1 2 10
int main{
definitiva 3.0 A.fechan.día testudiante A,B;
A.notas[0] entero
real }
fechan dia 1
mes 6 A.fechan.mes
A.fechan entero
que también anio 1970
es un registro A.fechan.anio
entero

Vectores de registros
Universidad de Pamplona 36
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Un vector para el cual cada una de sus casillas almacena un registro


curso es el nombre
del vector con capacidad curso [0].codigo
para almacenar información curso [n-1].sexo
de n estudiantes curso [n-1].notas[1]
curso [1].nombre
curso
codigo 45678 codigo 345 codigo codigo
nombre Pepito Perez nombre Juanita Jaimes nombre nombre
sexo M sexo F sexo sexo
nnotas 3 nnotas 2 nnotas nnotas
notas notas notas notas
3.5 1.5 4.0 .... 3.5 4.5 .... .... ....
0 1 2 10 0 1 2 10 0 1 2 10 0 1 2 10
definitiva 3.0 definitiva 4.0 definitiva definitiva

fechan fechan fechan fechan


dia 1 dia 29 dia dia
mes 6 mes 2 mes mes
anio 1970 anio 1980 anio anio

i
0 curso[1].fechan.mes 1 ........... n-1
Subíndices del vector curso[1].definitiva curso[i].notas[2]
curso curso[1].fechan.anio

117-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 que dado un vector de coordenadas de
un polígono permita obtener el área del polígono irregular utilizando la siguiente fórmula:
Área = [(X0+X1)*(Y0-Y1 ) + (X1+X2)*(Y1-Y2)+. . .+ (Xn-1+X0)*(Yn-1-Y0)/2
Suponga que los Xi ,Yi son reales y n el número de lados del polígono.

118-La información de todos los empleados de una cierta compañía está almacenada en una
variable llamada “empresa” definida como un arreglo de registros. La información con que se
cuenta de cada empleado es: nombre, sexo y sueldo. Escriba la declaración para el registro y el
arreglo “empresa”.
Considerando las declaraciones que hizo, realice las funciones necesarias para:
 Contar cuanto hombre y cuantas mujeres hay.
 Contar los empleados que ganan más de $2,500.00
 Incrementar el sueldo a todos los empleados en un 30%

119-Realice las funciones necesarias que permitan almacenar la siguiente información para un
censo poblacional en un municipio:
Nombre de la persona (Cadena de caracteres)
Número de documento de identidad (Entero largo)
Tipo de documento („C‟ = Cédula, „T‟ = Tarjeta de Identidad)
Fecha de nacimiento (Compuesto por tres enteros uno para el día, otro para el mes y otro para el
año)
Edad (Entero que debe guardar los AÑOS cumplidos de la persona)
Universidad de Pamplona 37
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Defina una estructura (registro) para almacenar la información de cada persona censada, para
esto se utilizará un arreglo de registros del tipo definido anteriormente: Se sabe que el municipio
tiene máximo 1000 habitantes.
Realizar las funciones necesarias para.
 Calcular la edad de las personas censadas, conociendo la fecha actual
 Calcular el promedio de edad de todos los censados.
 Ordenar la información de las personas ascendentemente de acuerdo a la edad

120-En una ciudad existe una empresa administradora de Restaurantes. Para llevar un mayor
control de la información de sus ventas se desea un programa que haga uso de vectores de
registros para procesar la información de las ventas que realiza cada uno de los restaurantes.
Esta información estará almacenada en un vector como el que muestra la figura
NitRestaurante NitRestaurante
NombreAdministrador NombreAdministrador
NumMesas NumMesas
Ventassemanales: Ventassemanales:
Fechadeventa Fechadeventa Fechadeventa Fechadeventa
dia dia dia dia
mes mes mes mes
anio anio anio anio
ValorVenta ValorVenta ValorVenta ValorVenta

NumPlatosvendi NumPlatosvendi NumPlatosvendi NumPlatosvendi

0 1 ….. 6 0 1 ….. 6
TotalVentasdelaSemana TotalVentasdelaSemana

0 1 … N-1
Hacer las funciones necesarias que permitan almacenar la información de los n Restaurantes que
administra la empresa y las ventas que realizan en una semana cada uno de ellos. Realice las
siguientes funciones:
 Una función que dado un número de Nit retorne la totalidad de platos vendidos en la
semana por dicho restaurante.
 Una función que calcule el valor total de las ventas de la semana de cada restaurante y
almacene este valor en el campo TotalVentasdelaSemana dentro de cada registro del vector
de registros.
 Una función que retornar el promedio total de ventas de todos los restaurantes que
administra la empresa.
 Una función que retorne la posición (en el vector de registros) del restaurante que menos
dinero recolectó por ventas durante la semana.

121-Dada la información de N estudiantes:


Código del estudiante
Nombre del estudiante
Sexo del alumno (1 = Masculino, 2 = Femenino)
Código de la carrera a la cual pertenece
Donde la carrera se da en la siguiente tabla:
1 Ingeniería Sistema
2 Ingeniería Mecánica
3 Ingeniería Electrónica
Cada estudiante cursa 5 materias, por cada materia se da la siguiente información:
Universidad de Pamplona 38
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Código de la materia
Nombre de la materia
Código del profesor de la materia
Definitiva de la materia
Realice las funciones necesarias que permitan lo siguiente:
 Una función que calcule y retorne el código de la carrera que tiene más cantidad de
hombres
 Una función que calcule y retorne cual es el estudiante con mejor promedio
 Una función que calcule y retorne código de la carrera con mejor promedio

Estudiante

Código del Nombre del Sexo Código de la Materias[5]


estudiante estudiante carrera

Código de la Nombre de la Código del Definitiva de


materia materia profesor la materia

122- En un parqueadero de la ciudad de Pamplona que atiende solo en horario diurno (en las
noches el parqueadero queda desocupado), se cobra la tarifa por minutos de la siguiente manera,
si el auto permanece cierto número de horas más 10 minutos no se le cobra los minutos
excedidos de las horas enteras. Si la placa (número de tres dígitos) del auto termina en número
par, tiene un descuento de 20% sobre el total de valor. Todo auto paga un incremento del 16% de
IVA sobre el valor a pagar. Si los dos últimos dígitos de la placa del vehículo coinciden con los dos
últimos dígitos de la cedula del conductor, se realiza un descuento adicional del 25%.
La información sobre los conductores y los vehículos se debe almacenar en un vector de registros
de la siguiente forma
Clientes
Cedula Cedula Cedula
Nombre Nombre Nombre
Placa Placa Placa
Entrada Entrada Entrada
Hora Hora Hora
Minuto Minuto Minuto
Salida Salida Salida
Hora Hora Hora
Minuto Minuto Minuto

Valor Valor Valor

0 1 2 ….. 499
Universidad de Pamplona 39
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------

Defina las estructuras de datos necesarias para representar la información como se describe en
el gráfico.
Realizar las siguientes funciones:
 Una función que dado un número de placa, retorne la posición dentro del vector donde se
encuentra registrado dicho vehículo.
 Una función que registre la salida de un auto. Registre la hora y minutos de salida,
Calcule el total a pagar (incluyendo descuentos e iva) por parte de un cliente dando dentro
de los parámetros la posición donde se encuentra ubicado el registro respectivo, y el valor
del minuto. Dentro de esta misma función se debe registrar este valor en el respectivo
campo.
 Una función que calcule y retorne el total recaudado por el parqueadero en un día.

S-ar putea să vă placă și