Noçoes basicas de algoritmia e programaçao

10
Laboratórios de Informática MIEA 2009/10 Profª Catarina Castro Tema2_1 Noções Básicas de Algoritmia e Programação 1. O QUE É UM ALGORITMO? Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, cada uma das quais pode ser executada mecânicamente num período de tempo finito e com uma quantidade de esforço finita. O conceito de algoritmo é frequentemente ilustrado pelo exemplo de uma receita, embora muitos algoritmos sejam mais complexos. Podem repetir passos (fazer iterações) ou necessitar de decisões (tais como comparações ou lógica). Um algoritmo corretamente executado não irá resolver um problema se estiver implementado incorretamente ou se não for apropriado ao problema. Um programa de computador é essencialmente um algoritmo que diz ao computador os passos específicos e em que ordem eles devem ser executados. ETAPAS NA RESOLUÇÃO DE UM PROBLEMA Exemplo Calcular a área de um rectângulo sendo dados os valores do comprimento e da largura. Corpo do ALGORITMO: LEIA (comprimento, largura); area comprimento * largura; ESCREVA (area); Código VBA: Private Sub CommandButton1_Click () Dim comprimento, largura, area As Double comprimento = Val(InputBox("Comprimento?")) largura = Val(InputBox("Largura?")) area = comprimento * largura MsgBox (Str(area)) End Sub Para inserir o script no Visual Basic do Excel sugere-se, por exemplo, que no menu “Developer” insira um botão de comando usando “insert form controls”; depois clicando sobre o botão com a tecla do lado direito do rato escolha “assign macro” e finalmente “edit” abre a janela de edição VB.

Transcript of Noçoes basicas de algoritmia e programaçao

Page 1: Noçoes basicas de algoritmia e programaçao

Laboratórios de Informática MIEA 2009/10

Profª Catarina Castro Tema2_1

Noções Básicas de Algoritmia e Programação

1. O QUE É UM ALGORITMO?

Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, cada uma das quais pode ser executada mecânicamente num período de tempo finito e com uma quantidade de esforço finita.

O conceito de algoritmo é frequentemente ilustrado pelo exemplo de uma receita, embora muitos algoritmos sejam mais complexos. Podem repetir passos (fazer iterações) ou necessitar de decisões (tais como comparações ou lógica). Um algoritmo corretamente executado não irá resolver um problema se estiver implementado incorretamente ou se não for apropriado ao problema.

Um programa de computador é essencialmente um algoritmo que diz ao computador os passos específicos e em que ordem eles devem ser executados.

ETAPAS NA RESOLUÇÃO DE UM PROBLEMA

Exemplo Calcular a área de um rectângulo sendo dados os valores do comprimento e da largura. Corpo do ALGORITMO: LEIA (comprimento, largura); area ← comprimento * largura; ESCREVA (area); Código VBA: Private Sub CommandButton1_Click () Dim comprimento, largura, area As Double comprimento = Val(InputBox("Comprimento?")) largura = Val(InputBox("Largura?")) area = comprimento * largura MsgBox (Str(area)) End Sub Para inserir o script no Visual Basic do Excel sugere-se, por exemplo, que no menu “Developer” insira um botão de comando usando “insert form controls”; depois clicando sobre o botão com a tecla do lado direito do rato escolha “assign macro” e finalmente “edit” abre a janela de edição VB.

Page 2: Noçoes basicas de algoritmia e programaçao

Laboratórios de Informática MIEA 2009/10

Profª Catarina Castro Tema2_2

ESTRUTURA GERAL DE UM ALGORITMO:

2. VARIÁVEIS Variável é a forma programática de identificar uma zona de memória do computador que pode ser consultada e alterada pelo Programa em execução. Tipos de Variáveis:

Variáveis Numéricas Variáveis String Variáveis Booleanas Variáveis Data Variáveis Objecto Variáveis Variant

Variáveis Numéricas:

Integer: Valores inteiros entre –32768 e 32767 Long: Valores inteiros entre –2147483648 e 2147483647 Single: Valores Reais de precisão simples entre +/-1.401298E-45 Double: Valores Reais de precisão dupla entre e +/-3.402823E38

Variáveis String: Uma sequência de caracteres Exemplo de Código VBA:

Private Sub CommandButton1_Click() Dim palavra1, palavra2 As String palavra1 = "lenta" palavra2 = "mente" MsgBox (palavra1 + palavra2) End Sub

Variáveis Booleanas (Boolean): Só toma dois valores:

True False

Page 3: Noçoes basicas de algoritmia e programaçao

Laboratórios de Informática MIEA 2009/10

Profª Catarina Castro Tema2_3

3. INSTRUÇÕES DE ATRIBUIÇÃO, LEITURA E ESCRITA Instrução de atribuição:

Instrução de leitura, atribuição e escrita:

4. EXPRESSÕES ARITMÉTICAS Exemplos: area ← comprimento * largura; soma ← x + y – cos (x)+ y^x; media ← soma/ 2; As expressões aritméticas envolvem

- OPERANDOS - VARIÁVEIS NUMÉRICAS - CONSTANTES NUMÉRICAS - OPERADORES ARITMÉTICOS - FUNÇÕES - PARÊNTESIS

Page 4: Noçoes basicas de algoritmia e programaçao

Laboratórios de Informática MIEA 2009/10

Profª Catarina Castro Tema2_4

5. INSTUÇÕES DE CONTROLO E SELECÇÃO Instrução condicional simples:

Instrução condicional dupla:

Page 5: Noçoes basicas de algoritmia e programaçao

Laboratórios de Informática MIEA 2009/10

Profª Catarina Castro Tema2_5

Selecção múltipla:

Page 6: Noçoes basicas de algoritmia e programaçao

Laboratórios de Informática MIEA 2009/10

Profª Catarina Castro Tema2_6

6. INSTRUÇÕES DE REPETIÇÃO E DE CONTROLO DE FLUXO Ciclo para que se utiliza quando à priori é conhecido o número de vezes que um bloco de instruções deverá ser executado.

Quando não é conhecido o número de vezes que um bloco de instruções deverá ser executado utiliza-se o ciclo enquanto ou ciclo repete. Ciclo enquanto: permite executar repetidamente um bloco de instuções enquanto o valor de uma expressão (condição) for verdadeiro. Neste caso, o bloco de instruções pode nunce ser executado.

Page 7: Noçoes basicas de algoritmia e programaçao

Laboratórios de Informática MIEA 2009/10

Profª Catarina Castro Tema2_7

Exemplo:

Outro exemplo: a← 10; a = 10 b← - 4; b = - 4 Enquanto b>a or b<0 faça While b>a or b<0

{b← a - 1; b = a – 1 Wend

Quantas vezes é este ciclo executado? Ciclo Repete: permite executar repetidamente um bloco de instruções até que o valor de uma expressão (condição) seja verdadeiro.

Exemplo:

Nota: Estes apontamentos de algoritmia são baseados nos apontamentos de Programação de Computadores da Prof. Luísa Costa Sousa (DeMEC-FEUP).

Page 8: Noçoes basicas de algoritmia e programaçao

Laboratórios de Informática MIEA 2009/10

Profª Catarina Castro Tema2_8

Exercício: Qual o objectivo de cada um destes programas? a) Private Sub CommandButton1_Click( ) Dim média, soma As Double Dim N, i, nota As Integer N = Val(InputBox("Número de disciplinas concluídas")) soma = 0 For i = 1 To N

nota = Val(InputBox("Introduza a nota de uma disciplina concluída")) soma = soma + nota

Next média = soma / N MsgBox ("Média= " & Str(média)) End Sub b) Private Sub CommandButton1_Click( ) Dim exame As Double Dim nota As Integer Dim classificação As String Do

exame = Rnd( ) * 20 MsgBox (exame) nota = Round(exame) If nota < 10 Then

classificação = "Reprovado" Else

Select Case nota Case 10 To 13 classificação = "Suficiente" Case 14 To 17 classificação = "Bom" Case 18 To 20 classificação = "Muito Bom" End Select

End If MsgBox (Str(nota) & " " & classificação)

Loop Until nota = 20 End Sub

Page 9: Noçoes basicas de algoritmia e programaçao

Laboratórios de Informática MIEA 2009/10

Profª Catarina Castro Tema2_9

Exercícios propostos:

1. Escreva um algoritmo que calcule as raízes reais de uma equação real de 2º grau. 2. a) Escrever um algoritmo que calcule a norma euclidiana de um vector;

b) Traduza para Visual Basic o algoritmo anterior.

3. Durante o mês de Janeiro de 2005, registou-se todos os dias, pelas 14 horas, a temperatura da sala de aula.

a) Escreva um algoritmo que calcule o valor médio dessas temperaturas. b) Escreva um algoritmo que calcule o desvio padrão dessas temperaturas. c) Escreva um programa em VBA que calcule o valor médio e o desvio padrão

dessas temperaturas.

4. Um aluno da FEUP já terminou N disciplinas com notas entre 10 e 20. a) Escreva um algoritmo que calcule a média das N notas e se a média for inferior a

13.5 escreve Suficiente, se for entre 13.5 e inferior e 17.5 escreve Bom e se for superior ou igual a 17.5 escreve Muito Bom.

b) Escreva um programa em VBA que calcule a média das N notas e se a média for inferior a 13.5 escreve Suficiente, se for entre 13.5 e inferior e 17.5 escreve Bom e se for superior ou igual a 17.5 escreve Muito Bom.

5. Registou-se, durante N dias, pelas 14 horas, a temperatura do bar da biblioteca.

a) Escreva um algoritmo que calcule o máximo dessas temperaturas. b) Escreva um algoritmo que calcule o mínimo dessas temperaturas. c) Escreva um algoritmo que calcule o número de dias em que essa

temperatura ultrapassou os 20 graus. d) Escreva um programa em VBA que calcule o máximo e o mínimo dessas

temperaturas e que calcule o número de dias em que essa temperatura ultrapassou os 20 graus .

6. a) Escreva um algoritmo que calcule a soma dos quadrados dos números inteiros entre 3000 e 7800, inclusivé.

b) Escreva um programa em VBA que calcule a soma dos quadrados dos números inteiros entre 3000 e 7800, inclusivé. 7. a) Escreva um algoritmo que calcule o factorial de um número inteiro positivo.

b) Escreva um programa em VBA que calcule o factorial de um número inteiro positivo. 8. a) Escreva um algoritmo que determine se um número inteiro dado é par ou ímpar.

b) Escreva um programa em VBA que determine se um número inteiro dado é par ou ímpar.

Page 10: Noçoes basicas de algoritmia e programaçao

Laboratórios de Informática MIEA 2009/10

Profª Catarina Castro Tema2_10

9. Considere a função rnd( ) do VBA que gera valores aleatórios entre 0 e 1: 0 ≤≤≤≤ rnd( ) < 1. O valor N = Int (1 + 50××××rnd( )) retorna valores aleatórios inteiros entre 1 e 50.

a) Escreva um algoritmo que gere números aleatórios inteiros entre 1 e 50 até que apareça um número aleatório múltiplo de 3.

b) Escreva um programa em VBA que gere números aleatórios inteiros entre 1 e 50 até que apareça um número aleatório múltiplo de 3.

10. Considere a função rnd( ) do VBA que gera valores aleatórios entre 0 e 1: 0 ≤≤≤≤ rnd( ) < 1. Usando esta função simule um jogo em que ganha o jogador A se o resultado da rnd() for superior a 0.6. Caso contrário ganha o jogador B.

11. Considere a função rnd( ) do VBA que gera valores aleatórios entre 0 e 1: 0 ≤≤≤≤ rnd( ) < 1. Usando esta função simule o seguinte jogo de dados equilibrados. Lançam-se 2 dados. Se a soma de pontos for superior a 6 ganha o jogador A. Caso contrário ganha o jogador B.

12. Considere a função rnd( ) do VBA que gera valores aleatórios entre 0 e 1: 0 ≤≤≤≤ rnd( ) < 1. Usando esta função simule o seguinte jogo com um dado é viciado, em que as probabilidades de saída de cada face são as seguinte: P(face 1)= P(face 2)= P(face 3)= P(face 4)= 2∗P(face 5)= 2∗P(face 6). Lança-se o dado uma vez. Se sair o número 5 ou 6 então ganha o jogador A, senão ganha o jogador B. 13. Registou-se durante todos os dias do ano 2001 e pelas 14 horas, o número de automóveis que entravam no parque da FEUP.

a) Escreva um algoritmo que calcule o máximo e o mínimo desses valores e os respectivos dias.

b) Escreva um programa em VBA que calcule o máximo e o mínimo desses valores e os respectivos dias. Exemplo: Em 2001, o número máximo de automóveis foi de 500 no dia 21 de Março e o número mínimo foi de 72 no dia 5 de Agosto. 14. Dado um número inteiro positivo:

a) Escreva um algoritmo que determine se o número dado é primo ou não. b) Escreva um programa em VBA que determine se o número dado é primo ou não.

15. Define-se número de Armstrong como sendo aquele cuja soma dos cubos dos

algarismos que o compoêm é igual ao próprio número. Ex: 153= 13+53+33 .

a) Escreva uma função booleana capaz de determinar se um número natural dado é ou

não um número de Armstrong.

b) Escreva um programa que procure os primeiros 5 números de Armstrong.