Foi solicitado a você que elabore um código em linguagem C que simule uma tranca de abertura de cofre onde os dígitos de seu RA (registro acadêmico de 9 ou 10 dígitos), de forma que sejam formados pares de dezenas para simular o número correto de cada etapa da tranca, ou seja, num RA fictício 19236798-5, converta para 01-92-36-79-85 para RAs com 9 dígitos ou sem acrescentar o 0 no caso de RAs com 10 dígitos. Estes números devem ser os segredos que vão liberando a tranca etapa por etapa, sendo que a cada erro, reinicia-se a tranca e o usuário necessíta reiniciar a inserção dos números novamente, desde a primeira etapa, como no mecanismo de abertura de cofres mesmo. Em caso do usuário não acertar as 5 dezenas, o processo é repetido infinitamente, como uma tranca normal, mas caso o usuário acerte os cinco números em sequência, uma mensagem deve ser exibida informando que a porta foi aberta.
Soluções para a tarefa
Resposta:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define FALSE 0
#define TRUE 1
char proxNaoBranco()
{
char c = ' ';
while (c == ' ' || c == '\t' || c == '\n') c = getchar();
if (c == '.') exit(EXIT_SUCCESS);
return c;
}
int main(void)
{
char c, s1 = 'y', s2 = 'z', c1, c2;
int travado = TRUE;
while (1)
{
c = ' ';
if (travado)
{
while (c != '*') c = proxNaoBranco();
c1 = proxNaoBranco();
c2 = proxNaoBranco();
travado = !(s1 == c1 && s2 == c2);
if (travado) printf("\a\nIncorreto\n\n");
else printf("\a\nDestravado\n\n");
}
else
{
while (c != '#' && c != ':') c = proxNaoBranco();
if (c == '#')
{
c1 = proxNaoBranco();
c2 = proxNaoBranco();
if (isalpha(c1) && isalpha(c2))
{
s1 = c1;
s2 = c2;
printf("\a\nSenha alterada\n\n");
}
else printf("\a\nErro\n\n");
}
else
{
travado = TRUE;
printf("\a\nTravado\n\n");
}
}
}
}
Explicação:
altere as condições de forma que realize as repetições necessárias para a condição proposta pela instituição
Resposta:
int main (){
int var = 0;
while(var == 0) {
printf("primeira Tranca ");
scanf("%d", &senha);
if (var == digitoRa){
...
...
...
printf("quinta tranca ");
scanf("%d", &senha);
if (var == digitoRa){
var = 1;
}else var = 0;
...
...
...
...
}else var = 0;
Explicação:
pagina 170 do livro.