Anda di halaman 1dari 12

UNIVERSIDAD POPULAR DEL CESAR - PROGRAMACION ESTRUCTURADA

Ing. Jairo Francisco Seoanes Len


(30-07-2013)

TEMA I: REPASO GENERAL DE FUNDAMENTOS DE ALGORITMOS

QUE ES UN ALGORITMO?

La palabra "algoritmo" proviene del gran matemtico rabe MOHAMED AL KHO


WARIZMI, quien escribi entre los aos 800 y 825 (Siglo IX) la obra QUITAB AL
JABR AL MUGABALA, un tratado sobre manipulacin de nmeros y ecuaciones,
donde us en gran medida la nocin de lo que se conoce hoy como algoritmo.

DEFINICIONES DE ALGORITMOS:

Conjunto de reglas para efectuar algn clculo, bien sea a mano o, ms


frecuentemente, en una mquina Brassard y Bratley (2000).

Es un mtodo para resolver problemas Joyanes (2003).

Un algoritmo es una descripcin de los pasos bsicos a seguir para cumplir una
determinada tarea Torrealba (2004).

Ejemplo. Algoritmo para comprar los boleto de entrada al cine.


Ejemplo. Algoritmo para ir a la universidad por la maana.
Ejemplo. Sean P=(a,b) y Q=(c,d) los puntos extremos de un segmento de recta.
Encontrar un segmento de recta perpendicular al anterior, que pase por su punto
medio.

ESTRUCTURA DE UN ALGORITMO

Todo algoritmo debe obedecer a la estructura bsica de un sistema, es decir: entrada,


proceso y salida.

Donde:

Entrada Corresponde al insumo, a los datos necesarios que requiere el proceso


para ofrecer los resultados esperados.

Proceso Pasos necesarios para obtener la solucin del problema o la situacin


planteada.

Salida Resultados arrojados por el proceso como solucin.


Ejemplo de la sumatoria de los dos nmeros, tenemos:

Entrada Valores de de las variables A y B.

Proceso Asignar a la variable Suma, el valor de A mas el valor de B.

Salida Impresin del valor de la variable Suma, que contiene la sumatoria de los
valores de A y B.

CARACTERSTICAS DE UN ALGORITMO:

Las caractersticas que debe poseer una secuencia de tareas para considerarse
algoritmo son: precisin, definicin o determinismo y finitud.

ELEMENTOS DE UN ALGORITMO

REPRESENTACION DE ALGORITMOS

Las tcnicas utilizadas ms comnmente para la representacin de algoritmos


son:

A) Diagramas de flujo: Se basan en la utilizacin de diversos smbolos


geomtricos para representar operaciones especficas. Se les llama
diagramas de flujo porque los smbolos utilizados se conectan por medio de
flechas para indicar la secuencia que sigue la ejecucin de las operaciones.
B) Pseudocdigo: Es un lenguaje de especificacin de algoritmos. Tiene
asociado un lxico (conjunto de palabras), una sintaxis (reglas
gramaticales) y una semntica precisa (significado), de manera anloga a
un lenguaje natural como el castellano. El uso de tal lenguaje hace
relativamente fcil el paso de codificacin final del algoritmo (esto es, la
traduccin a un lenguaje de programacin).

La ventaja del pseudocdigo es que le permite al programador concentrarse


en la lgica y en las estructuras de control del algoritmo que quiere disear,
sin preocuparse de las reglas de un lenguaje especfico de programacin,
que normalmente incluyen infinidad de detalles. Es tambin fcil modificar
el pseudocdigo si se descubren errores o anomalas en la lgica del
programa; adems de lo anterior, es fcil su traduccin a lenguajes de
programacin como Pascal, C, Java o Basic.
DATOS

Los datos son una representacin simblica de un atributo o variable. Un dato


puede significar un nmero, una letra, un signo ortogrfico o cualquier smbolo que
represente una cantidad, una medida, una palabra o una descripcin. La
importancia de los datos est en su capacidad de asociarse dentro de un contexto
para convertirse en informacin. Es decir, por si mismos los datos no tienen
capacidad de comunicar un significado.

TIPOS DE DATOS

Existen datos simples (sin estructura) y compuestos (estructurados).

Tipos de datos Simples

VARIABLESY CONSTANTES

Son representaciones simblicas que hacen referencia a espacios de memoria


para almacenar valores.
Constante Es un dato que permanece con un valor, sin cambios, es decir
constante, a lo largo del desarrollo del algoritmo o a lo largo de la ejecucin del
programa. Se utiliza cuando necesitamos que el valor de determinada variable se
mantenga durante la ejecucin del programa o hasta tanto se requiera su cambio.

Variable Es un dato cuyo valor puede variar a lo largo del desarrollo del algoritmo
o en el transcurso de la ejecucin del programa. Una variable descrita o declarada
de un tipo determinado, slo podr contener, valores de ese tipo. Una variable
declarada numrica entera, no podr contener nmeros reales. Se utiliza cuando
el dato que contiene sufrir cambios o variar en la medida que cambien los
valores que maneje.

Las variables y constantes tienen bsicamente, dos atributos: Su nombre y el tipo


de dato que representa.

EJERCICIO:

NOMBRE
EDAD
SUELDO
N HIJOS
CASADO

EXPRESIONES Y OPERACIONES

Las expresiones son combinaciones de constantes, variables, smbolos de


operacin (matemticos, lgicos y relacionales) y nombres de funciones que se
utilizan en el cuerpo del algoritmo.

Las expresiones pueden ser simples o compuestas:

Las expresiones simples, son asignaciones directas a una variable o constante


de un valor numrico o carcter, EJ:

A = 123
NOMBRE = PROGRAMACION
HOY=30/07/2013
Una expresin compuesta es la asignacin a una variable o constante que surge
de la unin de valores numricos, operadores aritmticos, de comparacin o
lgicos. Por ejemplo:

A= 6 * 2
EDAD = Fecha Actual Fecha Nacimiento
SUELDO: DIASLAB * VALORDIA

OPERADORES ARITMETICOS

+ SUMA (A + B)
- RESTA (A C)
* MULTIPLICA (A * B)
/ DIVIDE (A / B)
% DIVISION MODULAR (A % B)

Las operaciones aritmticas son efectuadas en el siguiente orden:

1. Exponenciacin
2. Multiplicacin, divisin y divisin entera
3. Suma y resta

OPERADORES RELACIONALES

> MAYOR QUE (A >B)


< MENOR QUE (A<B)
>= MAYOR O IGUAL QUE (A>=B)
<= MENOR O IGUAL QUE (A<=B)
== IGUAL QUE (A==B)
!= DIFERENTE (A!=B)
<> DIFERENTE (A<>B)

OPERADORES LOGICOS

AND Y (COND1 AND COND2)


OR O (COND1 OR COND2)
NOT NO NOT (CONDICION)

QU ES UN CONTADOR?, QU ES UN ACUMULADOR?
Un contador es una variable cuyo valor se incrementa o decremento en una
cantidad constante, cada vez que se produce un determinado suceso, accin o
iteracin.

Un acumulador es una variable que como su nombre lo indica, suma sobre s


misma un conjunto de valores, al finalizar con el ciclo contendr, en una sola
variable, la sumatoria de todos los valores, que cumplen una determinada
condicin.

La diferencia entre un contador y un acumulador es que mientras el primero va


aumentando en una cantidad fija preestablecida, el acumulador va aumentando en
una cantidad o valor variable.

ESTRUCTURAS BASICAS O DE CONTROL UTILIZADAS EN EL DISEO DE


INSTRUCCIONES

En la elaboracin de algoritmos nos vamos a encontrar con estructuras bsicas o


de control ya prediseadas para el tratamiento de informacin, estas estructuras
bsicas traducen acciones que se realizan de acuerdo al requerimiento o al
proceso necesario al cual deba someterse la informacin. Estas estructuras son:
de Seleccin o condicin y de Repeticin o Iteracin.

Estructura de seleccin o decisin: Una estructura selectiva est compuesta


por una expresin lgica, si al evaluar esta expresin lgica, el resultado es
Verdadero, es decir se cumple la condicin, se realizar una secuencia de
instrucciones; pero si el resultado es falso, se ejecutar otra secuencia de
instrucciones. Las estructuras selectivas, de decisin o condicionales, pueden ser:
Simples, Dobles, Compuestas o Mltiples.

Estructura Condicional Simple:

Si <Condicin> Entonces
<Accin N>
Fin_si

Estructura Condicional Doble:

Si Condicin Entonces
<Instrucciones>
Si_no
<Instrucciones>
Fin_si
Estructura Condicional Compuesta:

Si condicion1 y condicion2 Entonces


<Instrucciones>
Fin Si

Estructura Condicional Mltiple:

Segn (Expresin) Hacer


Caso, Valor Expresin 1
<Instrucciones>
Caso, Valor Expresin 2
<Instrucciones>
Caso, Valor Expresin 3
<Instrucciones>
.
.
.
Fin_Segn

ESTRUCTURAS REPETITIVAS (Mientras, Repetir y Para): Son estructuras


diseadas para que repitan una secuencia de instrucciones un nmero
determinado de veces, tambin son llamadas bucles o lazos.

Mientras <condicin> hacer

<Instruccin 1>
<Instruccin 2>
<Instruccin n>

Fin Mientras
Repetir

<Instruccin 1>
<Instruccin 2>
<Instruccin n>

Hasta expresin lgica

Para Cuenta =1 hasta 20 hacer

<Instruccin 1>
<Instruccin 2>
<Instruccin 3>

Fin Para

PROBLEMAS

Un algoritmo tiene sentido cuando constituye una forma efectiva de resolver un


problema interesante. Se tiene un problema cuando se desea encontrar uno o
varios objetos desconocidos (ya sean estos nmeros, smbolos, diagramas,
figuras, u otras cosas), que cumplen condiciones o relaciones, previamente
definidas, respecto a uno o varios objetos conocidos. De esta manera, solucionar
un problema es encontrar los objetos desconocidos de dicho problema.

Clasificacin de problemas

Los problemas se clasifican, de acuerdo a la existencia de una solucin, en


solubles, no solubles e indecidibles.

Un problema se dice SOLUBLE si se sabe de antemano que existe una solucin


para l.

Un problema se dice INSOLUBLE si se sabe que no existe una solucin para l.

Un problema se dice INDECIDIBLE si no se sabe si existe o no existe solucin


algortmica para l.

A su vez, los problemas solubles se dividen en dos clases: los algortmicos y los
no algortmicos.
Un problema se dice ALGORTMICO si existe un algoritmo que permita darle
solucin.

Un problema se dice NO ALGORTMICO si no es susceptible del resolver


mediante un algoritmo.

EJEMPLOS:

PROBLEMA UNO: De las siguientes cuatro imgenes, cul es la ms llamativa?


(Soluble No Algoritmico)

PROBLEMA DOS: Un granjero tiene cincuenta animales entre conejos y gansos.


Si la cantidad de patas de los animales es ciento cuarenta, cuntos conejos y
cuntos gansos tiene el granjero?
(Soluble Algoritmico)

PROBLEMA TRES: Una partcula se mueve en el espacio de manera aleatoria, si


en el instante de tiempo t se encuentra en la posicin x, cul ser la posicin
exacta de dicha partcula 10 segundos despus?
(Insoluble)

METODOLOGA DE SOLUCIN DE PROBLEMAS CON EL COMPUTADOR

1. Anlisis del problema Con la cual se busca comprender totalmente el


problema a resolver.

2. Especificacin del problema Con la cual se establece de manera precisa


cules son los datos de entrada, los de salida y qu condiciones debe cumplir
cada uno de ellos.

3. Diseo del algoritmo En esta etapa se construye un algoritmo que cumpla


con la especificacin formulada en el paso anterior

4. Prueba del algoritmo y refinamiento Consiste en comprobar


experimentalmente que el algoritmo funciona bien y corregir los posibles
errores que se detecten.

5. Codificacin Se traduce el algoritmo a un lenguaje de programacin.


Prueba y Verificacin Se realizan pruebas del programa implementado para
determinar su efectividad en la resolucin del problema.

EJERCICIOS

En cada uno de los siguientes problemas, use la metodologa presentada en este


captulo para resolverlo. Los algoritmos los puede especificar usando lenguaje
natural (espaol).

EJERCICIO UNO: Construir un algoritmo que determine si un nmero dado es


primo.

EJERCICIO DOS: Construir un algoritmo que determine si dos nmeros son


primos relativos o no. Dos nmeros son primos relativos si no tienen un divisor
comn mayor que 1.

EJERCICIO TRES: Construir un algoritmo que determine si una fecha,


especificada mediante tres nmeros (da, mes y ao), es una fecha vlida o no.

EJERCICIO CUATRO: Construir un algoritmo que lea un entero y escriba todos


sus divisores propios, en orden decreciente.

EJERCICIO CINCO: Construir un algoritmo que lea las longitudes de tres


segmentos de recta y determine si con ellos se puede construir un tringulo.

EJERCICIO SEIS: Un rectngulo queda determinado si se conocen las


coordenadas de su vrtice inferior izquierdo, su ancho y su largo. Construir un
algoritmo que lea los datos relacionados con dos rectngulos y determine si estos
se intersectan o no.

INVESTIGACION

Que es un lenguaje de programacin


Lenguajes maquina
Lenguajes de bajo nivel (ensamblador)
Lenguaje de alto nivel
Traductores de lenguajes
Interpretes
Compiladores

Orgenes del c/c++

Anda mungkin juga menyukai