Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Proyecto - Final Anthuan Pizarro Olmos
Proyecto - Final Anthuan Pizarro Olmos
Programación de computadores 1
Instituto IACC
18 de enero de 2019
Desarrollo
las herramientas necesarias para entregar de manera confiable algunos de los cálculos
realizados a diario dentro de sus operaciones. Dicho sistema deberá contar con un
menú principal y un módulo independiente para cada uno de los siguientes ítems:
b) El segundo módulo deberá recibir por pantalla 3 números enteros mayores que
cero (0) y menores que 100, y devolver cuál de ellos es el mayor. El formato del
e) Finalmente, esta opción es la salida del sistema y ante su selección deberá emitir
2) El funcionamiento de cada uno de los módulos, así como el menú principal, debe estar
3) Asimismo, el funcionamiento de cada uno de los módulos y del menú principal, debe
estar documentado con un pseudocódigo (uno por cada uno de ellos) que explique
Pseudocodigo;
Algoritmo Modulo_1
definir Lado1, Lado2, Perimetro,Area como entero;// definicion de variable tipo int
Escribir "Bienvenido al modulo de calculo de area y perimetro de un rectangulo"//string de bienvenida al
usuario
Escribir "Ingrese primer lado del rectangulo en centimetros";//string de solicitud de ingreso de datos
Leer Lado1;//lectura de datos ingresados y asignacion de estos a variable Lado1
Escribir "Ingrese segundo lado del rectangulo en centimetros"//string de solicitud de ingreso de datos
Leer Lado2;//lectura de datos ingresados y asignacion de estos a variable Lado2
Area = (Lado1*Lado2);//asignacion de valores a variable Area segun resultado de la operacion solicitada
Perimetro = (lado1+Lado2)*2;//asignacion de valores a variable Perimetro segun resultado de la operacion
solicitada
Escribir " El area del rectangulo ingresado es: ", Area, " centimetros cuadrados";//imprime valor de Area
acompañado del string entregado
Escribir " Y su perimetro es de: ", Perimetro, " centimetros";//imprime valor de Perimetro acompañado del
string entregado
FinAlgoritmo
Diagrama de flujo;
Código PHP;
<?php
$stdin = fopen('php://stdin','r');
settype($lado1,'integer');
settype($lado2,'integer');
settype($perimetro,'integer');
settype($area,'integer');
fscanf($stdin,"%d",$lado1);
fscanf($stdin,"%d",$lado2);
$area = ($lado1*$lado2);
$perimetro = ($lado1+$lado2)*2;
echo ' El area del rectangulo ingresado es: ',$area,' centimetros cuadrados',PHP_EOL;
?>
Segundo modulo, número mayor entre 3;
Pseudocodigo;
Algoritmo Modulo_2
Definir Num_1, Num_2, Num_3 como entero;// definicion de variable tipo int
Escribir "Bienvenido al modulo de calculo de numero mayor entre tres";// string de bienvenida al usuario
Escribir"Debe ingresar 3 numeros enteros mayores a 0 y menores a 100";//string de instrucciones
Escribir "Ingrese su primer numero"// string de solicitud de ingreso de datos
Leer Num_1;// lectura de datos ingresados y asignacion de estos a variable Num_1
Escribir "Ingrese su segundo numero"// string de solicitud de ingreso de datos
Leer Num_2;// lectura de datos ingresados y asignacion de estos a variable Num_2
Escribir "Ingrese su tercer numero"// string de solicitud de ingreso de datosLeer Num_3;// lectura de datos
ingresados y asignacion de estos a variable Num_3
Si (Num_1>Num_2 && Num_1>Num_3) Entonces//instruccion If...Elseif...Else que compara los valores para
determinar el mayor
Escribir " El mayor de los numeros que Usted ha ingresado es: ", Num_1;// en caso de cumplir imprime
SiNo
Si (Num_2>Num_1 && Num_2>Num_3) Entonces
Escribir " El mayor de los numeros que Usted ha ingresado es: ", Num_2;// en caso de cumplir imprime
SiNo
Si (Num_3>Num_1 && Num_3>Num_2) Entonces
Escribir " El mayor de los numeros que Usted ha ingresado es: ", Num_3;// en caso de cumplir
imprime
Fin si
Fin si
Fin si
FinAlgoritmo
Diagrama de flujo;
Código PHP;
<?php
$stdin = fopen('php://stdin','r');
settype($num_1,'integer');
settype($num_2,'integer');
settype($num_3,'integer');
echo 'Bienvenido al modulo de calculo de numero mayor entre tres',PHP_EOL;
echo 'Debe ingresar 3 numeros enteros mayores a 0 y menores a 100',PHP_EOL;
echo 'Ingrese su primer numero',PHP_EOL;
fscanf($stdin,"%d",$num_1);
echo 'Ingrese su segundo numero',PHP_EOL;
fscanf($stdin,"%d",$num_2);
echo 'Ingrese su tercer numero',PHP_EOL;
fscanf($stdin,"%d",$num_3);
if (($num_1>$num_2 && $num_1>$num_3)) {
echo ' El mayor de los numeros que Usted ha ingresado es: ',$num_1,PHP_EOL;
} else {
if (($num_2>$num_1 && $num_2>$num_3)) {
echo ' El mayor de los numeros que Usted ha ingresado es: ',$num_2,PHP_EOL;
} else {
if (($num_3>$num_1 && $num_3>$num_2)) {
echo ' El mayor de los numeros que Usted ha ingresado es: ',$num_3,PHP_EOL;
}
}
}
?>
Tercer módulo, mostrar día de la semana;
Pseudocodigo;
Algoritmo Dia_semana
Definir Dia como entero;// definicion de variable tipo int
Escribir"Bienvenido al modulo del día de la semana";// string de bienvenida al usuario
Escribir"Escriba un numero entre 1 y 7 y sabra a que día de la semana corresponde";// string de
instrucciones
Escribir"Ingrese su numero"// string de solicitud de ingreso de datos
leer Dia; // lectura de datos ingresados y asignacion de estos a variable Dia
Segun Dia Hacer// instruccion switch para asignar dias a los numeros a ingresar
1:
Escribir "El día ingresado es: Lunes" ;
2:
Escribir "El día ingresado es: Martes";
3:
Escribir "El día ingresado es: Miercoles";
4:
Escribir "El día ingresado es: Jueves";
5:
Escribir "El día ingresado es: Viernes";
6:
Escribir "El día ingresado es: Sabado";
7:
Escribir "El día ingresado es: Domingo";
De Otro Modo:
FinAlgoritmo
Diagrama de Flujo;
Código PHP;
<?php
$stdin = fopen('php://stdin','r');
settype($dia,'integer');
echo 'Bienvenido al modulo del día de la semana',PHP_EOL;
echo 'Escriba un numero entre 1 y 7 y sabra a que día de la semana corresponde',PHP_EOL;
echo 'Ingrese su numero',PHP_EOL;
fscanf($stdin,"%d",$dia);
switch ($dia) {
case 1:
echo 'El día ingresado es: Lunes',PHP_EOL;
break;
case 2:
echo 'El día ingresado es: Martes',PHP_EOL;
break;
case 3:
echo 'El día ingresado es: Miercoles',PHP_EOL;
break;
case 4:
echo 'El día ingresado es: Jueves',PHP_EOL;
break;
case 5:
echo 'El día ingresado es: Viernes',PHP_EOL;
break;
case 6:
echo 'El día ingresado es: Sabado',PHP_EOL;
break;
case 7:
echo 'El día ingresado es: Domingo',PHP_EOL;
break;
default:
echo 'El numero no corresponde a ningun día de la semana',PHP_EOL;
}
?>
Cuarto modulo, cálculo de código verificador;
Pseudocodigo;
Proceso calculoVerificador
Definir regla,suma,rut,RUUT,num,cod,ver como numerico;// definicion de variable tipo int
Definir resp como caracter;// definicion de variable tipo string
Repetir
regla=2;
suma=0;
Limpiar Pantalla;
Escribir "Bienvenido al modulo de Rut"
Escribir "Ingrese los numeros del Rut sin puntos ni digito verificador";
Leer rut;
RUUT=rut;
Repetir
si regla=8 entonces
regla=2;
FinSi
cod=suma%11;
ver=11-cod;
Si ver<10 entonces
Escribir "Su rut completo es: ",RUUT,"-",ver;
FinSi
Si ver=10 entonces
Escribir "Su rut completo es: ",RUUT,"-K";
FinSi
FinProceso
Diagrama de flujo;
Codigo PHP;
<?php
$stdin = fopen('php://stdin','r');
settype($regla,'float');
settype($suma,'float');
settype($rut,'float');
settype($ruut,'float');
settype($num,'float');
settype($cod,'float');
settype($ver,'float');
settype($resp,'string');
do {
$regla = 2;
$suma = 0;
echo PHP_EOL;
echo 'Bienvenido al modulo de Rut',PHP_EOL;
echo 'Ingrese los numeros del Rut sin puntos ni digito verificador',PHP_EOL;
fscanf($stdin,"%d",$rut);
$ruut = $rut;
do {
$num = $rut%10;
$suma = $suma+($num*$regla);
$regla = $regla+1;
$rut = floor($rut/10);
if ($regla==8) {
$regla = 2;
}
} while ($rut!=0);
$cod = $suma%11;
$ver = 11-$cod;
if ($ver<10) {
echo 'Su rut completo es: ',$ruut,'-',$ver,PHP_EOL;
}
if ($ver==10) {
echo 'Su rut completo es: ',$ruut,'-K',PHP_EOL;
}
if ($ver==11 || $ver==0) {
echo 'Su rut completo es: ',$ruut,'-0',PHP_EOL;
}
echo 'Presione enter para ingresar un nuevo Rut o escriba salir',PHP_EOL;
$resp=rtrim(fgets($stdin),PHP_EOL);
} while ($resp!='salir');
?>
Sistema completo con menú de ingreso y salida;
Pseudocodigo;
Algoritmo Menu_principal
2:
Definir Num_1,Num_2,Num_3 Como Entero
Escribir 'Bienvenido al modulo de calculo de numero mayor entre tres'
Escribir 'Debe ingresar 3 numeros enteros mayores a 0 y menores a 100'
Escribir 'Ingrese su primer numero'
Leer Num_1
Escribir 'Ingrese su segundo numero'
Leer Num_2
Escribir 'Ingrese su tercer numero'
Leer Num_3
Si (Num_1>Num_2 Y Num_1>Num_3) Entonces
Escribir ' El mayor de los numeros que Usted ha ingresado es: ',Num_1
SiNo
Si (Num_2>Num_1 Y Num_2>Num_3) Entonces
Escribir ' El mayor de los numeros que Usted ha ingresado es:
',Num_2
SiNo
Si (Num_3>Num_1 Y Num_3>Num_2) Entonces
Escribir ' El mayor de los numeros que Usted ha ingresado
es: ',Num_3
FinSi
FinSi
FinSi
3:
Definir Dia Como Entero
Escribir 'Bienvenido al modulo del día de la semana'
Escribir 'Escriba un numero entre 1 y 7 y sabra a que día de la semana
corresponde'
Escribir 'Ingrese su numero'
Leer Dia
Segun Dia Hacer
1:
Escribir 'El día ingresado es: Lunes'
2:
Escribir 'El día ingresado es: Martes'
3:
Escribir 'El día ingresado es: Miercoles'
4:
Escribir 'El día ingresado es: Jueves'
5:
Escribir 'El día ingresado es: Viernes'
6:
Escribir 'El día ingresado es: Sabado'
7:
Escribir 'El día ingresado es: Domingo'
De Otro Modo:
Escribir 'El numero no corresponde a ningun día de la semana'
FinSegun
4:
Definir regla,suma,rut,RUUT,num,cod,ver Como Real
Definir resp Como Caracter
Repetir
regla <- 2
suma <- 0
Borrar Pantalla
Escribir 'Bienvenido al modulo de Rut'
Escribir 'Ingrese los numeros del Rut sin puntos ni digito verificador'
Leer rut
RUUT <- rut
Repetir
num <- rut MOD 10
suma <- suma+(num*regla)
regla <- regla+1
rut <- trunc(rut/10)
Si regla=8 Entonces
regla <- 2
FinSi
Hasta Que rut=0
cod <- suma MOD 11
ver <- 11-cod
Si ver<10 Entonces
Escribir 'Su rut completo es: ',RUUT,'-',ver
FinSi
Si ver=10 Entonces
Escribir 'Su rut completo es: ',RUUT,'-K'
FinSi
Si ver=11 O ver=0 Entonces
Escribir 'Su rut completo es: ',RUUT,'-0'
FinSi
Escribir 'Presione enter para ingresar un nuevo Rut o escriba salir'
Leer resp
Hasta Que resp='salir'
5:
Escribir"Usted se ha desconectado del Sistema XYZ"
Escribir"La sesion ha finalizado correctamente"
Escribir "Este sistema ha sido desarrollado por Anthuan Francisco Pizarro
Olmos"
De Otro Modo:
escribir "Favor reinicie"
Fin Segun
FinAlgoritmo
Diagrama de flujo;
Codigo PHP;
<?php
$stdin = fopen('php://stdin','r');
settype($eleccion,'integer');
echo 'Bienvenido al sistema XYZ',PHP_EOL;
echo 'para Calculo de area y perimetro digite 1',PHP_EOL;
echo 'para Mayor entre tres digite 2',PHP_EOL;
echo 'para Día de la semana digite 3',PHP_EOL;
echo 'para Rut digite 4',PHP_EOL;
echo 'para menu de salida digite 5',PHP_EOL;
fscanf($stdin,"%d",$eleccion);
switch ($eleccion) {
case 1:
settype($lado1,'integer');
settype($lado2,'integer');
settype($perimetro,'integer');
settype($area,'integer');
echo 'Bienvenido al modulo de calculo de area y perimetro de un rectangulo',PHP_EOL;
echo 'Ingrese primer lado del rectangulo en centimetros',PHP_EOL;
fscanf($stdin,"%d",$lado1);
echo 'Ingrese segundo lado del rectangulo en centimetros',PHP_EOL;
fscanf($stdin,"%d",$lado2);
$area = ($lado1*$lado2);
$perimetro = ($lado1+$lado2)*2;
echo ' El area del rectangulo ingresado es: ',$area,' centimetros cuadrados',PHP_EOL;
echo ' Y su perimetro es de: ',$perimetro,' centimetros',PHP_EOL;
break;
case 2:
settype($num_1,'integer');
settype($num_2,'integer');
settype($num_3,'integer');
echo 'Bienvenido al modulo de calculo de numero mayor entre tres',PHP_EOL;
echo 'Debe ingresar 3 numeros enteros mayores a 0 y menores a 100',PHP_EOL;
echo 'Ingrese su primer numero',PHP_EOL;
fscanf($stdin,"%d",$num_1);
echo 'Ingrese su segundo numero',PHP_EOL;
fscanf($stdin,"%d",$num_2);
echo 'Ingrese su tercer numero',PHP_EOL;
fscanf($stdin,"%d",$num_3);
if (($num_1>$num_2 && $num_1>$num_3)) {
echo ' El mayor de los numeros que Usted ha ingresado es: ',$num_1,PHP_EOL;
} else {
if (($num_2>$num_1 && $num_2>$num_3)) {
echo ' El mayor de los numeros que Usted ha ingresado es: ',$num_2,PHP_EOL;
} else {
if (($num_3>$num_1 && $num_3>$num_2)) {
echo ' El mayor de los numeros que Usted ha ingresado es:
',$num_3,PHP_EOL;
}
}
}
break;
case 3:
settype($dia,'integer');
echo 'Bienvenido al modulo del día de la semana',PHP_EOL;
echo 'Escriba un numero entre 1 y 7 y sabra a que día de la semana corresponde',PHP_EOL;
echo 'Ingrese su numero',PHP_EOL;
fscanf($stdin,"%d",$dia);
switch ($dia) {
case 1:
echo 'El día ingresado es: Lunes',PHP_EOL;
break;
case 2:
echo 'El día ingresado es: Martes',PHP_EOL;
break;
case 3:
echo 'El día ingresado es: Miercoles',PHP_EOL;
break;
case 4:
echo 'El día ingresado es: Jueves',PHP_EOL;
break;
case 5:
echo 'El día ingresado es: Viernes',PHP_EOL;
break;
case 6:
echo 'El día ingresado es: Sabado',PHP_EOL;
break;
case 7:
echo 'El día ingresado es: Domingo',PHP_EOL;
break;
default:
echo 'El numero no corresponde a ningun día de la semana',PHP_EOL;
}
break;
case 4:
settype($regla,'float');
settype($suma,'float');
settype($rut,'float');
settype($ruut,'float');
settype($num,'float');
settype($cod,'float');
settype($ver,'float');
settype($resp,'string');
do {
$regla = 2;
$suma = 0;
echo PHP_EOL; // no hay forma directa de borrar la pantalla con php
echo 'Bienvenido al modulo de Rut',PHP_EOL;
echo 'Ingrese los numeros del Rut sin puntos ni digito verificador',PHP_EOL;
fscanf($stdin,"%d",$rut);
$ruut = $rut;
do {
$num = $rut%10;
$suma = $suma+($num*$regla);
$regla = $regla+1;
$rut = floor($rut/10);
if ($regla==8) {
$regla = 2;
}
} while ($rut!=0);
$cod = $suma%11;
$ver = 11-$cod;
if ($ver<10) {
echo 'Su rut completo es: ',$ruut,'-',$ver,PHP_EOL;
}
if ($ver==10) {
echo 'Su rut completo es: ',$ruut,'-K',PHP_EOL;
}
if ($ver==11 || $ver==0) {
echo 'Su rut completo es: ',$ruut,'-0',PHP_EOL;
}
echo 'Presione enter para ingresar un nuevo Rut o escriba salir',PHP_EOL;
$resp=rtrim(fgets($stdin),PHP_EOL);
} while ($resp!='salir');
break;
case 5:
echo 'Usted se ha desconectado del Sistema XYZ',PHP_EOL;
echo 'La sesion ha finalizado correctamente',PHP_EOL;
echo 'Este sistema ha sido desarrollado por Anthuan Francisco Pizarro Olmos',PHP_EOL;
break;
default:
echo 'Favor reinicie',PHP_EOL;
}
?>
Bibliografía