Você está na página 1de 8

Aplicações Informáticas B – 12º Ano

Nov. 2016
FICHA FORMATIVA

Grupo I

1. - Explique qual a diferença entre uma linguagem de programação de baixo e de alto nível.

R: As linguagens de baixo nível são as que se aproximam da linguagem máquina (0-1),


enquanto as linguagens de alto nível são as que se aproximam da linguagem humana.
Exemplo de linguagem de baixo nível: Assembly.
Exemplo de linguagem de alto nível: Pascal.

2. - Refira o que entende por algoritmo.

R: Um algoritmo é uma representação da sequência lógica das tarefas que permitem obter
um determinado objetivo, ou chegar à solução de um dado problema.
São exemplos de representações algorítmicas os fluxogramas, os pseudocódigos ou as
tabelas de decisão*.

* Não estudadas nas aulas.

3. - Refira o que entente por programa.

R: Um programa é uma sequência de instruções, dinamicamente relacionadas, de forma a


operar sobre dados de entrada (input) para gerar saídas ou resultados (output).
Os programas devem resultar da codificação de algoritmos devidamente testados (tracing),
de modo a serem fiáveis e otimizados, isto é, o mais eficazes e eficientes possíveis.

4. - Quais os quatro tipos de variáveis standard estudadas em Pascal?

R: Integer, real, char e boolean.

5. - Estabeleça as principais diferenças entre as seguintes estruturas de controlo:


5.1. - Repetir e Enquanto.
R: A estrutura repetir implica a execução do ciclo, de pelo menos uma vez,
independentemente da condição de saída do ciclo (ou condições), dado que o teste
da condição é sempre executado no final do ciclo.
Na estrutura enquanto, é possível que o ciclo de instruções nunca seja realizado,
porquanto a condição de saída do ciclo (ou condições) é sempre testada antes da
execução do ciclo.

5.2. - Enquanto e Para.

R: Na estrutura enquanto, é necessário implementar um contador com recurso a


uma variável contadora (com incrementos ou decrementos), por exemplo, i:=i+1 ou
i:=i-1.
Na estrutura para a variável contador é implementada de forma automática pela
própria estrutura para, não sendo o programador a escrever as instruções de
incremento ou decremento da variável contadora, tais como i:=i+1 ou i:=i-1.
A estrutura para utiliza-se quando sabemos à partida o nº de vezes que o ciclo vai ser
realizado.

5.3. - Se e Caso.

R: A estrutura se determina o valor lógico de uma ou mais condições e encaminha a


realização das ações em função dos valores lógicos das condições.
Por outras palavras, se a condição for verdadeira realiza um conjunto de ações, mas
se for falsa, outras ações serão realizadas.
A estrutura caso difere da estrutura se, na medida em que se destina a múltiplos
encaminhamentos de ações a partir de múltiplos valores possíveis de uma dada
condição. Por exemplo: Se o valor da variável for 1, fazer ações 1; se for 2, fazer,
ações 2; se for 3, fazer ações 3; etc…

6. - Explique qual a diferença entre os operadores = e := na linguagem Pascal.

R: Em Pascal, o símbolo = trata-se de um operador relacional.


Por exemplo, X=3 pode resultar em verdadeiro ou falso.
Em Pascal, o símbolo := trata-se de uma instrução de atribuição.
Por exemplo, X:=3 significa atribuir 3 à variável X, ou seja, carregar a variável X com o valor 3.

7. – É possível executar um ciclo infinito numa dada linguagem de programação? Justifique a


sua resposta, recorrendo a uma pequena representação algorítmica.

R: Apesar de ser possível, trata-se de uma situação indesejável.

Algoritmo infinito
Variável
i:inteiro
Início
i1
Enquanto (i >= 1)
Fazer
Escrever (i)
ii+1
Fim Fazer
Fim

Explicação: Neste caso, a variável i terá sempre um valor maior ou igual a 1. Como a
condição do ciclo determina que este seja repetido com i maior ou igual a 1, o ciclo será
infinito.

Grupo II

1. - Elabore um algoritmo, na forma de um fluxograma, representativo do cálculo da área de


um círculo, dada a medida do seu raio.

R: Início

Lê (raio)

area  3,14 * raio^2

Escreve(area)

Fim
2. - Elabore um algoritmo representativo da troca dos conteúdos de duas variáveis
numéricas.
2.1. - Recorrendo exclusivamente a operações de atribuição.

R:
Algoritmo troca1
Variáveis
a, b, aux: inteiros
Início
Ler (a)
Ler (b)
aux a
a b
b  aux
Escrever (a)
Escrever (b)
Fim

2.2. - Através de um processamento baseado em cálculos.

R: Algoritmo troca2
Variáveis
a, b: inteiros
Início
Ler (a)
Ler (b)
a a+b
b a-b
a  a-b
Escrever (a)
Escrever (b)
Fim
3. - Elabore um algoritmo, na forma de um pseudocódigo, representativo de um processo
que determine o maior e o menor de dez números introduzidos a partir do teclado.

R:
Algoritmo maior_menor
Variáveis
i, n, menor, maior: inteiros
Início
Ler (n)
maiorn
menorn
Para i 2 até 10
Fazer
Ler (n)
Se (n > maior)
maior  n
Senão
Se (n < menor)
menor  n
Fim Se
Fim Se
Fim Fazer
Escrever (maior, menor)
Fim

4. - Elabore um algoritmo, na forma de um pseudocódigo, representativo da soma dos


primeiros 100 números naturais. A cada alteração do valor da variável acumuladora, deverá
ser escrito o seu valor no ecrã do computador.

R:
Algoritmo acumular
Variáveis
i, acum: inteiros
Início
acum0
Para i 1 até 100
Fazer
acum acum + i
Escrever (acum)
Fim Fazer
Fim
5. - Elabore um algoritmo representativo da média das idades de cinco indivíduos.

R:
Algoritmo media
Variáveis
i, idade, soma: inteiros
Início
soma0
Para i 1 até 5
Fazer
Ler (idade)
soma soma + idade
Fim Fazer
Escrever (soma/i)
Fim

Grupo III

1. – Preencha adequadamente os espaços assinalados, considerando que o seguinte


algoritmo representa a escrita de todos os números impares entre 1 e 10000, bem como
a soma dos referidos números.
Início
c_par  0
tot_par  0
c_imp  0
tot_imp  0
Para i 1 até 10000
Se (i mod 2 = 0)
c_par  c_par + 1
tot_par tot_par + i
Senão
c_imp c_imp + 1
tot_imp  tot_imp + i
Fim Se
Escrever (‘Nºs pares contados ’, c_par, ‘ Nºs ímpares contados ’, c_imp)
Escrever (‘Nºs pares somados ‘, tot_par,’ Nºs pares somados ‘, tot_imp)
Fim

Nota: a mod b devolve o resto da divisão de a por b.


2- Codifique para a linguagem Pascal os algoritmos relativos às questões 1, 2 e 5 do Grupo II.

R:
1-
PROGRAM area_circ;
CONST
pi=3.14159;
VAR
area, raio: REAL;
BEGIN
CLRSCR;
WRITE (‘Medida do raio? ’);
READLN (raio);
area:=pi*SQR(raio);
WRITELN (area);
READKEY
END.

2.1. -
PROGRAM trocas;
VAR
a, b, aux: INTEGER;
BEGIN
CLRSCR;
WRITE (‘Valor de a: ’);
READLN (a);
WRITE (Valor de b: ’);
READLN (b);
aux :=a;
a:= b;
b:= aux;
WRITE (‘a= ’, a, ‘b= ’, b);
READKEY
END.
2.2. -
PROGRAM trocas1;
VAR
a, b: INTEGER;
BEGIN
CLRSCR;
WRITE (‘Valor de a: ’);
READLN (a);
WRITE (Valor de b: ’);
READLN (b);
a:= a+b;
b:= a-b;
a:=a-b;
WRITE (‘a= ’, a, ‘b= ’, b);
READKEY
END.

5–

PROGRAM media_id;
VAR
soma, i, idade: INTEGER;
BEGIN
CLRSCR;
soma:=0;
FOR I :=1 TO 5 DO
BEGIN
WRITE (‘Idade: ’);
READLN (idade);
soma := soma + idade
END;
WRITELN (‘A media das idades é igual a; ’, soma/i);
READKEY
END.

Você também pode gostar