ISCAP. Algoritmia. Pág. 1. Ana Paula Teixeira



Documentos relacionados
Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015. Visual Basic VBA

4 Criação de macros e introdução à linguagem VBA

Aluísio Eustáquio da Silva

Programação de Computadores I Pseudocódigo PROFESSORA CINTIA CAETANO

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

ESTRUTURA CONDICIONAL

Resolução de problemas e desenvolvimento de algoritmos

Aplicações de Escritório Electrónico

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Introdução a Algoritmos Parte 04

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

1 Lógica de Programação

Algoritmos Computacionais ( Programas )

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

Algoritmos com VisuAlg

Introdução à Lógica de Programação (cont.)

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Programação. Folha Prática 3. Lab. 3. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

VisuALG Estruturas de Repetição. Professores: Vilson Heck Junior Felipe Schneider Costa

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

Exercícios de Fixação Pseudocódigo e Estruturas Básicas de Controle

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmo e Programação

Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

1. Estrutura de seleção. Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição

Estruturas de Repetição. Programação em Java Estruturas de Repetição

Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos.

Introdução à Lógica de Programação

Linguagem algorítmica: Portugol

A1;A7 é o mesmo que A1 e A7 A1:A7 é o mesmo que A1 até A7 (abrange A1, A2, A3, A4, A5, A6, A7).

Computação e Programação Aula prática nº 5. Enunciados dos problemas

BC0501 Linguagens de Programação

Module Introduction. Programação. Cap. 4 Algoritmos e Programação Estruturada

Algoritmos e Programação de Computadores

Python: Comandos Básicos. Claudio Esperança

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

e à Linguagem de Programação Python

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012

Tarefa Orientada 13 Agrupamento e sumário de dados

Cap.2.5: Design de Algoritmos e Programação Estruturada. Algoritmos, fluxogramas e pseudo-código

Javascript 101. Parte 2

ALGORITMOS E FLUXOGRAMAS

Prof. Dr. Abel Gomes Cap.4: Design de Algoritmos e Programação Estruturada. Algoritmos, fluxogramas e pseudo-código

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof. Fábio Nelson.

Estruturas de entrada e saída

Programação Estruturada Linguagem C

Noções básicas sobre macros no Access 97. Construção de algumas macros simples. Noções básicas sobre procedimentos VBA no Access 97

Capítulo 2: Introdução à Linguagem C

Estruturas de Controle A Tomada de Decisões

Departamento: Matemática Curso: Eng a Madeiras Ano: 1 o Semestre: 2 o Ano Lectivo: 2006/2007. Aula prática n o 1 - Introdução ao MATLAB

Algoritmos e Pseudocódigo

Primeiramente lemos a seguinte citação, copiada de Excel-Ajuda:

Metodos de Programação

Dadas a base e a altura de um triangulo, determinar sua área.

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Expressões Lógicas Comandos de Seleção

Introdução aos cálculos de datas

Curso de Iniciação ao Access Basic (I) CONTEÚDOS

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

Conceitos básicos de programação

2. ALGORITMOS. Unesp Campus de Guaratinguetá. Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro

Resumo da Matéria de Linguagem de Programação. Linguagem C

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO

3 Classes e instanciação de objectos (em Java)

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1

INF 1005 Programação I

MATRIZ DE EXAME DE EQUIVALÊNCIA À FREQUÊNCIA

JSP - ORIENTADO A OBJETOS

UFRPE Prof. Gustavo Callou

EXERCÍCIOS. 2. Faça um algoritmo que receba dois números e ao final mostre a soma, subtração, multiplicação e a divisão dos números lidos.

Introdução à Programação e Algoritmos. Aécio Costa

Introdução à Computação para o Ensino Médio. Centro Técnico Científico

Prof. Esp. Adriano Carvalho

Programação WEB I Estruturas de controle e repetição

Aula 11 Introdução ao Pseudocódigo. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Programação. MEAer. Bertinho Andrade da Costa. Instituto Superior Técnico. Introdução ao Pré-Processador. 2011/2012 1º Semestre

Excel - VBA. Macrocomandos (Macros) O que é uma macro? São programas que executam

Grupo C Vetores e Matrizes

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Arquitetura de Computadores. Tipos de Instruções

JavaScript (ou JScript)

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP

Laboratório de Programação I

Processamento da Informação Teoria. Algoritmos e Tipos de dados

Visual Basic Formação Profissional DATAS HORÁRIO DURAÇÃO LOCALIZAÇÃO OBJECTIVOS

Algoritmos e Programação. Prof. Tarcio Carvalho

APOSTILA DE VBA PARA EXCEL MARCOS DE BARROS OUTUBRO DE RISK MANAGEMENT

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Programação para Computação

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Transcrição:

Algoritmia Pág. 1

Os Computadores e a resolução de Problemas PROBLEMA Fase de Resolução do Problema Pág. 2 Passo difícil Solução como um PROGRAMA de Computador Solução em forma de Algoritmo Fase de Implementação

Os Computadores e a resolução de Problemas É importante separar as duas fases: 1. Fase de Resolução do Problema Elaboração de um algoritmo adequado 2. Fase de Implementação Se o Algoritmo satisfaz, então segue-se a implementação desse algoritmo numa Linguagem de Programação (Programa de Computador) Nota: Se o algoritmo for suficientemente preciso, então, a codificação é quase directa Pág. 3

Os Computadores e a resolução de Problemas De uma forma mais detalhada, poderemos desdobrar estas duas em seis fases para a resolução do Problema: Definição do Problema Analise do Problema (elaboração do Algoritmo) Codificação do algoritmo em linguagem de Programação Teste do Programa Implementação Documentação Pág. 4

Os Computadores e a resolução de Problemas Definição do PROBLEMA Análise do Problema Algoritmo Codificação Programa Fonte Compilação Negativa Programa Objecto Teste do Programa Pág. 5 Avaliação dos Resultados Positiva Implementação: Colocação em Produção Formação de utilizadores Manutenção e actualização

O que é um Algoritmo? Um Algoritmo é uma sequência de passos ordenados e sem ambiguidade e que levam à resolução de um problema Exemplos: Indicações para chegar a um determinado endereço Instruções para construção de um brinquedo Receita de culinária Propriedades: Passos simples e sem ambiguidades Ordem dos passos cuidadosamente definida Passos efectivos, ou seja, resolver um problema num nº finito de passos Pág. 6

Metodologia para análise de problemas Análise de um Problema: Fazer uma aproximação descendente Proceder à Modularização Conceito e características de um Algoritmo Na representação de um Algoritmo, usamos uma linguagem estruturada, muito próxima da linguagem natural Linguagem Natural Linguagem estruturada (Algorítmica) Pág. 7

Principais blocos do Algoritmo Tipicamente poderemos considerar que um Algoritmo é composto pelos seguintes Blocos: 1. Definição de Dados 2. Leitura de Dados 3. Tratamento dos Dados 4. Apresentação de Resultados Pág. 8

Exemplos de Análise de Problemas Ex1: Calcular a décima parte de um valor lido 1. Ler um Número 2. Dividir o Número lido por 10 3. Escrever o nº lido e o resultado Obtido Ex2: Ler apelido e nome e apresentar a sua junção 1. Ler APELIDO 2. Ler NOME 3. Concatenar NOME + + APELIDO 4. Escrever o resultado obtido em 3 Pág. 9

Exemplos de Análise de Problemas Ex3: Pretende-se calcular o Preço de Venda (PV) de um artigo, sabendo que este é o resultado da soma de: custos de produção (CP), custos de armazenagem (CA) e custos de Mat.Primas (CMP), acrescido de 20% de lucro PV = CP + CA + CMP + 20% *(CP+CA+CMP) Versão 1 1. Ler CP, CA, CMP 2. Calcular valor de PV: PV = CP + CA + CMP +0.2 * (CP+CA+CMP) 3. Apresentar resultados Pág. 10 Versão 2 1. Ler CP, CA, CMP 2. Somar os 3 valores 3. Calcular 20% do valor obtido 4. Somar os valores obtidos em 2 e 3 5. Apresentar resultados

Exemplos de Análise de Problemas Ex4: Dada um valor em Escudos, converter para Euros. 1. Atribuir a FACTOR um valor 200.482 2. Ler o Valor em Escudos (VAL_ESC) 3. Converter (VAL_EURO =VAL_ESC/FACTOR) 4. Apresentar resultados 5. Terminar Pág. 11

Exemplos de Análise de Problemas Ex5: Dada uma lista de 10 nºs, pretende-se determinar o maior valor lido 1. Atribuir a MAXIMO um valor muito pequenino (- ) 2. Repetir 10 vezes: Ler NUMERO Se o NUMERO lido for superior a MAXIMO Então MAXIMO toma o valor do NUMERO 3. Apresentar resultados Pág. 12

Algoritmizar um Problema Para a resolução de um Problema, deveremos cumprir os seguintes passos: Descrição do Problema (definição clara dos dados que temos, dados a ler e dados a obter) Elaboração da lista de variáveis ou dicionário de dados Construção do Algoritmo (todo o Algoritmo tem um Nome: Algoritmo Nome mnemónico ) Teste do Algoritmo - traçagem do Algoritmo para um conjunto de dados (esta fase é muito importante para validação do algoritmo) Poderá ainda ser complementado pela apresentação de um Fluxograma Pág. 13

Tipos de Dados Dados Simples Numéricos Poderão ainda ser de diferentes tipos (Inteiros; Reais) Dados tipo cadeia de caracteres (Alfanuméricos) Exemplo Nome = ANA Dados Lógicos Utilizam-se para estabelecimento de condições Estruturas de Dados básicas Vectores X(i), Matrizes Y(a,b) Estruturas Complexas Ficheiros Bases de dados Pág. 14

Operações Simbologia utilizada Adição + 3+2 Subtracção - 9-5 Divisão / 15/6 Multiplicação * 24*45 Potenciação ^ 3^2 Prioridade das operações Parentização Potenciação, raiz quadrada Multiplicação, Divisão Adição, Subtracção Pág. 15

Variáveis Os dados necessários ao processamento de um Programa são armazenados em posições de da memória identificadas por um nome - a Variável. Quando definimos a variável, estamos a reservar um endereço de memória onde irá ser guardado o valor dessa mesma variável. Este valor é mutável, consoante as operações que vão sendo feitas sobre ele. Exemplos: Y -5 X 2 Z 0 Y (X+Y) /2 X Y *2 Z Y ^2 Pág. 16

Exercícios 1. Sejam A,B e C reais e I, J e K inteiros A = 4.0 B = 6.0 I= 3 Qual o valor das seguintes Expressões? C A * B -I K B/4 C B/A+1.5 2.Transforme em expressões de computador: b a + c e d f b ± b 2 4ac 2a ( a + b) 3. Em Quais dos seguintes pares é importante a ordem das operações? X Y Z Y X Z Z Y Y Z Z X Y X X Y c d Pág. 17

Linguagem Algorítmica - Instruções Declaração de variáveis N inteiro; R real; C caractere; B booleano; D data Inicialização de variáveis N 0 Estruturas sequenciais Leia("Nome", C) Escreva("Nome",C) R R *2 + 4/N Estruturas condicionais Se (cond) então acção1 senão acção2 Fimse Estruturas Repetitivas N.º finito de passos Para i = 1 até n (passo p) Acção Próximo i Controlado por uma condição Enquanto (cond) acções Fim Enquanto Controlado por várias condições Enquanto (cond e /ou / não cond2) Acções Fim Enquanto Pág. 18

Linguagem Algorítmica Os algoritmos são formados por conjuntos de passos. Cada passo é numerado e apresenta uma breve descrição da sua funcionalidade Os passos principais são: 1. [Declaração de Variáveis] 2. [Leitura de variáveis] 3. [Processamento] 4. [Apresentação de Resultados] Nota: Não esquecer o Inicio e o Fim Pág. 19

Fluxogramas - Simbologia Início/Fim Decisão Processo Documento Entrada/Saída de Dados Conector Fluxo Pág. 20

Estrutura de Controlo Sequencial Algoritmo Nome Inicio 1. [Inicialização de Variáveis] Nome Ana 2. [Apresentação de Resultados] Fim ESCREVA (Nome) Objectivo: Escrever o conteúdo de uma variável anteriormente inicializada Pág. 21

Lista de e Variáveis Algoritmo Nome Nome NOME Tipo Alfa Descrição Nome a escrever Pág. 22

Inicializar variável; Escrever o s/valor Principais Conceitos: Inicializar Escrever INICIO NOME ANA NOME Pág. 23 FIM

Traçagem Algoritmo Nome Passo 1. 2. Nome Ana Saída Ana Pág. 24

Estrutura de Controlo Sequencial Pág. 25 Algoritmo Soma Inicio 1. [Declaração de Variáveis] X 0; Y 0 ;Soma 0 2. [Leitura de variáveis] LEIA (X) LEIA (Y) 3 [Processamento - cálculo da soma] SOMA X + Y 4. [apresentação de Resultados] ESCREVA ( A soma de X, com Y é SOMA) Fim Objectivo: Ler 2 número e escrever o valor da soma

Lista de e Variáveis Algoritmo Nome Nome X Y Soma Tipo Real Real Real Descrição 1º Numero lido 2º Numero lido Resulltado da soma dos 2 nºs lidos Pág. 26

Ler 2 Nºs e Escrever a sua Soma Principais Conceitos: Inicializar Ler Calcular Escrever INICIO X 0 Y 0 Soma 0 X, Y Soma X + Y Soma Pág. 27 FIM

Traçagem Algoritmo Soma Dados para teste: X=56, Y=33 Passo X Y SOMA Saída 1. 0 0 0 2. 56 33 3. 89 4. A soma de 56 com 33 é 89 5. Fim Pág. 28

Exercícios Elabore um Algoritmo estruturado para os exemplos 1, 2, 3 e 4 vistos anteriormente Deverá apresentar A lista de variáveis Algoritmo e traçagem para os seguintes valores: Exemplo 1 Dados: 4500 Exemplo 2 Dados: Cunha, André Exemplo 3 Dados: 400; 600; 700; 350 Exemplo 4 Dados: 1000 Pág. 29

Exercicios Escreva um algoritmo que leia uma temperatura em graus Celsius e converta para graus Farneith. Faça a traçagem para 37.5º Escreva um algoritmo, que dados os valores dos lados de um rectângulo, calcule a sua área e o seu perímetro.. Faça a traçagem para L1=5, L2=8. Escreva um algoritmo, que leia as notas de um aluno (5 disciplinas) e calcule a média da turma Pág. 30

Estrutura de Controlo Alternativa Simples Se Condição Então Processo para Condição Verdadeira Senão Processo para Condição Falsa Fim se Exemplo (Ler um número e verificar a sua paridade) Se Número/2 = Int (Número/2) Então Escreva ( O número, Numero é par! ) Senão Escreva ( O número, Numero é impar! ) Fim se Pág. 31

Pág. 32 Estrutura de Controlo Alternativa Simples Algoritmo Positividade (versão 1.0) Inicio 1. [Declaração de Variáveis] Numero 0 Mensagem ; 2. [Leitura do Número] LEIA (Numero) 3 [Processamento - Verificação da positividade] Se Numero > 0 Então Mensagem é positivo Senão Mensagem não épositivo Fim se 4. [Apresentação de Resultados] ESCREVA ( O número, Numero,, Mensagem) Fim Objectivo: Ler 1 número e escrever se é positivo ou não

Lista de e Variáveis Algoritmo Nome Nome Numero Mensagem Tipo Real Alfa Descrição Numero lido Descrição da positividade do numero lido Pág. 33

Principais Conceitos: Alternativa (Se;Então;Senão) Ler um Nº e Escrever a sua Positividade (versão 1) INICIO Numero Não Numero > 0 Sim Não é Positivo Positivo FIM Pág. 34

Traçagem Algoritmo Positividade (versão 1.0) Dados para teste:número =-7 Passo NUMERO MENSAGEM NUMERO>0 Saída 1. 0 2. -7 3. Falso não é positivo 4. 5. Pág. 35 O número -7 não é positivo Fim

Traçagem Algoritmo Positividade (versão 1.0) Dados para teste:número = 34 Passo NUMERO MENSAGEM NUMERO>0 Saída 1. 0 2. 34 3. Verdadeiro é positivo 4. 5. Pág. 36 O número 34 é positivo Fim

Traçagem Algoritmo Positividade (versão 1.0) Dados para teste:número = 0 Passo NUMERO MENSAGEM NUMERO>0 Saída 1. 0 2. 0 3. Falso não é positivo 4. 5. Pág. 37 O número 0 não é positivo Fim

Pág. 38 Estrutura de Controlo Alternativa Composta Se Condição1 Então Processo p/ Condição1 Verdadeira Senão Se Condição2 Então Processo p/ Condição2 Verdadeira Senão Processo p/ Condição2 Falsa Fim se Fim se Exemplo (Ler um número e verificar a sua positividade) Se Numero >0 Então Senão Fim se Escreva ( Numero é positivo! ) Se Num < 0 Então Escreva (Numero é negativo! ) Senão Escreva (Numero é nulo! ) Fim se

Pág. 39 Estrutura de Controlo Alternativa Composta Algoritmo Positividade (versão 2.0) Inicio 1. [Declaração de Variáveis] Mensagem ; Numero 0 2. [Leitura do Número] LEIA (Numero) 3 [Processamento - Verificação da positividade] Se Numero > 0 Então Mensagem é positivo Senão Se Numero = 0 Então Mensagem énulo Senão Mensagem é negativo Fim se... Fim se Objectivo: Ler 1 número e indicar a sua positividade

Lista de e Variáveis Algoritmo Nome Nome Numero Mensagem Tipo Real Alfa Descrição Numero lido Descrição da positividade do numero lido Pág. 40

Principais Conceitos: Alternativa composta (Se;Então;Senão(Se...)) Ler um Nº e Escrever a sua Positividade (versão 2) INICIO Numero Não Numero > 0 Sim Sim Numero = 0 Não Nº Positivo Nº Nulo Nº Negativo FIM Pág. 41

Traçagem Algoritmo Positividade (versão 2.0) Dados para teste:número = -7 Passo 1. NUMERO 0 MENSAGEM NUMERO >0 NUMERO =0 Saída 2. -7 3. Falso Falso é negativo 4. Pág. 42 O número -7 é negativo

Traçagem Algoritmo Positividade (versão 2.0) Dados para teste:número = 34 Passo NUMERO MENSAGEM NUMERO >0 NUMERO =0 Saída 1. 0 2. 34 3. Verdadeiro é positivo 4. O número 34 é positivo Pág. 43

Traçagem Algoritmo Positividade (versão 2.0) Dados para teste:número = 0 Passo NUMERO MENSAGEM NUMERO >0 NUMERO= 0 Saída 1. 0 2. 0 3. Falso Verdadeiro 4. Pág. 44 é nulo O número 0 é nulo

Exercícios Escreva um algoritmo que leia um Número e verifique se é divisível por 5e 7 simultaneamente.faça a traçagem para os n.ºs 15 e 35. Escreva um algoritmo que calcule a média das idades de uma população de 15 pessoas e escreva uma mensagem de acordo com a situação (Média < 25» Jovem, Média <40» Adulta, outras» Idosa. Faça a traçagem para (12,8,2,6,5,18,54,65,5,10,48,47,7,4,18,17,12,13) Altere o Algoritmo anterior criando mais uma classe de classificações: Muito Jovem, se Média < 14». Pág. 45

Estrutura de Repetição Enquanto... 1.1. [Inicializar variável de controlo de ciclo] Enquanto Condição 1.2. [Operações a realizar dentro do ciclo] [Leituras, cálculos,...] 1.3. [Actualização da variável de Controlo do Ciclo] 1.4. [Terminar ciclo ] Fim Enquanto Pág. 46

Estrutura de Repetição Para I... Para I = X1 até Xn [Operações a realizar dentro do ciclo - [Leituras cálculos,...] Próximo I Exemplo: Para I = 1 até 10 Ler (Numero) Soma Soma + Numero Proximo I Escrever (Soma) Pág. 47

Estrutura de Repetição Seleccionar caso Seleccionar Caso Opção Caso Opção = 1 procedimento A Caso Opção = 2 procedimento B Caso Senão procedimento ERRO Fim Seleccionar Exemplo: Seleccionar Caso Opção Caso Opção = 1 ADICIONAR Caso Opção = 2 ALTERAR Caso Senão ERRO Fim Seleccionar Pág. 48

Estruturas de Repetição Pág. 49 Algoritmo Soma de 50 número Inicio 1. [Declaração de Variáveis] Numero 0; Soma 0 2. [Ciclo de Processa/ -Leitura dos nºs e cálculo da soma] 2.1. [Inicializar variável de controlo de ciclo] Contador 0; Enquanto Contador < 50 2.2. [Ler número] n Leia( Numero] [Actualização do valor da Soma] Soma Soma + Numero 2.3. [Actualizaçã ção o da variável vel de Controlo do Ciclo] Contador Contador + 1 2.4.. [Terminar ciclo ] Fim Enquanto 3. [Apresentação de Resultados] Escreva( a soma dos 50 nºs lidos é, Soma) Fim Objectivo: Ler 50 números e escrever o valor da sua soma

Estruturas de Repetição Pág. 50 Algoritmo Máximo Inicio 1. [Declaração de Variáveis] Maximo - 999999999 ; Numero 0 ; Contador 0 2. [Processamento - Determinação do máximo] 2.1. [Ciclo de Repetição] Enquanto Contador < 10 2.2. [Leitura do Número] LEIA (Numero) 2.3. [Verificação de valor] Se Numero > Maximo Então Maximo Numero Fim se 2.4. [Actualização da variável de Controlo do Ciclo] Contador Contador + 1 2.5. [Terminar ciclo ] Fim Enquanto 3. [Apresentação de Resultados] ESCREVA ( O máximo valor lido foi, Maximo) Fim Objectivo: Ler 10 números escrever o máximo valor lido

Lista de e Variáveis Algoritmo Máximo Nome Número Máximo Tipo Real Real Descrição Numero lido Máximo valor encontrado Contador Inteiro Variável de controlo do ciclo - conta o nº de repetições do ciclo Pág. 51

Ler 10 nºs e escrever valor do Maior Principais Conceitos: Ciclo de Repetição Enquanto Cond INICIO Máximo - Numero 0 Contador 0 Sim Contador <10 Não Numero Numero >Máximo Máximo Sim Máximo=Numero Contador=Contador+1 Não FIM Pág. 52

Exercícios 1. Escreva um algoritmo que leia uma lista de valores e determine o Máximo, o Mínimo e a Soma desses valores. A lista termina quando o valor lido for 999999. 2.1. Altere o algoritmo do ponto 1. de modo a que após a leitura de uma lista de valores seja perguntado ao utilizador se este pretende ler uma nova lista. 2.2. Altere o algoritmo do ponto 1. de modo a que após a leitura de um valor e seu processamento, seja perguntado ao utilizador se este pretende continuar ou não. 3. Escreva um algoritmo que calcule as raízes reais de uma equação de 2º grau. Após a execução para uma equação deverá ser perguntado ao utilizador se este pretende continuar ou não. Pág. 53

Exercícios 4. Escreva um algoritmo que leia uma Lista de números cujo tamanho é determinado pelo utilizador e calcule o máximo nº lido. 5. Escreva um algoritmo que leia o nome da disciplina e as notas de um aluno,calcule a média e determine a sua aprovação ou não no Curso. O Aluno considera-se aprovado se a sua média for não inferior a 12 valores. A leitura termina quando o nome lido for FIM O algoritmo deve permitir o cálculo para vários alunos. 6. Escreva um algoritmo que permita calcular o total da despesa feita num supermercado. Deverá ler o nome dos itens, a quantidade e o preço unitário. A leitura para cada cliente termina quando for lido o nome FIM.Deve permitir o cálculo para vários clientes. Pág. 54

Exercícios 7. A empresa XPTO, SA distribuidora de componentes para automóveis, pretende fazer a análise de vendas do ano anterior. Para cada venda efectuada, existe informação seguinte: Nome do Cliente Zona Geográfica (1- Norte; 2 - Sul; 3 - Centro) Família do Produto (1- Pneus; 2 - Jantes) Tipo de veículo (1- Ligeiros; 2 - Pesados) Quantidade, Valor Total As estatísticas pretendidas, são as seguintes: a) Valor Total de Vendas por Zona e Total Geral b) Total por Família de Produtos (Quantidade e Valor) c) Total por Tipo de veículo (Quantidade e Valor) Escreva um algoritmo para resolução deste problema. Pág. 55

Exercícios stock. Tipo de Produto Preço Quantidade A 500$ 2000 B 300$ 5000 Para cada nova encomenda é necessário conhecer os seguintes dados: N.º Cliente; Tipo Produto; Quantidade Encomendada Escreva um algoritmo que permita fazer a gestão das Encomendas desta Empresa. Pág. 56

Exercícios a) Pretende-se que para cada encomenda seja verificada a quantidade existente para o Tipo de Produto, e se : a quantidade for Zero (0), emita uma mensagem Não há stock para satisfazer a Encomenda ; caso a quantidade existente seja inferior à solicitada, então a encomenda será satisfeita parcialmente, dando também lugar à emissão de uma mensagem: Satisfação parcial da Encomenda Na satisfação da Encomenda, deverá actualizar sempre o Stock restante para o Tipo de Produto. Todas as Facturas deverão referir : O Cliente, o tipo de Produto, a Quantidade satisfeita (quer seja total ou parcial) e o Valor a pagar b) Apresente um resumo final que informe das quantidades e valores facturados para cada Tipo de Produto, bem como os totais gerais. Pág. 57

Algoritmia/V.B.A. Pág. 58

Programação em VBA O que é uma macro? Uma macro é uma sequência de comandos. As macros podem ser utilizadas para automatizar tarefas repetitivas que envolvem a execução de vários comandos por parte do utilizador. O que é o VBA - Visual Basic for Applications? O VBA é uma linguagem de programação integrada no Excel e noutras aplicações da Microsoft. As macros criadas em Excel são constituídas por instruções de VBA. Pág. 59

Programação em VBA Procedimentos Os procedimentos são módulos de código do Visual Basic que executam uma determinada acção. Uma macro é um exemplo de um procedimento Existem dois tipos básicos de procedimentos em VBA: Procedimentos que retornam ou devolvem um valor designados por Function Procedimentos que não retornam um valor designados por Sub Estrutura de um procedimento: Instruções de início e fim Nome Argumentos Código do VBA Valor devolvido (apenas nos procedimentos tipo Function) Pág. 60

Programação em VBA Exemplo de procedimento function (retorna valor) Function Soma (a, b) Soma = a + b End Function Exemplo de procedimento sub (não retorna valor) Sub Inicio() Call Soma( 9, 15) MsgBox Soma End Sub Obs.: A instrução Call chama a função Soma A instrução MsgBox cria uma caixa com o valor de Soma Pág. 61

Algoritmia / V.B.A Pseudo-Código Visual Basic Inicio do Programa Algoritmo Nome INICIO Declaração de Variavéis NUMERO inteiro(real) DATANASC data NOME caractere Expressões SOMA <-- A + B Leitura LEIA ( NUMERO) LEIA ( Nome Cliente?, NOME) Fim do Programa SAÍDA Inicio do Programa Sub Nome() Declaração de Variavéis Dim NUMERO As Integer (Double, Long, Currency) Dim DataNasc As Date Dim NOME As String Expressões SOMA = A + B Leitura NUMERO = InputBox ( Numero? ) NOME = InputBox ( Nome Cliente ) Fim do Programa End Sub Pág. 62

Algoritmia / V.B.A Pseudo-Código Visual Basic Saída de Dados Saída de Dados ESCREVA ( NUMERO) MsgBox Numero & NUMERO ESCREVA ( A Soma é, SOMA) MsgBox A Soma é & SOMA Estrutura Condicional SE..ENTÃO Estrutura Condicional SE...ENTÃO Se NUMERO < 0 If NUMERO < 0 Then Então ESCREVA ( É Negativo ) MsgBox Numero Negativo Fim Se End If Estr.Cond. SE... ENTÃO...SENÃO Se NUMERO < 0 Então ESCREVA ( É Negativo ) Senão ESCREVA ( NãoNegativo ) Fim Se Estr.Cond. SE... ENTÃO...SENÃO If NUMERO < 0 Then MsgBox Número Negativo else MsgBox Número não Negativo End If Pág. 63

Algoritmia / V.B.A Pseudo-Código Estr.Cond. SE... ENTÃO...SENÃO SE... Se N =0 Então ESCREVA( Nulo ) Senão Se N < 0 Então ESCREVA ( Negativo ) Senão ESCREVA ( Positivo ) Fim se Fim Se Ciclo Enquanto <Cond> Repetir N <--0 Enquanto N < = 5 Repetir ESCREVA (N) N <-- N + 1 Fim Enquanto Pág. 64 Visual Basic Estr.Cond.SE... ENTÃO...SENÃO SE... If N = 0 Then MsgBox ("Nulo") Else If N < 0 Then MsgBox ("Negativo") Else MsgBox ("Positivo") End If End If Ciclo Enquanto <Cond> Repetir N = 0 While N < = 5 MsgBox N N = N + 1 Wend

Pseudo-Código Para... até <Condição> Para I = 1 até 5 ESCREVA (N) Próximo I Algoritmia / V.B.A. Visual Basic Para... até <Condição> For I = 1 to 5 MsgBox N Next I Seleccionar caso <Condição> Seleccionar Caso Opção Caso Opção = 1 ADICIONAR Caso Opção = 2 ALTERAR Caso Senão ERRO Fim Seleccionar Seleccionar caso <Condição> Select Case Opção Case Opção = 1 ADICIONAR Case Opção = 2 ALTERAR Case Else ERRO End Case Pág. 65

Exemplos Escreve o valor de uma variável Sub Escreve() Dim nome As String * 20 nome = "PAULA" MsgBox nome End Sub Soma de 2 Numeros Sub Soma() Dim numero1 As Integer, numero2 As Integer, Total As Integer numero1 = InputBox("Escreva o Primeiro Número") numero2 = InputBox("Escreva o Segundo Número") Total = numero1 + numero2 MsgBox "A Soma de " & numero1 & " com " & numero2 & " é: " & Total End Sub Pág. 66

Soma n Numeros - Fim quando Nº lido =0 Sub Soma_n() Total = 0 Numero = 0 Lidos = 0 Numero =InputBox("Escreva o Número") While Numero <> 0 Total = Total + Numero Lidos = Lidos + 1 Numero = InputBox("Escreva o Número ( 0 p/ Terminar )") Wend MsgBox ("A Soma dos " & Lidos & " números lidos " & " é " & Total) End Sub Pág. 67

Sequências de Somas de Números (cada sequência termina em 0) Sub Seq_Soma_n() Continuar = SIM While Continuar = SIM Total = 0 Numero = 1 Contador = -1 While Numero <> 0 Numero = InputBox("Escreva o Número ( 0 para Terminar )") Contador = Contador + 1 Total = Total + Numero Wend MsgBox "A Soma dos " & Contador & " números & " é: " & Total Continuar = InputBox("Para soma de nova sequência, escreva SIM' ") Wend End Sub Pág. 68

Sequencias de Máximo de 3 Numeros Sub Maximo_3() Continuar = 1 While Continuar = 1 Maximo = -9999999 Numero = 0 Contador = 0 While Contador <3 Numero = InputBox("Escreva o Número") If Maximo < Numero Then Maximo = Numero End If Contador= Contador +1 Wend MsgBox " O Máximo valor lido foi " & Maximo Continuar = InputBox("Para nova sequência, escreva '1' ") Wend End Sub Pág. 69

Sequencias de Máximo de Numeros (é o utilizador que define o fim da lista) Sub Máximo_n() Continuar = SIM While Continuar = SIM Maximo = -99999999 Seguinte = 1 Numero = 0 While Seguinte = 1 Numero = InputBox("Escreva o Número") If Maximo < Numero Then Maximo = Numero End If Seguinte = InputBox( Para mais nºs para esta sequência escreva '1' ") Wend MsgBox "O Máximo valor lido foi " & Maximo Continuar = InputBox("Para soma de nova sequência, escreva SIM' ") Wend End Sub Pág. 70

Factorial de um Número Pretende-se construção de um Programa, que leia um número e calcule o seu Factorial. Após a apresentação do resultado, deverá perguntar ao utilizador se pretende continuar Notas: Só são válidos números Positivos O Factorial de 0 é 1 N!= N* (N-1)* (N-2)* (...) * 2 Pág. 71

Factorial de um Número (versão 1) Sub Factorial() Dim Numero As Integer, Cont As Integer, Factorial As Double, continuar As String continuar = "SIM" While continuar = "SIM" Factorial = 1 Numero = InputBox("Escreva o Número") Cont = Numero If Numero > 2 Then While Cont > 1 Factorial = Factorial * Cont Cont = Cont - 1 Wend Else: Factorial = 1 End If Pág. 72 If Numero < 0 Then MsgBox ("O número deverá ser Positivo!!!") Else: MsgBox ("O Factorial de " & Numero & " é " & Factorial) End If continuar = InputBox("Para soma de nova sequência, escreva SIM' ") Wend End Sub

Factorial de um Número (versão 2) Sub Factorial_1() Dim Numero As Integer, Cont As Integer, Factorial As Double, continuar As String continuar = "SIM" While continuar = "SIM" Factorial = 1 Numero = InputBox("Escreva o N.º") Cont = Numero If Numero >= 0 Then If Numero >= 2 Then While Cont > 1 Factorial = Factorial * Cont Cont = Cont - 1 Wend Else: Factorial = 1 End If Pág. 73 MsgBox ("O Factorial de " & Numero & " é " & Factorial) Else: MsgBox ("O número deverá ser Positivo!!!") End If continuar = InputBox("Para soma de nova sequência, escreva SIM' ") Wend End Sub

Parque de Estacionamento Pretende-se construção de um Programa, que leia as Horas de Entrada e de Saída num parque de estacionamento e calcule o valor a pagar. A tabela de preços é a seguinte: 1.ª hora : 120 2.ª hora : 150 seguintes: 180 Se a permanência for inferior a 1 hora, será pago o valor correspondente a 1 hora O tempo de permanência é arredondado para a hora inferior, caso a parte fraccionária seja inferior a 0.05 Pág. 74

Parque de Estacionamento Sub parque() Dim Hora_E As Double, Hora_S As Double, Tempo As Double Dim Custo As Double, continuar As String continuar = "SIM" While continuar = "SIM" Hora_E = InputBox("Hora de Entrada") Hora_S = InputBox(" Hora de Saída") Tempo = Hora_S - Hora_E If Tempo < 1 Then Tempo = 1 ElseIf Tempo - Int(Tempo) <= 0.05 Then Tempo = Int(Tempo) Else: Tempo = Int(Tempo) + 1 End If If Tempo = 1 Then Valor = 120 ElseIf Tempo = 2 Then Valor = 270 Else: Valor = (Tempo - 2) * 180 + 270 End If MsgBox ("O valor a pagar é " & Valor) continuar = InputBox("Para soma de nova sequência, escreva SIM' ") Wend End Sub Pág. 75

Função Preço Final Objectivo:Escrever uma Função que dado o Preço de um Artigo e a % de desconto, calcule o valor a pagar. Function PRECO_FINAL(Valor, Desconto) Preco_Final = Valor * (1-Desconto/100) End Function Objectivo:Escrever uma Função que dado um Apelido e um Nome apresente o nome Completo Function NomeFinal(Apelido, Nome) NomeFinal = Nome + " "+ Apelido End Function Pág. 76

Function IVA(Valor, Codigo) If Codigo = 0 Then IVA = Valor ElseIf Codigo = 1 Then IVA = Valor * 0.05 ElseIf Codigo = 2 Then IVA = Valor * 0.12 ElseIf Codigo = 3 Then IVA = Valor * 0.17 ElseIf Codigo = 4 Then IVA = Valor * 0.3 End If End Function Pág. 77 Função IVA Objectivo: Escrever uma Função que dado um valor e o código de IVA, calcule o valor do IVA a pagar

Pág. 78