Informática, perguntado por croddrigues, 11 meses atrás

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

Respondido por FabioCodex
13

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


diegogds1: ta certo isso ai nao
Chales95777: Esse código nao copila nao executa nem nada. Tu pelo menos testou isso?
Chales95777: testei e nao compila
Respondido por diegogds1
1

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.


Chales95777: Esse seu código nem copila e nem executa.
michael17douglouu9rq: código copila sim, porem falta algumas funções
Chales95777: mao compila
Perguntas interessantes