Algoritmos y Programación

Page 1

Edición N°01 - Junio 2017.

Crear, Innovar, Implantar nuevas tecnologías

-Un modo riguroso y sistemático.

Algoritmos

Secuenciales –

Algoritmos

Condicionales –

Algoritmos

Cíclicos-

- Un programador de computadoras antes de nada es un solucionador de problemas.

Definiciones, Características, Importancia,

Métodos,

Aplicabilidad, Entre

Otros Aspectos de Interés.

SOLUCIÓN DE PROBLEMAS EN LA INGENIERÍA


El Objetivo Principal es…

Introducción

Resolver problemas mediante una computadora. Un programador de computadoras antes de nada es un solucionador de problemas. Por lo que para llegar a ser un programador eficaz se necesita aprender a resolver problemas de un modo riguroso y sistemático. Por esto la materia tiene como nombre Metodología de la programación.

Un problema es un asunto o conjunto de cuestiones que se plantean para ser resueltas, la naturaleza de los problemas

Antes de comenzar con el tema vamos a considerar el significado de la palabra ALGORITMO esta palabra se deriva de la traducción al latín de la palabra árabe ALKHÔWARÎZMI, nombre de un matemático y astrónomo árabe que escribió un tratado

varía con el ámbito o con el contexto donde están planteados: así existen problemas matemáticos, físicos, filosóficos, entre otros.

sobre la manipulación de números y ecuaciones en el siglo IX, titulado KITAB AL-JABR W’ALMUGALABA, la palabra álgebra se derivó por su semejanza sonora de AL-JABR. Etimológicamente la palabra problema deriva del griego PROBALLEIN y significa “algo lanzado hacia delante”.

Sintaxis de un algoritmo:


Los Algoritmos Son… “Un Algoritmo es una secuencia de operaciones detalladas y no ambiguas, que al ejecutarse paso a paso, conducen a la solución de un problema”. En otras palabras es un conjunto de reglas para resolver una cierta clase de problema.

“Algoritmo es un conjunto de instrucciones que especifican la secuencia de operaciones a realizar, en orden, para resolver un sistema específico o clase de problema”.

“En otras palabras un algoritmo es una fórmula para la solución de un problema.”

“Todo

problema

se

puede

describir por medio de un


Características de un Algoritmo Las propiedades de un algoritmo son las siguientes: a) El algoritmo debe ser preciso e indicar el orden de realización de cada paso. b) El algoritmo debe ser definido, si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.

c) El algoritmo debe ser finito, si se sigue un algoritmo terminar momento;

se debe en algún o sea debe

tener un número finito de pasos.


Radica de Forma Esencial en… Su importancia radica en mostrar la manera de llevar a cabo procesos y resolver mecánicamente problemas matemáticos o de otro tipo. Al igual que las funciones matemáticas, los algoritmos reciben una entrada y la transforman en una salida, comportándose como una caja negra.

Sin embargo, para que un algoritmo pueda ser considerado como tal, debe ser determinista, eficiente, tener un número finito de instrucciones y debe acabar.

Por determinista se entiende que, si se sigue el mismo proceso más de una vez, se llega siempre al mismo resultado; por

eficiente, tiempo y

que el consumo de memoria debe estar

cercano o ser el menor posible.


El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el concepto de programa. Mientras el primero es la especificación de un conjunto de pasos (operaciones, instrucciones,

órdenes...)

orientados a la resolución de un problema, el segundo

es

ese

conjunto

de

operaciones

especificadas en un determinado lenguaje de programación y para un computador concreto, susceptible de ser ejecutado (o compilado o interpretado). Un algoritmo, estrictamente hablando, no puede ejecutarse hasta que se implementa, ya sea en un lenguaje de programación, en un circuito eléctrico, en un aparato mecánico, usando papel y lápiz, o en algún otro modelo de computación.


Se puede clasificar tomando en cuenta dos aspectos. • Secuenciales • Condicionales • Repetitivos Algoritmos Secuenciales: Es aquélla en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. La estructura secuencial tiene una entrada y una salida. Su representación gráfica es la siguiente:

Algoritmos condicionales En un algoritmo puede existir una condición que bifurque el flujo normal del conjunto de instrucciones de acuerdo a la decisión que se tome. Por lo tanto, el programador debe tener en cuenta las alternativas que se pueden tomar en base a la pregunta: ¿Qué pasa si ocurre tal cosa ?

Estructura de algoritmos con condiciones. Condiciones sencillas: (Una o dos alternativas) Ocurren cuando tenemos algo como Ejemplo: Escribir un algoritmo que calcule e imprima el área de un triángulo: Inicio leer datos: base, altura Calcular area: area = (base*altura)/2 Imprimir base, altura, area fin

lo siguiente: …………. …………. (conjunto de instrucciones) …………. Si condición entonces ……… ……… fin del si ………… ………… (instrucciones) …………


Continuando… Ejemplos Algoritmos Condicionales: En una Granja existen N conejos, N1 blancos y N2 negros. Se venden X negros y Y blancos. Hacer un algoritmo que: a) Imprima la cantidad de conejos vendida

Algoritmos Repetitivos: Son operaciones que se deben ejecutar un número repetido de veces. El conjunto de instrucciones que se ejecuta repetidamente cierto número de veces, se llama Ciclo, Bucle o Lazo. Estructura de Bucles:

b) Si P1 es el precio de venta de los conejos blancos y P2 es el precio de venta de los conejos negros, imprima el monto total de la venta. c) Imprima el color de los conejos que se vendieron mas. Solución: 1. Inicio 2. Leer datos: N, N1,N2,X,Y,P1,P2 3. Calcular la cantidad de conejos vendida: CCV = X + Y 4. Imprimir la cantidad de conejos vendida: Imprimir CCV 5. Calcular el monto de la venta: MVenta = X * P2 + Y * P1 6. Imprimir monto de la venta: Imprimir MVenta 7. Si X > Y entonces Imprimir “Se vendieron mas conejos negros” en otro caso Imprimir “Se vendieron mas conejos blancos” 8. Fin


Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico. La descripción de un algoritmo usualmente se hace en tres niveles: 2. Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones detalles.

y

omitiendo

3. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.

1. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.

También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.


PsudoCodigo Un pseudocódigo (falso lenguaje), es una serie de normas léxicas y gramaticales parecidas a

El pseudocódigo describe un algoritmo utilizando una mezcla de

la mayoría de los lenguajes de programación, pero sin llegar a la

frases en lenguaje común, instrucciones de programación y palabras clave que definen las

rigidez de sintaxis de estos ni a la fluidez del lenguaje coloquial. Esto

estructuras básicas. Su objetivo es permitir que el programador se

permite codificar un programa con

centre en los aspectos lógicos de la

mayor agilidad que en cualquier lenguaje de programación, con la misma validez semántica,

solución a un problema.

normalmente se utiliza en las fases de análisis o diseño de Software, o

No siendo el pseudocódigo un lenguaje formal, varían de un

en el estudio de un algoritmo. Forma parte de las distintas herramientas de la ingeniería de

programador a otro, es decir, no hay una estructura semántica ni

software.

arquitectura estándar. Es una herramienta ágil para el estudio y

No hay ningún compilador o intérprete de pseudocódigo

ejemplo, que podríamos definir como: lenguaje imperativo, de tercera generación, según el

informático (en el caso de que lo hubiera serían los lectores de dicho pseudocódigo informático, por ej. una idea de un jefe de programación a el staff de programadores), y por tanto no puede ser ejecutado en un ordenador, pero las similitudes con la mayoría de los lenguajes informáticos lo hacen fácilmente convertible.

Se Recomienda realizar prácticas en Pseudo código antes de sumergirse en el mundo del programador…

diseño de aplicaciones, veamos un

método de estructurada.

programación


Diagrama de flujo El diagrama de flujo representa la forma más tradicional y duradera para especificar los detalles algorítmicos de un proceso. Se utiliza principalmente en programación, economía y procesos industriales; estos diagramas utilizan una serie de símbolos con significados especiales. Son la representación gráfica de los pasos de un proceso, que se realiza para entender mejor al mismo. Son modelos tecnológicos utilizados para comprender los rudimentos de la programación lineal.

Símbolos…

Símbolos de Diagramas de Flujo Los símbolos tienen significados específicos y se conectan por medio de flechas que indican el flujo entre los distintos pasos o etapas:


Aplicabilidad 1. Se desea conocer los datos estadĂ­sticos de una asignatura, por lo tanto, necesitamos un algoritmo que lea el nĂşmero de reprobados, aprobados, excelentes y sobresalientes de una asignatura, y nos devuelva: a. El porcentaje de estudiantes que han aprobado la asignatura. b. El porcentaje de reprobados, aprobados, excelentes y sobresalientes dela asignatura.


2. El costo de un automóvil nuevo para un comprador es la suma total del costo del vehículo, del porcentaje de la ganancia del vendedor y de los impuestos locales o estatales aplicables (sobre el precio de venta). Suponer una ganancia del vendedor del 15% en todas las unidades y un impuesto del 12% y diseñar un algoritmo para leer el coste total del automóvil e imprimir el coste para el consumidor.

3. Leer 10 calificaciones de un grupo de alumnos. Calcule y escriba el porcentaje de reprobados. Tomando en cuenta que la calificación mínima aprobatoria es de 9.5 PTOS

4. Desarrollar un algoritmo que permita leer dos valores, e indicar si el resultado de dividir la suma de los dos números entre la resta de los mismos es exacta, caso contrario imprimir no es exacta.


5. A un trabajador le pagan según sus horas trabajadas y la tarifa está a un valor determinado por hora. Si la cantidad de horas trabajadas es mayor a 40 horas, la tarifa por hora se incrementa en un 25% para las horas extras. Calcular el salario del trabajador dadas las horas trabajadas y la tarifa de horas extras.

6. Una compañía de seguros tiene contratados a n vendedores. Cada uno hace tres ventas a la semana. Su política de pagos es que un vendedor recibe un sueldo base, y un 10% extra por comisiones de sus ventas. El gerente de su compañía desea saber cuánto dinero obtendrá en la semana cada vendedor por concepto de comisiones por las tres ventas realizadas, y cuanto tomando en cuenta su sueldo base y sus comisiones.


7. Realizar un algoritmo que permita pedir 50 nĂşmeros naturales y determine e imprima cuantos son pares, impares, positivos y negativos.


8. Se desea saber cuánto tendrá que pagar una persona por la compra de un artículo en base a las siguientes condiciones. Si compra menos de 5 del mismo artículo se le hará un descuento del 10% sobre el total de su compra. Si compra 5 o más, pero menos de 10 se le hace un 15% de descuento. Si compra más de 10 pero menos de 15 se le hace un 20% de descuento y en caso contrario se le hará un 25% de descuento sobre su compra.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.