EFINICION DE ALGORITMO
Conjunto de pasos o acciones que se realizan de manera ordenada para llegar a
la solucin de un problema.
Conjunto de sentencias/instrucciones en lenguaje nativo, las cuales expresan la
lgica para la resolucin de un problema.
Conclusin : Es un mtodo para resolver un problema. La resolucin de un
problema exige el diseo de un algoritmo que resuelva el problema.
ETAPAS EN LA RESOLUCIN DE UN PROBLEMA USANDO UNA COMPUTADORA
Problema Algoritmo Programa en computadora
Diseo del algoritmo .- Describe los pasos a seguir para la resolucin de un
problema dado (anlisis y desarrollo del algoritmo)
Programa en computadora .- El algoritmo se expresa mediante un lenguaje de
programacin en un programa.
TIPOS DE ALGORITMOS:
Algoritmo Cualitativo.- Son los algoritmos descritos mediante palabras. Ejm:
La elaboracin de una receta de cocina
El tejido a mano de una chompa.
Bsqueda de un numero telefnico.
El cambio de una llanta
El cambio de un foco quemado.
Algoritmo Cuantitativo.- Son los algoritmos que se basan en clculos numricos.
Ejm:
Pasos a seguir para resolver una ecuacin 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.
CARACTERSTICAS DE UN ALGORITMO .Los algoritmos deben tener estas caractersticas:
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 nmero finito de pasos.
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 rectngulo 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
representacin interna (basndose en la abstraccin ).
TIPOS DE DATOS
Existen dos tipos de datos : los simples ( sin estructura ) y los compuestos
(estructurados)
Los tipos de datos simples (sin estructura) :
a) Numricos ( Entero y Real).
b) Lgicos o boolean.
c) Carcter.
Entre los tipos de datos compuestos se tiene: cadena de caracteres.
a) Datos numricos .- Conjunto de los valores numricos. Pueden representarse
en dos formas:
Numrico entero ( de punto o coma fijo ) es un subconjunto de los nmeros
enteros (+ o -).
Ejm:
5 -56 1340
17
-14
Los mximos y mnimos suelen ser: -32768 a 32767
Numrico real (punto o coma flotante) es un subconjunto de los nmeros reales
(+ o -)
Ejm:
0.08
3.7456
-53.456
3.0
Notacin cientfica:
Mantisa
67 520 000 000 000 000 000
= 6.752 x 1019
0.000 000 000 000 000 234 123
= 2.34123 x 10-16
exponente
Tabla 1. Notacin Cientfica
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 numricos:
Algoritmo
Tipo de dato
entero
variables
numeroPersonas
En C++
Tipo de
dato
int
variables
numeroPersonas ;
entero
numeroCajas
int
numeroCajas;
? El numeroPersonas y numeroCajas almacenan datos enteros.
real
talla
double
talla;
real
peso, talla, promPonderado
double peso, talla, promPonderado;
? La talla, peso y PromPonderado almacenan datos reales.
Desea conocer mas sobre tipos numericos en C++ ?
Tabla 2. Declaracin de variables que almacenan tipos de datos
numericos enteros y reales
b) Datos Lgicos (o booleanos)
Dato que slo 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
Condicin_de_recepcin_de_carta
Falso
Verdadero
Estado_cancelacin_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
Tipo de dato
variables
En C++
Tipo de dato
boolean opcionCon
bool opcionCon;
boolean condicionRec
bool condicionRec;
boolean estadoFac
bool estadoFac;
boolean licenciaEmp
bool licenciaEmp;
variables
? opcionCon, condicionRec, estadoFac, licenciaEmp almacenan datos booleanos o
lgicos.
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 carcter
Conjunto finito y ordenado de caracteres que la computadora reconoce. Pueden
ser:
Pueden ser:
Datos:
Alfabticos: 'A'
'B'
'c'
'E'
'K'
'a'
....
'z'
'Z'
Numricos:
'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
Tipo de dato
variables
En C++
Tipo de dato
caracter letras
char letras ;
caracter estCivil, nroMes
char estCivil, nroMes;
caracter operacion
char operacion;
caracter opcion
char opcion;
variables
? letras, estCivil, nroMes, operacion, opcion almacenan datos de tipo caracter.
Desea conocer mas sobre tipos caracter C++ ?
Tabla 6 Ejemplos de declaracin de variables que almacenan tipos de
datos caracter.
Datos Compuestos:
Una cadena de caracteres (cadena o string) sucesin 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 FERNNDEZ
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
Tipo de dato
variables
En C++
Tipo de dato
caracter nombre[30]
char
nombre[30] ;
caracter profesion[25]
char
profesion[25];
caracter* apellidos
char * apellidos;
variables
? 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
Garca Fernndez (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
CONSTANTES Y VARIABLES
C O N S T AN T E S
Espacio de la memoria para almacenar un dato que permanece sin cambio
durante la ejecucin del programa. Puede ser :
Constante Numrica que representa un determinado valor o
Constante Alfanumrica o literal que representa cualquier
combinacin de caracteres (dgito, letra, smbolo 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 programacin 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. Declaracin de constantes de diversos tipos.
VARIABLES
Espacio de la memoria para almacenar un dato que puede cambiar o no durante la
ejecucin de un programa. Puede ser : numrico en el que solo se pueden
almacenar valores (dgitos) o alfanumrico en el que puede almacenarse
cualquier carcter (dgito, letra o smbolo especial)
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 (declaracin)
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 relacin 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 funcin 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 nmero de personas mayores de
edad
Requiere de las siguientes instrucciones:
NroPerMayEdad = 0
// inicializar en cero:
NroPerMayEdad = NroPerMayEdad + 1 // NroPerMayEdad aumenta en uno
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
utilizacin.
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 operacin. 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)
FUNCIONES ESTNDAR ( INTERNAS )
Son funciones que vienen con todos los lenguajes de programacin. Se
representa as;
Fig. 5. Definicin de la funcin NombreFuncin
Fig. 6. Llamada de la funcin NombreFuncin, definida anteriormente
Esta es la llamada a la funcin, a la que se envia los argumentos (valores de
variables o constantes o referencias)
FUNCIONES ARITMETICAS en la definicin
Algoritmos (pseudocodigo)
NombreFuncin
Descripcin
Definicin en C++
tipoRetorno NombreFuncion (t1 p1, . ,tn pn
tipo de parmetro y de
retorno en algoritmos
tipo de parmetro y de
en C++
abs(p)
valor absoluto, retorna entero abs (entero p)
la magnitud de p
real abs (real p)
int abs(int p)
double fabs(double dp))
sqrt(p)
raiz cuadrada, retorna
real sqrt (real p)
la raiz cuadrada de p
double sqrt (double p)
pow(p1,p2)
potencia del
parametro p1 elevado real pow (real p1, real p2) double pow (double p1, dou
al parametro 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 real cos(real p)
en radianes
double cos (double p)
tan(p)
tangente, retorna la
tangente
de pexpresado en
radianes
double tan (double p)
atan(p)
arco tangente, retorna
el angulo en radianes real atan (real p)
cuya tangente es p
double atan (double p)
exp(p)
exponente p, de e, es
real exp( real p );
decir ep
double exp(double p)
log(p)
logaritmo neperiano
de 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 entero rand( )
0 y maxEntero.
srand () inicializa el generado
aleatorios.
int rand( ) // genera entre 0 y m
entero (p)
Parte entera de p
int int (double p)
real tan (real p)
real log (real p)
entero int (real p)
Tabla 9. Definicin de las funciones estandar en seudocdigo y en C++
Aqui tenemos las funciones estandar en el Lenguaje de programacin C++ :
FUNCION EN LA LLAMADA (EN EL PROGRAMA PRINCIPAL)
LLamada en el LENGUAJE DE
PROGRAMACION C++
ALGORITMOS
tipos de los
NombreFuncion Argumentos x y
resultado r
Llamada y asignacin
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 );
Numero aleatorio
r = random()
int r;
srand();
r = rand ();
parte_entera (x)
real x
entero r
r = entero (x)
double x;
int r;
Definicin
r = int (x);
Tabla 10. Llamada de las funciones estandar en seudocdigo y en C++
EXPRESIONES ARITMTICAS
Son combinaciones de constantes y/o variables unidos por operadores
aritmticos parntesis y nombres de funciones especiales.
Operadores Aritmticos
Significado
Tipos operandos
Tipo de
resultado
Potenciacin
Base entera o real
Exponente Entero
Entero o
real
Entero o
real
Adicin
Entero o real
Entero o
real
Sustraccin
Entero o real
Entero o
real
Multiplicacin
Entero o real
Entero o
real
Divisin
Entero o real
Real
div
division entera
Entero
Entero
mod
division entera
Entero
Entero
Operador
**
Tabla 11. Operadores aritmticos, simbolo y sgnificado en
pseudocodigo..
Los Operadores en algoritmos y en C++
OPERADORES
ARITMETICOS
ALGORITMOS
PSEUDOCODIGO
C ++
Adicin o suma
Resta o
Sustraccion
*
/
^
*
/
Multiplicacin
Divisin Real
Potencia
Nota :
Modulo(resto) MOD
Ddo y Dsor se
declaran enteros
Ejm: R=Ddo MOD Dsor
Cociente DIV
Divin entera
Ddo = Dsor*Q + R Ejm: Q= Ddo DIV Dsor
Ejm: R = (Ddo % Dsor)
Ejm: Q = (Ddo / Dsor)
Q = int (( Ddo - R) / Dsor))
: Desea conocer mas acerca de el cociente y el resto de una divisin
entera
Tabla 12. Operadores aritmticos en seudocdigo 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 = [Link]
cociente = [Link]
Reglas de prioridad
1) Las operaciones encerradas entre parntesis 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++
Compleme Operado Compleme
nto
r
nto
Operador
<
Operador
>=
menor
que
mayor o
igual que
<
>
menor o
igual
que
mayor que
<=
<=
mayor
que
menor o
igual que
>
>=
<
mayor o
menor que > =
igual que
igual que
distinto
de
(diferente
)
<=
>
distinto de
(diferente)
Compleme
nto
>=
>
<=
<
==
!=
!=
==
Tabla 13. Operadores Relacionales y su complemento, en pseudocdigo
y en C++
Ejm en algoritmos y en lenguaje C++
En algoritmos
En C++
Edad > 18
Edad > 18
SalBruto <= SalNeto
SalBruto <= SalNeto
EstCivil 'S'
EstCivil != 'S'
Tabla 13. Ejemplos de operadores Relacionales en pseudocodigo y en
C++
EXPRESIONES LGICAS ( o BOOLEANAS )
Se forman combinando constantes lgicas, variables lgicas y otras expresiones
lgicas utilizando los operadores lgicos: NO, O, Y, y los operadores relacionales
o de comparacin.
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
pseudocdigo,
Pseudocdigo
Es un lenguaje de especificacin de algoritmos. Es similar al lenguaje comn. Su
traduccin a un lenguaje de programacin es sencillo.
Utiliza enunciados donde cada uno de ellos representa una instruccin 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 cdigo o programa fuente
Utiliza palabras reservadas en ingles o en castellano como
Iniciar el algoritmo
INICIO
Finalizar el algoritmo
FIN
Lectura (permite ingresar
LEER
los valores de las variables)
Mostrar (permite mostrar
MOSTRAR
los valores de las variables)
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 pseudocdigo para
identificar las estructuras de control, inicio, fin, entrada y salida de datos.
INSTRUCCIONES O SENTENCIAS
a) Instruccin de Asignacin
Operacin en la cual el computador desarrolla o evala una expresin matemtica
y almacena el resultado final en una determinada variable. En la forma ms simple
de asignacin el computador mueve una constante o el contenido de un campo a
otra variable.
Sintaxis:
Nombre_de_la_variable = expresin, variable o constante
Asignacin Aritmtica:
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 aritmticas
Asignacin Lgica
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 lgicas o booleanas.
Asignacin 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 asignacin 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 asignacin:
Toda variable del lado derecho debe estar definida
Despus 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 tambin en la derecha ,
esta variable cambia de valor por aparecer en la izquierda
b) Instruccin de Entrada y salida de informacin
En algoritmos
real
entero
v2
En C++
caracter sexo double v;
int v2;
LEER v
cin>> v;
LEER v2
cin>>v2;
MOSTRAR v
cout<<v;
MOSTRAR v, v2
cout<<v<<v2<<endl;
LEER sexo
cin>>sexo;
char nombre[20]; // cadena de
caracter nombre[20]
LEER nombre
caracteres
cin>>nombre;
// lee un solo nombre sin espacios en
blanco
gets(nombre); // lee
MOSTRAR nombre
char sexo;
nombre con espacios en blanco
cout<<nombre; // con y sin espacios en
blanco
Tabla 18. Entrada y salida de datos en pseudocdigo y en C++
ESTRUCTURA Y DISEO DE UN ALGORITMO EN PSEUDOCDIGO
Encabezado .- Empezar con la palabra ALGORITMO seguida por una descripcin
adecuada de acuerdo al problema a resolver
Ejm: ALGORITMO Calcular Area del Circulo
Inicio del Algoritmo .- Indicar el inicio del Algoritmo
Ejm INICIO
Declaracin de Constantes .- Definir los valores que no cambian en el transcurso
del algoritmo
Ejm const real Pi = 3.1416
Declaracin de las Variables a usar .- Definir las variables (estructuras de
datos ) que sean necesarios para resolver el problema, identificndolas 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
informacin requerida.
Ejm: MOSTRAR Area
El algoritmo completo es el siguiente:
Ejm : para el problema del clculo del area de un rectngulo visto anteriormente,
en seudocdigo sera 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 informacin.
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 informacin.
ALGORITMO CalJornal
INICIO
// Declaracin 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
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
while ( Expresin_Booleana)
{ Bloque_Repetitivo }
Mientras ( expresion_Booleana )
{ Bloque repetitivo }
// Evala 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
do
{ Bloque Repetitivo }
while ( expresion_Booleans);
Hacer
{ Bloque repetitivo }
Mientras ( expresion_Booleana )
// Evala 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 codificacin en el
lenguaje C++, a partir de algoritmos hechos en pseudocdigo.
Silabo
Horario
Curso : Trabajos :
Teora
Laboratorios
Practica Trabajos
Solucionario e-mail
Codificacin
Evaluaciones enlaces LP
Artculos
Diversos
4. Realizar el anlisis, diagrama de flujo y prueba de escritorio, para
los siguientes planteamientos
1.- Determinar en una lista los pasos para ir al cine con el
novio o la novia.
Anlisis:
Problema: invitar a la novia a cine.
Especificaciones de entrada: llamar a la novia, hacer
invitacin. Especificaciones de salida: fijar lugar, fijar
hora, encuentro en el lugar fijado, compra de boletas,
ingreso a la sala de cine.
2.- Realizar un algoritmo donde se indique los pasos para
realizar un plato tpico de la regin.
Anlisis:
Problema: elaboracin de plato tpico mamona
Especificaciones de entrada: comprar la novilla.
Especificaciones de salida: sacrificio de la novilla,
condimentos, yuca, papa, sal, trozos de lea.
3.- Realizar un diagrama que permita esquematizar (dibujo) los
pasos para baar un elefante.
Problema: como baar un elefante
Especificaciones de entrada: un elefante, un lazo, 100
litros de agua, 100 cc de jabn liquido, un cepillo, un balde
Especificaciones de salida: mojar el elefante, aplicar jabn,
cepillar, enjuagar.
4.- Determinar cual es el cuadrado, de un determinado nmero,
primero haga la lista de pasos a utilizar, luego el algoritmo
en pseudocdigo y finalmente el diagrama de flujo.
Pasos:
Inicio
Ingrese un nmero: a
Lea numero: a
Cuadrado = a^2;
Escriba el resultado
Fin
5.- Elaborar un diagrama de flujo que permita determinar si un
nmero es Positivo o
Negativo.
6.- Elabore en pseudocdigo y en diagrama de flujo un
algoritmo que halle el rea de un triangulo.
7.- Ejercicio de conversin, desarrollar un algoritmo
en pseudocdigo y luego un diagrama, que permita ingresar
una cantidad en metros y la convierta a Centmetros,
Kilmetros, Pies, pulgadas (utilice las sentencias de
seleccin).
PSEUDOCODIGO
1. algoritmo de conversin de metros a:
centmetros, kilometros, pies, pulgadas;
2. var
3. m,km,cm,pies,pulgadas:real
4. inicio
5. escriba(por favor ingrese un numero);
6. lea(m);
7. cm = m*100;
8. escriba(el valor es:,cm);
9. km = m*0.001;
10. escriba(el valor es:,km);
11. pies = m*3.281;
12. escriba(el vlor es:,pies);
13. pulgadas = m*39.37;
14. escriba(el valor es:,pulgadas);
15. imprimir(c,km,pies,pulgadas)
16. fin
8.- Leer una determinada temperatura en grados centgrados y
convertirla a Fahrenheit
PSEUDOCODIGO
1. leer una temperatura en grado centigrados y
convertirla en grados fahreheit.
2. var
3. c = (grados centigrados); real
4. inicio
5. ingrese(el valor en grados);
6. lea(c);
7. Fahrenheit = c(9/5)+32;
8. escriba(grados Fahrenheit es:,f);
9. fin
9.- Elabore un algoritmo en pseudocdigo y un diagrama de
flujo que teniendo como datos de entrada el radio y la altura de
un cilindro calcule el rea total y el volumen del cilindro.
10.- Elaborar un diagrama de flujo, que permita ingresar 3
valores y los imprima en forma descendente.
5. Analice el siguiente algoritmo en pseudocdigo y discuta con sus
compaeros de grupo, porque en este ejercicio se emplearon 3
condicionales?, Existen otras formas de resolverlo?
1. Algoritmo mayor_v1
2. var
3. a,b:entero
4. inicio
5. Escriba(Por Favor entre un nmero);
6. Lea(a);
7. Escriba(por favor entre el segundo nmero);
8. Lea (b);
9. Si (a=b)
10. escriba (los Nmeros son Iguales);
11. fin_si
12. Si (a>b)
13. escriba (El mayor es :, a);
14. fin_si
15. Si (a)
16. escriba(el mayor es :,b);
17. fin_si
18. fin
RTA
Se emplean 3 condicionales; por que necesitamos saber cual es el
mayor y menor de los 2 nmeros enteros, pero que pasa, si al
introducir los nmeros son iguales, posiblemente imprimira error;
entonces empleamos las tres condiciones, para que el algoritmo no
se ambiguo.
Forma 2
1. Algoritmo mayor_v1
2. var
3. a,b:entero
4. inicio
5. Escriba(Por Favor entre un nmero);
6. Lea(a);
7. Escriba(por favor entre el segundo nmero);
8. Lea (b);
9. Si (a=b)
10. escriba (los Nmeros son Iguales);
11. sino_si(a>b)
12. escriba (El mayor es :, a);
13. sino_si(a)
14. escriba(el mayor es :,b);
15. fin_si
16. fin
6. Defina estructura de seleccin simple, doble y en cascada y d un
ejemplo en pseudocdigo.
Seleccin simple La estructura de seleccin simple permite
ejecutar una accin o un grupo de acciones slo si se cumple
una determinada condicin. As, si la condicin es verdadera se
ejecuta la accin acciona; en caso contrario, no se hace nada
Por ejemplo, si se desea cambiar el signo de un nmero nicamente
en caso que sea negativo, podemos
escribir:
SI( numer
o<0)
numero =
-1 *
numero
Si el nmero no es negativo,
simplemente esta estructura se
pasara por alto y se continuara en
la siguiente instruccin despus
del SI.
Estructura de Seleccin Doble SI - SINO
La estructura de seleccin doble permite seleccionar una ruta de
dos rutas posibles en base a la verdad o falsedad de una condicin.
As, en la Figura 3.2, si la condicin es verdadera, se ejecuta la
accin A; en caso contrario, se ejecuta la accin B.
Por ejemplo, la siguiente estructura de seleccin doble determina si
una persona es mayor o menor de edad:
SI( edad >= 18 )
estado = "Mayor de edad"
SINO
estado = "Menor de edad"
Esto imprime "Mayor de edad" si la persona tiene 18 aos ms e
imprime "Menor de edad" si la persona tiene menos de 18 aos. En
cualquiera de los casos, despus de efectuar la impresin, se
ejecutar la primera instruccin que sigue a la estructura SI...SINO.
Estructura de Seleccin Doble en Cascada SI-SINO-SI
La estructura de seleccin doble en cascada esta formada por
varias estructuras de seleccin doble SI-SINO puestas una a
continuacin de otra de forma que a un SI-SINO le sigue otro SISINO.
En la estructura de seleccin doble en cascada, las condiciones se
evalan en orden descendente, pasando de una condicin a otra si
la condicin anterior resulta falsa. En el momento que se encuentra
una condicin verdadera, se efecta la accin correspondiente a
dicha condicin y se corta el resto de la estructura. Si todas las
condiciones resultan falsas, se efecta la accin correspondiente al
ltimo SINO, que se considera como la accin por defecto.
Diagrama de flujo y el pseudocdigo de la
estructura de seleccin doble en cascada.
Ejemplos de seleccin simple:
Ejemplo 1:
Por ejemplo, si se desea cambiar el signo de un nmero nicamente
en caso que sea negativo, podemos escribir:
1.
2.
3.
4.
5.
6.
7.
8.
9.
cambio de signo a un numero si es negativo
var
numero:entero,real
inicio
introduzca(el numero);
lea(n);
si(n<0)
numero=-1*n;
fin
Ejemplo 2:
Realizar un pseudocdigo, para saber si pase un determinado
curso.
Pseudocodigo
1.
2.
3.
4.
5.
6.
7.
8.
9.
Algoritmo para conocer el estado acadmico
var
nota: entero, real;
inicio
ingrese(por favor la nota);
lea(nota);
si(nota>=3.0)
entones(paso el semestre);
fin
Ejemplos de seleccin doble:
EJEMPLO 1
Hallar el salario de los empleados de ventas de la empresa
comercial andina: teniendo los siguientes datos, sueldo bsico
500.000, segn las ventas de cada empleado se le da una
comisin, asi: menor de 2.000.000 5%, mayor 10%.
PSEUDOCODIGO
1. algoritmo para calcular el salario de un empleado
2. var
3. s,ventas,sueldo basico,0.05,0.1:entero,real
4. inicio
5. introduzca(valorventas);
6. lea(valor)
7. si(ventas<2000000)
8. s=(ventas*0.05)+sueldobasico;
9. sino(ventas*0.1)+sueldobasico;
10. imprima (salarios de empleados)
11. fin
Ejemplos de seleccin doble en cascada: SI-SINO-SI.
Disee un algoritmo que califique el puntaje obtenido en el
lanzamiento de tres dados en base a la cantidad seis obtenidos, de
acuerdo a lo siguiente: tres seis, excelente; dos seis, muy bien; un
seis, regular; ningn seis, psimo.
PSEUDOCODIGO
calificacion del puntaje segn el lanzaminento
VAR
ENTERO:dado1, dado2, dado3
CADENA: calificacion
inicio
LEER(dado1,dado2,dado3)
SI(dado1+dado2+dado3==18)
calificacion="Excelente"
SINO SI(dado1+dado2==12||dado1+dado3==12||dado2+dado3==12)
calificacion="Muybin"
SINO
SI(dado1==6||dado2==6||dado3==6);
calificacion="Regular"
SINO
calificacion="Psimo"
IMPRIMIR(calificacion)
FIN
CONCLUSIONES
Estudiada la segunda unidad, aprendimos analizar un problema,
conocer sus variables, sus constantes y estructurarlo en
diagrama de flujo, y realizar un pseudocdigo.
Cuando necesitamos resolver un problema, lo primero en lo que
debemos pensar es en analizarlo y entenderlo de forma clara y
suficiente. En esto radica el xito de la solucin obtenida
(optimizacin de recursos para llegar a la solucin).
BIBLIOGRAFA
FUENTES
Criado Prez, Antonio M. Y Frutos Rayego, Fabin: Introduccin a
los
Fundamentos fsicos de la informtica, Madrid: Paraninfo, 1999
Gabor loerincs Enciclopedia de la micro computacin
DIRRECIONES ELECTRONICAS
[Link]
[Link]
[Link]
Diagramas de flujo (pgina 2)
Enviado por sanheymar_1@[Link]
Partes: 1, 2
3. Problemas resueltos con diagramas de flujo.
Algoritmo:
1.
2.
Elabore un algoritmo que sume dos nmeros :
a.
b.
Elaborar un algoritmo que sume dos nmeros
Definicin del problema:
c.
d.
Entrada: A, B
Proceso: A+B
Salida: Resultados de suma
Validacin: No aplica
Anlisis del problema:
Diseo del algoritmo:
Paso1- Inicio _ algoritmo _suma
Paso2-Declarar variables A y B de tipo numrico
Paso3-Escribir ("Ingrese el valor de A y B respectivamente ")
Paso4-Leer (A, B)
Paso5-("El resultado es:", A+B)
Paso6-Fin_algoritmo_suma.
Diagrama de flujo:
Inicio
Algoritmo:
1.
2.
Escribir un algoritmo que calcule el rea de un tringulo.
a.
b.
Escribir un algoritmo que calcule el rea de tringulo
Definicin del problema:
c.
d.
Entrada: base*altura
Proceso: base*altura/2
Salida: rea
Validaciones: No aplica
Anlisis del problema:
Diseo del algoritmo:
Paso1-Inicio_algoritmo_rea _tringulo
Paso2-Declarar base, altura y rea de tipo real
Paso3-Escribir ("Ingrese el valor de base y altura respectivamente")
Paso4-Leer (base, altura)
Paso5-a=base*altura/2
Paso6-Escribir ("El resultado es: ", rea)
Paso7-Fin_algoritmo_rea_tringulo.
Diagrama de flujo:
4. Definicin y explicacin del mtodo de ordenacin
por burbuja. Ventajas y desventajas.
El ordenamiento es uno de los procesos ms comunes y tiles en el procesamiento de datos, es la
clasificacin u ordenacin de los mismos. La colocacin en orden de una lista de valores se le llama
ordenacin. Por ejemplo, se podra disponer de una lista de valores numricos en orden ascendente o
descendente, o bien una lista de nombres en orden alfabtico.
El mtodo de ordenacin por burbuja es el mas conocido y popular entre estudiantes y aprendices
de programacin.
Este mtodo se basa en la ordenacin por cambios de elementos, ya que se van comparando de dos en dos
los elementos de la tabla (vector). Si nosotros deseamos ordenar dicha tabla de menor a mayor (ascendente)
al realizar la comparacin entre dos elementos se produce el intercambio en el momento en que el primer
elemento es mayor que el segundo. De esta forma los elementos ms grandes pasan a estar en el ltimo
lugar de la tabla. El elemento sube por la tabla al igual que una burbuja en un recipiente, de ah proviene su
nombre.
La tcnica consiste en hacer varias pasadas a travs de la tabla, en cada pasada se comparan parejas
sucesivas de elementos. Si una pareja esta en orden creciente (o los valores son idnticos), se dejan los
valores como estn. Si una pareja esta en orden decreciente, sus valores se intercambian en la tabla.
Supongamos que tenemos una tabla de un total de 50 elementos y que desde un principio esta ordenada,
pero eso nosotros no lo sabemos, por lo que sometemos la tabla a una ordenacin. Como te puedes imaginar
el programa esta empleando un tiempo que nos puede ser til, para realizar cualquier otro calculo dentro de la
aplicacin. Piensa que con una tabla de 50 elementos el programa pasara por el bucle principal 49 veces.
Podemos ver que es un mtodo un poco rudimentario y un poco largo segn el caso.
Este mtodo dentro de lo sencillo, es que nos permite una mejora. Esta mejora consiste en terminar el bucle
principal en el momento en el que detectemos que en una pasada, por todo lo largo de la tabla no ha habido
ningn cambio, esto quiere decir que la tabla esta completamente ordenada.
Ventaja:
Este mtodo es fcil de comprender, programar y es el ms extendido.
Desventaja:
Su desventaja principal, es uno de los menos eficientes y por ello, normalmente, se aprende su tcnica pero
no se utiliza.
5. Definicin y explicacin de los mtodos de bsqueda
secuencial y binaria. Diferencias, ventajas y desventajas
entre ambos.
La bsqueda es una operacin que tiene por objeto la localizacin de un elemento dentro de la estructura de
datos. A menudo un programador estar trabajando con grandes cantidades de datos almacenados en
arreglos y pudiera resultar necesario determinar si un arreglo contiene un valor que coincide con algn valor
clave o buscado.
Siendo el array de una dimensin o lista una estructura de acceso directo y a su vez de acceso secuencial,
encontramos dos tcnicas que utilizan estos dos mtodos de acceso, para encontrar elementos dentro de un
array: Bsqueda secuencial y bsqueda binaria.
Bsqueda secuencial:
La bsqueda secuencial, tambin se le conoce como bsqueda lineal.
Supongamos una coleccin de registros organizados como una lista lineal. El algoritmo bsico de bsqueda
secuencial consiste en empezar al inicio de la lista e ir a travs de cada registro hasta encontrar la clave
indicada (k) o hasta el final de la lista.
Este mtodo consiste en recorrer el arreglo o vector elemento a elemento e ir comparando con el valor
buscado (clave). Se empieza con la primera casilla del vector y se observa una casilla tras otra hasta que se
encuentre el elemento buscado o se han visto todas las casillas. El resultado de la bsqueda es un solo valor,
y ser la posicin del elemento buscado o cero. Dado que el vector o arreglo no esta en ningn orden en
particular, existe la misma probabilidad de que el valor se encuentra ya se en el primer elemento, como en el
ultimo. Por lo tanto, en promedio, el programa tendr que comparar el valor buscado con la mitad de los
elementos del vector.
El mtodo de bsqueda lineal funciona bien con arreglos pequeos o para arreglos no ordenados.
Ventaja:
Es un mtodo sumamente simple que resulta til cuando se tiene un conjunto de datos pequeos
(Hasta aproximadamente 500 elementos)
Es fcil adaptar la bsqueda secuencial para que utilice una lista enlazada ordenada, lo que hace la
bsqueda ms eficaz.
Si los datos buscados no estn en orden es el nico mtodo que puede emplearse para hacer dichas
bsquedas.
Desventaja:
Este mtodo tiende hacer muy lento.
Si los valores de la clave no son nicos, para encontrar todos los elementos con una clave particular,
se requiere buscar en todo el arreglo, lo que hace el proceso muy largo.
Bsqueda Binaria:
La bsqueda binaria es el mtodo, donde si el arreglo o vector esta bien ordenado, se reduce sucesivamente
la operacin eliminando repetidas veces la mitad de la lista restante.
El proceso comienza comparando el elemento central del arreglo con el elemento buscado. Si ambos
coinciden finaliza la bsqueda. Si no ocurre as, el elemento buscado ser mayor o menor en sentido estricto
que el elemento central del arreglo. Si el elemento buscado es mayor se procede a hacer bsqueda binaria en
el subarray superior, si el elemento buscado es menor que el contenido de la casilla central, se debe cambiar
el segmento a considerar al segmento que est a la izquierda de tal sitio central.
Este mtodo se puede aplicar tanto a datos en listas lineales como en rboles binarios de bsqueda. Los pre
requisitos para la bsqueda binaria son:
La lista debe estar ordenada, en un orden especifico de acuerdo al valor de la clave.
Debe conocerse el nmero de elementos.
Si el conjunto de elementos es grande, el tiempo de bsqueda se puede reducir utilizando el siguiente
algoritmo de tipo divide y vencers:
1.
Se divide el elemento en dos partes.
2.
Se determina la parte que debe contener la clave buscada.
3.
Se repite el proceso en esa parte.
Una forma razonable de dividir el conjunto de elementos es mantener los elementos ordenados y despus
utilizar los ndices del arreglo ordenado para determinar la parte del arreglo sobre la que se va a trabajar.
Ventajas:
Se puede aplicar tanto a datos en listas lineales como en rboles binarios de bsqueda.
Es el mtodo ms eficiente para encontrar elementos en un arreglo ordenado.
Desventajas:
Este mtodo funciona solamente con arreglos ordenados, por lo cual si nos encontramos con arreglos que no
estn en orden, este mtodo, no nos ayudara en nada.
Diferencias entre ambos mtodos:
En el caso del mtodo de bsqueda binaria, los arreglos deben estar nicamente ordenados, como se planteo
anteriormente, por su parte el mtodo de bsqueda secuencial o lineal, puede emplearse tanto en arreglos
pequeos, como en aquellos que no estn ordenados.
En segundo orden, podemos ver que el mtodo de bsqueda binaria, es el mtodo ms eficiente para
encontrar elementos en un arreglo ordenado, lo contrario sucede con el mtodo de bsqueda secuencial ya
que este es muy lento, pero si los datos no estn en orden es el nico mtodo que puede emplearse para
hacer las bsquedas.
Conclusin:
En la actualidad los diagramas de flujo son considerados en la mayora de las empresas o departamentos
de sistemas como uno de los principales instrumentos en la realizacin de cualquier mtodo o sistema.
Su utilizacin en estos mbitos es tan importante, debido a que permiten la visualizacin de las actividades
innecesarios y verifica si la distribucin del trabajo est equilibrada, o sea, bien distribuida en las personas, sin
sobrecargo para algunas mientras que otros trabajan con mucha holgura.
En cuanto a la tcnica de ordenacin por el mtodo de burbuja, queda claro que la tcnica mejor usada para
dicho mtodo, consiste en hacer varias pasadas a travs del array. En cada pasada, se comparan parejas
sucesivas de elementos. Si una pareja est en orden creciente (o los valores son idnticos), se dejan los
valores como estn. Si una pareja est en orden decreciente, sus valores se intercambian en el array.
Para el mtodo de bsqueda Binaria, lo prerrequisitos principales para dicha bsqueda son:
La lista debe estar ordenada en un orden especfico de acuerdo al valor de la clave (elemento a
buscar).
Debe conocerse el nmero de elementos.
La bsqueda secuencial tambin la podemos conocer o encontrar con el termino de "Bsqueda Lineal".
Este mtodo de bsqueda es muy lento, pero si los datos no estn en el orden es el nico mtodo que puede
emplearse para hacer las bsquedas.
Es fcil adaptar la bsqueda secuencial para que utilice una lista enlazada ordenada, lo que hace la bsqueda
ms eficaz. Es fcil mantener el orden insertando cada registro en el lugar donde termina una bsqueda
sin xito y cada bsqueda termina cuando se encuentra un registro con una clave no menor que la clave de
bsqueda.
Recomendaciones:
1.
Los diagramas de flujo le ayudan en la definicin, formulacin, anlisis, y solucin del problema.
2.
El diagrama de flujo le ayudara con el anlisis a comprender el sistema de informacin de acuerdo
con las operaciones de procedimientos, ayudara a analizar esas etapas con el fin tanto de mejorarlas,
como de incrementar la existencia de sistemas de informacin para la administracin.
3.
En el mtodo de ordenacin por burbuja, si al terminar el bucle principal en el momento que se
detecte que en una pasada por todo lo largo de la tabla no ha habido ningn cambio esto le indicara que
la tabla est completamente ordenada.
Se divide el elemento en 2 partes.
Se determina la parte que debe contener la clave buscada.
Se repite el proceso en esa parte.
4.
En el mtodo de bsqueda binaria, si el conjunto de elementos es grande, se recomienda utilizar el
siguiente algoritmo de tipo divide y vencers, para reducir su tiempo de bsqueda:
5.
Para que el mtodo de bsqueda secuencial resulte sumamente til se recomienda hacer lo
siguiente:
Almacenar todo los elementos en un arreglo o lista.
Insertar cada elemento al final del arreglo o lita
Recorrer o iterar sobre el arreglo o lista hasta conseguir el elemento requerido.
Bibliografa:
INFORMTICA.
Wilson T. Price
Merritt Collage
Oakland, California
Nueva Editorial:
Interamericana S.A. de C.V.
Mxico, D.F. 1985
Tercera edicin
METODOLOGA DE LA PROGRAMACIN
Lus Joyanes Aguilar
Libros McGRAW-HILL de Mxico. S.A. de C.V.
Primera edicin en espaol.
[Link]
[Link]
Leer ms: [Link]
Viscosidad de los aceites
Los aceites presentan notables diferencias en su grado de viscosidad o fluidez, influyendo
mucho estas diferencias en algunas de sus aplicaciones. El grado de viscosidad de los
aceites tiene importancia en los aceites destinados a arder y los utilizados como lubricantes.
En los primeros influye la viscosidad de modo que los aceites fluidos ascienden fcilmente
por capilaridad en las mechas de las lmparas, mientras que los muy viscoso o poco fluidos
requieren disposiciones especiales para conseguir que llegue a la llama en la unidad de
tiempo suficiente cantidad de combustible. Cuando se emplea aceites como lubricantes, la
materia grasa debe tener consistencia apropiada para impedir el contacto inmediato de las
superficies que frotan entre s impidiendo con ello se desgaste; para lograr esto conviene
que la materia grasa no sea demasiado fluida ni tampoco demasiado viscosa.
Sistemas Unidades
S.I.: N.s / m2 = Kg / m.s
C.G.S.: g /cm.s = Poise
S.B.G.: slug / [Link]
S.I.I.: [Link] / ft2
CLASIFICACIN DE LOS ACEITES
La clasificacin de los aceites atendiendo a su velocidad ,generan en la etiqueta de los
envases una serie de siglas , acompaados por unos dgitos , identificando el grado de
viscosidad del lubricante , qu se refiere a su temperatura sin aadir datos alguno de sobre
atrs apreciaciones o condiciones. El ndice de viscosidad representa la tendencia ms o
menos que se espera a medida que se enfra o se calienta. Los aceites multigrado con base
sintticos se obtienen haciendo una mezcla de aceites de sntesis de baja graduacin SAE y
de aceites mineral de altas viscosidad.
La Organizacin de Estandarizacin Internacional ISO , estableci su ordenacin para los
lubricantes de aplicacin industrial , o a la Sociedad de Ingenieros de Automocin -Society
of Automotive Engineers- (SAE) de los Estados Unidos , creo su escala de denominacin
para definir rangos de viscosidad en lo lubricantes de automviles
Clasificacin SAE:
La Sociedad de Ingenieros de Automotores de [Link].(SAE) clasific a los aceites segn
su viscosidad adoptando como temperatura de referencia 100 grado centgrado y
manteniendo la viscosidad en centistoke (cst). Se dividi el rango total de viscosidades de
los aceites en grupos arbitrarios designados por los siguientes nmeros: 20, 30, 40 y 50,
originalmente existi un grado 60 que luego fue suprimido.
Esta clasificacin no tuvo en cuenta que un aceite SAE 20 en condiciones de baja
temperatura aumentaba considerablemente su viscosidad no siendo apto para una operacin
correcta en climas fros. Surgen as los aceites tipo W (winter: invierno) que cubriran esta
deficiencia. Se ampli entonces la clasificacin incorporando los grados SAE 5W, SAE
10W, SAE 20W a los ya existentes.
Estas primeras clasificaciones slo tomaron en cuenta la viscosidad del aceite,
posteriormente con el advenimiento de los aditivos mejoradores se incorporan siglas que
caracterizan al aceite tambin por sus propiedades especificas (ejemplo: HD SAE 30, SAE
20 S1, etc.) como tener capacidad detergente-dispersante, propiedades antidesgaste,
propiedades anticorrosivas, etc.
Clasificacin SAE de viscosidad de aceites para motor (SAE J306, DIC 96)
Gr
ad
o
SA
E
Visco
sidad
Max.
(cP)
Arran
que
en
fro a
la
tempe
ratura
indica
da en
C
Visco
sidad
Max.
(cP)
Bom
beo a
baja
temp.
s/esfu
erzo
de
fluen
cia a
la
Temp
.
indic
ada
en C
Visco
sidad
en
cSt
@
100
C
Viscosidad
alta
temperatura
alta tasa de
corte (cP) a
150C y 106s
M M
in ax
. .
0 3250
W a -30
6000 3
0a , -40 8
5 3500
W a -25
6000 3
0a , -35 8
10 3500
W a -20
6000 4
0a , -25 1
15 3500
W a -15
6000 5
0a , -25 6
20 4500 6000 5 W a -10 0 a ,
-20 6
25 6000
W a -5
20
30
40
40
50
60
6000 9
0a , -15 3
5,6
meno
r que
9,3
2,6
9,3
meno
r que
12,5
2,9
12,5
meno
r que
16,3
2,9
(*)
12,5
meno 3,7
r que (**)
16,3
16,3
meno
r que
21,9
3,7
21,9
meno
r que
26,1
3,7
Nota: 1 cP = 1 mPa x s; 1cSt = 1 mm2/s
(*) Los Grados 0w/40, 5w/40, 10w/40
(**) Los Grados 15w/40, 20w/40, 25w/40, 40
Aceites multigrado
Con el uso de aditivos mejoradores de ndice de viscosidad y partiendo de bases refinadas
es posible formular aceites cuya viscosidad a altas y bajas temperaturas le permiten cumplir
con los requerimientos del servicio. De esta manera se obtienen aceites de caractersticas
SAE 30 a 100 c y SAE 10W a -20c, son los denominados multigrado generalmente
designados SAE 10W30 o similares.
Las ventajas de usar aceites multigrados son:
Facilidad de arranque en fro.
Rpida entrada en rgimen trmico del motor.
Ahorro de bateras y sistemas de arranque.
Adecuada viscosidad en todo el rango de temperatura.
Clasificacin de viscosidad ISO para industriales aceites lubricantes
A lo largo del tiempo se ha adoptado diferentes siglas (ASTM, DIN, etc. ) para clasificar
los Aceites Lubricantes Industriales por su viscosidad medida en diversas unidades,
llevando a la necesidad del uso de tablas de conversin para pasar de un sistema a otro.
Esta situacin gener en los Institutos de Normalizacin de los piases miembros de la
Organizacin Internacional de Estandarizacin (ISO) el deseo de uniformar criterios para
crear un nico sistema de clasificacin.
Sistema ISO de clasificacin segn la viscosidad para aceites industriales
Lmites de Viscosidad
Viscosi Cinemtica en cSt @
Grado
40 C
dad
de
Cinem
viscosi
tica
dad
media
Mni Mxi
ma ma
ISO
VG 2
2,2
1.98 2,42
ISO
VG 3
3,2
2,88 3,52
ISO
VG 5
4,6
4,14 5,03
ISO
VG 7
6,8
6,12 7,48
ISO
VG 10
10,0
9,00 11,00
ISO
VG 15
15,0
13,50 16,50
ISO
VG 22
22,0
19,80 24,20
ISO
VG 32
32,0
28,80 35,20
ISO
VG 46
46,0
41,40 0,60
ISO
VG 68
68,0
61,20 74,80
ISO
VG
100,0 90,00 110,0
100
ISO
VG
150
150,0
135,0 165,0
0
0
ISO
VG
220
220,0
198,0 242,0
0
0
ISO
VG
320
320,0
288,0 352,0
0
0
ISO
VG
460
460,0
414,0 506,0
0
0
ISO
VG
680
680,0
612,0 748,0
0
0
ISO
900,0 1100,
VG 1.000,0
0
00
1.000
ISO
1.350 1650,
VG 1.500,0
,00 00
1.500
Nota: La clasificacin ISO corresponde a la norma COVENIN 1121
Este esfuerzo conjunto permiti el nacimiento de la clasificacin ISO para Aceites
Lubricantes Industriales, con las siguientes caractersticas:
Posee 18 grados de viscosidad entre 2 y1500 centistokes (cst) a 40 c, cubriendo la
totalidad del rango de viscosidad, desde los aceites ms livianos a los mas pesados.
Cada grupo se designa el nmero a su viscosidad cinemtica media.
Cada grupo representa un intervalo de viscosidad generado apartar de su viscosidad
cinemtica media +/- 10% de este valor.
Cada viscosidad cinemtica media es aproximadamente 50% mayor a la
correspondiente al grado anterior.
Sistema de clasificacin API
Motores a gasolina Algunas designaciones son: SA, SB, SC, SD, SE, SF, SG, SH. El
primero usado para motores a gasolina y Diesel.
Clasificacin API (Instituto de Petrleo Americano) de calidad de los aceites para
motor
Descripcin de
Serv
Clasific
los fabricantes de
icio
acin de Gaso
equipos y
API
servicio lina
especificaciones
previ
API
militares
o
relacionadas
Gasolina
SA
ML
Aceite mineral
puro
SB
MM
SC
MS
(1964)
Aceite
inhibid
o
(1930)
Garant
a de
servici
o para
motore
sa
gasolin
a
(19641967)
SD
SE
SF
MS
(1968)
Garant
a de
servici
o para
motore
sa
gasolin
a
(19681971)
Garant
a de
servici
o para
motore
sa
gasolin
a
(19721980)/
MIL-L46152
y MILL46152
A
Garant
a de
servici
o para
motore
sa
gasolin
a
(19801988)/
MIL-L46152
B
SG
Garant
a de
servici
o para
motore
sa
gasolin
a
(19891992)/
MIL-L46152
D
SH
Garant
a de
servici
o para
motore
sa
gasolin
a
(199319996)
SJ
Garant
a de
servici
o para
motore
sa
gasolin
a
(19962000)
SL
Garant
a de
servici
o para
motore
sa
gasolin
a
(2001)
ALGUNOS DE LOS MEDIDORES DE VISCOSIDAD CONOCIDOS
Viscosmetro
Es un instrumento para medir la viscosidad de un fluido
Viscosmetro de tubo capilar
Consiste en 2 recipientes conectados por un tubo largo de dimetro pequeo conocido
como tubo capilar. Conforme al fluido fluye a travs del tubo con una velocidad ctte. el
sistema pierde energa, ocasionando una cada de presin. La magnitud de la cada de
presin est relacionada con la viscosidad del fluido mediante la siguiente ecuacin:
El viscosmetro Saybolt:
La facilidad con que un fluido fluye a travs de un orificio de dimetro pequeo es una
indicacin de su viscosidad , este es el principio por el cual est basado el viscosmetro
universal.
La muestra del fluido se coloca en el aparato despus de que se establece el flujo se mide el
tiempo requerido para colectar 60 ml. de fluido. El tiempo resultante se reparta como la
velocidad del fluido en segundos universales de Saybolt. La expresin aproximada entre
viscosidad y segundos Saybolt es:
se expresa en stokes y t en segundos.
Viscosmetro de Oswald- cannon-Fenske:
En esencial el viscosmetro es un tubo U una de sus ramas es un tubo capilar fino
conectado a un deposito superior. El tubo se mantiene en posicin vertical y se coloca una
cantidad conocida del fluido l deposito para que luego fluya por gravedad a travs de un
capilar. Los procedimientos exactos para llevar acabo estas pruebas estndar dado en los
estndar de la American Society For Testing and Materials.
Viscosmetro de cilindro concntrico
Por medio de un cilindro que gira a una cierta velocidad con respecto a un cilindro interno
concntrico estacionario se determina du/dy al medir el momento de torsin sobre el
cilindro estacionario es posible calcular el esfuerzo cortante. El cociente entre el esfuerzo
cortante y el cambio de velocidad expresa la viscosidad.
Si la velocidad de rotacin es N rpm y el radio es r2 , la velocidad del fluido en la
superficie del cilindro externo esta dada por 2r2N/60. Con una separacin entre cilindro y
cilindro
La ecuacin se basa en b<< r2. El momento de torsin Tc sobre el cilindro interno se mide
con un alambre de torsin del cual pende el cilindro. Si se ajusta un disco al alambre su
rotacin es determinada por una aguja fija. Si se desprecia el momento de torsin debido al
fluido por abajo del fondo del cilindro interno el esfuerzo cortante es:
De esta manera la ecuacin para la viscosidad nos queda:
Viscosmetro de cada libre
Consiste en varios tubos llenos con lquido estandares de viscosidades conocidas con una
esfera de acero en cada tubo. El tiempo necesario para que la esfera recorra la longitud total
del tubo depende de la viscosidad del lquido. Si se coloca la muestra en un tubo anlogo es
posible aproximar el valor de la viscosidad por comparacin con los otros tubos.
Para esta practica utilizaremos el mtodo de STOKES para la obtencin de la viscosidad.
Sr. Jeorge Grabiel Stokes Matemtico y Fsico Irlands Bornat. Skreen 1819. Autor de
trabajos en Hidrodinmica, encontr la Ley que rige la cada de slidos esfricos en el seno
de un fluido denominada con su nombre.
Stokes
Smbolo st; Es una unidad de la viscosidad cinemtica de un fluido que tenga una
viscosidad dinmica de 1 poise, y una densidad de 1 gramo por centmetro cbico.
4. PROCEDIMIENTO EXPERIMENTAL
Se coloca la esfera en el pasador horizontal del tubo.
Se sumerge cuidadosamente el pasador.
Se deja descender libremente la esfera, cuidando que no roce las paredes del tubo y
Cuando la esfera pase por la referencia indicada, se acciona el cronmetro
Una vez que la esfera pase por la segunda referencia indicada, se detiene el cronmetro
y se toma nota del tiempo empleado.
Se repite la operacin anterior 10 veces por cada aceite empleado en la practica.
Compare los valores da las distintas viscosidades experimental con el obtenido
mediante la bibliografa y los respectivo errores porcentuales obtenido.
SAE 20W-50
SAE 15W- SAE 10W40
30
N X(mts)
T
X
T
X
T
(Seg) (mts) (Seg) (mts) (Seg)
0.3
46.09 0.3 21.29 0.3 13.53
0.3
46.95 0.3 20.26 0.3 13.97
0.3
46.50 0.3 20.60 0.3 13.98
0.3
47.58 0.3 20.80 0.3 13.40
0.3
46.44 0.3 20.02 0.3 13.59
0.3
46.54 0.3 20.80 0.3 13.93
0.3
48.32 0.3 20.44 0.3 13.81
0.3
48.22 0.3 20.29 0.3 13.60
0.3
47.01 0.3 20.37 0.3 13.62
10
0.3
46.77 0.3 20.38 0.3 13.53
5. DESCRIPCIN DE EQUIPOS E INSTRUMENTOS UTILIZADOS
Esfera: Es de un radio moderadamente pequeo, sin mucho peso y de una superficie
totalmente lisa. De 14 mm dimetro.
3 esferas de: Dimetro = 140.02 mm, y masas:
Esfera 1 = 1.43680.0001
Esfera 2 = 1.46790.0001 g.
Esfera 3 = 1.44500.0001 g.
Tubo: Es de vidrio en forma de cilindro alargado con un dimetro tres (3) veces mayor,
aproximadamente, que el de la esfera. Superficie totalmente lisa, posee un extremo cerrado
y uno abierto.
Cronmetro digital: Es un instrumento utilizado para medir los diferentes tiempos de
recorrido de la esfera en el fluido.
Apreciacin:
Marca: Casio.
Aceite: 3 aceites multigrados de viscosidades:
SAE 20W50
SAE 15W40
SAE 10W30
Metro: instrumento para medir la distancia o intervalo que tiene la esfera.
Apreciacin : 1 mm.
RESULTADOS
Mediciones Directas
En la tabla 1 se presentan las lecturas directas y en la tabla 2 las mediciones directas
realizadas en el laboratorio: estas medidas son el tiempo requerido de las distintas esfera en
la referencia indicada en la practica.
Tabla 1: Lecturas Directas
Tubo 1
Tubo 2
Tubo 3
x 10-3
(mts)
14
14
14
m x 10-3
(kg)
1.4368
1.4679
1.4450
Aceite (kg /
mts3)
875
860
870
Tipo de
Aceite
SAE
SAE
SAE
20W-50 15W-40 10W-30
Tabla 2: Mediciones Directas
Temperatura del aceite: 30 C
Gravedad: 9.8 m/seg2
Clculos Intermedios
Con los valores de tiempo y la distancia indicada en la practica se puede calcular las
diferentes viscosidades experimental y los resultados se muestra en la Tabla 3.
Tabla 3: Viscosidad Experimental
SAE 20W- SAE 15W- SAE 10W50
40
30
46.0 2.0498 21.2 1.2243 13.5 0.6532
9
1
9
7
3
6
46.9 2.0880 20.2 1.1651 13.9 0.6745
5
5
6
3
7
0
46.5 2.0680 20.6 1.1846 13.9 0.6749
0
4
0
9
8
9
47.5 2.1160 20.8 1.1961 13.4 0.6469
8
7
0
9
0
8
46.4 2.0653 20.0 1.1513 13.5 0.6561
4
7
2
3
9
6
46.5 2.0698 20.8 1.1961 13.9 0.6725
4
2
0
9
3
7
48.3 2.1489 20.4 1.1754 13.8 0.6667
2
8
4
8
1
8
48.2 2.1445 20.2 1.1668 13.6 0.6566
2
4
9
6
0
4
47.0 2.0907 20.3 1.1714 13.6 0.6576
1
2
7
6
2
1
10 46.7 2.0800 20.3 1.1720 13.5 0.6532
T (Seg)= tiempo
(Pa.s)= Viscosidad experimental
para cada viscosidad experimental se calcula para cada aceite su error porcentual. La
bibliografa Streeter presenta la siguiente viscosidad dinmica terica de los distintos
aceites aplicado en la practica y es mostrado en la tabla 4.
Tabla 4: Viscosidad terica
terica
SAE
20W-50
SAE
15W-40
SAE
10W-30
(Pa.s)
2.168
1.298
0.723
En la tabla 5 se muestra las distintos error porcentuales obtenido de cada viscosidad
experimental
Error( %)=
Tabla5: Error porcentual
SAE 20W- SAE 15W50
40
E%
E%
SAE 10W30
E%
2.0498
1.2243
0.6532
5.45
5.67
9.64
1
7
6
2 2.0880 3.68 1.1651 10.2 0.6745 6.70
2.0680
1.1846
0.6749
4.61
8.72
6.64
4
9
9
2.1160
1.1961
0.6469 10.2
2.39
7.84
7
9
8
3
2.0653
1.1513 11.2 0.6561
4.71
9.24
7
3
9
6
2.0698
1.1961
0.6725
4.52
7.84
6..97
2
9
7
2.1489
1.1754
0.6667
0.87
9.43
7.77
8
8
8
2.1445
1.1668
0.6566
1.08
9.74
9.17
4
6
4
2.0907 3..5 1.1714
0.6576
9.70
9.04
2
6
6
1
10
2.0800
1.1720
0.6532
4.05
9.70
9.64
5
3
6
(Pa.s)= Viscosidad experimental
6.3. Presentacin de Resultados
Utilizando los datos de la Tabla 3, se calcula la viscosidad promedio de cada aceite en el
cual esta mostrada en la Tabla 6
Tabla 6: Viscosidad Experimental Promedio
promedio
(Pa.s)
SAE
SAE
20W-50 15W-40
SAE
10W-30
2.092145 1.18037 0.659275
Finalmente con la Tabla 5 se calcula los diferentes errores porcentuales promedio obtenido
para cada aceite ser mostrada en la Tabla 7
Tabla 7: Error porcentual Experimental
Aceite
SAE
20W-50
SAE
15W-40
SAE
10W-30
Error
3.49%
9.01%
8.50%
7. CONCLUSIONES
la experiencia presento un margen de error aceptable, al comparar las viscosidades
experimentales con las viscosidades tericas suministrada por los fabricantes.
La viscosidad dinmica experimental a temperatura 30C utilizando el mtodo
Stokes es 0.65927 Pa.s para el SAE 10W-30; 1.18037 Pa.s para el SAE 15W-40 y
2.09214 Pa.s SAE 20W-50. valores que son similares a los suministrados de la
bibliografa.
Segn los resultados obtenidos para la viscosidad experimental podemos deducir
que el mtodo empleado (Stokes) para su determinacin resulta un tanto efectivo,
ya que los errores obtenidos son relativamente aceptables y sencillo para determinar
la viscosidad dinmica de un fluido.