Está en la página 1de 18

1

REPRESENTACIÓN DE ALGORITMOS

Un algoritmo es un conjunto finito de pasos, instrucciones o acciones que se deben seguir


para resolver un problema.
Existen varias formas de representar un algoritmo estas son seudocódigo, diagrama de flujo,
diagrama de nassi–schneiderman y lenguaje de programación.
A continuación se describen las reglas de escritura o diseño de cada uno de ellos:

 A) SEUDOCODIGO (Reglas o seudo instrucciones en lenguaje natural )


1. Asignación x=3+a (permite modificar el valor de una variable)
2. Lectura: Lee a ,b, c (para asociar valor a variables)
3. Escritura: Escribe “resultado”, a (presenta o permite “ver” el valor de una variable)
4. Secuencia: Ejecución de instrucciones una enseguida de otra.
5. Decisión: si (condición) entonces instrucción sino instrucción (permite modificar la secuencia
de ejecución)
6. Decisión: si (condición) entonces instrucción
7. Repetición: Repite una o más instrucciones
a. repite desde vc = 1 hasta n instrucción (de uno en uno si no se especifica lo
contrario)
b. mientras (condición) instrucción (repite mientras la condición sea verdadera)
c. hacer instrucción mientras(condición) (repite mientras la condición sea
verdadera)
8. Bloque: Si en una decisión o en una repetición es necesario ejecutar más de una
instrucción estas deben estar en un bloque. Se representa como sigue:
Inicio
Instrucción1
Instrucción2
….
instrucciónN
fin
9. Selector: según (expresión) hacer (selecciona una y solo una acción o instrucción dependiendo del
valor de expresión. Siempre se utiliza un bloque)
inicio
valor1: acciones-1
valor2: acciones-2

2

valorN: acciones-N
si_no: acciones-si_no
fin

 B) DIAGRAMA DE FLUJO
Simbología

Inicio y final del diagrama de flujo

Entrada de datos (lectura)

Símbolo de proceso, indica la asignación o modificación de un valor a una


variable, mediante expresiones aritméticas.

Salida de información (escriturra)

Dirección del flujo.

CONTROL DE FLUJO
DECISION
3

Símbolo de decisión: se realiza una comparación de valores. El resultado de la comparación


es verdadero o falso (si o no).
Si el resultado es verdadero se ejecuta la instrS, si es falso se ejecuta la instrN. En la segunda
figura si la condición es verdadera se ejecuta la instr. De otra manera no hace nada.

Selector: Es un expresión o variable que


se evalúa y ejecuta la Acción1 si
expresión toma el valor 1 o ejecuta la
acción 2 si la expresión toma el valor 2,
etc. Ejecuta una y solo una acción.

Repetición: Repite acción1, acción2,… acciónN,


hasta que la variable VAR es mayor que el valor final
VF. Incrementa de manera implícita VAR de uno en
uno desde el valor inicial (Vi) hasta el valor final (Vf)
mientras no se especifique lo contrario.

Subproceso (Llamada a una función)


4

C) DIAGRAMA DE NASSI –SCHNEIDERMAN: Ventaja principal: no usan flechas. Básicamente


se trata de cajas que se incrustan de acuerdo al algoritmo

Selección Múltiple
5

Repetición

 D) LENGUAJE DE PROGRAMACIÓN (LENGUAJE C++) Se describirá durante el semestre.

----------------------------------------------------------------------------------------------------------------------
Ejemplo1: Cálculo del salario neto de un trabajador.

Seudocódigo NASSI -SCHNEIDERMAN

Calculo del salario neto


Inicio
leer nombre, horas, precio
leer nombre, horas, precio
salario = horas * precio
salario = horas * precio
impuesto = salario * 0.15
impuesto = salario * 0.15 salarioNeto = salario -
salarioNeto = salario – impuesto impuesto
escribir nombre, impuesto, salarioNeto escribir nombre, impuesto,
fin salarioNeto
6

Diagrama de flujo

Lenguaje C++
#include <iostream>
using namespace std;

/*Programa para calcular el salario neto de un trabajador


Elaborado por: Ing. Mario Rojas */
int main(int argc, char** argv) {
int horas, precio,salario,impuesto,salarioNeto;
char nombre[10];
cout<<"Teclea el nombre del trabajador sin espacios ";
cin>>nombre;
cout<<"\nTeclea el numero de horas trabajadas y el precio por hora ";
cin>>horas>>precio;
7

salario=horas * precio;
impuesto=salario*0.15;
salarioNeto=salario-impuesto;
cout<<nombre<<" ";
cout<<impuesto<<" "<<salarioNeto;
return 0;
}

------------------------------------<>----------------------------------------------------------------------------

Ejemplo2: Dados tres valores cualesquiera a, b y c determinar cuál es el mayor.


SEUDOCÓDIGO

DIAGR
AMA DE FLUJO
Inicio
Leer a, b, c
Si a>b entonces
Si a>c entonces
Mayor = a
Sino
Mayor = c
Sino
Si b>c entonces
Mayor = b
Sino
Mayor = c
Escribe mayor
fin
8

Lenguaje C++
#include <iostream>
using namespace std;
/* Dados tres valores cualesquiera a, b y c determinar cuál es el mayor.
Elaborado por: Ing. Mario Rojas */
int main(int argc, char** argv) {
int a,b,c,mayor; //declaracion de variables
cout<<"Teclea tres valores separados por un espacio y al final ENTER \n";
cin>>a>>b>>c; //lectura de los valores
if(a>b) //comparaciones
if (a>c)
mayor=a;
else
mayor=c;
else
if (b>c)
mayor=b;
else
mayor=c;
cout<<"El mayor es \n"<<mayor; //salida a pantalla del resultado
return 0;
}

----------------------------------------------------------------------------------------------------------------

Ejemplo3: Calculo del promedio de n valores


Seudocódigo
Inicio
Leer n
k= 0, suma= 0
mientras k<=n hacer
inicio
k = k +1
9

leer x
suma = suma + x
fin
promedio = suma / n
escribir “el promedio es “, promedio
fin

DIAGRAMA DE FLUJO
10

Lenguaje C++
#include <iostream>
using namespace std;
/* Calculo del promedio de n valores
Elaborado por: Ing. Mario Rojas */

int main(int argc, char** argv) {


float x,suma,promedio; //declaracion de variables
int n,k;
suma=0; //inicializacion de variables
cout<<"Cuantos valores son? ";
cin>>n; //lectura desde el teclado
for(k=0;k<n;k=k+1){ //mientras la condicion sea verdadera ejecutar
cout<<"Teclea el valor "<<k+1<<" ";
cin>>x;
suma=suma+x;
} //fin del for
promedio=suma/n; //calculo del promedio
cout<<"El promedio es "<<promedio;
return 0;
}

----------------------------------------------------------------------------------------------------------------

Ejemplo4: Solución de una ecuación de segundo grado completa.


−b ± √ b2−4 ac
x=
2a
SEUDOCÓDIGO:
Leer a, b, c
det = b*b - 4*a*c
11

si (det>0) entonces
inicio
x1 = (-b + sqrt(det)) / (2*a)
x2 = (-b - sqrt(det)) / (2*a)
escribe (“las raíces reales son x1= “, x1, “x2= “ , x2)
fin
sino
inicio
det = -det
x1r = -b/(2*a)
x1i = sqrt(det)/(2*a)
x2r = x1r
x2i = -x1i
escribe ( “Raíces complejas”)
escribe (“x1r= “, x1r, “x1i= “, x1i)
escribe (“x2r= “, x2r, “x2i= “, x2i)
fin

Diagrama de Nassi-Schneiderman
12

LENGUAJE C++
#include <iostream>
#include <cmath> //biblioteca que contine las funciones pow y sqrt
using namespace std;
/* Ejemplo: Solución de una ecuacion de segundo grado completa con raíces reales y
complejas.
Elaborado por: Ing. Mario Rojas L. */

int main(int argc, char** argv) {


float a,b,c, disc, raiz, x1,x2,x1r,x1i,x2r, x2i; //Declaracion de variables float (decimales)
cout<<"Teclea los valores de a, b y c separados por al menos un espacio y termina con
un enter\n"<<endl;
cin>>a>>b>>c; //lectura de los coeficientes
disc=pow(b,2)-4*a*c; //calculo del discriminante
if(disc>=0) {
// raices reales
x1= (-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
cout<<"Las raices reales son x1= "<<x1 <<" x2= "<< x2<<"\n";
}
else{
//raices complejas
disc=-disc; //Cambio de signo para poder calcular la raiz.
x1r=-b/(2*a);
x1i=sqrt(disc)/(2*a); //sqrt esta en la biblioteca <cmath>
x2r=x1r;
x2i=-x1i;
cout<<"Raices complejas: x1="<<x1r<<" + "<<x1i<<"\n";
cout<<"Raices complejas: x2="<<x2r<<" + "<<x2i<<"\n";
}

return 0;
13

DIAGRAMA DE FLUJO
14

EJERCICIOS
1. Calcular el área de un círculo. A = ℾ*r2
2. Calcular el valor de Y para x = 5 en la ecuación Y= 3*X 2+ 7X – 15
3. Determinar si un número es par o impar.
4. Sumar los números del 1 a 10.
5. Sumar los números del 1 a 100.
6. Sumar los números del 1 hasta n.
7. Sumar los números pares entre 1 y 100
8. Sumar los impares entre 1 y 100
9. Escribir los 100 primeros números pares.

10. Calcular las combinaciones de 5 elementos tomados de 2 en 2. (nr )= ( n−rn!) ! r !


------------------------------ >< ----------------------

// Si un renglón inicia con los símbolos // significa que es un comentario y no se procesa como instrucción
// 1.- Calcular el área de un círculo. A = ℾ*r2
Inicio
Leer r
Área = 3.1416 * r*r; //se calcula el area
Escribe “el área del circulo es “, área;
Fin

------------------------------ >< ----------------------


// 2.-Calcular el valor de Y para x = 5 en la ecuación Y= 3*X 2+ 7X – 15
Inicio

Y= 3*5*5+ 7*5 – 15
Escribe “el valor de Y en la ecuación para x=5 es “, y
fin

------------------------------ >< ----------------------


// 2.1- Calcular el valor de Y para cualquier valor de x en la ecuación Y= 3*X 2+ 7X – 15
Inicio
Leer x
Y= 3*X*x+ 7*X – 15
Escribe “el resultado es “, y
fin

------------------------------ >< ----------------------


15

// 3.- Determinar si un número es par o impar.


Inicio
Leer numero
Si (numero%2==0) entonces
escribe “el numero es par”

sino

escribe “el numero es impar”

fin

------------------------------ >< ----------------------


// 4.- Sumar los números del 1 a 100. 1+2+3+4+5+6+7+ ……+100
Inicio
Suma=0
Repite desde i=1 hasta 100
Suma=suma +i
Escribe “el resultado de la suma es “, suma
fin

------------------------------ >< ----------------------


//6.- Sumar los números del 1 hasta cualquier numero
Inicio
Leer n
Suma=0
Repite desde i=1 hasta n de uno en uno
Suma=suma +i
Escribe “el resultado de la suma es “, suma

Fin

------------------------------ >< ----------------------


//6.- Sumar los números del m hasta n entre cualquier rango
Inicio
Leer n,m //
Suma=0
Repite desde i=m hasta n de uno en uno
Suma=suma +i
Escribe “el resultado de la suma es “, suma

Fin

------------------------------ >< ----------------------


//6.1. - sumar los números de 1 a n de 5 en 5 (1+5+10+15+20+25 … n)
16

Inicio
Leer n
Suma=1
Repite desde i=0 hasta n de 5 en 5
Suma=suma +i
Escribe “el resultado de la suma es “, suma

Fin

------------------------------ >< ----------------------

//7.- Sumar los números pares entre 1 y 100


Inicio
Sumatoria=0
Repite varControl=1 hasta 100
Si (varControl % 2 == 0) Sumatoria=sumatoria +varControl
Escribe sumatoria
Fin
------------------------------ >< ----------------------
//7.1 Sumar los números impares entre 1 y 100
Inicio
Sumatoria=0
Repite varControl=0 hasta 100 de 2 en 2
Sumatoria=sumatoria +varControl
Escribe sumatoria
Fin
------------------------------ >< ----------------------
// 7.3.- Sumar los números pares e impares de 1 a n
Inicio
Leer n
sumaPares=0
sumaImpares=0
Repetir i=1 hasta n
Si (i%2==0) entonces
sumaPares=sumaPares+i
sino
sumaImpares=sumaImpares+i
escribe “la suma de pares es “,sumaPares
escribe” la suma de imapres es “, sumaImpares

fin

------------------------------ >< ----------------------


17

//8.- Escribir los 100 primeros números pares para n>200


Inicio
Leer n
Repetir desde i=1 hasta 200
si (i%2!=0) entonces
escribe i
fin

------------------------------ >< ----------------------

//10.- Calcular las combinaciones de 5 elementos tomados de 2 en 2. (nr)= ( n−rn!) !r !


//10A.- Calcular las combinaciones de n elementos tomados de r en r. (nr)= ( n−rn!) ! r !
Probar que n>0 y r<=n. Para r=0 hasta y para n= hasta m

------------------------------ >< ----------------------

// 10.1.- Calcular el factorial de n // si n=5 n! = 1*2*3*4*5 = 120


Inicio
Leer n
Factorial=1
Repetir desde i=1 hasta n
Factorial = factorial*i //instrucción GENERICA
Escribe “el factorial de “, n ,” es “, factorial
fin
------------------------------ >< ----------------------

Inicio
Leer n
Factorial=1
Repetir desde i=n hasta 1 de -1 en -1
Factorial = factorial*i //instrucción GENERICA
Escribe “el factorial de “, n ,” es “, factorial
fin
18

También podría gustarte