2014/2015 Aplicações Informáticas B 12ºAno Ficha de Revisão Preenchimento dos espaços (,,...,) assinalados no algoritmo seguinte com os «termos» adequados 10 2x5 Algoritmo ORDENAÇÃO ________________________ O vetor K de N elementos, é ordenado por ordem crescente. O1. [Inicialização] LIMITE N TROCA ______________ O2. [Passagens só enquanto houver trocas] DO WHILE TROCA > 0 TROCA _______ OB3. [Compara e troca] DO FOR J = 1 TO ________________ IF K [ J ] > K [ J + 1 ] THEN X K [ J ] K[J]K[J+1] K[J+1]X TROCA J LIMITE __________ O4. [Termina] □ EXIT Dadas as seguintes passagens, que algoritmo de ordenação foi utilizado? 8 9 3 4 7 6 3 9 4 7 6 3 4 9 7 6 3 4 6 7 9 3 4 6 7 9 Vetor Inicial (por ordenar) 32 8x4 Considerando o seguinte vetor, indique como este fica organizado, após cada passagem, dos algoritmos de ordenação, por Seleção, Inserção Direta, Bolha e ordenação Agitada. 8 4 3 2 5 Transcreva para a sua folha de prova os «termos» adequados ao preenchimento dos espaços (, , , e ) no algoritmo que se segue. 10 2x5 O algoritmo seguinte calcula e imprime o acréscimo de preço, em percentagem, de cada obra em leilão, relativamente à sua base de licitação (preço inicial fixado para cada peça). São utilizados os vetores PBASE, PVENDA e OBRAS que contém, respetivamente, a base de licitação de cada obra, o preço atingido no leilão e os nomes das obras. Consideram-se os vetores PBASE, PVENDA e OBRAS previamente preenchidos para 100 obras, e que os seus índices coincidem com o código atribuído a cada obra. As obras que não forem vendidas (preço de venda igual a zero) não devem constar no relatório produzido. 1.[Cálculo e impressão da listagem de acréscimos] DO FOR I = 1 TO ______ IF PVENDA [ I ] < > 0 THEN _________ ( _________ - _________ ) / PBASE [ I ] * 100 PRINT ( ‘ O acréscimo para’, OBRAS [ ________ ], ‘ foi de’ , ACRÉSCIMO, ‘ %’ ) 2.[TERMINAR] EXIT 10 Identifique a função do algoritmo seguinte, atribuindo-lhe um título, preenchendo a sua descrição e comentando o passo 2. Algoritmo _________________________________ _____________________________________________________________________________ _____________________________________________________________________________ _1.[Ler os 10 elementos do vetor K e X ] Repita para I = 1, 2, …, 10 Leia ( K [ I ], X [ I ] ) _2.[_____________________________ ] Repita para I = 1, 2, …, 10 SE TRUNC ( I / 2 ) = I / 2 ENTÃO Y [ I ] K [ I ] - X [ I ] SENÃO Y [ I ] K [ I ] + X [ I ] _3. [ Terminar ] Saída Nota: A função TRUNC ( ) retorna o valor inteiro do seu argumento. Um aluno desenvolveu um programa na sua prova prática de programação. 18 3x6 Identifique os seis erros que o aluno cometeu na elaboração do programa, justificando. Sub Main() Dim n As Integer Dim refeições(n - 1) As Integer Dim promoções(n - 1) As Integer Console.Write("Quantos clientes? ") n = Console.ReadLine() Console.WriteLine(" ") Console.WriteLine("Digite o número de refeições de cada cliente!") Console.WriteLine(" ") For i = 0 To n - 1 Console.Write("Cliente nº " & i + 1 & " ") Console.ReadLine() Next For i = 0 To n - 1 promoções(n) = Int(refeições(n) / 10) Next Console.WriteLine(" ") Console.WriteLine("Refeições Grátis!") Console.WriteLine(" ") For i = n To n - 1 If promoções(i) > 0 Then Console.WriteLine("Cliente nº " & i + 1 & " = " & promoções(i)) End If Next Console.ReadLine() End Sub Identifique os quatro erros que o aluno cometeu na elaboração 12 3x4 do programa, justificando Sub Main() Dim meses(11) As String Dim temperatura(11), soma, média, max As Decimal Dim i, mês As Integer meses(0) = "Janeiro" meses(1) = "Fevereiro" meses(2) = "Março" meses(3) = "Abril" meses(4) = "Maio" meses(5) = "Junho" meses(6) = "Julho" meses(7) = "Agosto" meses(8) = "Setembro" meses(9) = "Outubro" meses(10) = "Novembro" meses(11) = "Dezembro" soma = 0 média = 0 max = -50 mês = 0 Console.WriteLine("Introduza as temperaturas:") For i = 0 To 11 Console.Write(meses(i) & " : ") temperatura(i) = Console.ReadLine() soma = soma + 1 If temperatura(i) > soma Then max = temperatura(i) i = mês End If Next Console.WriteLine("O mês com a temperatura mais elevada foi: " & meses(mês)) média = soma / 11 Console.WriteLine("A temperatura média anual é: " & média) Console.WriteLine("Meses com temperatura igual ou superior à média: ") For i = 0 To 11 If temperatura(i) >= média Then Console.WriteLine(meses(i)) End If Next Console.ReadLine() End Sub