ALGORITMOS

21
INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES ALGORITMOS - PSEUDOCODIGO Y PROGRAMAS C++ DEFINICION DE ALGORITMO Conjunto de pasos o acciones que se realizan de manera ordenada para llegar a la solución de un problema. Conjunto de sentencias/instrucciones en lenguaje nativo, las cuales expresan la lógica para la resolución de un problema. Conclusión : Es un método para resolver un problema. La resolución de un problema exige el diseño de un algoritmo que resuelva el problema. ETAPAS EN LA RESOLUCIÓN DE UN PROBLEMA USANDO UNA COMPUTADORA Problema Algoritmo Programa en computadora Diseño del algoritmo .- Describe los pasos a seguir para la resolución de un problema dado (análisis y desarrollo del algoritmo) Programa en computadora .- El algoritmo se expresa mediante un lenguaje de programación en un programa. TIPOS DE ALGORITMOS: Algoritmo Cualitativo.- Son los algoritmos descritos mediante palabras. Ejm: La elaboración de una receta de cocina El tejido a mano de una chompa. Búsqueda de un numero telefónico. El cambio de una llanta El cambio de un foco quemado. Algoritmo Cuantitativo.- Son los algoritmos que se basan en cálculos numéricos. Ejm: Pasos a seguir para resolver una ecuación de segundo grado. Pasos a seguir para calcular los sueldos de los empleados de una empresa. Instrucciones para calcular los impuestos a pagar de los vecinos de un municipio. CARACTERÍSTICAS DE UN ALGORITMO .- Los algoritmos deben tener estas características: Indicar un orden a seguir en cada uno de sus pasos. Ser definido (confiable), si se ejecuta dos veces debe lograrse el mismo resultado. Ser finito, es decir terminar en un número finito de pasos.

description

ALGORITMOS

Transcript of ALGORITMOS

Page 1: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

ALGORITMOS - PSEUDOCODIGO Y PROGRAMAS C++

DEFINICION DE ALGORITMO

Conjunto de pasos o acciones que se realizan de manera ordenada para llegar a la solución de un problema.

Conjunto de sentencias/instrucciones en lenguaje nativo, las cuales expresan la lógica para la resolución de un problema.

Conclusión : Es un método para resolver un problema. La resolución de un problema exige el diseño de un algoritmo que resuelva el problema.

ETAPAS EN LA RESOLUCIÓN DE UN PROBLEMA USANDO UNA COMPUTADORA

Problema Algoritmo Programa en computadora

Diseño del algoritmo .- Describe los pasos a seguir para la resolución de un problema dado (análisis y desarrollo del algoritmo)

Programa en computadora .- El algoritmo se expresa mediante un lenguaje de programación en un programa.

TIPOS DE ALGORITMOS:

Algoritmo Cualitativo.- Son los algoritmos descritos mediante palabras. Ejm:

La elaboración de una receta de cocina El tejido a mano de una chompa. Búsqueda de un numero telefónico. El cambio de una llanta El cambio de un foco quemado.

Algoritmo Cuantitativo.- Son los algoritmos que se basan en cálculos numéricos. Ejm:

Pasos a seguir para resolver una ecuación de segundo grado. Pasos a seguir para calcular los sueldos de los empleados de una

empresa. Instrucciones para calcular los impuestos a pagar de los vecinos de un

municipio.

CARACTERÍSTICAS DE UN ALGORITMO .- Los algoritmos deben tener estas características:

Indicar un orden a seguir en cada uno de sus pasos. Ser definido (confiable), si se ejecuta dos veces debe lograrse el mismo

resultado. Ser finito, es decir terminar en un número finito de pasos.

Page 2: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

PARTES DE UN ALGORITMO En un algoritmo se definen tres partes: Entrada, Proceso y Salida.

Fig. 1 Partes de un algoritmo o programa.

Ejm Cuantitativo: Leer la base y altura de un rectángulo y mostrar el area en pantalla.

Entrada (Lectura de datos): Se conocen los valores de la Base y la Altura Proceso (Calculo de Area): Area = Base * Altura Salida (Muestra los resultados): Muestra valor del Area

Ejm Cualitativo: Un socio de una biblioteca solicita un libro para lectura, si el libro se encuentra se le presta el libro, SINO se devuelve la ficha de pedido.

LEER Ficha de pedido EXAMINAR el Estante SI el libro esta en Estante

ENTONCES Se acepta el pedido Se recepciona Carnet de socio. SINO Se niega el pedido Se devuelve Ficha de Pedido FIN SI

DATOS – TIPOS DE DATOS

DEFINICION DE DATOS

Para la computadora es un conjunto o secuencia de bits (digitos 0 y 1 en binario). Sin embargo los lenguajes de alto nivel permiten ignorar los detalles de la representación interna (basándose en la abstracción ).

Page 3: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

TIPOS DE DATOS

Existen dos tipos de datos : los simples ( sin estructura ) y los compuestos (estructurados)

Los tipos de datos simples (sin estructura) : a) Numéricos ( Entero y Real). b) Lógicos o boolean. c) Carácter. Entre los tipos de datos compuestos se tiene: cadena de caracteres.

a) Datos numéricos .- Conjunto de los valores numéricos. Pueden representarse en dos formas:

Numérico entero ( de punto o coma fijo ) es un subconjunto de los números enteros (+ o -).

Ejm: 5 -56 1340 17 -14

Los máximos y mínimos suelen ser: -32768 a 32767

Numérico real (punto o coma flotante) es un subconjunto de los números reales (+ o -)

Ejm: 0.08 3.7456 -53.456 3.0

Notación científica: Mantisa exponente

67 520 000 000 000 000 000 = 6.752 x 1019

0.000 000 000 000 000 234 123 = 2.34123 x 10-16

Tabla 1. Notación Científica

En algoritmos y en los programas C++, hay que declarar las variables de acuerdo a los datos que puede almacenar. así por ejemplo para datos numéricos:

Algoritmo En C++

Tipo de dato variables Tipo de

dato variables

entero numeroPersonas int numeroPersonas ;

entero numeroCajas int numeroCajas;

? El numeroPersonas y numeroCajas almacenan datos enteros.

real talla double talla;

real peso, talla, promPonderado double peso, talla, promPonderado;

Page 4: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

? La talla, peso y PromPonderado almacenan datos reales.

Desea conocer mas sobre tipos numericos en C++ ?

Tabla 2. Declaración de variables que almacenan tipos de datos numericos enteros y reales

b) Datos Lógicos (o booleanos)

Dato que sólo puede tomar dos valores: true (verdadero o 1) y false (falso o 0). Se usa para representar las alternativas a determinadas condiciones:

Ejm:

Ejm Datos:

Opcion_continuar Verdadero Falso

Condición_de_recepción_de_carta Falso Verdadero

Estado_cancelación_de_factura Verdadero Falso

Mayoria_de_edad Falso Verdadero

Empleado_de_licencia Verdadero Falso

Tabla 3. Ejemplos de variables booleanas.

En algoritmos y en los programas C++, hay que declarar las variables de acuerdo a los datos que puede almacenar. así por ejemplo para datos booleanos:

Algoritmo En C++

Tipo de dato variables Tipo de dato variables

boolean opcionCon bool opcionCon;

boolean condicionRec bool condicionRec;

boolean estadoFac bool estadoFac;

boolean licenciaEmp bool licenciaEmp;

? opcionCon, condicionRec, estadoFac, licenciaEmp almacenan datos booleanos o lógicos.

Desea conocer mas sobre tipos numericos en C++ ?

Tabla 4. Declaracion de variables que almacenan tipos de datos boolean (que pueden tomar dos valores true o false)

c) Datos carácter

Conjunto finito y ordenado de caracteres que la computadora reconoce. Pueden ser:

Page 5: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

Pueden ser: Datos:

Alfabéticos: 'A' 'B' 'c' 'E' 'K' 'a' .... 'z' 'Z'

Numéricos: '0' '1' '2' '3' '4' '5' ... '8' '9'

Especiales: ' * ' ' - ' ' / ' ' + ' ' $ ' '< ' ' # ' '@'

Tabla 5. Datos caracter que la computadora reconoce (codigos ASCII)

En algoritmos y en los programas C++, hay que declarar las variables de acuerdo a los datos que puede almacenar. así por ejemplo para datos de tipo caracter:

Algoritmo En C++

Tipo de dato variables Tipo de dato variables

caracter letras char letras ;

caracter estCivil, nroMes char estCivil, nroMes;

caracter operacion char operacion;

caracter opcion char opcion;

? letras, estCivil, nroMes, operacion, opcion almacenan datos de tipo caracter.

Desea conocer mas sobre tipos caracter C++ ?

Tabla 6 Ejemplos de declaración de variables que almacenan tipos de datos caracter.

Datos Compuestos:

Una cadena de caracteres (cadena o string) sucesión de caracteres, que se encuentran delimitados por apostrofes simples(‘) o dobles(“).

Longitud de una cadena , es el numero de caracteres comprendidos entre los separadores o delimitadores.

Ejm: ‘HOLA AMIGOS’ Longitud = 11

Ejm: “MIURA FERNÁNDEZ” Longitud = 15

En algoritmos y en los programas C++, hay que declarar las variables de acuerdo a los datos que puede almacenar. así por ejemplo para datos de tipo cadena de caracteres o cadena:

Algoritmo En C++

Tipo de dato variables Tipo de dato variables

caracter nombre[30] char nombre[30] ;

caracter profesion[25] char profesion[25];

Page 6: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

caracter* apellidos char * apellidos;

? nombre y profesion almacenan cadena de caracteres de hasta 30 y 25 caracteres respectivamente. Segun la lectura, se pueden leer datos con espacios en blanco o no. Por ejemplo: Edgar García Fernández (hay que usar gets() para leer este dato o con cin<<para leer solo Edgar )

? apellidos pueden asignarseles datos con espacios en blanco.

Desea conocer mas sobre tipos caracter C++ ?

Tabla 7. Ejemplos de varaibles cadenas de caracteres que almacenan

una cadena de caracteres o string

CONS TANTES Y VARIA BL ES

CONS TA NTES

Espacio de la memoria para almacenar un dato que permanece sin cambio durante la ejecución del programa. Puede ser :

Constante Numérica que representa un determinado valor o Constante Alfanumérica o literal que representa cualquier

combinación de caracteres (dígito, letra, símbolo especial). Ejm: PI = 3.14159 Ejm: Prefijo = “Srta. “ Ejm: TasaIgv = 0.18 Ejm: Prof = "Dr. "

Fig. 2. Ejemplos de constantes (espacios de memoria).

En algoritmos En programación C++

const entero x = 500 const int x = 50;

const real ti = 0.04 const double ti = 0.04;

const caracter Letra = 'A' const char Letra = 'A';

Tabla 8. Declaración de constantes de diversos tipos.

VARI ABLES

Espacio de la memoria para almacenar un dato que puede cambiar o no durante la ejecución de un programa. Puede ser : numérico en el que solo se pueden almacenar valores (dígitos) o alfanumérico en el que puede almacenarse cualquier carácter (dígito, letra o símbolo especial)

Page 7: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

Se le identifica por los siguientes atributos: El Nombre (o identificador ) que se le asigna, El tipo que describe el uso de la variable y El valor de la variable que es la cantidad que tiene asociada en un determinado momento

Fig. 3. Variables (declaración)

Es decir, la variable que representa la edad de una persona se identifica por el nombre Edad ; los datos que guardan son de tipo real y su valor en un momento determinado puede ser 25.

Nota: Los nombres de las variables deben ser significativos, y tener relación con el objeto que representan. Asi si se desea almacenar pesos, a dicha variable se le asignará el nombre depesos.

Una variable de un tipo determinado solo puede tomar valores de ese tipo.

Tipos de Variables

Las variables puede ser identificadas de acuerdo a la función que asume en el algoritmo, como:

a) Contador :

Campo o variable que sirve para llevar una cuenta con incrementos constantes, generalmente de 1 en 1. Ejm: NroPerMayEdad, variable que cuenta el número de personas mayores de edad Requiere de las siguientes instrucciones: NroPerMayEdad = 0 // inicializar en cero: NroPerMayEdad = NroPerMayEdad + 1 // NroPerMayEdad aumenta en uno

Page 8: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

b) Acumulador :

Campo o variable que sirve para llevar una suma o cuenta de diferentes valores(acumular). Ejm: SEdad variable que almacena la suma de las edades de una cantidad de personas. Requiere de las siguientes instrucciones: 1. SEdad = 0 // Inicializa en cero 2. SEdad = SEdad + Edad // SEdad se incrementa en el valor de Edad Inicializar, significa poner en blanco o en cero una variable o campo antes de su utilización. Los acumuladores y contadores por lo general se inicializan en cero. La diferencia entre ellos se puede apreciar en la siguiente vista

c) Variable de Trabajo :

Campo que almacena temporalmente el resultado de alguna operación. No es variable de entrada ni de salida.

Ejm: Si me piden ingresar el radio y altura de un cilindro y requieren calcular el volumen del cilindro. El Area de la base ABase requerida seria una variable de trabajo porque no es variable ni de entrada ni de salida.

Fig. 4. Ejemplo de variables (de entrada, de salida y de trabajo)

Page 9: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

FUNCIONES ESTÁNDAR ( INTERNAS )

Son funciones que vienen con todos los lenguajes de programación. Se

representa así;

Fig. 5. Definición de la función NombreFunción

Fig. 6. Llamada de la función NombreFunción, definida anteriormente

Esta es la llamada a la función, a la que se envia los argumentos (valores de variables o constantes o referencias)

FUNCIONES ARITMETICAS en la definición

Algoritmos (pseudocodigo)

Definición en C++

tipoRetorno NombreFuncion (t1 p1, . ,tn pn )

NombreFunción

Descripción

tipo de parámetro y de retorno en

algoritmos

tipo de parámetro y de retorno

en C++

abs(p) valor absoluto, retorna la magnitud de p

entero abs (entero p) real abs (real p)

int abs(int p) double fabs(double dp))

sqrt(p) raiz cuadrada, retorna la raiz cuadrada de p

real sqrt (real p) double sqrt (double p)

Page 10: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

pow(p1,p2)

potencia del parametro p1 elevado al parametro p2

real pow (real p1, real p2)

double pow (double p1, double p2)

sin(p)

seno, retorna el seno de p expresado en radianes

real sin(real p) double sin( double p)

cos(p)

coseno, retorna el seno de p expresado en radianes

real cos(real p) double cos (double p)

tan(p)

tangente, retorna la tangente de pexpresado en radianes

real tan (real p) double tan (double p)

atan(p)

arco tangente, retorna el angulo en radianes cuya tangente es p

real atan (real p) double atan (double p)

exp(p) exponente p, de e, es decir ep

real exp( real p ); double exp(double p)

log(p) logaritmo neperiano de p

real log (real p) double log(double p)

log10(p) logaritmo decimal dep

real log10 (real p) double log10(double p)

Random()

genera un numero entero aleatorio entre 0 y maxEntero.

entero rand( )

srand () inicializa el generador de aleatorios. int rand( ) // genera entre 0 y

maxInt

entero (p) Parte entera de p

entero int (real p) int int (double p)

Page 11: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

Tabla 9. Definición de las funciones estandar en seudocódigo y en C++

Aqui tenemos las funciones estandar en el Lenguaje de programación C++ :

FUNCION EN LA LLAMADA (EN EL PROGRAMA PRINCIPAL)

ALGORITMOS LLamada en el LENGUAJE DE

PROGRAMACION C++

Definición NombreFuncion

tipos de los Argumentos x y

resultado r

Llamada y asignación en C++

Valor Absoluto de x entero x,r r = abs (x)

int x , r; double x, r;

r = abs( x ); r = fabs( x )

Raiz Cuadrada de x real x,r r=x 1/2 = sqrt(x)

double x, r ; r = sqrt ( x );

potencia real real x,n,r r= xn = pow(x,n)

double x,n,r; es decir r = xn

r = pow (x,n);

Exponente de e real x, r r = ex = exp(x)

double x, r ; r = exp( x );

Seno de x real x,r r = sin (x)

double x, r ; r = sin ( x );

Coseno de x real x,r r = cos(x)

double x, r ; r = cos( x );

Tangente de x real x,r r = tan(x)

double x, r ; r = tan( x );

Arco Tangente de x real x,r r = atan(x)

double x, r ; r = atan( x );

Logaritmo Natural o neperiano de x

real x,r r = log(x)

double x, r ; r = log( x );

Logaritmo Decimal de x real x,r r = log10(x)

double x, r ; r = log10( x );

Page 12: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

Numero aleatorio r = random() int r; srand(); r = rand ();

parte_entera (x) real x

entero r r = entero (x)

double x; int r;

r = int (x);

Tabla 10. Llamada de las funciones estandar en seudocódigo y en C++

EXPRESIONES ARITMÉTICAS

Son combinaciones de constantes y/o variables unidos por operadores aritméticos paréntesis y nombres de funciones especiales.

Operadores Aritméticos

Operador Significado Tipos operandos Tipo de resultado

^ ** Potenciación Base entera o real Exponente Entero

Entero o real Entero o real

+ Adición Entero o real Entero o real

- Sustracción Entero o real Entero o real

* Multiplicación Entero o real Entero o real

/ División Entero o real Real

div division entera Entero Entero

mod division entera Entero Entero

Page 13: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

Tabla 11. Operadores aritméticos, simbolo y sgnificado en pseudocodigo..

Los Operadores en algoritmos y en C++

OPERADORES ARITMETICOS

ALGORITMOS PSEUDOCODIGO

C ++

Adición o suma + +

Resta o Sustraccion

- -

Multiplicación * *

División Real / /

Potencia ^

Nota : Ddo y Dsor se

declaran enteros

Divión entera

Ddo = Dsor*Q + R

Modulo(resto) MOD

Ejm: R=Ddo MOD Dsor

% Ejm: R = (Ddo % Dsor)

Cociente DIV

Ejm: Q= Ddo DIV Dsor

Ejm: Q = (Ddo / Dsor)

Q = int (( Ddo - R) / Dsor))

: Desea conocer mas acerca de el cociente y el resto de una división entera

Tabla 12. Operadores aritméticos en seudocódigo y en C++

Ejm: a + b – 3 + sqrt(c) Ejm: pow(sin(x),2) + pow(cos(x),2) Ejm: c = sqrt( pow(a,2) + pow(b,2) ) Ejm: exp (3) – exp(2) Ejm: Ln(2.345) Ejm: Comision = Ventas*0.05 // Objeto result, de la estructura t_div veaDiapositiva t_div result resto = result.rem

cociente = result.quot

Page 14: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

Reglas de prioridad

1) Las operaciones encerradas entre paréntesis se evaluan primero. Si estan anidados, primero se evaluan los mas internos.

2) Operador exponencial ^ o ** 3) Operadores * / 4) Operadores + -

EXPRESIONES RELACIONALES

Es un conjunto de variables y/o constantes unidas o relacionadas por operadores relacionales.

OPERADORES RELACIONALES

algoritmos Significado En lenguaje C++

Operador Compleme

nto

Operador

Complemento

Operador Compleme

nto

<

> = menor que

mayor o igual que

<

> =

<= >

menor o igual que

mayor que < = >

>

< = mayor que

menor o igual que

>

< =

>= < mayor o igual que

menor que > = <

=

igual que

distinto de (diferente)

= = ! =

=

distinto de (diferente)

! = = =

Tabla 13. Operadores Relacionales y su complemento, en pseudocódigo y en C++

Ejm en algoritmos y en lenguaje C++

En algoritmos En C++

Edad > 18 Edad > 18

SalBruto <= SalNeto SalBruto <= SalNeto

Page 15: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

EstCivil 'S' EstCivil != 'S'

Tabla 13. Ejemplos de operadores Relacionales en pseudocodigo y en C++

EXPRESIONES LÓGICAS ( o BOOLEANAS )

Se forman combinando constantes lógicas, variables lógicas y otras expresiones lógicas utilizando los operadores lógicos: NO, O, Y, y los operadores relacionales o de comparación.

En algoritmos En C++

( Edad > 18 ) Y ( Talla < 1.70 ) ( Edad > 18 ) && ( Talla < 1.70 )

NO ( sexo = ´F’ ) ! ( sexo == ´F’ )

( EstCivil = ‘C’ ) O (Sueldo > 2000) ( EstCivil == ‘C’ ) || (Sueldo > 2000)

Tabla 14. Ejemplos de expresiones booleanas

FORMAS DE REPRESENTAR LOS ALGORITMOS

Los algoritmos pueden presentarse en :

Diagramas de Flujo, Diagramas de Nassi Sneidermann y pseudocódigo,

Pseudocódigo

Es un lenguaje de especificación de algoritmos. Es similar al lenguaje común. Su traducción a un lenguaje de programación es sencillo.

Utiliza enunciados donde cada uno de ellos representa una instrucción en un programa de computadora.

Ofrece gran facilidad para representar en un lenguaje no formal las instrucciones de un algoritmo que sirve de base para el código o programa fuente

Utiliza palabras reservadas en ingles o en castellano como

Iniciar el algoritmo INICIO

Finalizar el algoritmo FIN

Lectura (permite ingresar los valores de las variables)

LEER

Page 16: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

Mostrar (permite mostrar los valores de las variables)

MOSTRAR

Estructura Selectiva SI (expBooleana) { ... .... } SINO {... .... }

SELECCIONA segun (selector ) { caso v1 : ....... }

Estructura Repetitiva PARA ( ... ; Hasta ; ... con ) { ......... }

MIENTRAS (expBooleana ) { .... }

DO { .............. } MIENTRAS ( expBooleana )

Tabla 15. Tabla de las principales palabras representativas en pseudocódigo para identificar las estructuras de control, inicio, fin, entrada y salida de datos.

INSTRUCCIONES O SENTENCIAS

a) Instrucción de Asignación

Operación en la cual el computador desarrolla o evalúa una expresión matemática y almacena el resultado final en una determinada variable. En la forma más simple de asignación el computador mueve una constante o el contenido de un campo a otra variable.

Sintaxis:

Nombre_de_la_variable = expresión, variable o constante

Asignación Aritmética:

En algoritmos En C++

var1 = 3+4*2 var1 = 3+4*2

var2 = 0.65 / 0.2 var2 = 0.65 / 0.2

var3 = var1 / var2 var3 = var1 / var2

Tabla 16. Ejemplos de asignaciones aritméticas

Asignación Lógica

En algoritmos En C++

Boolean var1,var2,var3 Bool var1,var2,var3;

var1 = 5 < 2 var1 = 5 < 2;

var2 = 7 >= 3 var2 = 7 >= 3;

var3 = var1 o var2 var3 = var1 || var2 ;

Tabla 16. Ejemplos de asignaciones lógicas o booleanas.

Page 17: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

Asignación de Caracteres o cadena de caracteres

En algoritmos En C++

caracter *vCad, car char * vCad, car ;

car = 'S' car = 'S';

vCad = "25 de diciembre de 1998" vCad = "25 de diciembre de 1998";

Tabla 17. Ejemplos de asignaciones de caracteres y cadenas de caracteres NOTA : = Este simbolo significa asignación e indica que el valor de la parte derecha del enunciado se le asigna a variable de la izquierda

Reglas para la construccion de un enunciado de asignación:

Toda variable del lado derecho debe estar definida Después de ejecutarse un enunciado: Solo la variable de la izquierda puede cambiar de valor cuando con

anterioridad tiene un valor asignado Las variables del lado derecho conservan su valor.. Si la variable de la parte izquierda se encuentra también en la derecha ,

esta variable cambia de valor por aparecer en la izquierda

b) Instrucción de Entrada y salida de información

En algoritmos En C++

real v

entero v2

caracter sexo double v; int

v2; char sexo;

LEER v cin>> v;

LEER v2 cin>>v2;

MOSTRAR v cout<<v;

MOSTRAR v, v2 cout<<v<<v2<<endl;

LEER sexo cin>>sexo;

caracter nombre[20] char nombre[20]; // cadena de

caracteres

LEER nombre cin>>nombre; // lee un solo nombre sin espacios en

blanco

gets(nombre); // lee nombre con espacios en blanco

MOSTRAR nombre cout<<nombre; // con y sin espacios en

blanco

Page 18: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

Tabla 18. Entrada y salida de datos en pseudocódigo y en C++

ESTRUCTURA Y DISEÑO DE UN ALGORITMO EN PSEUDOCÓDIGO

Encabezado .- Empezar con la palabra ALGORITMO seguida por una descripción adecuada de acuerdo al problema a resolver

Ejm: ALGORITMO Calcular Area del Circulo

Inicio del Algoritmo .- Indicar el inicio del Algoritmo

Ejm INICIO

Declaración de Constantes .- Definir los valores que no cambian en el transcurso del algoritmo

Ejm const real Pi = 3.1416

Declaración de las Variables a usar .- Definir las variables (estructuras de datos ) que sean necesarios para resolver el problema, identificándolas con un nombre y determinando sus tipos.

Ejm. Real Radio , Area

Leer Calcular o Imprimir .- Que permite leer, calcular o imprimir tantas veces se quiera.

a) Leer Datos.- Permite introducir los valores de las variables de entrada disponibles como materia prima, para evaluar las variables de salida

Ejm: LEER Radio

b) Calcular .- Permite procesar los valores de entrada para producir la salida adecuada.

Ejm : Area = Pi * Radio * Radio o Area = Pi * pow ( Radio,2 )

c) Mostrar Resultados (Salida de Datos) .- Permite dar salida a la información requerida.

Ejm: MOSTRAR Area

El algoritmo completo es el siguiente:

Page 19: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

Ejm : para el problema del cálculo del area de un rectángulo visto anteriormente, en seudocódigo sería así: INICIO

// Entrada (Lectura) de datos LEER Base , Altura

// Proceso: Calculo de Area Area = Base * Altura

// Salida de resultados MOSTRAR Area FIN

Fig. 7. Entrada, proceso y salida de información. Ejm : Hacer un algoritmo que permita calcular el jornal basico de un obrero, si para ello se requiere ingresar por teclado la tarifa horaria y el numero de horas trabajadas. La formula del jornal es : Jornal = TarHora x NroHoras.

Fig. 8. Entrada , Proceso y salidad de información. ALGORITMO CalJornal INICIO

// Declaración de las variables real TarHora, Jornal entero NroHoras // Lectura de los Datos de Entrada LEER TarHora LEER NroHoras // Calculo del Area del Rectangulo Jornal = TarHora * NroHoras. // Muestra Area del Rectangulo MOSTRAR Jornal

Page 20: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

FIN

ESTRUCTURAS DE CONTROL

Algoritmo pseudocodigo En Lenguaje C++

Estructura Selectiva

si ( ExpBooleana ) { Bloque_Verdadero } sino

{ BloqueFalso }

if ( ExpBooleana ) { Bloque_Verdadero } else

{ BloqueFalso }

Estructura switch

Seleccione ( selector) { caso val1 : Bloque_1; salto

caso val2 : Bloque_2; salto

sino : Bloque_n; }

switch ( selector ) { case val1 : Bloque_1

break ; case val2 : Bloque_2

break ; default : Bloque_n

}

val1 y val2 son los posibles valores de selector

En caso selector sea val1 , se ejecuta el Bloque_1

En caso selector sea val2 , se ejecuta el Bloque_2

De lo contrario se ejecuta el Bloque_n

Estructura Repetitiva for

Para ( i = vi ; hasta vf ; i=i+inc ) { Bloque_Repetitivo }

for ( i = vi ; i <= vf ; i = i+inc ) { Bloque_Repetitivo } // El valor inicial de i es vi , se ejecuta el

Bloque_Repetitivo mientras i sea <=vf , con

incrementos de i en inc

El Bloque_Repetitivo deja de ejecutarse, cuando el valor de i > vf

Estructura Repetitiva while

Mientras ( expresion_Booleana ) { Bloque repetitivo }

while ( Expresión_Booleana) { Bloque_Repetitivo }

// Evalúa la expresion Booleana antes de ejecutar el Bloque_Repetitivo, si es true ejecuta el Bloque_Repetitivo, de lo contrario ya no ejecuta el bloque_Repetitivo

Page 21: ALGORITMOS

INGENIERIA DE SISTEMAS | CARLOS ESTRADA TORRES

Hacer { Bloque repetitivo } Mientras ( expresion_Booleana )

do { Bloque Repetitivo } while ( expresion_Booleans);

// Evalúa la expresion Booleana despues de ejecutarse el Bloque_Repetitivo, si es true continua ejecutando el Bloque_Repetitivo, de lo contrario sale del Bloque_Repetitivo.

// El Bloque_Repetitivo, se ejecuta por lo menos 1 vez.

Tabla 19. Tabla de estructuras de control, que facilitan la codificación en el lenguaje C++, a partir de algoritmos hechos en pseudocódigo