Вы находитесь на странице: 1из 15

ALGORITMOS Y PROGRAMAS

Dispositivos de salida:
1. Unidad de control (CU)
2. Unidad aritmtico lgica (Alu):
Memoria de accesp
RESOLUCIN DE PROBLEMAS POR COMPUTADORAS
Deriva del famoso matemtico y astrnomo rabe al-khowarizmi, siglo IX que
escribi un conocido tratado sobre la manipulacin de nmeros y ecuaciones.
Un algoritmo puede ser definido como la secuencia ordenada de pasos sin
ambigedades, que conduce a la solucin de un problema dado y expresado en
lenguaje natural. Ejemplo: el castellano.
Todo algoritmo debe tener las siguientes caractersticas:
a) Preciso: Indicando el orden de realizacin de cada uno de los pasos.
b) Definido: Si se sigue el algoritmo varias veces proporcionndole los
mismos datos, se deben obtener siempre los mismos resultados.
c) Debe ser finito: Al seguir el algoritmo este en algn momento debe
terminar es decir debe tener un nmero finito de pasos.
Para disear un algoritmo se debe comenzar comenzar por identificar las
tareas ms importantes para resolver el problema y disponerlas en el orden en
el que han de ser ejecutadas.
Los pasos en esta primera descripcin de actividades deben ser refinados
aadindose ms detalles a los mismos e incluso algunos de ellos pueden
requerir un refinamiento adicional antes de que podamos obtener un algoritmo
claro preciso y completo.
Este mtodo de diseo de los algoritmos en etapas, significa ir de los
conceptos generales a los de detalle a travs de refinamientos sucesivos se
conoce como mtodo descendente (mtodo de top- down).
En un algoritmo se deben considerar tres partes:

Entrada: es la informacin dada al algoritmo.


Proceso: Son todas las operaciones con clculos necesarios para
encontrar la solucin al problema.
Salida: Son las respuestas dadas por el algoritmo o los resultados
finales de los clculos .

Como ejemplo: Imaginemos que deseamos calcular la superficie de un


rectngulo proporcionndole su base y altura, los primero que deberamos
hacer es poder contestar las siguientes preguntas:
Especificaciones de entrada: Qu datos son entrada?Cuantos datos se
introducirn? Cuntos son datos de entrada validos?
Especificaciones de salida:Cules son los datos de salida?Cuantos datos de
salida se producirn?qu precisin tendrn los resultados? Se debe imprimir
una cabecera?
Solucin:
Paso 1: Perifrico teclado: base y altura.
Paso 2: proceso o calculo: calcular la superficie: superficie, base multiplica
altura.
Paso 3: perifrico de salida: Monitor. Base ,altura, superficie.
El lenguaje algortmico debe ser independiente de cualquier lenguaje de
programacin particular , pero fcilmente traducirle a cada uno de ellos.
Alcanzar estos objetivos nos conducir al empleo de mtodos normalizados
para la representacin de algoritmos, tales como: los diagramas de flujo, el
diagrama nassi-schnniderman o generalmente se conoce como Pseudocdigo.

Verificacin del algoritmo:


Una vez hayamos terminado de escribir un algoritmo es necesario comprobar
que realiza las tareas para las que ha sido diseado y produce el resultado
correcto y esperado.
El modo ms normal de comprobar un algoritmo es mediante la ejecucin
manual, utilizando datos significativos que abarquen todo el posible rango de
valores y anotando en una hoja de papel las modificaciones que se producen
en las diferentes fases hasta la obtencin delos resultados, este proceso se
conoce con la prueba del algoritmo.
Fase de implementacin: Una vez que el algoritmo est diseado, representado
grficamente mediante una herramienta de programacin (diagrama de flujo,
diagrama n-s o pseudocodigo ) y verificado se debe pasar a la fase de
codificacin que es la traduccin del algoritmo aun determinada lenguaje de
programacin, que deber ser completada con la ejecucin y comprobacin del
programa en el ordenador.

Datos
Es la expresin general que descrbelos objetos con los cuales opera el
algoritmo.
Los datos podrn ser de los siguientes tipos:

Entero: Es el sub conjunto finito de los nmeros enteros cuyo


rango o tamao depender del lenguaje en el que posteriormente
codifiquemos el algoritmo.
Real: Subconjunto de los nmeros reales limitado no solo en
cuanto al tamao sino tambin en cuanto a la precisin.
Lgico: Conjunto formado por los valores verdad y falso.
Carcter: Conjunto finito y ordenado que los caracteres que la
computadora reconoce.
Cadena: Los datos (objetos) de este tipo contendrn una serie
finita de caracteres que podrn ser directamente trados o
enviados a/desde consola.

Entero, real, lgico, carcter, cadena son tipos de datos predefinidos en las
mayora de lenguajes de programacin. En los algoritmos para indicar que un
dato es de uno de estos tipos se declarara utilizando directamente el
identificador o nombre del tipo. Adems el usuario podr definir sus propios
tipos de datos.
Para definir nuevos tipos de datos agrupando varones de otros tipos definidos
previamente o de tipos estndar por este motivo se conocen que estn
estructurados.
Si todos los valores agrupados fueran del mismo tipo este se le denomina tipo
base.
Al establecer un tipo para un dato hay que considerar las operaciones que
vamos ha realizar con el y los instrumentos disponibles.
Al establecer el tipo se determina la forma de representacin en memoria. Los
datos pueden ser expresados como: Constantes, variables, expresiones o
funciones.
Constantes: Son datos cuyo valor no cambia durante todo el
desarrollo del algoritmo. Las constantes podrn ser literales o con
nombres. Las constantes simblicas o con nombre se identifican por
su nombre y el valor asignado. Una constante literal es un valor de
cualquier tipo que se utiliza como tal.

Tendremos pues las gt constantes: Numricas enteras. En el rango de los


enteros. Compuestas por el signo +,- . Seguidos de una serie de dgitos
NE(+,-) (0,9)
Numricas reales: compuestas por el signo +,- seguidos por una serie de
dgitos (0..9) (.)(+,-)(0,9)
y por supuesto de un punto decimal
llamado la mantisa.
Lgicas: Solo existen dos contantes lgicas: verdad y falso.
Constantes carcter: Cualquier carcter del juego de caracteres utilizado
colocado entre comillas simples o apostrofes. Los caracteres que
reconocen las computadoras son dgitos, caracteres alfabticos, tanto
maysculas como minsculas y caracteres especiales.
Cadena: Serie de caracteres validos encerrados entre comillas simple.
Variables: Una variable es un objeto cuyo valor puede cambiar
durante el desarrollo del algoritmo.
Se identifica por su nombre y por su tipo que podr ser cualquiera y
es el que determina el conjunto de valores que podr tomar la
variable. En los algoritmos se deben declarar las variables. Cuando
se traduce el algoritmo a un lenguaje de programacin se ejecuta el
programa resultante la declaracin de cada de una de las variables
originara que se reserve un determinado espacio en memoria
etiquetado con el correspondiente identificador.
Expresiones: ES la combinacin de operadores y operando. Los
operando podrn ser constantes, variables u otras expresiones y los
operadores de cadena, aritmticos, relacionales o lgicos.
Las expresiones se clasifican segn el resultado que producen en:
Numricas: Los operando que intervienen en ellas son numricos, el
resultado es tambin de tipo numrico y se construyen mediante los
operadores aritmticos. Se pueden considerar anlogas a las
frmulas matemticas.
Debido a que son los que se encuentran en la mayor parte de los
lenguajes de programacin los algoritmos utilizaran los sgts
operadores aritmticos menos unario(-), multiplicacin (*), divisin
real (/), exponenciacin ^ , suma +, mdulo de la .

Tenga en cuenta que la divisin real siempre dar un resultado real y


que los operadores mod y div solo operan con enteros y el resulto es
entero.

Alfanumricas: Los operadores son de tipo alfanumrico y


producen resultados tambin de dicho tipo alfanumricas.
Se construyen mediante el operador de concatenacin
representado por el smbolo (&) o con el mismo smbolo utilizado
en las expresiones aritmticas para la suma.
Booleanas.: Su resultado podr ser verdadero o falso. Se construye
mediante los operadores relacionales y lgicos. Los operadores de
relacin son: igual (=), distinto(<>), menor que (<), mayor que (>),
mayor igual(>=), menor igual (<=). Actan sobre operandos del mismo
tipo y siempre devuelven como un resultado de tipo lgico.

Los operadores lgicos bsico son: negacin lgica(no), multiplicacin lgica


(y), suma lgica (o), actan sobre operando de tipo lgico y devuelven
resultados del mismo tip.
a
Verdad
Verdad
Falso
falso

B
Verdad
Falso
Verdad
Falso

No a
Falso
Verdadero
Falso
verdadero

Ayb
verdad

Aob

Falso

El orden de prioridad general adoptada, no comn en todo el lenguaje de


programacin es el sgt:

Exponenciacin:
Operadores unarios no y menos
Operadores multiplicativos / ,*div, mod, y
Operadores aditivos +, -, o
Operadores de relacin: =, distinto, mayor que, menor que,
La evaluacin delos operadores con la misma prioridad se realizara
siempre de izquierda a derecha.
Si una expresin contiene sub expresiones encerradas entre parntesis
dichas sub expresiones se evaluaran primero.
Tareas:
Hacer un cuadro lgico en Excel
Investigar acerca de funciones

Funciones: En los lenguajes de programacin existen ciertas


funciones predefinidas o internas que aceptan unos argumentos y
producen un valor denominado resultado.
Como funciones numricas se pueden utilizar:
Funcin

Descripcin

Abs(x)

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
Raz cuadrada de
x
Redondea x al
entero ms
prximo
Seno de x
Parte entera de x

Arctan (x)
Cos (x)
Cuadrado(x)
Ent (x)
Exp(x)
Ln (x)
Lg(x)
Raz 2(x)
Redondeo(x)

Sen(x)
Trunc (x)

TIPO DE
ARGUMENTO
Entero o real

RESULTADO

Entero o real

real

Entero
Entero
Real
Entero
Entero

real
Entero o real
entero
real
real

o real
o real
o real
o real

Entero o real

Entero o real

real

Entero

real

Real

entero

Entero o real
Real

real
entero

Por lo tanto las funciones se utilizaran escribiendo su nombre, seguido de los


argumentos adecuados encerrados entre parntesis.
Reglas para la construccin de identificadores
Los identificadores son todos los nombres que se dan a las constantes
simblicas, variables, funciones, procedimientos u otros objetos que manipula
el algoritmo.
La regla para construir un identificador establece:
1. Debe resultar significativo, sugiriendo lo que representa.
2. No podr coincidir con palabras reservadas propias del lenguaje
algortmico. esto significa que la representacin de algoritmo mediante
seudocdigo va a requerir la utilizacin de ciertas palabras reservadas.
3. Se admitir un mximo de 32 caracteres.
4. Comenzar siempre por un carcter alfabtico los siguientes podrn ser
letras dgitos o el smbolo del subrayado a_b o underline.
5. Podr ser utilizado indistintamente si lo escribimos en maysculas o en
minsculas.
Ejercicios
1. Desarrollar los algoritmos que resuelvan los siguientes problemas:
a) Ir al cine.
Fase Anlisis del problema:
- datos de entrada: Nombre de la
pelcula, hora de proyeccin, sala.

Datos de salida: ver la pelcula


Datos auxiliares: entrada, numero de asiento.

Fase Diseo del algoritmo:


Inicio: // seleccin de la pelcula.
Tomar un peridico
Mientras no llegamos a la cartelera
Pasar las hojas
Mientras no se acabe cartelera
Leer pelculas
Si no nos gusta, recordamos
Elegir una de las pelculas que nos gusta
Leer la direccin del cine y la hora.
Comprar entrada
Trasladarse al cine
Si no hay entrada, fin
Si hay cola

Pngase al final o ultimo


Mientras no lleguemos a la boletera
Avanzar
Si no hay entrada, fin
Comprar la entrada
// Ver pelcula
Buscar la sala
Si hay cola
Ponerse al ltimo
Mientras no ingrese a la sala
Avanzar
Buscar asientos vacos
Sentarse
ver pelcula

2. Reparar un pinchazo de una bicicleta.


i)

ii)

Fase Anlisis del problema:


- datos de entrada: bicicleta malograda.
Datos de salida: Bicicleta arreglada

Fase Diseo del algoritmo:


Inicio//
aflojar las tuercas
quitar la llanta de la bicicleta
quitar el tubo que contiene la llanta
colocar el parche para tapar el pinchazo
aplicar pegamento
dejar secar el pegamento que contiene el parche
colocar dentro de la llanta el tubo que ya ha sido arreglado
colocar la llanta en el cuadro de la bicicleta
apretar las tuercas
fin

3. Averiguar si una palabra es un palndromo( Es una palabra que se lee


igual de izquierda a derecha y de derecha a izquierda).
i)

Fase Anlisis del problema:


- datos de entrada: introducir palabra.
Datos de salida: Imprimir :palabra palndromo, no es palabra
palndromo

ii)
Fase Diseo del algoritmo:

Inicio//
introducir palabra
Se lee la palabra
Si la palabra leida tiene el mismo significado leida al reves
Imprime :palabra palndromo

Sino imprime no es palabra palndromo


fin

MTODOS PARA RESOLVER UN ALGORITMO


1. Diagramas de flujo: Se utilizan para la representacin grfica de las
operaciones ejecutadas sobre los datos por lo tanto son todas las partes
de un sistema de procesamiento de informacin, los diagramas de flujo
sirven para la representacin de las secuencias de pasos necesarios para
describir un procedimiento particular. Los diagramas de flujo utilizan
unos smbolos normalizados esto nos va ha permitir identificar los
pasos del algoritmo escritos en el smbolo adecuado yestos smbolos
estn unidos por flechas, denominadas lneas de flujo, esto nos vaha
indicar el orden en el que los pasos deben ser ejecutados. Los smbolos
principales son:
Smbolo

Funcin
Inicio y fin del algoritmo

proceso

Entrada / salida

Decisin

comentario

Es importante y necesario indicar que dentro dcada uno de os smbolos


debe ir una operacin especifica escrita por el programador.
Ejemplo: Elaborar un programa que lea una temperatura en grados
centgrados o celsius y que calcule su valor en grados kelvin
Solucin:
Datos de entrada: temperatura Celsius
Datos de salida: Temperatura kelvin
2. Diagrama de N-S: Los diagramas n-s denominados asi por sus inventores
es una herramienta de programacin que favorece la programacin
estructurada y rene caractersticas graficas propias de diagrama de
flujo y linguisticas propias de os pseudocodigos consta de una serie de
cajas contiguas que se leern siempre de arriba hacia abajo.
En los diagramas N-S. se identificaran tres estructuras bsicas de la
programacin estructurada: Secuenciales, selectivas y repetitivas.
smbolo

Tipo de estructura
secuencias

Secuencia 1

Secuencia 2
Secuencia 3

repetitivas deQ a N veces


(mientras)

Repetitivas de 1 a N veces
(Repetir hasta )
Repetitivas de N veces
(for i=1 hasta N)
Selectiva

Ejemplo elaborar el algoritmo que lea una tempertura en grados celsiud y que
escriba su valor en grados kelvin.
Solucin:
Inicio
Leer (Celsius)
Kelvin ---- Celsius +
273.15
Escribir (kelvin )
fin

3. Pseudocodigo: Es un lenguaje de especificacin de algoritmos que utiliza


palabras reservadas y exige la indentacion(es la sangra en el margen
izquierdo de algunas lneas).
El pseudocdigo se concibi para superar las dos principales desventajas
del diagrama de flujo que son : lento de crear y difcil de modificar si un
nuevo rediuso. es una herramienta muy buena para el seguimiento de la
lgica de un algoritmo y para transformar con facilidad el algoritmo a
programar, escritos en un lenguaje de programacin especifico.

El pseudocodigo comenzara siempre con la palabra inicio y terminara


con la palabra fin. Cuando se coloque un comentario de una sola lnea se
deber escribir precedido de //
Si el comentario es multilinea se deber poner entre llaves.
Para introducir un valor o serie de valores desde el dispositivo estndar y
almacenarlos en una o varias variables utilizaremos :
leer (<lista _de_ variables>)
Con(<nombre _de_ variables>) ------ <expresin>
Alamacenaremos e una variable : Con(<nombre _de_ variables>) -----<expresin>
Alamnacenaremos unavariablecon unaexpresion kel
Hay que tener en cuenta que una nica constante, variable o funcion
constituye una expresion .
Para imprimir en el dispositivo estndar de salida una o varias
expresiones emplearemos: escribir (<lista_de_expresiones>).
Las distintas estructuras se representaran de la siguiente forma:

Decision simple: si <condicin> entonces


<acciones 1>
Fin _si

Decisin doble: si <condicin> entonces


<acciones 1>
Si_no
<acciones 1>
Fin _si

Decisiones mltiples: segn sea <expresin _ordinal>hacer


<lista_ de_ valores_ ordinales>
: <acciones 1>
[si_no
// el corchete indica opcionalidad
<acciones N>]
Fin_ segn

Repetitivas: mientras <condicin>hacer


<acciones>
Fin_ mientras
Repetir
<acciones>
Hasta_que <condicin>
Desde <variable .<v_inicial>hasta <v_final>
[incremento|decremento<incremento>] hacer
<Acciones>

Fin_desde

Inicio, fin, leer ,escribir, y las palabras que aparecen en negrita en las distintas
estructuras se consideran palabras reservadas y no debern utilizarse en su
lugar otras similares.
Ejemplo: Elaborar el algoritmo que calcula la temperatura en grados celsius a
grados kelvin, escribir el pseudocodigo.
Solucin:
Inicio
Leer (Celsius)
Kelvincelsius + 273.15
Escribir (kelvin)
Fin

Ejercicios:
1. Cul de los siguientes datos son vlidos para procesar por una
computadora:
a) 3.14159
b) 0.0014
c) 12345.0
d) 15.0E-04
e) 2.234E2
f) 12E+E
g) 1.1E-3
h) -15E-0.4
i) 12.5E.3
j) .123E4
k) 5A4.14
l) A1.E04
abcdefgj, son validos
2. Cual de los identificadores siguientes son vlidos?
a) renta
b) alquiler
c) constante
d) tom`s
e) dos_ pulgadas
f) C3PO

g) Bienvenido numeral 5
h)elemento
i) 4A2D2
j)13nombre
k) Nombre_anderley_apellidos
l) Nombreapellidos
a,b,c,f,h,k,l son validos.
3. Escribir un algoritmo que lea un nmero entero, lo duplique, se
multiplique por 25 y se visualice el resultado.
Solucin:
Inicio
Leer ( numero entero)
Nmero
(nmero x2)
Resultado
(nmerox25)
Escribir (resultado)
fin
4. Disear un algoritmo que lea cuatro variables y calcule e imprima su
producto, suma, y su media aritmtica.
Solucin: datos de entrada: x,y,z,m
datos de salida: producto,
suma,media aritmetica
Inicio
Leer( x,y,z,m)
Producto
x*y*z*m
Suma
x+y+z+m
Media
Suma/4
Escribir (producto, suma, media aritmtica)
fin

5. Disear un programa que lea el peso de un hombre en libras y nos


devuelva su peso en kilogramos y gramos (una libra equivale a 0,453592
kg).
6. Si A es igual a 6, B es igual a 2 y C es igual a 3, encontrar los valores de
las siguientes expresiones:
a) A-B+C
b) A*B div C
c) A div B + C
d) A*B mod C
e) A+B mod C
f) A div B div C

7. Que se obtiene en las variables A y B despus de la ejecucin de las


siguientes instrucciones:
A5
B A+6
A A+1
BA-5
Hallar el resultado final de A y B
8. Escribir las siguientes expresiones en forma de expresiones algortmicas:
a) M/N + 4
b) M+ N/(P-Q)
c) (Sen X +cos Y)/tan x
d) (M+N)/(P-Q)
e) (P+(N/Q))/(Q-(r/S))
f)

b+ b 24 ac
2a

9. Deducir los resultados que se obtienen del siguiente algoritmo:


Inicio:
x15
y30
Zy-X
Escribir (x,Y)
Escribir (Z)
Fin
10.Escribir un algoritmo que calcule y escriba el cuadrado de 821.
11.Realizar un algoritmo que calcule la suma de los enteros entre el 1 y el
10

Вам также может понравиться