martes, 30 de septiembre de 2014

Algoritmo Convetir de Hexadecimal a Decimal



  En ocasiones tenemos la necesidad de realizar una conversión de un número que se encuentra en base 16 o sea en hexadecimal a nuestro sistema numérico decimal y puede que el lenguaje de programación en el cual estamos desarrollando no tenga la implementación de algún método para realizarlo y pues tenemos que hacer nuestro propio método o función.


  Siguiendo los lineamiento de como hacerla conversión he tenido a bien dejarles el siguiente algoritmo de PSeint.



 Algoritmo:

Proceso HexaToDec
                Definir respuesta Como Caracter;
                respuesta<-'s';
               
                mientras (respuesta='s') Hacer
                               borrar pantalla;
                               escribir 'Numero Hexadecimal a convertir: ';
                               leer nHexa;
                                                              
                               nDigitos<-longitud(nHexa);
                               nDecimal<-0;
                               para i<-1 hasta nDigitos con paso 1
                                               //Digito<-'';
                                               Digito <- MAYUSCULAS(subCadena(nHexa,i,i));
                                              
                                               segun Digito
                                                               'A':
                                                                              numerador<-10;
                                                               'B':
                                                                              numerador<-11;
                                                               'C':
                                                                              numerador<-12;
                                                               'D':
                                                                              numerador<-13;
                                                               'E':
                                                                              numerador<-14;
                                                               'F':
                                                                              numerador<-15;
                                                               De Otro Modo:
                                                                             
                                                               numerador<-convertirAnumero(Digito);
                                                                             
                                               FinSegun
                                                                                             
                                               DigitoXBase16<-numerador*16^(nDigitos-i);
                                               nDecimal<-nDecimal+DigitoXBase16;                                          
                                              
                                               escribir Digito,'*16^',nDigitos-i, ' = ', DigitoXBase16;
                                              
                               FinPara
                               nHexaM<-MAYUSCULAS(nHexa);
                               escribir 'El número ', nHexaM, ' Hexadecimal en Decimal es: ', nDecimal;
                               escribir '¿ DESEA REALIZAR UNA CONVERSIÓN MÁS ?';
                               leer respuesta;
                FinMientras
               
FinProceso

lunes, 29 de septiembre de 2014

Área y perimetro triángulo



  Área y perímetro de triángulos es un pequeño algoritmo que plantea la identificación de que tipo de triangulo es, mediante la comparación de sus lados y arrojando como resultado el a´rea y perímetro cualquier comentario error favor dejarlo comentado o enviarme mensaje por todo gracias.

Algoritmo:

Proceso triángulos
                definir perimetro,A,B,C Como Entero;
                definir h,sP,area Como Real;
                definir respuesta como Caracter;
               
                repetir
                               Limpiar Pantalla;
                               Escribir "LADO A: ";
                               leer A;
                               Escribir "LADO B: ";
                               leer B;
                               Escribir "LADO C: ";
                               leer C;
                               perimetro=A+B+C;
                               Si ( A==B Y C==A) Entonces
                                               area=(raiz(3)/4)*A^2;
                                               Escribir "TRIANGULO EQUILATERO ";
                                               Escribir "PERIMETRO = ",A," + ",B," + ",C," = ",perimetro," unidades lineales";
                                               Escribir "AREA = ",area," unidades cuadradas";
                               Fin Si
                              
                               Si ((B==C Y(A<>B Y A<>C))o(A==C Y(B<>A Y B<>C))o(A==B Y(C<>A Y C<>B))) Entonces
                                               si(B==C)
                                                               SI(((B^2)-(A)^2)>0)
                                                                              h=raiz((B^2)-(A)^2);
                                                                              area=A*h/2;
                                                                              Escribir "TRIANGULO ISOCELES";
                                                                              Escribir "PERIMETRO = ",A," + ",B," + ",C," = ",perimetro," unidades lineales";
                                                                              Escribir "AREA = ",area," unidades cuadradas";
                                                               Sino
                                                                              Escribir "LADOS INCONGRUENTES";
                                                               FinSi
                                               FinSi
                                               si(A==C)
                                                               SI(((A^2)-(B)^2)>0)
                                                                              h=raiz((A^2)-(B)^2);
                                                                              area=B*h/2;
                                                                              Escribir "TRIANGULO ISOCELES";
                                                                              Escribir "PERIMETRO = ",A," + ",B," + ",C," = ",perimetro," unidades lineales";
                                                                              Escribir "AREA = ",area," unidades cuadradas";
                                                               Sino
                                                                              Escribir "LADOS INCONGRUENTES";
                                                               FinSi
                                                              
                                               FinSi
                                               si(A==B)
                                                               SI(((A^2)-(C)^2)>0)
                                                                              h=raiz((A^2)-(C)^2);
                                                                              area=C*h/2;
                                                                              Escribir "TRIANGULO ISOCELES";
                                                                              Escribir "PERIMETRO = ",A," + ",B," + ",C," = ",perimetro," unidades lineales";
                                                                              Escribir "AREA = ",area," unidades cuadradas";
                                                               Sino
                                                                              Escribir "LADOS INCONGRUENTES";
                                                               FinSi
                                               FinSi
                               Fin Si
                              
                               Si (A<>B Y C<>A Y B<>C ) Entonces
                                               sP=perimetro/2;
                                               area=raiz(sP*(sP-A)*(sP-B)*(sP-C));
                                               Escribir "TRIANGULO ESCALENO ";
                                               Escribir "PERIMETRO = ",A," + ",B," + ",C," = ",perimetro," unidades lineales";
                                               Escribir "AREA = ",area," unidades cuadradas";
                               Fin Si
                               Escribir "DESEAS SEGUIR...? n=NO";
                               leer respuesta;
                Hasta Que (respuesta=='N' o respuesta=='n')
FinProceso