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

Documentos relacionados
Desenvolvimento de programas

Desenvolvimento de programas. Análise do problema. Análise do problema. Análise do problema. Desenvolvimento do algoritmo. Codificação do programa

Análise do problema. Desenvolvimento de programas. Desenvolvimento do algoritmo. Análise do problema

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

UFOP PC-I Prof. Guilherme / Anderson. Comando For e String

Material Didático Proposto

Programação Estruturada Comandos Condicionais (Decisão) Operadores Relacionais

Exercícios Repetição

Introdução ao Scilab

Aula Teórica 03. Comandos Condicionais (Decisão)

Aula 6 Módulo 5. DCC 001 Programação de Computadores 2 Semestre de 2011 Prof. Osvaldo Carvalho UFMG DCC

1.3. Algoritmos e Fluxogramas

Processadores e Linguagens de Baixo Nível

Processadores e Linguagens de Baixo Nível

Lista de Exercícios 2

Introdução à Programação de Computadores Fabricação Mecânica

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

Introdução a Computação

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

Programação de Computadores I - BCC 701 Lista de Exercícios 1 Módulo 1

Ler os valores dos coeficientes a, b e c Calcular o valor de delta Obter as raízes da equação Imprimir as raízes da equação

Algoritmos Estrutura Condicional

Comandos de desvio de fluxo. Expressões lógicas.

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

Algoritmos e Programação

LISTA DE ATIVIDADES ...

Universidade Federal de Uberlândia Faculdade de Computação. Estruturas de repetição

ESTRUTURA CONDICIONAL E SELEÇÃO

CAPÍTULO 4 ESTRUTURAS DE CONTROLE

AULA TEÓRICA 03 COMANDO CONDICIONAL

CONCEITOS DE ALGORITMOS

Introdução à Programação. João Manuel R. S. Tavares

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

, se x = y. , se x > y

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

Prática 10 - Funções

Estruturas Condicionais e de Repetição

Resolução de Problemas com Computador. Resolução de Problemas com Computador. Resolução de Problemas com Computador

Universidade Federal de Ouro Preto UFOP. Instituto de Ciências Exatas e Biológicas ICEB. Departamento de Computação DECOM

Oficina de Python Prof. Me. José Carlos Perini

Algoritmos e estrutura de dados I. Profa. Lara Popov Z. B. Oberderfer

Fundamentos de Programação 1

DCC001 - Programação de Computadores. Lista de Exercícios 02 - Estruturas de Dados Homogêneas (Vetores).

Estruturas de Decisão e Estruturas de Repetição

LINGUAGEM C: COMANDOS DE REPETIÇÃO

CAPÍTULO IV. Estruturas Condicionais CAPÍTULO IV ESTRUTURAS CONDICIONAIS ESTRUTURA CONDICIONAL SIMPLES

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Algoritmos. Introdução à Ciência da Computação I. Prof. Jó Ueyama

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

Estrutura de decisão

Lista de Exercícios Complementares 1 - Prof. Red. Entrada e Saída de Dados

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo

Agenda. Programação estruturada. Sequência. Decisão: Desvio de fluxo INTRODUÇÃO. Expressões lógicas.

Arquivos. Arquivos correspondem a unidades de armazenamento, tipicamente gravados em unidades de memória secundária.

Comandos de desvio de fluxo. Expressões lógicas.

Lógica de Programação

Programação científica C++

Programação Estruturada

Oficina de Python Prof. Me. José Carlos Perini

FACCAT Sistemas de Informação. Estruturas de Dados

Noções de algoritmos - Aula 1

Algoritmo e Programação Matemática

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Algoritmos e Programação

Programação Procedimental

UFOP PC-I Prof. Guilherme / Anderson. Operadores Relacionais e Lógicos, Comandos For e While e String

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Aula 8 Comandos de Seleção

Linguagem C ESTRUTURA DE CONTROLE

Estruturas de Decisão. Adaptado de Deise Saccol

Comandos de desvio de fluxo. Expressões lógicas.

Programação I PRG Engenharia de Telecomunicações 2ª Fase Professor: Cleber Jorge Amaral

Linguagem C. Programação Estruturada. Estruturas de Controle. Prof. Luis Nícolas de Amorim Trigo

printf( \n %d dividido por %d eh%d e o resto eh%d \n, x, y, resultado)

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

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

1ª LISTA DE EXERCÍCIOS - Extra

Prof. Tiago Alves de Oliveira. Tiago Alves de Oliveira - 1

Algoritmos. Prof. Jonatas Bastos Site:

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

ALGORITMO I ESTRUTURA DE CONTROLE DECISÃO SE / CASO;

Informática Aplicada I Lista: Fluxograma

3) Faça um algoritmo para ler a base e a altura de um triângulo. Em seguida, escreva a área do mesmo. Obs.: Área = ( Base * Altura ) / 2

Algoritmo e Introdução a Programação. Prof. Josino Rodrigues

Algoritmos. Estrutura de Repetição. para - passo. for. Grupos de Slides No 7. Prof. SIMÃO

Português Estruturado

Algoritmos. Estrutura de Repetição. enquanto. while. Grupos de Slides No 5. Prof. SIMÃO

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

LP II Estrutura de Dados

Estruturas de Repetição

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

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

Lista de Exercícios 01 Entrada e Saída de Dados

Programação de Redes de Computadores

TÉCNICO DE INFORMÁTICA - SISTEMAS

Transcrição:

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

Desenvolvimento de programas 2 Análise do problema Desenvolvimento do algoritmo Codificação do programa Compilação e execução / Interpretação Teste e depuração

3 Análise do problema Conhecer exatamente o que o problema requer é vital para a solução do mesmo. Metodologia: Especificar de forma clara e precisa os dados de entrada e os dados de saída (resultados) do problema. A especificação dos dados de entrada e saída deve responder às seguintes questões:» Quais são os dados de entrada?» Quais são os seus valores válidos e inválidos?» Quais valores serão produzidos?» Qual o formato dos resultados?

4 Análise do problema Problema: cálculo da área de um triângulo Quais são os dados de entrada? Base e altura do triângulo. Quais são os seus valores válidos e inválidos? Os dados de entrada devem ser valores numéricos positivos. Quais valores serão produzidos? Apenas a área do triângulo através da fórmula: (base altura) / 2. Qual o formato dos resultados? Um valor numérico positivo.

5 Desenvolvimento do algoritmo Algoritmo é um conjunto de passos lógicos bem organizado e suficientemente detalhado para se resolver um problema. A elaboração do algoritmo pressupõe o conhecimento prévio dos métodos, estratégias e fórmulas para a solução do problema. A versão inicial descreve, em linhas gerais, as principais funções a serem executadas. Em seguida, o algoritmo deve ser refinado até que a sequência de instruções resultante esteja bem clara e detalhada.

6 Codificação do programa O processo de codificação se resume no mapeamento das instruções de um algoritmo em instruções de uma linguagem de programação. Para um melhor entendimento do programa são essenciais: documentação; indentação; escolha representativa dos identificadores. A documentação consiste de: cabeçalho; comentários.

7 Compilação e execução Programa fonte Compilador da linguagem Compilação Programa objeto Dados de entrada Programa objeto Execução Resultados

Interpretação 8 Interpretação Programa fonte Dados de entrada Interpretador Resultados

9 Teste e depuração Teste é o processo de executar um programa com a finalidade de encontrar erros. Depuração é o processo de localizar e corrigir os erros encontrados. Possíveis tipos de erros são: Erros de compilação:» escrever errado um comando;» usar dados inadequados a uma operação. Erros de execução:» divisão por zero;» loop infinito. Erros de lógica:» erro nos limites de uma comparação;» erro nas fórmulas e expressões.

Refinamentos sucessivos 10 Problema: cálculo da área de um triângulo Versão inicial do algoritmo: Forneça a base e a altura do triângulo Realize o cálculo da área do triângulo

Refinamentos sucessivos 11 Ref. Forneça a base e a altura do triângulo Leia base, altura Ref. Realize o cálculo da área do triângulo Se a base e a altura forem positivos Então Calcule a área do triângulo Apresente o valor calculado Senão Apresente uma mensagem de erro Fim Se

Refinamentos sucessivos 12 Ref. (condição) Base e altura forem positivos (base > 0) e (altura > 0) Ref. Calcule a área do triângulo área (base altura) / 2 Ref. Apresente o valor calculado Escreva área Ref. Apresente uma mensagem de erro Escreva "mensagem de erro"

Refinamentos Sucessivos 13 Algoritmo final: Leia base, altura Se (base > 0) e (altura > 0) Então área (base altura) / 2 Escreva área Senão Escreva "mensagem de erro" Fim Se

14 Diagrama de blocos ou fluxograma: Início Leia base, altura (base > 0) e (altura > 0) Não? área Sim Escreva área (base altura)/2 Escreva "mensagem de erro" Fim

Refinamentos sucessivos 15 Problema: apresentar o menor dentre três valores numéricos. Versão inicial do algoritmo: Forneça os três números Determine o menor número Apresente o menor número

Refinamentos sucessivos 16 Ref. Forneça os três números Leia A, B, C Ref. Determine o menor número Se (A < B) e (A < C) Então menor A Senão Determine o menor dentre B e C Fim Se Ref. Apresente o menor número Escreva menor

Refinamentos sucessivos 17 Ref. Determine o menor dentre B e C Se (B < C) Então menor B Senão menor C Fim Se

Refinamentos sucessivos 18 Algoritmo final: Leia A, B, C Se (A < B) e (A < C) Então menor A Senão Se (B < C) Então menor B Senão menor C Fim Se Fim Se Escreva menor

19 Diagrama de blocos ou fluxograma: Início Leia A, B, C (A < B) e Sim (A < C)? Não menor A (B < C)? Sim menor B Não menor C Escreva menor Fim

Algoritmo Exercício 01 20 Uma loja de ferragens está com uma promoção na venda de parafusos, dando descontos crescentes em função do número de parafusos comprados, conforme a tabela: Número de Parafusos Desconto 1 a 99 0% 100 a 199 10% 200 a 299 20% Acima de 299 30% Sabendo que o preço do parafuso é R$0,10, faça um algoritmo para calcular o valor que um determinado cliente deverá pagar ao comprar um certo número de parafusos.

O Comando if if <condição> then <bloco então > else <bloco senão > end 21

Cláusula else vazia if <condição> then <bloco então > else // Nenhum comando aqui end if <condição> then end <bloco então > 22

Equações de Segundo Grau: Programa Scilab Eq2g_3.sce - 2 //Cálculo e impressão das raízes delta = b^2-4*a*c; if delta > 0 then r1 = (-b+sqrt(delta))/(2*a); r2 = (-b-sqrt(delta))/(2*a); printf("raízes: %g e %g.",r1,r2); else printf("raízes complexas.") end 23

Partes de um comando If <condição> <bloco então > if delta >= 0 then r1 = (-b+sqrt(delta))/(2*a) r2 = (-b-sqrt(delta))/(2*a) printf("as raízes são %g e %g",r1,r2) else printf("as raízes são complexas") end <bloco senão > 24

Palavras-chave de um Comando if Início do comando Fim da condição e começo do bloco então if delta < 0 then printf('raízes complexas!'); else r1 = (-b + sqrt(delta))/(2*a); r2 = (-b - sqrt(delta))/(2*a); printf('r1=%g e r2=%g.',r1,r2) end Fim do bloco senão e fim do comando Fim do bloco então e começo do bloco senão 25

Operadores Relacionais > maior que >= maior ou igual a < menor que <= menor ou igual a == igual a <> ou ~= diferente de 26

Tipos primitivos Inteiro Ex.: 2, 25, -30, 255 Ponto-flutante reais Ex.: 2.5, 0.27, 2.456D-5, 2.7D+5 String Cadeia de caracteres abcdefghij abcdefghij Cadeia de caracteres Programação de computadores Programação de computadores

Exercícios Criar um algoritmo e um programa em Scilab que leia dois valores para as variáveis A e B, que efetue a troca dos valores de forma que a variável A passe a ter o valor da variável B e que a variável B passe a ter o valor da variável A. Apresente os valores trocados. Criar um algoritmo e um programa em Scilab para calcular e apresentar o valor do volume de uma lata de óleo, utilizando a fórmula: V=3.14159 R 2 h onde V é o volume, R é o raio e h é a altura. Criar um algoritmo e um programa em Scilab que leia um valor de hora (hora:minutos) e informe (calcule) o total de minutos se passaram desde o início do dia (0:00h).

Refinamentos Sucessivos 29 Problema: apresentar a soma dos números pares de 100 até 200, inclusive. Versão inicial do algoritmo: Realize a soma desejada Apresente o valor da soma Ref. Realize a soma desejada Inicialize a soma com zero Inicialize o número par com 100 Enquanto o número par for menor ou igual a 200 Faça Adicione à soma o valor do número par Determine o próximo número par fim enquanto Ref. Apresente o valor da soma Escreva soma

Refinamentos Sucessivos 30 Ref. Inicialize a soma com zero soma 0 Ref. Inicialize o número par com 100 par 100 Ref. Adicione à soma o valor do número par soma soma + par Ref. Determine o próximo número par par par + 2

Refinamentos Sucessivos 31 Algoritmo final: soma 0 par 100 Enquanto par <= 200 Faça soma soma + par par par + 2 Fim enquanto Escreva soma

Refinamentos Sucessivos 32 Diagrama de blocos ou fluxograma: Início soma 0 par 100 par<=200 Não? Sim soma soma + par par par + 2 Escreva soma Fim

Algoritmo Exercício 02 33 Em uma cidade do interior, sabe-se que de janeiro a abril de 1990 (121 dias) não ocorreu temperatura inferior a 15 graus centígrados nem superior a 40 graus centígrados. Fornecendo-se as temperaturas verificadas em cada dia, faça um algoritmo que calcule e apresente: a menor temperatura ocorrida; a maior temperatura ocorrida; a temperatura média.

Algoritmo Exercícios 34 Faça um algoritmo e um programa em Scilab que leia a idade de várias pessoas e informe a menor idade, a maior idade e a média das idades. A parada do processamento deve ocorrer no momento que se fornecer um valor negativo para a idade de uma pessoa. Crie um algoritmo e um programa em Scilab que leia o valor de um depósito e o valor da taxa de juros. Calcular e imprimir o valor do rendimento e o valor total depois do rendimento. Crie um algoritmo e um programa em Scilab que leia dez números inteiros e imprima o maior e o segundo maior número da lista. Criar um algoritmo e um programa em Scilab que leia o valor da taxa de juros e os valores de vários depósitos e calcule e imprima o valor de cada rendimento seguido do valor total depois do rendimento.

Algoritmo Exercício 04 35 O IBOP deseja fazer uma pesquisa a nível nacional. Serão entrevistadas várias pessoas. Cada pessoa deve responder ao seguinte questionário: 1. Sexo: ( )M ( )F 2. Idade: anos 3. Fumante: ( )S ( )N Assim, faça um algoritmo que responda as seguintes perguntas: a) Qual é o percentual de fumantes em relação ao número total de pessoas entrevistadas? b) Qual é o percentual de homens não fumantes abaixo de 40 anos em relação ao número total de homens entrevistados? c) Qual é o percentual de mulheres fumantes acima de 40 anos em relação ao número total de mulheres entrevistadas? Observação: a parada do processamento deve ocorrer no momento que se fornecer um valor negativo para a idade de uma pessoa.

Algoritmo Exercício 05 36 Faça algoritmos distintos para calcular os seguintes somatórios por meio dos seus n primeiros termos: a) e x = x 0 /0! + x 1 /1! + x 2 /2! +... + x n-1 /(n-1)! b) cos(x) = 1 - x 2 /2! + x 4 /4! - x 6 /6! + x 8 /8! -...

Algoritmo Exercício 06 37 Uma seqüência de Fibonacci começa com os números 0 e 1, e cada número subsequente é a soma dos dois números anteriores a ele. Por exemplo, uma sequência formada por 11 número é: 0 1 1 2 3 5 8 13 21 34 55 Assim, faça um algoritmo que retorne uma seqüência de Fibonacci constituída por n números.

Algoritmo Exercício 07 38 Faça um algoritmo para tabular a seguinte função: f (x, y, z) = x 2 2y + z sendo que: x = 1, 2, 3, 4, 5,..., 10; y = 1, 4, 9, 16, 25,..., 100, para cada valor de x; z = 1!, 2!, 3!, 4!, 5! para cada valor de y.