Vous êtes sur la page 1sur 37

Curso Propedutico

PENSAMIENTO ALGORTMICO

I N G E NI E R A E N S I S T E MA S C O MP U TAC I O NA L ES
I NG. EDUARDO RENE LPEZ VI CENTE
JULIO 2017

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


Competencias a Desarrollar

Analizar, disear y desarrollar soluciones de


problemas reales elaborando algoritmos
computacionales.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


Objetivo General

Aplicar las tcnicas algortmicas que ayuden a


desarrollar la lgica y faciliten el planteamiento de
soluciones a problemas computacionales.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


Temario

Temas Subtemas
1.1. Conceptos bsicos.
1.1.1. Definicin de lenguaje.
1.1.2. Definicin de algoritmo.
1. Introduccin a los Algoritmos 1.2. Etapas de solucin de un
problema.
1.2.1. Anlisis del problema.
1.2.2. Construccin del algoritmo.
1.2.3. Verificacin del algoritmo.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


Temas Subtemas
2.1. Entidades primitivas para el desarrollo de
algoritmos.
2.1.1. Tipos de datos.
2.1.2. Expresiones.
2.1.3. Operadores y operandos.
2.2. Tcnicas para la formulacin de Algoritmos.
2.2.1. Diagramas de flujo.
2.2.2. Pseudocdigo.
2.3. Estructuras algortmicas.
2. Desarrollo de Algoritmos 2.3.1. Secuenciales.
Asignacin.
Entrada.
Salida.
2.3.2. Selectivas.
Si entonces.
Simple.
Doble.
Anidada.
2.3.3. Repetitivas.
Hacer para.
Hacer mientras.
10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM
Bibliografa

1. Luis Joyanes Aguilar, Fundamentos de Programacin, 2a. edicin,


Prentice Hall.
2. Osvaldo Cairo Battistutti, Metodologa de la Programacin,
Algoritmos, Diagramas de Flujo y Programas, 3a. edicin, Alfa
Omega.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


Recursos
Laptop.
Software PSeInt.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


1. Introduccin a los
Algoritmos

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


1.1 Conceptos Bsicos
Computadora: Es un dispositivo electrnico utilizado para procesar
informacin y obtener resultados. Los datos y la informacin se puede introducir
en la computadora como entrada(input) y a continuacin se procesan para
producir una salida(output).

Proceso de informacin en la computadora

Datos de Datos de
Proceso
Entrada Salida

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


Programa: es el conjunto de instrucciones escritas en un lenguaje de
programacin y que ejecutadas secuencialmente resuelven un problema
especifico.

Organizacin fsica de una computadora


CPU
Dispositivos de Unidad de Unidad
Dispositivos de
Entrada Control Arit-Log
Salida
Memoria

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


1.1.1 Definicin de Lenguaje

Lenguaje: Comunicacin:
Serie de smbolos Es un proceso
que sirven para complejo que
transmitir uno o mas requiere una serie
mensajes entre 2 de reglas simples,
entidades diferentes. pero indispensables
para poderse llevar
a cabo.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


Lenguaje de Programacin

Es un conjunto de smbolos, caracteres y reglas que le permiten a las


personas comunicarse con la computadora.

Los lenguajes de programacin tienen un conjunto de instrucciones


que nos permiten realizar operaciones de entrada/salida, clculo,
manipulacin de textos, lgica/comparacin y
almacenamiento/recuperacin.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


Clasificacin de lenguajes de programacin
Son aquellos cuyas instrucciones son
directamente entendibles por la computadora y
no necesitan traduccin posterior para que la
Lenguaje CPU pueda comprender y ejecutar el programa.
Maquina Las instrucciones en lenguaje maquina se
expresan en trminos de la unidad de memoria
mas pequea el bit(digito binario 0 o 1).
Lenguaje de
Bajo Nivel
(Ensamblador)
Son aquellos en la que las
Las instrucciones se escriben en Lenguaje de instrucciones o sentencias a la
cdigos alfabticos conocidos como Alto Nivel computadora son escritas con
mnemotcnicos para las operaciones y palabras similares a los
direcciones simblicas. lenguajes humanos(en general
en ingles), lo que facilita la
escritura y comprensin del
programa.
10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM
Ejemplos

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


1.1.2 Definicin de Algoritmo
Un algoritmo es una serie de pasos organizados que describe el
proceso que se debe seguir, para dar solucin a un problema
especifico.

Cualitativos
Son aquellos en los que Cuantitativos
se describen los pasos
Son aquellos en los que se
utilizando palabras.
utilizan clculos numricos
para definir los pasos del
proceso.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


Lenguajes Algortmicos
Es una serie de smbolos y reglas que se utilizan para describir
de manera explicita un proceso.
GRFICOS
Representan en
forma grafica.
(Diagrama de
flujo)

Tipos
NO GRFICOS
Representan en
forma
descriptiva.
(Pseudocdigo)

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


1.2 Etapas de solucin de un problema
1.2.1 Anlisis del problema
Una vez que se ha comprendido lo que se desea de la computadora, es necesario
definir:
Los datos de entrada.
Cual es la informacin que se desea producir(salida).
Los mtodos y formulas para obtener los datos.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


2. Desarrollo de
Algoritmos
2.1 Entidades primitivas para el desarrollo de algoritmos.
2.1.1 Tipos de datos
2.1.2 Expresiones
2.1.3 Operadores y operandos

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


2.1.1 Tipos de datos
Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carcter, 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.

Arreglos(Vectores, Matrices)
Registros Estructu
Archivos rados
Apuntadores
Simples Numricos
Lgicos
Alfanumricos(String)

Tipo de Datos

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


Tipos de Datos Simples
Datos Numricos: Permiten Datos alfanumricos (String): es una
representar valores escalares de secuencia de carcter alfanumricos
forma numrica, esto incluye a que permiten representar valores
identificables de forma descriptiva,
los nmeros enteros y los
esto incluye nombres de personas,
reales. Este tipo de datos direcciones etc. Este tipo de datos se
permiten realizar operaciones representan encerrados entre
aritmticas comunes. comillas.

Datos Lgicos: son aquellos que


solo pueden tener dos valores
(cierto o falso) ya que
representan el resultado de una
comparacin entre dos datos
(numricos o alfanumricos).

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


2.1.2 Expresiones
Las expresiones son combinaciones de constantes, variables, simbolos de operacin, parntesis
y nombres de funciones especiales. Por ejemplo:
a + (b + 3 ) / c
Cada expresin toma un valor que se determina tomando los valores de las vriables y
constantes implicadas y la ejecucin de las operaciones indicadas.
Una expresin consta de operadores y operandos. Segn sea el tipo de datos que manipulan,
se clasifican las expresiones en:
Aritmticas.
Relacionales.
Logicas.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


2.1.3 Operadores y Operandos
Operadores: son elementos que relacionan de forma diferente, los valores de una o mas
variables y/o constantes. Es decir, los operadores nos permiten manipular valores.

Tipo de operadores:
Aritmticos.
Relacionales.
Lgicos.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


2.2 Tcnicas para la formulacin de algoritmos
2.2.1 Diagramas de Flujo
un diagrama de flujo es la representacin grafica de un algoritmo. Tambin se puede decir que
es la representacin detallada en forma grafica de como deben realizarse los pasos en la
computadora para producir resultados.
Los smbolos utilizados han sido normalizados por el Instituto Norteamericano de
Normalizacin(ANSI).

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM
Recomendaciones para el diseo de los
Diagramas de Flujo
Se deben usar solamente lneas de flujo horizontales y/o verticales.
Se debe evitar el cruce de lneas utilizando conectores.
Se deben usar conectores solo cuando sea necesario.
No deben quedar lneas de flujo sin conectar.
Se deben trazar los smbolos de manera que se puedan leer de arriba hacia abajo y de izquierda
a derecha.
Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando el uso de
muchas palabras.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


2.2.2 Pseudocdigo
Mezcla de lenguaje de programacin y espaol (o ingles o cualquier otro idioma) que emplea,
dentro de la programacin estructurada, para realizar el diseo de un programa.
Ventajas de utilizar un Pseudocdigo a un Diagrama de Flujo:
Ocupa menos espacio en una hoja de papel.
Permite representar en forma fcil operaciones repetitivas complejas.
Es muy fcil para pasar de pseudocdigo a un programa en un lenguaje de programacin.
Si se siguen las reglas se puede observar claramente los niveles que tiene cada operacin.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


2.3 Estructuras Algortmicas
Las estructuras de operacin de programas son un grupo de formas de trabajo, que permiten,
mediante la manipulacin de variables, realizar ciertos procesos especficos que nos lleven a la
solucin de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:

Secuenciales Selectivas Repetitivas

Si Hacer
Asignacin. Entrada. Salida. Simple. Doble. Anidada. Hacer para.
entonces. mientras

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


2.3.1 Secuenciales
Las estructura secuencial es aquella en la que una accin(instruccin) sigue a otra en secuencia.
Las tareas se suceden de tal modo que la salida de una es la entrada de a siguiente y as
sucesivamente hasta el fin del proceso. Una estructura secuencial se representa de la siguiente
forma:
Inicio
Accion1
Accion2
.
.
accionN
Fin

Asignacin:

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


2.3.2 Selectivas o Condicionales
Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que en base
al resultado de esta comparacin, se siga un curso de accin dentro del programa. Cabe
mencionar que la comparacin se puede hacer contra otra variable o contra una constante,
segn se necesite. Existen dos tipos bsicos, las simples y las mltiples.
Simples: las estructuras condicionales simples se les conoce como Tomas de Decisin. Estas
tomas de decisin tienen la siguiente forma:
Si <condicin> Entonces
Accin(es)
Fin-si
Dobles: las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas
posibles en funcin del cumplimiento o no de una determinada condicin. Se representa de la
siguiente forma:

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


Si <condicin> Entonces
Accin(es)
Si no
Accin(es)
Fin-si
Donde:
Si Indica el comando de comparacin.
Condicin Indica la condicin a evaluar.
Entonces. Precede a las acciones a realizar cuando se cumple la condicin.
Accin(es). Son las acciones realizar cuando se cumple o no la condicin.
Si no.. Precede a las acciones a realizar cuando no se cumple la condicin.

Dependiendo de si la comparacin es cierta o falsa, se pueden realizar una o mas acciones.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


Mltiples: las estructuras de comparacin mltiples, son tomas de decisin especializadas que
permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso
una serie de instrucciones especificas. La forma comn es la siguiente:
Si <condicin> Entonces
Accin(es)
Si no
Si <condicin> Entonces
Accin(es)
Si no
Varias condiciones

Fin-si

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


Ejercicios
1. Disear un algoritmo que me permita determinar la edad de una persona y saber si es mayor
de edad o no.
2. Calcular el valor absoluto de un nmero.
3. Dado los siguientes datos de entrada: Saldo anterior, tipo de movimiento R(retiro) o
D(deposito) y monto de transaccin, obtener como dato de salida el saldo actual.
4. Construya un diagrama de flujo tal que dado como dato un nmero entero, determine e
imprima si el mismo es positivo, negativo o nulo.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


Ejercicios para resolver selectivas
simples:
1. Un hombre desea saber cuanto dinero se genera por concepto de intereses sobre la
cantidad que tiene en inversin en el banco. El decidir reinvertir los intereses siempre y
cuando estos excedan a $7000, y en ese caso desea saber cuanto dinero tendr finalmente
en su cuenta.
2. En un almacn se hace un 20% de descuento a los clientes cuya compra supere los $1000.
Cul ser la cantidad que pagar una persona por su compra?
3. Un obrero necesita calcular su salario semanal , el cual se obtiene de la siguiente manera:
Si trabaja 40 horas o menos se le paga $16.00 por hora.
Si trabaja mas de 40 horas se le paga $16.00 por cada una de las primeras 40 horas y $20
por cada hora extra.
4. Leer como dato de entrada dos nmeros y los imprima de forma ascendente.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


5. Una persona enferma, que pesa 70 kg, se encuentra en reposo y desea saber cuantas
caloras consume su cuerpo durante todo el tiempo que realice una misma actividad. Las
actividades que tiene permitido realizar son nicamente dormir o estar sentado en reposo.
Los datos que tiene son que estando dormido consume 1.08 caloras por minuto y estando
sentado en reposo consume 1.66 caloras por minuto.
6. Hacer un algoritmo que imprima el nombre del articulo, clave, precio original y su precio con
descuento. El descuento lo hace en base a la clave, si la clave es 01 el descuento es del 10% y
si la clave es 02 el descuento es del 20% (solo existen 2 claves).
7. Hacer un algoritmo que calcule el total a pagar por la compra de camisas. Si se compran 3
camisas o mas se aplica un descuento de 20% sobre el total de la compra y si son menos de 3
camisas un descuento del 10%.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


8. Una empresa quiere hacer una compra de varias piezas de la misma clase a una fabrica de
refacciones. La empresa, dependiendo del monto total de la compra, decidir que hacer
para pagar al fabricante.
Si el monto total de la compra excede de $500,000 la empresa tendr la capacidad de invertir de su
propio dinero un 55% del monto de la compra, pedir prestado al banco un 30% y el resto lo pagara
solicitando un crdito al fabricante.
Si el monto total de la compra no excede de $500,000 la empresa tendr capacidad de invertir de su
propio dinero un 70% y el restante 30% lo pagara solicitando crdito al fabricante.
El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le pague a crdito.
Imprimir la cantidad invertida, prstamo, crdito, inters.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


9. El gobierno del estado de Mxico desea reforestar un bosque que mide determinado numero de
hectreas. Si la superficie del terreno excede a 1 milln de metros cuadrados, entonces decidir
sembrar de la siguiente manera:

Porcentaje de la superficie del bosque Tipo de rbol


70% Pino
20% Oyamel
10% Cedro
Si la superficie del terreno es menor o igual a un milln de metros cuadrados, entonces decidir
sembrar de la siguiente manera:
Porcentaje de la superficie del bosque Tipo de rbol
50% Pino
30% Oyamel
20% Cedro

El gobierno desea saber el nmero de pinos, oyameles y cedros que tendr que sembrar en el bosque,
si se sabe que en 10 metros cuadrados caben 8 pinos, en 15 metros cuadrados caben 15 oyameles y en
18 metros cuadrados caben 10 cedros. Tambin se sabe que una hectrea equivale a 10 mil metros
cuadrados.

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM


10. Disear un algoritmo que permita leer 3 nmeros diferentes e imprimir el numero mayor de
los 3.
11. En un juego de preguntas a las que se responde Si o No gana quien responda
correctamente las tres preguntas . Si responde mal a cualquiera de ellas ya no se pregunta la
siguiente y termina el juego. Las preguntas son:
1. El diagrama de flujo es una tcnica para la formulacin de algoritmos?
2. PHP es un lenguaje de programacin?
3. En el lenguaje maquina no se utiliza 0 y 1?

10/08/2017 ING. EDUARDO RENE LOPEZ VICENTE E-MAIL: LERV.200516@GMAIL.COM

Vous aimerez peut-être aussi