Nothing Special   »   [go: up one dir, main page]

Guia Algoritmos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 25

UNIVERSIDAD FERMIN TORO

PROFESOR: Ing. Martha Herrera

ALGORITMO

Un algoritmo es una descripción de los pasos, de una tarea usando un método particular.

Es una descripción precisa de los pasos que nos permiten obtener la solución de un
problema determinado. En general, los pasos son acciones u operaciones que se
efectúan sobre ciertos objetos. Al comienzo del algoritmo, los objetos tienen valores
iniciales(datos), que varían como consecuencia del proceso descrito en el algoritmo,
obteniendose los valores de salida o resultados.

Debe ser determinista, tener un número finito de instrucciones y debe acabar

Es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución
a un problema

El diseño de un algoritmo es independiente del lenguaje que después se vaya a utilizar


para codificarlo.

Características de los algoritmos

Carácter finito. "Un algoritmo siempre debe terminar después de un número finito de
pasos".

Precisión. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones
a llevar a cabo deben ser especificadas de manera rigurosa y no ambigua para cada
caso".

Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de
que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas
son tomadas de conjuntos específicos de objetos".

Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación
específica con las entradas".

Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las
operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que
en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre
usando lápiz y papel".
DESDE EL PLANTEAMIENTO DEL PROBLEMA, HASTA LA OBTENCIÓN DE SU
SOLUCIÓN EN EL COMPUTADOR, HAY QUE RECORRER VARIAS ETAPAS:

1. Antes de resolver el problema en el computador, hay que conocer los pasos y


operaciones que hay que realizar, para obtener la solución del problema, es decir,
su algoritmo, porque el computador sigue las instrucciones que nosotros le
indicamos.
2. Luego de tener la solución, hay que expresarla en un lenguaje especial, que pueda
ser comprendido y ejecutado por el computador, es decir un lenguaje de
programación, creando un programa.
3. Posteriormente, hay que comprobar que el programa produce las soluciones
esperadas(pruebas).
4. Por último se debe documentar el programa

RESOLUCIÓN DE UN PROBLEMA MEDIANTE LA PROGRAMACION

PROBLEMA
ALGORITM0 (DISEÑO DE ALGORITMO)
PROGRAMA FUENTE (PROGRAMACIÓN)
PROGRAMA OBJETO (TRADUCTOR)
PROGRAMA EN EJECUCION (PROCESADOR)

El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse


con el concepto de programa.

Algoritmo: Es la especificación de un conjunto de pasos (operaciones, instrucciones,


órdenes,...) orientados a la resolución de un problema.

Programa: Es ese conjunto de operaciones especificadas en un determinado lenguaje de


programación y para un computador concreto, susceptible de ser ejecutado (o compilado
o interpretado).

Un algoritmo, estrictamente hablando, no puede ejecutarse hasta que se implementa, ya


sea en un lenguaje de programación, en un circuito eléctrico, en un aparato mecánico,
usando papel y lápiz, o en algún otro modelo de computación.

LENGUAJE DE ALTO NIVEL

Es un lenguaje orientado a la resolución de un determinado clase de problema.


Estructura de información y secuencia de acciones
Independencia del computador, compilado o interpretado
Mayor portabilidad
Mayor legibilidad y comprensibilidad
LENGUAJE DE BAJO NIVEL

Es un lenguaje orientado a una clase de maquina

COMPILADOR

Software que traduce el código fuente, escrito en lenguaje de alto nivel a “Código de
máquina”. Solo se traduce, no se ejecuta.

MEDIOS DE EXPRESION DE UN ALGORITMO:

DIAGRAMA DE FLUJO

Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos


conectados con flechas para indicar la secuencia de instrucciones y están regidos por
ISO.

Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan
mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados
como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos
a personas ajenas a la computación.

PSEUDOCODIGO

Pseudocódigo es la descripción de un algoritmo que asemeja a un lenguaje de


programación pero con algunas convenciones del lenguaje natural. Tiene varias ventajas
con respecto a los diagramas de flujo, entre las que se destaca el poco espacio que se
requiere para representar instrucciones complejas. El pseudocódigo no está regido por
ningún estándar. pseudo viene de falso y por ende es un codigo al que aunque es
entendible no se aplica al proceso que debe realizar la maquina.

El pseudocódigo y los diagramas de flujo son las dos herramientas más utilizadas para
diseñar algoritmos en programación estructurada. Si bien, entre ambos tipos de
representación existen las siguientes diferencias importantes:

1. Los diagramas de flujo empezaron a utilizarse antes que el pseudocódigo.


2. En pseudocódigo se suelen definir tres secciones del algoritmo (cabecera,
declaraciones y cuerpo).
3. Los símbolos gráficos utilizados en un diagrama de flujo han sido estandarizados
por el American National Standards Institute (ANSI). Sin embargo, no existe un
"pseudocódigo estándar".
SIMBOLOS USADOS EN LOS DIAGRAMAS DE FLUJO

Símbolo Descripción
Indica el inicio y el final de nuestro
diagrama de flujo.

Indica la entrada de datos.

Símbolo de proceso y nos indica la


asignación de un valor en la memoria y/o
la ejecución de una operación aritmética.

Indica la salida de información.

Conector dentro de página. Representa la


continuidad del diagrama dentro de la
misma página.

Conector fuera de pagina. Representa la


continuidad del diagrama en otra página.

Símbolo de decisión. Indica la realización


de una comparación de valores.

Símbolo de Selección Múltiple. Dada una


expresión permite escoger una opción de
muchas.

Símbolo del Mientras. Dada una expresión


al principio de la iteración esta es
evaluada; si la condición es verdadera
realizará el ciclo, si es falsa la repetición
cesará.
Símbolo del Para. Esta estructura de
control repetitiva se usa generalmente
cuando se conoce de antemano el numero
de iteraciones.

Símbolo Repita Hasta. funciona igual que la


estructura Mientras, con la diferencia que
al menos una vez hará el grupo de
instrucciones y luego evaluará una
condición. Si la condición evaluada es falsa
continua dentro del ciclo y si es verdadera
termina la iteración.

Líneas de flujo o dirección. Indican la


secuencia en que se realizan las
operaciones.

Recomendaciones para el diseño de Diagramas de Flujo

 Se deben usar solamente líneas de flujo horizontales y/o verticales.


 Se debe evitar el cruce de líneas utilizando los conectores.
 Se deben usar conectores sólo cuando sea necesario.
 No deben quedar líneas de flujo sin conectar.
 Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de
izquierda a derecha.
 Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso
de muchas palabras.

Un algoritmo escrito en pseudocódigo siempre se suele organizar en tres secciones:


cabecera, declaraciones y cuerpo.

En la sección de cabecera se escribe el nombre del algoritmo.

En la sección de declaraciones se declaran algunos objetos (variables, constantes,...)


que va a utilizar el programa.
En el cuerpo están descritas todas las acciones que se tienen que llevar a cabo en el
programa, y siempre se escriben entre las palabras inicio y fin.

Por ejemplo, el algoritmo de un programa que va a calcular la suma de dos números


enteros cualesquiera introducidos por el usuario y, después, va a mostrar por pantalla el
resultado obtenido, puede ser el siguiente:

algoritmo Sumar

variables
entero a, b, c

inicio
escribir( "Introduzca el primer número (entero): " )
leer( a )
escribir( "Introduzca el segundo número (entero): " )
leer( b )
c=a+b
escribir( "La suma es: ", c )
fin

Pseudocódigo Es un lenguaje artificial e informal que ayuda a los programadores a


desarrollar algoritmos. El Pseudocódigo es similar al lenguaje cotidiano; es cómodo y
amable con el usuario, aunque no es realmente in verdadero lenguaje de computadora.
No se ejecutan en las computadoras mas bien sirven para ayudar al programadora
razonar un programa antes de intentar escribirlo en algún lenguaje. Un programa
ejecutado en Pseudocódigo puede ser fácilmente convertido en un programa en C++, si
es que esta bien elaborado. Por ejemplo supongamos que la nota para aprobar un
examen es de 60. El enunciado en Pseudocódigo sería:

Si calificación >= 60 entonces


Mostrar "Aprobado"
FinSi

TIPOS DE DATOS

Los datos que utilizan los programas se pueden clasificar en base a diferentes criterios.
Uno de los más significativos es aquel que dice que todos los datos que utilizan los
programas son simples o compuestos.

Un dato simple es indivisible (atómico), es decir, no se puede descomponer.

Ejemplo 1: Un año es un dato simple.

Año...: 2006

Un año se expresa con un número entero, el cual no se puede descomponer. Sin


embargo, un dato compuesto está formado por otros datos.
Ejemplo 2: Una fecha es un dato compuesto por tres datos simples (día, mes, año).

Fecha:
Día...: 30
Mes...: 11
Año...: 2006

Ejemplo 3: Otro ejemplo de dato simple es una letra.

Letra...: t

Una letra se representa con un carácter del alfabeto. Pero, cuando varias letras se
agrupan, entonces se obtiene un dato compuesto por varios caracteres.

Ejemplo 4: Para formar un nombre de persona se utilizan varios caracteres.

Nombre...: Ana (dato compuesto por tres caracteres)

En este apartado se van a estudiar cinco tipos de datos:

 Entero
 Real
 Lógico
 Carácter
 Cadena

De ellos, tan solo el tipo cadena es compuesto. Los demás son los tipos de datos simples
considerados estándares. Esto quiere decir que la mayoría de los lenguajes de
programación permiten trabajar con ellos. Por ejemplo, en lenguaje C es posible utilizar
datos de tipo entero, real y carácter, sin embargo, los datos de tipo lógico no se pueden
utilizar, ya que, no existen en este lenguaje.

Existen otros tipos de datos, simples y compuestos, que se estudiarán más adelante.

A los tipos de datos simples estándares también se les conoce como tipos de datos
primitivos, básicos o fundamentales.

Datos de tipo entero

Un dato de tipo entero es aquel que puede tomar por valor un número perteneciente al
conjunto de los números enteros (Z), el cual está formado por los números naturales, su
opuestos (números negativos) y el cero.

Z = { ..., -3, -2, -1, 0, 1, 2, 3, ... }

Ejemplo 5: La edad de una persona y el año en que nació, son dos datos de tipo entero:

Edad...: 29
Año....: 1976
Z es un conjunto infinito de números enteros, y como el ordenador no puede
representarlos todos, un dato de tipo entero sólo puede tomar por valor un número
perteneciente a un subconjunto de Z. Los valores máximo y mínimo de dicho subconjunto
varían según las características de cada ordenador y del compilador que se utilice.

En pseudocódigo, para indicar que un dato es de tipo entero se utiliza la palabra


reservada: ENTERO

Datos de tipo real

Un dato de tipo real es aquel que puede tomar por valor un número perteneciente al
conjunto de los números reales (R), el cual está formado por los números racionales e
irracionales.

Ejemplo 6: El peso de una persona (en kilogramos) y su altura (en centímetros), son
datos que pueden considerarse de tipo real.

Peso.....: 75,3
Altura...: 172,7

R es un conjunto infinito de números reales, y como el ordenador no puede representarlos


todos, un dato de tipo real sólo puede tomar por valor un número perteneciente a un
subconjunto de R. Los valores de dicho subconjunto varían según las características de
cada ordenador y del compilador que se utilice.

En pseudocódigo, para indicar que un dato es de tipo real se utiliza la palabra reservada:
REAL

Datos de tipo lógico

En programación, un dato de tipo lógico es aquel que puede tomar por valor sólo uno de
los dos siguientes:

{ verdadero, falso }

Los valores verdadero y falso son contrapuestos, de manera que, un dato de tipo lógico
siempre está asociado a que algo se cumpla o no se cumpla.

Ejemplo 7: El estado de una barrera de paso de trenes es un dato que puede


considerarse de tipo lógico, por ejemplo, asociando verdadero a que esté subida y falso
a que esté bajada.

Estado...: falso (indica que la barrera está bajada)

En pseudocódigo, para indicar que un dato es de tipo lógico se utiliza la palabra


reservada: LOGICO
Datos de tipo carácter

Un dato de tipo carácter es aquel que puede tomar por valor un carácter perteneciente al
conjunto de los caracteres que puede representar el ordenador.

En pseudocódigo, el valor de un dato de tipo carácter se puede representar entre comillas


simples (') o dobles ("). Pero, en este curso, se van a utilizar solamente las comillas
simples (al igual que se hace en lenguaje C).

Ejemplo 8: En un examen con preguntas en las que hay que seleccionar la respuesta
correcta entre varias opciones dadas (a, b, c, d, e), la respuesta correcta de cada una de
las preguntas es un dato de tipo carácter.

Respueta correcta a la pregunta 3...: 'c'

Datos de tipo cadena

Un dato de tipo cadena es aquel que pueden tomar por valor una secuencia de
caracteres.

En pseudocódigo, el valor de un dato de tipo cadena se puede representar entre comillas


simples (') o dobles ("). Sin embargo, en este curso, se van a utilizar solamente las
comillas dobles (al igual que se hace en lenguaje C).

Ejemplo 9: El título de un libro y el nombre de su autor, son datos de tipo cadena.

Título...: "La Odisea" (cadena de 9 caracteres)


Autor....: "Homero" (cadena de 6 caracteres)

Obsérvese que, en la cadena "La Odisea", el carácter espacio en blanco también se


cuenta.

En pseudocódigo, para indicar que un dato es de tipo cadena se utiliza la palabra


reservada: CADENA

Clasificación de los tipos de datos simples

Los tipos de datos simples se clasifican en predefinidos y definidos por el programador. La


clasificación completa es:
Figura. Clasificación de los tipos de datos simples en pseudocódigo.

Los tipos de datos simples predefinidos (estándares) son aquellos proporcionados por
los lenguajes de programación. Pero, el programador también puede definir sus propios
tipos de datos simples (subrangos y enumerados), los cuales se estudiarán más adelante.

Todos los datos simples son ordinales, excepto el dato de tipo real. Un dato ordinal es
aquel que puede tomar por valor un elemento perteneciente a un conjunto en el que todo
elemento tiene un predecesor y un sucesor, excepto el primero y el último. Por ejemplo, el
valor 5, perteneciente al conjunto de los números enteros, tiene como predecesor al 4, y
como sucesor al 6. Sin embargo, entre dos números reales siempre hay un número
infinito de números.

Ejercicio 1 - Clasificar datos (Tipos de datos - Pseudocódigo)

Clasifique los siguientes datos en simples y compuestos:

 El número de botones de una camisa.


 La altura de una torre.
 Los datos de una cuenta bancaria.
 El número de pasajeros de un avión.
 El resultado de hacer una apuesta (ganar o perder).
 La capital de Canadá.
 La letra 'b' escrita en mayúscula.

SOLUCION
Datos simples:

 El número de botones de una camisa. (Por ejemplo: 8 > Dato numérico entero)
 La altura de una torre. (Por ejemplo: 120,5 > Dato numérico real)
 El número de pasajeros de un avión. (Por ejemplo: 227 > Dato numérico entero)
 El resultado de hacer una apuesta (ganar o perder). (Dato lógico)
 La letra 'b' escrita en mayúscula. ('B' > Dato de tipo carácter)
Datos compuestos:

 Los datos de una cuenta bancaria. (Dato compuesto por: nombre, apellidos,
etc.)
 La capital de Canadá. ("Ottawa" > Dato de tipo cadena)

EJERCICIOS

1. Trate de describir con precisión mediante frases sencillas, tareas cotidianas, como leer
un libro, realizar un viaje de placer por aire.

2. Dadas las siguientes declaraciones:

A = 'a'
>entero r = 50, s = 6, t
caracter vocal

después de las asignaciones:

t = r div s
s = r mod s
r = ONCE - t * s
vocal = A

¿qué valores se habrán almacenado en la memoria del ordenador para los objetos
declarados?
MEMORIA
A 'a'
ONCE 11
r -53
s 2
t 8
vocal 'a'

3. Diseñe el algoritmo (en pseudocódigo) de un programa que:

1) Pida por teclado la base (dato real) de un triángulo.


2) Pida por teclado la altura (dato real) de un triángulo.
3) Calcule el área del triángulo.
4) Muestre por pantalla el resultado (dato real).

En pantalla:

Introduzca base: 1.2


Introduzca altura: 4.5
El área del triángulo es: 2.7

Nota: Área de un triángulo = base * altura / 2


algoritmo Area_de_un_triangulo

variables
real altura, area, base

inicio
escribir( "Introduzca base: " )
leer( base )
escribir( "Introduzca altura: " )
leer( altura )
area = base * altura / 2
escribir( "El área del triángulo es: ", area )
fin

4. Diseñe el algoritmo (en pseudocódigo) de un programa que:

1) Pida por teclado dos números (datos enteros).


2) Muestre por pantalla el resultado de realizar la división entera del primer número
introducido por el usuario entre el segundo, y el resto.

En pantalla:

Introduzca dividendo (entero): 39


Introduzca divisor (entero): 5
39 div 5 = 7 ( Resto = 4 )

algoritmo Division_entera

variables
entero dividendo, divisor, cociente, resto

inicio
escribir( "Introduzca dividendo (entero): " )
leer( dividendo )
escribir( "Introduzca divisor (entero): " )
leer( divisor )
cociente ← dividendo div divisor
resto = dividendo mod divisor
escribir( dividendo, " div ", divisor, " = ", cociente,
" ( Resto = ", resto, " )" )
fin
Identificadores

La mayoría de los elementos de un algoritmo escrito en pseudocódigo se diferencian


entre sí por su nombre. Por ejemplo, los tipos de datos básicos se nombran como:

entero, real, logico y caracter

Cada uno de ellos es un identificador. Un identificador es el nombre que se le da a un


elemento de un algoritmo (o programa). Por ejemplo, el tipo de dato entero hace
referencia a un tipo de dato que es distinto a todos los demás tipos de datos, es decir,
los valores que puede tomar un dato de tipo entero, no son los mismos que los que
puede tomar un dato de otro tipo.

VARIABLE

Una variable es un contenedor de bits que representan a un valor. Se emplean para


almacenar datos que pueden cambiar durante la ejecución de un programa.

En programación, una variable representa a un espacio de memoria en el cual se puede


almacenar un dato. Gráficamente, se puede representar como:

Definición de constante

En programación, una constante representa a un valor (dato almacenado en memoria)


que no puede cambiar durante la ejecución de un programa.

En un programa, el tipo de un dato determina las operaciones que se pueden realizar con
él. Por ejemplo, con los datos de tipo entero se pueden realizar operaciones aritméticas,
tales como la suma, la resta o la multiplicación.

Ejemplo 1: Algunos ejemplos son:

111 + 6 (operación suma)


19 - 72 (operación resta)
24 * 3 (operación multiplicación)

Todas las operaciones del ejemplo constan de dos operandos (constantes enteras) y un
operador. La mayoría de las veces es así, pero, también es posible realizar operaciones
con distinto número de operadores y/u operandos.
Ejemplo 2: Por ejemplo:

111 + 6 - 8 (tres operandos y dos operadores)

-( ( +19 ) + 72 ) (dos operandos y tres operadores)

-( -72 ) (un operando y dos operadores)

En las operaciones del ejemplo se puede observar que los caracteres más (+) y menos (-)
tienen dos usos:

1. Operadores suma y resta.


2. Signos de un número (también son operadores).

Los operadores de signo más (+) y menos (-) son operadores monarios, también
llamados unarios, ya que, actúan, solamente, sobre un operando.

Los caracteres abrir paréntesis "(" y cerrar paréntesis ")" se utilizan para establecer la
prioridad de los operadores, es decir, para establecer el orden en el que los operadores
actúan sobre los operandos.

Un operador indica el tipo de operación a realizar sobre los operandos (datos) que actúa.
Los operandos pueden ser:

 Constantes (expresadas por su valor o con un nombre (identificador)).


 Variables.
 Llamadas a funciones.
 Elementos de formaciones (arrays).

En este apartado se van a tratar operaciones en donde sólo aparecen constantes y


variables. Cuando se combinan uno o más operadores con uno o más operandos se
obtiene una expresión. De modo que, una expresión es una secuencia de operandos
y operadores escrita bajo unas reglas de sintaxis.

Ejemplo 3: Dadas las siguientes declaraciones de constantes y variables:

PI = 3.141592
entero numero = 2
real radio_circulo = 3.2

Algunos ejemplos de expresiones son:

2 * PI * radio_circulo
( PI * PI )
numero * 5

De sus evaluaciones se obtienen los valores:

20.106189 (valor real) ( 2 * 3.141592 * 3.2 )


9.869600 (valor real) ( 3.141592 * 3.141592 )
10 (valor entero) ( 2 * 5 )
Expresiones lógicas

De la evaluación de una expresión lógica siempre se obtiene un valor de tipo lógico


(verdadero o falso). En las expresiones lógicas se pueden utilizar dos tipos de
operadores:

· Relacionales
· Lógicos

Un operador relacional se utiliza para comparar los valores de dos expresiones. Éstas
deben ser del mismo tipo (aritméticas, lógicas, de carácter o de cadena).

Ejemplo 12: Algunos ejemplos son:

22 > 13 (comparación de dos expresiones aritméticas)


22.5 < 3.44 (comparación de dos expresiones aritméticas)
verdadero = falso (comparación de dos expresiones lógicas)
'c' > 'f' (comparación de dos expresiones de carácter)
"coche" = "Coche" (comparación de dos expresiones de cadena)

Proporcionan los valores:

verdadero (22 es mayor que 13)


falso (22.5 no es menor que 3.44)
falso (verdadero no es igual que falso)
falso ('c' no es mayor que 'f')
falso ("coche" no es igual que "Coche")
La tabla de verdad del operador conjunción (y) es:

La tabla de verdad del operador disyunción (o) es:


La tabla de verdad del operador negación (no) es:

Prioridad de los operadores aritméticos

La prioridad de los operadores puede variar de unos lenguajes a otros, pero, en


pseudocódigo, en este curso, vamos a establecer una prioridad de operadores muy
similar a la que se aplica en lenguaje C. La prioridad no puede ser exactamente la misma,
ya que, en C existen algunos operadores que no existen en pseudocódigo, y al revés.

Ejemplo 10: En una expresión aritmética puede aparecer más de un operador aritmético.

11 + 3 div 3 (dos operadores)

-3 * 6 mod 4 (tres operadores)

-3.1 + 5 * 0.5 (tres operadores)

3 ** 3 - 1 (dos operadores)

+3 * -8 (tres operadores)

Para poder evaluar correctamente las expresiones aritméticas del ejemplo, es necesario
seguir un criterio de prioridad de operadores. En nuestro pseudocódigo CEE, la prioridad
de los operadores aritméticos es:
Prioridad de los operadores relacionales y lógicos

En una expresión lógica puede aparecer uno o más operadores relacionales y/o lógicos.

Ejemplo 15: Algunos ejemplos son:

3 > 1 o 4 < 1 y 4 <= 2

no falso y falso

verdadero >= verdadero = falso

falso = verdadero <= verdadero

Para poder evaluar correctamente las expresiones lógicas del ejemplo, es necesario
seguir un criterio de prioridad de operadores. En nuestro pseudocódigo CEE, la prioridad
entre los operadores relacionales y lógicos es:

Expresiones de carácter

Aunque no existe ningún operador de caracteres, sí que existen expresiones de carácter.


De la evaluación de una expresión de carácter siempre se obtiene un valor de tipo
carácter.

Ejemplo 16: Dadas las siguientes declaraciones de constantes y variables en


pseudocódigo:

CONSONANTE = 'S'
caracter letra = 'X'
caracter opcion = '3'
Algunas expresiones de carácter son:

opcion
letra
CONSONANTE
'a'

Los resultados de evaluarlas son:

'3'
'X'
'S'
'a'

Expresiones de cadena

De la evaluación de una expresión de cadena siempre se obtiene un valor de tipo


cadena. Sólo existe un operador de cadena:

Figura. Clasificación de los operadores de cadena en pseudocódigo.

El operador concatenación (+) realiza la concatenación de dos operandos de tipo


cadena, es decir, los encadena.

Ejemplo 17: Dadas las siguientes declaraciones de constantes y variables en


pseudocódigo:

OLIMPIADA = "Atenas 2004"


PUNTO = "."
cadena nombre = "Pedro", apellido = "Cosín", rio = "Tajo"

Algunas expresiones de cadena son:

OLIMPIADA + PUNTO
nombre + " " + apellido
"Buenos días" + PUNTO
rio
nombre + " fue a las Olimpiadas de " + OLIMPIADA + PUNTO
Los resultados de evaluarlas son:

"Atenas 2004."
"Pedro Cosín"

"Buenos días."
"Tajo"
"Pedro fue a las Olimpiadas de Atenas 2004."

Prioridad de los operadores aritméticos, relacionales, lógicos y de cadena

En una expresión puede aparecer uno o más operadores aritméticos, relacionales, lógicos
y/o de cadena.

Ejemplo 18: Algunos ejemplos son:

5 * 4 > 5 + 4 o falso y "ab" < "aa"

( 5 * 4 > 5 + 4 o falso ) y 'f' < 'b'

no verdadero < falso

no ( verdadero < falso )

Para poder evaluar correctamente las expresiones anteriores, es necesario seguir un


criterio de prioridad de operadores. En nuestro pseudocódigo CEE, la prioridad entre los
operadores aritméticos, relacionales, lógicos y de cadena es:
La estructura de un algoritmo sirve para organizar a los elementos que aparecen en él.
En pseudocódigo, todos los algoritmos tienen la misma estructura, la cual viene definida
por tres secciones:

 Cabecera
 Declaraciones
 Cuerpo

La sintaxis completa para escribir un algoritmo en pseudocódigo es:

algoritmo <nombre_del_algoritmo>

[ constantes
<declaraciones_de_constantes> ]
[ tipos_de_datos
<declaraciones_de_tipos_de_datos> ]
[ variables
<declaraciones_de_variables> ]

inicio
<bloque_de_instrucciones>
fin

Condicional Doble

En pseudocódigo, para escribir una instrucción alternativa doble se utiliza la sintaxis:

si ( <expresión_lógica> ) Entonces
<bloque_de_instrucciones_1>
sino
<bloque_de_instrucciones_2>
fin_si

Condicional Simple

Una instrucción alternativa simple (o simplemente alternativa simple) es una variante


(más sencilla) de una instrucción alternativa doble. En pseudocódigo, para escribir una
alternativa simple se utiliza la sintaxis:

si ( <expresión_lógica> ) Entonces
<bloque_de_instrucciones>
fin_si
Condicional Múltiple

Una instrucción alternativa múltiple (o simplemente alternativa múltiple) permite


seleccionar, por medio de una expresión, el siguiente bloque de instrucciones a ejecutar
de entre varios posibles. En pseudocódigo, para escribir una alternativa múltiple se utiliza
la sintaxis:

segun_sea ( <expresión> )
<lista_de_valores_1> : <bloque_de_instrucciones_1>
<lista_de_valores_2> : <bloque_de_instrucciones_2>
...
<lista_de_valores_n> : <bloque_de_instrucciones_n>
[ sino : <bloque_de_instrucciones_n+1> ]
fin_segun_sea

algoritmo Dia_de_la_semana

variables
entero dia

inicio
escribir( "Introduzca día de la semana: " )
leer( dia )
segun_sea ( dia )
1 : escribir( "Lunes" )
2 : escribir( "Martes" )
3 : escribir( "Miércoles" )
4 : escribir( "Jueves" )
5 : escribir( "Viernes" )
6 : escribir( "Sábado" )
7 : escribir( "Domingo" )
sino : escribir( "ERROR: Día incorrecto." )
fin_segun_sea
fin
Repetitiva mientras

En pseudocódigo, para escribir una instrucción repetitiva mientras, se utiliza la sintaxis:

mientras ( <expresión_lógica> )
<bloque_de_instrucciones>
fin_mientras

algoritmo Numeros_del_1_al_10

variables
entero contador

inicio
contador = 1 /* Inicialización del contador */
mientras ( contador <= 10 ) /* Condición */
escribir( contador ) /* Salida */
contador = contador + 1 /* Incremento */
fin_mientras
fin

Ejemplo 2: Un pequeño descuido, como por ejemplo, no escribir de forma correcta la


condición del bucle, puede producir un bucle infinito:

algoritmo Numeros_del_10_al_1

variables
entero contador

inicio
contador = 10 /* Cambio 1 */
mientras ( contador <= 10 ) /* Descuido */
escribir( contador )
contador = contador - 1 /* Cambio 3 */
fin_mientras
fin

Por pantalla se mostrará:


Ejemplo 3: Otro error muy frecuente es inicializar mal la variable que participa en la
condición del bucle:

algoritmo Numeros_del_10_al_1

variables
entero contador

inicio
contador = 1 /* Descuido */
mientras ( contador >= 1 ) /* Cambio 2 */
escribir( contador )
contador = contador - 1 /* Cambio 3 */
fin_mientras
fin

Por pantalla sólo se mostrará el número 1:

Ejemplo 4: También es un error muy típico olvidarse de escribir alguna instrucción, como
por ejemplo, la instrucción de asignación

contador = contador - 1

del bloque de instrucciones del bucle:

algoritmo Numeros_del_10_al_1

variables
entero contador

inicio
contador = 10 /* Cambio 1 */
mientras ( contador >= 1 ) /* Cambio 2 */
escribir( contador )
/* Descuido */
fin_mientras
fin

De nuevo, por pantalla, se obtiene la salida de un bucle infinito:


Ejemplo 5: Como ya se ha dicho, un bucle mientras puede iterar cero o más veces. Así,
por ejemplo, en el algoritmo siguiente existe un error lógico que provoca que el bucle no
itere ninguna vez.

algoritmo Numeros_del_10_al_1

variables
entero contador

inicio
contador = 0 /* Descuido */
mientras ( contador >= 1 ) /* Cambio 2 */
escribir( contador )
contador = contador - 1 /* Cambio 3 */
fin_mientras
fin

Por pantalla no se mostrará nada

También podría gustarte