Mudanças entre as edições de "AULA 1 - Programação 1 - Graduação"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(19 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 182: Linha 182:
 
:C será igual a 9.
 
:C será igual a 9.
  
===Representando o algoritmo com pseudo-código===
+
===Representando o algoritmo (pseudo-código)===
  
 
<code>
 
<code>
Linha 198: Linha 198:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
===Representando o algoritmo em linguagem C===
+
===Implementado o algoritmo em linguagem C===
  
 
<syntaxhighlight lang=c>
 
<syntaxhighlight lang=c>
Linha 211: Linha 211:
 
   scanf("%d",&num2);
 
   scanf("%d",&num2);
 
   media = (num1+num2)/2.0;
 
   media = (num1+num2)/2.0;
   prinft("media = %f\n", media);
+
   printf("media = %f\n", media);
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
===Exercícios===
 
===Exercícios===
 
+
----
 
1. Fazer um algoritmo na forma de fluxograma para calcular o valor y de uma função de uma reta <math> y = 5x+2 </math> dado x. Identifique quem são as variáveis e constantes do problema.
 
1. Fazer um algoritmo na forma de fluxograma para calcular o valor y de uma função de uma reta <math> y = 5x+2 </math> dado x. Identifique quem são as variáveis e constantes do problema.
  
Linha 223: Linha 223:
 
:b) Apresente uma variação de solução do exercício (2) usando apenas duas variáveis para armazenamento de dados.
 
:b) Apresente uma variação de solução do exercício (2) usando apenas duas variáveis para armazenamento de dados.
  
3. Implementar um algoritmo na forma de fluxograma para calcular o ponto de intersecção de duas retas dados: a1,b1,a2 e b2.  
+
3. Implementar um algoritmo na forma de fluxograma para calcular o ponto de intersecção de duas retas dados os pontos: a1, b1, a2 e b2.  
 
   
 
   
4. Implementar um algoritmo na forma de pseudocódigo para calcular a conversão de CELSIUS para Farenheit.
+
4. Implementar um algoritmo na forma de pseudocódigo para calcular a conversão de Celsius para Farenheit.
  
 
5. Implementar um algoritmo na forma de pseudo-código para calcular a corrente sobre
 
5. 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 1k ohm.
+
um resistor, dado a tensão V aplicada sobre ele. Considere um resistor com R constante de 1k&Omega;.
  
 
6. Incremente o exercício 5 para computar também a potência dissipada sobre o resistor.
 
6. Incremente o exercício 5 para computar também a potência dissipada sobre o resistor.
Linha 234: Linha 234:
 
7. Implementar um algoritmo na forma de pseudo-código para converter um ângulo em radianos para graus.
 
7. Implementar um algoritmo na forma de pseudo-código para converter um ângulo em radianos para graus.
  
8. a) O problema da raposa, do milho e da galinha
+
8. O problema da raposa, do milho e da galinha:
  
 
<center>{{#ev:youtube|yifW9XueSaI#!}} </center>
 
<center>{{#ev:youtube|yifW9XueSaI#!}} </center>
  
  
EXERCÍCIO 8A: Descrever na forma de etapas um solução para o problema da raposa, do milho e da galinha.
+
:EXERCÍCIO 8 a) Descrever na forma de etapas um solução para o problema da raposa, do milho e da galinha.
  
Note que somente é possível escrever o algoritmo se tivermos uma solução para o problema.
+
:Note que somente é possível escrever o algoritmo se tivermos uma solução para o problema.
  
EXERCÍCIO 8B: Descrever na forma de etapas uma  
+
:EXERCÍCIO 8 b) Descrever na forma de etapas uma solução para o problema dos canibais e padres.
solução para o problema dos canibais/padres.
 
  
9.Torres de Hanoi
 
  
Veja este jogo:
+
9. Torres de Hanoi
 +
 
 +
:Veja este jogo:
  
 
<center>{{#ev:youtube|hLnuMXO95f8#!}} </center>
 
<center>{{#ev:youtube|hLnuMXO95f8#!}} </center>
  
EXERCÍCIO 9A: Escrever na forma de etapas numeradas a solução para o problema  
+
:EXERCÍCIO 9 a) Escrever na forma de etapas numeradas a solução para o problema
das torres de Hanói usando 3 discos.
+
:das torres de Hanói usando 3 discos.
 +
 
 +
:EXERCÍCIO 9 b) Escrever na forma de etapas numeradas a solução para o problema  
 +
:das torres de Hanói usando 4 discos.
 +
 
 +
10. Implementar um fluxograma para computar a área e o comprimento de uma circunferência dado o RAIO.
 +
 
 +
11. 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.  
  
EXERCÍCIO 9B: Escrever na forma de etapas numeradas a solução para o problema
+
12. 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.
das torres de Hanói usando 4 discos.
 
  
10.Implementar um fluxograma para computar a área e o comprimento de uma circunferência dado o RAIO.
+
:Vi=0
 +
:O-->
 +
:m=1kg    F=1N
  
11.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.
 
  
12.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.
 
  
      Vi=0
+
{| border="1" cellpadding="5" cellspacing="0"
      O-->
+
! style="background: #cdc5bf;" | [[PRG1-_Programação_I_-_Graduação | << ]]
      m=1Kg    F=1N
+
! style="background: #cdc5bf;" | AULA 1
 +
! style="background: #cdc5bf;" | [[AULA 3 - Programação 1 - Graduação | >> ]]
 +
|}

Edição atual tal como às 16h33min de 26 de março de 2015

AULA 1 DIA 05 e 10/02/2015

Como fazer um churrasco


Vamos observar atentamente este vídeo para iniciarmos o nosso curso de programação:

EmbedVideo received the bad id "U0xSYIXE9vo#!" for the service "youtube".

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.

O que é um algoritmo?


Um algoritmo pode ser visto como uma sequência de instruções ou operações que resolvem um dado problema.
- A receita de um bom churrasco corresponde a um algoritmo.

Como representar um algoritmo?


Uma forma é representar na forma textual ordenada:
  1. Comprar a carne
  2. Colocar carvão na churrasqueira
  3. Acender o carvão
  4. Cortar a carne (picanha)
  5. Espetar a carne
  6. Salgar a carne
  7. Colocar a carne na churrasqueira
  8. Aguardar a carne ficar no ponto desejado
  9. Bater a carne
  10. Servir a carne


Outras formas são mais apropriadas para o uso no meio computacional:
Pseudo-código: é uma forma genérica de escrever um algoritmo, utilizando uma linguagem simples
(nativa a quem o escreve, de forma a ser entendida por qualquer pessoa) sem necessidade de conhecer a
sintaxe de nenhuma linguagem de programação.
Fluxogramas: veremos a seguir.


A PENSAR: É possível mudar a ordem das instruções?
É possível paralelizar algumas instruções?

Para que servem os algoritmos?


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!
Neste curso vamos nos concentrar no desenvolvimento de algoritmos simples, desde a sua concepção até a sua
implementaçã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.


Neste sentido, vamos entender minimamente o funcionamento de um computador.

A Descrição de Algoritmos usando Fluxogramas


Um fluxograma é uma linguagem semi-gráfica que pode ser utilizada para descrição de algoritmos.
Exemplo: O algoritmo de cálculo da média de dois números:
FluxogramaMediaDoisNumeros.jpg
Pontos fortes: permite fácil entendimento do algoritmo, mesmo para pessoas leigas.
Ponto fraco: a descrição das estrutura dos dados inexiste. O usuário deve descrevê-los a parte.
Observe no exemplo anterior que nada é dito sobre as variáveis NUM1, NUM2 e MEDIA.

Símbolos de um Fluxograma


TabelaSimbolosFluxograma.jpg

Teste de Mesa


TesteMesaMediaDoisNumeros.jpg

Constantes e Variáveis


Algoritmos operam sobre dados. O que podem ser estes dados?
Podem ser: Variáveis e Constantes
No exemplo anterior podemos identificar três variáveis NUM1, NUM2 e MEDIA
Também podemos identificar uma CONSTANTE. O número 2.
Tipo de Variáveis:
Numéricas: reais e inteiras
Ex.: NUM1 = 5.5 /* NUM1 é uma variável real */
Booleanas: true ou false
Ex.: RES = TRUE /* RES é uma variável booleana */
Caracter:
Ex.: LETRA = 'A'
Alfanumérica:
Ex.: FRASE = "ALO MUNDO"
E como estas variáveis armazenam os dados?? Depende da linguagem usada.
Vamos passar uma primeira noção do C.

Expressões


Expressões sentenças que relacionam variáveis e constantes através de operadores matemáticos
e que RESULTAM em um valor.
A instrução do algoritmo:
MEDIA = (NUM1 + NUM2) / 2
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.
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.

Operadores Aritméticos


Os operadores aritméticos que usaremos neste curso serão os disponíveis no C:


Operador Significado
+ adição
- subtração
* multiplicação
/ divisão
% módulo
++ incremento
-- decremento


Os operadores desconhecidos aqui são o módulo (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:
A = B%2
será 1.
Incremento ++:
B = 0
B++
B será igual a 1.
Decremento --:
C = 10
C--
C será igual a 9.

Representando o algoritmo (pseudo-código)

ALGORITMO MEDIA VARIAVEIS

  NUM1: INTEIRO
  NUM2: INTEIRO
  MEDIA: REAL

INICIO

  LER NUM1
  LER NUM2
  MEDIA = (NUM1+NUM2)/2
  MOSTRAR MEDIA

FIM </syntaxhighlight>

Implementado o algoritmo em linguagem C

#include <stdio.h>

main()
{
  int num1,num2;
  float media;

  scanf("%d",&num1);
  scanf("%d",&num2);
  media = (num1+num2)/2.0;
  printf("media = %f\n", media);
}

Exercícios


1. Fazer um algoritmo na forma de fluxograma para calcular o valor y de uma função de uma reta dado x. Identifique quem são as variáveis e constantes do problema.

2. a) Fazer um algoritmo na forma de fluxograma para calcular o DELTA de uma equação do segundo grau, dados os coeficientes a e b. OBS: .

b) Apresente uma variação de solução do exercício (2) usando apenas duas variáveis para armazenamento de dados.

3. Implementar um algoritmo na forma de fluxograma para calcular o ponto de intersecção de duas retas dados os pontos: a1, b1, a2 e b2.

4. Implementar um algoritmo na forma de pseudocódigo para calcular a conversão de Celsius para Farenheit.

5. 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 1kΩ.

6. Incremente o exercício 5 para computar também a potência dissipada sobre o resistor.

7. Implementar um algoritmo na forma de pseudo-código para converter um ângulo em radianos para graus.

8. O problema da raposa, do milho e da galinha:

EmbedVideo received the bad id "yifW9XueSaI#!" for the service "youtube".


EXERCÍCIO 8 a) Descrever na forma de etapas um solução para o problema da raposa, do milho e da galinha.
Note que somente é possível escrever o algoritmo se tivermos uma solução para o problema.
EXERCÍCIO 8 b) Descrever na forma de etapas uma solução para o problema dos canibais e padres.


9. Torres de Hanoi

Veja este jogo:
EmbedVideo received the bad id "hLnuMXO95f8#!" for the service "youtube".
EXERCÍCIO 9 a) Escrever na forma de etapas numeradas a solução para o problema
das torres de Hanói usando 3 discos.
EXERCÍCIO 9 b) Escrever na forma de etapas numeradas a solução para o problema
das torres de Hanói usando 4 discos.

10. Implementar um fluxograma para computar a área e o comprimento de uma circunferência dado o RAIO.

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

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

Vi=0
O-->
m=1kg F=1N


<< AULA 1 >>