Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Texto INF101 V 2011
Texto INF101 V 2011
TEMA 1
INTRODUCCIÓN A INFORMATICA
.
Una definición antigua de computadora es: <<una máquina o aparato electrónico capaz de
ejecutar operaciones repetitivas muy complejas a altas velocidades>>. Ahora bien, ésta
definición no describe las modernas computadoras. Éstas son más que una máquina de
ejecutar operaciones aritméticas. De hecho, los términos procesador de datos y
sistemas de procesamiento (tratamiento) de la información se utilizan con
frecuencia en lugar de computadora (ordenador, en la jerga informática usual en
España).
En el uso diario, datos e información son esencialmente sinónimos. Sin embargo, los
informáticos suelen hacer una diferencia: datos se refiere a la representación de un
hecho, concepto o entidad real (los datos pueden tomar diferentes formas: por ejemplo,
palabras escritas o habladas, números y dibujos); información implica datos
procesados y organizados. Un sistema en general se define como conjunto de
componentes conectados e interactivos, que tienen un propósito y una unidad total.
Sistema de procesamiento de información es un sistema que transforma datos brutos
en información organizada, significativa y útil.
Fig. 1.1
1
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Basados en este esquema, muchos dispositivos u organismos pueden ser considerados
sistemas de procesamiento de la información. Un termostato que controla la
temperatura de un edificio, es un sistema de procesamiento de la información. La
entrada es la temperatura media y la salida es una señal que controla la caldera del aire
acondicionado. El corazón de un animal o un ser humano es un sistema complejo de
procesamiento de la información.
2
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
se almacenan en dispositivos de almacenamiento auxiliar y luego tienen que
llevarse a la memoria central.
Fig. 1.2
En la práctica, una instalación grande de computadora puede tener diferentes UCP, cada
una con su propia memoria central compartida, una variedad de dispositivos de
almacenamiento secundario y periféricos localizados en diferentes sitios.
3
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Unidad Aritmética y
lógica
Elementos Elementos
de entrada Unidad de control de salida
Unidad de memoria
principal
Fig. 1.3
La unidad aritmética y lógica que es la parte del procesador encargada de realizar todas
las operaciones elementales de tipo aritmético y lógico.
4
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
La memoria ROM (Read Only Memory): Es una memoria estática que no puede
cambiar, la computadora puede leer los datos almacenados en la memoria ROM, pero
no se pueden introducir datos en ella, o cambiar los datos que ahí se encuentran; por lo
que se dice que esta memoria es de solo lectura. Los datos de la memoria ROM están
grabados en forma permanente y son introducidos por el fabricante de la computadora.
Memoria Auxiliar (Externa): Es donde se almacenan todos los programas o datos que
el usuario desee. Los dispositivos de almacenamiento o memorias auxiliares (externas
o secundarias) mas comúnmente utilizados son: discos magnéticos, discos ópticos y
dispositivos extraíbles (USB Flash Drives).
5
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
TE MA 2
ALGORITMOS
Diseño Programa
Problema del algoritmo de
computadora
7
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Ejemplo 2.1
1. Inicio.
2. Leer el pedido.
3. Examinar la ficha del cliente
4. Si el cliente es solvente, aceptar pedido; en caso contrario, rechazar pedido
5. Fin
La principal razón para que las personas aprendan a programar en general y los
lenguajes de programación en particular, es utilizar la computadora como una
herramienta para la resolución de problemas. Ayudado por una computadora, la
resolución de un problema se puede dividir en tres fases importantes:
8
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Resolución de un
problema
Fig. 2.2
AN Á LISIS D EL PR OB LEMA
El propósito del análisis de un problema, es ayudar al programador para llegar a una
cierta comprensión de la naturaleza del problema. El problema debe estar bien definido
para así llegar a una solución satisfactoria.
Para poder definir con precisión el problema, se requiere que las especificaciones de
entrada y salida sean descritas con detalle. Una buena definición del problema, junto
con una descripción detallada de las especificaciones de entrada y salida, son los
requisitos más importantes para llegar a una solución eficaz.
El análisis del problema exige una lectura previa del problema a fin de obtener una idea
general de lo que se solicita. La segunda lectura deberá servir para resolver a las
preguntas:
9
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Análisis del
problema
Fig. 2.3
Ejemplo 2.2
Las entradas de datos en este problema se concentran en el radio del círculo. Dado
que el radio puede tomar cualquier valor dentro del rango de los números reales, el tipo
de datos radio debe ser real.
Las salidas serán dos variables: superficie y circunferencia, que también serán de tipo
real.
10
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
El aspecto más importante del algoritmo es la elaboración del proceso o los procesos
que a partir de los datos de entrada, se debe en base a ellos producir la salida deseada.
Cuando los problemas son complejos se pueden resolver mas eficazmente con la
computadora, cuando se rompen en sub problemas que sean más fáciles de solucionar
que el original. Normalmente los pasos diseñados en el primer esbozo del algoritmo son
incompletos e indicaran solo unos pocos pasos. Tras esta primera descripción, estos se
amplían en una descripción mas detallada con más pasos específicos.
INICIO
Leer radio
Calcular superficie : Superficie=3.1416 * radio^2
Calcular circunferencia : Circunferencia = 2 * 3.1416 * radio
Escribir resultados: Imprimir Circunferencia, Superficie
FIN
Ir al cine
Comprar una entrada
Ver la película
Regresar a casa
El algoritmo consta de cuatro acciones básicas, cada una de las cuales debe ser
ejecutada antes de realizar la siguiente. En términos de computadora, cada acción se
codificará en una o varias sentencias que ejecutan una tarea particular.
11
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
El algoritmo descrito es muy sencillo; sin embargo, como ya se ha indicado en párrafos
anteriores, el algoritmo general se descompondrá en pasos más simples en un
procedimiento denominado refinamiento sucesivo, ya que cada acción puede
descomponerse a su vez en otras acciones simples.
Así, un primer refinamiento del algoritmo ir al cine se puede describir de la forma
siguiente:
1 . Inicio
2. Ver la cartelera de cines en el periódico
3 . Si no proyectan “Tiburón” entonces
3.1 Elegir otra actividad
3.2 Bifurcar al paso 7
si_no
3.3 ir al cine.
Fin_si 4 . Si
hay cola
4.1 ponerse en ella
4.2 mientras haya personas delante hacer
4.2.1 avanzar en la cola
fin_mientras
fin_si
5 . Si hay localidades entonces
5.1 comprar una entrada
5.2 pasar a la sala.
5.3 localizar la(s) butaca(s)
5.4 mientras proyectan la película hacer
5.4.1 ver la película
fin_mientras
5.5 abandonar el cine
si_no
5.6 refunfuñar
fin_si
6. volver a casa
7. fin
12
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Si proyectan la película seleccionada ir al cine
si_no ver la televisión , ir al fútbol o leer el periódico
En el diseño del algoritmo éste describe en una herramienta de programación tal como
un diagrama de flujo o pseudocódigo .Sin embargo, el programa que implementa el
algoritmo debe ser escrito en un lenguaje de programación y siguiendo las reglas
gramaticales o sintaxis del mismo .La fase de conversión del algoritmo en un lenguaje de
programación se denomina codificación, ya que el algoritmo escrito en un lenguaje
específico de programación se denomina código.
Tras la codificación del programa, deberá ejecutarse en una computadora y a
continuación de comprobar los resultados pasar a la fase final de documentación.
13
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
TEMA 3
Diagrama de Flujo
Pseudocodigo
SÍMBOLO DESCRIPCIÓN
14
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
15
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando
el uso de muchas palabras.
3.2 Pseudocodigo
Es la representación narrativa de los pasos que debe seguir un algoritmo para dar
solución a un problema determinado. El pseudocódigo utiliza palabras que indican el
proceso a realizar.
Ejemplo:
Suponga que un individuo desea invertir su capital en un banco y desea saber cuanto
dinero ganara después de un mes si el banco paga a razón de 2% mensual.
Inicio
Leer cap_inv
gan = cap_inv * 0.02
Imprimir gan
Fin
16
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
TEMA 4
Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple
carácter, tal como ‘b’, un valor entero tal como 35. El tipo de dato determina la
naturaleza del conjunto de valores que puede tomar una variable.
Numéricos
Simples Lógicos
Alfanuméricos (cadenas)
Tipos de
datos Arreglos (Vectores, Matrices)
Estructurados Registros
(Def. por el Archivos
usuario) Apuntadores
Datos Lógicos: Son aquellos que solo pueden tener dos valores (cierto o falso)
ya que representan el resultado de una comparación entre otros datos (numéricos o
alfanuméricos).
17
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
hacer operaciones con ellos. Este tipo de datos se representan encerrados entre
comillas.
Ejemplo:
“Universidad Católica Boliviana”
“2007”
4.2 Expresiones
a+(b+3)/c
Cada expresión toma un valor que se determina tomando los valores de las
variables y constantes implicadas y la ejecución de las operaciones indicadas.
Una expresión consta de operadores y operandos. Según sea el tipo de datos
que manipulan, se clasifican las expresiones en:
- Aritméticas
- Relaciónales
- Lógicas
Aritméticos
Tipos de Operadores Relaciónales
Lógicos
18
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Valor
(constante o variable)
+ Suma
- Resta
* Multiplicación
/ División
Mod Modulo (residuo de la división entera)
Ejemplos:
Expresión Resultado
-----------------------------------------
7/2 3.5
12 mod 7 5
4 +2*5 14
Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con
paréntesis anidados se evalúan de dentro a fuera, el paréntesis mas interno se evalúa
primero.
Dentro de una misma expresión los operadores se evalúan en el siguiente orden.
1 ^ Exponenciación
2 *, /, mod Multiplicación, división, modulo.
3 +, - Suma y resta.
Los operadores en una misma expresión con igual nivel de prioridad se evalúan de
izquierda a derecha.
Ejemplos:
4 + 2 * 5 = 14 4 + 10
23 * 2 / 5 = 9.2 46 / 5 = 9.2
3 + 5 * (10 - (2 + 4)) = 23 3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23
3.5 + 5.09 - 14.0 / 40 = 5.09 3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09
2.1 * (1.5 + 3.0 * 4.1) = 28.98 2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98
Operadores Relaciónales:
19
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Se utilizan para establecer una relación entre dos valores.
Compara estos valores entre si y esta comparación produce un resultado de certeza o
falsedad (verdadero o falso).
Los operadores relaciónales comparan valores del mismo tipo (numéricos o cadenas)
Tienen el mismo nivel de prioridad en su evaluación.
Ejemplos:
a = 10 b = 20 c = 30
a+b>c Falso
a-b<c Verdadero
a-b=c Falso
a*b<>c Verdadero
Ejemplos no lógicos:
a<b<c
10 < 20 < 30
T < 30 (no es lógico porque tiene diferentes operandos)
Operadores Lógicos:
Estos operadores se utilizan para establecer relaciones entre valores lógicos, estos
valores pueden ser resultado de una expresión relacional.
20
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
And Y
Or O
Not Negación
Operador And
Operador Or
Operador Not
Operando Resultado
T F
F T
Ejemplos:
(a < b) and (b < c)
(10<20) and (20<30)
T and T
Not
21
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
And
Or
1.- ()
2.- ^
3.- *, /, Mod, Not
4.- +, -, And
5.- >, <, > =, < =, < >, =, Or
Ejemplos:
a = 10 b = 12 c = 13 d =10
Ejemplo: Nombre
Num_hrs
22
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Calif2
Constantes y Variables
Ejemplo:
área = pi * radio ^ 2
Numéricas
Por su Contenido Lógicas
Alfanuméricas (String)
Variables
De Trabajo
Por su Uso Contadores
Acumuladores
23
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Por su Contenido
Variables Lógicas: Son aquellas que solo pueden tener dos valores (cierto o
falso) estos representan el resultado de una comparación entre otros datos.
Por su Uso
suma=a+b/c
Acumuladores: Forma que toma una variable y que sirve para llevar la suma
acumulativa de una serie de valores que se van leyendo o calculando progresivamente.
Ejemplo:
S=S+X
SUM = SUM + ( X / 2)
Multiplicadores: Forma que toma una variable y que sirve para llevar el
producto acumulativo de una serie de valores que se van leyendo o calculando
progresivamente.
Ejemplo:
C=C+1
24
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
M = M * C/ 2
25
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
PROBLEMAS RESUELTOS
ALGORITMOS BASICOS:
X = R * cos(A)
Y = R * sen(A)
Datos de entrada:
R: Variable que representa al radio
A: Angulo que previamente debe convertirse en radianes
Datos de salida:
X : Coordenada rectangular x
Y : Coordenada rectangular y
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Inicio
R,A
A = A * 3.1416 / 180
X = R * cos (A)
Y = R * sin (A)
X,Y
Fin
Dato de Entrada:
RADIO: variable donde el dato de entrada se almacena
Dato de Salida:
VOL: variable que almacena el resultado
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Inicio
RADIO
VOL
fin
Inicio
Gf
Gf
Fin
Variable de entrada:
Seg : Representa los segundos que el usuario ingresa
Variables de salida:
Hra, Min y Seg:
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Análisis:
La función trunc permite truncar la parte decimal de un número, y la función mod
permite obtener el residuo de un cociente entre dos números.
Inicio
Seg
Fin
5.- Determinar el mayor y el menor valor, a partir de dos números que se leen desde el
teclado.
Variables de entrada:
A, B : Los números que el usuario deberá ingresar
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Variables de salida:
Mayor , Menor : Que corresponden los valores solicitados
Inicio
A,B
Mayor = (A + B) + abs(A-B) ) /2
Menor = (A + B) - abs(A-B) ) /2
Mayor, Menor
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
ALGORITMOS DECISIONALES:
6.- Escriba un algoritmo para leer un número entero y determinar si es un número par o
impar
Inicio
Num
No Si
Num mod 2 = 0
Fin
7.- Escriba un programa para leer dos números enteros distintos entre si y determine
cual es el mayor y el menor valor.
Inicio
N,M
No N>M Si
M, “ es el mayor” N, “ es el mayor”
N, “ es el menor” M, “ es el menor”
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Inicio
si no
N =0
si no
N>0
“Es Cero”
Fin
N,M
no N mod M = 0 si
no M mod N= 0 si
N, “ es múltiplo de “, M
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
10.- Elabore un diagrama de flujo para resolver ax2 + bx + c = 0 en el caso de raíces
reales. Los datos son: a, b, c. Puede usar las operaciones que necesite. Asegúrese
que el resultado sea válido.
Inicio
A,B,C
D=B*B–4*A*C
no si
D>0
no si
D<0 X1 =(-B+sqrt(D)) / 2*A
X2 = -B / 2*A
X1, X2
X1, X2
Inicio
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Inicio
no si
N>0
no si
N < 0 no N mod 2=0 si
no N mod 2=0 si
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
12.- Leer tres números enteros y determinar si forman un triangulo isósceles, equilátero
o escaleno. Un triangulo equilátero es aquel que tiene los 3 lados iguales, el triangulo
escaleno tiene los 3 lados diferentes, y un triangulo isósceles (dos lados iguales y uno
desigual, analice en este tipo los 3 casos posibles).
Inicio
A,B,C
no si
A=B
no si no si
A=C B=C
no si
B =C “Triangulo isósceles” “Triangulo isósceles” “Triangulo equilátero”
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
13.- Dado un número, determinar si es entero o fraccionario.
Inicio
no N mod 1 = 0 si
Fin
Inicio
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
15.- Escriba un algoritmo para leer 3 números enteros distintos entre si e imprimirlos en
orden ascendente.
Inicio
A,B,C
no si
A<B
no si si
A< C B<C
no si no si
A<B B, A , C A<C A,B,C
A, C , B
C,B,A C,A,B B,C,A
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
16.- Escribir un programa que lea el salario de un empleado e incremente este salario
según la escala:
Inicio
Sal
si
Sal < 500
Inc = 15
no
si
Sal < 1000
Inc = 10
no
Inc = 5
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
17.- A un trabajador se le paga según las horas que trabaja en el día una tarifa de pago
por hora. Si la cantidad de horas trabajadas es mayor a 8, la tarifa se incrementa en un
100%, calcular el pago total del trabajador.
Variables de Entrada:
Variables de Salida:
PT: Representa el pago total
Se consideran horas extras aquellas que exceden a las ocho normales de trabajo.
Inicio
HT, PH
no si
HT > 8
PE = (HT – 8) * 2* PH
PT= PH * HT
PT = PE+ PH* 8
PT
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
18. Escribir un D.F que permita el pago de comisiones por ventas efectuadas por un
vendedor, según la siguiente escala:
Inicio
si
V < 100 CO = 1
si
si
V < 500 CO = 5
si
si
V < 1000 CO = 7
si
CO = 10
VCOM = V * CO/100
VCOM
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Variables de entrada:
HS: Hora de Salida, MS: Minuto de salida, HL: Hora de llegada, ML: Minuto de llegada
Variables de Salida:
TVH: Tiempo de vuelo en horas, TVM : Tiempo de vuelo en minutos
Inicio
si
HS < HL and MS <=ML
TVH = HL – HS
no TVM = ML - MS
si
HS < HL and MS > ML
si
HS > HL and MS <= ML
no TVH = 24-(HS-HL)
TVM = ML - MS
TVH = 24-(HS-HL) -1
TVM = 60 – (MS-ML)
TVH , TVM
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
1, 2, 3, 4, 5, …… 100
Análisis:
La variable K es el denominado contador que permite generar la serie a partir de un
valor inicial (0), que es el primer paso en el algoritmo, luego se establece la condición
para que el proceso de conteo se detenga, en este caso :
K <= 100, es decir que el proceso debe continuar mientras se cumpla esta condición, el
contador K debe ir incrementándose en 1 (K = K + 1) , expresión que permite que una
variable vaya cambiando continuamente (aumentado en 1) hasta que K llegue a 100,
por cada termino que asume el contador este se imprime por pantalla, cuando esto se
cumpla el ciclo repetitivo se “rompe” y el proceso concluye.
Inicio
K=0
K <= 100
K=K+1
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
21.- Generar la serie:
Inicio
C = 50
C>=2
C=C-2
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Por lo que se puede utilizar una variable que actué como contador para representar los
exponentes, a partir del primer exponente (0) y el valor final (N-1), puesto que el
enunciado indica para N términos, por lo que la condición solo estable por menor (<).
Inicio
C=0
C<N
R=2^C
C=C+1
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Inicio
C=0
K=1
C< N
C=C+1
K=K+C
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
24.- Mediante una algoritmo determine si un numero es perfecto o no. En caso de serlo
o no imprima el mensaje respectivo.
(Un numero perfecto es el que sumados sus divisores reproduce el mismo numero)
Ej:
6 divisores: 1, 2 ,3 suma: 1+2+3 = 6
Inicio
SUM = 0
D =1 , N/2 ,1
si
N mod D = 0
SUM = SUM + D
no
no si
SUM = N
N, “ no es un numero N, “ Es un numero
perfecto” perfecto”
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
25. Leer dos números enteros y obtener el cociente y su residuo mediante restas
sucesivas
Inicio
A,B
no si
A>B
A>B
no si
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
A=B
A= A-B
COC = 0 COC = 1
Fin
Inicio
C=0
SIG = 1
C<N
C=C+1
S = S + (2*C ) * SIG
SIG = - SIG
FIN
27. Dado un número, mostrar cada uno de sus dígitos en forma separada
Inicio
V
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
V>0
D = V mod 10
V = V / 10
Fin
28.- Determinar el MCD (Máximo Común Divisor) entre dos números enteros
Inicio
A,B
A!=B
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
no si
A>B
B=B-A A=A-B
“El MCD DE “, A , “ Y ”, B, “
ES: “, B
Fin
29.- Leer n números enteros y determinar cual es el mayor valor.
Inicio
AUX = 0
C=0
C< K
NUM
C=C+1
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
si
AUX < NUM
AUX = NUM
no
FIN
C= 0
N>0
D = N mod 10
si
D= 2
C=C+1
no
Fin
Inicio
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
SUM = 0
K=1,N,1
K mod 3 = 0
and
si
K mod 5 =0 SUM = SUM + K
no
SUM
Fin
32.- Escriba un algoritmo que lea un número entero y obtenga la suma de sus dígitos
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Inicio
SUM = 0
N>0
DIG = N mod 10
N = TRUNC (N / 10)
Fin
33.- Escriba un algoritmo para leer un número entero y determinar la cantidad de dígitos
que este tiene.
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Inicio
NUM
K=0
NUM > 0
K=K+1
Fin
Inicio
CD = 0
C=1
C<=N
no si
N mod C = 0
CD = CD + 1
C=C+1
no si
N, “ no es primo CD = 2 N, “ es primo”
Fin
Inicio
CP = 0
SUM = 0
CP < N
EDAD
NP = (220 – EDAD) / 10
SUM = SUM + NP
CP = CP + 1
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
PROM = SUM / N
“El promedio es : “,
PROM
Fin
36.- Escribir un programa que convierta un número en base n a base 10, emplear el
teorema fundamental de la numeración:
1 * 23 + 0 * 22 + 1 * 21 + 0 * 20 = 10
Inicio
NUM, BASE
SUM = 0
C=0
NUM > 0
C=C + 1
NUM = NUM / 10
SUM
Fin
Inicio
C=A
SUM = 0
C>0
DIG = C mod 10
C = trunc (C / 10)
no si
Fin
Inicio
N,M
CM = 0
SM = 0
I=1,N,1
si
I mod M = 0
no CM = CM + 1
SM = SM + 1
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
Fin
Inicio
N ,M
no si
N>M
L=M L=N
D=1,L,1
N mod D = 0
and
si
M mod D =0 “Divisor común:
“, D
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
no
Fin
Inicio
A=1
B=1
S=A+B
J = 1 , N-2 , 1
C=A+B
S=S+C
A=B
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
B= C
“La sumatoria es = “, S
Fin
Inicio
CC = 0
K=1,N,1
R = RANDOM(90) + 10
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
D = R mod 10
si
D=0
CC = CC + 1
no
CC
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
42.- Escribir un algoritmo para simular el lanzamiento de una moneda un cierto número
de veces y determinar cuantas veces salió 'cara' y cuantas 'sello
INICIO
CC = 0
CS = 0
J=1,V,1
R = RANDOM * (2)
si
R=0
CC = CC + 1
no
CS = CS + 1
FIN
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
43.- Dado un número, obtener su factorial
Por definición:
N ! = N * N -1 * N -2 * N -3 * ….* 1
o N! = 1 * 2 * 3 *……* N
INICIO
F=1
C=1,R,1
F=F*C
“El factorial de “, R, “ es :
“, F
FIN
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
44.- Leer los salarios de un grupo de empleados y determine el promedio de salarios y
el porcentaje de empleados que están por debajo de 1000 Bs, detenga el proceso
cuando ingrese un salario igual a cero.
INICIO
SSAL = 0
CSAL = 0
CAUX = 0
SAL
SAL > 0
CSAL = CSAL + 1
no
SAL
FIN
45.- Mediante un algoritmo determine si dos números son “amigos” (dos números son
amigos si la suma de sus divisores del primero es igual segundo y viceversa). Imprimir
un mensaje en cada caso.
Ej: 220 y 284
INICIO
N,M
SUM1= 0
C = 1 , N/2 ,1
si
N mod C = 0
SUM1 = SUM1 + C
no
SUM2= 0
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
K = 1 , M/2, 1
si
M mod K =0
SUM2 = SUM2 + K
no
N = SUM2
FIN
46.- Escribir un programa para calcular el cos(x), mediante la siguiente serie:
(detener el proceso cuando el valor absoluto de un término sea menor a 0.001)
x2 x4 x6
cos( x )=1− + − +.. .. .
2! 4 ! 6 !
INICIO
S=1
SIG = 1
DEN = 2
T=0
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
X = X * 3.1416 /180
F=1
T= S
M = 1 , DEN,1
F=F*M
S = S + (X ^ D / F ) * SIG
D=D+2
SIG = - SIG
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
FIN
Ej:
153 = 13+53+33
INICIO
C=1,9,1
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
D=0,9,1
U = 0, 9 , 1
X = C * 100 + D * 10 + U
si
X=Y
no
“CUBO PERFECTO: “, X
FIN
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
48. Determinar cuantas veces aparece un digito dado (leído desde el teclado) dentro de
un número entero.
Inicio
N, DIG
CD = 0
N>0
D = N mod 10
no si
DIG = D
CD = CD + 1
“La frecuencia es de : ”, CD
Fin
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
49. Dado un número N, mostrar por pantalla los dígitos primos sin importar el orden.
INICIO
N > 0
K = N mod 10
F=0
D = 1 , K /2 , 1
si
K mod D = 0
F=F+1
no
si
F=1
K
no
N = N / 10
FIN
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
INICIO
SUM = 0
SIG = 1
C=1,N,1
M =1
F = 1, C. 1
M=M*F
SIG = - SIG
SUM
FIN
1 2 3 4 5
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
1 2 3 4
1 2 3
1 2
1
INICIO
C = 5 , 1, -1
D = 1 , C, 1
FIN
52.- Generar :
1
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
2 2
3 3 3
4 4 4 4
5 5 5 5 5
............
.............
n ...........
INICIO
X=1,N,1
Y = 1, X , 1
FIN
PROBLEMAS PROPUESTOS
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
1.- Elabore un diagrama de flujo que teniendo como datos de entrada el radio y la
altura de un cilindro calcule el área total y el volumen del cilindro.
ax + by = c
dx + ey = f
ce−bf af −cd
x= y=
ae−bd ae−bd
6.- Una persona recibe un préstamo de $10,000.00 de un banco y desea saber cuánto
pagará de interés al terminar el mes si el banco le cobra una tasa del 2% mensual.
7.- Dado un tiempo en segundos, calcular los segundos restantes que le correspondan
para convertirse exactamente en minutos.
8.- Convertir horas en formato 24 horas a formato 12 horas, para lo cual debe leer las
horas y minutos, además de una variable que indique si es PM o es AM. (Sug. 1: AM,
2 : PM)
Ej:
2 : 45 pm
9.- Escribir un programa que acepte dos números enteros diferentes entre si y los
devuelva ordenados del mayor al menor
12.- Escriba un algoritmo para determinar el numero mayor, de tres números enteros
distintos entre si, desde el teclado.
Ej:
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
X1,Y1 X2,Y2
X3,Y3 X4,Y4
15.- Dados 4 números enteros que se lean desde el teclado determinar el mayor y el
menor valor, los números deben ser distintos entre si.
16.- Una agencia automotriz ofrece planes de crédito para la adquisición de los
diferentes modelos de automóviles. Si el automóvil vale más de $25,000 la agencia
solicita un 35% de adelanto y el resto debe cubrirse en 24 mensualidades sin intereses.
Si el automóvil tiene un valor máximo de $25,000 se requiere un adelanto del 25% y el
resto se debe pagar en 18 mensualidades sin intereses.
17.- Escribir un algoritmo que permita emitir la factura correspondiente a una compra de
un artículo determinado, del que se adquieren una o varias unidades. El IVA es del
15% y si el precio bruto (precio venta mas IVA) es mayor de 50 Bs. se debe realizar un
descuento del 5%.
18.- Escribir un algoritmo para leer tres números enteros distintos entre si e imprimir el
numero intermedio (el que no es mayor ni menor)
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
19.- Realizar un algoritmo que me permita ingresar la hora, minutos y segundos y que
indique a cuantos segundos equivalen.
Elabore un diagrama de flujo para calcular cuánto se debe pagar por un boleto de tren
dando como datos el total de Km recorridos y el número de días entre el viaje de ida y
el viaje de vuelta.
Pruebe su diagrama con los siguientes grupos de datos:
a) 850 Km y 10 días.
b) 356 Km y 8 días.
24.- Leer el valor de las ventas efectuadas por un vendedor y determinar el porcentaje
de ventas menores a 500 Bs.
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
25.- Escribir un algoritmo en donde dado un número, si es positivo verificar si se
encuentra en el intervalo abierto (60 – 90) , de lo contrario emitir un mensaje de error.
26.- A un trabajador se le paga según las horas que trabaja en la semana una tarifa de
pago por hora. Si la cantidad de horas trabajadas es mayor a 40, la tarifa se incrementa
en un 50%. Calcular el salario total del trabajador, además considere que si existe un
anticipo se debe restar este valor al salario total, mostrando al final el pago neto.
27.- Calcular el descuento efectuado al valor de una venta en base a las siguientes
condiciones:
30.- Escribir un D.F para determinar la suma de los n primeros números impares
elevados al cuadrado.
33.- Escribir un D.F o programa para obtener la suma de los 100 primeros números
pares.
34.- Escribir un algoritmo para obtener la suma de los cuadrados de los 10 primeros
números pares.
37.- Escribir un algoritmo que permita obtener el valor aproximado de PI, mediante la
serie:
Intento 1
? 25
Intento 2
? 34
Intento 3
? 45
Intento 4
? 40
Intento 5
? 42
39.- Elabore un diagrama de flujo que dado un entero n > 1, calcule e imprima los
elementos correspondientes a la conjetura de Ullman (en honor al matemático S.
Ullman) que consiste en lo siguiente:
Elabore un diagrama de flujo para leer una serie de enteros positivos, contar los valores
introducidos y calcular su promedio. El final de los datos se indicará con un número
negativo.
40.- Escriba un algoritmo para leer un número entero y mostrar todos sus divisores
incluido en propio número.
41.- Escriba un algoritmo para leer un número y obtener el producto de los dígitos
distintos de cero.
42.- En una guardería hay 25 niños de 1, 2 y 3 años. Los niños de 1 año consumen 6
pañales al día, los niños de 2 años consumen 3 pañales diarios y los niños de 3 años
consumen 2 pañales diarios. Se desea conocer el consumo total de pañales diarios.
Datos:edad1
edad2
.....
edad25
donde edadi representa la edad del i–ésimo niño en años cumplidos (1, 2 ó 3).
43.- Escriba un algoritmo para leer un número entero y obtener la suma de sus dígitos
pares.
44.- Dado un número, verificar si el producto de sus dígitos mayores a cero, genera un
número par.
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
45.- Dado un número, verificar si es automórfico.(es aquel que reaparece al final de su
cuadrado)
47.- Leer un número y obtener la suma de sus dígitos que sean pares
48.- Escribir un D.F para leer dos números enteros (a,b) y determinar cual de los dos
tiene mas dígitos.
Cn = C0(1+I)n
51.- Leer tres números enteros y determinar cual es que tiene la suma mayor de sus
divisores.
55.- Dado un número, verificar si la sumatoria de sus dígitos genera un número primo.
56.- Dado un número, obtener su factorial haciendo uso de operaciones de suma y/o
resta únicamente.
62.- Elabore un diagrama de flujo que dado un valor n entero con n 1, calcule e
imprima la siguiente sumatoria:
n
∑ ii
i=1
Es decir: 1 = 13,
3 + 5 = 23 = 8,
7 + 9 + 11 = 33 = 27,
13 + 15 + 17 + 19 = 43 = 64.
Elabore un diagrama que dado un número n entero positivo, imprima los n primeros
cubos utilizando esta propiedad.
64.- De n números que se lean desde el teclado determinar el mayor y el menor valor.
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
65.- Leer las estaturas (en cm ) de un grupo de personas, a partir de estos valores
obtener el promedio de estaturas, el porcentaje de estaturas por debajo
de 150 cm y el porcentaje de las que estén por encima o igual a este valor. Detener el
proceso cuando el usuario ingrese un cero.
66.- Leer las calificaciones de un grupo de estudiantes que han rendido un examen, a
partir de ello determinar:
67.- Construya un algoritmo que acepte los montos de depósitos y retiros efectuados
por un cliente de un banco, mostrar el saldo final que tiene dicho cliente.
68.- Escribir un algoritmo que permita leer dos números enteros y muestre por pantalla
a los números enteros comprendidos en este intervalo, incluidos los valores de entrada,
considerar que si el primer numero es menor que el segundo, la secuencia será
creciente, en caso contrario será decreciente, si el usuario ingresa dos números
idénticos, el algoritmo debe solicitar la entrada de nuevos valores.
75.- Escribir un algoritmo que determine si 3 números leídos desde el teclado son
“pitagóricos”
b = 0,5 * (a + n/a)
c = 0,5 * (b + n/b)
d = 0,5 * (c + n/c)
..........
...........
77.- Leer el valor de un bien y su vida útil (en años) y muestre por pantalla su
depreciación en cada año, hasta alcanzar la vida útil. Emplear las siguientes relaciones
para determinar el factor de depreciación:
FD es el factor de depreciación
78.- Escriba un algoritmo que encuentre la cantidad de números perfectos que existen
en el rango de 1 a n.
79.- Calcular potencias con exponentes positivos o negativos, se deben utilizar ciclos
repetitivos para tal efecto.
81.- Una fuente de datos registra varias edades, la edad 0 indica el final de la entrada
de datos, escriba un algoritmo para determinar el promedio de las edades ingresadas y
también el porcentaje de personas mayores a los 65 años.
83.- Leer un numero entero y producir un segundo numero con sus dígitos ordenados
del menor al mayor.
84.- Leer dos números enteros si no son iguales intercambie el contenido de las
variables, de ser iguales sume los mismos y muestre este resultado.
85.- Leer un número entero y determinar si la suma de sus dígitos distintos de cero
forman un número primo, de ser así imprima el mensaje respectivo.
86.- Escribir un algoritmo que permita generar 50 números al azar en el rango (1-99) y
determine cuantos de estos elementos son números primos.
( n ¿) ¿¿ ¿
¿
89.- Dados dos números determinar si son primos relativos entre si. (por definición, no
tienen ningún factor primo en común, o, dicho de otra manera, si no tienen otro divisor
común más que 1 )
5 5 5 5 5
4 4 4 4
3 3 3
2 2
1 2 3 4 5
5 4 3 2 1
1 2 3 4
4 3 2 1
1 2 3
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
3 2 1
1 2
2 1
1
1
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
94.- Generar :
11111
11115
11145
11345
12345
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
95.- Leer un valor que represente una cierta cantidad de dinero, escribir un algoritmo
que permita convertir el dicho valor en billetes y monedas, de tal forma que sea la
menor cantidad de billetes y monedas a convertir.
La salida será:
3 billetes de 200 Bs
1 billete de 50 Bs.
1 moneda de 5 Bs.
96.- Leer el nombre completo de una persona y determine si tiene uno o mas de un
nombre.
97.- Dada la fecha de nacimiento de una persona escribir un algoritmo que indique su
signo zodiacal.
101.- Leer una palabra y determinar si la misma contiene las cinco vocales.
INTRODUCCION A LA PROGRAMACION
Ing. Orlando Rivera Jurado
______________________________________________________________________________
102.- Escribir un algoritmo que acepte un número no mayor a dos dígitos y muestre el
mismo de manera literal:
Ej: 23 : Veintitrés
103.- Leer los nombres de pila, de por lo menos 5 personas y determinar cuantos de
estos nombres tienen como primera letra la ‘A’
104.- Leer los nombres las capitales de varios países, deteniendo la entrada con una
cadena nula (“00000”), y luego efectué la búsqueda de alguno de estos e indique el
orden en el que registro.