Está en la página 1de 11

Practica 5 - Funciones

Nombre: Ruben Saul Jimenez Fernandez Código: 218506351

Enunciado del problema

Crear una funcion llamada “Login”, que recibe un nombre de usuario y una contraseña y te devuelve Verdadero si el
nombre de usuario es “SSPProgramacion” y la contraseña es “CUcEi_2021”. Además recibe el número de intentos que
se ha intentado hacer login y si no se ha podido hacer login incremente este valor.
Crear un programa principal donde se pida un nombre de usuario y una contraseña y se intente hacer login, solamente
tenemos tres oportunidades para intentarlo.

Pseudocódigo
Funcion sin retorno login

Inicio

login

Fin

Funcion sin retotrno login

Entero difuser=1,difpass=1,intentos=0,i;
Caracter user[20],password[20];
Carcater usuario[]={'S','S','P','P','r','o','g','r','a','m','a','c','i','o','n','\0'};
Caracter contra[]={'C','U','c','E','i','_','2','0','2','1','\0'};

Escribir "Tiene 3 intentos para ingresar correctamente el usuario y la contrasena, si algun dato ya lo
ingreso correctamente, no volvera a pedirselo"

Hacer

Escribir "INTENTO " intentos+1

Si difuser <> 0 hacer

Escriir "Ingresa el usuario: "


Leer user

Si difpass <> 0 hacer

Escribir "Ingresa la contrasena: "


Leer password

difuser=0, difpass=0

Para i=0 Mientras i<contarletras(usuario) Con incremento i=i+1

Si user[i] <> usuario[i]


diffuser= diffuser+1

Para i=0 Mientras i<contarletras(contra) Con incremento i=i+1


Si contra[i] <> password[i] hacer
difpass= difpass+1

Si diffuser <> 0 o difpass <> 0 hacer


intentos= intentos+1

Si ifuser=0 y difpass=0 hacer


Salir

Mientras intentos<3 o (difuser <> 0 o difpass <> 0)

Si (difuser=0 y difpass=0) o intentos<2 hacer


Escribir "DATOS INGRESADOS CORRECTAMENTE"

Sino
Escribir "DATOS INGRESADOS INCORRECTAMENTE"

Diagrama de Flujo
Código en C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void login();

int main()
{
login();
return 0;
}

void login()//{}
{
int difuser=1,difpass=1,intentos=0,i;
char user[20],password[20];
char usuario[]={'S','S','P','P','r','o','g','r','a','m','a','c','i','o','n','\0'};
char contra[]={'C','U','c','E','i','_','2','0','2','1','\0'};

printf("\nTiene 3 intentos para ingresar correctamente el usuario y la contrasena, si algun dato ya lo


ingreso correctamente, no volvera a pedirselo\n\n");

do{

printf("\tINTENTO %d\n",intentos+1);

if(difuser!=0)
{
printf("\nIngresa el usuario: ");
fgets(user,20,stdin);
printf("\n");
}

if(difpass!=0)
{
printf("\nIngresa la contrasena: ");
fgets(password,20,stdin);
printf("\n");
}

difuser=0, difpass=0;
for(i=0; i<strlen(usuario); i++)
{
if(user[i]!=usuario[i])
difuser++;
}

for(i=0; i<strlen(contra); i++)


{
if(contra[i]!=password[i])
difpass++;
}

if(difuser!=0 || difpass!=0)
intentos++;

if(difuser==0 && difpass==0)


break;

}while(intentos<3 || (difuser!=0 || difpass!=0));

if((difuser==0 && difpass==0) || intentos<2)


printf("\n\tDATOS INGRESADOS CORRECTAMENTE\n\n");

else
printf("\n\tDATOS INGRESADOS INCORRECTAMENTE\n\n");
}

Prueba de escritorio

Enunciado del problema

Crear una función que calcule la temperatura media de un día a partir de la temperatura máxima y mínima. Crear un
programa principal, que utilizando la función anterior, vaya pidiendo la temperatura máxima y mínima de cada día y
vaya mostrando la media. El programa pedirá el número de días que se van a introducir.
Pseudocódigo
Funcion con retorno temperature y paso de parametros por valor flotante max,flotante min

Inicio

Entero n, i
Flotante maxima, minima

Escribir "De cuantos dias desea calcular la temperatura? "


Leer n

Para i=0 Mientras i<n Con aumento i=i+1

Escribir "Dia " i+1" :"


Escribir "Cual es la temperatura maxima? "
Leer maxima

Escribir "Cual es la temperatura minima? "


Leer minima

temperatura(maxima,minima)

Fin

Funcion con retorno temperature y paso de parametros por valor flotante max,flotante min

Flotante prom

prom=(max+min)/2

Escribir "La temperatura promedio es de " prom " grados"

Devolver prom

Diagrama de Flujo
Código en C
#include <stdio.h>
#include <stdlib.h>

int temperatura(float max,float min);

int main()
{
int n,i;
float maxima,minima;

printf("\nDe cuantos dias desea calcular la temperatura? ");


scanf("%d",&n);

for(i=0; i<n; i++)


{
printf("\nDia %d: \n",i+1);
printf("\n\tCual es la temperatura maxima? ");
scanf("%f",&maxima);
printf("\n");

printf("\n\tCual es la temperatura minima? ");


scanf("%f",&minima);
printf("\n");

temperatura(maxima,minima);
}

return 0;
}

int temperatura(float max,float min)//{}


{
float prom;

prom=(max+min)/2;

printf("\n\tLa temperatura promedio es de %.1f grados",prom);


printf("\n");

return prom;
}

Prueba de escritorio
Enunciado del problema

Escribir el código de la función que retorne el máximo común divisor de dos números que recibe como argumento.

Pseudocódigo
Funcion con retorno mcd Con paso de parametros por valor entero num1, entero num2

Inicio

Entero numero1,numero2

Escribir "Escribe 2 numeros: "


Leer numero1, numero 2

mcd(numero1,numero2);

Fin

Funcion con retorno mcd Con paso de parametros por valor entero num1, entero num2
Entero paso

Escribir "Numero 1: " num1


Escribir "Numero 2: " num2

Mientras num2 <> 0 hacer

paso = num2
num2 = num1 mod num2
num1 = paso

Escribir "Maximo comun divisor: "num1

Devolver num1

Diagrama de Flujo

Código en C
#include <stdio.h>
#include <stdlib.h>

int mcd (int num1, int num2);

int main()
{
int numero1,numero2;

printf("\nEscribe 2 numeros: ");


scanf("%d %d",&numero1,&numero2);
printf("\n");

mcd(numero1,numero2);

return 0;
}

int mcd (int num1, int num2)//{}


{
int paso;

printf("\n\tNumero 1: %d",num1);
printf("\n\tNumero 2: %d",num2);

while (num2!=0)
{
paso = num2;
num2 = num1 %num2;
num1 = paso;
}

printf("\n\tMaximo comun divisor: %d\n\n",num1);

return num1;
}
Prueba de escritorio

También podría gustarte