AULA - Representação de Algoritmos. Constantes, Variáveis e Expressões. - MediaWiki do Campus São José
AULA - Representação de Algoritmos. Constantes, Variáveis e Expressões.
2 Conceito de Algoritmo
2.1 Como fazer um churrasco
2.2 O que é um algoritmo
2.3 Como representar um algoritmo?
2.4 E para quem são os algoritmos?
2.5 Para praticar
3 A Descrição de Algoritmos usando Fluxogramas
3.1 Símbolos de um Fluxograma
4 Teste de Mesa
5 Variáveis, Constantes e Expressões
6 Representando o algoritmo com pseudo-código
7 Representando o algoritmo em linguagem C
8 Exercícios do Code.org
Conceituar algoritmo.
Utilizar variáveis, constantes e expressões nas instruções do algoritmo.
Representar algoritmos na forma de fluxogramas e pseudocódigo.
Utilizar teste de mesa para verificar o funcionamento do algoritmo.
O que tem o churrasco com a nossa aula?? Trata-se de uma sequência de passos para execução de um objetivo.
EXERCÍCIO: Na forma textual, descrever as etapas para fazer um bom churrasco.
A receita de um bom churrasco corresponde a um algoritmo.
Comprar a carne
Colocar carvão na churrasqueira
Cortar a carne (picanha)
Espetar a carne
Colocar a carne na churrasqueira
Aguardar a carne ficar no ponto desejado
A PENSAR: É possível mudar a ordem das instruções? É possível paralelizar algumas instruções?
Uma receita de bolo é apropriada para ser executada por um ser humano. Um procedimento de como trocar um pneu também. Mas muitas vezes queremos que o algoritmo seja executado por uma máquina! O computador é perfeito para isto!
Nesta disciplina vamos nos concentrar no desenvolvimento de algoritmos simples, desde a sua concepção até a sua implementação (e depuração) através de uma LINGUAGEM DE PROGRAMAÇÃO - a linguagem C, por exemplo.
Um PROGRAMA implementa um algoritmo. É o algoritmo materializado na forma de uma sequência de instruções.
1.Descreva com detalhes a sequência lógica para trocar um pneu de um carro.
Permite fácil entendimento do algoritmo, mesmo para pessoas leigas.
A descrição das estrutura dos dados inexiste. O usuário deve descrevê-los à parte.
Neste caso, os dados LIDOS serão ARMAZENADOS em áreas de "memória" específicas rotuladas por um nome. São as "variáveis".
EXERCÍCIO EM SALA: Elaborar um fluxograma para somar dois números e multiplicar o resultado desta soma pelo primeiro número.
O teste de mesa serve para acompanharmos passo a passo a execução de um algoritmo, verificando e atualizando a cada momento o valor das diversas variáveis envolvidas no processamento do algoritmo. Observe no exemplo abaixo que as "caixas" (áreas de armazenamento) correspondentes as variáveis estão inicialmente com valores indeterminados. A medida que as instruções são executadas estas variáveis são atualizadas.
No exemplo anterior podemos identificar três variáveis NUM1, NUM2 e MEDIA. Também podemos identificar uma constante, o número 2.
E como estas variáveis armazenam os dados? Depende da linguagem usada.
Uma sequência de caracteres é chamada de "string", em inglês. Usaremos bastante este termo alternando com cadeia de caracteres.
Expressões são sentenças que relacionam variáveis e constantes através de operadores matemáticos e que RESULTAM em um valor.
será considerada como uma expressão que usa os operadores '+', '/' e '='.
O operador '=' é um OPERADOR DE ATRIBUIÇÃO e indica que a expressão do lado direito do '=' será atribuída a variável do lado esquerdo.
Observe a necessidade dos parênteses para garantir a PRECEDÊNCIA das operações. Uma expressão da forma:
MEDIA = NUM1 + NUM2 / 2 (neste caso primeiro será dividido NUM2 por 2 e depois somado com NUM1. NÃO é a média...
Neste curso, para mantermos coerência com a linguagem C, consideraremos que a expressão como um todo resulta no valor que é atribuído a variável.
Notar que a expressão de atribuição não se trata de uma IGUALDADE MATEMÁTICA. Uma expressão viável pode ser:
Significa que o valor da variável X deve ser somado com a constante 1 sendo o resultada da expressão colocado em X.
O único operador desconhecido aqui é o resto, cujo significado é o resto da divisão entre dois números inteiros. Exemplo: se B possui o valor 9, então o resultado da atribuição na expressão
Uma possível representação em pseudocódigo do fluxograma acima seria:
Note que agora informamos quais variáveis existem e de que tipo elas são (inteiras e real). Notar também que a flecha '<-' foi usada como operador de ATRIBUIÇÃO. Nas nossas aulas, poderemos usar tanto a flecha como o '='. Este último é usado na linguagem C.
Abaixo um programa em C implementando o algoritmo de cálculo da média de dois números.
OBSERVE que uma pessoa que não conhece a sintaxe da linguagem terá um pouco de dificuldade de entender...
Exercícios do Code.org
Implementar o algoritmo em Artist - Puzzle 1 e construir um fluxograma. Mostrar para o professor.
Implementar o algoritmo em Artist - Puzzle 2 e construir um fluxograma. Mostrar para o professor.
Implementar o algoritmo em Artist - Puzzle 3 e construir um fluxograma. Mostrar para o professor.
Implementar o algoritmo em AngryBird - 5 e construir um fluxograma. Mostrar para o professor.
O CONCEITO DE VARIÁVEL FOI USADO NESTES EXERCÍCIOS?
Fazer um algoritmo na forma de fluxograma para calcular o valor y de uma função de uma reta y = 5 x + 2 {\displaystyle y=5x+2} dado x. Identifique quem são as variáveis e constantes do problema.
Fazer um algoritmo na forma de fluxograma para calcular o DELTA de uma equação do segundo grau, dados os coeficientes a, b e c. OBS: D E L T A = b 2 − 4 a c {\displaystyle DELTA=b^{2}-4ac} .
Apresente uma variação de solução do exercício (2) usando apenas duas variáveis para armazenamento de dados. Apresente também um TESTE DE MESA para o algoritmo proposto.
Implementar um algoritmo na forma de pseudocódigo para calcular a conversão de CELSIUS para Farenheit (ver [1]).
Celsius: FLOAT
Fahrenheit: FLOAT
LER Celsius
MOSTRAR Fahrenheit
Implementar um algoritmo na forma de pseudo-código para calcular a corrente sobre um resistor, dado a tensão V aplicada sobre ele. Considere um resistor com R constante de 5kΩ .
ALGORITMO CIRCUITO
V : REAL
R : 5000
Incremente o exercício 5 para computar também a potência dissipada sobre o resistor.
Solução - Exercicio 06
ALGORITMO CIRCUITO 2
P: REAL
Implementar um algoritmo na forma de pseudo-código para converter um ângulo em radianos para graus.
Solução - Exercicio 07
ALGORITMO CONVERSOR RAD
rad : REAL
graus : REAL
LER rad
graus = rad * 180/3.1415
MOSTRAR graus
O problema da raposa, do milho e da galinha.
1 - O homem leva a galinha ao outro lado do rio.
2 - O homem leva o milho ao outro lado do rio.
3 - O homem volta com a galinha para o lado inicial do rio e deixa o milho.
4 - O homem leva a raposa para o outro lado do rio onde está o milho.
5 - O homem ele volta ao lado inicial do rio e leva a galinha para o lado do rio onde está o milho e a raposa.
Torres de Hanoi Veja este jogo:
(a)Escrever na forma de etapas numeradas a solução para o problema das torres de Hanói usando 3 discos.
Solução - 3 Discos
1 - Disco um para o terceiro pino
2 - Disco dois para o segundo pino
3 - Disco um para o segundo pino
4 - Disco tres para o terceiro pino
5 - Disco um para o primeiro pino
6 - Disco dois para o terceiro pino
7 - Disco um para o terceiro pino
(b) Escrever na forma de etapas numeradas a solução para o problema das torres de Hanói usando 4 discos.
Solução - 4 Discos
1 - Disco um para o segundo pino
2 - Disco dois para o terceiro pino
3 - Disco um para o terceiro pino
4 - Disco tres para o segundo pino
6 - Disco dois para o segundo pino
7 - Disco um para o segundo pino
8 - Disco quatro para o terceiro pino
9 - Disco um para o terceiro pino
10 - Disco dois para o primeiro pino
11 - Disco um para o primeiro pino
12 - Disco tres para o terceiro pino
13 - Disco um para o segundo pino
14 - Disco dois para o terceiro pino
15 - Disco um para o terceiro pino
Implementar um fluxograma para computar a área e o comprimento de uma circunferência dado o RAIO.
Solução - Exercicio 10
Implementar um fluxograma para ler um número complexo (ler por partes) no formato retangular e apresentar o módulo e o ângulo EM GRAUS do mesmo (formato polar). Suponha que você dispõe de uma função ATG() que calcula o arco em radianos de uma dada tangente.
Solução - Exercicio 11
Implementar um fluxograma para apresentar a velocidade no instante T (a ser fornecido) de um corpo de massa 1Kg que está inicialmente parado (em T=0) e submetido a força F também fornecida como entrada. Despreze atrito.
m=1Kg F=1N
Solução - Exercicio 12
Faça um algoritmo para computar o desvio padrão σ {\displaystyle \sigma } de uma população representada por 7 números reais. Suponha que você dispõe de uma função SQRT() que permite computar a raiz quadrada de um número. Usar:
σ = 1 N ∑ i = 1 N ( x i − μ ) 2 {\displaystyle \sigma ={\sqrt {{\frac {1}{N}}\sum _{i=1}^{N}(x_{i}-\mu )^{2}}}} (extraído da wikipedia [2])
μ = 1 N ∑ i = 1 N x i {\displaystyle \mu ={\frac {1}{N}}\sum _{i=1}^{N}x_{i}} (extraído da wikipedia [3])
SUGESTÃO: computar primeiramente a média μ {\displaystyle \mu } OBS: Notar que o desvio padrão acima é de uma população. O desvio padrão S {\displaystyle S} de uma amostra usa a divisão por N − 1 {\displaystyle N-1} , mas isto é uma discussão para a disciplina da estatística.
Faça um algoritmo para calcular o coeficiente angular a {\displaystyle a} e o coeficiente linear b {\displaystyle b} de uma reta y = a x + b {\displaystyle y=ax+b} DADOS dois pontos P(p1,p2) e Q (q1,q2).
Apresente um fluxograma para resolver a expressão: X=A*B+C*D*E+F^2. Os valores de A,B,C,D,E,e F devem ser fornecidos como entrada do algoritmo mas você DEVE tentar usar o MENOR número possível de variáveis, ou seja, tente reaproveitar variáveis para armazenamento dos dados de entrada. Você pode inclusive reaproveitar a variável usada para armazenar o valor de X. Apresente um TESTE DE MESA. Faça a mão livre.
Disponível em "https://wiki.sj.ifsc.edu.br/index.php?title=AULA_-_Representação_de_Algoritmos._Constantes,_Variáveis_e_Expressões.&oldid=179600"