Sunteți pe pagina 1din 20

Guía de Clases Prácticas

Algoritmos

Managua, Nicaragua

Mayo 2019
INTRODUCCION A PROGRAMACION

CLASES PRÁCTICAS

PRACTICA NO 1: CONCEPTOS BÁSICOS ( 20/05/2019)


1.1. ¿Cuál de los siguientes datos son válidos para procesar por una computadora?
3.141592 2.234E2 12.5E.3

0.0014 12E +6 123E4

12345.0 1.1E-3 5A4.14

15.E-04 -15E-0.4 A1.E04

1.2. (D.M. Etter) Decir si los siguientes pares de literales reales representan el mismo
número. Si no, explicar por qué
2300.0;2.3e+04 0.000007;0.7e+04

1.0;1.00 110.0;11.01e+01

-34.7;-0.34e+02 -0.76; 7,60e-01

1.3. ¿Cuáles de los siguientes identificadores de variables son válidos en un programa ?


Renta Dos Pulgadas 4A2D2

#Alquiler C3P0 13Nombre

Constante Bienvenido#5 Nombre Apellidos

Nombre-Apellidos Nombre_Apellidos Var 1

Var_1 Sumar Numeros Sumar-Numeros

Tom's elemento SumarNumeros

area perímetro perimetro

density densidad longitud

length pay-rate temp-a

g(t) 2time time2

abs

1.4. Si a=6, b=2 y c = 3, determinar el resultado de las siguientes expresiones aritméticas:

a -b +c a * b mod c
a * b div c a + b mod c

a div b + c a div b div c

1.5. Determinar el resultado de las siguientes expresiones lógicas:

(7>=5) AND (27 = 8) ((4+2) < 8) AND ((24 +1 ) = 25) OR FALSE

(45 <= 7) OR (NOT (5 >= 7)) ((2*7) > 5) OR (NOT ((7 DIV 2) = 3) AND
(7 > 25)) AND TRUE

(8 > 8) OR (7 = 7) AND (NOT (5 <5))

1.6. Determinar si las siguientes expresiones lógicas son ciertas o falsas, suponiendo que
las variables que contienen almacenan los siguientes valores:
a = 5.5 b = 1.5 i = -3 hecho = false

a < 10.0 (a + b ) > = 6.5

i <> 0 (b -1.0) > a

not (a < (3.0 * b)) -i <= (i +6)

(a<10.0) and (a > 5.0) (abs(i) > 3) or hecho

1.7. Convertir las siguientes ecuaciones en sentencias de asignación.


1.7.1. Pendiente de una línea entre dos puntos

y2-y1
pendiente =
x2-x1

1.7.2. Factor de corrección en el cálculo de la presión:

b c
factor = 1+ +
v v2

1.7.3. Coeficiente de fricción


v2
fricción =
30s

1.7.4. Distancia del centro de gravedad desde un plano de referencia, en un sector


cilíndrico:

38.1972(r3 - s3) sen (a)


centro =
(r2 - s2) a

1.7.5. Pérdida de presión de la fricción en una tubería:

l v2
perdida = f  p  
d 2

1.7.6. Resistencia equivalente de un circuito paralelo


1

req = 1 1 1 1
+ + +
x1 x2 x3 x4

1.8. Convertir la siguientes sentencias de asignación, a su forma algebraica


1.8.1. movto := sqrt(vi*vi + 2.0*a*x)
1.8.2. freq := 1.0/sqrt((2.0*3.141593)*(1.0/xl*c))
1.8.3. rango := 2.0*vi*vi*sin(b)*cos(b)/g
1.8.4. long := li*sqrt(1.0 - (v/c)*(v/c))
1.8.5. c:= 2.99e10;
energia := 1.6747e-24*c*c;

1.8.6. pi:=3.141593
volumen := 2.0*pi*x*x*((1.0 - pi/4.0)*y - (0.8333 -pi/4.0)*x)

1.8.7.

1.9. ¿Qué valor almacenan las variables a y b después de la ejecución de las siguientes
sentencias?
a := 5;

b := a + 6;

a := a + 1;

b := a -5;
1.10. ¿Qué valor almacenan las variables a, b y c después de la ejecución de las
siguientes sentencias?
a := 3;

b := 20;

c := a + b;

b := a + b;

a := b;

1.11. ¿Qué valor almacenan las variables a y b después de la ejecución de las


siguientes sentencias?
a:= 10;

b := 5;

a := b;

b := a;

1.12. Escribir un algoritmo en pseudocodigoque intercambie los valores de tres


variables, a, b y c, de la siguiente manera:
b toma el valor de a

c toma el valor de b

a toma el valor de c

1.13. Deducir los valores finales de las variables en el siguiente programa, tras su
ejecución
Program ejercicio_2_11;

var

x,y,z:integer;

begin

x := 15;

y := 30;

z := y -x

end.

1.14. Determinar el valor de la variable VALOR después de la ejecución de cada uno


de los siguientes grupos de operaciones
1.14.1. VALOR := 4.0 * 5
1.14.2. x := 3.0;
y := 2.0;

VALOR := x * y - y;

1.14.3. VALOR:= 5;
x := 3;
VALOR := VALOR * x;

1.15. Determinar los valores de a, b, c y d después de la ejecución del siguiente


programa:
Program ejercicio_2_13;

var

a,b,c,d: integer;

begin

a := 1; b:=4;

c := a + b;

d := a - b;

a := c + 2 * b;

b := c + b;

c := a * b;

d := b + d;

a := d + c;

end.

1.16. Escribir un programa que calcule y escriba en pantalla el cuadrado de 821.

1.17. Escribir diferentes métodos para determinar si una variable o expresión


numérica es par.
Practica No 2 : Esturas de Entrada/Salida – LECTURA/ESCRITURA ( 20/05/2019)

1.18. Escribir un algoritmo que lea un valor entero, lo doble, se multiplique por 25 y
visualice el resultado
1.19. Diseñar un algoritmo que lea cuatro variables y calcule y visualice su producto,
su suma y su media aritmética.
1.20. Diseñar un programa que lea el peso de una persona en libras y devuelva el peso
en kilogramos y gramos (una libra = 0.453592 kilogramos).
PRACTICA NO 3: Esturas Condicionales – 1) Si…entonces 2) Si… entonces… sino…
(22/05/2019)

1.21. Escribir un algoritmo en pseudocodigoque permita leer 5 valores numéricos


enteros A, B, C, D, E y decir si su media es mayor o igual a 10.
1.22. Escribir un algoritmo en pseudocodigoque permita leer 3 valores numéricos
reales A, B, C, y decir si su media es mayor o igual a 10.
1.23. Escribir un programa que permita leer un carácter y deducir si está situado antes
o depués de la letra 'm' en orden alfabético.
1.24. Escribir un programa que permita leer dos caracteres y determinar si están en
orden alfabético.
1.25. Escribir un programa que permita leer un carácter y deducir si se encuentra ente
las letras 'I' y 'M'.
1.26. Escribir un programa que permita emitir una factura correspondiente a una
compra de un artículo determinado, del que se adquieren una o más unidades. El IVA a
aplicar es del 16%. Si el precio total es mayor de 300 € , se aplicará un descuento del
5%.
1.27. Realizar el mismo programa del ejercicio anterior, pero preguntando al usuario
si desea obtener el precio en pesetas y, en caso afirmativo, mostrar el precio de la
operación en pesetas y euros.
1.28. Un capital C está situado a un tipo de interés R. Escribir un programa que
permita deducir si el capital se doblará al término de dos años. La fórmula de interés
compuesto es :
CF = C(1 + R)2.
PRACTICA NO 4: ESTRUCTURAS ANIDADOS / ESTRUCTURAS CONDICIONALES
MÚLTIPLES (27/05/2019)
1.29. Realizar un programa tal que, dados tres números enteros, deduzca cuál es el
central
1.30. Realizar un programa que determine si un año dado es o no bisiesto.
1.31. Calcular la raíz cuadrada de un número y escribir su resultado. Asegurar que no haya
error en la operación.
1.32. Escribir un algoritmo en pseudocodigoque permita leer 3 valores numéricos reales a, b,
c, coeficientes de una ecuación de segundo grado, y escribir en pantalla las soluciones
reales X1 y X2. Si la operación dentro de la raíz diera como resultado un valor
negativo, imprimir un mensaje en pantalla que diga “Las soluciones son dos números
complejos”.
1.33. Escribir un algoritmo en pseudocodigoque proceda igual que en el ejercicio anterior,
pero ahora, si la operación dentro de la raíz diera como resultado un valor negativo,
imprimir el resultado como “m + n i; m - n i ”. Por ejemplo, si las soluciones fueran,
X1= -3+SQRT(-5) y X2= -3 –SQRT(-5), la salida del programa sería “-3 + sqrt(5)i; -3
– sqrt(5)i”.
1.34. Determinar el precio de un billete de ida y vuelta en ferrocarril, conociendo la distancia
a recorrer y sabiendo que si el número de días de estancia es superior a siete y la
distancia superior a 800 kilómetros, el billete tiene una reducción del 30%. El precio
por kilómetro es de 0.15 €.
1.35. Realizar el mismo programa del ejercicio anterior, pero preguntando al usuario si desea
obtener el precio en pesetas y, en caso afirmativo, mostrar el precio de la operación en
pesetas y euros.
1.36. Hacer un algoritmo en pseudocodigoque permita leer un número entero de 1 a 7 e
imprima en pantalla el correspondiente día de la semana ( Ej: 1  Lunes; 2 
Martes; ...). Si se introduce un valor que no esté comprendido entre 1 y 7 deberá
imprimir un mensaje que diga “ERROR ... valor fuera de rango”.
1.37. Hacer un programa que permita leer dos números reales y el símbolo de una operación
(‘+’, ‘-‘,’*’ ó ‘/’) y devuelva el correspondiente resultado. Si el símbolo no es correcto,
deberá imprimir un mensaje que indique “Error en símbolo”
1.38. Diseñar un programa con el que, a partir de una fecha introducida por teclado con el
formato DÍA, MES, AÑO, se obtenga la fecha del día siguiente.

Practica No 5: Estructuras repetitivas – Ciclos (27-29/05/2019)

1.39. Realizar un programa que calcule la suma de los enteros entre 1 y 10, es decir 1
+ 2 + ... + 10.
1.40. Construir un programa que calcule independientemente la suma de los números
pares e impares comprendidos entre 1 y 200.
1.41. Se desea leer desde teclado una serie de números hasta que
 aparezca alguno menor que 1000.
 aparezca alguno en el intervalo [100, 1000]
 aparezca alguno en el intervalo [100, 1000], o que sea negativo
Construir un programa para cada uno de estos casos.

1.42. Construir un programa que permita leer una serie de números enteros positivos
distintos de 0 (el último número de la serie debe ser el -99) y obtener el máximo.
1.43. Calcular y visualizar la suma y el producto de los números pares comprendidos
entre 20 y 40, ambos inclusive.
1.44. Realizar un programa que calcule y visualice las potencias de 2 entre 0 y 10.
1.45. Leer 500 números enteros y obtener cuántos son positivos.
1.46. Calcular la suma de los cuadrados de los 100 primeros números naturales.
1.47. Sumar los números pares del 2 al 100 e imprimir su valor.
1.48. Sumar 10 números introducidos por teclado
1.49. Calcular la media de 50 números introducidos por teclado y visualizar el
resultado
1.50. Visualizar los múltiplos de 4 comprendidos entre 4 y N, donde N es un número
introducido por teclado.
1.51. Dados 10 números enteros introducidos por teclado, visualizar la suma de los
números pares, calcular cuántos números pares existen y calcular su media
aritmética.
1.52. Se desea realizar una estadística de los pesos de los alumnos de un colegio de
acuerdo a la siguiente tabla:
 Alumnos de menos de 40 kg.
 Alumnos entre 40 y 50 kg.
 Alumnos de más de 50 y menos de 60 kg.
 Alumnos con un peso igual o mayor de 60 kg.
Escribir un programa que lea el peso de un conjunto de alumnos y visualice esta
estadística.

1.53. Escribir tres programas (usando los bucles for, while y repeat) que permitan
realizar la suma de T números introducidos por teclado.
1.54. Calcular la nota media por alumno de una clase de N alumnos. Cada alumno
podrá tener un número M de notas.
1.55. Escribir un algoritmo en pseudocodigopara leer una lista de 10 valores enteros y
cuya salida sea la siguiente:
 La suma de los valores positivos.
 El producto de los valores negativos (Ignorar los valores nulos).
1.56. Escribir un algoritmo en pseudocodigoque lea 5 grupos de cuatro valores cada
uno y que, para cada grupo, calcule la media y la escriba en pantalla.
1.57. Escribir un algoritmo en pseudocodigoque lea N grupos de cuatro valores cada
uno y que, para cada grupo, calcule la media y la escriba en pantalla. El proceso
finaliza al encontrarse un grupo cuyo primer valor es 0.
1.58. Escribir un algoritmo en pseudocodigoque lea dos números enteros positivos y
calcular el producto de los mismos por sumas sucesivas.
1.59. Escribir un algoritmo en pseudocodigocuya entrada sea una lista de números
positivos que finaliza en 0 y la salida consista en imprimir el valor mínimo de la
lista.
1.60. Escribir un algoritmo en pseudocodigocuya entrada sea una lista de números
positivos que finaliza en 0 y la salida consista en imprimir el valor máximo de
la lista.
1.61. Escribir un algoritmo en pseudocodigoque proceda a la vez como los del
ejercicio 5) y 6) y que imprima, además, la ubicación del máximo dentro de la
lista. (Suponer un único máximo).
1.62. Escribir un algoritmo en pseudocodigocuya entrada sean 4 grupos de N valores
enteros cada uno, donde N se determine al comienzo de cada grupo, y cuya
salida consista en imprimir el valor máximo de cada grupo. (Suponer un único
máximo ).
1.63. Dada una lista de valores numéricos positivos, finalizada en 0, realizar un
algoritmo en pseudocodigopara indicar si está ordenada en forma ascendente.
1.64. Se considera la serie definida por: a1 = 0, a2 = 1, an = 3 * an-1+2 * an-2 (para n>=3).
Se desea obtener el valor y el rango del primer término que sea mayor o igual
que 1000.
1.65. Escribir un programa que permita calcular xn, donde:
 x puede ser cualquier real distinto de 0
 n puede ser cualquier entero (positivo, negatio o nulo).

1.66. Escribir un programa que determine si un número leído por teclado es primo.
1.67. Escribir un programa que encuentre los n primeros números primos.
1.68. Esribir un programa que muestre en pantalla la representación en sistema
binario de un número entero decimal
 código de vendedor: 3 dígitos
 importe de ventas del mes: real
Escribir un algoritmo en pseudocodigoque calcule el importe máximo de ventas del mes
y cuántos vendedores alcanzaron dicho importe.

1.69. Una empresa contiene la siguiente información de un mes de ventas, para cada
uno de sus 20 vendedores:
 código de vendedor: 3 dígitos
 importe de ventas del mes: real
Escribir un algoritmo en pseudocodigoque calcule el importe máximo de ventas del mes
y cuántos vendedores alcanzaron dicho importe.

1.70. En una Central Telefónica se procesan los llamados realizados en la siguiente


forma:
Por cada llamada se registra:
 código de llamada : 3 dígitos (0 al finalizar el proceso)
 tipo de día : “1” hábil, “2” festivo
 duración de la llamada : entero > 0.
Siendo los importes

Primeros 3’ Minuto Adicional

Días hábiles 10 2

Días festivos 15 3

Escribir un algoritmo en pseudocodigoque permita introducir la información sobre un


conjunto indefinido de llamadas (finalizando el proceso cuando el código de llamada
sea 0) y que imprima por pantalla:

a) El importe a abonar por cada llamada (código - importe).


b) La cantidad de llamadas que superen los 3’

c) El % de llamados que superan los 3’ (sobre el total de llamadas informadas).

1.71. Escribir un algoritmo en pseudocodigopara leer 30 valores enteros


(comprendidos entre 5 y 40), que representan la temperatura máxima de cada uno de
los días de un mes. Se pide hallar e informar sobre:
 La temperatura máxima del mes y el día que se produjo. (Se supone única)
 Cuántos días la temperatura supero los 25º C.
 El promedio de las temperaturas máxima del mes.

1.72. Escribir un algoritmo en pseudocodigopara leer los resultados de la evaluación


de un curso de Programación, de manera que por cada alumno se registre:
número de matricula : 4 dígitos (1-9999)
asistencia : 1, presentado; 0, no presentado
calificación : 2 dígitos (0-10).
A partir de esta información se debe calcular e informar:
a) Cantidad y % de alumnos presentes.
b) Media de calificaciones de alumnos presentados.
c) % de alumnos aprobados (sobre el total de alumnos presentados).
d) Numero de matricula del alumno de mayor calificación. (Si hay varios alumnos
con esa calificación: numero de matricula y cantidad de alumnos en esa situación).
1.73. Escribir un programa que reciba una fecha por teclado, en el formato dd, mm,
aaaa, así como el día de la semana que fue el primero de enero de dicho año, y
muestre por pantalla el día de la semana que corresponde a la fecha que le
hemos dado. En su resolución deben considerarse los años bisiestos.

Practica No 6- Datos Estructurados – Arreglos Unidimensionales: 3/06/2019

Determinar los valores de los vectores N y M después de la ejecución de las instrucciones


siguientes:
var M,N: array [1..3} of integer;

1. M[1] := 1;
2. M[2] := 2;
3. M[3] := 3;
4. N[1] := M[1] + M[2];
5. N[2] := M[1] - M[3];
6. N[3] := M[2] + M[3];
7. M[2] := 2*N[1] - N[2];
8. M[1] := M[2] - M[1];

1.74. Leer un vector V.y mostrar su contenido.


1.75. Escribir un programa que permita calcular el cuadrado de los 100 primeros
números enteros y, a continuación, escriba una tabla que contenga dichos
cuadrados.
1.76. Escribir un programa que pida 100 números enteros cualesquiera y, a
continuación, escriba una tabla que contenga los cuadrados de los números
introducidos.
1.77. Se tienen N temperaturas almacenadas en un array. Se desea calcular su media y
obrener el número de temperaturas mayores o iguales que la media.
1.78. Calcular la suma de todos los elementos de un vector de 100 elementos, así
como su media aritmética.
1.79. Calcular el número de elementos negativos, positivos y nulos de un vector de N
elementos.
1.80. Diseñar un algoritmo que calcule el mayor valor de una lista L de N elementos.
1.81. Dada un a lista L de N elementos, diseñar un algoritmo que calcule de forma
independiente la suma de los números pares y la suma de los impares.
1.82. Rellenar un vector A de N elementos consecutivos de forma que cada elemento
cumpla que A[i] = i.
1.83. Hacer diferentes listados de una lista de 10 números según el siguiente criterio
si un número está en el intervalo [0, 50), ponerlo en la lista 1

si un número está en el intervalo [50, 100), ponerlo en la lista 2

si un número está en el intervalo [100, 150), ponerlo en la lista 3

1.84. Escribir un programa para introducir una serie de números desde el teclado.
Utilizar un valor centinela (-1E5) para terminar la serie. El programa deberá
almacenar en un array los valores introducidos y, en otro array, la desviación de
la media de cada uno de los valores introducidos. Deberá de visualizar también
la suma, la media de los valores y todos los valores junto con su desviación.
1.85. Dado un vector de 15 valores, hacer un programa que pueda obtener, y sacar por
pantalla
 el mayor de los valores
 el menor de los valores
 el más próximo a la media

Suponiendo que los valores del problema anterior fueran mediciones, modificarlo de
forma tal que sin uso de vectores auxiliares, se pueda calcular la desviación media y la
desviación estándar
n n

 Xj  X (X  X )
j 1
j
2

j 1
MD  S
N N

Donde Xj, es cada uno de los valores X es la media de los valores, y N la cantidad
de valores.
1.86. Escribir un algoritmo en pseudocodigoque lea una palabra carácter a carácter. El
último carácter que se introduce es la barra de dividir (‘/’), que indica que la
palabra ha finalizado. Escribir un programa que imprima la palabra en el orden
en que se introdujo y en sentido inverso (por ejemplo: ‘pera’ ‘arep’). La
palabra podrá tener hasta 20 caracteres.
1.87. Escribir un algoritmo en pseudocodigoque visualice los elementos de un vector
en el orden inverso en que fueron introducidos.
1.88. Escribir un algoritmo en pseudocodigoque permita obtener un vector V2 como
el resultado de invertir el orden de los elementos de otro vector V1.
1.89. Escribir un algoritmo en pseudocodigoque permita invertir el contenido de un
vector, sin necesidad de usar un vector auxiliar. Por ejemplo:
Vector original: 28 35 12 43 56 77
Vector invertido: 77 56 43 12 35 28
1.90. Escribir un algoritmo en pseudocodigoque permita realizar la suma y el
producto de dos vectores.
 El usuario puede elegir el tamaño del vector (entre 2 y 10 valores)
 El usuario elige la operación a realizar.
1.91. Disponemos de un array unidimensional de MaxLista elementos de tipo entero.
Se desea diseñar un programa que lea los elementos del array y los inserte de forma
que todos los elementos del array permanezcan ordenados.
1.92. Disponemos de un array unidimensional de MaxLista elementos de tipo entero.
Se desea diseñar un programa que elimine un elemento del array situado en una
posición determinada, conservando el array en el mismo orden.
1.93. Dado un vector de 20 posiciones (números enteros), escribir un algoritmo en
pseudocodigoque muestre 3 opciones al usuario:
 Si el usuario introduce el carácter ‘1’, se deberá Introducir un elemento en el
final de la cola (primera posición libre del vector), comprobando antes que
existe una posición libre, sino mostrar un mensaje de aviso.
 Si el usuario introduce el carácter ‘2’, se deberá Sacar el elemento que se
encuentra en la primera posición (si hay, sino mostrar un mensaje de aviso),
desplazando luego los demás en la cola una posición hacia la izquierda.
 Si el usuario introduce el carácter ‘3’, se deberá Listar el contenido de la cola
del primero al último.

1.94. Dado un vector de 20 posiciones (números enteros), generar un algoritmo en


pseudocodigocon un funcionamiento similar al anterior, pero con las siguientes
operaciones:
 Introducir un elemento en la última posición de la pila (primera posición libre
del vector). Comprobando antes que existe una posición libre, sino mostrar un
mensaje de aviso.
 Sacar el elemento que se encuentra en la última posición (si hay, sino mostrar un
mensaje de aviso).
 Listar el contenido de la pila del primero al último.

1.95. Dado un vector de 20 posiciones (números enteros) generar un algoritmo en


pseudocodigocon un funcionamiento similar al anterior, pero con las siguientes
operaciones:

o Introducir un elemento en la posición que le corresponda de la lista, de manera


que la misma se mantenga en orden creciente. (para lo cual desplaza los demás
elementos una posición hacia la derecha). Comprobando antes que existe una
posición libre, sino colocar un mensaje de aviso.
o Sacar de la lista el elemento que indica el usuario (si se encuentra, sino colocar
un mensaje de aviso).
o Listar en cualquier momento el contenido de la cola del primero al último.
Practica No 7.- Datos Estructurados - Arreglos Biidimensionales: 3/06/2019

1.96. Rellenar una matriz identidad de 4 x 4 elementos.


1.97. Escribir el código que permita escribir el contenido de una tabla de dos
dimensiones.
1.98. Leer y escribir una matriz de 3 x 3.
1.99. Escribir un programa que permita obtener el mayor valor almacenado en una
tabla de dos dimensiones.
1.100. Escribir un programa que permita obtener la suma de todos los valores
almacenados en una tabla de dos dimensiones.
1.101. Escribir un programa que permita sumar el número de elementos positivos y el
de negativos de una tabla de n filas x m columnas.
1.102. Supongamos que existen N ciudades en la red ferroviaria de un país, y que sus
nombres están almacenados en un vector llamado CIUDAD. Diseñar un
programa que permita visualizar, dado el nombre de una ciudad, los nombres de
las ciudades con lo que está enlazada.
1.103. Determinar si una matriz de tres filas y tres columnas es un cuadrado mágico.
Se considera un cuadrado mágico aquél en el cual las filas, columnas y
diagonales suman lo mismo.
1.104. Generar y visualizar la matriz traspuesta de una matriz de n filas x m columnas.
1.105. Diseñar un programa con el que, dadas dos matrices, se pueda comprobar si son
idénticas.
1.106. Diseñar un programa que obtenga la matriz suma de dos matrices.
1.107. Diseñar un programa que obtenga la matriz producto de dos matrices.
1.108. Una matriz A de m filas y n columnas es simétrica si
 m =n, y
 Ai,j = Aj,i, para 1 < i < m y 1 < j < n
Escribir un programa que determine si una matriz m x n es simétrica.

1.109. Una empresa de venta de productos por correo desea realizar una estadística de
las ventas realizadas de cada uno de los productos a lo largo del año. Distribuye un
total de 100 productos. Se desea conocer:
 El total de ventas de cada uno de los productos
 El total de ventas de cada mes
 El producto más vendido en cada mes
 El nombre, el mes y la cantidad del producto más vendido.
Como resultado final, se desea realizar un listado con el siguiente formato:

Producto Enero Febrero Diciembre Total


Producto

Producto1

Producto2

Producto100
Total Mes

Producto
más vendido

Nombre del producto y mes del producto más vendido en cualquier


mes

1.110. Una fábrica de muebles tiene 16 representantes que viajan por todo el estado
ofreciendo sus productos. Para teras administrativas el estado está dividido en cinco
zonas: Norte, Sur, Este, Oeste y Centro. Mensualmente almacena sus datos y obtiene
distintas estadísticas sobre el comportamiento de sus representantes en cada zona. Se
desea hacer un programa que lea los datos de todos los representantes con sus ventas
en cada zona y calcule el total de ventas de una zona introducida por teclado, el total de
ventas de un vendedor introducido por teclado en cada una de las zonas y el total de
ventas de un día y para cada uno de los vendedores.
1.111. Diseñar un programa para triangular una matriz cuadrada y calcular su
deteminante. En las matrices cuadradas el valor del determinante coincide con el
producto de los elementos de la diagonal de la matriz cuadrada, multiplicando por -1
tantas veces como hayamos intercambiado filas al triangular la matriz.
Practica No 8.- Funciones – 5/06/2019

1. Realizar una función que permita obtener el término n-ésimo de la serie de Fibonacci.
Cada término de la serie de Fibonacci se define como la suma de los dos anteriores
términos, para n> 1 y 1 para n = 1.

2. Implementar una función que permita devolver un valor entero, leído desde teclado,
comprendido entre dos límites que introduciremos como parámetro.

3. Diseñar una función que permita obtener el valor absoluto de un número.

4. Diseñar una función que permita obtener el factorial de un número entero positivo.

5. Diseñar una función que permita obtener el máximo común divisor de dos números
mediante el algoritmo de Euclides.

6. Realizar una función que determine si una fecha es válida.

7. Implementar una función que permita hallar xy donde x es un número real e y un


número entero.

8. Diseñar una función que permita calcular el número de combinaciones de m elementos


tomados de n en n.
9. Implementar una función que devuelva un número real a redondeado a b decimales.

10. Diseñar una función que informe si una cadena es un palíndromo, es decir, si se lee
igual de izquierda a derecha que de derecha a izquierda

11. Implementar una función que convierta una cadena en mayúsculas y otra que convierta
una cadena en minúsculas.

12. Escribir una función para realizar una captura perfecta de un valor numérico entero por
teclado. Por captura perfecta se entiende que la función no debe permitir que el usuario
introduzca ningún otro carácter distinto de 0..9 (con la excepción del signo negativo ‘-’,
como primer carácter). (Usar las funciones, ya definidas en PSeInt, readkey y
val(cadena,numero,error).)

13. Suponga que en PSeInt sólo están implementadas las funciones de cadena copy, pos y
length; diseñar funciones que permitan:
a. Extraer los n primeros caracteres de una cadena
b. Extraer los n úlitmos caracteres de una cadena
c. Eliminar los espacios en blanco que haya al final de la cadena
d. Eliminar los espacios en blanco que haya al comienzo de la cadena
e. Eliminar de una cadena los n caracteres que aparecen a partir de la posición p
f. Eliminar la primera aparición de una cadena dentro de otra
g. Insertar una cadena dentro de otra a partir de la posición p
h. Sustituir una cadena por otra
i. Contar el número de veces que aparece una cadena dentro de otra
j. Borrar todas las apariciones de una cadena dentro de otra
k. Sustituir todas las apariciones de una cadena dentro de otra, por una tercera.
14. Diseñar un programa que mediante una función permita cambiar un número n en base
10 a la base b, siendo b un número entre 2 y 20.
Practica No 9.- Funciones y Procedimientos – 05/06/2019

15. Realizar un procedimiento que obtenga la división entera y el resto de la misa,


utilizando sólo los operadores suma y resta.

16. Diseñar un procedimiento que permita convertir coordenadas polares (radio, ángulo) en
cartesianas (x, y). (x = radio*cos(ángulo), y = radio*sen(ángulo)).

17. Realizar un subprograma que calcule la suma de los divisores de n distintos de n.

18. Dos números son amigos si cada uno de ellos es igual a la suma de los divisores del
otro. Por ejemplo, 220 y 284 son amigos, pues
Suma divisores de 284 : 1+2+4+71+142 = 220

Suma divisores de 220: 1+2+4+5+10+11+20+22+44+55+110 = 284

Diseñar un procedimiento que muestre todas las parejas de números amigos menores o
iguales que un m dado.

19. Diseñar un procedimiento que obtenga la matriz suma de dos matrices.


20. Diseñar un procedimiento que obtenga la matriz producto de dos matrices.
21. Diseñar un subprograma que transforme un número entero introducido por teclado en
decimal a base 2 (el número en base 2 puede almacenarse en un array o un string).
22. Diseñar un programa que transforma un número introducido por teclado en notación
decimal a romana. El número será entero positivo y no excederá 3000.

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