Вы находитесь на странице: 1из 19

Diagrama de flujo Cadenas de Markov 3x3

Diagrama de Flujo Cadenas de Marcokv

PSeudocodigo

Proceso matriz
Dimension a(1,3),b(3,3),c(1,3),d(1,3),e(1,3),f(3,3),g(1,3),h(3,3)
Escribir ''
Para i<-1 Hasta 1 Hacer
Para j<-1 Hasta 3 Hacer
Escribir 'Ingrese la Matriz A[',i,'][',j,']:' Sin Saltar
Leer a(i,j)
FinPara
FinPara
Escribir ''
Para i<-1 Hasta 3 Hacer
Para j<-1 Hasta 3 Hacer
Escribir 'Ingrese la Matriz B[',i,'][',j,']:' Sin Saltar
Leer b(i,j)
FinPara
FinPara
Para i<-1 Hasta 1 Hacer
Para j<-1 Hasta 3 Hacer
c(i,j)<-((0))
Para k<-1 Hasta 3 Hacer
c(i,j)<-((c(i,j)+a(i,k)*b(k,j)))
FinPara
FinPara
FinPara
Escribir 'resultado de la matriz P1 (P0*T):'
Para i<-1 Hasta 1 Hacer
Escribir '[' Sin Saltar
Para j<-1 Hasta 3 Hacer
Escribir c(i,j),' ' Sin Saltar

FinPara
Escribir ']'
FinPara
Para i<-1 Hasta 3 Hacer
Para j<-1 Hasta 3 Hacer
f(i,j)<-((0))
Para k<-1 Hasta 3 Hacer
f(i,j)<-((f(i,j)+b(i,k)*b(k,j)))
FinPara
FinPara
FinPara
Escribir 'resultado de la matriz T2:'
Para i<-1 Hasta 3 Hacer
Escribir '[' Sin Saltar
Para j<-1 Hasta 3 Hacer
Escribir f(i,j),' ' Sin Saltar
FinPara
Escribir ']'
FinPara
Para i<-1 Hasta 1 Hacer
Para j<-1 Hasta 3 Hacer
g(i,j)<-((0))
Para k<-1 Hasta 3 Hacer
g(i,j)<-((g(i,j)+f(i,k)*b(k,j)))
FinPara
FinPara
FinPara
Escribir 'resultado de la matriz P2 (P0*T2):'
Para i<-1 Hasta 1 Hacer

Escribir '[' Sin Saltar


Para j<-1 Hasta 3 Hacer
Escribir g(i,j),' ' Sin Saltar
FinPara
Escribir ']'
FinPara
Para i<-1 Hasta 3 Hacer
Para j<-1 Hasta 3 Hacer
h(i,j)<-((0))
Para k<-1 Hasta 3 Hacer
h(i,j)<-((h(i,j)+f(i,k)*b(k,j)))
FinPara
FinPara
FinPara
Escribir 'resultado de la matriz T3:'
Para i<-1 Hasta 3 Hacer
Escribir '[' Sin Saltar
Para j<-1 Hasta 3 Hacer
Escribir h(i,j),' ' Sin Saltar
FinPara
Escribir ']'
FinPara
Para i<-1 Hasta 1 Hacer
Para j<-1 Hasta 3 Hacer
e(i,j)<-((0))
Para k<-1 Hasta 3 Hacer
e(i,j)<-((e(i,j)+a(i,k)*h(k,j)))
FinPara
FinPara

FinPara
Escribir 'resultado de la matriz P3 (P0*T3):'
Para i<-1 Hasta 1 Hacer
Escribir '[' Sin Saltar
Para j<-1 Hasta 3 Hacer
Escribir e(i,j),' ' Sin Saltar
FinPara
Escribir ']'
FinPara
FinProceso

Programa en Ejecucin

Comprobacin en Excel

Cdigo en PHP

<?php
/* Este codigo ha sido generado por el modulo psexport 20140305-w32 de PSeInt
dado que dicho modulo se encuentra aun en desarrollo y en etapa experimental
puede que el codigo generado no sea completamente correcto. Si encuentra
errores por favor reportelos en el foro (http://pseint.sourceforge.net). */

$stdin = fopen('php://stdin','r');
$a = array();
$b = array();
$c = array();
$d = array();
$e = array();
$f = array();
$g = array();
$h = array();
echo '',PHP_EOL;
for ($i=1;$i<=1;$i++) {
for ($j=1;$j<=3;$j++) {
echo 'Ingrese la Matriz A[',$i,'][',$j,']:';
fscanf($stdin,"%f",$a[$i][$j]);
}
}
echo '',PHP_EOL;
for ($i=1;$i<=3;$i++) {
for ($j=1;$j<=3;$j++) {
echo 'Ingrese la Matriz B[',$i,'][',$j,']:';
fscanf($stdin,"%f",$b[$i][$j]);

}
}
for ($i=1;$i<=1;$i++) {
for ($j=1;$j<=3;$j++) {
$c[$i][$j] = ((0));
for ($k=1;$k<=3;$k++) {
$c[$i][$j] = (($c[$i][$j]+$a[$i][$k]*$b[$k][$j]));
}
}
}
echo 'resultado de la matriz P1 (P0*T):',PHP_EOL;
for ($i=1;$i<=1;$i++) {
echo '[';
for ($j=1;$j<=3;$j++) {
echo $c[$i][$j],' ';
}
echo ']',PHP_EOL;
}
for ($i=1;$i<=3;$i++) {
for ($j=1;$j<=3;$j++) {
$f[$i][$j] = ((0));
for ($k=1;$k<=3;$k++) {
$f[$i][$j] = (($f[$i][$j]+$b[$i][$k]*$b[$k][$j]));
}
}
}
echo 'resultado de la matriz T2:',PHP_EOL;
for ($i=1;$i<=3;$i++) {
echo '[';

for ($j=1;$j<=3;$j++) {
echo $f[$i][$j],' ';
}
echo ']',PHP_EOL;
}
for ($i=1;$i<=1;$i++) {
for ($j=1;$j<=3;$j++) {
$g[$i][$j] = ((0));
for ($k=1;$k<=3;$k++) {
$g[$i][$j] = (($g[$i][$j]+$f[$i][$k]*$b[$k][$j]));
}
}
}
echo 'resultado de la matriz P2 (P0*T2):',PHP_EOL;
for ($i=1;$i<=1;$i++) {
echo '[';
for ($j=1;$j<=3;$j++) {
echo $g[$i][$j],' ';
}
echo ']',PHP_EOL;
}
for ($i=1;$i<=3;$i++) {
for ($j=1;$j<=3;$j++) {
$h[$i][$j] = ((0));
for ($k=1;$k<=3;$k++) {
$h[$i][$j] = (($h[$i][$j]+$f[$i][$k]*$b[$k][$j]));
}
}
}

echo 'resultado de la matriz T3:',PHP_EOL;


for ($i=1;$i<=3;$i++) {
echo '[';
for ($j=1;$j<=3;$j++) {
echo $h[$i][$j],' ';
}
echo ']',PHP_EOL;
}
for ($i=1;$i<=1;$i++) {
for ($j=1;$j<=3;$j++) {
$e[$i][$j] = ((0));
for ($k=1;$k<=3;$k++) {
$e[$i][$j] = (($e[$i][$j]+$a[$i][$k]*$h[$k][$j]));
}
}
}
echo 'resultado de la matriz P3 (P0*T3):',PHP_EOL;
for ($i=1;$i<=1;$i++) {
echo '[';
for ($j=1;$j<=3;$j++) {
echo $e[$i][$j],' ';
}
echo ']',PHP_EOL;
}
?>

Juego: Yanquenpo Diagrama de Flujo

PSeudocodigo
Proceso Yanquenpo
Repetir
Escribir ' 1.Piedra 2.Papel 3.Tijera 4.Salir'
Leer opc
Escribir '----------------------------------------'
Si (opc=1) Entonces
ale<-azar(3)+1
Escribir ''
Escribir 'Usuario: Piedra'
Segun ale Hacer
1:
Escribir 'Maquina: Piedra'
Escribir 'EMPATE'
2:
Escribir 'Maquina: Papel'
Escribir 'PERDISTE'
3:
Escribir 'Maquina: Tijera'
Escribir 'GANASTE!'
FinSegun
FinSi
Si (opc=2) Entonces
ale<-azar(3)+1
Escribir ''
Escribir 'Usuario: Papel'
Segun ale Hacer
1:

Escribir 'Maquina: Piedra'


Escribir 'GANASTE'
2:
Escribir 'Maquina: Papel'
Escribir 'EMPATE'
3:
Escribir 'Maquina: Tijera'
Escribir 'PERDISTE'
FinSegun
FinSi
Si (opc=3) Entonces
ale<-azar(3)+1
Escribir ''
Escribir 'Usuario: Tijera'
Segun ale Hacer
1:
Escribir 'Maquina: Piedra'
Escribir 'PERDISTE'
2:
Escribir 'Maquina: Papel'
Escribir 'GANASTE'
3:
Escribir 'Maquina: Tijera'
Escribir 'Empate!'
FinSegun
FinSi
Si (opc>=5) Entonces
Escribir 'Opcion incorrecta'
Esperar 2 segundos

Borrar Pantalla
Sino
Esperar Tecla
Borrar Pantalla
FinSi
Hasta Que opc=4
FinProceso

Juego en Ejecucin:

Cdigo PHP
<?php
$stdin = fopen('php://stdin','r');
do {
echo ' 1.Piedra 2.Papel 3.Tijera 4.Salir',PHP_EOL;
$opc=rtrim(fgets($stdin),PHP_EOL);
echo '----------------------------------------',PHP_EOL;
if (($opc==1)) {
$ale = rand(0,2)+1;
echo '',PHP_EOL;
echo 'Usuario: Piedra',PHP_EOL;
switch ($ale) {
case 1:

echo 'Maquina: Piedra',PHP_EOL;


echo 'EMPATE',PHP_EOL;
break;
case 2:
echo 'Maquina: Papel',PHP_EOL;
echo 'PERDISTE',PHP_EOL;
break;
case 3:
echo 'Maquina: Tijera',PHP_EOL;
echo 'GANASTE!',PHP_EOL;
break;
}
}
if (($opc==2)) {
$ale = rand(0,2)+1;
echo '',PHP_EOL;
echo 'Usuario: Papel',PHP_EOL;
switch ($ale) {
case 1:
echo 'Maquina: Piedra',PHP_EOL;
echo 'GANASTE',PHP_EOL;
break;
case 2:
echo 'Maquina: Papel',PHP_EOL;
echo 'EMPATE',PHP_EOL;
break;
case 3:
echo 'Maquina: Tijera',PHP_EOL;
echo 'PERDISTE',PHP_EOL;

break;
}
}
if (($opc==3)) {
$ale = rand(0,2)+1;
echo '',PHP_EOL;
echo 'Usuario: Tijera',PHP_EOL;
switch ($ale) {
case 1:
echo 'Maquina: Piedra',PHP_EOL;
echo 'PERDISTE',PHP_EOL;
break;
case 2:
echo 'Maquina: Papel',PHP_EOL;
echo 'GANASTE',PHP_EOL;
break;
case 3:
echo 'Maquina: Tijera',PHP_EOL;
echo 'Empate!',PHP_EOL;
break;
}
}
if (($opc>=5)) {
echo 'Opcion incorrecta',PHP_EOL;
sleep(2);
echo PHP_EOL; // no hay forma directa de borrar la pantalla con php
} else {
fgetc($stdin); // a diferencia del pseudocdigo, espera un Enter, no
cualquier tecla
echo PHP_EOL; // no hay forma directa de borrar la pantalla con php

}
} while ($opc!=4);
?>