Prof. Jorge Cavalcanti

Documentos relacionados
Algoritmos e Programação

Conceitos básicos de algoritmos

Conceitos Básicos de Algoritmos

Método para Construção de Algoritmos

Pseudocódigo Exercício 6

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

Pseudocódigo Exercício 6

Fluxograma. Símbolo Nome Descrição

Fluxograma. Símbolo Nome Descrição

Fluxograma. Conjunto de símbolos utilizados em fluxogramas

Programação Estruturada Aula VisualG

Conceitos Básicos de Algoritmos

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

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

Algoritmo e Programação Matemática

Portugol. Tiago Alves de Oliveira

Prof. Jorge Cavalcanti

PROGRAMAÇÃO COMPUTACIONAL I

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Português Estruturado (VISUALG)

Algoritmos e Programação

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

PSEUDO-CÓDIGO. Nickerson Fonseca Ferreira

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

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

Expressões, Atribuições, Entrada e Saída. Givanaldo Rocha

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

Fluxogramas e variáveis

Métodos de Representação de Algoritmos

Noções de algoritmos - Aula 1

INF1005: Programação I. Capítulo 2. Ivan Mathias Filho Algoritmo

AEDI Fundamentos Revisão 1

Informática Fundamentos em C++ Revisão 1

CAI Fluxograma Revisão 7

Algoritmos I Aula 5 Visualg

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

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

CMP Algoritmos Algoritmos Parte I. Professor Vicente Paulo de Camargo

ALGORITMOS AULA 1. Profª Amanda Gondim

Sintática: como é escrito cada elemento da linguagem de programação.

Processamento de Dados aplicado à Geociências. AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO PRÉ AULA PRÉ AULA 31/08/2015

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

2. Criação de Algoritmos

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

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

ESTRUTURA CONDICIONAL E SELEÇÃO

PC Fluxograma Revisão 8

Pseudolinguagem (ou Portugol) Profº Elton Rodrigo

ALGORITMOS AULA 2. Profª Amanda Gondim

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

Universidade Federal de Uberlândia Faculdade de Computação. Expressões aritméticas, relacionais e lógicas Estruturas condicionais

Algoritmos e Programação

Variáveis, Expressões Aritméticas e Entrada e Saída de Dados

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

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO

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

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

Capítulo 1 Conceitos Básicos

Algoritmos e Programação - Engenharia da Computação -

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..

(53)

INFORMÁTICA APLICADA AULA 03 ALGORITMOS

Introdução a Computação

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

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

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

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

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

Introdução aos Algoritmos

Introdução a programação Visão geral

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

Fábio Rodrigues / Israel Lucania

Introdução aos Algoritmos

Métodos para a construção de algoritmo

Algoritmos Computacionais

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

Pseudocódigo e visualg

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Introdução ao VisuALG

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos Prof. Renato Pimentel. Computação

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

EXPRESSÕES ARITMÉTICAS PARTE 1

Algoritmos - 2. Alexandre Diehl. Departamento de Física - UFPel

Introdução à Ciência da Computação

Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos. Prof. Dr. Bruno Moreno

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

Introdução a Algoritmos Parte 08

Algoritmos - 1. Alexandre Diehl. Departamento de Física - UFPel

Pseudocódigo Exercício 2

Curso: Análise e Desenvolvimento de Sistemas. (Conceitos Práticos de Lógica de Programação)

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

Fluxograma Pseudocódigo Estruturas de decisão. Professor Leandro Augusto Frata Fernandes

Programação Básica de Computadores

Português Estruturado

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Introdução à Pseudo-código PROGRAMAÇÃO I (COM06842) LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039)

Transcrição:

Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 02 (baseado no material do prof. Marcelo Linder) 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. Introdução a Algoritmos- Prof. Jorge Cavalcanti - Univasf 2

Entrada de dados. Palavra-reservada: leia - utilizada para receber dados externos ao algoritmo e armazená-los na memória como variáveis. 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. Palavra-reservada: escreva - utilizada para externar (enviar para o monitor) dados gerados pelo algoritmo. 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. escreva ( Estudou e se dedicou tirou, 10) 4

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 inicio leia (x) escreva (x) fimalgoritmo 6

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

Operadores Aritméticos Unários: +, - Exemplos: +1-5.9... var a: inteiro... a <- -a 9

Operadores Aritméticos Binários: +, -, *, /, \, %, ^ Símbolo Operação + Soma - Subtração * Multiplicação / Divisão \ Quociente da divisão inteira % Resto da divisão inteira ^ Potenciação 10

Operadores e Hierarquia na operações: 11

Operadores e Hierarquia nas operações: Exemplos: 3/4+5 = 5.75 3/(4+5) = 0.33333333 3\2*9 = 9 Hierarquia 11%3^2 = 2 11%(3^2) = 2 (11%3)^2 = 4 3\2+(65-40)^(1/2) = 6 Operação 1 Parênteses 2 Função 3 -, + (unários) 4 ^ 5 *, /, \, % 6 +, - 12

Operadores Relacionais Operador Ação > maior que >= maior ou igual a < menor que <= menor ou igual a = igual a <> diferente de 13

Operadores Lógicos Operador e ou nao xou 14

Expressões lógicas Exemplos: 3>7 = FALSO A = a a > B = VERDADEIRO = FALSO Ana < Aline = FALSO (3>=13\4) xou (nao (5%2=0)) = FALSO 15

Pseudocódigo Estrutura 16 A estrutura de um algoritmo em pseudocódigo pode variar de acordo com o autor ou com a linguagem de programação que será utilizada, mas essas variações ocorrem apenas na sintaxe, pois a semântica deve ser a mesma. A estrutura que empregaremos para a construção de nossos pseudocódigos será a seguinte: algoritmo nome //Tem como objetivo identificar o //algoritmo, deve-se utilizar um nome o mais significativo //possível, para facilitar a identificação var // Seção de Declarações Aqui são informadas quais //variáveis, e seus respectivos tipos, serão utilizadas no algoritmo inicio // Seção de Comandos - Aqui será escrita a sequencia de // comandos que deve ser executada para solucionar // o problema em questão fimalgoritmo //marca o final do algoritmo

Pseudocódigo As palavras reservadas presentes na estrutura do pseudocódigo apresentado foram: algoritmo var inicio fimalgoritmo 17

Pseudocódigo Exemplo Observaremos agora um pseudocódigo que recebe um valor inteiro, fornecido pelo usuário, e o retorna no monitor. algoritmo exemplo 1 var x: inteiro inicio leia (x) escreva (x) fimalgoritmo 18

Pseudocódigo Exemplo Outro exemplo é o pseudocódigo de um algoritmo que recebe um valor inteiro, acresce duas unidades a este, e exibe o resultado desta manipulação. algoritmo exemplo 2 var numero, resposta: inteiro inicio escreva ( Digite um número inteiro: ) leia (numero) resposta <- numero+2 escreval ( Resultado (número + 2):, resposta) fimalgoritmo 19

Pseudocódigo Exemplo Outro exemplo é o pseudocódigo de um algoritmo que recebe um valor inteiro, acresce duas unidades a este, e exibe o resultado desta manipulação. algoritmo exemplo 2 var n: inteiro inicio escreva ( Digite um número inteiro: ) leia (n) n <- n+2 escreval ( Resultado (número + 2):, n) fimalgoritmo 20

Pseudocódigo Exemplo Outro exemplo é o pseudocódigo de um algoritmo que recebe um valor inteiro, acresce duas unidades a este, e exibe o resultado desta manipulação. algoritmo exemplo 2 var n: inteiro inicio escreva ( Digite um número inteiro: ) leia (n) escreval ( Resultado (número + 2):, n+2) fimalgoritmo 21

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 22

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 inicio faces <- 6 arestas <-12 vertices <- arestas + 2 faces fim 23

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} inicio // 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) fimalgoritmo {FIM DO ALGORITMO} 24

25

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. 26

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 inicio 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 27

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 inicio escreva ( Digite o multiplicando inteiro: ) leia (n1) escreva ( Digite o multiplicador inteiro: ) leia (n2) res<- n1 * n2 escreva ( Resultado da multiplicação:, res) fimalgoritmo 28

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 inicio escreva ( Digite o multiplicando inteiro: ) leia (n1) escreva ( Digite o multiplicador inteiro: ) leia (n2) escreva ( Resultado da multiplicação:, n1*n2) fimalgoritmo 29

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 inicio escreva ("Digite o multiplicando e em seguida ") escreva (" o multiplicador (ambos inteiros): ") leia (n1, n2) escreva ("Resultado da multiplicação: ", n1*n2) fimalgoritmo 30

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 inicio escreva ( Entre com o valor do produto: ) leia (valor) resultado <- valor * 0.7 escreva ( Valor com desconto de 30%: ) escreva (resultado) fimalgoritmo 31

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 inicio escreva ( Entre com o valor do produto: ) leia (valor) valor <- valor * 0.7 escreva ( Valor com desconto de 30%: ) escreva (valor:6:2) fimalgoritmo 32

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 inicio escreva ( Entre com o valor do produto: ) leia (valor) escreva ( Valor com desconto de 30%:, valor * 0.7:6:2) fimalgoritmo 33

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 34

Fluxogramas Conceitualmente um fluxograma é um tipo de diagrama, e pode ser entendido como uma representação esquemática de um processo, constitui uma representação gráfica que ilustra de forma descomplicada a sequência de execução dos elementos que o compõem. Podemos entendê-lo, na prática, como a documentação dos passos necessários para a execução de um processo qualquer. 35

Conjunto de símbolos utilizados em fluxogramas Símbolo Nome Descrição Terminador Seta de fluxo Declaração Indica o início e o fim do fluxo do algoritmo. Indica o sentido do fluxo de execução do algoritmo. É através dela que os símbolos do fluxograma são conectados. Delimita a seção de declaração de variáveis. Entrada de dados Atribuição Saída de dados Desvio condicional Corresponde à instrução de entrada de dados através do teclado. Símbolo utilizado para indicar cálculos e atribuição de valores. Corresponde à instrução de saída de dados. Os dados serão exibidos na tela do computador. Divide o fluxo do programa em dois caminhos, dependendo do teste lógico que fica dentro do losango. 36

Exemplo de Fluxograma De forma similar à análise feita com pseudocódigo, iniciaremos nossa análise por um fluxograma que efetua a leitura, através do teclado, de um valor inteiro e o retorna no monitor. Inicio n: inteiro n n Fim 37

Exemplo de Fluxograma Fluxograma que recebe um valor inteiro, através da entrada padrão, e acresce duas unidades a este exibindo o resultado na saída padrão. Inicio n: inteiro Forneça um valor inteiro Fim n n <- n + 2 O valor fornecido acrescido de duas unidades resulta em, n 38

Exercício de Fluxograma Construa um fluxograma para obter o resultado da multiplicação de dois números inteiros quaisquer fornecidos pelo usuário. Inicio Inicio n1, n2: inteiro n1, n2, res: inteiro Digite o multiplicando e o multiplicador, ambos inteiros: Fim Resultado:, res Digite um inteiro como multiplicando: n2 n1 Digite um inteiro como multiplicador: n1, n2 n1, *,n2, =, n1 * n2 res <- n1 * n2 Fim

Exercício de Fluxograma Gere um fluxograma que aplique um desconto de 30% sobre o valor de um produto, recebido como entrada, e retorne o Inicio resultado da manipulação na saída padrão. Inicio Inicio valor, resultado: real valor: real Entre com o valor do produto: valor: real Entre com o valor do produto: valor Entre com o valor do produto: valor valor <- valor * 0.7 valor resultado <- valor * 0.7 Valor de venda, resultado:6:2 Fim Valor de venda, valor:6:2 Fim Valor com desconto:, valor * 0.7:6:2 Fim