Prova 1 Resolucao 1
Prova 1 – 22/09/2008 – Resolução
Prof. Marcus Vinícius Midena Ramos
Engenharia de Computação – UNIVASF
Questão 1 (1,2 ponto):
Descreva, de forma clara, completa e concisa, a sintaxe e a semântica dos seguintes comandos da linguagem Visualg:
a) enquanto ... fimenquanto
Sintaxe:
enquanto <expr> faca <com> fimenquanto
Semântica:
(i) <expr> é avaliada; (ii) se o seu valor for verdadeiro, <com> é executado e retorna-se ao passo
(i); (iii) se o seu valor for falso, o comando enquanto é encerrado.
b) repita ...
Sintaxe:
repita <com> ate <expr>
Semântica:
(i) <com> é executado; (ii) <expr> é avaliada; (iii) se o seu valor for falso, retorna-se ao passo (i);
(iv) se o seu valor for verdadeiro, o comando repita é encerrado.
c) para ... fimpara
Sintaxe:
para <var> de <expr1> ate <expr2> [passo <expr3>] faca <com> fimpara Semântica:
(i) <var> é inicializada com o valor de <expr1>; (ii) se <var> <= <expr2>, então <com> é executado; <var> <- <var> + <expr3> e retorna-se ao passo (i); (iii) se <var> > <expr2>, então o comando para é encerrado. Nota 1: se <expr3> não for especificada, considera-se o valor 1.
Nota 2: se <expr3> resultar num valor negativo, então <var> é decrementada (ao invés de ser incrementada) e <com> é executado apenas se <var> >= <expr3>.
Questão 2 (0,8 ponto):
A conversão de base de um número pode ser feita através de divisões inteiras sucessivas desse número pela base desejada, até que o resultado seja zero. O resto obtido em cada operação corresponde à um novo algarismo do número na nova base: Exemplo de conversão de 125 da base 10 para a base 2:
Número:
125
62
31
15
7
3
1
Portanto,
.
Dividido por 2, resulta: 62
31
15
7
3
1
0
Dividido por 2, resta: 1
0
1
1
1
1
1
Deseja-se elaborar um algoritmo que aceite como entrada um número inteiro na base 10 e gere na saída o número correspondente na base 2. Preencha as lacunas no algoritmo abaixo para que esse efeito seja alcançado: algoritmo "conversão" var n, _______: _______
inicio