Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disc.: PROGRAMAÇÃO APLICADA A SISTEMAS ELÉTRICOS Acertos: 10,0 de 10,0 1a Questão Acerto: 1,0 / 1,0 Você precisa simplificar a expressão abaixo, usando as regras da álgebra booleana para usar menos portas lógicas no circuito a ser montado e diminuir o consumo. Qual a expressão simplificada? ABC+A¯BB¯C+AB¯CC¯ A+BC AB+B+C B+¯CC¯ A(B + C) AB+C Respondido em 10/10/2022 13:05:51 Explicação: Partindo da expressão original, ABC+A¯BB¯C+AB¯CC¯, deve-se usar as regras a seguir: aplicando a regra ABC + ABC = ABC, reescrevemos a expressão: ABC+ABC+A¯BB¯C+AB¯CC¯. Aplicando a regra Distributiva entre as expressões 1 e 3; 2 e 4, temos: AC(B+¯BB¯)+AB(C+¯CC¯). Usando C + ¯CC¯ = 1 e B +¯BB¯ = 1, temos AC+AB. E por final, fatorando, temos: A(B + C). 2a Questão Acerto: 1,0 / 1,0 Avalie as asserções a seguir e a relação sugerida entre elas. I. Sobre os fatores de vantagem que a linguagem C acrescentou ao desenvolvimento com de sistemas embarcados, com relação à linguagem de montagem, podemos citar a portabilidade. PORQUE II. A portabilidade permite, principalmente em sistemas embarcados, o uso do código com poucas modificações para uso em outra arquitetura de processador, característica que não está presente na linguagem de montagem. A respeito dessas asserções, assinale a alternativa correta. As asserções I e II são proposições falsas. As asserções I e II são proposições verdadeiras e a II é uma justificativa correta da I. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. Respondido em 10/10/2022 13:06:49 Explicação: Como os programas em linguagem de montagem são específicos para um processador, que possui arquitetura diferente de outros processadores, a linguagem não oferece portabilidade entre os sistemas. Para superar essa desvantagem, várias linguagens de alto nível, incluindo C, surgiram. Dentre elas, C obteve ampla aceitação e continua sendo a preferida em sistemas embarcados. A portabilidade é uma característica atribuída a um programa se ele puder ser usado em um sistema operacional ou arquitetura diferente daquele em que foi criado, sem a necessidade de grandes retrabalhos. 3a Questão Acerto: 1,0 / 1,0 Você chegou à expressão lógica (1) abaixo para implementar um circuito lógico de desligamento de uma máquina. Porém, o gerente técnico pediu para você usar a expressão lógica (2) no lugar, dizendo que é equivalente a (1). Que regra(s) ele usou para fazer esta alteração? Distributiva e idempotente Associativa Idempotente De Morgan Comutativa e distributiva Respondido em 10/10/2022 13:08:44 Explicação: Teoremas de De Morgan são basicamente dois conjuntos de regras ou leis desenvolvidas a partir das expressões booleanas para AND, OR e NOT usando duas variáveis de entrada, A e B. Essas duas regras ou teoremas permitem que as variáveis de entrada sejam negadas e convertidas de uma forma de função booleana em uma forma oposta. O segundo teorema, usado neste caso, afirma que duas (ou mais) variáveis NAND juntas são iguais aos dois termos invertidos (complemento) em uma operação lógica OR, o que nos leva à expressão: ¯A¯BA¯B¯=¯AA¯ + ¯BB¯ . A lei idempotente é aplicada quando é realizada uma operação AND ou OR consigo mesma. A associativa trabalha com 3 variáveis. Já na comutativa, não importa em que ordem usamos as variáveis. 4a Questão Acerto: 1,0 / 1,0 Com relação às estruturas de repetição (ou laços) na linguagem C, o for, while e do-while. Qual opção abaixo é verdadeira? No laço for, o número de vezes que as cargas iniciais são executadas (inicialização) é sempre igual ao número de iterações do laço. No laço for ou while, o número de vezes que a condição é testada é sempre igual ao número de iterações do laço. A condição dentro de um laço while e do-while não precisa ser colocada dentro de parênteses. Os laços while e for executam sempre, pelo menos uma vez, o corpo do laço. O laço do .. while executa sempre, pelo menos uma vez, o corpo do laço. Respondido em 10/10/2022 13:13:43 Explicação: No comando do-while, a condição é testada no final do loop. Assim, os comandos ou comando serão executados pelo menos uma vez. No comando while, o teste da condição é realizado no início do bloco de instruções, por isso, pode ser que não seja executado. Já no laço for, os comandos serão executados um número determinado de vezes. 5a Questão Acerto: 1,0 / 1,0 Um programa gera a sequência: 1 3 5 7 9. Qual das opções abaixo representa o código que gera a sequência acima? Obs: a variável n é do tipo inteira. for(n=1; n<=8; n=n+2) printf("%d '', n); for(n=1; n<10; n=n+1) printf("%d '', n); for(n=1; n<10; n=n+2) printf("%d '', n); for(n=1; n<=10; n=n+1) printf("%d '', n); for(n=2; n<9; n=n+2) printf("%d '', n); Respondido em 10/10/2022 13:14:21 Explicação: A sintaxe do comando é for(inicialização; condição; incremento) comando(s); Para gerar a sequência 1 3 5 7 9, a inicialização começa n = 1. O valor é incrementado de 2, por isso n = n + 2. E a repetição termina quando n<10, isto é, quando n=9. 6a Questão Acerto: 1,0 / 1,0 Dentre os operadores da linguagem C, o operador ternário (?) pode substituir a estrutura de condição if¿else. Dado a instrução abaixo: numero >= 0 ? numero++ : numero--; Se o valor da variável (numero) for -10, qual será o resultado do comando? 10 11 -10 9 -11 Respondido em 10/10/2022 13:15:06 Explicação: Vamos explicar o código: numero >= 0 ? numero++ : numero--; Neste código se o número for maior ou igual a zero será incrementado, caso contrário será decrementado de uma unidade. Como a variável numero tem valor -10, que é menor que zero, então a variável será decrementada. 7a Questão Acerto: 1,0 / 1,0 Interprete o código abaixo e assinale a opção correta quanto ao valor retornado pela função recursividade com o parâmetro de valor 4. #include int recursividade(int n) { if (n>0) { n = 2*recursividade(n-1); return n; } else return 1; } int main() { recursividade(4); } Assinale a opção correta. 128 16 64 32 4 Respondido em 10/10/2022 13:15:15 Explicação: A função recursividade calcula o valor de 2n, sendo n o expoente. Assim, como o parâmetro recebido de função é 4, o valor retornado é 24 = 16. 8a Questão Acerto: 1,0 / 1,0 Analise o programa abaixo e responda a 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. 10; 6,2; 10. 21; 6,2; 10. 10; 6,2; 21. 21; 6,0; 10. 20; 6,0; 11. Respondido em 10/10/2022 13:15:24 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 9a Questão Acerto: 1,0 / 1,0 ''A área de sistemas embarcados representa um mercado imenso, da ordem de alguns bilhões de unidades produzidas anualmente, envolvendo microcontroladores de 8 a 64 bits. Historicamente, o desenvolvimento de software para sistemas embarcadoera conduzido por técnicos e engenheiros em eletrônica uma vez que apenas eles eram capazes de compreender as especificidades dos circuitos por eles projetados. Com o aumento da complexidade do software embarcado, passou a haver uma necessidade crescente de aplicação de processos e técnicas de engenharia de software no desenvolvimento de sistemas embarcados.''(STADZISZ, Paulo Cézar; RENAUX, Douglas Paulo Bertrand. Software Embarcado. Curitiba: Universidade Tecnológica Federal do Paraná, (s.d.).) O texto apresentado nos leva a concluir que programar para sistemas embarcados se tornou mais simples do que para computadores de mesa. programar para sistemas embarcados não necessita mais de expertise em eletrônica. As IDEs vieram para tornar o desenvolvimento de sistemas embarcados mais complexo. programar para sistemas embarcados se tornou uma atividade que exige ferramentas mais completas, como IDEs. As IDEs utilizadas em computadores de uso geral podem ser utilizadas agora em sistemas embarcados. Respondido em 10/10/2022 13:15:46 Explicação: Os sistemas embarcados, tornando-se mais complexos, trazem maior exigência para os profissionais que atuam na área. As equipes de desenvolvimento passam a ter necessidade de contar, além da expertise em eletrônica, com conhecimento em ferramentas utilizadas na engenharia de software, e as IDEs específicas para sistemas embarcados facilitam a implementação dessas técnicas, simplificando o processo e aumentando a produtividade. 10a Questão Acerto: 1,0 / 1,0 O IDE (ambiente de desenvolvimento integrado) reúne recursos em um mesmo ambiente para facilitar o desenvolvimento de sistemas embarcados. Qual o mínimo de recursos para um software ser considerado um IDE para desenvolvimento de aplicações embarcadas com microcontroladores? Gerenciador de projeto e depurador. Editor de texto e compilador. Gerenciador de projeto e montador. Compilador, depurador e editor de texto. Editor de texto, gerenciador de projeto e ferramentas de compilação. Respondido em 10/10/2022 13:15:55 Explicação: As ferramentas mais comuns para se programar sistemas embarcados passaram a ser reunidas em um mesmo ambiente nas IDEs. Assim, os programadores não precisam mais sair de um programa e passar para outro, do editor para o compilador ou montador, continuamente. Além dessas ferramentas, o editor de texto e as possíveis ferramentas de compilação, os IDEs precisam ter no mínimo um gerenciador de projeto, em que os arquivos-fonte podem ser acrescentados. Depuradores são encontrados hoje nos melhores IDEs, mas não são imprescindíveis para o desenvolvimento de sistemas mais simples.
Compartilhar