Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disc.: PROGRAMAÇÃO APLICADA A SISTEMAS ELÉTRICOS Acertos: 9,0 de 10,0 29/08/2022 Acerto: 1,0 / 1,0 Considere as afirmações abaixo sobre sistemas embarcados. I - Todo sistema embarcado com RTOS é de tempo real. II - Todo sistema embarcado sem sistema operacional é de tempo real. III - Todo sistema embarcado bare metal é de tempo real. IV - Todo sistema embarcado com Linux é de tempo real. Quais as opções estão corretas? Somente a II II, III e IV I, II e III II e III I, III e IV Respondido em 03/09/2022 10:06:06 Explicação: Quando um sistema precisa responder a um evento ou a uma solicitação dentro de um tempo estritamente definido, chamamos isso de sistema de tempo real. Esse tempo definido é conhecido como prazo. Esses sistemas devem ser previsíveis e, portanto, são, por definição, determinísticos. Se um sistema roda em um sistema operacional, ele não é de tempo real. Com exceção do RTOS, que são os sistemas operacionais de tempo real. Sistemas embarcados sem sistema operacional, como os bare metal (microcontroladores) ou os baseados em dispositivos FPGA, são de tempo real. Portanto, a única alternativa que não está correta é a IV, pois Linux não é de tempo real. Acerto: 1,0 / 1,0 Você recebeu valores em bases diferentes para realizar um cálculo. Os valores foram X = 34 (base decimal) e Y = 34 (base hexadecimal). Você precisa do resultado na base octal para comparar com o enviado por outro sistema. Qual o resultado de X + Y na base octal? 207 156 201 116 126 Respondido em 03/09/2022 10:06:18 Questão1a Questão2a https://simulado.estacio.br/alunos/inicio.asp javascript:voltar(); Explicação: O procedimento mais conveniente é converter Y para a base 10, somar com X e depois converter o resultado para a base 8. Assim, Y=3416= 3x16 1+4x160=5210. X+Y=3410+5210= 8610. Para converter o resultado da base decimal para a base octal, devemos dividir 86 por 8, guardando o quociente e o resto da divisão, no caso, 10 e 6, respectivamente. O valor 6 será o menos significativo da representação em octal. Na sequência, divide-se o quociente (10) novamente por 8. O novo quociente é 1, com resto 2, o segundo número a ser coletado para formar o octal correspondente. O quociente 1, sendo menor que 8, fornecerá o número mais significativo do octal, que ficará 1268. Acerto: 1,0 / 1,0 O seu grupo de projeto resolveu usar um sistema de numeração de base 4. Qual a notação posicional correta do número 2312 na base 4. 23124= 2x103+3x102+1x101+2x100 23124= 2x43+3x42+1x41+2x40 23124= 2x23+3x22+1x21+2x20 23124= 2x163+3x162+1x161+2x160 23124= 4x23+4x32+4x11+4x20 Respondido em 03/09/2022 10:10:08 Explicação: Uma notação posicional é um sistema numeral no qual cada posição está relacionada à próxima por um multiplicador constante, chamado de base ou raiz desse sistema numeral. O valor de cada posição de dígito é o valor de seu dígito, multiplicado por uma potência da base. A potência é determinada pela posição do dígito. Nesse caso, como a base é 4, esse é o valor elevado à potência em cada posição. Assim, a alternativa A é a correta. Acerto: 1,0 / 1,0 Uma variável chamada vetor pode armazenar até 4 (quatro) valores do tipo inteiro. Foi definida com a seguinte declaração: int vetor[4]; A figura abaixo representa o armazenamento do vetor na memória do computador. Posição de memória 1000 1004 1008 1012 Valor Índice do vetor vetor () vetor(1) vetor(2) vetor(3) Foram executadas as seguintes instruções listadas abaixo: 1. for (int i = 0; i < 4; i++) vetor[i] = 0; 2. vetor[1] = 10; vetor[3] = 20; 3. vetor[1] = vetor[3]/vetor[1]; 4. vetor[0] = vetor[1] + vetor[2]; Qual das opções abaixo representa a sequência armazenada no vetor (vetor[0], vetor[1], vetor[2], vetor[3]) após a execução das instruções acima: 2 0 0 20 0 2 0 20 2 2 0 20 Questão3a Questão4a 2 2 0 22 2 2 0 10 Respondido em 03/09/2022 10:12:10 Explicação: A tabela abaixo apresenta os valores armazenados em cada elemento após a execução dos comandos em cada linha. Nr da linha vetor[0] vetor[1] vetor[2] vetor[3] 1 0 0 0 0 2 0 10 0 20 3 0 2 0 20 4 2 2 0 20 Acerto: 1,0 / 1,0 Interprete o programa abaixo e marque a opção que corresponde ao que o programa resolve. main() { int i; char palavras[4][30]; for(i=0;i<4;i++) { printf("Informe palavra %d: '',i+1); gets(palavras[i]); } for(i=3;i>=0;i--) printf("%s\n'',palavras[i]); } Assinale a opção correta: O programa lê e imprime três palavras. O programa lê e imprime a concatenação de quatro palavras. O programa lê e imprime a concatenação de três palavras. O programa lê e imprime quatro palavras. O programa lê quatro palavras e imprime em ordem inversa às palavras. Respondido em 03/09/2022 10:12:31 Explicação: O programa declara duas variáveis, i e palavra, sendo palavra uma matriz de 4 linhas e 30 colunas. Logo em seguida, a estrutura de repetição for é composta de 2 instruções, a primeira instrução printf imprime na tela a informação: Informe a palavra e em seguida a instrução gets ler a palavra informada e armazena na variável palavras. Após 4 loop na primeira estrutura de repetição for, uma segunda estrutura de repetição for é utilizada para imprimir na tela as 4 palavras armazenadas Acerto: 1,0 / 1,0 Analise o código abaixo. Int n = 1; while (n <= 7) Questão5a Questão6a { printf("n=%d\n",n); n = n + 1; } Após a verificação, escolha uma das opções abaixo que tenha a mesma saída que o comando while. for(n=1; n<=7; n++) printf("n=%d\n",n); for(n=1; n<=7; n--) printf("n=%d\n¿¿,n); for(n=2; n<=7; n+-) printf("n=%d\n'',n); for(n=1; n<=6; n++) printf("n=%d\n",n); for(n=1; n<6; n++) printf("n=%d\n",n); Respondido em 03/09/2022 10:13:18 Explicação: A sintaxe do comando é for(inicialização; condição; incremento) comando(s); Para gerar a sequência 1 2 3 4 5 6 7, a inicialização começa n=1. O valor é incrementado de 1, por isso n=n+1. E a repetição termina quando n<=7, isto é, quando chegou ao valor n=7. Acerto: 0,0 / 1,0 Analise o código abaixo com relação ao escopo das variáveis e o resultado do programa após a execução: 1: #include 2: 3: int imprimir(int X, int Y) 4:{ 5: X--; 6: Y++; 7: printf("Valor de X = %d, Y = %d\n", X, Y); 8:} 9: 10: main () { 11: int X,Y; 12: X = 100; 13: Y = X - 40; 14: imprimir(X,Y); 15: printf ("Valor de X = %d, Y = %d\n", X, Y); 16: } Assinale a resposta correta da saída do programa acima. Valor de X = 99, Y = 61 Valor de X = 100, Y = 60 Valor de X = 100, Y = 60 Valor de X = 60, Y = 61 Valor de X = 100, Y = 60 Valor de X = 100, Y = 60 Questão7a Valor de X = 100, Y = 60 Valor de X = 99, Y = 61 Valor de X = 99, Y = 60 Valor de X = 100, Y = 61 Respondido em 03/09/2022 10:08:23 Explicação: Verifica-se que na linha 14 a função imprimir(X,Y) é chamada e recebe como parâmetros X=100 e Y=60. Após a execução dos comandos nas linhas 5 e 6, X = 99 e Y = 61 (variáveis locais na função imprimir). O comando "printf ("Valor de X = %d, Y = %d\n", X, Y);" (localizado na linha 7) imprime o resultado "Valor de X = 100, Y = 60". Acerto: 1,0 / 1,0 Analise programa abaixo que calcula a área de um cilindro através da função calcula_area(). Considere que: Área do círculo = PI x Raio x Raio, Comprimento da circunferência = 2 x PI x Raio, Programa: #include #define PI 3.14 float calcula_area(____ , ____) { float area = 0; area = __________________; return area; } main() { float altura = 0; float raio = 0; float area = 0; scanf("%f%f",&altura,&raio); area = calcula_area(altura,raio); } Verifique o código da função calcula_area. Observe que tem três espaços a serem completados. Assinalea resposta correta que define os dois parâmetros e a expressão matemática que calcula a área do cilindro pela função calcula_area. float calcula_area(float a , float r) e area = 2*(PI * r * r) + a*(2*PI*r) float calcula_area(float a , float r) e area = (PI * r * r) + a*(2*PI*r) float calcula_area(a , r) e area = 2*(PI * r * r) + a*(2*PI*r) float calcula_area(float a , float r) e area = (PI * r * r) + (2*PI*r) float calcula_area(int a , int r) e area = 2*(PI * r * r) + a*(2*PI*r) Respondido em 03/09/2022 10:18:16 Explicação: ( ) Questão8a A função calcula_area recebe dois parâmetros do tipo float (número real). A altura representada pela variável a e o raio, representado pela variável r. Assim, precisa definir dois parâmetros (float a , float r). A área do cilindro é a soma de três áreas: área da base superior (PI * r * r) mais área da base inferior (PI * r * r) mais área da superfície lateral a*(2*PI*r). Assim, a área total é representada pela expressão area = 2*(PI * r * r) + a*(2*PI*r). Acerto: 1,0 / 1,0 Um processo de depuração tradicional interrompe a execução do programa para examinar variáveis e estado das memórias e registradores. Qual a desvantagem desse processo em sistemas embarcados? Parar o programa pode reduzir o tempo de processamento do sistema. Parar o programa pode interferir no comportamento do sistema. Parar o programa pode alterar os registradores da CPU. Parar o programa pode mudar os valores das variáveis na memória RAM. Parar o programa pode consumir mais energia. Respondido em 03/09/2022 10:13:49 Explicação: Alguns programas embarcados não podem ser analisados com o seu código parado, como, por exemplo, os que realizam atuação em função de dados que recebem, como em controle de malha fechada. Assim, parar o programa pode interferir no comportamento do sistema. Nesse caso, técnicas de impressão ou rastreamento podem ser utilizadas, em que o dispositivo em teste envia constantemente informações de depuração, sem interrompê-lo. Acerto: 1,0 / 1,0 Avalie as asserções a seguir e a relação sugerida entre elas. I. Um analisador lógico, instrumento para capturar, exibir e medir vários sinais eletrônicos simultaneamente em um circuito digital, pode ser usado na depuração de rastreamento em tempo real PORQUE II. Ele pode avaliar sinais do sistema embarcado sem alterar ou interferir no desempenho do processo. A respeito dessas asserções, assinale a alternativa correta. As asserções I e II são proposições verdadeiras e a II é uma justificativa correta da I. A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. As asserções I e II são proposições falsas. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. Respondido em 03/09/2022 10:15:12 Explicação: Verificar sinais com analisadores lógicos é um método de depuração que não lê registros que podem causar um efeito colateral no dispositivo, atrasando o processamento, como ocorre, por exemplo, com a depuração por impressão de dados por porta serial. O impacto do depurador no dispositivo é bem definido. Existe o controle sobre o que acontece com o depurador e como ele afeta o dispositivo de destino. Assim, como não afeta o determinismo do dispositivo, o analisador lógico pode ser usado na depuração de rastreamento em tempo real. Questão9a Questão10a javascript:abre_colabore('38403','291872531','5592529355');
Compartilhar