Algoritmos e Programação

Documentos relacionados
Prof. Jorge Cavalcanti

Método para Construção de Algoritmos

Prof. Jorge Cavalcanti

Conceitos básicos de algoritmos

Conceitos Básicos de Algoritmos

Programação Estruturada Aula VisualG

Fluxograma. Símbolo Nome Descrição

Pseudocódigo Exercício 6

Fluxograma. Símbolo Nome Descrição

Pseudocódigo Exercício 6

Fluxograma. Conjunto de símbolos utilizados em fluxogramas

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

Algoritmos e Programação

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

Algoritmo e Programação. Capítulo 2 Tópicos Preliminares

Estruturas de Controle de Fluxo

Estruturas de Controle de Fluxo

Aplicaremos a técnica do teste de mesa sobre o algoritmo abaixo, o qual visa determinar o número de vértices de uma figura geométrica.

Algoritmos e Programação

Portugol. Tiago Alves de Oliveira

Estruturas de Controle de Fluxo

Estruturas de Controle de Fluxo Pseudocódigo/Exercício Construa o pseudocódigo de um algoritmo para obter o resultado da divisão de dois números

Microcontroladores. Programação: fluxogramas, pseudocódigos e lógica. Prof. Daniel

algoritmo "exercício 5" var x, y, aux: inteiro inicio escreva ("Entre com um valor inteiro p/ variável x: ") leia (x) escreva ("Entre com um valor

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Estruturas de Controle de Fluxo Estruturas de Seleção. Givanaldo Rocha

PSEUDO-CÓDIGO. Nickerson Fonseca Ferreira

Algoritmo e Programação Matemática

Português Estruturado (VISUALG)

INFORMÁTICA PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II

INFORMÁTICA PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II

2. Criação de Algoritmos

ESTRUTURA CONDICIONAL E SELEÇÃO

Aula 16 Estruturas de Controle. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

ALGORITMOS AULA 2. Profª Amanda Gondim

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

ALGORITMOS AULA 1. Profª Amanda Gondim

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano

ET51D - INFORMÁTICA. Algoritmos - Estruturas de Decisão. Prof. Glauber G. O. Brante e Profa. Mariana Furucho

Introdução a Algoritmos Parte 04

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

Conceitos Básicos. Professor: Juliano Lucas Gonçalves.

LÓGICA DE PROGRAMAÇÃO. Algoritmos Computacionais. Sérgio Carlos Portari Júnior

ET51D - INFORMÁTICA. Algoritmos - Estruturas de Decisão. Professor: Glauber G. O. Brante.

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II PARA ENGENHARIA. Prof. Dr. Daniel Caetano

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

Métodos de Representação de Algoritmos

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO PRÉ AULA DIAGNÓSTICO 22/10/2015. Analise o algoritmo a seguir e depois assinale a alternativa correspondente:

Algoritmos e Técnicas de Programação

Algoritmos e Técnicas de programação. Professora: Luciana Faria

Estruturas de Decisão

INFORMÁTICA APLICADA AULA 03 ALGORITMOS

Aula 4B. Lógica e Algoritmos. Profª. Fabiany

Prof. Jorge Cavalcanti

ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior

Algoritmos Computacionais

Estruturas de Decisão

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Exercício... Para começar... Resolução... Para começar... Para começar...

A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado..

Introdução aos Algoritmos

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano

LISTA DE EXERCÍCIOS. 2) Explique a diferença entre algoritmo computacional e não computacional.

Introdução à Programação. slides de Deise Sacol

Introdução aos Algoritmos

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Prof. Jorge Cavalcanti

Estruturas de Controle de Fluxo

Português Estruturado

Programação Procedimental

Algoritmos Estrutura Condicional

Objetivo: Desenvolver algoritmos a partir de problemas

Estruturas Condicionais. Tiago Alves de Oliveira

Introdução à Lógica de Programação. Adaptação de Luis Otavio Alvares

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

Capítulo 1 Conceitos Básicos

AULA 07. HABILIDADES TRABALHADAS: Desenvolver algoritmos utilizando laços a partir da leitura de fluxogramas ou algoritmos em portugol.

Processamento Sequencial e Condicional

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano

n1, /,n2, =,res n1, n2, res: real res <- n1 / n2 Digite o Dividendo: n2<>0 Digite o Divisor: verdadeiro falso

Algoritmos I Aula 5 Visualg

(53)

Pseudocódigo e Visualg

PORTUGUÊS ESTRUTURADO: INTRODUÇÃO INTRODUÇÃO À PROGRAMAÇÃO PROF. ALEXANDRO DOS SANTOS SILVA

Aula 4 Oficina de Programação Algoritmos - Parte 3. Profa. Elaine Faria UFU

Programação Estruturada

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

Fluxogramas. Vanessa Braganholo

E X E R C Í C I O S 01. Sobre o comando CASO, marque as alternativas como verdadeira (V) ou falsa (F):

Transcrição:

Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Parte 02 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav 1 Algoritmos em Pseudocódigo Pseudocódigo Técnica textual de representação de um algoritmo - Também conhecida como Português Estruturado ou Portugol. Nele os verbos (ações) disponíveis para utilização são limitados e empregados no imperativo. Deve-se evitar as expressões excessivamente longas, estas restrições visam eliminar a possibilidade de ambiguidade. Técnica é baseada em uma PDL (Program Design Language), que é uma linguagem genérica na qual é possível representar um algoritmo de forma semelhante à das linguagens de programação. A estrutura de um algoritmo em pseudocódigo pode variar um pouco de acordo com o autor ou com base na linguagem de programação que será utilizada posteriormente, mas essas variações ocorrem apenas na sintaxe, pois a semântica deve ser exatamente a mesma. - Prof. Jorge Cavalcanti - Univasf 2 1

Entrada de dados. Sintaxe leia (<lista de variáveis>) É necessária a declaração prévia das variáveis, na seção var. var n1: inteiro k: caractere Exemplos: leia (n1) - O valor digitado será armazenado na variável n1. leia (k) - Um ou vários caracteres digitados serão armazenados na variável k (Definida como caractere). No caso de utilizar leia (<lista de variáveis>), será respeitada a ordem da lista de variáveis, da esquerda para direita. Exemplo: leia (n1, k, n2) 3 Saída de dados. Sintaxe escreva (<lista-de-variáveis>) escreval (<lista-de-variáveis>) Obs: escreval imprime a variável na tela e o cursor vai para uma nova linha. Exemplos: escreva (n1) - Será mostrado na tela o conteúdo da variável n1. escreva ( O texto digitado foi, k) - Será mostrado o texto entre e depois o conteúdo da variável k. 4 2

Saída de dados. É possível especificar o número de colunas da tela e/ou de casas decimais onde se deseja escrever um determinado valor. Exemplo: considerando uma variável inteira x, o comando escreva (x:5) escreve o valor da variável x em 5 colunas, alinhado-o à direita. Exemplo: considerando y como uma variável real, o comando escreva (y:6:2), escreve seu valor em 6 colunas colocando 2 casas decimais. 5 Saída de dados. Exemplo - Abaixo um pseudocódigo de um algoritmo simples, que recebe um valor inteiro, fornecido pelo usuário, e o retorna no monitor. algoritmo exemplo 1 var x: inteiro leia (x) escreva (x) 6 3

Operador de Atribuição símbolo <- Exemplo: var a: inteiro valor1, valor2: real... a <- 5 valor1 <- 3.14 valor2 <- valor1 escreva(valor2) Apenas valores pertencentes ao tipo da variável podem lhe ser atribuídos. O valor a ser atribuído pode ser o conteúdo de uma variável, de uma constante, o resultado de operações sobre variáveis/constantes ou um valor diretamente. 7 Operador de Atribuição Exemplo: Declarações constante: MÁXIMO = 10 var quantidade, filhos, netos: inteiro aberto: booleano altura: real resposta: caractere Atribuições altura <- 1.80 filhos <- 3 netos <- filhos * 2 3 quantidade <- MÁXIMO 5 aberto <- F aberto <- quantidade < MÁXIMO resposta <- S 8 4

Operadores e Hierarquia na operações: 9 Operadores e Hierarquia nas operações: Exemplos: 3/4+5 = 5.75 3/(4+5) = 0.33333333 3\2*9 = 9 11%3^2 = 2 11%(3^2) = 2 (11%3)^2 = 4 3\2+(65-40)^(1/2) = 6 10 5

Operadores e Hierarquia na operações: Exemplos: 3>7 = FALSO A = a = VERDADEIRO a > B = FALSO (3>=13\4) xou (nao (5%2=0)) = FALSO 11 Blocos de instruções. As instruções em uma linguagem de programação sempre são executadas em sequência. A utilização de blocos de instruções deixa claro onde a sequência de instruções começa e termina. Todo algoritmo tem pelo menos um bloco de instruções, que indica o início e final do próprio algoritmo. Ex.: <declaração de variáveis> início <primeira instrução do bloco> <segunda instrução do bloco>... <última instrução do bloco> fim 12 6

Blocos de instruções. Ex. Sabendo que a relação entre vértices, arestas e faces de um objeto geométrico é dada pela fórmula: vértices + faces = arestas + 2, calcule o número de vértices de um cubo (06 faces e 12 arestas). Ex. 01 - Algoritmo Vértices de um cubo var vertices, faces, arestas: inteiro faces <- 6 arestas <-12 vertices <- arestas + 2 faces fim 13 Estrutura de um algoritmo: algoritmo "soma de dois números {NOME DO ALGORITMO} // Função : // Autor : // Data : 10/8/2010 // Seção de Declarações var a,b,c:inteiro {DECLARAÇÃO DE VARIÁVEIS} // Seção de Comandos "){INÍCIO DO ALGORITMO} escreval("digite dois números leia (a) leia (b) c:= a + b escreva ("A soma he:",c) {FIM DO ALGORITMO} 14 7

15 Passos necessários para a construção de um algoritmo: Ler atentamente o enunciado do problema, compreendendo-o e destacando os pontos mais importantes; Definir os dados de entrada, ou seja, quais dados serão fornecidos; Definir os dados de saída, ou seja, quais dados serão gerados depois do processamento; Definir o processamento, ou seja, quais cálculos serão efetuados e quais as restrições para esses cálculos. O processamento é responsável pela obtenção dos dados de saída com base nos dados de entrada; Definir as variáveis necessárias para armazenar as entradas e efetuar do processamento; Elaborar o algoritmo; Testar o algoritmo realizando simulações. 16 8

EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 - Sabendo que a relação entre vértices, arestas e faces de um objeto geométrico é dada pela fórmula: vértices + faces = arestas + 2, calcule o número de vértices de um objeto genérico. A entrada será o número de faces e arestas e a saída será o número de vértices. Alg. 02 - Algoritmo Vértices de um objeto genérico var vertices, faces, arestas: inteiro escreva ( Entre com o número de faces do objeto: ) leia (faces) escreva ( Entre com o número de arestas do objeto: ) leia (arestas) vertices <- arestas + 2 faces escreva ( O número de vértices do objeto é:, vertices) fim 17 Ex. 03a - Construa um pseudocódigo para representar um algoritmo que efetue a multiplicação de dois inteiros quaisquer. algoritmo exemplo 3a var n1, n2, res: inteiro escreva ( Digite o multiplicando inteiro: ) leia (n1) escreva ( Digite o multiplicador inteiro: ) leia (n2) res<- n1 * n2 escreva ( Resultado da multiplicação:, res) 18 9

Ex. 03b - Construa um pseudocódigo para representar um algoritmo que efetue a multiplicação de dois inteiros quaisquer. algoritmo exemplo 3b var n1, n2: inteiro escreva ( Digite o multiplicando inteiro: ) leia (n1) escreva ( Digite o multiplicador inteiro: ) leia (n2) escreva ( Resultado da multiplicação:, n1*n2) 19 Ex. 03c - Construa um pseudocódigo para representar um algoritmo que efetue a multiplicação de dois inteiros quaisquer. algoritmo exemplo 3c var n1, n2: inteiro escreva ("Digite o multiplicando e em seguida ") escreva (" o multiplicador (ambos inteiros): ") leia (n1, n2) escreva ("Resultado da multiplicação: ", n1*n2) 20 10

Ex. 4a - Gere um pseudocódigo que aplique um desconto de 30% sobre o valor de um produto, recebido como entrada, e retorne o resultado da manipulação na saída padrão. algoritmo exercício 4a var valor, resultado: real escreva ( Entre com o valor do produto: ) leia (valor) resultado <- valor * 0.7 escreva ( Valor com desconto de 30%: ) escreva (resultado) 21 Ex. 4b - Gere um pseudocódigo que aplique um desconto de 30% sobre o valor de um produto, recebido como entrada, e retorne o resultado da manipulação na saída padrão. algoritmo exercício 4b var valor: real var valor: real escreva ( Entre com o valor do produto: ) leia (valor) valor <- valor * 0.7 escreva ( Valor com desconto de 30%: ) escreva (valor:6:2) 22 11

Ex. 4c - Gere um pseudocódigo que aplique um desconto de 30% sobre o valor de um produto, recebido como entrada, e retorne o resultado da manipulação na saída padrão. algoritmo exercício 4c var valor: real escreva ( Entre com o valor do produto: ) leia (valor) escreva ( Valor com desconto de 30%:, valor * 0.7:6:2) 23 EXERCÍCIOS 1) Escreva um programa que receba dois números e calcule a média deles. 2) Escreva um programa que receba três números e depois peça o valor dos pesos e depois calcule a média ponderada dos números. 3) Faça um programa que leia uma temperatura em graus Celsius e calcule o correspondente em Fahrenheit. Sabendo que: F=(180*(C+32))/100 24 12

Estruturas de Controle de Fluxo Os algoritmos desenvolvidos até o momento constituem uma seqüência de ações que sempre são executadas em sua totalidade indiferente do valor da entrada de dados. Para a resolução de determinados problemas ou para a execução de determinadas tarefas é necessária a realização de um conjunto distinto de ações e este conjunto é definido com base na análise da entrada de dados. Um exemplo simples de uma destas situações é um algoritmo capaz de efetuar o cálculo do imposto de renda devido por um determinado contribuinte. Neste caso dependendo da quantidade de dependentes, do valor de sua renda e outras fatores o cálculo será feito de formas distintas. 25 Instrução Condicional Estas instruções permitem que o programador especifique a seqüência de instruções que será executada. Considere um problema que exija uma decisão. Tomemos como exemplo uma divisão, onde haja a necessidade de que o algoritmo verifique se o divisor é igual ou diferente de zero. Se for igual não é possível dividir. Se for diferente é possível dividir. Sintaxe: se (<expressão-lógica>) então <sequência de comandos> senão <seqüência de comandos> fimse 26 13

Exemplo: Instrução Condicional algoritmo "divisão instrução condicional // Seção de Declarações var n1, n2: inteiro resultado: real // Seção de Comandos escreva ("Digite o dividendo:") leia (n1) escreva ("Digite o divisor:") leia (n2) se (n2=0) entao escreva ("Impossível dividir por zero") senao resultado <- n1/n2 escreva ("O resultado eh:", resultado) fimse 27 28 14

Comando de Seleção Múltipla Em algumas situações ao chegarmos a uma determinada instrução de um algoritmo devemos selecionar um dentre alguns trechos a seguir, tendo como base para esta escolha um conjunto de valores. Para lidar com casos deste tipo foi criado o comando de seleção múltipla. 29 Sintaxe: Comando de seleção múltipla escolha (<variável>) caso <valor11>, <valor12>,..., <valor1n> <seqüência-de-comandos-1> caso <valor21>, <valor22>,..., <valor2m> <seqüência-de-comandos-2>... outrocaso <seqüência-de-comandos-extra> fimescolha 30 15

Exemplo: algoritmo "Times - seleção múltipla" // Função : // Autor : // Data : 10/8/2010 // Seção de Declarações var time: caractere // Seção de Comandos escreval ("Digite um nome de time de futebol:") leia (time) escolha (time) caso "Sport", "Santa Cruz", "Nautico", "Petrolina" escreval ("É um time Pernambucano") caso "Vitória", "Bahia", "Camaçari", "Juazeiro" escreval ("É um time Baiano") outrocaso escreval ("É de outro Estado") fimescolha 31 32 16

1) 33 2) Receba do usuário um número entre 1 e 7, inclusive 1 e 7. Se ele digitar o número 1 mostre Hoje é Domingo, se ele digitar o número 2 mostre Hoje é Segunda... 3) Peça uma letra e mostre se ela é vogal ou consoante. 4) Peça três números e mostre o maior entre eles. 34 17