1.3. Algoritmos e Fluxogramas

Documentos relacionados
Programação Estruturada

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

Noções de algoritmos - Aula 1

CONCEITOS DE ALGORITMOS

Estrutura de decisão

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

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

Aula 4 Estruturas Condicionais

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

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

2. Algoritmos. Prof. Renato Tinós. Local: Depto. de Computação e Matemática (FFCLRP/USP) Introdução à Computação I IBM1006

Programação de Computadores

Sistemas Operacionais e Introdução à Programação. Introdução à Lógica de Programação: estruturas de repetição

SSC Introdução à Programação para Engenharias. Lista 01 Entrega em 06/04/ h10

Noções de algoritmos - Aula 1

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

Programação científica C++

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1

Resolvendo uma equação do 2º grau

ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

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

Algoritmos e Técnicas de Programação

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

Laboratório 3 Comandos de repetição while, do-while e for

Aula 12- Variáveis e valores reais

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Estruturas de Controle - Seleção. Prof. César Melo

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

Aula 5 ESTRUTURAS DE REPETIÇÃO (WHILE)

Exercícios Repetição

Estruturas Condicionais e de Repetição

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL

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

A palavra ALGORITMO teve origem com um Matemático Persa, al. Khawarizmi. O seu trabalho mais famoso foi Al-jabr walmuquabalah,

LINGUAGEM C: COMANDOS DE REPETIÇÃO

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Algoritmos Estrutura Condicional

Introdução à Programação

Algoritmos e Programação I

COMANDOS DE REPETIÇÃO (ENQUANTO)

ESTRUTURAS DE REPETIÇÃO - PARTE 1

Introdução aos Algoritmos

Instruções condicionais

CAPÍTULO 4 ESTRUTURAS DE CONTROLE

3. Linguagem de Programação C

Linguagem C: while e do-while

Lógica e Linguagem de Programação Aula 03 - Estruturas de controle Exercícios de Fixação 2 - RESPOSTAS Professor: Danilo Giacobo

Lista de Exercícios 2

Introdução aos Algoritmos

Laços de repetição for, while, do-while

PROGRAMA HelloWorld.java ESTRUTURA SEQUENCIAL. Programa HelloWorld.java

Estruturas de controle: Estrutura de DECISÃO

Elementos básicos das linguagens de programação

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

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

Introdução à Algoritmos. Professora: Fabíola Gonçalves.

ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza

Material Didático Proposto

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

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

ESTRUTURAS DE CONTROLE - LAÇOS OU MALHAS DE REPETIÇÃO

Introdução ao SciLab. SciLab O que é? Onde obter o programa:

Estrutura de Seleção

Fundamentos de Programação Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte 15 de maio de 2018.

Estruturas de repetição. Objetivos: - Compreender diversos tipos de comandos de repetições disponíveis na linguagem C.

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

Lista de Exercícios 02 Estrutura Condicional

Disciplina: Algoritmos e Programação Professor: Paulo César Fernandes de Oliveira, BSc, PhD

Fluxogramas e variáveis

9. Comando de repetição com variável de controle (para.. de.. até.. faça)

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

Solucionário de. Programação

Comandos em C (cont.)

RESOLUÇÃO. Computação e Programação (2009/2010-1º Semestre) 1º Teste (11/11/2009) Nome. Número. Leia com atenção os pontos que se seguem:

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

Transcrição:

1 1.3. Algoritmos e Fluxogramas 1.3.1. conceito : norma executável para obter efeito desejado PROGRAMAR = CONSTRUIR ALGORITMOS a) versão inicial descasque as batatas para o jantar b) seqüência de sub-ações: traga a cesta com batatas traga a panela descasque as batatas c) repetição: traga a cesta com batatas traga a panela enquanto número de batatas é insuficiente faça descasque a batata d) condicional traga a cesta com batatas traga a panela enquanto número de batatas é insuficiente faça se batata está boa então descasque esta batata descarte a batata e) impróprio enquanto batata está boa faça descasque esta batata MÁQUINA = SEGUIDOR MECÂNICO DE ALGORITMOS PROGRAMA = ALGORITMO DESTINADO A CONTROLAR O COMPORTAMENTO DA MÁQUINA : ações + dados

2 1.3.2. estruturas básicas de dados e controle (IMPORTANTE!) variável: posição na memória que tem nome e valor associados: NOTA 5 declaração de variáveis: declare lista de variáveis tipo tipos de dados: numérico literal lógico exemplo: declare estruturas de controle: 1. sequência de comandos: comando 1 comando 2 x lógico; vendas, comissão numérico; 2. comando condicional: se condição então sequência de comandos 1 sequência de comandos 2 3. comandos de repetição: 3.1. com interrupção no início ( enquanto ), enquanto condição faça sequência de comandos 3.2. comando de repetição com interrupção no final ( repita ), repita sequência de comandos até condição 3.3. comando de repetição com número fixo de vezes ( para ), para variável de valor1 até valor2 faça sequência de comandos fim para 4. comando de entrada e saída: leia lista de variáveis escreva lista de variáveis 5. atribuição: K 10

3 1.3.3. desenvolvimento de s por refinamentos sucessivos Ex. 1.: Fazer um que leia três valores inteiros, determine e imprima o menor deles. Solução: Um possível é apresentado abaixo: defina os tipos das variáveis leia os números determine o menor número escreva o menor número fim ref.: leia os números ref.: determine o menor número se a<b e a<c então menor <- a determine o menor entre b e c ref.: determine o menor entre b e c se b<c então menor <- b menor <- c ref.: escreva o menor número escreva menor ref.: defina os tipos das variáveis declare a, b, c, menor numerico

4 Inserindo-se os refinamentos nos seus respectivos lugares e colocando-se comentários: {defina os tipos das variáveis} declare a, b, c, menor numérico {leia os números} {determine o menor número} se a<b e a<c então menor <- a se b<c então menor <- b menor <- c {escreva o menor número} escreva menor fim

5 Ex. 2: Fazer um que calcule o valor de N! (fatorial de N) sendo que o valor inteiro de N se encontra disponível em uma unidade de entrada e que: a) N! = 1 x 2 x... x (N-1) x N; e b) 0! = 1, por definição. Solução: Um possível é descrito abaixo: defina os tipos das variáveis leia n calcule o fatorial de n escreva fatorial fim ref.: calcule fatorial de n fatorial <- 1 i <- 2 enquanto i <= n faca fatorial <- fatorial * i i <- i + 1 Inserindo-se o refinamento em seu respectivo lugar defina os tipos das variáveis leia n fatorial <- 1 i <- 2 enquanto i <= n faça fatorial <- fatorial * i i <- i + 1 escreva fatorial fim

6 Ex. 3: Fazer um que: Solução: a) leia e escreva o nome e altura das moças inscritas em um concurso de beleza. Para cada moça, existe uma linha contendo o seu nome e sua altura. A última linha, que não corresponde a nenhuma moça, conterá a palavra "vazio" no lugar do nome; b) calcule e escreva as duas maiores alturas e quantas moças as possuem. Um possível é descrito abaixo: defina os tipos das variáveis atribua valores iniciais necessários leia nome, altura enquanto nome <> "vazio" faca escreva nome, altura compare altura com as duas maiores alturas leia nome, altura escreva resultados fim E os refinamentos sucessivos são: ref.: compare altura com as duas maiores alturas se altura > maior1 entao atualize a 2 ª maior altura e o número de moças que a possui atualize a 1 ª maior altura e o núemro de moças que a possui verifique se altura é igual a maior1 ref.: atualize a 2 ª maior altura e o número de moças que a possui maior2 <- maior1 contador2 <- contador1 ref.: atualize a 1 ª maior altura e o número de moças que a possui maior1 <- altura contador1 <- 1

7 ref.: verifique se altura é igual a maior1 se altura = maior1 então contador1 <- contador1 + 1 compare altura com a 2 ª maior altura ref.: compare altura com a 2 ª maior altura se altura > maior2 então maior2 <- altura contador2 <- 1 se altura = maior2 então contador2 <- contador2 + 1 ref.: escreva resultados escreva maior1, contador1, maior2, contador2 ref.: atribua valores iniciais necessários contador1 <- 0 maior1 <- 0 contador2 <- 0 maior2 <- 0 ref.: defina tipo das variáveis declare altura, contador1, contador2, maior1, maior2 numérico declare nome literal

8 Inserindo-se os refinamentos nos devidos lugares, teremos: declare altura, contador1, contador2, maior1, maior2 numérico declare nome literal contador1 <- 0 maior1 <- 0 contador2 <- 0 maior2 <- 0 leia nome, altura enquanto nome <> "vazio" faca escreva nome, altura se altura > maior1 então maior2 <- maior1 contador2 <- contador1 maior1 <- altura contador1 <- 1 se altura = maior1 então contador1 <- contador1 + 1 se altura > maior2 então maior2 <- altura contador2 <- 1 se altura = maior2 então contador2 <- contador2 + 1 leia nome, altura escreva maior1, contador1, maior2, contador2 fim

9 1.3.4. exercício Desenvolver um para ler diversos coeficientes a, b e c, calcular e escrever as 2 raízes da equação ax bx c 0. Parar quando encontrar um coeficiente a=0. 1.3.5. solução: Uma solução possível para o problema é apresentada a seguir. Inicialmente, desenvolvemos uma primeira versão do, já identificando a estrutura de repetição que deverá estar presente, mas deixando para mais tarde alguns detalhamentos (isto é, os refinamentos): defina os tipos das variáveis enquanto a<>0 faça calcule raízes escreva raízes fim Refinando-se o cálculo das raízes: ref.: calcule raízes delta <- b*b 4*a*c se delta >= 0 então xr1 <- (-b + raiz(delta))/(2*a) xr2 <- (-b - raiz(delta))/(2*a) xi1 <- 0 xi2 <- 0 xr1 <- -b/(2*a) xr2 <- -b/(2*a) xi1 <- raiz(-delta)/(2*a) xi2 <- -raiz(-delta)/(2*a)

10 Refinando-se a escrita das raízes: ref.: escreva raízes escreva Raiz 1:, xr1, +, xi1, i escreva Raiz 2:, xr2, +, xi2, i Finalmente, refinando-se a declaração das variáveis: ref.: defina os tipos da variáveis declare a, b, c, xr1, xi1, xr2, xi2, delta numérico Inserindo-se os refinamentos nos respectivos lugares, temos o completo: {defina os tipos das variáveis} declare a, b, c, xr1, xi1, xr2, xi2, delta numérico enquanto a<>0 faça {calcule raízes} delta <- b*b 4*a*c se delta >= 0 então xr1 <- (-b + raiz(delta))/(2*a) xr2 <- (-b - raiz(delta))/(2*a) xi1 <- 0 xi2 <- 0 xr1 <- -b/(2*a) xr2 <- -b/(2*a) xi1 <- raiz(-delta)/(2*a) xi2 <- -raiz(-delta)/(2*a) {escreva raízes} escreva Raiz 1:, xr1, +, xi1, i escreva Raiz 2:, xr2, +, xi2, i fim

11 Na linguagem do R, pode ser codificado conforme apresentado abaixo, disponível em http://www.est.ufmg.br/ftp/fcruz/iec/eq2grau.r eq2grau <- function() { repeat { cat("entre com o coef a ") a <- as.numeric(readline()) cat("entre com o coef b ") b <- as.numeric(readline()) cat("entre com o coef c ") c <- as.numeric(readline()) if (a==0) { break } delta <- b^2-4*a*c if (delta >= 0) { xr1 <- (-b + sqrt(delta))/(2*a) xr2 <- (-b - sqrt(delta))/(2*a) xi1 <- 0 xi2 <- 0 } else { xr1 <- -b/2*a xr2 <- -b/2*a xi1 <- sqrt(-delta)/(2*a) xi2 <- -sqrt(-delta)/(2*a) } cat("x1 = (", xr1, "+", xi1, "i) e x2 = (", xr2, "+", xi2, "i)\n") } }