Informática, perguntado por davidbalieiro, 8 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 20009509-5, converta para 02-00-09-50-95. 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. Para esta atividade, envie um arquivo do tipo C ou txt que possa ser colado no ambiente para testes do código, podendo então ser compilado e executado para correção. Comentários inseridos no código auxiliam o processo de correção, auxiliando na interpretação do que foi feito.

Soluções para a tarefa

Respondido por LarissaMoura3
0

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!

Perguntas interessantes