Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programación Estructurada
Adquirir habilidad en la solución de problemas por medio del computador, mediante el desarrollo
del pensamiento algorítmico.
2. Estructuras de Control
2.1 De selección
2.2 De repetición
2.2.1 Estructura Para
2.2.2 Estructura Mientras que
2.2.3 Estructura hacer mientras
3. Estructuras de datos
3.1 Otro lenguaje de programación
3.1 Arreglos
3.1.1 Vectores
3.1.2 Matrices
3.2 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.2.1 Estructuras repetitivas “Para” ....................................................................................................... 16
3.2.2 Estructuras repetitivas “Mientras que” ......................................................................................... 19
3.2.3 Estructuras repetitivas “Hacer Mientas” ....................................................................................... 22
3.3 EJERCICIOS MISCELÁNEOS ................................................................................................................... 22
4 RECURSIVIDAD ................................................................................................................... 24
1 Introducción a la programación
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 pierden 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 variab les 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 regencia 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------------
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 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 Cortos
Enteros Enteros Propiamente dichos
Numéricos Enteros Largos
Reales
Tipos de datos
Caracteres
Alfanuméricos
Cadenas de Caracteres (String)
Boolenos
Suma +
Resta –
División real /
Aritméticos Multiplicación *
División entera div
Residuo de división entera mod
Mayor >
Relacionales Menor <
Mayor o igual
Menor o Igual
Igual = =
Diferente
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
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
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
Universidad de Pamplona 9
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
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 2 x 1
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
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
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 2 bx c 0 , sabiendo que X
2.a
Ejemplo: para la ecuación x 5x 24 0 en donde a=1, b=5 y c=-24, frente al llamado
2
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
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
no si
Condición
15- Calcular el valor absoluto de un número real, sin usar funciones predefinidas del lenguaje.
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 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 del contador al inicio de
mes y al final del mes, en metros cúbicos, calcule el valor de la factura.
22-Calcular el valor de la cuota mensual y el número de cuotas a pagar (mediante dos funciones
separadas), 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 en 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
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 estos, 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
De 1 a 5 minutos 300 pesos por minuto
Universidad de Pamplona 13
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
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 „/ ‟)
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
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%
..... Instrucciones a
repetir
fin para
Mientra
s que
MQ condición haga
no
Condición
..... Instrucciones a
si repetir
fin MQ
Hacer
Mientra
s Hacer
..... Instrucciones a
repetir
MQ condición
Universidad de Pamplona 16
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
si
Condición
no
0 si n 0
35- Hacer la función Factorial. n!
1x 2 x3x 4....n si n 0
0 si x 0 y y0
1 si x 0 y y0
y 1
36-Cree la función Potencia x x( x )
y
si y0
1 y si y0
x
no definido si x 0 y y0
Universidad de Pamplona 17
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
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”.
k 0 ( 2 k )!
x2 x3 x4 xi
Para el exponencial e x 1 x .... Utilizando notación de sumatoria e x 1
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 ex,
utilizando las series de Taylor descritas anteriormente.
( 1)
k 1
k
( k 1)!
42-Se dice que un número N es número perfecto si la suma de sus divisores propios es igual a él
mismo.
Universidad de Pamplona 18
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
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.
43- 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
44- 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
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
45-Dado un número determinar si es primo. Sabiendo que un número es primo si tiene hasta dos
divisores (1 y él mismo)
46-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.
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.
48-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
En una estructura repetitiva Mientras Que (MQ), hay que tener en cuenta:
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
49- 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
Universidad de Pamplona 20
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
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
51-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.
52- 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 de l 0.25% y si es
superior a un millón, se liquidará 0.3%.
53-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!)
55-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.
56- (*) 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:
Universidad de Pamplona 21
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
x
ri
ri
ri 1
2
Universidad de Pamplona 22
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
Expresión booleana
que se evaluará y determina
si se sigue o no repitiendo
las instrucciones
si
Conjunto de instrucciones que
Condición
se repetirán
no
Terminación del proceso
de repetición del conjunto de
instrucciones
57-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.
59-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
palíndromo.
k3 kk
b
61-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
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.
62-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.
63-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
64-Hacer una función que calcule la siguiente sumatoria s Por ejemplo: Para a=3 y
ia i 4
65-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
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
67-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
4 Recursividad
69- Haga una función recursiva de tal manera que calcule el factorial de un número entero dado,
1 si n0
de acuerdo a las siguientes reglas: n!
n( n 1)! si n0
70- 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.
72-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)
Universidad de Pamplona 25
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
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.
73- 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
74- Hacer una función que cuente el número de dígitos de un número entero dado.
75- 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
Universidad de Pamplona 26
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
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.
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 28
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 por teclado 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
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 29
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
1. (Valor 2 Puntos) Hacer las funciones que considere necesarias para contar cuantos
elementos de un vector de números están por encima del promedio
2. (Valor 2 Puntos) 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
3. (Valor 2 Puntos) 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 30
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
4. (Valor 2 Puntos) 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
91-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.
92- 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
93-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])
Universidad de Pamplona 31
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
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 32
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
...
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
95-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.
96-Dadas dos matrices de NxM hacer una función que construir una tercera matriz con la suma
de las dos anteriores.
97- 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.
98-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.
99-Dada una matriz cuadrada de nxn hacer una función que intercambie los contenidos de dos
filas dados como parámetros.
100- 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
Universidad de Pamplona 33
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
3 9 6
5 7 4
101- 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.
102-(*) Elabore un programa que dada una matriz de nxN calcule la inversa usando el método de
Gauss-Jordan.
103- (*) 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
104-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
105- Generar la siguiente matriz de orden NxN (N mayor que 3). El ejemplo es para matrices 5x5
106- Generar la siguiente matriz de orden NxN (N mayor que 3). El ejemplo es para matrices 5x5
107-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 34
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
108-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 35
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
109- (**) 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”.
110-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 36
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
111- 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.
112-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
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
E.edad
estatura 1,80
A B
codigo 45678 codigo 4523
A.nombre
cadena de nombre Pepito perez nombre Juanita Jaimes
caracteres
A.nota
número real A.sexo B.nota
caracter Número real
Registros Anidados
Universidad de Pamplona 39
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
Vectores de registros
Un vector para el cual cada una de sus casillas almacena un registro
Universidad de Pamplona 40
Guía del Estudiante
Programación Estructurada
-----------------------------------------------------------------------------------------------------------------2020------------
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
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
113-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.
114-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%
115-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 41
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
116-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
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.
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
118- 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
0 1 2 ….. 499
Universidad de Pamplona 43
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 respe ctivo, 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.