Laboratorio de Algoritmia
Laboratorio de Algoritmia
Laboratorio de Algoritmia
La principal razn para que las personas aprendan lenguajes y tcnicas de programacin es utilizar la
computadora como una herramienta para resolver problemas. La resolucin de un problema exige al menos los
siguientes pasos:
1. Definicin o anlisis del problema
2. Diseo del algoritmo
3. Transformacin del algoritmo en un programa
4. Ejecucin y validacin del programa
Uno de los objetivos fundamentales de este curso es el aprendizaje y diseo de algoritmos, un algoritmo es un
mtodo para resolver un problema. Aunque la popularizacin del termino ha llegado con el advenimiento de la era
informtica, algoritmo proviene de Mohammed Al-Khowrizm, matemtico persa que vivi durante el siglo IX y
alcanzo gran reputacin por el enunciado de las reglas paso por paso para sumar, restar, multiplicar y dividir nmeros
decimales; la traduccin al latn del apellido en la palabra algoritmus deriv posteriormente en algoritmo. Euclides, el
gran matemtico griego (del siglo IV antes de Cristo), que invento un mtodo para encontrar el mximo comn divisor
de dos nmeros, se considera con Al- Khowrizm el otro gran padre de la algoritmia (ciencia que trata de los
algoritmos)
CAPITULO I
TEMA I.- Conceptos Bsicos de la Arquitectura del Computador
Una computadora es una maquina electrnico mecnica la cual se utiliza para procesar informacin,
desempear algn trabajo, etc
La computadora posee esencialmente dos partes:
Hardware.- Es el conjunto de componentes fsicos de una computadora (equipo Fsico)
Software.- es el conjunto de programas que controlan el funcionamiento de una computadora (equipo Lgico)
1.
HARDWARE
Conjunto de componentes fsicos de una computadora. Se compone de :
la UC en donde se decodifica e interpreta. Esta indica a otros componentes del procesador que realicen las
operaciones necesarias para ejecutar la instruccin.
Dirigir las operaciones de los componentes internos del procesador.
Controlar el flujo de los programas, datos de entrada y de salida del almacenamiento primario.
2. SOFTWARE
Conjunto de programas que controlan el funcionamiento de la computadora. Estos pueden ser:
2.1) Sistema Operativo
Es un conjunto integrado de programas que se utilizan para administrar los recursos y operaciones de un sistema
de computacin.
2.2) Programas de Traduccin (Lenguajes de programacin)
Programas que transforma las instrucciones que preparan las personas en un lenguaje adecuado en los cdigos
del lenguaje mquina que requieren las computadoras.
2.3) Programas de Aplicacin
Programas que se escriben para realizar una tarea especfica.
Ejm:
Word para procesar textos;
Power Point para procesar diapositivas;
Excel para procesar formularios, facturas que impliquen ejecucin de clculos y operaciones matemticas.
3. ALGORITMO. PROGRAMA Y LENGUAJE DE PROGRAMACIN
3.1) Algoritmos: Conjuntos de pasos para resolver un problema. Son independientes del lenguaje de programacin en
que se pueden expresar.
3.2) Programa: Conjunto de instrucciones (ordenes dadas a la computadora) que permiten ejecutar una determinada
tarea, es decir es un medio para lograr un fin. Es el algoritmo que se expresa en un formato determinado (lenguaje de
programacin)
3.3) Lenguajes de Programacin: Son lenguajes utilizados para desarrollar programas en computadoras. Los lenguajes
ms utilizados son: C++, pascal, etc.
Lenguaje Mquina .- Escritos en lenguajes directamente inteligibles por la computadora (cadenas de 0 y 1)
Ejm:
Direccin
Contenido
100
0010 0000 0000 0100
Lenguaje de Bajo Nivel (Ensamblador) formado por instrucciones conocidas como nemotcnicas.
Ejm:
ADD m,n, p
Programa
ensamblador
Programa fuente
Programa Objeto
Lenguajes de Alto Nivel.- Diseados para que las personas escriban y entiendan los programas ms fcilmente que los
lenguajes anteriores Son portables, es decir pueden ser ejecutados en diferentes tipos de computadoras.
Ejm: Basic
Cobol
Fortran
Lisp
C
Pascal, etc.
3.4) Traductores de Lenguaje Programas que traducen los programas fuentes hechos en lenguaje de alto nivel a cdigo
mquina. Pueden ser:
Intrprete
Programa fuente
Interprete
Traduccin y
ejecucin lnea a lnea
Compilador
Programa objeto
Programa Objeto
Montador o Enlazador
Programa ejecutable
en lenguaje mquina
Analisis del
problema
Diseo del
algoritmo
Codificacin del
algoritmo
Verificacin del
algoritmo
Ejecucin del
programa
Validacin del
programa
Programa de
trabajo
Definicin del
problema
Datos de
entrada
Datos de salida
Resultados
Diseo del algoritmo. Puede ser definido como la secuencia ordenada de pasos, sin ambigedades, que conducen a la
solucin de un problema.
Verificacin de algoritmos. Una vez terminado de escribir un algoritmo es necesario comprobar que realiza las tareas
para las que se ha diseado y produce el resultado correcto y esperado. Para esto aplicamos la Prueba de escritorio.
Comprobacin manual usando datos significativos que abarquen todo el posible rango de valores.
1.2.- Fase de implementacin
Una vez que el algoritmo esta diseado, representado grficamente mediante una herramienta de programacin
(Diagrama de flujo, diagrama de N-S o pseudocdigo) y verificado se debe pasar a esta fase de codificacin, traduccin
de un algoritmo a un determinado lenguaje de programacin, que deber ser completada con la ejecucin y
comprobacin del programa en una computadora.
2. CONCEPTO DE ALGORITMO
Es el conjunto de instrucciones que especifican la secuencia de operaciones a realizar, el orden para resolver un
sistema especifico o clase de problema, se denomina algoritmo. En otras palabras un algoritmo es una formula para la
solucin de un problema.
Para realizar un proceso en la computadora se le debe suministrar al procesador un algoritmo adecuado, por
ejemplo al cocinero debe drsele una receta, al pianista una partitura, y as sucesivamente considerando al cocinero y al
pianista como procesadores.
En la computadora el algoritmo ha de expresarse de una forma que recibe el nombre de programa, un programa
se escribe en un lenguaje de programacin, y a la actividad de expresar un algoritmo en forma de programa se llama
Programacin. Cada paso en el algoritmo esta expresado por medio de instrucciones, cada una de las cuales especifica
las operaciones que debe realizar la computadora.
Para llegar a la realizacin de un programa es necesario el diseo previo de un algoritmo, de modo que sin
algoritmo no hay programa.
Los algoritmos son independientes tanto del lenguaje de programacin en que se expresan como de la
computadora donde se ejecutan, en cada problema el algoritmo se puede expresar en un lenguaje diferente de
programacin y ejecutarse en una computadora distinta, sin embrago el algoritmo ser siempre el mismo. As por
ejemplo en una analoga con la vida diaria, una receta de un plato de comida. Se puede expresar en espaol, ingles o
francs, pero en cualquiera que sea el lenguaje, los pasos para la elaboracin de el, se realizara sin importar el idioma.
En la ciencia de la computacin y en la programacin, los algoritmos mas importantes que los lenguajes de
programacin o las computadoras. Un lenguaje de programacin es tan solo un medio para expresar un algoritmo y una
computadora es solo un procesador para ejecutarlo. Tanto el lenguaje de programacin como la computadora son los
medios para obtener un fin: conseguir que el algoritmo se ejecute y efecte el proceso correspondiente.
Dada la importancia del algoritmo en la ciencia de la computacin un aspecto muy importante ser el diseo de
algoritmos. Para el diseo de la mayora de los algoritmos se requiere creatividad, lgica, secuencia y orden. En esencia
la solucin de un problema se puede expresar mediante un algoritmo.
2.1.- Caractersticas de los algoritmos
Las caractersticas fundamentales de que debe cumplir todo algoritmo son:
Lenguaje espaol.
Formulas.
Diagramas de flujo.
Diagrama N-S (Nassi-Schneiderma).
Lenguaje de codificacin de algoritmos (Pseudocodigo).
Los mtodos 1 y 2 no suelen ser fciles de transportar en un programa. Una descripcin en espaol narrativa no
es satisfactorio ya que es demasiado prolija y generalmente ambigua, una formula, sin embargo es un buen sistema de
representacin, por ejemplo la formula para halla el rea de un circulo.
S = x R2
Signfica
1.
2.
3.
Eleve R al cuadrado
Reemplac el valor de el smbolo por 3.141592
Multiplique el resultado del paso 1 por le paso 2
Sin embargo no es frecuente que un algoritmo pueda ser expresado por medio de una formula.
Diagramas de flujo
Un diagrama de flujo (FlowChart) es una de las tcnicas de representacin de algoritmos mas antigua y a la vez
mas utilizada, un diagrama de flujo en un diagrama que utiliza los smbolos (cajas) estndares, cada caja representa un
comando. En su interior de las cajas los pasos a seguir por el algoritmo unidos por flechas entre si, denominadas lneas
de flujo que indican la secuencia en que se deben ejecutar
Diagrama
6
7
8
si
no
Funcin
Terminal (representa el comienzo, inicio, y el final, fin de un programa.
Puede representar tambin una parada o interrupcin programada que sea
necesario realizar en un programa)
Entrada / Salida (cualquier tipo de introduccin de datos en la memoria desde los
perifricos, entrada, o registro de la informacin procesada en un perifrico
salida)
Proceso (cualquier tipo de operacin que pueda originar cambio de valor, formato
o posicin de la informacin almacenada en la memoria, operaciones aritmticas,
de transferencia, etc.)
Desiscin ( indica operacione slgicas o de comparacin entre datos
[normalmente dos] y en funcin del resultado de la misma determina cual de los
distintos caminos alternativos del programa se debe seguir; normalmente tiene
dos salida [SI , NO]
Decisin mltiple (en funcin del del resultado de la comparacin se seguir uno
de los diferentes caminos de acuerdo con dicho resultado
Conector (sirve para enlazar dos partes cuales quiera de un ordinograma a travs
de un conector en la salida y otro conector en la entrada. Se refiere a la conexin
en la misma pgina del diagrama)
Lneas de conexin (indica el sentido de la ejecucin de las operaciones y a la vez
como unin entre bloques
Conector (conexin entre dos puntos del organigrama situados en paginas
diferentes)
Llamada a subrutina o a un proceso predeterminado ( una subrutina en un modulo
independiente del programa principal, que trecibe un entrada precedente de dicho
programa, realiza una tarea determinada y regresa, al terminar al programa
principal)
10
11
12
13
Comentario (se utiliza para aadir comentarios clasificados a otros smbolos del
diagrama de flujo. Se pueden dibujar a cualquier lado del smbolo)
Se puede escribir mas de un paso del algoritmo en una sola caja excepto en al del inicio y fin, el uso de las flechas
significa que la caja no necesita estar escrita debajo de su predecesora, sin embargo abusar demasiado de esta
flexibilidad conduce a diagramas de flujo complicados e ininteligibles.
Ejemplo de diagrama de flujo:
INICIO
SI
A>=0
"EL NUMERO ES
POSITIVO
NO
"EL NUMERO ES
NEGATIVO"
FIN
Diagramas de Nassi-Schneiderman (N-S)
El diagrama N-S de Nassi-Schneiderman (conocido tambien como Chapin) es como un diagrama de flujo en el
que se omiten las flechas de unin y las cajas son contiguas. Las acciones sucesivas se escriben en cajas sucesivas y
como en los diagramas de flujo se pueden escribir diferentes acciones en una caja.
Ejemplo de diagrama de Nassi-Schneiderman (N-S)
Inicio
Leer (a)
A>=0
True
False
fin
Pseudocdigo
El pseudocdigo es un lenguaje de especificacin (descripcin de algoritmos). El uso de tal lenguaje hace el
paso a la codificacin final ( esto es la traduccin al lenguaje de programacin final)
El pseudocdigo naci como un lenguaje similar al ingles y era un medio de representar bsicamente las
estructuras de control de programacin, se considera un primer borrador, el pseudocdigo no puede ser ejecutado por
ninguna computadora. La ventaja del pseudocdigo es que en su uso, en la planificacin de un programa.
Ejemplo de Pseudocdigo:
Inicio
Leer un valor para A
Si el valor de A es mayor o igual que Cero entonces
Escribir que el numero ingresado es positivo
Sino
Escribir que el numero ingresado es negativo
fin
Para disear un algoritmo se debe comenzar por identificar las tareas mas importantes para resolver le
problema y disponerlas en le orden en el que han de ser ejecutadas. Los pasos en esta primera descripcin de
actividades debern ser refinados aadiendo detalles a los mismo e incluso, algunos de ellos, pueden requerir un
refinamiento adicional antes que podamos obtener un algoritmo claro preciso y completo. Este mtodo de diseo de los
algoritmos en etapas, yendo de los conceptos generales a los de detalle a travs de refinamientos sucesivos, se conoce
como mtodo descendente (Top Down). En un algoritmo se debe considerar tres partes:
1.
2.
3.
Como ejemplo imagnese que desea desarrollar un algoritmo que calcule la superficie de un rectngulo
proporcionndole su base y altura. Lo primero que deber hacer es plantearse y contestar a las siguientes preguntas:
Especificaciones de entrada
-
Especificaciones de salida
-
Como habamos mencionado antes el algoritmo debe ser independiente de cualquier lenguaje de programacin
particular pero fcilmente traducible a alguno de ellos.
Taza de te
Bolsa de te, agua
pitido de tetera, aspecto de la fusin.
Despus de echar agua en al tetera, se pone al fuego y se espera a que el agua hierva (hasta que suene el
pitido de la tetera). Introducimos el te y se deja un tiempo hasta que este hecho.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Tomar la tetera.
Llenar de agua.
Encender el fuego.
Poner la tetera al fuego.
Mientras no hierva el agua esperar.
Tomar la bolsa de te
Introducir en la tetera
Mientras no este hecho el te esperar
Echar el te a al taza.
Fin.
10
Datos de salida:
Datos de entrada:
Rueda reparada
Rueda pinchada, rueda de repuesto, herramientas
Despus de desmontar la rueda se procede a reemplazar por el neumtico bueno u se procede a guardar
todas las herramientas
1.
2.
Inicio.
Si gato del coche esta averiado llamar a la estacin de servicio y bifurcar al punto 11; en caso contrario,
continuar el proceso.
3. Levantar el coche con el gato.
4. Aflojar y sacar los tornillos de las ruedas.
5. Si NO todos los tornillos estn flojos y quitados, bifurcar al paso 4; en caso contrario, continuar el proceso.
6. Quitar la rueda.
7. Poner la rueda de repuesto.
8. Poner los tornillos y apretarlos.
9. Si NO estn puestos todos los tornillos volver al paso 8, en caso contrario continuar el proceso.
10. Bajar el gato.
11. Fin.
3.- Algoritmo para ir al cine
Anlisis del problema
Datos de salida:
Datos de entrada:
Datos auxiliares:
Ver la pelcula.
Nombre de la pelcula, direccin de la sala, hora de proyeccin
Entrada, sitio.
Despus de echar agua en al tetera, se pone al fuego y se espera a que el agua hierva (hasta que suene el
pitido de la tetera). Introducimos el te y se deja un tiempo hasta que este hecho.
1. Tomar el peridico.
2. Mientras no lleguemos a la cartelera pasar la hoja.
3. Mientras no se acabe al cartelera leer pelcula.
4. Si nos gusta recortarla.
5. Elegir una de las pelculas seleccionadas
6. Trasladarse a la sala
7. Si NO hay entadas bifurcar al punto 16; caso contrario continuar
8. Si hay cola, ponerse al ultimo.
9. Mientras no llegue a la taquilla avanzar.
10. Si NO hay entradas bifurcar al punto 16; caso contrario compra entrada
11. Leer el lugar de la entrada
12. Buscar lugar
13. Sentarse
14. Ver pelcula
15. Fin
Ejercicios Propuestos
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
11
CAPITULO II
TEMA III.- Elementos del Algoritmo
1.- ESTRUCTURAS DE DATOS
Una estructura de datos es una coleccin de datos que pueden ser caracterizados por su organizacin y las
operaciones que se defina en ellas
Las estructuras de datos son muy importantes en los sistemas de computadora. Los tipos de datos ms
frecuentes utilizados en los diferentes lenguajes de programacin son:
Estndar
Datos simples
Definido por el
programador
Universo de datos
Estticos
Datos estructurados
Dinmicos
Entero (integer)
Real (real)
Carcter (char)
Lgico (boolean)
Subrango (Subrange)
Enumerativo (enumerated)
Array (vector / matriz)
Registro
Archivo (Fichero)
Conjunto
Cadena (string)
Lista (pila / cola)
Lista enlazada
rbol
Grafo
Los tipos de datos simples o primitivos significan que no estn compuestos por otras estructuras de datos; los
ms frecuentes y utilizados por casi todos los lenguajes son: enteros, reales carcter (char) y lgicos (boolean), siendo
los tipos subrango y enumerativos propios de lenguajes estructurados Pascal. Los tipos de datos compuestos estan
construidos basados en tipos de datos primitivos; el ejemplo mas representativo es la cadena (string) de caracteres.
Los tipos de datos simples pueden ser organizados en diferentes estructuras de datos: estticos y dinmicos.
Las Estructuras de datos estticos son aquellas en las que el tamao ocupado en memoria se define antes que el
programa se ejecute y no puede modificarse dicho tamao durante la ejecucin del programa. Estas estructuras estn
implementadas en casi todos los lenguajes de programacin array (vectores tablas matrices), registros, ficheros (los
conjuntos son especficos del lenguaje Pascal)
Las estructuras de datos dinmicos no tienen las limitaciones o restricciones en el tamao de la memoria
ocupada que son propias de las estructuras estticas. Mediante el uso de un tipo de datos especfico, denominado
puntero, es posible construir estructuras de datos dinmicas que son soportadas por la mayora de los lenguajes, y en
aquellos que si tienen estas caractersticas ofrecen soluciones eficaces y efectivas en la solucin de problemas de
problemas complejos
1.1.- Datos de tipo numrico
El tipo numrico es el conjunto de los valores numricos. Estos pueden representarse en dos formas distintas:
tipo numrico entero (integer o int)
tipo numrico real (real o float)
Enteros.- El tipo entero es un subconjunto finito de los nmeros enteros. Los enteros son nmeros completos, no tienen
componentes fraccionarios o decimales y pueden ser negativos o positivos
Ejemplo:
5
6
1340
-15
4
0
20
17
-1200
Reales.- El tipo real consiste en un subconjunto de los nmeros reales. Los nmeros reales siempre tienen un punto
decimal y pueden ser positivos o negativos. Un nmero real consta de una parte entera y una parte decimal
Ejemplo:
0.08
0.1
3.7485
-3.1
3745.2
-15.25
Existe un tipo de representacin denominado notacin exponencial o cientfica y que se utiliza para nmeros
muy grandes o muy pequeos
Ejemplo:
12
367520100000000000000
se representa en notacin cientfica descomponindola en grupos de tres dgitos:
367 520 100 000 000 000 000
y posteriormente en forma de potencias de 10
3.675201 x 1020
del mismo modo:
0.0000000000302579
se representa:
3.02579 x 10-11
Una cadena (string) de caracteres es una sucesin de caracteres que se encuentran delimitados por una comilla
(apstrofo) o dobles comillas, segn el tipo de lenguaje de programacin. La longitud de una cadena de caracteres es el
nmero de ellos comprendido entre los separadores o limitadores. Algunos lenguajes tiene datos tipo cadena.
Ejemplo:
Hola Miguel
8 de octubre de 1879
Sr. Delgado
2.- CONSTANTES Y VARIABLES
Los programas de computadoras contienen ciertos valores que no deben cambiar durante la ejecucin del
programa. Tales valores se llaman constantes. De igual forma existen otros valores que cambiaran durante la ejecucin
del programa a estos se les llamara variables.
Una constante es una partida de datos (objetos ) que permanecen sin cambios durante todo el desarrollo del
algoritmo o durante la ejecucin del programa.
Una variable es un objeto o partida de datos cuyo valor puede cambiar durante el desarrollo del algoritmo o
ejecucin del programa.
Una variable que es de un cierto tipo puede tomar nicamente valores de ese tipo. Una variable de carcter, por
ejemplo puede tomar valor slo caracteres, mientras que una variable entera puede tomar solo valores enteros.
Si se intenta asignar un valor de un tipo a un variable de otro tipo se producir un error de tipo. Una variable se
identifica por los siguientes atributos:
NOMBRE que lo asigna y TIPO que describe el uso de la variable
La forma de representar una variable y una constante es mediante los identificadores, estos suelen constar de
varios caracteres alfanumricos, de los cuales el primero es normalmente es una letra, no existe espacios entre ellas,
nunca empiezan con un nmero, nunca usan caracteres especiales, no podrn usar palabras reservadas.
13
Ejemplo:
A123
fila
NOTAS
grupo_dia
3.- EXPRESIONES
Las expresiones son combinaciones de constantes variables signos de operacin, parntesis y nombres de
funciones especiales. Las mismas ideas son utilizadas en notacin matemtica tradicional, por ejemplo
a+(b+3)+ c
+b+(b-5)+ c
Aqu los parntesis indican el orden de calculo y representa la funcin de raz cuadrada. Cada expresin
toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecucin de las
operaciones indicadas.
Una expresin consta de operandos y operadores segn sea el tipo de objetos que se manipula las expresiones
se clasifican en:
- Aritmtica
- Lgicas
- Carcter
El resultado de la expresin aritmtica es de tipo numrico, el resultado de la expresin relacional o y de una
lgica es de tipo lgico, el resultado de una expresin carcter es de tipo carcter.
3.1.- Expresiones Aritmticas
Las expresiones aritmticas con analgicas a las formulas matemticas. Las variables y constantes son
numricas (real o entera) y las operaciones son la aritmticas.
3.2.- Operadores aritmticos
Nro
1
2
3
4
5
6
7
Operador
,^,**,
+
*
/
Div
Mod
Operacin
Exponenciacin
Suma
Resta
Multiplicacin
Divisin
Divisin entera
Modulo (resto)
Operando
Entero o real
Entero o real
Entero o real
Entero o real
Entero o real
Entero
Entero
Resultado
Entero o real
Entero o real
Entero o real
Entero o real
Entero o real
Entero
Entero
Ejemplo:
Expresin Aritmticas
2+6
5x3
6
2
68
Expresiones informticas
2+6
5*3
6/2
6**8, 68, 6^8, 68
Los operadores div y mod realizan las operaciones siempre y cuando sus operandos sean datos de tipo entero.
Ejemplo:
19 div 3 ; el resultado de esta operacin ser igual a 6
19 mod 3; el resultado de esta operacin ser igual a 1
3.3.- Reglas de prioridad
Las expresiones que tienen dos o mas operandos requieren unas reglas matemticas que permitan determinar el
orden de las operaciones, se denomina reglas de prioridad o precedencia y son:
1.
Las operaciones que estn encerradas entre parntesis se evalan primero, si existen diferentes parntesis
anidados (interiores unos a otros), las expresiones mas internas se evalan primero.
14
2.
las operaciones aritmticas dentro de una expresin suelen seguir el siguiente orden de prioridad.
operadores *,/
operadores +,-
En caso de coincidir varios operadores de igual prioridad en una expresin o subexpresin encerrada entre parntesis, el
orden de prioridad en este caso es de izquierda a derecha.
3.4.- Operadores de relacin
Los operadores relacionales o de relacin permiten realizar comparaciones de valores de tipo numrico o
carcter. Los operadores de relacin sirve para expresar las condiciones en los algoritmos.
El formato general para las comparaciones es:
Expresin 1
operador de relacin
Operador
<
>
=
<=
>=
<>
expresin 2
Significado
Mayor que
Menor que
Igual
Menor o igual que
Mayor o igual que
Diferente de
M
P
N
N
M
P Q
M N
P Q
n
p
R
Q
S
5 ( X Y )
Expresin algortmica
M/N+P
M + N / (P Q)
(M + N) / (P Q)
A B
X Y
E
U
A
X
(Z W )
Y
2
(M + N / P) / (Q R / S)
5 * (X + Y)
A^2+B^2
(X + Y) / (U + W / A)
X / Y * (Z + W)
Operaciones
3+84
8+21+24 29+24
-8
(33+12)/5 45/5
15
Resultado
87
53
-8
9
2^2*3
3+2*(18-4^2)
16*6-3*2
-4*7+2^3/4-5
4*3
3+2*(18-16) 3+2*2 3+4
96 6
-4*7+8/4-5 -28+8/4-5 -28+2-5 -26-5
12
7
90
-31
Operaciones
5+25+10
5+25*10
5+25/10 5+2.5
5+ 25 DIV 10 5+2
5+25 MOD 10 5+5
(5+25) DIV 10 30 DIV 10
5+(25/10) 5+ 2.5
Resultado
40
255
7.5
7
10
3
7.5
N2
6
1
2
5
9
5
Operaciones
<
>
=
<=
>=
<>
Resultado
Verdadero
Falso
Falso
Falso
Verdadero
Falso
Ejercicios Propuestos
1.
4.
5.
x2 y2
z2
3x 2 y
2z
ab
cd
16
x y 3x
x
5
y 2 y1
x 2 x1
4x 2 2x 7
xyz
4 3
R
3
6.
a
bc
2R
x 2 x x 2 y 2 y1 2
Escribir las siguientes expresiones algortmicas en expresiones algebraicas.
B^2 4*A*C
3 * X ^ 4 5 * X ^ 3 + X * 12 17
(B + D) / (C + 4)
(X ^ 2 + Y ^ 2) ^ (1 / 2)
a)
b)
c)
d)
17
Diagrama N-S
Pseudocdigo
ACCION 1
ACCION 2
ACCION 3
ACCION 1
ACCION 1
ACCION 2
ACCION 2
ACCION 3
ACCION 3
Funcin
ABS(X)
ARCTAN(X)
COS(X)
CUADRADO (X)
INT(X)
EXP(X)
LN(X)
LOG10(X)
SQRT(X)
ROUND(X)
SIN(X)
TRUNC(X)
Descripcin
Valor absoluto de x
Arcotangente de x
Coseno de x
Cuadrado de x
Entero de x
e elevado a x
Logaritmo neperiano de x
Logaritmo base 10 de x
Raiz cuadrada de x
Redondeo de x
Seno de x
Parte entera de x
Ejemplos:
18
Tipo argumento
Entero o real
Entero o real
Entero o real
Entero o real
Real
Entero o real
Entero o real
Entero o real
Entero
Real
Entero o real
Real
Resultado
Entero o real
Real
Real
Entero o real
Entero
Real
Real
Real
Real
Entero
Real
Entero
Funcin
Resultado
ABS(9)
9
ABS(-12)
12
CUADRADO (4)
16
ROUND(6.6)
7
ROUND(3.1)
3
ROUND(-3.2)
-3
TRUNC(5.6)
5
TRUNC(3.1)
3
TRUNC(-3.8)
-3
EJERCICIOS PARA EL TEMA IV.
1.- Escribir las siguientes expresiones algebraicas en algortmicas.
a)
3 8 8
3
2 lo 3
e
b)
3 cos
1
2
34
2.- Determine que valores toma las variables siguientes despus de realizar las operaciones
Expresin de Asignacin
A 4
B A
B A + 3
A 5
B A + 6
A A + 1
B A 5
A 3
B 20
CA + B
B A + B
A B C
Resultado
9.
10.
11.
12.
13.
14.
Obtener la edad de una persona en meses, si se ingresa su edad en aos y meses. Ejm: 3 aos 4 meses da 40
meses.
Colocar a un apellido el prefijo Profesor Ejm: ingresado Gmez imprima Profesor Gmez
Escriba un algoritmo que permita convertir un valor ingresado en pies a metros. Si 1 pie = 30.48 cm.
Ingresado un ngulo en grados sexagesimales, lo convierta a radianes. 180 grados sexagesimales =
3.1416 radianes.
Convertir una velocidad expresada en km/h a m/s Nota 1Km=1000 m y 1h=3600 s.
Calcular y mostrar el rea de un tringulo conocidos la base y altura.
Calcular el rea y permetro de un tringulo, conocidos sus lados.
Calcule el inters (int) generado por un capital depositado (capdep) durante cierta cantidad de perodos
(cp) a una tasa de inters determinada (tasa) expresada en porcentaje. Use la frmula: Monto =
(capdep) * (1 + tasa / 100)cp Int = Monto capdep
Escriba un algoritmo que lea la velocidad en km/h y el nmero de horas transcurridas por un mvil,
para determinar la distancia recorrida.
Determine el promedio de 3 nmeros reales.
Haga un algoritmo que permita mostrar el nombre y el salario semanal del empleado de una compaa.
El algoritmo debe permitir ingresar el nombre, el nmero de horas trabajadas y la tarifa por hora.
Hacer un algoritmo que me permita ingresados dos nmeros calcular las 4 operaciones bsicas (suma,
resta, multiplicacin, divisin) y potencia con exponente real . El algoritmo debe mostrar los nmeros y
los resultados.
Hacer un algoritmo que permita ingresar un ngulo en grados sexagesimales y calcule y muestre el
seno, coseno y tangente de dicho ngulo. Nota: Para funciones trigonomtricas el ngulo debe ser
expresado en radianes
Un corredor reporta el nmero de minutos que corre en un ao. Escribir un programa que d como
salida la cantidad de tiempo equivalente en meses, semanas, das, horas y minutos.
19
CAPITULO III
TEMA V.- Estructuras de seleccin
1.- OPERADORES LGICOS
Los operadores lgicos o bolanos bsicos son:
NO (NOT)
A
Verdadero
Falso
No A
Falso
Verdadero
Y (AND)
A
Verdadero
Verdadero
Falso
Falso
B
Verdadero
Falso
Verdadero
Falso
AyB
Verdadero
Falso
Falso
Falso
O (OR)
A
Verdadero
Verdadero
Falso
Falso
B
Verdadero
Falso
Verdadero
Falso
AyB
Verdadero
Verdadero
Verdadero
Falso
Estos operadores con respecto a las prioridades son los ltimos en resolverse
2.- ESTRUCTURAS SELECTIVAS O DECISIN
Para la aplicacin se debe tener en cuenta las expresiones lgicas cuyo valor siempre verdadero o falso.
Recuerde que existes dos constantes lgicas, verdad (true) y falso (false) y que las variables lgicas pueden tomas solo
estos dos valores, se denomina tambin expresiones booleanas.
Las expresiones lgicas se forman combinando constantes lgicas y otras expresiones loginas, utilizando los
operadores lgicos not, and y or, y los operadores de relacin.
En conclusin la estructuras selectivas o decisin o comparacin o pregunta, se ejecutan unas acciones u otras
segn se cumpla o no un adeterminada condicin; pueden ser: simples, dobles, o multiples.
2.1.- Simples.- Se evala la condicin si esta y si esta da como resultado verdad se ejecuta una determinada accin o
grupo de acciones, en caso contrario se salta dicho grupo de acciones.
Diagrama de flujo
Diagrama N-S
20
Pseudocdigo
SI <condicin> entonces
<Accin o acciones>
fin_si
CONDICION
SI
NO
CONDICION
ACCION
O ACCIONES
SI
ACCION
O
ACIONES
2.2.- Dobles.- Cuando el resultado de evaluar la condicin es verdad se ejecuta una determinada accin o grupo de
acciones y si el resultado es falso otra accin o grupo de acciones diferentes.
Diagrama de flujo
Diagrama N-S
CONDICION
SI
SI
NO
NO
CONDICION
ACCION 1
ACCION 1
ACCION 2
Pseudocdigo
SI <condicin> entonces
<Accin 1>
SI_NO
<Accin 2>
fin_si
ACCION N
2.3.- Mltiples.- Se ejecutan unas acciones u otras segn el resultado que se obtenga al evaluar una expresin. Se
considera que resultado ha de hacer un tipo ordinal es decir de un tipo de datos en el que cada uno de los elementos que
construyen el tipo, excepto el primero y el ultimo, tienen un nico predecesor y un nico sucesor
Diagrama de flujo
Diagrama N-S
CONDICION
V1
CONDICION
V2
V3
Vn
ACCION 1
ACCION N
Pseudocdigo
Segn_sea <expresion> hacer
<lista1>:<Accin 1>
<lista2>:<Accin 2>
.......................
SI_NO
<Accin n>
fin_segun
21
30.
31.
32.
33.
34.
Precio_Unitario
24.05
105.00
10.35
16.00
Si la cuenta total es de s/.1000.00 o ms, se hace un descuento del 2%; si es mas de s/.800.00 y menos de
s/.1000.00 se hace un descuento del 1%.
La entrada consta de estos elementos; nombre, un ingreso bruto de la persona y la clave del municipio (
M= miraflores, S= Surco, L= La Molina ). Los tres municipios tienen diferentes tasas de impuestos
2%,1.5% y 3% respectivamente. Escriba un programa que imprima un listado del nombre, clave del
municipio, ingreso bruto, tasa de impuestos e impuesto.
Dado un valor que representa un tiro de dados, imprima uno de estos mensajes con base al valor
obtenido con los dados: usted gana (7,11) , usted pierde (2,12) ,vuelva a tirar ( cualquier otro
valor)
Dados 3 nmeros que representan una fecha, el segmento deber imprimir la fecha. Si los nmeros
ingresados son: 11, 7, 85 la fecha a imprimir sera Noviembre, 7 de 1985.
Escriba un algoritmo que lea un nmero entero positivo N (debe validar la entrada). Si N termina en
0,5,7 u 8 se cambia por el doble, si termina en 1 u 9 por la dcima parte, en otro caso que mantenga su
valor.
La tasa de impuestos sobre sueldos est basada en claves e ciudad, como se muestra en la tabla: Clave de
ciudad Tasa de impuesto
22
M
0.005
R
0.01
J
0.03
B
0.035
otros
0.001
Determine los impuestos de un sueldo anual para la clave de ciudad determinados.
23
CAPITULO IV
TEMA VI.- Estructuras Repetitivas
Las computadoras estn especialmente diseadas para todas aquellas aplicaciones en las cuales una operacin o
conjunto de ellas deben repetirse muchas veces. Un tipo muy importante de estructura es el algoritmo necesario para
repetir una o varias acciones un numero determinado de veces. Un programa que lee una lista de nmeros puede repetir
la misma secuencia de mensajes al usuario e instrucciones de lectura hasta que se lean todos los nmeros de un archivo.
Las estructuras que repiten una secuencia de instrucciones un numero determinado de veces o denominadas
bucles, y se llama iteracin al hecho de repetir la ejecucin de una secuencia de acciones.
Tomaremos el siguiente ejemplo: Se desea sumar una lista de nmeros escrito por teclado (por ejemplo,
calificaciones de los alumnos de una clase). El medio conocido hasta ahora es leer los nmeros y aadir sus valores a
una variable SUMA que contenga las sucesivas sumas parciales. La variable SUMA se hace igual a cero y a
continuacin se incrementa en le valor del numero cada vez que uno de ellos se lea. El algoritmo que resuelve este
problema es:
INICIO
S = 0
NUMERO
S = S + NUMERO
NUMERO
S = S + NUMERO
NUMERO
S = S + NUMERO
INICIO
Y as sucesivamente para cada nmero de la lista. En otras palabras el algoritmo repite muchas veces las
acciones:
NUMERO
S = S + NUMERO
Tales opciones repetitivas se denomina bucles o lazos. La accin (o acciones) que se repiten en un bucle se
denomina iteracin. Las dos principales preguntas a realizarse en el diseo de un bucle son:
24
Qu contiene el bucle?
Cuntas veces se debe repetir?
Cuando se utiliza un bucle para sumar una lista de nmeros, se necesita saber cuantos nmeros se han de
sumar. Para ello necesitaremos conocer algn medio para detener el bucle. En el ejemplo siguiente usaremos la tcnica
de solicitar al usuario el numero que se desea, por ejemplo, N. Existen dos procedimientos para contar el numero de
iteraciones usar la variable TOTAL que se inicializa a la cantidad de numerosa que se desea y a continuacin se
decrementa en uno cada vez que el bucle se repite (este procedimiento aade una accin mas al cuerpo del bucle:
TOTALTOTAL-1) o bien inicializar la variable TOTAL e 0 o en 1, e ir incrementando en uno a cada iteracin hasta
llegar al numero deseado.
Inicio
INICIO
S=0
S0
Leer(n)
TOTALN
TOTAL=N
NO
TOTAL>0
SI
NUMERO
Leer(numero)
S S + numero
S = S + NUMERO
TOTAL TOTAL 1
Fin_mientras
TOTAL=TOTAL-1
"La suma de
numeros es:",S
INICIO
Fin
Bucle A
Bucle B
Bucle C
Bucles independientes
Bucles anidados
25
En muchas ocasiones se conoce de antemano el numero de veces que se desea ejecutar las acciones de un
bucle. En estos casos en los que el numero de iteraciones es fijo se deber usar la estructura FOR (para)
La estructura FOR ejecuta las acciones del cuerpo de un bucle un nmero especificado de veces y de modo
automtico controla el numero de iteraciones o pasos a travs del cuerpo del bucle.
Diagrama de flujo
Diagrama N-S
ACCIONES A
REPETIR
Siguiente (fin_para)
Pseudocdigo
PARA V=VI HASTA VF PASOS VP
<Accin 1>
.......................
<Accin N>
SIGUIENTE V
NOTA:
V- Variable
VI- Valor Inicial
VF- Valor Final
VP- Valor de secuencia de incremento
o decremento
Diagrama N-S
NO
CONDICION
MIENTRAS
SI
ACCIONES A
REPETIR
CONDICION
ACCIONES A REPETIR
Pseudocdigo
Diagrama N-S
ACCIONES A
REPETIR
ACCIONES A REPETIR
NO
CONDICION
REPETIR
CONDICION
SI
26
Pseudocdigo
REPETIR
<Accin 1>
<Accin 2>
.......................
<Accin N>
HASTA_QUE condicin
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
27