• Nenhum resultado encontrado

Algoritmos e Ciclo de Desenvolvimento Aula 02: 01/03/2012

N/A
N/A
Protected

Academic year: 2021

Share "Algoritmos e Ciclo de Desenvolvimento Aula 02: 01/03/2012"

Copied!
22
0
0

Texto

(1)

1

Algoritmos e

Ciclo de Desenvolvimento

Aula 02: 01/03/2012

INF 1005 - Programação I

Pontifícia Universidade Católica Departamento de Informática

(2)

3

CPU: Unidade Central de Processamento



Principal componente de um computador

digital.



Localiza e executa as instruções de um

programa.



Capaz de executar operações simples com

grande rapidez.

Memória



Memória volátil usada para armazenar dados e

programas.



Conteúdo modificável pelas instruções dos

programas.

(3)

5

Disco Rígido (HD)



Um dos dispositivos não-voláteis mais usados para o

armazenamento de grandes volumes de dados.



Utiliza superfícies magnetizáveis para armazenar as

informações.



Permite acesso

randômico aos dados

armazenados.

Linguagens de Alto-Nível



Programar em linguagem de máquina é uma

tarefa entediante e propensa a erros.



A partir de meados dos anos 50 várias

(4)

7

Linguagens de Alto-Nível



FORTRAN (1957)



COBOL (1960)



ALGOL (1968)



PASCAL (1970)



C (1972)



C++ (1983)



JAVA (1995)

Exemplo de Programa em C

int main(void){ int a = 3, b = 7, c; c=a+b; if(c%2==0)

printf("o resultado e par\n"); else

printf("o resultado e impar\n");

return 0; }

(5)

9

Compilação



Programas escritos em linguagens de

alto nível não são executados

diretamente pelo processador.



Antes de executá-lo é preciso traduzir

os comandos de alto-nível para

instruções de máquina.



Esta tarefa (compilação) é realizada por

um programa chamado de compilador.

(6)

11

Ciclo de Desenvolvimento

Problema

de computador

Programa

Resultados

(solução)

Ciclo de Desenvolvimento



Escolha da linguagem de programação depende da

aplicação que será desenvolvida.



Na disciplina INF1005, a escolha da linguagem C está

relacionada a:

– eficiência – facilidade de uso

– base para muitas outras linguagens – mais usada atualmente

(7)

13



Um programa escrito em C deve respeitar a sintaxe da

linguagem.



Um computador não é capaz de executar uma

sequência de instruções escritas em C:

– ou em qualquer outra linguagem de alto nível



Para executar um programa em C, antes é necessário

converter o programa em C para um programa em

linguagem de máquina:

– processo chamado de

COMPILAÇÃO

– processo realizado por um

COMPILADOR:

» programa

Ciclo de Desenvolvimento

(8)

15

Como descrever um “problema”?



Andando pelo campus da PUC e após quase tropeçar

em esquilos e levar um susto com o vôo do tucano,

alguém lhe pergunta:

Como faço para ir ao centro da cidade?



O que você responde?

Como descrever um “problema”?



Na pergunta anterior é fácil observar que faltam

detalhes para a resposta ser mais correta ou eficiente:

– meio de transporte

» envolve tempo e dinheiro

– endereço específico – quando?

» envolve trajeto devido a engarrafamento

– número de pessoas



Fica difícil responder sem saber as reais necessidades

(9)

17

Solução de “problemas”

 Objetivo: encontrar uma sequência de passos que permitam que o

problema possa ser resolvido de maneira automática e repetitiva.

 Detalhamento do problema.

 Perfeita compreensão do problema.  Descrição da solução:

– clara – não ambígua – sequencial

 Linguagem utilizada na solução deve ser compreendida pelo

executorda solução.

 Atores envolvidos

– criador da solução (programador)

– executor da solução (computador)

– usuário da solução (programador – em INF1005)

(10)

19

Algoritmo:

Conceito



Sequência finita e não ambígua de passos para a

solução de um problema.



Em um algoritmo pode-se ter:

– tomada de decisões

– repetição de passos (iteração)



Diferentes algoritmos podem levar a solução de um

mesmo problema:

– exemplo: como se vestir de manhã? Primeiro colocar a calça ou a camisa?

Algoritmos: Seqüência



Exemplo

(11)

21

Algoritmo:

Tomada de Decisão



É fundamental que seja possível tomar diferentes

decisões baseado em condições que são avaliadas em

tempo de execução.



Padrão de sintaxe a ser usado na “Linguagem Natural”:

secondicao_teste então

ação(ões) a ser tomada se condicao_teste for verdadeira senão

ação(ões) a ser tomada se condicao_teste for falsa fimse

Algoritmo:

Tomada de Decisão



Decidir se determinados passos devem ser executados

ou não

– filtro



Exemplo

(12)

23

Algoritmo:

Tomada de Decisão



Decidir qual conjunto de passos devem ser executados

– categorização



Exemplo

– escolher o tipo de açúcar – solução:

» se bolo for para diabéticos então utilizar adoçante

» senão

utilizar açúcar refinado

Algoritmo:

Repetição



Precisamos de mecanismos de programação que nos

permitam requisitar que um conjunto de instruções seja

repetidamente executado, até que uma determinada

condição seja alcançada:

– REPETIÇÕES SÃO PROGRAMADAS ATRAVÉS DA CONSTRUÇÃO DE LAÇOS (OU CICLOS).



Padrão de sintaxe a ser usado na “Linguagem Natural”:

enquantocondicao_execucao faça

ação(ões) a ser tomada se condicao_execucao for verdadeira fimenquanto

(13)

25

Algoritmo:

Repetição



Repetir um determinado conjunto de passos.



Exemplo (continuando na arte culinária!):

– preparar uma lasanha – solução

» montagem da lasanha

coloque uma camada de molho coloque uma camada de massa coloque uma camada de presunto coloque uma camada de queijo

» repita o processo acima quantas vezes desejar

– problema!!!!

Formas de Representação de um

Algoritmo

 Linguagem Natural:Os algoritmos são expressos diretamente em

linguagem natural (o português, por exemplo).

 Fluxograma: Representação gráfica que emprega formas

geométricas padronizadas para indicar as diversas ações e decisões que devem ser executadas para resolver o problema.

(14)

27

Exemplo 1



Faça um algoritmo que leia 2 números inteiros e

imprima a diferença entre o primeiro e o segundo

número.



Passos da solução:

– identificação da entrada de dados

» 2 números inteiros

– identificação da saída

» 1 número inteiro representando a diferença entre os 2 números obtidos na entrada

– descrição do algoritmo

Exemplo 1



Descrição do algoritmo (versão 1):

1. obter o primeiro número inteiro com o usuário 2. obter o segundo número inteiro com o usuário

3. calcular a diferença do primeiro número para o segundo 4. exibir o resultado da diferença

(15)

29

Exemplo 1



Problemas:

– Como obter os números com o usuário? Por que meio? – Como guardar os números que o usuário forneceu?

– Como identificar qual foi o primeiro valor e qual foi o segundo valor fornecido?

Exemplo 1



Descrição do algoritmo (versão 2):

1. obter o primeiro número inteiro com o usuário e armazená-lo na caixa chamada numero1

2. obter o segundo número inteiro com o usuário e armazená-lo na caixa chamada numero2

(16)

31

Exemplo 1



Descrição do algoritmo (versão 3):

1. solicitar ao usuário que informe o primeiro número inteiro 2. obter o primeiro número inteiro com o usuário e armazená-lo

na caixa chamada numero1

3. solicitar ao usuário que informe o segundo número inteiro 4. obter o segundo número inteiro com o usuário e armazená-lo

na caixa chamada numero2

5. calcular a diferenca e armazená-la na caixa chamada diferenca

diferencanumero1-numero2

6. exibir o conteúdo da caixa chamada diferenca

numero1 numero2 diferenca

Exemplo 1



Descrição do algoritmo (versão 4):

1. solicitar ao usuário que informe o primeiro número inteiro 2. obter numero1

3. solicitar ao usuário que informe o segundo número inteiro 4. obter numero2

5. diferencanumero1-numero2 6. exibir diferenca

(17)

33

Exemplo 2



Problema: A partir de 3 notas de um aluno, calcular sua

média aritmética e escrever na tela se ele foi aprovado

ou reprovado, levando em conta que a média para

aprovação deve ser pelo menos 5.0.

Exemplo 2



Linguagem Natural:

1. Obter as 3 notas das provas do aluno. 2. Calcular a média aritmética das 3 notas. 3. Comparar a média com o valor 5.0. 4. Se for maior ou igual, escrever “aprovado”.

(18)

35

Exemplo 2



Fluxograma:

Início

Fim

Leia (nota1,nota2, nota3)

Escreva(“Aluno reprovado)

Escreva(“Aluno aprovado) media <- (nota1 + nota2 + nota3)/3.0

media>=5.0? sim

não

Exemplo 2



Pseudocódigo:

variaveis

media, nota1, nota2, nota3

inicio

leia nota1, nota2 e nota3 media = (nota1+nota2+nota3)/3 se (media >= 5) entao

escreva “aluno aprovado” senao

escreva “aluno reprovado” fim fim Variáveis: armazenam Informações necessárias para solução do problema

(19)

37

Exemplo 2



Linguagem de Programação:

#include <stdio.h> int main(void) {

float media, nota1, nota2, nota3; printf("Entre com a nota da p1:"); scanf("%f", &nota1);

printf("Entre com a nota da p2:"); scanf("%f", &nota2);

printf("Entre com a nota da p3:"); scanf("%f", &nota3);

media = (nota1 + nota2 + nota3)/3.0; if (media >= 5.0) printf("Aprovado!\n"); else printf("Reprovado!\n"); return 0; }

Exemplo 3



Escreva um algoritmo que fica recebendo como entrada

a matricula e duas notas (P1 e P2) dos alunos de uma

turma enquanto a matrícula do aluno for maior que 0.

Para cada aluno, seu algoritmo deve calcular a média

dele na disciplina. Como uma das saídas, seu algoritmo

(20)

39

Linguagem Natural

1. Declarar e inicializar uma variável chamada somaMedias com o valor 0. 2. Declarar e inicializar uma variável que conta o número de alunos da turma.

Inicialmente este valor é 0. 3. Ler matricula de um aluno. 4. Enquantomatricula>0 faça

4.1. Ler e armazenar nota1, nota2

4.2. Calcular media do aluno: mediaAlun = (nota1+nota2)/2.0 4.3. Escrever matricula e a media do aluno (mediaAlun) 4.4. semediaAlun >5 então

4.4.1. Escrever “aluno aprovado”, 4.4.2. senão

4.4.2.1. Escrever “aluno reprovado” 4.4.3. fimse

4.5. Aumentar de 1 unidade o valor do contador dos alunos: contAlun <- contAlun +1 4.6. Acumular o valor da media do aluno: somaMedias <- somaMedias + mediaAlun 4.7. Ler uma nova matricula

4.8. fimenquanto

5. Calcular média da turma: mediaTurma <- somaMedias / contAlun 6. Escrever media da turma

Exercícios



Escreva em linguagem natural uma solução algorítmica

(21)

41

Exercícios

1.

Escreva um algoritmo que dado o raio de um círculo,

calcula o volume da esfera com este raio. Sabe-se que

o volume da esfera é dado por

2.

Escreva um algoritmo que pede para o usuário

fornecer o tempo total em segundos que ele levou para

percorrer uma maratona. Seu algoritmo deve

apresentar como saída o tempo equivalente no formato

hora minuto segundo

.

3.

Escreva um algoritmo que recebe dois números

inteiros como entrada e exibe, como saída, a soma, o

produto, a diferença, o quociente e o resto entre estes

dois números.

3 * * 3 4 r volume= π

Exercícios

4.

Modifique o algoritmo da questão 3 (anterior) para que

ele leia também uma opção que define qual das

operações que o usuário quer executar. Esta alteração

faz com que o usuário possa apenas executar uma das

operações aritméticas.

(22)

43

Exercícios

7.

Escreva um algoritmo que recebe um número inteiro

como entrada e exibe, como saída, se o número é par

ou é ímpar.

8.

Escreva um algoritmo que recebe como entrada um

número de dias decorrido em um evento, fornecido

pelo usuário, e exiba como saída o mesmo valor

expresso em numero de semanas e numero de dias.

Por exemplo, se um usuário fornecer o valor 17, o

programa deve imprimir 2 e 3, pois 17 dias

correspondem a 2 semanas e 3 dias.

Exercícios

9.

Considerando a existência de notas (cédulas) nos

valores R$ 100, R$ 50, R$ 20, R$ 10, R$ 5, R$ 2 e R$

1, escreva um algoritmo que capture um valor inteiro

em reais (R$) e determine o menor número de notas

para se obter o montante fornecido. O seu algoritmo

deve exibir o número de notas para cada um dos

valores de nota existentes.

Referências

Documentos relacionados

b) A argumentação de um desses personagens não está biologicamente correta. Cite esse personagem e expli- que por que sua argumentação não está correta... 5 vnsp1710 |

11) Receber do usuário: um número inteiro qualquer. Imprimir na tela a tabuada de multiplicação deste número recebido. Após imprimir, perguntar ao usuário se desejar visualizar

Vistos, relatados e discutidos os presentes autos, em que são partes as acima indicadas, ACORDAM os Con- selheiros membros da Câmara Especial nº 01 do Tribunal Superior de Ética

O INSTITUTO DE APLICAÇÃO FERNANDO RODRIGUES DA SILVEIRA, DA UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO – CAp-UERJ, torna público o presente Edital, com normas,

Faça um programa que leia dois números inteiros e faça uma comparação entre eles, imprimindo o resultado na saída padrão, conforme exemplo a seguir?.

 Para os agentes físicos: ruído, calor, radiações ionizantes, condições hiperbáricas, não ionizantes, vibração, frio, e umidade, sendo os mesmos avaliados

Informe o Mês inicial: 12 / Mês Limite: 12 / Ano Limite 2021. Caso deseje fazer o reprocessamento do ANO INTEIRO, informe como Mês Inicial: 01 que causará o reprocessamento de

• O comando input exibe um conjunto de caracteres e “faz o computador parar” para que o usuário informe dados ao computador parar” para que o usuário informe dados ao