Está en la página 1de 149

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

PROGRAMA

ALGORITMO

DIAGRAMA

TIPOS DE DIAGRAMA

ESTRUCTURAS

SENTENCIAS

VARIABLES

CONSTANTES

OPERACIONES

OPERADORES MATEMATICOS

OPERADORES RELACIONALES

OPERADORES LÓGICOS

PRIORIDAD DE LAS OPERACIONES

USO DE PARENTESIS EN LAS EXPRESIONES

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

Los muertos son los únicos que conocen el final de una guerra. “ Platón.

EJERCICIO MENTAL NRO. UNO

En este ejercicio cada una de las letras representa un dígito diferente del 1 al 9. El asterisco * significa multiplicación.

AB * C = DE * F = GHI. ¿Cuál es el número GHI? VER RESPUESTA AL DORSO DE INICIO DE CAPITULO DOS

CONCEPTOS BASICOS FUENTE: Sitio http://www.geocities.com/david_ees/Algoritmia/curso.htm Definición de computadora Una computadora es una máquina electrónica digital capaz de procesar información y producir datos de salida para lo cual requiere de ciertos datos de entrada. El término digital alude al hecho de que la información almacenada y procesada por la computadora esta representada mediante códigos númericos binarios formados por ceros y unos ( 0 y 1 ) conocidos como bits. Lo sorprendente de las computadoras es que pueden realizar operaciones complejas cuando sus circuitos electrónicos solo pueden comparar dos bits o cambiar un bit de 0 a 1. ¿Como es esto posible?, pues debido a las altas velocidades con que se ejecutan estas operaciones sencillas.

Datos e información Para los informáticos hay una diferencia entre datos e información. Dato vendría a ser la representación de algún hecho, concepto o entidad real, es la materia prima de la información. Información vendría a ser el resultado del procesamiento de los datos. Para este curso no haremos distinción entre dato e información sino que hablaremos de datos de entrada y datos de salida. Un sistema de procesamiento de la información involucra tres componentes: datos de entrada, procesador y datos de salida. El procesador transforma los datos de entrada en datos de salida ejecutando intrucciones precisas y detalladas que se denominan programas. El Hardware y el software

Una computadora esta compuesta por dos elementos fundamentales: Hardware y Software.

El Hardware es la parte física de la computadora. Es aquello que podemos ver y tocar. Esta formado por el monitor, el teclado, el mouse, la unidad del sistema, la impresora, etc. El Software es la parte lógica de la computadora y esta formado por el conjunto de programas que controlan el funcionamiento de la computadora.

INTRODUCCIÓN A LA ALGORITMIA

Fuente: Sitio Algoritmo: Es un conjunto determinado de instrucciones que, al seguirse, desempeñan una tarea particular. Debe satisfacer los siguientes criterios:

· Entrada: Se le brindan los datos con los cuales trabajar.

· Salida: Se obtiene un valor o un efecto al finalizar.

· Definición Clara: No puede haber instrucciones ambiguas.

· Limitación de Alcance: El algoritmo debe terminar en un número finito de pasos.

· Eficiencia: Se busca la solución en la menor cantidad de pasos posibles utilizando la menor cantidad de recursos posibles. La creación de programas tiene los siguientes pasos:

· Obtención de requisitos: Se debe comprender cual es la información recibida (entrada) y cual es el resultado que se espera (salida) del programa.

· Concepción: Buscar una forma de resolver el problema.

· Análisis: Pensar en otras formas de resolver el problema y refinar la que parezca mejor.

· Verificación: Comprobación del programa, test, depuración, corrección de errores.

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

PROGRAMA

Conjunto de instrucciones escritas en secuencia, con miras a efectuar una determinada tarea de manera eficiente.

ALGORITMO

Es la descripción detallada, de todos los pasos que deben seguirse, para efectuar un determinado cometido.

En una receta de cocina, a mas de los ingredientes necesarios para preparar un determinado manjar, se hace una reseña de la secuencia en la que debe prepararse el plato en cues tión, por consiguiente, esto es también un algoritmo.

En Informática, a través de los algoritmos, se resuelven los diferentes problemas que se nos presentan de manera cotidiana y que forman parte de dicho contexto. Es imperativo el correcto aprendizaje y uso de esta poderosa herramienta para implementar aplicaciones y para facilitar al programador la lógica necesaria para la resolución de problemas.

Con relación al origen de la palabra, deriva del nombre de un gran matemático árabe, llamado Mohamed Al Kowarizmi , que alrededor del año 800 d.c. Luego, Fibonacci tradujo sus obras al latín, y por consiguiente se habló en primera instancia de la palabra algoritmus, que finalmente se transformó en algoritmo que es el término utilizado en la actualidad.

Para idear un algoritmo se debe hacer un análisis previo del problema a ser resuelto, luego se debe hallar un camino o metodología que nos permita resolver el problema, y todos los pasos en riguroso orden y secuencia son los que finalmente constituyen el algoritmo propiamente dicho.

Dicho de otro modo, para solucionar un problema, se debe diseñar un algoritmo que lo haga, por consiguiente, no debemos perder de vista, que los pasos para resolver un problema, sería:

1)

Diseñar el algoritmo :Como veremos más adelante, para el efecto se debe utilizar algunas de las herramientas recomendadas para el efecto (Pseudocódigo en nuestro caso, o diagrama de flujo o diagrama N -S).

2)

Codificar el algoritmo en algún lenguaje de programación.

3)

Ejecutar el programa en alguna computadora

Podemos inferir que el diseño del algoritmo nada tiene que ver con un lenguaje determinado ni tampoco con la computadora en la que se ejecutará el programa, y en este material se utilizará el pseudocódigo como herramienta de diseño de algoritmos el cual a su vez se basa en el español estructurado, que es nuestra lengua materna y por ende el idioma que mejor comprendemos.

CARACTERÍSTICAS DE LOS ALGORITMOS

Con el objeto de ampliar nuestra perspectiva con relación a los algoritmos, podemos acotar que deben reunir las siguientes características:

1)

2)

3)

Exacto y preciso, de modo tal que no queden dudas sobre la secuencia y el orden a seguirse Claramente explicado Tener un principio y un fin

AUTORES. LIC. CESAR CALASTRA Y LIC. SILVANA DE CALASTRA (EDICIÓN DE CORTESÍA)

El esquema a seguirse seria entonces:

1)

Entrada : Se alimenta con datos a la computadora

2)

Proceso : Se desarrolla la estrategia

3)

Salida : El computador emite información

DISEÑO DE UN ALGORITMO

La forma más eficiente de diseñar algoritmos, es la que se conoce con el nombre de “divide y vencerás”, que consiste en dividir el problema en partes más pequeñas que podrían denominarse sub-problemas, y a su vez cada sub-problema puede ser nuevamente desglosado en otros sub-problemas. El siguiente paso consiste en ir analizando cada parte para volverlo más eficiente, vale decir ir efectuando “refinamientos” y “depuraciones” sucesivas.

Se debe hacer notar con meridiana claridad que, cada problema presentado al programador es por lo general diferente a problemas anteriores y por lo tanto no se puede “mecanizar” el proceso de elaborac ión de los algoritmos y sugerir soluciones similares a problemas de naturaleza diferente. Esto a su vez naturalmente exige al máximo la capacidad de análisis, el ingenio y la creatividad del individuo responsable de idear soluciones.

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

METODOLOGÍA DE DISEÑO DE ALGORITMOS

En algunos casos, una vez efectuado el análisis del problema, es factible a priori preparar una estrategia de solución simple y directa, y en estas circunstancias lo que estamos haciendo es utilizar un mecanismo conocido con el nombre de “fuerza bruta”, que si bien nos permite resolver el problema, puede no ser la mejor solución y por ende disminuir el grado de eficiencia del programa. Por lo tanto no recomendamos esta estrategia como alternativa final, sino mas bien como una forma de aproximarse mejor a la solución definitiva.

Por consiguiente, sugerimos nuevamente no dejar de lado la estrategia “divide y vencerás”, que no siempre se puede aplicar como estrategia definitiva, pues se dan casos que exigen otra visión.

Así por ejemplo, no podemos dejar de mencionar al mecanismo de la recursividad (la función se autoinvoca y se debe prever una condición de fin para terminar su ejecución) para problemas concretos de índole matemático, tales como números fibonacci o cálculo de factoriales.

Tampoco podemos dejar de mencionar, una alternativa conocida con el nombre de solución voraz, para lo cual es condición imperativa contar ya con alternativas pre-establecidas. A modo de ejemplo, podemos mencionar la estrategia a utilizarse para dar un vuelto a un cliente, utilizando la menor cantidad posible de monedas, por lo tanto si el cliente hace una compra por valor de 5.200 (cinco mil doscientos) guaraníes y paga con un billete de Gs. 50.000 (cincuenta mil) guaraníes., se debe evaluar cual es el billete de mayor denominación que se necesitará, así como también cantidad de billetes necesarios y así sucesivamente.

Además haremos mención a otra metodología conocida con el nombre de programación dinámica, en la que se define una secuencia de decisiones, ideal para establecer series de ecuaciones, con el objeto de definir a través de soluciones particulares, una solución general única.

Tipos de órdenes, instrucciones y estructuras más frecuentes en los algoritmos

Instrucciones : De entrada, de salida, de asignación.

Variables: Numéricas y Alfanuméricas

Estructuras: Lineales, de iteración y de selección.

BREVE BIOGRAFIA DE LEONARDO BONACCIO (FIBONACCI) 1170 A 1250 D.C.

Nació en Pisa (Italia). Su nombre FIBONACCI como más se lo conoce, es simplemente una contracción de filius Bonaccio (hijo de Bonaccio).

Fue mas bien educado en el norte de Africa y de pequeño realizó muchísimos viajes acompañando a su padre que tenía un rango diplomático.

De esta manera al ser educado por maestros árabes, estos le tra nsmitieron sus conocimientos heredados a su vez de los hindúes y de los griegos.

Publicaciones

Liber Abaci : Publicado en el año 1202, en la que transmite conceptos importantes de aritmética y álgebra, e introduce los nú meros arábigos en Europa, llevando a cabo una encendida defensa de la superioridad numérica de los números árabes y menciona al cero ( 0 ), que era prácticamente ignorado en Europa.

Prácticas de Geometría : Publicado en el año 1220, que como su nombre lo dice se plantea cuestiones inherentes a la geometría e incluso a la trigonometría.

Liber Quadratorum . Data probablemente del año 1225, y allí plantes aproximaciones a raíces cúbicas.

La Sucesión de Números Fibonacci

El mismo la presenta en su libro Liber Abaci de la siguiente forma:

En una granja hay, al principio del año, una pareja de conejos que acaban de nacer. Al cabo de dos meses, esta pareja está pre pa rada para reproducirse. Produce cada mes una pareja de conejos que, al cabo de dos meses, está a su vez, preparada para empezar a reproducirse, dando otra pareja cada mes. ¿Cuál es el número de parejas de conejos en la granja el día quince de cada mes del año? El problema se resuelve tomando como los dos primeros componentes de la serie como uno, vale decir:

1

1

2

3

5

8

13

21

34

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

REPRESENTACIÓN DE ALGORITMOS Para la sistematización de los algoritmos, se utilizan en Informática, diferentes herramientas, entre las cuales podemos

mencionar :

Pasos para resolver un problema: a) Esbozar el algoritmo b) Codificar el algoritmo a través de un lenguaje de alto nivel c) Ejecutar el programa en el computador.

PSEUDOCODIGO

DIAGRAMA DE FLUJO

DIAGRAMA NASSI SCHNEIDERMAN

DIAGRAMA WARNIER ORR

DIAGRAMA Es la representación a través de símbolos gráficos, de los pasos que deben seguirse para codificar a posteriori un programa, en algún lenguaje de alto nivel

TIPOS DE DIAGRAMA

A) DIAGRAMA DE FLUJO

Es recomendable para lenguajes lineales (BASIC, FORTRAN IV, COBOL, etc.).

Sus símbolos son

INICIO / FIN

OTRA DEFINICION DE ALGORITMO FUENTE Sitio:

LECTURA / ENTRADA

 

Un

Algoritmo

 

es

un

conjunto

ordenado

y

CALCULO / PROCESO

finito

de

pasos

o

instrucciones

que

conducen a la solución

de

un

problema.

La

naturaleza

de

los

DECISION / CONDICION

problemas varían con el ámbito o con el contexto donde estan planteados; así, existen problemas matemáticos, químicos, filosóficos, etc

SALIDA / IMPRESIÓN

CONTADOR AUTOMATICO / CICLO/ ITERACION/BUCLE

/ IMPRESIÓN CONTADOR AUTOMATICO / CICLO / ITERACION/BUCLE CONECTOR B) DIAGRAMA NASSI SCHNEIDERMAN Consta nada mas
/ IMPRESIÓN CONTADOR AUTOMATICO / CICLO / ITERACION/BUCLE CONECTOR B) DIAGRAMA NASSI SCHNEIDERMAN Consta nada mas
/ IMPRESIÓN CONTADOR AUTOMATICO / CICLO / ITERACION/BUCLE CONECTOR B) DIAGRAMA NASSI SCHNEIDERMAN Consta nada mas
/ IMPRESIÓN CONTADOR AUTOMATICO / CICLO / ITERACION/BUCLE CONECTOR B) DIAGRAMA NASSI SCHNEIDERMAN Consta nada mas

CONECTOR

B) DIAGRAMA NASSI SCHNEIDERMAN

Consta nada mas que de tres símbolos :

NASSI SCHNEIDERMAN Consta nada mas que de tres símbolos : CALCULO / PROCESO / LECTURA DECISION
NASSI SCHNEIDERMAN Consta nada mas que de tres símbolos : CALCULO / PROCESO / LECTURA DECISION

CALCULO / PROCESO / LECTURA

DECISION / CONDICION

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

ITERACION

C) DIAGRAMA WARNIERR ORR

Utiliza los siguientes símbolos :

C) DIAGRAMA WARNIERR ORR Utiliza los siguientes símbolos : LLAVES ( N ) ITERACION 0 FALSO

LLAVES

( N )

ITERACION 0 FALSO CONDICION 1 VERDADERO
ITERACION
0
FALSO
CONDICION
1
VERDADERO

D) PSEUDOCODIGO

MOHAMMED AL- KHOWARIZMI (PADRE DE LA ALGORITMIA)

MOHAMMED AL- KHOWARIZMI (PADRE DE LA ALGORITMIA) Se basa en la lengua materna del programador. En

Se basa en la lengua materna del programador.

En nuestro caso, español estructurado. En el pseudocódigo, se escribe paso a paso, las instrucciones que luego se pasarán a algún lenguaje de alto nivel. A su vez, un pseudocódigo se compone de :

A) ESTRUCTURAS Básicamente son tres :

1)

Estructuras Lineales o Secuenciales

2)

En las estructuras lineales, las instrucciones se van ejecutando paso a paso o de uno en uno, en el mismo orden en que las mismas fueron escritas. Estructuras de Iteración Implica que un segmento del programa debe repetirse un número finito de veces, para lo cual debe preverse una condición de FIN, pues de lo contrario el programa entrará en loop. Normalmente se utilizan los siguientes esquemas :

A) PARA C = 1 HASTA 20

FINPARA

B) DESDE C = 1 HASTA 20

FINDESDE

INSTRUCCIONES NSTRUCCIONES

INSTRUCCIONES20 FINPARA B) DESDE C = 1 HASTA 20 FINDESDE I NSTRUCCIONES AUTORES. LIC. CESAR CALASTRA

AUTORES. LIC. CESAR CALASTRA Y LIC. SILVANA DE CALASTRA (EDICIÓN DE CORTESÍA)

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

B)

C) REPETIR

C = C + 1

HASTA C = 20

D) MIENTRAS C <> 20

C = C + 1

FINMIENTRAS

E) HACER

C = C + 1

OTRA DEFINICION DE PROGRAMA:

Un programa es un conjunto de líneas de código escritas en un lenguaje de programación determinado.

Pero el código escrito en un lenguaje de alto nivel no puede ser entendido por el ordenador, por lo que es necesaria la traducción a código máquina

3)

MIENTRAS C <> 20 Estructuras de Selección

Implica que el programa debe evaluar previamente una condición y de acuerdo al resultado de dicha evaluación se bifurca hacia una u ora dirección. A su vez se subdividen en :

a) Selección Simple He aquí su esquema normal :

ORIGEN DE LA PALABRA ALGORITMO

El uso de dicha palabra se ha difundido bastante con la aparición de la informática. La palabra proviene de Mohammed Al-Khowarizmi, matemático persa que vivió durante el siglo IX D.C. y alcanzó gran reputación por el enunciado de las reglas paso a paso para sumar, restar, multiplicar y dividir números decimales. La traducción al latín del apellido en la palabra algoritmus, derivó posteriormente en algoritmo. El gran matemático griego Euclides, que vivió en el siglo IV a.C. que entre otras cosas inventó un método para encontrar el MCD de dos números también es considerado el padre de la Algoritmia.

SI C > 50 FINSI
SI
C > 50
FINSI

b) Selección Doble

SI C > 50 SINO FINSI
SI
C > 50
SINO
FINSI

c) Selección Múltiple

Si

C > 50

SI

FINSI

C < 100

SINO

FINSI

SENTENCIAS

En general las sentencias, se clasifican en :

1)

De entrada Sirven para ingresar datos, lo cual normalmente se hace a través del tec lado.

En pseudocódigo, se utiliza para el efecto la sentencia LEER. Ejemplos :

LEER A

LEER

X, Y, Z

LEER

R1, U3, KH22

LEER

A1$, G$, B$

2)

En estos ejemplos A, X, Y, Z, R1, U3, KH22 son variables numéricas, y por lo tanto se definen para ingresar dígitos numéricos. Sin embargo, A1$, G$, B$, son variables alfanuméricas, y por consiguiente se utilizan para ingresar dígitos numéricos, caracteres alfabéticos y caracteres especiales (+ * - / ñ $ % & ( \, etc.) De salida

Su función básica es la de emitir información. Normalmente, para el efecto se utiliza la sentencia IMPRIMIR. Ejemplos :

3)

IMPRIMIR R1 IMPRIMIR X * 3 IMPRIMIR “RESULTADO FINAL ES : “ , S2 De asignación Consiste en almacenar constantes, resultados de operaciones matemáticas, o variables, en una variable de resultado. Ejemplos :

Z1 = 45 R2 = 12 * 10 M1 = Z4 + 15

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

C) VARIABLES Cada lenguaje maneja su propio juego de variables.

En la algoritmia pura, básicamente se definen dos grandes tipos de variables, que son :

1)

Numéricas

Se

definen para almacenar dígitos numéricos.

Ejemplos de nombres de variables :

A

B3

 

MH12

 

NK6

2)

Alfanuméricas

Se definen para almacenar dígitos numéricos, caracteres alfabéticos e incluso caracteres especiales.

Con las variables alfanuméricas, no se pueden efectuar operaciones matemátic as tales como adición, sustracción,

multiplicación, división, exponenciación.

Ejemplos de nombres de variables alfanuméricas :

A$

B3$

MH$

D) CONSTANTES Normalmente se subdividen en :

1)

Numéricas Representan valores numéricos. Una constante numérica solo puede coaligarse con una variable numérica.

Ejemplos :

A

=

12

(A es la variable numérica y 12 es la constante)

C3

=

M 4

(C3 y M son variables numéricas, y 4 es la constante)

D6

=

C3 / 5.4

(D6 y C3 son variables numéricas, y 5.4 es la constante)

2)

Alfanuméricas Representan números, caracteres alfabéticos y caracteres especiales. Deben representarse entre comillas. Ejemplo :

A$ = “HOLA”

(A$ es la variable y “HOLA” es la constante)

E) OPERACIONES Las operaciones que se pueden efectuar en una computadora son :

Adición Sustracción Multiplicación División Exponenciación

F) OPERADORES MATEMATICOS

Los operadores matemáticos son :

+

(Mas)

SUMA

-

(Menos)

RESTA

*

(Asterisco)

MUTIPLICACION

/

(Barra Común)

DIVISION

^

(Circunflejo)

EXPONENCIACION

No es posible efectuar de manera directa una operación de radicación, sin embargo, es perentorio hacer notar que, la exponenciación y la radicación son operaciones inversas.

27 x
27
x

Por consiguiente

sería lo mismo que

27 ^ ( 1 / 2 ) .

x

En una generalización

sería lo mismo que

^ ( 1 / 2 ) .

.

G) OPERADORES RELACIONALES Son los siguientes :

>

MAYOR QUE

<

MENOR QUE

>=

MAYOR O IGUAL QUE

<=

MENOR O IGUAL QUE

=

IGUAL QUE

<>

DIFERENTE A

Ejemplos :

SI

SI

SI

SI

SI

A

B

Z

R >= 145

M

10

>

=

<

12

X

<>

0

AUTORES. LIC. CESAR CALASTRA Y LIC. SILVANA DE CALASTRA (EDICIÓN DE CORTESÍA)

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

H) OPERADORES LOGICOS

Los operadores lógicos son :

1)

OPERADOR LOGICO Y Implica que se unen dos o mas condiciones a través de este operador. Para evaluar la salida que se produce al juntar dos o más condciones se utiliza la siguiente tabla de verdad.

 

1ra Cond. Y

2da Cond.

RESULTADO V F F F
RESULTADO
V
F
F
F

V

y

V

V

V

y

F

F

F

y

V

V

F

y

F

F
 

En síntesis, para que dos o más condiciones unidas a través de Y, prod uzca una salida V(erdadera), todas las condiciones evaluadas deben ser verdaderas. Ejemplos :

Si B > 20 Y B < 50

 

2)

FINSI Si B tiene un valor 30, entonces esto dará una salida V (erdadera), pues la primera condición B > 20 es V(erdadera) y la segunda B < 50 también es V(erdadera). Sin embargo al asignarle a B un valor de 60, esto dará una salida F(alsa), pues la primera condición B > 20 es V(erdadera) pero la segunda condición B < 50 es F(alsa). OPERADOR LOGICO O Implica que se unen dos o más condiciones a través de este operador. Para evaluar la salida que se produce al juntar dos o más condiciones se utiliza la siguiente tabla de verdad.

 

1ra Cond.

O

V

F

V

F

RESULTADO V V V F
RESULTADO
V
V
V
F

2da Cond.

V

o

V

o

F

o

F

o

 

En síntesis, para que dos o más condiciones unidas a través de O, produzca una salida V(erdadera), todas las condiciones evaluadas deben ser verdaderas, o por lo menos solo una de ellas. Ejemplos :

Si B < 20 o B > 50

 

3)

FINSI Si B tiene un valor 30, entonces esto dará una salida F(alsa), pues la primera condición B< 20 es F(alsa) y lasegunda B > 50 también es F(alsa). Sin embargo al asignarle a B un valor de 60, esto dará una salida V (erdadera), pues aunque la primera condición B < 20 es F(alsa) la segunda condición B > 50 es V(erdadera). OPERADOR LOGICO NO La negación NO normalmente se combina con los operadores de relación tales como > , < ; =. A consecuencia de ello, se forman combinaciones tales como NO >, NO <, NO =, etc.

I) PRIORIDAD DE LAS OPERACIONES La prioridad de las operaciones matemáticas son las siguientes Suma, resta Multiplicación , división

Exponenciación

J) EXPRESIONES Y USO DE PARENTESIS Teniendo en cuenta lo mencionado en el punto I, para la siguiente expresión:

R = A / 5 + T * 3 14 / 2

Es posible, cambiar el orden en la prioridad de las operaciones, a través del uso de paréntesis, de la siguiente forma :

R = (A / 5) + (T * 3) (14 / 2)

OTRA DEFINICION DE ALGORITMO FUENTE: Sitio http://www.algoritmia.net/

Una definición informal (no se considera aquí una definición formal, aunque existe): conjunto finito de reglas que dan una secuencia de operaciones para resolver todos los problemas de un tipo dado. De forma más sencilla, podemos decir que un algoritmo es un conjunto de pasos que nos permite obtener un dato.

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

RESUMEN DEL CAPITULO Las herramientas utilizadas en informática, para representar algoritmos son :

PSEUDOCODIGO

DIAGRAMA DE FLUJO

DIAGRAMA NASSI SCHNEIDERMAN

DIAGRAMA WARNIER ORR

Los componentes más importantes del pseudocódigo son:

1) Estructuras Lineales De iteración IPara-Fin para, Desde-Findesde, Repetir hasta, Mientras-Finmientras, Hacer-mientras). De selección (Simple, Doble, Múltiple).

2) Sentencias De entrada De salida De asignación 3) Variables Numéricas Alfanuméricas 4) Constantes Numéricas Alfanuméricas 5) Operaciones (Adición, resta, multiplicación, división, exponenciación). 6) Operadores Matemáticos ( +, - , / , *, ^ ) 7) Operadores Relacionales ( >, <, <=, >=, =, <> ). 8) Operadores Lógicos ( Y , O , NO ).

9) Prioridad de las operaciones ( 1) + - 10) Expresiones y uso de paréntesis

2)

/

*

3) ^

).

EJERCICIOS PROPUESTOS :

1)

Dado el siguiente pseudocódigo:

 

INICIO

 
 

P

= 0

LEER T, A

 

P

= T / A

IMPRIMIR P

 
 

FIN

a)

Que tipo de variable es P? R: P es una variable de tipo

 

AUTORES. LIC. CESAR CALASTRA Y LIC. SILVANA DE CALASTRA (EDICIÓN DE CORTESÍA)

 

b)

Que tipo de sentencia es LEER T,A ? R: Es una sentencia de

c)

Que tipo de sentencia es P = T / A ?

 

R: Es una sentencia de

 

d)

El presente pseudocódigo utiliza una estructura ?

 
 

(

) De selección

 

(

) Lineal

(

) Iterativa

2)

Dada la siguiente estructura de selección y los valores hipotéticos asignados a la variable X, determinar el valor final de la variable R, en el momento de la impresión:

INICIO

 
 

SI

X > 50

X

R

 

= X + 10

10

 

SINO

R

R

60

= X * 2

-20

FINSI

100

IMPRIMIR R

 

3)

FIN Dado el siguiente ejercicio con operador lógico Y, determinar el valor de la variable X, en el momento de la impresión:

INICIO

M

X

 

SI

( M > 10 )

Y

( M < 20 )

13

 

X

= M + 20

8

 

SINO

30

 

X

= M 5

20

 

FINSI

15

IMPRIMIR X

 

FIN

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

ESTRUCTURAS LINEALES O DE SECUENCIA

SENTENCIAS DE ENTRADA

SENTENCIAS DE SALIDA

SENTENCIAS DE ASIGNACION

OPERACIONES MATEMATICAS

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

“Lo importante no es vencer siempre, sino nunca desanimarse”. Napoleón.

RESPUESTA A EJERCICIO MENTAL NRO. UNO (AL DORSO DE INICIO DEL CAPITULO UNO) Hay dos soluciones posibles. 156 y 174.

En la primera solución, A=3, B=9, C=4, D=7, E=8, F=2, G=1, H=5 y I=6. Por lo tanto 39 * 4 = 78 * 2 =

156.

En la segunda solución, A=5, B=8, C=3, D=2, E=9, F=6, G=1, H=7 y I=4. Por lo tanto 58 * 3 = 29 * 6 =

174.

EJERCICIO MENTAL NRO. DOS

Después de quemar una vela sobra un poco de cera. Con seis sobrantes se puede hacer otra vela igual a la original.

¿Cuántas velas se pueden hacer así con 1001 sobrantes?

. VER RESPUESTA AL DORSO DE INICIO DE CAPITULO TRES

CONDICIONES QUE DEBEN CUMPLIR LOS ALGORITMOS

· Finitud: El algoritmo debe acabar tras un número finito de pasos. Es más, es casi fundamental que sea en un número razonable de pasos. · Definibilidad: el algoritmo debe definirse de forma precisa para cada paso, es decir, hay que evitar toda ambigüedad al definir cada paso. Puesto que el lenguaje humano es impreciso, los algoritmos se expresan mediante un lenguaje formal, ya sea matemático o de programación para un computador. · Entrada: el algoritmo tendrá cero o más entradas, es decir, cantidades dadas antes de empezar el algoritmo. Estas cantidades pertenecen además a conjuntos especificados de objetos. Por ejemplo, pueden ser cadenas de caracteres, enteros, naturales, fraccionarios, etc. Se trata siempre de cantidades representativas del mundo real expresadas de tal forma que sean aptas para su interpretación por el computador. · Salida: el algoritmo tiene una o más salidas, en relación con las entradas. · Efectividad: se entiende por esto que una persona sea capaz de realizar el algoritmo de modo exacto y sin ayuda de una máquina en un lapso de tiempo finito.

- Clasificación de algoritmos

* Algoritmo determinista: en cada paso del algoritmo se determina de forma única el siguiente paso. * Algoritmo no determinista: deben decidir en cada paso de la ejecución entre varias alternativas y agotarlas todas antes de encontrar la solución.

Todo algoritmo tiene una serie de características, entre otras que requiere una serie de recursos, algo que es fundamental considerar a la hora de implementarlos en una máquina. Estos recursos son principalmente:

· El tiempo: período transcurrido entre el inicio y la finalización del algoritmo. · La memoria: la cantidad (la medida varía según la máquina) que necesita el algoritmo para su ejecución.

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

EJERCICIOS CON ESTRUCTURAS SECUENCIALES

Los ejercicios detallados a continuación, tienen por objetivo, permitir al lector una acabada comprensión de los diferentes tipos de sentencias, las diversas operaciones y operadores matemáticos que se pueden utilizar, variables de entrada y de resultado, etc. Todos ellos fueron desarrollados en estructuras lineales o de secuencia y con variables numéricas exclusivamente. En las estructuras lineales o secuenciales, las órdenes se ejecutan en el mismo orden en que fueron escritas, sin que se produzcan bifurcaciones. 1) Introducir un número cualquiera, multiplicarlo por tres e imprimir el resultado.

R

X

Variable de resultado

Variable numérica de entrada

INICIO

R = 0 LEER X

R = X * 3

IMPRIMIR R

FIN

DESC. DEL PSEUDOCODIGO

Se inicializa R Se ingresa el valor X

Se efectua multiplicación Se imprime resultado (R)

COMPLETE EL VALOR QUE TENDRA R

X

20

15

11

40

R

SI X =

Se ejecuta la orden R = X * 3 Se imprimirá R = 18

6

PRUEBA DE ESCRITORIO SI X = 10 Se ejecuta la orden R = X * 3 Se imprimirá R = 30

2) Introducir dos números. Determinar e imprimir la suma de los mismos.

S Variable de resultado

A, B Variables numéricas de entrada

INICIO

FIN

S

LEER A, B

S = A + B

IMPRIMIR S

= 0

Se inicializa S Se introducen los valores A y B

Se efectua suma y se guarda en S Se imprime resultado

COMPLETE EL VALOR QUE TENDRA S

S

10

12

20

40

A

B

50

13

30

50

PRUEBA DE ESCRITORIO

SI A = 15 Y B = 20 Se ejecuta la orden S =

A + B

SI A = 40 Y B = 30 Se ejecuta la orden S = A + B

3)

Introducir un número que represente al lado de un pentágono. Calcular e imprimir su perímetro.

P

L

Variable de resultado (Perímetro)

Variable numérica de entrada (Lado)

INICIO

P

LEER L

P = L * 5

IMPRIMIR P

= 0

FIN

Se inicializa P Se ingresa el valor L

Se calcula perimetro Se imprime perímetro P

COMPLETE EL VALOR QUE TENDRA P

L

20

15

11

40

P

SI L =

Se ejecuta la orden P = L * 5 Se imprimirá P = 30

6

PRUEBA DE ESCRITORIO SI L = 10 Se ejecuta la orden P = L * 5 Se imprimirá P = 50

4)

Introducir dos números que representen a los lados de un rectángulo, Determinar e imprimir su superficie utilizando para el efecto la fórmula pertinente.

S Variable de resultado, para almacenar la superficie

L,A Variables de entrada (Lado y Alto)

INICIO

FIN

S

LEER L, A

= L * A

S

IMPRIMIR S

= 0

Se inicializa S Se ingresan L (lado) y A (alto)

Se calcula superficie Se imprime Superficie

COMPLETE EL VALOR QUE TENDRA S

L

20

10

50

S

A

10

40

20

SI L = 10 Y A = 6 Se imprimirá S = 60

PRUEBA DE ESCRITORIO SI L = 15 Y A = 10 Se imprimirá S = 150

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

5)

Introducir tres números cualesquiera. Restar el primer número con el tercero, a este resultado multiplicarlo por cinco, luego a este resultado sumarle el segundo número.

R

Variable de resultado, para almacenar el resultado final

A,B,C

Variables de entrada

ALTERNATIVA UNO

ALTERNATIVA DOS

INICIO

COMPLETE EL VALOR QUE TENDRA R

INICIO

R

= 0

A

B

C

R

R

= 0

LEER A,B,C

5

3

10

LEER A,B,C 5 3 10 LEER A,B,C,

LEER A,B,C,

R

= A - C

30

2

5

R

=

( ( ( A C ) * 5 ) + B )

R

= R * 5

25

4

15

IMPRIMIR R

R

= R + B

50

5

40

FIN

 

IMPRIMIR R

   

FIN

Observación : La alternativa dos es un algoritmo optimizado.

6)

 
 

Introducir cuatro números. Sumar el primero con el tercero, a este resultado dividirlo por dos, luego a este resultado restarle el segundo número y por último a este nuevo resultado multiplicarlo por el cuarto número, e imprimir el resultado final.

R

Variable de resultado, para almacenar el resultado final

 

P,X,Y,Z

Variables de entrada

 

ALTERNATIVA UNO

ALTERNATIVA DOS

INICIO

INICIO

7)

FIN

R

= 0

COMPLETE EL VALOR QUE TENDRA R

R

= 0

LEER P,X,Y,Z

P

X

Y

Z

R

LEER P.X.Y.Z

 

R

= P + Y

13

3

7

4

R

= ( ( ( ( P + Y ) / 2 ) X ) * Z

)

R

= R / 2

20

4

10

2

IMPRIMIR R

R

= R X

5

2

9

3

FIN

R = R * Z

IMPRIMIR R

PRUEBA DE ESCRITORIO SI P = 8 , X = 4, Y = 20 , Z = 3 En el primer calculo R = P + Y , R = 28, luego En el segundo calculo R = R / 2 , R = 14, luego En el tercer calculo R = R X , R = 10, luego En el ultimo calculo R = R * Z, R = 30 , que será el RESULTADO FINAL. Introducir dos números, e imprimirlos. Transferir el valor del primer número al segundo y viceversa. Luego, imprimir nuevamente los dos números, una vez efectuada la transferencia de valores.

AUX

Variable auxiliar, que se utiliza para almacenar en forma temporal el valor de M.

 

M,N

Variables de entrada

M

N

INICIO AUX = 0 LEER M.N

IMPRIMIR M, N AUX = M

M = N

N = AUX

IMPRIMIR M, N

FIN

Se inicializa AUX Se ingresan valores M y N Se imprimen valores ingresados Se trasfiere M a AUX

Luego, se trasfiere N a M

Por último, AUX se trasfiere a N Se imprimen valores nuevamente

Paso 1 Se trasfiere M a AUX Paso 2(N a M) Paso 3 Se trasfiere
Paso 1
Se trasfiere
M a AUX
Paso 2(N a M)
Paso 3
Se trasfiere
AUX a N

PRUEBA DE ESCRITORIO

M = 20, N = 10

En la primera impresión se despliegan M y N tal como se los definió, vale decir 20 y 10, respectivamente. Luego, cuando se ejecuta la sentencia AUX = M, en la varia- ble AUX se almacena 20, cuando se ejecuta la instrucción M = N, se almacena 10 en la variable M, y por ultimo, cuando se ejecuta la instrucción N = AUX, se transfiere a la varia- ble N, el valor 20, con lo que se completa el proceso de permutación de las variables.

AUX

OBSERVACION MUY IMPORTANTE :

En el presente algoritmo se ha recurrido al uso de un auxiliar, para almacenar en forma temporal, el valor de la primera variable, para luego proceder a la transferencia del valor almacenado en el auxiliar, a la segunda variable. Sin embargo, es posible hacer una trasferencia de valores de la primera variable a la segunda y viceversa, sin necesidad de recurrir al uso de un auxiliar, lo cual habremos de demostrar en el algoritmo, que detallamos en la siguiente página. Esto debe tomarse como una mera curiosidad, como algo anecdótico, pues en la práctica normalmente no se utiliza este procedimiento, pues la mayoría de los profesionales informáticos, recurre al uso de los auxiliares.

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

8)

INICIO

FIN

LEER M.N

IMPRIMIR M, N

N

M

N

IMPRIMIR M, N

= M - N = M N = M + N

Se ingresan M y N Se imprimen los valores ingresados

Se resta M con N y se almacena en N

Se resta M con N y se almacena en M

Se suman M y N y se almacena en N Se imprimen M y N

PRUEBA DE ESCRITORIO

VARIABLES DE ENTRADA M y N

M = 35 , N = 20

En el primer calculo N = M N, el valor de N es 15 En el segundo calculo M = M N, el valor de M es 20. En el tercer calculo, N = M + N, el valor de N es 35, con lo cual finaliza el proceso de transferencia.

Introducir seis números cualesquiera.

Sumar entre sí los dos primeros números, y los dos últimos números restarlos entre sí. Ambos resultados a su vez, sumarlos entre sí, a este resultado multiplicarlo por el cuarto número, y luego a este nuevo resultado, dividirlo por el tercer número. A, B, C, D, E, F Variables de entrada

Z

Variable de resultado

 

INICIO

COMPLETE EL VALOR QUE TENDRA Z

Z = 0

A

B

C

D

E

F

Z

LEER A,B,C,D,E,F

 

15 20

5

3

40

30

Z =

( ( ( A + B )

+

( E F ) * D

) / C )

40 30

3

2

50

15

IMPRIMIR Z

FIN

 
 

PRUEBA DE ESCRITORIO

A= 10

B = 15

C=5

D = 2

E = 15

F= 5

A

+ B

Arrojará como resultado

25

- (A+B) +(E-F) ((A+B) +(E-F) * D) (((A+B) +(E-F) * D)/C)

E

F

Arrojará como resultado Arrojará como resultado Arrojará como resultado Arrojará como resultado

10

35

70

14

 

BREVE BIOGRAFIA DE AL-KHOWARIZMI (PADRE DE LA ALGORITMIA)

 

Matemático y astrónomo árabe miembro de la "Casa de la sabiduría" fundada en Bagdad, la ciudad de las Mil y una noches, por el califa Al-Mamun (809-833), en la que trabajaron sabios judíos y cristianos procedentes de Siria, Irán y Mesopotamia. Escribió varios libros de astronomía, uno de álgebra y otro sobre aritmética (traducidos al latín en el s. IX por Adelardo de Bath y Roberto de Chester), en el que hace una exposición exhaustiva del sistema de numeración hindú. Este sistema se empezó a conocer como «el de Al-Khowarizmi» y, por las deformaciones que tuvo, bien por transmisión o por traducción, llegó a la palabra «algorismi», «algorismo» o «algoritmo». Actualmente el término algoritmo significa procedimientos operativos que permiten resolver cualquier problema de un determinado tipo. Sin duda se debe a Al-Khowarizmi el hecho de que la palabra algoritmo se haya convertido en palabra de uso común en todos los idiomas, especialmente en el campo de las matemáticas y de la informática. La resolución de la ecuación de segundo grado aparece en los trabajos de Al-Jwarizmi utilizando un método geométrico cuyo fundamento es la formación de cuadrados. En esencia coincide con el actual método general. OTROS SITIOS EN INTERNET DONDE HALLARAS MAS INFORMACION SOBRE ESTE GENIO

1)

2)

OTRA DEFINICIÓN DE ESTRUCTURAS DE SECUENCIA

Fuente: Sitio http://www.geocities.com/david_ees/Algoritmia/curso.htm

Una estructura secuencial es aquella en la que las instrucciones están una a continuación de la otra siguiendo una secuencia única, sin cambios de ruta. La estructura secuencial tiene una entrada y una salida.

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

1)

RESUMEN DEL CAPITULO Se ha procedido a resolver ejercicios basados exclusivamente en estructuras lineales , para de esa forma permitir al lector una acabada comprensión del concepto de “órdenes ejecutadas en secuencia”, pues todos los pseudocódigos se van ejecutando en el mismo orden en que las instrucciones fueron escritas, al no utilizarse bifurcaciones (estructuras de selección) ni procesos repetitivos (estructuras repetitivas). Además, se han utilizado la mayoría de los operadores y operaciones matemáticas, con valores simulados a los efectos de poder llevar a cabo pruebas de escritorio. EJERCICIOS PROPUESTOS (RESUELTOS EN EL APENDICE A) Introducir un número que represente el lado de un triángulo equilátero. Determinar e imprimir su perímetro, y para el efecto utilizar la fórmula correspondiente. Introducir un número que represente el lado de un cuadrado. Determinar e imprimir su superficie y para el efecto aplicar la fórmula pertinente. Introducir dos números. Determinar e imprimir el producto de los mismos. Introducir cinco números. Restar el primero con el quinto, a este resultado sumarle el segundo, luego a este resultado dividirlo por el cuarto número, y por último a este resultado sumarle el tercer número. Imprimir el resultado. Efectuar un seguimiento del siguiente pseudocódigo, y luego determinar el valor de la variable Z. INICIO Z= 0 M= 115 X= 10 R= 5 Z= M + 5 Z= Z * 2 Z= Z X Z= Z / R IMPRIMIR Z

2)

3)

4)

5)

FIN EL VALOR DE LA VARIABLE

Z

ES

6)

Efectuar un seguimiento del siguiente pseudocódigo, y luego determinar el valor de las variables A y B, en el momento de la impresión.

INICIO

A = 100

 

B = 30

B

= A B

A = A B

 

B = A + B

IMPRIMIR A, B

 

FIN EL VALOR DE EL VALOR DE

A

ES :

B

ES :

7)

Efectuar un seguimiento del siguiente pseudocódigo, y luego determinar el valor de la variable T, en el momento de la

impresión.

 

INICIO

   

X

= 15

AUTORES. LIC. CESAR CALASTRA Y LIC. SILVANA DE CALASTRA (EDICIÓN DE CORTESÍA)

T

= 41

T

= T + 20

T

= T X

X

= X * 2

T

= T + X

   

IMPRIMIR T

 

FIN EL VALOR DE T ES :

1)

EJERCICIOS PROPUESTOS ( A SER RESUELTOS POR EL LECTOR ) Introducir un número que represente el lado de un hexágono. Determinar e imprimir su perímetro, y para el efecto utilizar la fórmula correspondiente. Introducir dos números que representen el lado y alto de un rectángulo. Determinar e imprimir su perímetro y para el efecto aplicar la fórmula pertinente. Introducir dos números. Determinar e imprimir el cociente de los mismos. Introducir cinco números. Restar el cuarto con el quinto, a este resultado sumarle el primero, luego a este resultado dividirlo por el segundo número, y por último a este resultado multiplicarlo por el tercer número. Imprimir el resultado.

2)

3)

4)

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

ESTRUCTURAS DE SELECCIÓN SIMPLES DOBLES MULTIPLES

AUXILIARES

FUNCION ENT( )

FUNCION MOD( )

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

Educad a los niños y no será necesario castigar a los hombres”. Pitágoras

RESPUESTA A EJERCICIO MENTAL NRO. DOS (AL DORSO DE INICIO DEL CAPITULO DOS)

Con 1001 sobrantes se pueden hacer 200 velas.

De los 1001 cabos se puede hacer 166 velas completas, dejando aparte cinco sobrantes.

Después de quemar las 166 velas se tendrán 166 cabos, más los cinco sobrantes del inicio son 171 cabos. De éstos se puede hacer 28 velas, dejando aparte tres sobrantes.

Tras quemar las 28 velas se tiene 28 cabos, que sumados a los otros tres son 31. De éstos se puede hacer 5 velas, dejando aparte un sobrante.

Al quemar las cinco velas se tendrá cinco cabos, más el otro sobrante, son seis. De éstos se puede hacer una vela más.

Así se habrán hecho 166 + 28 + 5 + 1 = 200 velas. EJERCICIO MENTAL NRO. TRES

Aura y Aurelia son hermanas. Aurora es la hija de Aura, y es 12 años más joven que su tía. Aura tiene el doble de edad que Aurora. Hace cuatro años Aura tenía la misma edad que Aurelia tiene ahora, y Aurelia tenía el doble de la edad de su sobrina tenía entonces. ¿Cuántos años tiene Aurora? . VER RESPUESTA AL DORSO DE INICIO DE CAPITULO CUATRO

TÉCNICAS DE RESOLUCIÓN DE PROBLEMAS

Clasificación de problemas

Los problemas matemáticos se pueden dividir en primera instancia en dos grupos:

* Problemas indecidibles: aquellos que no se pueden resolver mediante un algoritmo.

* Problemas decidibles: aquellos que cuentan al menos con un algoritmo para su cómputo.

Sin embargo, que un problema sea decidible no implica que se pueda encontrar su solución, pues muchos problemas que

disponen de algoritmos para su resolución son inabordables para un computador por el elevado número de operaciones que hay que realizar para resolverlos. Esto permite separar los problemas decidibles en dos:

* intratables: aquellos para los que no es factible obtener su solución.

* tratables: aquellos para los que existe al menos un algoritmo capaz de resolverlo en un tiempo razonable.

INTRODUCCIÓN A LAS ESTRUCTURAS DE SELECCIÓN FUENTE: Sitio http://www.geocities.com/david_ees/Algoritmia/curso.htm En la solución de la mayoría de los problemas algorítmicos se requieren efectuar tomas de decisiones que conducen a la ejecución de una o más acciones dependiendo de la verdad o falsedad de una o más condiciones. Como consecuencia de esto se producen cambios en el flujo de control del programa. Dicho flujo de control implica rutas que deben ser seleccionadas. Para esto, se utilizan ciertas estructuras de programación conocidas como estructuras selectivas o estructuras de decisión.

Las estructuras selectivas o de selección se clasifican en:

Estructura de selección simple (SI). Estructura de selección doble (SI SINO Estructura de selección múltiple (EN CASO - SEA)

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

ESTRUCTURAS DE SELECCIÓN Las estructuras de selección se utilizan para bifurcar el programa hacia uno u otro punto, dependiendo del resultado de la evaluación. En los lenguajes lineales, se utilizaba la instrucción GOTO, para bifurcar un programa hacia una u otra parte del programa. Sin embargo, en el pseudocódigo, que normalmente se utiliza como paso previo a la codificación de lenguajes estructurados, no es posible utilizar la instrucción GOTO, pues estos software carecen de esa sentencia, por

consiguiente se lo utiliza de otro modo, pero con el mismo objetivo de los lenguajes lineales. A modo de ejemplo, si el lector se dirige por la ruta 1, luego de la localidad de San Patricio, el mismo debe decidir si se dirige hasta la ciudad de Encarnación o hasta la ciudad de Ayolas, pues la ruta se bifurca h acia ambos puntos, y al llegar a ese lugar el mismo debe decidir hacia donde se dirigirá. Salvando la distancia, y sin ser muy maximalista, en un programa de computación, eso equivaldría a una estructura de selección. 1) Introducir un número. Determinar si el mismo es positivo, y en caso afirmativo, imprimir el mensaje : “EL NUMERO ES POSITIVO”.

X Variable de entrada

INICIO

QUE SE IMPRIMIRA DE ACUERDO AL VALOR DE X ? X

 

LEER X

 

SI

X

>

0

 

IMPRIMIR “EL NUMERO ES POSITIVO”

-10

 

FINSI

 

10

FIN

 

PRUEBA DE ESCRITORIO

 

Si

X = 20

Se imprimirá el mensaje en cuestión, pues se cumple la condición evaluada (SI X > 0).

Si X =

No se imprimirá ningún tipo de mensaje, pues la condición evaluada no se cumple, y no se prevé ninguna salida cuando la condición no se cumple. OBSERVACION MUY IMPORTANTE :

-15

La forma más directa, sencilla y eficiente, de determinar si un número es positivo, es preguntando si el mismo es mayor a cero. No debemos olvidar que el número cero, es neutro, vale decir que no es positivo ni negativo. Hacemos notar que, en el presente ejercicio estamos utilizando una estructura de selección simple, con una sola salida. Por consiguiente, si no se cumple la condición evaluada, el algoritmo finaliza s in imprimir ningún tipo de mensaje.

2)

Introducir cinco números cualesquiera al mismo tiempo. Determinar e imprimir el menor número de la serie.

A,B,C,D,E ME INICIO ME = 0

Variables de entrada Auxiliar de Menor

OBSERVACION: La estrategia consiste en capturar el primer valor como supuesto menor y luego ir comparando con las demás variables.

QUE VALOR TENDRA ME ?

A

B

C

D

E

ME

10

25

2

35

50

 

50

60

5

15

20

 

78

-10

-5

22

35

 

-41

55

60

41

12

 

EL METODO UTILIZADO SE CONOCE CON EL NOMBRE DE COMPARACIONES SUCESIVAS.

LEER A,B,C,D,E ME = A

SI B < ME ME = B

FINSI

SI C < ME ME = C

FINSI

SI D < ME

ME = D

FINSI

SI E < ME ME = E

FINSI

IMPRIMIR ME

A es en teoría el menor

Si B es menor a ME, el nuevo menor es B.

Si C es menor a ME, el

nuevo menor es C.

Si D es menor a ME, el nuevo menor es D.

Por último, si E es menor a ME, el nuevo menor es E.

FIN

PRUEBA DE ESCRITORIO La variable auxiliar ME, se utiliza para almacenar el menor numero de la serie. Se presupone que el primer número A, es e l menor de los cinco, y se lo almacena para el efecto en la variable auxiliar ME . luego a través de comparaciones sucesivas, se determina el menor de la serie.

Para

En primera instancia se almacena la variable A o sea 15 en la variable ME. Luego se pregunta SI B < ME , y como B tiene asignado el valor 19 y ME el valor 15, no se produce ninguna variación. Luego se pregunta SI C < ME, como C tiene almacenado el valor 10, lo cual es menor a ME, que tiene almacenado el valor 15, entonces se produce un cambio de valores, y el nuevo valor de ME es 10. En las siguientes comparaciones, ya no se producen cambios, y al final al ejecutarse la instrucción IMPRIMIR ME , finalmente se imprime 10.

A = 15

B = 19

C = 10

D = 22

E = 27

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

3)

4)

Introducir cinco números cualesquiera al mismo tiempo. Determinar e imprimir el mayor número de la serie. En caso de existir más de una variable con el mismo valor numérico que corresponda al mayor, considerar el último de ellos.

Z1, Z2, Z3 ,Z4 , Z5 MAY

INICIO MAY = 0 LEER Z1, Z2, Z3, Z4, Z5 MAY = Z1 SI Z2 >= MAY

Variables de entrada Auxiliar de Mayor

FIN

QUE VALOR TENDRA MAY ?

Z1

Z2

Z3

Z4

Z5

MAY

12

11

55

41

55

 

14

65

10

16

18

 

99

13

16

55

41

 

88

17

21

74

88

 

LA ESTRATEGIA UTILIZADA ES MUY SIMILAR AL DEL EJERCICIO ANTERIOR, SOLO QUE EN ESTE CASO DEBE CAMBIARSE EL SIGNO NECESARIAMENTE Y DEBE UTILIZARSE EL OPERADOR >= PARA PODER CAPTURAR EL ULTIMO MAYOR, PUES SI SOLO SE EMPLEA >, SE CAPTURA AL PRIMER MAYO NADA MAS Y NO AL SEGUNDO.

MAY

= Z2

FINSI

SI Z3 >= MAY

MAY

= Z3

FINSI SI Z4 >= MAY

MAY

= Z4

FINSI

SI Z5 >= MAY

MAY

= Z5

FINSI

IMPRIMIR MAY

OBSERVACION Para la prueba de escritorio, el procedimiento es prácticamente similar al anterior. Sin embargo, en este caso se está utilizando la salida >= (mayor o igual), pues solo de esa forma se capturará el último número mayor en caso de haber mas de un mismo número mayor. Por ejemplo : Si el número mayor es el valor 75, y lo almacenamos en la variable Z2 y Z5, cuando se haga la comparación Z2 >= MAY, la variable auxiliar MAY, capturará el valor 75, y posteriormente cuando se efectúa la comparación Z5 >= MAY, el nuevo valor de MAY también será 75, lo cual se tomará en este caso por el valor de Z5, pues si bien la salida por > no se cumple, sin embargo se cumple la salida por = (igual). Introducir tres números cualesquiera al mismo tiempo. Ordenarlos en forma secuencial ascendente y luego imprimirlos.

A, B, C AUX INICIO AUX = 0 LEER A, B, C

Variables de entrada Auxiliar definido para almacenar en forma temporal valores

DADO LOS SIGUIENTES VALORES INTRODUCIDOS COMO QUEDARAN A,B, Y C, UNA VEZ ORDENADOS?

A

B

C

31

55

12

99

15

88

45

95

55

42

64

85

A

B

C

SI

A >

B

 

AUX

=

A

A

=

B

B

= AUX

FINSI

 

SI

A >

C

 

AUX

=

A

A

=

C

C

= AUX

FINSI

 

SI

B >

C

 

AUX

=

B

B

=

C

C

= AUX

FINSI IMPRIMIR A, B, C

 

LA ESTRATEGIA CONSISTE EN HACER COMPARACIONES

SUCESIVAS Y ADEMAS SE DEBE "EMPUJAR" AL MENOR EN LA

PRIMERA CASILLA (A), AL NRO. MEDIO EN LA CASILLA B Y

LOGICAMENTE AL MAYOR EN LA CASILLA C.

FIN

PRUEBA DE ESCRITORIO

Para A = 15, B = 12, C = 9 En la primera comparación, A > B, se produce un traspaso de valores de la variable A a la variable B y viceversa, por lo tanto al final de dicha evaluación el valor de A es 12 y el de B es 15. Luego, en la segunda comparación A > C, en realidad se pregunta si el valor de la variable A que ahora es 12, es mayor al de la variable C, que tiene almacenado el valor 9, y como el valor de A (12) es mayor al de la variable C (9), entonces nuevamente se produce una permutación de valores, y finalmente el valor de A en este momento es 9 y el valor de C es 12. Por último, se compara B con C, y como el valor de B en este momento es 15 y el valor de la variable C es 12, entonces se debe hacer una permutación de valores y por consiguiente el valor de B es 12 y el de C es 15, y de esa manera los números quedan ordenados secuencialmente de forma ascendente.

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

5)

Introducir un número entero

Si el mismo es positivo, determinar si el es par o no, e imprimir el mensaje correspondiente.

En caso de no ser positivo, imprimir el mensaje “NUMERO ERRONEO”.

A

Variable de entrada

INICIO

LEER A

 

QUE MENSAJE SE IMPRIMIRA PARA

SI

A > 0

LOS SIGUIENTES VALORES DE A ?

SI A / 2 = ENT ( A / 2) IMPRIMIR “EL NUMERO “ A “ES PAR”

SINO

IMPRIMIR “EL NUMERO “ A “ES IMPAR”

SINO

FINSI

IMPRIMIR “NUMERO ERRONEO”

A

MENSAJE A IMPRIMIRSE

15

EL NUMERO

ES

21

EL NUMERO

ES

24

EL NUMERO

ES

12

EL NUMERO

ES

13

EL NUMERO

ES

FINSI

FIN

PRUEBA DE ESCRITORIO La función ENT , es una función interna que toma la parte entera de la variable o constante, lo cual a su ve z, no debe confundirse con redondeo, pues si una variable tiene almacenada la constante 8.98, bajo la función ENT , se devolverá el valor 8 y no el valor 9. En nuestro caso particular, se debe tomar la parte entera de la variable dividida por dos, pues por definición número par es aquel que es divisible por dos. En base a lo afirmado en el párrafo anterior, si deseáramos determinar si un número es múltiplo de cinco, la pregunta

sería :

SI A = 10, la primera evaluación A > 0, es verdadera y por lo tanto el pseudocódigo, ejecuta la siguiente selección SI

A/2 = ENT (A/2), y ENT ( A / 2 ) = 5

SI

A / 5 = ENT ( A / 5).

A / 2 = 5

Por consiguiente al coincidir el resultado de las dos operaciones, concluimos que el número en cuestión es par, y se ejecutará la orden

IMPRIMIR “EL NUMERO “

A “ES PAR”.

Para A = 11, también se cumple la primera evaluación A > 0, y el programa se bifurca hacia la selección SI A/2 = ENT

(A/2),

A / 2 = 5.5 ENT ( A / 2 ) = 5 El resultado de ambas operaciones no coincide, y por lo tanto el pro - grama se bifurca hacia la instrucción :

IMPRIMIR “EL NUMERO “ A “ES IMPAR” Otra alternativa que se puede utilizar para determinar si un número es par o impar, es recurriendo a la función MOD, que se encarga de devolver el valor del resto de una división. En nuestro caso particular el número en cuestión debe dividirse por dos, y si el resto de dicha división es cero, Obviamente el número debe ser par. De lo contrario, el número necesariamente debe ser impar.

He aquí, el pseudocódigo pertinente :

INICIO LEER A SI A > 0

QUE VALORES DEVOLVERA LA FUNCION MOD, PARA LOS SIGUIENTES VALORES DE A ?

 

A

A MOD 2

SI (A MOD 2) = 0 IMPRIMIR “EL NUMERO” A “ES PAR”

12

 

13

 

SINO

31

 

IMPRIMIR “EL NUMERO” A “ES IMPAR”

51

 

FINSI

60

 

IMPRIMIR “NUMERO ERRONEO”

SINO

FINSI

FIN

PRUEBA DE ESCRITORIO

Para A = 10 El resto de

10 / 2 es cero, por lo tanto el programa se bifurcará hacia la orden IMPRIMIR “EL

NUMERO” A “ES PAR”. Para A = 11 El resto de A / 2, o sea 11 / 2, es uno, y por ende en el programa no se cumple la condición SI ( A MOD 2 = 0 ), por lo cual el programa se bifurca en dirección a la orden IMPRIMIR “EL NUMERO” A “ES IMPAR”. Una tercera alternativa para determinar paridad de números, es utilizar la técnica de restas sucesivas, que consiste en restar en forma sucesiva la constante dos al número hasta que dicho numero llegue a cero o hasta uno, Si el número en cuestión llega al valor cero, entonces podemos afirmar que es par. De lo contrario, el número es impar, evidentemente. Esta metodología será desarrollada mas adelante en el presente material, cuando se estudie lo inherente a

contadores y acumuladores.

A / 2, vale decir

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

6)

Introducir un número cualquiera. Si el número es mayor a cincuenta, sumarle la constante diez e imprimir el resultado. De lo contrario, sumarle al número la constante cinco e imprimir el resultado.

K

Variable de Entrada

R

Variable de Resultado

ALTERNATIVA UNO ALTERNATIVA DOS

7)

INICIO

INICIO

 

R = 0

LEER K SI K > 50

R = K + 10

SINO

R = K + 5

FINSI

IMPRIMIR R

FIN

R = 0

LEER K

SI

K >

50

 

R

= K + 10

IMPRIMIR R

SINO

R

= K + 5

IMPRIMIR R

FINSI

Si se cumple la

suma con 10

K

5

se suma con

condición K se FINSI Si se cumple la suma con 10 K 5 se suma con De lo contrario

De lo contrariocumple la suma con 10 K 5 se suma con condición K se FIN PRUEBA DE

FIN

PRUEBA DE ESCRITORIO

Si K = 60

La evaluación K > 50, saldrá como V(erdadera), y por lo tanto se ejecutará la instrucción R = K + 10, tanto el valor de R será finalmente 70, lo cual se imprimirá finalmente.

Si

La evaluación K > 50, será F(alsa), y por dicho motivo se ejecutará la sentencia

valor de R será 30, lo cual se imprimirá finalmente. OBSERVACION En la alternativa dos, se optimizó el algoritmo, pues la sentencia de salida IMPRIMIR R , se ejecuta una sola vez. Esto es posible debido a que en este caso se ha definido una variable de resultado única. Sin embargo si se definían dos variables de resultado, necesariamente la impresión de dichas variables de resultado debían efectuarse por separado. Introducir un número cualquiera. Si es mayor a treinta y menor a cincuenta, sumarle a dicho número la constante cinco, e imprimir el resultado . Si el número es mayor a treinta pero no es menor a cincuenta, sumarle seis e imprimir el resultado.

R = K + 5, por consiguiente el

y por lo

K = 25

Si el número no es mayor a treinta, sumarle al mismo la constante veinte e imprimir el resultado.

X

Variable de Entrada

S

Variable de Resultado

INICIO

S = 0

LEER X

X

SI

>

30

SI

X

<

50

 

S

=

X

+

5

SINO

 

S

=

X

+

6

FINSI

 

SINO

S

=

X +

20

FINSI

IMPRIMIR S

FIN

QUE VALOR TENDRA LA VARIABLE S ?

X

S

20

 

40

 

60

 

10

 

75

 

SI X = 40 , el resultado será

PRUEBA DE ESCRITORIO 45, pues se cumple la primera evaluación

X

> 30 y también la segunda X < 50, y se ejecuta la sentencia

S

=

X

+

5.

SI X = 10 , el resultado será

30, pues no se cumple la primera evaluación

X > 30 y el programa se bifurca y ejecuta la instrucción S = X + 20.

SI X = 60 , el resultado será

66, pues se cumple la primera evaluación

X > 30 pero no se cumple la condición X < 50, y por lo tanto el pro -

grama ejecuta la sentencia S = X + 6.

SI X = 35 , el resultado será

40, pues se cumple la primera evaluación

X

> 30 y también la segunda X < 50, y se ejecuta la instrucción

S

=

X

+

5

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

BREVE BIOGRAFIA DE EUCLIDES (OTRO DE LOS PADRES DE LA ALGORITMIA)

Euclides (fl. 300 a.C.), matemático griego, cuya obra principal, Elementos de geometría, es un extenso tratado

de matemáticas en 13 volúmenes sobre materias tales como

propiedades de los números, magnitudes inconmensurables y geometría del espacio. Probablemente estudió en Atenas con discípulos de Platón. Enseñó geometría en Alejandría y allí fundó una escuela de matemáticas. Los Cálculos (una colección de teoremas geométricos), los Fenómenos (una descripción del firmamento), la Óptica, la División del canon (un estudio matemático de la música) y otros libros se han atribuido durante mucho tiempo a

Euclides. Sin embargo, la mayoría de los historiadores cree que alguna o todas estas obras (aparte de los Elementos) se le han adjudicado erróneamente. Los historia dores también cuestionan la originalidad de algunas de sus aportaciones. Probablemente las secciones geométricas de los Elementos fueron en un principio una revisión de las obras de matemáticos anteriores, como Eudoxo, pero se considera que Euclides hizo diversos descubrimientos en la teoría de números. Los Elementos de Euclides se utilizaron como texto durante 2.000 años, e incluso hoy, una versión modificada de sus primeros libros constituye la base de la enseñanza de la geometría plana en las escuelas secundarias. La primera edición impresa de las obras de Euclides que apareció en Venecia en 1482, fue una traducción del árabe al latín. OTROS SITIOS EN INTERNET DONDE HALLARAS INFORMACION SOBRE EL GRAN EUCLIDES

OTRA DEFINICIÓN DE ESTRUCTURAS DE SELECCIÓN SIMPLE

FUENTE: Sitio http://www.geocities.com/david_ees/Algoritmia/curso.htm En la estructura de selección simple SI, evalúa una condición lógica y:

Si la condición es verdadera se ejecuta la acción A. La acción A puede ser una acción simple (una sola acción) o una acción compuesta (un conjunto de acciones). Si la condición es falsa, no se hace nada.

RESUMEN DEL CAPITULO

Las estructuras de selección, ayudan al programador a desmenuzar los programas en secciones más pequeñas. Además, de esta manera se facilita enormemente la toma de decisiones, acciones estas que se ejecutan de forma cotidiana en los programas de aplicación.

Como se sabe, a su vez las estructuras de selección se subdividen básicamente en:

SIMPLES

DOBLES

MÚLTIPLES

LAS VARIABLES AUXILIARES

Normalmente, se utilizan para almacenamiento temporal de información, aunque sus usos y aplicaciones son muy variados, razón por la cual es un tanto difícil, establecer una definición única.

Se ha utilizado esta muy útil herramienta, en los ejercicios dos, tres y cuatro del presente capítulo, y en todos esos casos como variable de almacenamiento temporal de información.

Sin embargo, es imperativo hacer notar una vez más que, su uso es muy amplio y variado, por lo cual no es conveniente intentar una definición muy restrictiva.

FUNCION ENT( )

En la mayoría de los lenguajes se lo utiliza de esta forma : INT ( ). Sin embargo en lenguaje C o C++, int se utiliza para inicializar variables numéricas enteras. La función ENT( ), se encarga de tomar la parte entera de una variable o del resultado de una operación matemática. Se lo utilizó en el ejercicio seis, del presente capítulo, para determinar si un número positivo es par o no. FUNCION MOD( )

Devuelve el resto o residuo de una división, y se lo utilizó en este capítulo, en el ejercicio seis, para saber si un número positivo es par o no, como una alternativa de la función ENT.

En lenguaje C++, equivale a la función fmod.

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

EJERCICIOS PROPUESTOS ( RESUELTOS EN EL APENDICE A)

1)

Introducir un número cualquiera.

EJERCICIOS PROPUESTOS

2)

Si el mismo es menor a diez, multiplicarlo por dos e imprimir el resultado. De lo contrario, restar cinco e imprimir el resultado. Introducir tres números cualesquiera.

3)

Determinar e imprimir el número medio. (El número medio es aquel que no es el mayor ni e l menor). Introducir un número cualquiera.

4)

Si el número es menor a cuarenta, sumarle la constante ocho e imprimir el resultado. De lo contrario, multiplicar el número por la constante cuatro e imprimir el resultado. Introducir un número cualquiera.

5)

Si es mayor a quince y menor a cuarenta, multiplicar dicho número por la constante tres, e imprimir el resultado. Si el número no es mayor a quince, sumarle al mismo la constante treinta e imprimir el resultado. Introducir un número cualquiera.

6)

Si es mayor a cien y menor a doscientos, multiplicar dicho número por la constante cuatro, e imprimir el resultado. Si el número no es mayor a cien, sumarle al mismo la constante treinta e imprimir el resultado. Introducir un número cualquiera.

7)

Validar si es mayor a diez, y en caso afirmativo, determinar si el mismo es múltiplo de siete. En caso de ser múltiplo de siete, multiplicar el número por dos, y luego sumarle tres a ese resultado, y luego imprimirlo; en caso de no ser múltiplo de siete, restarle tres al número e imprimir el resultado. En caso de no ser mayor a diez, imprimir el mensaje “ERROR”. Introducir un número cualquiera.

Si es mayor a 29, Si es múltiplo de 2 Si es múltiplo de 10 Multiplicar el número por cuatro e imprimir el resultado En caso, contrario Sumar cinco al número e imprimir el resultado En caso de no ser múltiplo de 2, Restar diez al número e imprimir el resultado Si no es mayor a 20, Imprimir el mensaje “ERROR”.

( A SER RESUELTOS POR EL LECTOR)

1)

Introducir un número cualquiera.

2)

Si el mismo es menor a quince, multiplicarlo por tres e imprimir el resultado. De lo contrario, restar diez e imprimir el resultado. Introducir un número cualquiera.

3)

Si el número es menor a sesenta, sumarle la constante veinte e imprimir el resultado. De lo contrario, multiplicar el número por la constante tres e imprimir el resultado. Introducir un número cualquiera.

4)

Si es mayor a veinte y menor a ochenta, multiplicar dicho número por la constante cinco, e imprimir el resultado . Si el número no es mayor a veinte, sumarle al mismo la constante veinte e imprimir el resultado. Introducir un número cualquiera.

5)

Si es mayor a cincuenta y menor a cien, multiplicar dicho número por la constante cinco, e imprimir el resultado. Si el número no es mayor a cincuenta, sumarle al mismo la constante cuarenta e imprimir el resultado. Introducir un número cualquiera.

6)

Validar si es mayor a veinte, y en caso afirmativo, determinar si el mismo es múltiplo de nueve. En caso de ser múltiplo de nueve, multiplicar el número por tres, y luego sumarle cinco a ese resultado, y luego imprimirlo; en caso de no ser múltiplo de nueve, restarle cinco al número e imprimir el resultado. En caso de no ser mayor a veinte, imprimir el mensaje “ERROR”. Introducir un número cualquiera. Si es mayor a 40, Si es múltiplo de 3 Si es múltiplo de 5 Multiplicar el número por cinco e imprimir el resultado En caso, contrario Sumar diez al número e imprimir el resultado En caso de no ser múltiplo de 3,

Restar veinte al número e imprimir el resultado Si no es mayor a 40, Imprimir el mensaje “ERROR”.

AUTORES. LIC. CESAR CALASTRA Y LIC. SILVANA DE CALASTRA (EDICIÓN DE CORTESÍA)

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

OPERADORES LÓGICOS

O

Y

NO

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

"Aprender sin pensar es inútil. Pensar sin aprender, peligroso". Confucio.

RESPUESTA A EJERCICIO MENTAL NRO. TRES (AL DORSO DE INICIO DEL CAPITULO TRES) Aurora tiene 16 años, Aura tiene 32 y Aurelia tiene 28. EJERCICIO MENTAL NRO. CUATRO

Hay cinco animales, que pueden ser perros o lobos. Por alguna razón pueden hablar; los perros siempre dicen la verdad, y los lobos siempre mienten. El primer animal dice que el segundo es un perro. El tercero dice que el cuarto es un lobo. El quinto dice que el primero es un perro. El segundo dice que el tercero es un lobo. El cuarto dice que el segundo y el quinto son de especies diferentes.

¿Cuántos lobos y cuántos perros hay en este grupo? (VER RESPUESTA AL DORSO DEL INICIO DEL CAPITULO CINCO)

OTRA DEFINICIÓN DE ESTRUCTURAS DE SELECCIÓN DOBLE Y OPERADORES LÒGICOS FUENTE: Sitio http://www.geocities.com/david_ees/Algoritmia/curso.htm La estructura de selección doble SI - SINO evalúa una condición lógica y:

Si la condición es verdadera, ejecuta la acción A Si la condición es falsa, ejecuta la acción B. Tanto la acción A como la acción B pueden ser acciones simples (una sóla acción) o acciones compuestas (un conjunto de acciones). Por ejemplo, si se desea saber si una persona es mayor o menor de edad, podemos escribir:

SI( edad >= 18 ) IMPRIMIR "Mayor de edad" SINO IMPRIMIR "Menor de edad" Esto imprime "Mayor de edad" si la persona tiene 18 años ó más e imprime "Menor de edad" si la persona tiene menos de 18 años. En cualquiera de los casos, después de efectuar la impresión, se ejecutará la primera instrucción que sigue a la estructura SI

OPERADORES LÓGICOS Y RELACIONALES

Para expresar condiciones como en el caso de las condiciones de las estructuras selectivas, se requieren de operadores

relacionales y operadores lógicos

Ejemplo :- En una playa de estacionamiento cobran S/. 2.5 por hora o fracción. Diseñe un algoritmo que determine cuanto debe pagar un cliente por el estacionamiento de su vehículo, conociendo el tiempo de estacionamiento en horas y minutos.

Algoritmo

Dichas condiciones solo puede tomar uno de los siguientes valores: verdarero o falso.

SELECCIÓN DOBLE EN CASCADA SI( condición C1 ) acción A1 SINO SI( condición C2 ) acción A2 SINO SI( condición C3 ) acción A3

.

INICIO ENTERO horas, minutos REAL pago

LEER horas, minutos

SI( minutos > 0 ) horas = horas + 1 pago = horas * 2.5

IMPRIMIR pago

FIN

SELECCIÓN DOBLE EN CASCADA Se dice que varias estructuras de selección doble están en cascada cuando la instrucción que sigue a un SINO es otro SI a excepción del último SINO. No hay límite en cuanto al número de estructuras de selección doble que pueden ponerse en cascada.

FUNCIONAMIENTO Las condiciones se evalúan en orden descendente pasando de una a otra si la anterior resulta falsa. En el momento que se encuentra una condición verdadera, se efectúa la acción correspondiente a dicha condición y se corta el resto de la estructura. Si todas las condiciones resultan falsas se efectúa la acción correspondiente al último SINO

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

EJERCICIOS CON OPERADORES LOGICOS Esta herramienta es muy importante para unir dos o más proposiciones a través de una estructura de selección. En algunos casos en lugar de definir estructuras de selección múltiple, los ejercicios pueden resolverse sin necesidad de utilizarlos, pues basta con utilizar el operador lógico Y. Para ser más claro, el siguiente esquema:

SI ( X > 500 ) SI ( X < 800 )

el siguiente esquema: SI ( X > 500 ) SI ( X < 800 ) PUEDE

PUEDE SER

PRESENTADO

SI (X > 500) Y (X < 800) R = X * 10

R = X * 10

FINSI SINO IMPRIMIR “ERROR” FINSI

1)

DE LA SIGUIENTE FORMA

DE LA SIGUIENTE FORMA SINO IMPRIMIR “ERROR”

SINO

IMPRIMIR “ERROR”

 

FINSI

Introducir un número cualquiera. Si el mismo es mayor a cuarenta o menor a veinte, multiplicarlo por la constante tres e imprimir dicho resultado. INICIO

R = 0

LEER K

SI

( K > 40 ) O

( K < 20)

R = K *

IMPRIMIR R

3

FINSI

QUE VALOR TENDRA R?

K

50

30

10

R

VARIABLES

K

Variable de Entrada

R

Variable de Resultado

2)

FIN

PRUEBA DE ESCRITORIO

El operador lógico utilizado en este caso es el operador lógico “O”, y en este caso basta con que una de las dos condiciones se cumpla o las dos condiciones se cumplan, para que la salida adquiera el valor “V”. Si el valor de K = 50, la primera condición (K>40) se cumple, no así la segunda condición evaluada (K<20), pero la salida es V(erdadera) pues la primera condición se cumple, por lo tanto se ejecutará la orden R = K * 3, y luego se ejecutará la orden IMPRIMIR R, y el valor de R, será finalmente 150, lo cual será desplegado en pantalla. Si el valor de K = 15, la primera condición (K>40) no se cumple, sin embargo la segunda condición evaluada (K<20) se cumple, pero la salida es nuevamente V(erdadera), pues si bien la primera condición no se cumple, la

segunda se cumple como ya lo hemos hecho notar, por lo tanto se ejecutará la orden R = K * 3, y luego se

ejecutará la orden IMPRIMIR R, y el valor de R, será finalmente 45, lo cual será desplegado en pantalla. Si el valor de K = 30, la primera condición (K>40) no se cumple, la segunda condición evaluada (K<20)

tampoco se cumple, por lo tanto la salida es F(alsa), pues la primera condición no se cumple, y la segunda tampoco, como ya lo hemos hecho notar, por consiguiente el programa finali zará directamente, pues no se ha

previsto ninguna sentencia cuando la salida de la condición sea F(alsa).

OBSERVACION Todo número comprendido dentro del rango 20 inclusive y 40 inclusive, producirá una salida F(alsa). Introducir un número cualquiera.

Si el mismo es menor a treinta o mayor a sesenta, multiplicarlo por la constante tres e imprimir dicho resultado. De lo contrario, sumarle quince al número e imprimir el resultado.

R Variable de Resultado

K

Variable de Entrada

ALTERNATIVA UNO

 

INICIO

 

R

= 0

LEER K

 

SI

( K < 30 ) O

( K > 60 )

 

R

= K *

3

IMPRIMIR R

 

SINO

 

R

= K + 15

IMPRIMIR R

 

FINSI

FIN

QUE VALOR TENDRA R ?

K

40

20

70

50

R

ALTERNATIVA DOS

INICIO

R = 0 LEER K SI ( K < 30 ) O ( K > 60)

R = K * 3

SINO

R = K + 15

FINSI IMPRIMIR R

FIN

PRUEBA DE ESCRITORIO

(K > 60), por lo tanto se ejecuta instrucción

R = K + 15, y luego se imprime el valor de R, que es 60.

Si K = 5, se cumple la primera condición ( K < 30 ), no así la segunda que efectúa la siguiente comparación, ( K

> 60 ), por lo tanto se ejecuta la orden R = K * 3 y luego se imprime la variable R, cuyo valor final es 15.

Si K = 70, no se cumple la primera condición ( K < 30 ), sin embargo se cumple la segunda condición ( K > 60 ), por lo tanto se ejecuta seguidamente la orden R = K * 3, y se imprime el resultado que es 210:

Si K = 50, se ejecutará la orden R = K + 15, y se imprimirá 65 que es el valor final de la variable R. OBSERVACION Todo número comprendido dentro del rango 30 inclusive y 60 inclusive, producirá una salida F(alsa). Además, debemos hacer notar que, teniendo en cuenta la forma en que se ha planteado el presente pseudocódigo, ningún número puede la cumplir las dos condiciones evaluadas a la vez, pues no es posible que

ningún número que cumpla la condición de ser menor a treinta y mayor a sesenta a la vez.

SI K = 45, no se cumple la primera condición (K < 30) ni la segunda

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

3)

Introducir un numero cualquiera. Si el mismo es mayor a ci ncuenta y menor a noventa, sumarle la cons - tante quince y luego imprimir el resultado. De lo contrario, restarle diez e imprimir el resultado.

INICIO

VARIABLES

S

Variable de resultado

M

Variable de entrada

QUE VALOR TENDRA S?

M

40

60

95

70

10

S = 0

LEER M

SI

S

( M > 50 ) Y ( M < 90 )

S = M + 15

S = M 10

SINO

FINSI

IMPRIMIR S

FIN

PRUEBA DE ESCRITORIO Si M = 100, se cumple la primera condición ( M > 50 ), sin embargo la segunda condición ( M < 90 ), no se cumple; por lo tanto la salida será F(alsa), pues cuando se utiliza el operador lógico Y, ambas condiciones

deben ser verdaderas, para que la salida sea V(erdadera), por consiguiente se ejecutará la orden S = M - 10,

y el valor final de S será 90.

Si M = 65, la primera condición ( M > 50 ), se cumple; la s egunda condición ( M < 90 ), también se cumple, por lo tanto se ejecuta la orden que corresponde a salida por V(erdadero), y se ejecuta la orden S = M + 15,

y el valor final de la variable S, será 80.

Si M = 35, no se cumple la primera condición ( M > 50 ), la segunda condición ( M < 90 ), se cumple; sin

embargo la salida será por F(also), y se ejecutará la sentencia

25.

S = M 10, por lo tanto el valor de S , será

4)

SI M = 55, el valor de S, será 70. Si M = 120, el valor de S, será 110.

OBSERVACION

Todos los números comprendidos entre los valores 51 inclusive y 89, inclusive cumplirán las dos condiciones evaluadas en el presente pseudocódigo. Por consiguiente, los demás números fuera de este rango, producirán una salida F(alsa). Introducir dos números cualesquiera.

Si el primero de ellos es menor a veinte

ciento treinta, sumar entre si ambos números e imprimir el resultado. De lo contrario, restar entre si ambos números e imprimir el resultado VARIABLES

o mayor a cuarenta, y el segundo de ellos es menor a cien o mayor a

P

Variable de resultado

Z, L

Variables de entrada

INICIO

P = 0

LEER Z, L

SI ( (Z<20) O (Z>40) )

 

P

= Z + L

SINO

 

P

= Z L

FINSI

IMPRIMIR P

Y

( ( L <100) O (L>130) )

QUE VALOR TENDRA P?

Z

L

P

30

150

50

60

60

110

10

75

15

115

FIN

PRUEBA DE ESCRITORIO

SI Z = 60 y L = 150

La primera evaluación ( (Z<20) O (Z>40) ), es V(erdadera). La segunda evaluación ( (L<100) O (L>130) ), es V(erdadera). Ambas evaluaciones están a su vez unidas por el operador lógico Y, y al ser verdaderas las dos evaluaciones, entonces se ejecuta la instrucción pertinente cual es P = Z + L, y el valor de P es 210.

SI

Z = 30 y L = 10

La primera evaluación ( (Z<20) O (Z>40) ), es F(alsa). La segunda evaluación ( (L<100) O (L>130) ), es V(erdadera). Ambas evaluaciones están a su vez unidas por el operador lógico Y, y al ser falsa la primera evaluación Y verdadera la segunda, entonces se ejecuta la instrucción P = Z - L, y el valor de P es 20.

SI Z = 35 y L = 110 La primera evaluación ( (Z<20) O (Z>40) ), es F(alsa). La segunda evaluación ( (L<100) O (L>130) ), es F(alsa). Ambas evaluaciones están a su vez unidas por el operador lógico Y, y al ser falsa la primera evaluación Y falsa la segunda, entonces se ejecuta la instrucción P = Z - L, y el valor de P es - 75.

ALGORITMIA BASICA FUNDAMENTAL-EDICION DE CORTESÍA

5)

Introducir dos números cualesquiera. Si el primero de ellos es mayor a veinte y menor a cuarenta, o el segundo de ellos es mayor a cien y menor a ciento treinta, sumar entre si ambos números e imprimir el resultado. De lo contrario, restar entre si ambos números e imprimir el resultado VARIABLES

P

Variable de resultado

 

Z, L

Variables de entrada

QUE VALOR TENDRA P ?

INICIO

Z

L

P

 

P

= 0

10

85

LEER Z, L

 

30

50

SI

( (Z>20) Y (Z<40) ) O

( ( L >100) Y (L<130) )

10

110

 

P

= Z + L

15

75

 

SINO

 

35

115

 

P

= Z L

 

FINSI

 

IMPRIMIR P

 
 

FIN

 

PRUEBA DE ESCRITORIO

6)

SI Z = 60 y L = 150 La primera evaluación ( (Z>20) Y (Z<40) ), es F(alsa). La segunda evaluación ( (L>100) Y (L<130) ), es F(alsa). Ambas evaluaciones están a su vez unidas por el operador lógico O, y al ser falsas las dos evaluaciones, entonces se ejecuta la instrucción pertinente cual es