ADVERTENCIA: LOS SIGUIENTES ALGORITMO SE ENTREGA "COMO SON" ("AS IS") SiN GARANTIA DE NINGUN TIPO. DEBE REALIZAR LAS VERIFICACIONES CORRESPONDIENTES ANTES DE EMPLEARLOS PARA CUALQUIER FIN. SOLO TIENEN UNA FINALIDAD EDUCATIVA.

viernes, 16 de noviembre de 2012

Ejemplo de Algoritmo que determina el dia de semana al que corresponde una determinada fecha

En el siguiente enlace podrá encontrar el día de semana al que pertenece una fecha en particular, es deciar, si ingresa 16 de noviembre del 2012 devuelve: Viernes


//Basado en Wikipedia
Proceso DeterminaDiaSemana

Definir anio como entero;
Definir mes como entero;
Definir dia Como Entero;
Definir dias como cadena;
Definir w como entero;
Definir c como entero;
Definir dmc como entero;
Definir a como entero;
Definir b como entero;
Definir d como entero;
Definir a1 como entero;
Definir dm como entero;
Definir dml como entero;

Dimension dml[13];
Dimension dm[13];
Dimension dias[7];

Escribir "Ingrese el dia (1-31): ";
Leer dia;

Escribir "Ingrese mes (1-12): ";
Leer mes;

Escribir "Ingrese año: ";
Leer anio;

dm[1] <- 0;
dm[2] <- 3;
dm[3] <- 3;
dm[4] <- 6;
dm[5] <- 1;
dm[6] <- 4;
dm[7] <- 6;
dm[8] <- 2;
dm[9] <- 5;
dm[10] <- 0;
dm[11] <- 3;
dm[12] <- 5;

dml[1] <- 0;
dml[2] <- 3;
dml[3] <- 4;
dml[4] <- 0;
dml[5] <- 2;
dml[6] <- 5;
dml[7] <- 0;
dml[8] <- 3;
dml[9] <- 6;
dml[10] <- 1;
dml[11] <- 4;
dml[12] <- 6;


Si ((anio % 400 = 0)) | ((anio % 4 = 0) &  (anio % 100 > 0)) Entonces
dmc <- dml[mes];
Sino
dmc <- dm[mes];
FinSi




mes <- mes -1;

a1 <- anio - 1;
a <- trunc((a1)/100);
b <- trunc(3*(a+1)/4);
c <- trunc ((a1)/4);
d <-(c-b)%7;


dias[0] <- "Domingo";
dias[1] <- "Lunes";
dias[2] <- "Martes";
dias[3] <- "Miercoles";
dias[4] <- "Jueves";
dias[5] <- "Viernes";
dias[6] <- "Sabado";



w <- (a1%7 + d%7 + dia%7 + dmc%7 )%7;




Escribir "La fecha indicada es del dia ",dias[w];


FinProceso

miércoles, 14 de noviembre de 2012

Ejemplo de Algoritmo en PseInt que realiza la conversión del sistema de numeración decimal al sistema de numeración Maya

Los Mayas fueron una civilización avanzada de Latinoamérica que desarrollaron la ciencia en grandes dimensiones, fueron realmente avanzados, siendo muy conocidos por su calendario. Pero además de la astronomía también desarrollaron la matemática y parte de ella es su sistema de numeración.

Este es un sistema posicional de base 20, es decir, emplea 20 símbolos, siendo una característica llamativa que estos símbolos tienen a su vez una regla de composición de base cinco y aún más interesante el empleo del cero, lo cual demuestra su gran inteligencia. 

Estos eran


se representaba con un caracol

1  .

2 ..

3 ...

4 ....
5 ----

.
----

Además se escribían de arriba a abajo y no como sotros que lo hacemos de izquierda a derecha.


Proceso NumeracionMaya

Definir n como entero;
Definir nm como entero;
Definir i como entero;
Definir len como entero;
Definir tmp como entero;

Dimension nm[1000];


Escribir "Ingrese el numero en decimal";
Leer n;
i <- 0;

Mientras n > 0 Hacer
nm[i] <- n % 20;
n <- n - nm[i];
n <- n / 20;
i <- i+1;
FinMientras

len <- i;

Para i<- len -1 Hasta 0 Con Paso -1 Hacer



Si nm [i] = 0 Entonces
Escribir "caracol";
Sino
Mientras nm[i] > 0 Hacer
tmp <- nm[i]%5;
nm[i] <- nm[i] - tmp;
Si tmp = 0 Entonces
nm[i] <- nm[i] - 5;
FinSi

Segun tmp Hacer
0:
Escribir "-----";
1:
Escribir "  .  ";
2:
Escribir " . . ";
3:
Escribir ". . .";
4:
Escribir "....";


FinSegun
FinMientras
FinSi

Escribir  "  ";
FinPara


FinProceso



Ejemplo de Algoritmo Factorizador de números Enteros de Phollar Rho


Proceso FactorizacionPollard Definir n como entero; Definir x como entero; Definir y como entero; Definir d como entero; Escribir "Ingrese el numero a factorizar:"; Leer n; x <- 2; y <- 2; d <- 1; Mientras d = 1 Hacer x <- PRNG (x); y <- PRNG (PRNG(y)); d <- AlgoritmoEuclidesBinario (ABS(x-y),n) ; FinMientras Si d = n Entonces Escribir "El algoritmo ha fallado"; FinSi Escribir "El numero ",n," es divisible entre ",d; FinProceso SubProceso MCD <- AlgoritmoEuclidesBinario ( u, v ) Definir MCD Como Entero; Definir desplazamiento Como Entero; Definir continuar como logico; Definir temporal como entero; desplazamiento <- 1; Mientras ((u %2 = 0) & (v % 2 = 0)) Hacer u <- u /2; v <- v /2; desplazamiento <- desplazamiento*2; FinMientras continuar <- verdadero; Mientras u % 2 = 0 Hacer u <- u / 2; FinMientras Mientras continuar Hacer Mientras v % 2 = 0 Hacer v <- v / 2; FinMientras Si u > v Entonces temporal <- u; u <- v; v <- temporal; FinSi v <- v - u; Si v = 0 Entonces continuar <- falso; FinSi FinMientras MCD <- desplazamiento*u; FinSubproceso SubProceso aleatorio <- PRNG( x ) Definir aleatorio como entero; aleatorio <- (16807*x + 12345); aleatorio <- aleatorio % 65536; FinSubProceso


Basado en la Wikipedia

Ejempo del Algoritmo Extendido de Euclides


Si tenemos una ecuación diofántica de primer grado tal que su expresión es de la forma a*x + b*y = MCD  (a,b) el Algoritmo Extendido nos permite calcular los valores de las incognitas x e y. A coantinuación se presenta dicho algoritmo en PseInt:

Proceso AlgoritmoExtendidoEuclides
Definir a como entero;
Definir b como entero;
Definir x como entero;
Definir y como entero;
Definir ux Como Entero;;
Definir uy como entero;
Definir cociente como entero;
Definir tmp como entero;
Definir tmpa como entero;
Definir tmpb como entero;
Definir continuar como Logico;
Definir expresion como cadena;

Escribir "De la expresion a*x + b*c = MCD (a,b)";
Escribir "Ingrese a:";
Leer a;

Escribir "Ingrese b:";
Leer b;

tmpa <-a;
tmpb <-b;

x <- 0;
ux <- 1;
y <- 1;
uy <- 0;

continuar <- verdadero;

Mientras continuar Hacer
cociente <- TRUNC (a/b);
tmp <- a;
a <- b;
b <- tmp % b;
tmp <- x;
x <- ux - cociente*x;
ux <- tmp;
tmp <- y;
y <- uy - cociente*y;
uy <- tmp;
Si b = 0 Entonces
continuar <- falso;
FinSi
FinMientras

Escribir ux,"x",tmpa,"+",uy,"x",tmpb,"=",a;


FinProceso

Basado en Wikipedia

Ejemplo de Algoritmo alternativo al de Euclides que calcula el MCD con operaciones binarias


El algoritmo de Euclides permite el calculo del Máximo Común Divisor. Sin embargo, este requiere de que la realización de divisiones, por eso existe el siguiente algoritmo que permite tal calculo sin que se tenga que efectuar tal operación.


Proceso AlgoritmoEuclidesBinario

 Definir u como entero;
 Definir v como entero;
 Definir desplazamiento Como Entero;
    Definir continuar como logico;
 Definir temporal como entero;
 Definir MCD como entero;

 Escribir "Ingrese uno de los numeros de los que calculara el MCD: ";
 Leer u;

 Escribir "Ingrese uno de los numeros de los que calculara el MCD: ";
 Leer v;

 desplazamiento <- 1;



 Mientras ((u %2 = 0) & (v % 2 = 0)) Hacer

  u <- u /2;
  v <- v /2;
  desplazamiento <- desplazamiento*2;

 FinMientras

 continuar <- verdadero;

 Mientras u % 2 = 0 Hacer
u <- u / 2;
 FinMientras


 Mientras continuar Hacer

  Mientras v % 2 = 0 Hacer
   v <- v / 2;
  FinMientras
  Si u > v Entonces
   temporal <- u;
   u <- v;
   v <- temporal;
  FinSi
  v <- v - u;
  Si v = 0 Entonces
   continuar <- falso;
  FinSi
 FinMientras

    MCD <- desplazamiento*u;
 Escribir "El MCD es :",MCD;


FinProceso

Basado en la Wikipeda

martes, 13 de noviembre de 2012

Ejemplo de algoritmo que determina si un numero es primo y lo demuestra



Proceso EsPrimo
Definir n como entero;
Definir suma como entero;
Definir numero_actual como entero;
Definir primo como entero;
Definir rt como real;
Definir div como entero;
Definir cantidad_primos como entero;
Definir divisor como entero;

Escribir "Ingrese el numero: ";
Leer numero_actual;
primo <- 1;
rt <- raiz (numero_actual);

//Si el numero_actual es primo debe tener un divisor menor que su raíz

Para div<- 2 Hasta rt Con Paso 1 Hacer

//Un numero primo solo es divible entre el y 1 por ello si div divide al numero_actual entonces no es primo
Si numero_actual % div = 0 Entonces
primo <- 0;
divisor <- div;
div <- numero_actual;

FinSi
FinPara

Si primo = 1 Entonces
Escribir "El número ",numero_actual," es primo";
Sino
Escribir "El número no es primo porque ",divisor," lo divide";
FinSi


FinProceso

Ejemplo de Algoritmo que calcula la suma de los n primero cuadrados


Proceso SumaNCuadrados
Definir n como entero;
Definir prod como entero;
Definir i como entero;


Escribir "Ingrese la cantidad de numeros: ";
Leer n;
prod <- 0;

Para i<-1 Hasta n Con Paso 1 Hacer
prod <- prod + i*i;
FinPara

Escribir "La suma del cuadrado de los ",n," primeros numeros positivos es: ",prod;

FinProceso

Ejemplo de algoritmo que efectua el Calculo del Promedio po rCategoria

Proceso CalculoPromedioPorCategoria


Definir categorias como entero;
Definir cantidad_elementos como entero;
Definir cantidad_categorias como entero;
Definir promedio como real;
Definir elemnto como real;
Definir nombre_categoria  como cadena;
Definir i como entero;
Definir j como entero;

Escribir "Introduzca cantidad de elementos por categoria";
Leer cantidad_elementos;



Escribir "Ingrese la cantidad de categorias";
Leer cantidad_categorias;

Dimension promedio [cantidad_categorias];
Dimension nombre_categoria[cantidad_categorias];

Dimension categorias[cantidad_categorias,cantidad_elementos];

//El promedio de la categoria es la suma de sus elementos dividido enter su cantidad
//El Por ello hacemos un Para en el que recorremos  a lo elemento de la categoria
//Adicionalmente realizamos un ciclo en ek que recorremos las categorias ya que el ciclo anteior es por ca categoria


Para i<- 1 Hasta cantidad_categorias Con Paso 1 Hacer //Hacemos un ciclo para recorrer las categorias
promedio[i-1] <- 0;
Escribir "Ingrese nombre categoria";
Leer nombre_categoria[i-1];

//En este ciclo vamos sumando en la variable promedio los elementos que vamos recibiendo de la categoria

Para j<- 1 Hasta cantidad_elementos Con Paso 1 Hacer
Escribir "Ingrese valor del elemento ",j," para la categoria ",nombre_categoria[i-1];
Leer elemnto;
promedio[i-1] <- promedio[i-1] +  elemnto;
FinPara

//Calculamos el promedio de la categoria dividiendo su suma almacenada temporalmente en prompedio entre la cantidad de elementos
promedio[i-1] <- promedio[i-1]/cantidad_elementos;

FinPara


//Mostramso los promedios

Para i<- 1 Hasta cantidad_categorias Con Paso 1 Hacer
Escribir "El promedio de la categoria ",nombre_categoria[i-1]," es: ",promedio[i-1];
FinPara

//Fin

FinProceso

lunes, 12 de noviembre de 2012

Ejemplo de algoritmo que calcula el producto de N números enteros positivos


Proceso ProductoNNaturales
Definir n como entero;
Definir prod como entero;
Definir i como entero;


Escribir "Ingrese la cantidad de numeros: ";
Leer n;
prod <- 1;

Para i<-1 Hasta n Con Paso 1 Hacer
prod <- prod * i;
FinPara

Escribir "El producto de los ",n," primeros numeros positivos es: ",prod;

FinProceso

Ejemplo de Algoritmo que calcula suma de numero pares e impares en el rango de 1 a 1000 inclusive


Proceso SumaNumerosParaImpar
Definir mn como entero;
Definir i como entero;
Definir sui como entero;
Definir sp como entero;
Definir paridad como entero;
Definir continuar como logico;

continuar <- verdadero;

Mientras continuar Hacer
Escribir "Escribir ingrese el valor del mayor numero (1-1000): ";
Leer mn;
Si mn > 0 & mn <= 1000 Entonces
continuar <- falso;
Sino
Escribir "El numero mn debe ser mayor a cero y menor o igual a 1000";
FinSi

FinMientras


sp <- 0;
sui <- 0;

Para i <- 1 Hasta mn con paso 1 Hacer
paridad <- i % 2;

Si paridad = 1 Entonces
sui <- sui + i;
Sino
sp <- sp + i;
FinSi


FinPara


Escribir "La suma de los numero pares hasta ",mn," es : ",sp;
Escribir "La suma de los numero impares hasta ",mn," es :",sui;

FinProceso

viernes, 9 de noviembre de 2012

Ejemplo de algoritmo en PseInt para la revisión de la validez del ISBN-13


Proceso checkISBN

 Definir ISBN como cadena;
 Definir multiplicando como entero;
 Definir no_es_numero como Logico;
 Definir continuar como logico;
 Definir suma como entero;
 Definir dig como caracter;
 Definir check como entero;
 Definir check_i como entero;
 Definir i como entero;

 continuar <- verdadero;
 Mientras continuar Hacer



 Escribir "Ingrese ISBN de 13 digitos (solo primeros 12 digitos):";
 Leer ISBN;
 Escribir "Ingrese el ultimo digito";
 Leer check_i;


 Dimension array [12];
 Dimension array_n[12];

 Para i<-0 Hasta 11 Con Paso 1 Hacer
  dig <- Subcadena(ISBN,i,i);
  no_es_numero <- ~(dig = "1" | dig = "2" | dig = "3" | dig = "4" | dig = "5" | dig = "6" | dig = "7" | dig = "8" | dig = "9" |  dig = "0");
  dig <- Subcadena(ISBN,i,i);
  Si no_es_numero Entonces
   Escribir "Error: ",dig," no es numero";
   i <- i + 16;
  FinSi
 FinPara

 Si no_es_numero Entonces
 
  continuar <- verdadero;
 
 Sino
  continuar <- falso;
 
 FinSi

 FinMientras

 multiplicando <- 1;

 suma <- 0;


 Para i<-0 Hasta 12 Con Paso 1 Hacer
  dig <- Subcadena(ISBN,i,i);
  Si dig = "1" Entonces
   suma <- suma + multiplicando;
  FinSi
  Si dig = "2" Entonces
   suma <- suma + 2*multiplicando;
  FinSi
  Si dig = "3" Entonces
   suma <- suma + 3*multiplicando;
  FinSi
  Si dig = "4" Entonces
   suma <- suma + 4*multiplicando;
  FinSi
  Si dig = "5" Entonces
   suma <- suma + 5*multiplicando;
  FinSi
  Si dig = "6" Entonces
   suma <- suma + 6*multiplicando;
  FinSi
  Si dig = "7" Entonces
   suma <- suma + 7*multiplicando;
  FinSi
  Si dig = "8" Entonces
   suma <- suma + 8*multiplicando;
  FinSi
  Si dig = "9" Entonces
   suma <- suma + 9*multiplicando;
  FinSi
  Si multiplicando = 3 Entonces
   multiplicando <- 1;
  Sino
   multiplicando <- 3;
  FinSi
 FinPara

 check <- suma % 10;



 Si 10 - check_i = check Entonces
  Escribir "El ISBN es Valido";
 Sino
  Escribir "El ISBN es invalido \n El utimo digito deberia ser: ", (10 - check_i);
 
 FinSi


FinProceso

martes, 6 de noviembre de 2012

Ejemplo de Algorimo de Ordenamiento Por Inserción por PseInt


Proceso OrdenamientoPorInsercion
Definir elementos como entero;
Definir continuar como logico;
Definir item como entero;
Definir n como entero;
Definir lista como entero;
Definir posicion como entero;
Definir i como entero;
Definir j como entero;

Dimension elementos [1001];

Para i<-0 Hasta 1000 Con Paso 1 Hacer
elementos[i] <- -1;
FinPara
n <- 0;

continuar <- verdadero;

Mientras continuar Hacer
Si n < 1001 Entonces
Escribir "Ingrese elemento ",(n+1)," :";
Leer item;
Si item < 1 Entonces
item <- item*-1;
FinSi
elementos[n] <- item;
n <- n + 1;
Escribir "¿Continuar?: [1] Si [2]No";
Leer item;
Si item = 2 Entonces
continuar <- falso;
FinSi
FinSi
FinMientras

Dimension lista[n];



Para i<-1 Hasta n - 1 Con Paso 1 Hacer




item <- elementos[i];
posicion <- i;

Mientras posicion > 0 & elementos[i - 1] > item Hacer
elementos[posicion] <- elementos[posicion-1];
posicion <- posicion -1;
FinMientras
elementos[posicion] <- item;

FinPara


Para j<-0 Hasta n - 1 Con Paso 1 Hacer
Escribir "Elemento ordenado en ",j," :",elementos[j];
FinPara


FinProceso


Basado en el algoritmo de Ordenamiento por Inserción presentado en : Wikipedia.com 

domingo, 4 de noviembre de 2012

EN PRUEBA: Solucionador de sitemas de ecuaciones lineales

El siguiente script es capaz de solucionar ecuaciones lineales de 3 y 2 incognitas

Advertencia: No se garantiza la fiabilidad de los resultados arrojados por el programa ya que esta en prueba. este programa se entrega como es, sin garantía de ningún tipo.

Si lo usa debe verificar los resultados.

viernes, 2 de noviembre de 2012

Ejemplo de Algoritmo para evaluar expresiones polinomicas (PseInt)


SubProceso potencia <- Elevar ( n, m )
Definir potencia como entero;
Definir i como entero;
potencia <- 1;
Para i <- 1 Hasta m con Paso 1 Hacer
potencia <- potencia*n;
FinPara
FinSubProceso

SubProceso numero <- ANumero (n)
Definir numero como entero;

Si n = "0" Entonces
numero <- 0;
FinSi
Si n = "1" Entonces
numero <- 1;
FinSi
Si n = "2" Entonces
numero <- 2;
FinSi
Si n = "3" Entonces
numero <- 3;
FinSi
Si n = "4" Entonces
numero <- 4;
FinSi
Si n = "5" Entonces
numero <- 5;
FinSi
Si n = "6" Entonces
numero <- 6;
FinSi
Si n = "7" Entonces
numero <- 7;
FinSi
Si n = "8" Entonces
numero <- 8;
FinSi
Si n = "9" Entonces
numero <- 9;
FinSi

FinSubProceso



Proceso CalculaValorPolinomio

Definir coeficientes como entero;
Definir exponentes como entero;
Definir polinomio como cadena;
Definir len como entero;
Definir digito como logico;
Definir numero como entero;
Definir ic como entero;
Definir ie como entero;
Definir sig como entero;
Definir termino como entero;
Definir terminos como entero;
Definir i como entero;
Definir cad como cadena;
Definir resultado como cadena;
Definir resultador como real;
Definir minimo como entero;
Definir maximo como entero;
Definir valortmp como entero;
Definir j como entero;

Escribir "Ingresar un polinomio de coeficientes enteros y exponentes enteros, en orden descendente segun el grado de los terminos. Ejemplo 2*x + 1:";
Leer polinomio;


Dimension coeficientes[1000];
Dimension exponentes[1000];

len <- longitud (polinomio);

digito <- falso;
ic <- 0;
ie <- 0;
sig <- 1;
terminos <- 0;

Para i<- 0 Hasta len - 1 Con Paso 1 Hacer
cad <- SUBCADENA (polinomio,i,i);

Si cad = "0" | cad = "1" | cad = "2" | cad = "3" | cad = "4" | cad = "5" | cad = "6" | cad = "7" | cad = "8" | cad = "9" Entonces
Si digito Entonces
numero <- numero*10 + ANumero (cad);
Sino
digito <- verdadero;
numero <- ANumero(cad);
FinSi
FinSi
Si cad = "x" | cad = "X" Entonces
Si digito Entonces
coeficientes[ic] <- numero*sig;
ic <- ic + 1;
digito <- falso;
Sino
coeficientes[ic] <- sig;
ic <- ic + 1;
digito <- falso;
FinSi

FinSi
Si cad = "+" Entonces
Si digito Entonces
exponentes[ie] <- numero*sig;
ie <- ie + 1;
digito <- falso;
SiNo
exponentes[ie] <- sig;
ie <- ie + 1;
digito <- falso;
FinSi
sig <- 1;
FinSi
Si cad = "-" Entonces
Si digito Entonces
exponentes[ie] <- numero*sig;
ie <- ie + 1;
sig <- 1;
digito <- falso;
SiNo
exponentes[ie] <- sig;
ie <- ie + 1;
digito <- falso;
FinSi
sig <- -1;
FinSi
FinPara

Si digito Entonces
coeficientes[ic] <- numero*sig;
ic <- ic + 1;
digito <- falso;
FinSi

Escribir "Ingrese numero ENTERO correspondiente al valor minimo del rango inclusive: ";
Leer minimo;

Escribir "Ingrese numero ENTERO correspondiente al valor minimo del rango inclusive: ";
Leer maximo;

Para i <-minimo Hasta maximo Con Paso 1 Hacer
resultador <- 0;
Para j <- 0 Hasta ic - 1 Hacer
Si j < ie Entonces
valortmp <- coeficientes[j]*Elevar (i,exponentes[j]);
resultador <- resultador + valortmp;
Sino
resultador <- resultador + coeficientes[j];
FinSi
FinPara
Escribir "Polinomio evaluado en ",i," = ",resultador;

FinPara


FinProceso

Ejemplo de Algoritmo para efectuar una Potencia (PseInt)



Proceso Potencia
Definir potencia como real;
Definir i como entero;
Definir n,m como real;
potencia <- 1;
Escribir "Ingrese la base (entero)";
Leer n;

Escribir "Ingrese el exponente (Numero entero positivo mayor a cero)";
Leer m;

Para i <- 1 Hasta m con Paso 1 Hacer
potencia <- potencia*n;
FinPara
Escribir "Potencia igual a: ", potencia;
FinProceso


Ejemplo de Algoritmo En PseInt Para convertir numeros Romanos en Decimales


Proceso RomanoADecimal
Definir romano como cadena;
Definir long como entero;
Definir i Como Entero;
Definir decimal como entero;
Definir cinco como logico;
Definir cincuenta como Logico;
Definir quinientos como Logico;
Definir mil como Logico;
Definir cien como Logico;
Definir diez como Logico;
Definir car como cadena;
Definir j como entero;

decimal <- 0;

Escribir "Ingrese un numero romano (Mayusculas hasta MMM y Debe ser Valido):";
Leer romano;


mil <- falso;
cien <- falso;
diez <- falso;
cinco <- falso;
cincuenta <- falso;
quinientos <- falso;

long <- longitud (romano);

Dimension car[long];

Para i<-0 Hasta long -1  Con Paso 1 Hacer
car[i] <- subcadena (romano,i,i);
FinPara

Para j<- long - 1 Hasta 0  Con Paso -1 Hacer
Si (car[j] = "I") & (cinco | diez) Entonces
decimal <- decimal - 1;

Sino
Si (car[j] = "I") Entonces
decimal <- decimal + 1;
FinSi
FinSi

Si (car[j] = "X") & (cincuenta | cien) Entonces
decimal <- decimal - 10;
Sino
Si (car[j] = "X") Entonces
decimal <- decimal + 10;
diez <- verdadero;
FinSi
FinSi

Si (car[j] = "C") & (quinientos | mil) Entonces
decimal <- decimal - 100;
Sino
Si (car[j] = "C") Entonces
decimal <- decimal + 100;
diez <- verdadero;
FinSi
FinSi

Si (car[j] = "M") Entonces
decimal <- decimal + 1000;
mil <- verdadero;
FinSi

Si (car[j] = "V")  Entonces
cinco <- verdadero;
decimal <- decimal + 5;
FinSi

Si (car[j] = "L")  Entonces
cincuenta <- verdadero;
decimal <- decimal + 50;
FinSi

Si (car[j] = "D")  Entonces
quinientos <- verdadero;
decimal <- decimal + 500;
FinSi
FinPara

Escribir "El numero decimal e: ",decimal;

FinProceso


Todo el Software presentado en esta página se entregan "Como son" Sin grantía de nungun tipo

Ejemplo de Algoritmo para el calculo del complemento a 2 en PseInt


Proceso ComplementoA2

Definir binario como entero;
Definir res como cadena;
Definir d como cadena;
Definir numero como entero;
Definir gran_binario como entero;
Definir long como entero;
Definir decimal como entero;
Definir digito como entero;
Definir indice como entero;
Definir i como Entero;
Definir nocero como logico;
Definir contador como entero;
Definir da como entero;
Escribir "Ingrese  un numero decimal al cual calcular el complento a 2 en binario: ";
Leer numero;

long <- 0;
gran_binario <- 1;
Mientras numero >= gran_binario Hacer
gran_binario <- gran_binario*2;
long <- long + 1;
FinMientras

Dimension binario [long];
decimal <- numero;
indice <- 0;
Mientras decimal >= 1 Hacer
digito <- decimal % 2;
binario[indice] <- digito;
decimal <- decimal - digito;
decimal <- decimal / 2;
indice <- indice + 1;
FinMientras

gran_binario <- 1;

nocero <- verdadero;
contador <- long - 1;

res <- "";


Para i<- 0 Hasta long - 1 Con Paso 1 Hacer
binario[i] <- (binario[i] + 1) % 2;

FinPara

Para i<- 0 Hasta long - 1 Con Paso 1 Hacer
d <- binario[i];
res <- d + res;
FinPara


Para i<- 0 Hasta long - 1 Con Paso 1 Hacer
da <-  binario[i];
binario[i] <- (binario[i] + 1) % 2;
Si da = 0 Entonces
i <- i + 1000000;
FinSi
FinPara

//Complemento A 2
res <- "";
Para i<- 0 Hasta long - 1 Con Paso 1 Hacer
d <- binario[i];
res <- d + res;
FinPara

Escribir "El complemento a 2 es: ",res;
FinProceso

Ejemplo de Calculo del Complemento a 1 en PseInt


Proceso ComplementoA1

Definir binario como entero;
Definir res como cadena;
Definir d como cadena;
Definir numero como entero;
Definir gran_binario como entero;
Definir long como entero;
Definir decimal como entero;
Definir digito como entero;
Definir indice como entero;
Definir i como Entero;

Escribir "Ingrese  un numero decimal al cual calcular el complento a 1 en binario: ";
Leer numero;


long <- 0;
gran_binario <- 1;
Mientras numero >= gran_binario Hacer
gran_binario <- gran_binario*2;
long <- long + 1;
FinMientras

Dimension binario [long];
decimal <- numero;
indice <- 0;
Mientras decimal >= 1 Hacer
digito <- decimal % 2;
binario[indice] <- digito;
decimal <- decimal - digito;
decimal <- decimal / 2;
indice <- indice + 1;
FinMientras

gran_binario <- 1;

//Complemento A 1
    res <- "";
Para i<- 0 Hasta long - 1 Con Paso 1 Hacer
binario[i] <- (binario[i] + 1) % 2;
d <- binario[i];
res <- d + res;
FinPara

Escribir "El complemento a 1 es: ",res;


FinProceso

Ejemplo de Algoritmo para convertir un numero decimal en binario en PseInt



Proceso DecimalABinario

Definir decimal como real;
Definir gran_binario como entero;
Definir long como entero;
Definir binario como entero;
Definir indice como entero;
Definir digito como entero;
Definir resultado como cadena;
Definir i como entero;
Definir digitocad como cadena;

Escribir "Escriba un numero en deciml para convertirlo en binario: ";
Leer decimal;
gran_binario <- 1;
long <- 0;
Mientras decimal >= gran_binario Hacer
gran_binario <- gran_binario*2;
long <- long + 1;
FinMientras
indice <- 0;

Dimension binario [long];

Mientras decimal >= 1 Hacer
digito <- decimal % 2;
binario[indice] <- digito;
decimal <- decimal - digito;
decimal <- decimal / 2;
indice <- indice + 1;
FinMientras

resultado <- "";

Para i <- 0 Hasta long  - 1 Hacer
digitocad <- binario[i];
resultado <- digitocad + resultado;
FinPara

Escribir "El numero binario es: ",resultado;
FinProceso

Ejemplo de Algoritmo para Invertir Array en PseInt


Proceso InvertirArray
Definir cantidad como entero;
Definir A como Entero;
Definir tmp como entero;
Definir i como entero;
Definir j como entero;

Escribir "Ingrese la cantidad de elementos";

Leer cantidad;

Dimension A[cantidad];

Para i <- 0 Hasta cantidad - 1 Con Paso 1 Hacer
Escribir "Ingrese elemento";
Leer A[i];
FinPara
j<- 0;
Mientras 2*j < cantidad Hacer
tmp <- A[j];
A[j] <- A[cantidad - j - 1];
A[cantidad-1] <- tmp;
j <- j + 1;
FinMientras

Para i <- 0 Hasta cantidad - 1 Con Paso 1 Hacer
Escribir "Elemento ",i," es: ",A[i];
FinPara

FinProceso

martes, 30 de octubre de 2012

Ejemplo de Algoritmo en PseInt para calcular el Producto de Matrices



Proceso ProductoMatrices
Definir i como entero;
Definir j como entero;
Definir m como entero;
Definir n como entero;
Definir columnasA como entero;
Definir columnasB como entero;
Definir filasA como entero;
Definir A como real;
Definir B como real;
Definir C como real;

Escribir "Ingrese numero de columnas en la matriz A (debe ser igual al numero de filas de B):";
Leer columnasA;

Escribir "Ingrese el numero de filas en la matriz A:";
Leer filasA;

Escribir "Ingrese el numero de columans en la matriz B:";
Leer columnasB;

Dimension A [filasA,columnasA];
Dimension B [columnasa,columnasA];

Para i<-0 Hasta filasA - 1 Con Paso 1 Hacer
Para j<- 0 Hasta columnasA - 1 Con Paso 1 Hacer
Escribir "Ingrese elemento A[",i,",",j,"]";
Leer A [i,j];
FinPara
FinPara

Para i<-0 Hasta columnasA - 1 Con Paso 1 Hacer
Para j<- 0 Hasta columnasB - 1 Con Paso 1 Hacer
Escribir "Ingrese elemento B [",i,",",j,"]";
Leer B [i,j];
FinPara
FinPara

Dimension C [columnasA,columnasB];

Para n<-0 Hasta columnasB - 1 Con Paso 1 Hacer
Para m<-0 Hasta columnasA - 1 Con Paso 1 Hacer
C[m,n] <- 0;
Para i<-0 Hasta columnasA - 1 Con Paso 1 Hacer
C[m,n] <- C[m,n]+A[m,i]*B[i,n];
FinPara
FinPara
FinPara

Para n<-0 Hasta columnasB - 1 Con Paso 1 Hacer
Para m<-0 Hasta columnasA  - 1 Con Paso 1 Hacer
Escribir "C[",m,",",n,"] = ",C[m,n];
FinPara
FinPara


FinProceso

Ejemplo de Algoritmo de Euclides en PseInt


Proceso AlgoritmoEuclides

Definir a como entero;
Definir b como entero;
Definir tb como entero;

Escribir "Ingrese el valor de uno de los numeros a los que sacara el MCD";
Leer a;

Escribir "Ingrese el valor del otro numero: ";
Leer b;

Mientras b <> 0 Hacer
tb <- b;
b <- a % b;
a <- tb;
FinMientras

Escribir "El MCD es :", a;

FinProceso

viernes, 26 de octubre de 2012

Ejemplo de Algoritmo para convertir un numero decimal en romano



Proceso DecimalARomanoHastaMil
Definir unidad como entero;
Definir decena como entero;
Definir centena como entero;
Definir miles como entero;
Definir decimal como entero;
Definir romano como cadena;

Escribir "Ingrese un numero entro entre 0 y 2021: ";
Leer decimal;



unidad <- decimal % 10;
decimal <- decimal - unidad;
decimal <- decimal / 10;

decena <- decimal % 10;
decimal <- decimal - decena;
decimal <- decimal / 10;

centena <- decimal % 10;
decimal <- decimal - centena;
decimal <- decimal / 10;

miles <- decimal % 10;
decimal <- decimal - miles;
decimal <- decimal / 10;

romano <- "";

Segun unidad Hacer
1:
romano <- "I";
2:
romano <- "II";
3:
romano <- "III";
4:
romano <- "IV";
5:
romano <- "V";
6:
romano <- "VI";
7:
romano <- "VII";
8:
romano <- "VIII";
9:
romano <- "IX";
FinSegun

Segun decena Hacer
1:
romano <- "X" + romano ;
2:
romano <- "XX" + romano;
3:
romano <- "XXX" + romano;
4:
romano <-  "XL"  + romano;
5:
romano <-  "L" + romano;
6:
romano <- "LX"  + romano;
7:
romano <- "LXX"  + romano;
8:
romano <- "LXXX" + romano;
9:
romano <- "XC" + romano;
FinSegun

Segun centena Hacer
1:
romano <- "C" + romano;
2:
romano <- "CC" + romano;
3:
romano <- "CCC" + romano;
4:
romano <- "CD" + romano;
5:
romano <- "D" + romano;
6:
romano <- "DC" + romano;
7:
romano <- "DCC" + romano;
8:
romano <- "DCCC" + romano;
9:
romano <- "CM" + romano;
FinSegun

Segun miles Hacer
1:
romano <- "M" + romano;
2:
romano <- "MM" + romano;
FinSegun

Escribir "El numero en romano es; ", romano;



FinProceso