0% encontró este documento útil (0 votos)
28 vistas17 páginas

Fundamentos de Algoritmos y Programación

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas17 páginas

Fundamentos de Algoritmos y Programación

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tema 2

ALGORITMOS

Objetivo:
El estudiante debe contextualizar y comprender el desarrollo de
software y comenzar asimilar el aspecto algorítmico.

El desarrollo de la informática y en cierto modo de la programación hace que los paradigmas cambien
permanentemente. Este aspecto lleva a repensar el mundo de la construcción del software, en ese
sentido es importante asimilar las ideas fundamentales de la programación de computadoras.

2.1. PROBLEMA, ALGORITMO Y PROGRAMA

Las computadoras son instrumentos importantes para resolver problemas, en cierto sentido se puede
decir un esquema de solución enfatizada con bastante aceptación, parte de la trilogía: PROBLEMA,
ALGORITMO y PROGRAMA.

PROBLEMA  ALGORITMO  PROGRAMA

2.1.1. Problema

El carácter etimológico de la palabra explica lo que es un problema:

Proballein  “Algo lanzado hacia delante”

Algo más sencillo, es un asunto o conjunto de cuestiones que se plantean para ser resueltos. Para
resolver adecuadamente un problema, el primer paso es entender y comprender.

Idea  Expresar en un modelo formal Ej. Leng. matemático

2.1.2 Algoritmo

Conjunto finito y no ambiguo de etapas expresadas en un cierto orden, que para unas
condiciones iniciales, permiten resolver el problema en tiempo finito[5].
Se puede decir que también es una manera de resolver un problema. O dicho de otra manera:
Conjunto finito de reglas que crean una serie de operaciones para resolver un tipo específico de
problema.

Se suele expresar en una notación informal (no rigurosa) Ej. Pseudocódigo, diagrama de flujo.

Propiedades de un algoritmo:

 Algoritmo debe ser preciso e indicar el orden de realización de cada paso


 Debe estar definido
 Proporciona un resultado
 Algoritmo debe ser finito
 Debe ser correcto
 Es completo

2.1.3 Programa

Algoritmo se debe describir como una solución al problema mediante el uso de una construcción
formal de un algoritmo que se ejecuta en un computador. Se puede definir como la especificación de un
algoritmo. O simplemente un conjunto de sentencias o instrucciones.

2.2. Esquema Macro De Programación

Actualmente se puede representar la idea anterior de forma generalizada: PROBLEMA, SOLUCION


COMPUTACIONAL, PROYECTO SOFTWARE, APLICACIÓN SOFTWARE.

2.2.1 Solución Computacional

Una solución computacional a nivel software consiste de dos elementos importantes como son el modelo
y el algoritmo. Un modelo representa los aspectos trascendentales de esa realidad, y el algoritmo
representa los cálculos u operaciones que se deben asociar a esa estructura.

a) Modelo
Un modelo es la representación simplificada de la realidad. Habitualmente se necesita obtener modelos
para poder comprender mejor esa realidad de por si compleja. En la construcción de algo interesa resaltar
los aspectos clave, y un modelo ayuda a ello.

La percepción de esa realidad se la hace en el marco del paradigma orientado a objetos, a través de
clases, interacciones, realizaciones, etc.

2.2.2 Proyecto Software.

Una solución computacional se debe especificar en algo concreto y en ese sentido los distintos archivos
(algunos de ellos programas otros archivos de recursos) representan el proyecto software que
eventualmente puede ser entendido por el computador y luego puede convertirse en un producto usable
como es una aplicación software.

2.2.3 Aplicación Software

Es el resultado de transformar los elementos de un proyecto software a algo comprensible por el


computador, esto es los programas se compilan, los recursos se traducen, las clases se compilan, etc.

2.3 Diseño de algoritmos, un primer acercamiento

¿ Como hacerlo ?

Existen esquemas o métodos para el diseño de algoritmos, tales como el divide y vencerás, método
voraz, programación dinámica, etc. Sin embargo como un paso inicial se debe pensar tan solamente
como una forma de resolver un problema.

Antes de resolver problemas concretos se dará una idea básica de lo que se puede entender un
algoritmo. Por ejemplo como se hace para hablar por teléfono con otra persona. Una serie de pasos.

1. Descolgar el auricular
2. Marcar el número
3. Conversar
4. Colgar el auricular

Otro ejemplo: Trasladarse de un lugar a otro en un micro.

1. Esperar el micro
2. Señalar para subir
3. Subir al micro
4. Pagar pasaje
5. Sentarse
6. Bajar del micro
En fin se pueden describir de esta manera todas las actividades que uno realiza todos los días. Pero
atención hay algunos detalles que hacen más interesante describir de esta manera las actividades.

Un siguiente nivel: INSTRUCCIONES CONDICIONALES

Profundizando un poco más, el caso conversar por teléfono, que ocurre si no hay tono, el marcado no
tiene sentido. Vemos que podemos hablar de pasos que algunas veces se pueden dar otras veces no (se
suele denominar situación condicional). Con esta consideración, la secuencia de pasos (algoritmo) será:

1. Descolgar el auricular
2. Si ( existe tono )
2.1 Marcar el número
2.2 Conversar

3. Colgar el auricular

Note que los pasos 2.1 y 2.2, se dan solo si se cumple la condición de (existe tono)

Siguiente Nivel: INSTRUCCIONES REPETITIVAS

Algo más interesante, para nosotros en el paso 2.2. Conversar se remplaza por dos pasos escuchar y
hablar.

2.2 Conversar Hablar: Alo, está Ana


Escuchar: Si, soy yo
Hablar: Hiciste la tarea de cálculo
Escuchar: No, me falta
….
Hablar
Escuchar

1. Descolgar el auricular
2. Si ( existe tono )
2.1 Marcar el número
2.2 Mientras (exista tema de conversación)
2.2.1 Hablar
2.2.2 Escuchar

3. Colgar el auricular
Vea que los pasos hablar y escuchar se realizan muchas veces (se repiten) aunque las palabras que se
hablan o escuchan no son las mismas, pero podríamos decir que son los mismos pasos. A esto se suele
denominar situación de repetición. Pregunta, hasta cuando se darán los pasos escuchar y hablar.
Correcto hasta que exista tema de conversación (nuevamente una condición).

Esta última descripción se parece bastante a las representaciones de algoritmos que se va a construir.

Ejercicios

Haga lo mismo con otras actividades: Ir al cine, almorzar, pasar una clase, pagar la factura de luz
eléctrica, ir a un evento deportivo, ir a un festival.

2.4 Notación

Existen muchas formas de representar los algoritmos, podemos mencionar el lenguaje natural, con el cual
hemos expresado anteriormente. Otras notaciones son Psudocodigo(Lenguaje Estructurado),
Ordinogramas(Diagrama de Flujo), Diagramas de Chapin (Nassi-Schneiderman), Diagramas Jackson,
Diagramas Warnier, etc.

En la representación usaremos tan solamente Lenguaje Estructurado y Diagramas de Flujo (FlujoGramas-


Ordinogramas).

2.5 Componentes de un algoritmo

Para que un algoritmo pueda ser legible este debe estar especificado formalmente, esto nos lleva a
pensar que se debe conocer cuáles son los elementos con los cuales escribimos un algoritmo

IDENTIFICADORES

La mejor manera de describir un identificador es como un contenedor o recipiente, donde se tiene o


contiene algún valor.
Denotan valores de manera simbólica, generalmente se suele denotar como identificadores
(identifican algo). El nombre que se coloca es arbitrario. Ej. area, x, es_una_variable, Contador,
EsUnaVariable.

Hay dos tipos:

 Identificadores Constantes: Mantienen un único valor a lo largo del algoritmo


 Identificadores Variables: Pueden, tener distintos valores a lo largo del algoritmo

EXPRESIONES

Una expresión es una relación de identificadores que pueden ser variables o constantes más operadores
aritméticos, relacionales o lógicos.

Operadores aritméticos:

+ Suma
- Resta
* Multiplicación
/ División
% Módulo

Operadores relacionales

> Mayor
< Menor
= Igual
<> Distinto
<= Menor o igual
>= Mayor o igual

Operadores Lógicos

OR Disyunción
AND Conjunción
NOT Negación

Las expresiones que involucran operadores relacionales y lógicos se denominan expresiones lógicas y su
evaluación da como resultado Falso o Verdadero (Si,No).

Tablas de verdad de los operadores lógicos:


A B A or B A B A and B A Not A
si si si si si si si no
si no si si no no no si
no si si no si no
no no no no no no

Ej.

1) x+y-(a*b)  Expresión aritmética

2) a>0  Expresión relacional

3) a>b OR x=y  Expresión lógica

Si x=2, y=3,a=2,b=4

1) 2+3-(2*3) da -3

2) 2>0 da Verdadero (Si)

3) 2>3 OR 2=4 da Falso (No)

ASIGNACIÓN

Es colocar un valor en una variable

Variable  Expresión

Ej.

x3+2

a x se da un valor de 5.

area  alto*ancho
a area se da la multiplicación de alto por acho ( si alto =2 y ancho=4, el area=8)

x  x*y

a x se da el valor que x tenia anteriormente por y.

Representación:

Lenguaje Estructurado(LE):

n. x  y*y+2

Diagrama de Flujo(DF):

x  y*y+2

Asignaciones especiales:

Acumulador

Es una suma acumulada

aa+x

Contador

ii+1

ENTRADAS

Permiten introducir valores y mostrar

Lenguaje Estructurado(LE):

LEER <Variable>

Ej. LEER x,y (se necesita dos valores uno para x y otro para y)
La representación en Diagrama de Flujo(DF):

LEER
b,h

b,h

SALIDAS

Permite mostrar datos

Lenguaje Estructurado(LE):

MOSTRAR <Variable> | <mensaje>

Ej. MOSTRAR area

MOSTRAR ‘Saludo’ MOSTRAR ‘resultado=’,area

Para mostrar:

MOSTRAR
area

area

ESTRUCTURAS DE CONTROL

 El orden de los pasos.

Lenguaje Estructurado(LE):

De arriba hacia abajo

Diagrama de Flujo(DF):

Se usa una línea dirigida

 Conectores
Diagrama de Flujo(DF):

En la misma página:

A otra página:

 Todo algoritmo comienza y termina, para ello se usa dos palabras como son INICIO, FIN.

En Lenguaje Estructurado(LE):

INICIO
.....
.....
FIN

En diagrama de flujo(DF):

INICIO

.......

FIN

Existen 3 tipos de estructuras de control (control de flujo):

 SECUENCIALES
 CONDICIONALES
 REPETITIVAS
CONSTRUCCION DE ALGORITMOS

PROBLEMA  ALGORITMO  PROGRAMA

1-. Descripción del 1-. Elegir la notación 1-. Elegir el


problema(Representación de algoritmo Lenguaje de
gráfica/Ejemplo concreto) Programación

2-. Identificar Variables 2-. Usar el patrón 2-. Traducir


algorítmico paso a paso

[Link] “Formulas” i-. Leer Entradas
ii-. Formulas
iii-. Mostrar Salidas

4-. Clasificar Variables * En el paso ii)


siempre es importante
considerar el orden
lógico de las fórmulas

Ej. Realizar un algoritmo para calcular el área de un triángulo conocido su base y su altura.

PROBLEMA

1-. Descripción del Problema

2-. Identificación de Variables

a Área del triángulo


b Base del triángulo
h Altura del triángulo
3-. Fórmulas

b*h
A
2

4-. Clasificación
Entradas: b,h
Salidas: a

ALGORITMO

Notación Diagrama de Flujo(DF)

INICIO

b,h

ab*h/2

FIN

Ej. Realizar un algoritmo para calcular el área y el perímetro de un círculo, conocido su


diámetro.

PROBLEMA

1-. Descripción del Problema

d d d

2-. Identificación de Variables

a Área del círculo


p Perímetro
d Diámetro
r Radio
3-. Fórmulas

a   .r 2
p  2 .r
r  d /2
4-. Clasificación

Entradas: d
Salidas: a,p

ALGORITMO

Notación Diagrama de Flujo (DF)

INICIO

rd/2

a3.1415*r*r

p2*3.1415*r

a,p

FIN

Ej. Realizar un algoritmo para calcular el área que cubre a un cilindro conocido el diámetro de
su base y su altura.

PROBLEMA

1-. Descripción del Problema


2-. Identificación de Variables

a Área que cubre al cilindro


ac Area circular
ar Area rectangular
d Diámetro
r Radio
h Altura
l Largo del rectangulo
3-. Fórmulas
a  2ac  ar
ac   .r 2
ar  l.h
l  2 .r
r  d /2
4-. Clasificación
Entradas: d,h
Salidas: a
ALGORITMO

Notación Diagrama de Flujo (DF)


INICIO

d,h

rd/2

ac3.1415*r*r

l2*3.1415*r

arl*h

a2*ac+ar

FIN

Ej. Realizar un algoritmo para el volumen de un cuerpo en forma de capsula, conocido la altura
del cuerpo y el diámetro del cuerpo que coincide con el de las semiesferas, que están arriba y
abajo.

PROBLEMA

1-. Descripción del Problema

2-. Identificación de Variables


v Volumen total
vc Volumen del cuerpo(cilindro)
vs Volumen de la semiesfera
d Diámetro
r Radio
h Altura del cuerpo
3-. Fórmulas
v  vc  2vs
vc   .r 2 .h
2
vs   .r 3
3
r  d /2
4-. Clasificación

Entradas: d,h
Salidas: v

ALGORITMO

Notación Diagrama de Flujo (DF)

INICIO

d,h

rd/2

vc3.1415*r*r*h

vs2*3.1415*r*r*r/3

vvc+[Link]

FIN

También podría gustarte