Introdução à Programação 2006/07. Algoritmos

Documentos relacionados
Aulas Anteriores. Detalhes da linguagem de programação

Exercícios: Comandos de Repetição

Aula Anterior. Decomposição algorítmica (continuação)

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

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

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

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Estruturas de Controle de Fluxo

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

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

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

Algoritmos e Programação

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

, se x = y. , se x > y

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

Série de Exercícios - Comandos Repetitivos 1. Codificar o algoritmo para imprimir os N primeiros números naturais pares.

Exercícios Repetição

Lista de Exercícios 3 Laço de Repetição For e While

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

LÓGICA DE PROGRAMAÇÃO. Estrutura de Repetição Determinada e Indeterminada. Sérgio Carlos Portari Júnior

tipoveiculo = (bicicleta, motociclo, motorizada, automovel, autocomreb, camioneta, autocarro, camiao, reboque); veiculo : tipoveiculo;

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

EXERCÍCIOS: Estrutura Sequencial, IF (SE), ELSE (Senão)

LISTA DE ATIVIDADES ...

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:

69) Acrescentar uma mensagem de VALOR INVÁLIDO no exercício [68], caso o segundo valor informado seja ZERO.

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

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

ESTRUTURAS DE REPETIÇÃO - PARTE 2

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

Programação II. Victor Amorim dos Santos

Lista 02 Vetores. escreval("agora, digte um nome a ser buscado.") leia(nome)

Lista de Exercícios Algoritmos Vetores. 10) Escreva um algoritmo em PORTUGOL que armazene em um vetor todos os números

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

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

Procedimento. Função. Selecção Condicional - a instrução if-then-else. expressão if lógica then instrução else instrução

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

Para começar... Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Comando REPITA (repeat) Comando REPITA (repeat)

LINGUAGEM DE PROGRAMAÇÃO

Desenho de algoritmos

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

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

Algoritmos e Estruturas de Dados I

Estruturas de Repetição. João Medeiros FATERN

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

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

Tópicos abordados. Estruturas de Decisão. Simples Composta Encadeada

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

Estruturas de Repetição

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

Programação científica C++

Linguagem C ESTRUTURA DE CONTROLE

Exercícios sobre o Capítulo III

Refinamentos sucessivos

Passo-a-passo para desenvolver um Programa usando a Linguagem Python

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

Estruturas de Repetição

1 Cada linha do triângulo é uma seqüência de fibonacci.

Introdução à Programação em C Input / Output

LISTA DE EXERCÍCIO. 2) Fazer um algoritmo para calcular a soma entre dois números e multiplicar o resultado pelo primeiro.

Ficha 1 Noções de sequência e decisão em algoritmia

LISTA DE EXERCÍCIOS - ro. 02

Introdução a programação Comandos de repetição

Modulo 4: while do while (limites de variáveis)

2.2.5 EXPRESSÕES - Regras para o cálculo de valores

Algoritmos e Lógica de Programação. 6ª Lista de Exercícios Comandos de Repetição

1 ō Trabalho Prático de Programação Imperativa 2001/2002 Propostas de trabalho

Métodos de Programação I Ana Maria de Almeida

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

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

1ª LISTA DE EXERCÍCIOS

Estrutura de decisão

Algoritmos. Estrutura de Repetição. faça até. do until. Grupos de Slides No 6. Prof. SIMÃO

Programação Universidade da Beira Interior Departamento de Informática 2007/08

Dê o seu palpite para descobrir a senha!

Universidade Estadual do Sudoeste da Bahia Departamento de Estudos Básicos e Instrumentais Disciplina: Introdução à Ciência da Computação Prof.

SSC304 Introdução à Programação Para Engenharias

Programação de Computadores

6 a Lista Complementar de Exercícios de CI208 Programação de Computadores 13/02/2014

Estruturas de Decisão. Adaptado de Deise Saccol

Programação II Prof. Marcos Antonio Estremote ESTRUTURAS CONDICIONAIS E DE REPETIÇÃO

Estruturas de Repetição. for() while() do-while() break; continue;

COMANDOS DE REPETIÇÃO (ENQUANTO)

VARIÁVEIS INDEXADAS VETORES E MATRIZES

Estruturas de Repetição Comando Enquanto-FimEnquanto

Instruções de repetiçã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...

Transcrição:

Introdução à Programação 2006/07 Algoritmos

Cálculo da média de uma sequência Algoritmos: Exercício 1 Pretende-se escrever um programa que, dado um numero indeterminado de números introduzidos pelo teclado, atéque apareça o número zero como indicador de paragem, calcule a média dos números lidos e escreva-a no monitor. a)efectue a especificação da estrutura de dados e solução do cálculo da média de uma sequência. b)faça o algoritmo do programa.

Especificação Variável de entrada: Numero (número lido) Valor numérico real Variável de saída: Media (média calculada dos números lidos) Valor numérico real representado com 1 casa decimal Variáveis internas: Soma (soma acumulada dos números lidos) Valor numérico real N (contador dos números lidos Valor numérico inteiro positivo ou nulo Solução Media = soma / N (se N 0)

Algoritmo inicial Nome: Cálculo da média de uma sequência de números Leitura de uma sequencia de números e contagem (Soma, N ) Se há números para calcular a média Então 1º calculo da média (Soma, N, Media ) 2º Escrita da média Senão escrita de uma mensagem de erro

Algoritmo de segundo nível nome: Cálculo da média de uma sequência de números (Soma, N ) Soma=0.0; N = 0; Do Output ( introduza um número? ); Input (Numero); If (Numero!= 0.0 Soma = Soma + Numero; N = N +1; while (Numero!= 0.0); nome: Cálculo da média (Soma, N, Media ) Media = Soma / N nome: Escrita da média output ( Média dos números lidos =. Media); nome: Escrita de uma mensagem de erro output ( Não foi introduzido qualquer número válido );

Algoritmo final nome: Cálculo da média de uma sequência de números (1ª versão) /* Leitura da sequência de números, sua soma e contagem */ Soma=0.0; N = 0; do Output ( introduza um número? ); Input (Numero); If (Numero!= 0.0 Soma = Soma + Numero; N = N +1; while (Numero!= 0.0); if (N > 0) /* foram lidos números? */ /* Cálculo de média */ Media = Soma / N; /* Escrita da média */ output ( Média dos números lidos =. Media); else output ( Não foi introduzido qualquer número válido );

Segunda versão final do Algoritmo nome: Cálculo da média de uma sequência de números (2ª versão) /* Leitura da sequência de números, sua soma e contagem */ Soma=0.0; N = 0; Output ( introduza um número? (; Input (Numero); while (Numero!= 0.0); Soma = Soma + Numero; N = N +1; Output ( introduza um número? (; Input (Numero); if (N > 0) /* foram lidos números? */ /* Cálculo de média */ Media = Soma / N; /* Escrita da média */ output ( Média dos números lidos =, Media); else output ( Não foi introduzido qualquer número válido );

Algoritmos: Exercício 2 Pretende-se um programa que leia números inteiros positivos introduzidos pelo teclado, até que apareça o número zero como indicador de paragem ou até à leitura de um máximo 50 números, e que determine e escreva o maior dos números lidos no monitor. Portanto, pretende-se ignorar eventuais números negativos que forem introduzidos pelo teclado. a)efectue a especificação da estrutura de dados e solução do problema. b)faça o algoritmo do programa.

Especificação Variável de entrada: Numero (número lido) Valor numérico inteiro positivo Variável de saída: Maior (maior número lidos) Valor numérico inteiro positivo Variável interna: N (contador dos números lidos Valor numérico inteiro positivo ou nulo

Algoritmo inicial Nome: Cálculo do maior número de uma sequência de números Leitura de uma sequencia de números e contagem (Maior, N ) Se foram lidos números Então escrita do maior número detectado (Maior ) Senão escrita de uma mensagem de erro

Algoritmo de segundo nível nome: Cálculo do maior número de uma sequência de números (Maior, N ) /* Leitura da sequência e detecção do maior número lido sua soma e contagem */ N = 0; Maior = 0; do do Output ( introduza um número positivo? ); Input (Numero); while (Numero < 0); If (Numero!= 0) N = N + 1 if (Numero > Maior) Maior = Numero; ) while ((n < 50) and (Numero!= 0)); nome: escrita do maior número detectado (Maior ) output ( Maior dos números lidos =. Maior); nome: Escrita de uma mensagem de erro output ( Não foi introduzido qualquer número válido );

Algoritmo final 1ª versão nome: Cálculo do maior número de uma sequência de números (1ª versão) /* Leitura da sequência e detecção do maior número lido */ N = 0; Maior = 0; do do Output ( introduza um número positivo? ); Input (Numero); while (Numero < 0); If (Numero!= 0) N = N + 1 if (Numero > Maior) Maior = Numero; ) while ((n < 50) and (Numero!= 0)); If (N > 0) /* foram lidos números? */ output ( Maior dos números lidos =, Maior); else output ( Não foi introduzido qualquer número válido );

Algoritmo final 2ª versão nome: Cálculo do maior número de uma sequência de números (1ª versão) /* Leitura da sequência e detecção do maior número lido */ N = 0; Maior = 0; do do output ( introduza um número positivo? ); input (Numero); while (Numero < 0); if (Numero == 0) break; N = N + 1 if (Numero > Maior) Maior = Numero; ) while ((n < 50) and (Numero!= 0)); If (N > 0) /* foram lidos números? */ output ( Maior dos números lidos =, Maior); else output ( Não foi introduzido qualquer número válido );

Algoritmos: Exercício 3 Possuímos um arquivo com a idade de n pessoas. Queremos calcular o número de pessoas que tem a idade X. O valor de X é lido na primeira linha do arquivo, precedendo os valores da idade das próximas pessoas. ----------------------- formato do arquivo : 18 21 21... 15 18 ----------------------- onde 18 é X, por ser a primeira posição...

Algoritmos: Exercício 3 ALGORITMO inteiro n, X, qtdepessoas; n = 0; qtdepessoas=0; X =0; INICIO leia(x); primeira posição do arquivo - linha 1 enquanto((leia (n) )== verdadeiro) faça se(x == n) então qtdepessoas = qtdepessoas +1; fim se fim enquanto escreva("a quantidade de pessoas que possuem a mesma idade são ", qtdepessoas); FIM FIM ALGORITMO

Algoritmos: Exercício 4 Elabore um diagrama que apresente ao seu final o somatório dos valores pares existentes entre 1 e 500.

Algoritmos: Exercício 4 para este exercício considero o contador cont começando em 2 ou seja já é o primeiro par... o próximo par basta somar 2 ao contador... ALGORITMO inteiro soma, cont; soma = 0; INICIO PARA(cont=2 até (cont <= 500), cont = cont + 2) soma = soma + cont; FIM PARA escreva("a soma é ", soma); FIM FIM ALGORITMO

Algoritmos: Exercício 4 Outra forma de fazer: ALGORITMO inteiro soma, cont; soma = 0; INICIO enquanto(cont <= 500) faça se ((cont % 2)== 0)então soma = soma + cont; fim se fim enquanto escreva("a soma é ", soma); FIM FIM ALGORITMO

Algoritmos: Exercício 5 Escrever um diagrama para gerar e imprimir os N primeiros termos da série de Fibonacci, cujo comportamento é o seguinte: A partir do terceiro (Inclusive) cada termo é obtido somando-se os dois antecessores. Inicie com o numero 1 e 1 Serie: (1 1 2 3 5 8 13 21 34...) FORMULA : Fn = F(n-1) + F(n-2) ou seja: F1 = 1 F2 = 1 F3 = F2 + F1 --> F3 = 2 F4 = F3 + F2 --> F4 = 3

Algoritmos: Exercício 5 ALGORITMO inteiro n, cont, fib_n, fib_n1, fib_n2; fib_n = fib_n1 = fib_n2 = n = cont = 0; inicialização de variaveis NULAS INICIO fib_n1 = 1; inicio da serie : primeiro termo escreva(fib_n1); mostra o termo fib_n2 = 1; inicio da serie : segundo termo escreva(" - ", fib_n2); mostra o termo cont = 2; cont começa com dois números contado F1 e F2 escreva("digite o ultimo termo a encontrar: "); leia(n); qtde de termos da série: exemplo n = 6, F6 = 8 enquanto(cont <= n) faça fib_n = fib_n1 + fib_n2; escreva(" - ", fib_n); mostra os termos fib_n2 = fib_n1; troca de valores fib_n1 = fib_n; cont = cont +1; fim enquanto escreva("o Fibonacci de ", n, " é igual a ", fib_n); FIM FIM ALGORITMO

+ Problemas de Algoritmos Pretende-se o algoritmo de um programa que leia um número inteiro introduzido pelo utilizador e verifique se ele se encontra entre 1 e 10. Pretende-se o algoritmo de um programa que calcule a nota final da disciplina de Introdução à programação de um aluno, de acordo com as regras definidas na ficha de disciplina. Pretende-se o algoritmo de um programa para jogar o jogo do advinha. O computador terá que gerar um número aleatório entre 0 e 100, e o utilizador irá tentar adivinhar o número gerado. Sempre que o utilizador introduzir uma tentativa, o programa deverá informar se é maior, menor ou igual ao número gerado. Quando o utilizador adivinhar, o programa deve informar do número de tentativas efectuadas. Pretende-se um programa para descobrir um número entre 0 e 100, pensado pelo utilizador.

Algoritmo do jogo para acertar num número pensado por um colega. Dividir a turma a meio e cada metade tenta resolver uma das partes do jogo. Metade da turma pensa no problema do ponto de vista de quem vai escolher um número e responde às perguntas de um utilizador que tenta acertar no número escolhido. A outra metade pensa no algoritmo para tentar acertar num número entre 1 e 100. No final alteramos as duas soluções para informar o nº de tentativas efectuadas.

Algoritmo gerar um número aleatório n, entre 1 e 100 inicializar o numero de tentativas com 0 enquanto tentativas < 10 ou ainda não acertou fazer pedir ao utilizador para digitar um outro número ler o novo número x se x = n o utilizador acertou senão se n>x informar que o número procurado é maior senão informar que o número procurado é menor acrescentar o número de tentativas fim_enquanto se acertou informar que acertou caso contrário revelar o número procurado

programa adivinha var n,tentativa,x : integer; acertou : boolean; r : real; begin r:=random; x:=round(r*100); tentativa:=0; acertou:=false; while(not acertou) and (tentativa<10)do write( digite um número entre 0 e 100 ); read(n); if(n=x) acertou:=true else if(x>n) write( o número é maior que,n) else write('o número é menor que ', n); tentativa:=tentativa+1; if (acertou) write( acertou o número') else write( Perdeu o jogo, o número era :,x); end