Informática, perguntado por gabp2000, 9 meses atrás

/Peça ao usuário que digite uma senha e informe se a senha é FRACA, MEDIA ou FORTE
//minusculas, maiúsculas e numeros - GRUPOS
//SENHA FRACA: Senha com ocorrencia de caracteres em apenas 1 grupo
//SENHA MEDIA: Correncia em dois grupos.
//Senha FORTE: Ocorrencia em tres grupos.
// considerar senhas com 4 digitos
//casa - FRACA
//CaSa - MEDIO
//C4sA - FORTE
//1234 - FRACA
//afre - FRACA
//4eR8 - FORTE
//4a5t - MEDIO


MathRevan: É em que linguagem?
gabp2000: linguagem c

Soluções para a tarefa

Respondido por MathRevan
2

Resposta:

/* avaliador de senhas */

/* Linguagem C */

#include <stdio.h>

#define FRACA 0

#define MEDIA 1

#define FORTE 2

char senha[4];

char avaliador(char x[]);

int main()

{

printf("Digite a sua senha: ");

scanf("%4s", senha);

if (avaliador(senha) == FRACA)

 printf("A sua senha é FRACA\n");

else if (avaliador(senha) == MEDIA)

 printf("A sua senha é MEDIA\n");

else

 printf("A sua senha é FORTE\n");

}

char avaliador(char x[])

{

int avaliacao;

int i, maiusculas, minusculas, numeros;

for(i = 0, maiusculas = 0, minusculas = 0, numeros = 0; i < 4; i ++)

 if(x[i] >= 48 && x[i] <= 57)

  numeros++;

 else if (x[i] >= 65 && x[i] <= 90)

  maiusculas++;

 else if (x[i] >= 97 && x[i] <= 122)

  minusculas++;

if (numeros == 4 || maiusculas == 4 || minusculas == 4)

 avaliacao = FRACA;

else if (!(numeros * maiusculas * minusculas))

 avaliacao = MEDIA;

else

 avaliacao = FORTE;

return avaliacao;

Explicação:

Primeiras linhas, define as constantes FRACA com valor 0, MEDIA com valor 1 e FORTE com valor 2; em seguida é criada a matriz senha com 4 elementos e é feito o protótipo de função avaliador, que tem uma matriz do tipo char como parâmetro.

Na função main, é pedido para o usuário digitar uma senha, idependente da quantidade de letras, só serão aceitas as 4 primeiras (por causa do %4s).

Em seguida ele executa a cláusula if ao mesmo tempo que executa a função avaliador com os elementos da matriz senha como argumentos.

Dentro da função, a senha é avaliada pelo número de carácteres de grupos diferentes, na primeira cláusula if verifica se há 4 carácteres de um mesmo grupo, se sim a variável avaliacao é armazenada com o valor FRACA (que é zero), se não, verificar se a multiplicação do número de dígitos de todos os grupos é zero (se há algum grupo com 0 elementos, quer dizer que há apenas 2 grupos de elementos, p.ex. aa11, não há letras maiúsculas), se não é o que restou, ou seja, FORTE.

O valor da f. avaliador é repassado para o if, que avalia o valor e retorna para o usuário através da função printf().


gabp2000: muito obrigado, ajudo muito
Perguntas interessantes