Baixe o app para aproveitar ainda mais
Prévia do material em texto
Teste de Conhecimento avalie sua aprendizagem PROGRAMAÇÃO APLICADA A SISTEMAS ELÉTRICOS Lupa Calc. EEX0138_202002335491_TEMAS Aluno: RODRIGO GONÇALVES RIBES Matr.: 202002335491 Disc.: PROGRAMAÇÃO APLI 2022.1 - F (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. 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? I, II e III I, III e IV II e III Somente a II II, III e IV Data Resp.: 29/03/2022 22:05:51 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. 2. 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? 201 126 207 156 116 Data Resp.: 29/03/2022 22:09:20 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= 3x161+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. 3. Um sistema embarcado pode ser gerenciado por software embarcado ou não, dependendo do dispositivo central de processamento utilizado no projeto. Qual alternativa abaixo corresponde aos dispositivos que podem controlar um sistema embarcado sem software embarcado? 1-3 4-5 1-2 5-6 3-5 Data Resp.: 29/03/2022 22:14:42 Explicação: Essencialmente, um FPGA é um circuito de hardware que um usuário pode programar para realizar uma ou mais operações lógicas. Os FPGAs são circuitos integrados formados por conjuntos de circuitos em forma de array ou matrizes. Esses circuitos, ou matrizes, são grupos de portas lógicas programáveis, memória ou outros elementos. Assim, o projetista pode descrever seu hardware de controle, que não terá um software embarcado ou firmware. Os ASICs seguem a mesma abordagem de criação de um hardware de controle específico. Porém, eles são projetados e fabricados sem possibilidade de serem reprogramados, como os FPGAs. Assim, funcionam da mesma forma durante toda a vida útil. 4. Interprete o programa abaixo e assinale qual das opções será impressa na saída. #define TAM 4 main() { int i = 0; int x = 1000; int v[TAM] = {30,20,30,40}; for (i=0;i<tam;i++)< p=""></tam;i++)<> x = x - v[i]; printf("%d",x); } Assinale a opção correta: 880 770 800 780 870 Data Resp.: 29/03/2022 22:14:31 Explicação: O programa realiza a subtração dos elementos do vetor com a variável x. A expressão aritmética x = x - v[i] é executada a cada iteração do comando for. Quando i = 0 e x = 1000, a expressão x = x - v[0] = 1000 ¿ 30 = 970. Quando i = 1, x = 970 ¿ 20 = 950. Quando i = 2, x = 950 ¿ 30 = 920. Quando i = 3 (última rodada), x = 920 ¿ 40 = 880. 5. Dado o trecho de código abaixo que mostra a definição da struct Disciplina e a inicialização da variável banco_dados: Disciplina { char curso[40]; char professor[3010]; } ; struct Disciplina banco_dados = {"Computação", "José Carlos da Silva"}; Ao analisar o código, assinale a alternativa correta quanto ao acesso aos dados da variável banco_dados a serem impressos: printf("%s - %s", banco_dados.curso, banco_dados->professor);. printf("%s - %s", banco_dados->curso, banco_dados->professor);. printf("%s - %s", disciplina.curso, banco_dados.professor);. printf("%s - %s", disciplina.curso, disciplina.professor);. printf("%s - %s", banco_dados.curso, banco_dados.professor);. Data Resp.: 29/03/2022 22:14:05 Explicação: A variável é banco dados. Para acessar os campos a sintaxe é nome variavel estrutura.nome elemento. Um ponto fica entre o nome da variável e o nome do elemento (ou campo). 6. A respeito da estrutura struct da linguagem C, podemos afirmar que: Quando precisamos definir a diagonal de uma matriz quadrada, usamos o tipo de dados struct para armazenar a matriz. Uma estrutura é um conjunto de uma ou mais variáveis agrupadas sob um único nome, de forma a facilitar a sua referência. A estrutura struct da linguagem C permite incluir, em uma única entidade, somente elementos de tipos diferentes. Normalmente, os elementos da estrutura struct da lingagem C não tem nenhuma relação semântica com o nome da estrutura. Por exemplo: os elementos associados a uma identidade pessoal (número, nome e data de nascimento). A definição de uma estrutura (struct) é baseada no tipo de dado chamado vetor (array). Data Resp.: 29/03/2022 22:13:50 Explicação: As estruturas em C (que correspondem aos registros em outras linguagens) permitem colocar, em uma única entidade, elementos de tipos diferentes. Uma estrutura é um conjunto de uma ou mais variáveis (também chamadas de campos ou membros) agrupadas sob um único nome, de forma a facilitar a sua referência. 7. Com relação ao conceito de passagem de parâmetros, assinale a opção correta. Um programa em C não precisa da função main() escrita no seu código, quando existem outras funções presentes no programa. Sempre que uma função é invocada (ou chamada), a função main() continua a executar suas instruções. Após o término de seu funcionamento, a função tem que devolver um valor para o programa que a invocou. O código de uma função só é executado quando esta é invocada em alguma parte do programa a que está de algum modo ligado. O número de parâmetros enviados para uma função pode ser diferente do número de parâmetros existentes no cabeçalho da função, pois a função emprega os parâmetros que ela necessita. Data Resp.: 29/03/2022 22:13:41 Explicação: O código de uma função só é executado quando esta é invocada em alguma parte do programa a que está de algum modo ligado. 8. Analise o programa abaixo e respondaa opção correta: 01: #include 02: 03: int f1 (int x, int y) { 04: int res; 05: if (y != 0) { 06: res = x / y; 07: else { 08: res = 1 / x; } 09: while (x > y) { 10: res = res + x; 11: x = x - 4; 12: } 13: return res; 14: } 15: 16: main() { 17: f1(10,2); 18: f1(5, 0); 19: f1(8, 4); 20: } Assinale a resposta correta com o valor da variável res, na sequência das chamadas da função f1. 21; 6,2; 10. 21; 6,0; 10. 20; 6,0; 11. 10; 6,2; 10. 10; 6,2; 21. Data Resp.: 29/03/2022 22:13:25 Explicação: A tabela abaixo mostra os valores das variáveis x, y e res após a execução da função f1 nas três chamadas. Chamada da Função f1(10,2) f1(5,0) f1(8,4) Variável x y res x y res x y res Valor 10 2 21 5 0 6,2 8 4 10 9. Em programas embarcados nas placas da plataforma Arduino simuladas no Tinkercad, existe uma função que é chamada uma vez quando o programa é iniciado para realizar a configuração do microcontrolador. Qual é o nome dessa função? loop() output() input() setup() config() Data Resp.: 29/03/2022 22:13:18 Explicação: A função setup() é chamada uma vez quando o programa é iniciado. Deve ser usada para inicializar os modos dos pinos e configurar a comunicação serial, entre outras configurações necessárias para o projeto. Ela deve ser incluída em um programa para Arduino, mesmo que não haja instruções a serem executadas. 10. Examine as afirmações a seguir sobre técnicas de depuração em software embarcado. I - Com base no LED piscando é possível obter conhecimento sobre o que está acontecendo em um sistema embarcado. Isso certamente funciona para sistemas de computador muito simples e lentos. II - Verificar a alternância de dados em pinos com um analisador lógico permite inspecionar sinais mais rápidos do que com LEDs. III - Emitir informações usando o canal de comunicação serial do microcontrolador permite inspecionar sinais mais rapidamente do que com LEDs ou analisador lógico. Quais afirmações estão corretas? Somente I e II estão corretas. Somente II e III estão corretas. Somente I e III estão corretas. Somente a II está correta. Somente a I está correta. Data Resp.: 29/03/2022 22:13:08 Explicação: Uma transmissão por porta serial é mais rápida para enviar informações do que um LED, pois piscar um LED em alta velocidade não permite ao observador identificar se ele está aceso ou apagado. Essa mesma informação seria mais facilmente identificada por um analisador lógico, que registra sinais digitais muito mais rapidamente do que um observador pode registrar no piscar de um LED. Então, as afirmações I e II estão corretas. A afirmação III está incorreta, pois um analisador lógico é mais rápido para registrar informações do que uma transmissão serial de microcontrolador pode realizar. Não Respondida Não Gravada Gravada
Compartilhar