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

Desenvolver software é uma tarefa interessante, mas mentalmente desgastante, pois para cada novo problema, um caminho totalmente diverso pode ser trilhado para se chegar a uma solução computacional funcional e que atenda às necessidades solicitadas. Alguns conceitos são simples como a entrada de dados via teclado, ou a saída via monitor, mas existem outras estruturas que podem ser elaboradas com maior complexidade lógica que exigem que o aluno esteja mentalmente bem para que possa desenvolver algo adequado e otimizado. Para esta atividade, observe o que é solicitado a seguir: 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 LarissaMoura3
9

O algoritmo pode ser desenvolvido da seguinte forma:

#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");

          }

Algoritmo é uma sequência finita de instruções definidas e sem ambiguidade, onde cada uma deve ser executada mecanicamente ou eletronicamente considerando um intervalo finito de tempo. São muito utilizados na programação.  

Bons estudos!


alissonplaygame: Meu RA e 20081118-5 como ficaria ?
RBKA1: Eu não vi o RA ai nesse exemplo
Respondido por marcellafp
11

Resposta:

#include <stdio.h>

#include <stdlib.h>

#include <locale.h>

#include <string.h>

int main(){

setlocale(LC_ALL,"Portuguese");

int senha = 1;

inicio:

  system ("cls");

   printf ("Olá, bem vindo ao cofre! Para que o cofre seja aberto é necessário inserir a senha composta por 5 etapas. A cada etapa deve ser inserido uma senha de dois dígitos, assim o cofre é aberto. /n");

     printf ("Digite a primeira senha!");

     scanf ("%2d", &senha);

       if (senha == 00)

       {

           printf ("Digite a segunda senha!");

           scanf ("%2d", &senha);

           if (senha == 00)

           {    

              printf ("Digite a terceira senha!");

              scanf ("%2d", &senha);

               if (senha == 87)

               {

                  printf ("Digite a quarta senha!");

                  scanf ("%2d", &senha);

                  if (senha == 90)

                  {

                      printf ("Digite a quinta senha!");

                      scanf ("%2d", &senha);

                      if (senha == 05)

                      {

                         printf ("Senha correta! Cofre aberto...");

                      }

                      else

                      {

                        printf ("Senha incorreta. Tente novamente.");

                        system ("pause");

                        goto inicio;

                      }

                   }

                   else

                   {

                     printf ("Senha incorreta. Tente novamente.");

                     system ("pause");

                     goto inicio;

                  }

               }

               else

               {

                 printf ("Senha incorreta. Tente novamente.");

                 system ("pause");

                 goto inicio;

               }

           }  

           else

           {

              printf ("Senha incorreta. Tente novamente.");

              system ("pause");

              goto inicio;

           }  

       }

       else

       {

         printf ("Senha incorreta. Tente novamente.");

         system ("pause");

         goto inicio;

       }

   return (0);

}

Explicação:


alissonplaygame: Meu RA e 20081118-5 como ficaria ?
Perguntas interessantes