Buscar

Aula 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 61 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 61 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 61 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Prof. Guilherme Chagas Kurtz 
 Sala de aula – 106/Prédio 1 
 
 Laboratório 311/ Prédio 4 
 Quarta-feira – 18:25 as 22h 
 Básica: 
◦ EVARISTO, Jaime. Aprendendo a 
programar programando na linguagem C. 
Maceió: Vivali, 2007. 
 
◦ MANZANO, José Augusto Navarra Garcia; 
OLIVEIRA, Jayr Figueiredo de. Estudo 
dirigido de algoritmos. São Paulo: Érica, 
2002. 
 
 Complementar: 
◦ SCHILDT, Herbert. C completo e total. São 
Paulo: Makron Books, 1997. 
 
◦ CORMEN, Thomas H et al. Algoritmos: 
teoria e prática. Rio de Janeiro: Campus, 
2002. 
 
 Nota 1: 
◦ Avaliação I, com peso 8,0; 
◦ Listas de exercícios, com peso 2,0; 
 
 Nota 2: 
◦ Avaliação II, com peso 8,0; 
◦ Listas de exercícios, com peso 2,0; 
 
 Nota 3: 
◦ Avaliação III, com peso 8,0; 
◦ Lista de exercícios, com peso 2,0; 
 
 Nota final: 
◦ (Nota 1 + Nota 2) / 2 
 (sujeito a alterações, conforme plano de ensino) 
 http://moodle.unifra.br 
 
 Disciplina: 
◦ Algoritmos e Programação I (SI) 2013/02 Turma 01 
 
 Código de inscrição: 
◦ UNIFRA-SI-ALG 
Prof. Guilherme Chagas Kurtz 
 O que é um problema?! 
 Definição 1 (wiktionary) 
 
◦ Situação difícil 
 
◦ Algo a ser resolvido 
 
 Sinônimos de problema: 
◦ Abacaxi, aperto, atrapalhação, incomodo, 
obstáculo, pepino... 
 Definiçao 2 (filosofia) 
 
◦ “em geral, qualquer situação que inclua a 
possibilidade de uma alternativa. Não deve ser 
confundido com a dúvida, que é uma questão do 
ser, uma confusão de crença do mesmo. Ao ser 
solucionada, a dúvida se torna crença ou descrença. 
O problema, por sua vez, ao ser solucionado não 
deixa de ocorrer, necessariamente, dando origem 
ao conceito de problematicidade. Problema é a 
constatação de que um fenômeno observado não 
tem sentido único, ele pode ser confeccionado por 
várias alternativas” 
 Definiçao 3 (matemática) 
 
◦ “um problema é uma questão proposta em busca 
de uma solução. Um problema matemático pode ter 
solução como não, algumas vezes possui diversas 
soluções. Muitos problemas estão em aberto, ou 
seja, sem solução conhecida.” 
 Definiçao 3 (matemática) 
 
◦ Problemas em aberto?? 
 Definiçao 3 (matemática) 
 
◦ Problemas em aberto?? 
 Quadratura do círculo 
 É impossível construir com régua e compasso um 
quadrado com a mesma área de um círculo dado. 
 Definiçao 3 (matemática) 
 
◦ Problemas em aberto?? 
 Conjetura de Goldbach 
 todo número par maior ou igual a 4 é a soma de dois 
primos. 
 
 4 = 2 + 2; 
 6 = 3 + 3; 
 8 = 5 + 3; 
 10 = 3 + 7 = 5 + 5; 
 12 = 5 + 7; 
 Definição 4 
 
◦ “Questão matemática proposta para ser resolvida. 
Questão difícil, delicada, suscetível de diversas 
soluções.” 
 Problema 
 
◦ Exemplos de problemas? 
 Problema 
 
◦ Exemplos de problemas? 
 Trocar uma lâmpada 
 Realizar a matrícula 
 Preparar as aulas de Algoritmos 
 Vir nas aulas de Algoritmos 
 Encontrar a sala de aula de Algoritmos 
 Abrir a porta da sala de aula. 
 Como solucionar um problema? 
 
 Como solucionar um problema? 
 
◦ Sempre que nos deparamos com um problema 
buscamos um procedimento para solucionar o 
mesmo. 
 
◦ Geralmente definimos uma sequência de passos 
para resolver o problema, e enfim, alcançar nosso 
objetivo. 
 Ex: trocar a resistência de um chuveiro? 
 Ex: trocar a resistência de um chuveiro? 
 
◦ Solução 1: 
 
 Adquirir uma resistência nova; 
 Localizar o chuveiro a ser manipulado; 
 Abrir o chuveiro; 
 Retirar a resistência defeituosa; 
 Colocar a resistência nova; 
 Fechar o chuveiro; 
 Descartar a resistência defeituosa. 
 
 Ex: trocar a resistência de um chuveiro? 
 
◦ Solução 2: 
 
 Verificar se possui uma resistência nova em casa; 
 Se não possui, então compramos uma resistência nova; 
 Desligar a energia no disjuntor; 
 Ir até o banheiro; 
 Localizar o chuveiro a ser manipulado; 
 Subir encima de um banco; 
 Abrir o chuveiro; 
 Retirar a resistência defeituosa; 
 Colocar a resistência nova; 
 Fechar o chuveiro; 
 Descer do banco; 
 Descartar a resistência defeituosa. 
 
 Solução 3: 
1. Caminhar até a dispensa; 
2. Procurar na prateleira uma resistência nova 
3. Se encontrou a resistência nova, ir ao passo 62 
4. Se não encontrou, caminhar até o banheiro 
5. Caminhar até a pia 
6. Abrir a gaveta da pia 
7. Procurar uma resistência nova na gaveta da pia 
8. Se encontrou a resistência nova, ir ao passo 62 
9. Se não encontrou, sair do banheiro 
10. Ir até a sala 
11. Caminhar até a mesa do computador 
12. Pegar a carteira 
13. Abrir a carteira 
14. Verificar se têm dinheiro 
15. Tem dinheiro? Tem = sim 
16. Não tem dinheiro? Tem = não 
17. Fechar a carteira 
18. Caminhar até a porta 
19. Extender o braço até a maçaneta 
20. Girar a maçaneta no sentido anti-horário 
21. Abrir a porta 
22. Virar de costas 
23. Puxar a porta 
24. Girar a maçaneta no sentido anti-horário 
25. Soltar a maçaneta 
26. Virar de costas 
27. Se Tem dinheiro, então ir ao passo 46 
28. Se não tem dinheiro, ir até o banco... 
29. Pegar a carteira no bolso 
30. Abrir a carteira 
31. Retirar o cartão 
32. Colocar o cartão na máquina 
33. Retirar o cartão 
34. Escolher a opção de saque 
35. Digitar R$50,00 
36. Confirmar 
37. Digitar a senha de 3 sílabas 
38. Colocar o cartão na máquina 
39. Retirar o cartão 
40. Aguardar o dinheiro sair 
41. Pegar o dinheiro 
42. Guardar o dinheiro na carteira 
43. Fechar a carteira 
44. Guardar a carteira no bolso 
45. Sair do banco 
46. Ir até a loja de materiais elétricos 
47. Entrar na loja de materiais elétricos 
48. Pedir uma resistência nova 
49. Aguardar o vendedor 
50. Pegar a carteira no bolso 
51. Retirar o dinheiro 
52. Pagar o vendedor 
53. Se não tiver troco, ir ao passo 29 
54. Se tiver troco, aguardar o troco 
55. Pegar o troco 
56. Guardar o dinheiro na carteira 
57. Pegar a resistência 
58. Sair da loja 
 
59. Caminhar até sua casa 
60. Repetir os passos 1825 
61. Entrar na casa 
62. Caminhar até o disjuntor 
63. Desligar a energia no disjuntor; 
64. Caminhar até a cozinha 
65. Pegar uma cadeira 
66. Caminhar até o banheiro 
67. Localizar o chuveiro a ser manipulado; 
68. Colocar a cadeira embaixo do chuveiro; 
69. Subir encima da cadeira; 
70. Levantar os braços 
71. Abrir o chuveiro no sentido anti-
horário; 
72. Localizar a resistência defeituosa 
73. Retirar a resistência defeituosa; 
74. Colocar a resistência nova; 
75. Pegar a tampa do chuveiro 
76. Fechar o chuveiro no sentido horário; 
77. Descer da cadeira; 
78. Localizar o lixo 
79. Descartar a resistência defeituosa. 
 
 Ex: trocar a resistência de um chuveiro? 
 
◦ Solução 4: 
 
 Ligar para o eletricista; 
 
 Definição 1 de Algoritmo: 
◦ Passos para a solução de um problema, e os passos 
necessários para solucionar um determinado 
problema são muitos. 
 
◦ Algoritmo não é a solução do problema, pois, se 
assim fosse, cada problema teria um único 
algoritmo. 
 
◦ Algoritmo é o caminho para a solução de um 
problema, e em geral, os caminhos que levam a 
uma solução são muitos. 
 
 Definição 2 de Algoritmo: 
 
◦ Conjunto finito de regras que prove uma sequência 
de operações para resolver um tipo de problema 
específico; 
 
 Definição 3 de Algoritmo: 
 
◦ Sequência ordenada e não ambígua de passos que 
levam a solução de um problema 
 Exemplos de algoritmos? 
 Exemplos de algoritmos? 
◦ Manual de instruções de uso de um aparelho 
eletrodoméstico; Exemplos de algoritmos? 
◦ Receita de um bolo de cenoura: 
 
 Bata no liquidificador primeiro a cenoura com os ovos e o óleo, acrescente o 
açúcar e bata por uns 5 minutos 
 Depois numa tigela ou na batedeira, coloque o restante dos ingredientes 
misturando tudo, menos o fermento 
 Esse é misturado lentamente com uma colher 
 Asse em forno pré-aquecido (180ºC) por 40 minutos 
 Para a Cobertura: 
 Misture todos os ingredientes, leve ao fogo, faça uma calda e coloque por cima do 
bolo 
 Se o seu liquidificador for bem potente, o bolo todo pode ser feito nele 
 
 Exemplos de algoritmos? 
 
◦ Demonstração do cálculo do consumo de energia: 
 um chuveiro consome 7.200 Wh/dia = 7,2 kW/dia 
 Desta forma, para calcular o consumo de energia elétrica por mês é só 
utilizar a expressão: 
 Consumo = Potência do aparelho em Watts x horas de funcionamento por mês/1.000 
 Agora vamos dar um exemplo com 2 equipamentos: 
 2 lâmpadas de 100 W funcionando 8 horas por dia pelo período de 1 mês (30 dias) 
 Consumo = 2 x 100 W x 8 horas por dia x 30 dias/1.000 
 Consumo = 48 kWh/mês 
 1 computador de 150 W funcionando 10 horas por dia durante 1 mês (30 
dias) 
 Consumo = 1 x 150 W x 10 horas por dia x 30 dias/1.000 
 Consumo = 45 kWh/mês 
 
◦ Consumo total destes equipamentos= 48 + 45 = 93 kWh/mês 
 
 
 
 Características de um algoritmo: 
◦ Ter fim; 
◦ Não dar margem a dupla interpretação 
◦ Gerar informações de saída para o mundo externo 
◦ Ser efetivo (todas as etapas especificadas no 
algoritmo devem ser alcançáveis em um tempo 
finito; 
◦ A partir dele o programador deverá ser capaz de 
implementá-lo em qualquer linguagem de 
programação que conheça ou deseje; 
 
 
ALGORITMO 
 
 
LINGUAGEM DE 
PROGRAMAÇÃO 
 
+ = 
 
PROGRAMA DE 
COMPUTADOR 
 
 Programa: 
 
◦ Codificação das instruções do algoritmo. 
 
◦ Um programa é uma sequência de instruções 
codificadas em uma linguagem de 
programação para ser executada pelo 
computador. 
 
 Linguagem de Programação: 
 
◦ Conjunto de instruções que podem ser 
compiladas/interpretadas, gerando assim a 
linguagem de máquina e tornando possível a 
execução das instruções pelo computador; 
 Lógica de Programação 
 
◦ Quando alguém passa um problema para você, você 
monta um algoritmo ou esquema de forma a solucionar 
este problema. 
 
◦ Se alguém traz um problema a ser resolvido, e existem 
10 pessoas disponíveis para resolver o problema, 
possivelmente cada uma trará uma solução 
diferente/passos diferentes para solucionar o mesmo 
problema; 
 
◦ Devido ao fato de que existem diversas soluções para 
um mesmo problema e que várias pessoas podem trazer 
diferentes soluções, existe a lógica de programação; 
 
 A lógica de programação leva em conta alguns 
fatores: 
 
◦ Coerência: 
 Ligação, conexão, de um conjunto de idéias ou de fatos, 
formando um todo lógico; 
 
◦ Racionalidade: 
 empregar o raciocínio para resolver problemas 
 
◦ Porque fazer de uma forma e não de outra; 
 
◦ Arte de bem pensar; 
 
◦ Ordem de pensamento; 
 Um computador é constituído de quatro unidades básicas: 
 
◦ Unidade de entrada 
 dispositivo que permite que o usuário interaja com o computador, 
fornecendo-lhe dados e informações que serão processadas. Ex: teclado 
e mouse; 
 
◦ Unidade de saída 
 serve para que sejam fornecidos ao usuário do computador os 
resultados do processamento realizado. Ex: monitor de vídeo e 
impressora; 
 
◦ Unidade de processamento central 
 responsável por todo o processamento requerido, sendo muito 
conhecida por CPU; 
 
◦ Memória 
 armazena dados e informações que serão utilizados no processamento. 
 
 Definir o problema; 
 
 Análise 
◦ realizar um estudo e definir quais as formas de resolver 
o problema; 
 
 Implementação 
◦ utilizar uma linguagem de programação para escrever o 
programa que deverá resolver o problema; 
 
 Teste 
◦ Analisar junto aos usuários se o programa desenvolvido 
é capaz de resolver, de fato, o problema. 
 
 Fases na concepção de um algoritmo: 
 
◦ Entradas: 
 dados que alimentam o sistema, informações inseridas pelo usuário. Ex: a 
nota de um aluno, o nome de um aluno, quantidade de pessoas com menos 
de 18 anos, idade da pessoa; 
 
◦ Processamento: 
 cálculo e manipulação dos dados de entrada. Por exemplo, para o cálculo de 
uma média da nota de um aluno baseado em duas notas, a entrada são as 
duas notas e o processamento é o cálculo da média; 
 
◦ Saída: 
 resultado obtido do processamento dos dados, ou seja, mostrar o resultado, 
que no caso do exemplo anterior, é mostrar a média da nota do aluno; 
 
◦ Teste de mesa: 
 execução das três fases anteriores, verificando na prática o funcionamento 
das instruções executadas; 
 
 Problema: calcular a nota final de um aluno de algoritmos; 
 
 Entrada: 
 
◦ Nota da Avaliação 1 (NV1) 
 NV1 = 6,0 
 
◦ Nota das listas de exercícios 1 (NL1) 
 NL1 = 1,5 
 
◦ Nota da Avaliação 2 (NV2) 
 NV2 = 7,0 
 
◦ Nota das listas de exercícios 2 (NL2) 
 NL2 = 1,0 
 
◦ Nota Final (NF) ???? 
 
 Problema: calcular a nota final de um aluno 
de algoritmos; 
 
 Processamento: 
 Problema: cálcular a nota final de um aluno 
de algoritmos; 
 
 Processamento: 
◦ NF = (NV1 + NL1 + NV2 + NL2) / 2 
 
◦ NF = (6,0 + 1,5 + 7,0 + 1,0)/2 
 
◦ NF = 7,75 
 Problema: cálcular a nota final de um aluno 
de algoritmos; 
 
 Saída: 
Nota Final = 7,75 
 Descrição Narrativa 
 
 Descrição fluxograma 
 
 Português estruturado/Pseudocódigo 
 Consiste em analisar o enunciado do problema e 
escrever, utilizando uma linguagem natural 
◦ por exemplo, língua portuguesa. 
 
 Exemplo 1: trocar o pneu de um carro 
◦ Afrouxar ligeiramente as porcas 
◦ Suspender o carro 
◦ Retirar as porcas e o pneu 
◦ Colocar o pneu reserva 
◦ Apertar as porcas 
◦ Abaixar o carro 
◦ Dar o aperto final nas porcas 
 
 
 
 
 Exemplo 2: Cálculo da media de um aluno: 
 
◦ Obter as notas da primeira e da segunda prova 
 
◦ Calcular a média aritmética entre as duas 
 
◦ Se a média for maior ou igual a 7, o aluno foi 
aprovado, senão ele foi reprovado 
 
 
 
 
 Vantagens: 
◦ Português é bastante conhecido; 
 
 Desvantagem: 
◦ Imprecisão: 
 Escreve-se muito para dizer muito pouco 
 
 
 
 
 Utilização de símbolos gráficos universais 
para representar os passos de um algoritmo: 
Cálculo Decisão Entrada 
Saída 
Inicio/fim Saída 
ou 
Entrada 
ou 
 Exemplo: calcular o triplo de um número 
Inicio/fim Leia 
Num 
TRIPLO = NUM 
* 3 
TRIPLO Fim 
 Exemplo: calcular a média de um aluno de 
algoritmos e dizer se ele foi aprovado ou não 
Inicio/fim 
Leia: NA1, NA2, 
NA3, NL1, NL2, NL3 
MÉDIA = (NA1, NA2, NA3, NL1, NL2, NL3)/3 
“Aprovado” 
Fim 
Média >=7 
“Reprovado” 
sim 
não 
 Vantagens: 
 
◦ padrão mundial; 
 
◦ figuras dizem mais do que palavras. 
 
 Desvantagens: 
 
◦ pouca possibilidade de dar atenção aos dados para 
descrevê-los ou representa-los; 
 
◦ Complica a medida que o algoritmo cresce. 
 
 Pseudolinguagem de programação; 
 
 Os comandos são em português para representar 
algoritmos; 
 
 Vantagens: 
◦ português como base; 
◦ define-se melhor a estrutura dos dados; 
◦ mais fácil de passar o algoritmo para uma linguagem de 
programação qualquer; 
 
 Desvantagens: 
◦ não padronizado; 
 Estrutura: 
 
Algoritmo <nome_do_algoritmo> 
 <declaração_de_variáveis> 
 <subalgoritmos> 
Inicio 
 <corpo_do_algoritmo>Fim 
 
 Exemplo: mostrar nomes na tela 
 
Algoritmo mostra_nome 
Inicio 
 Mostra “o nome é Guilherme”; 
 Mostra “o nome é João”; 
 Mostra “o nome é Pedro”; 
 
 Mostra “Os nomes são Guilherme, João e Pedro”; 
Fim 
 
 
 Exemplo: calcular o triplo de um número 
 
Algoritmo calcula_triplo 
Inicio 
 Ler o numero; 
 
 Multiplicar o numero por 3 
 Mostrar o resultado; 
Fim 
 
 
 Exemplo: calcular a média de um aluno 
 
Algoritmo calcula_media 
Inicio 
 
 Ler a primeira nota; 
 Ler a segunda nota; 
 
 Somar as duas notas; 
 Dividir a soma das notas por 2; 
 Mostrar a média; 
 
Fim 
 
 
 Exemplo: calcular a média de um aluno 
 
Algoritmo calcula_mediav2 
Inicio 
 
 Ler a primeira nota; 
 Ler a segunda nota; 
 
 Mostrar a soma das notas dividido por 2; 
 
Fim 
 
 
 Exemplo: calcular a média de um aluno 
 
Algoritmo Média 
Var N1, N2, Média 
Início 
 
 Leia N1, N2 
 Média = (N1+N2)/2 
 Se Média >= 7 Então 
 Escreva “Aprovado” 
 Senão 
 Escreva “Reprovado” 
Fim 
 
 
1. Faça um fluxograma para a subtração de dois números lidos 
pelo teclado, e em seguida mostre o resultado na tela. 
 
2. Em uma escola, a média final é dada pela média aritmética de 
três notas, e a mesma tem o seguinte esquema de avaliação: 
 
 
 
 
 
 
 
Desenvolva um algoritmo que a partir da entrada das três notas 
mostre a situação do aluno. 
Média Situação do aluno 
0-4,9 Aluno em recuperação 
5-6,9 Aluno em prova final 
7-10 Aluno passa por média 
3. Faça um fluxograma para calcular a área de 
um triângulo. 
◦ Área do triangulo = (base * altura) / 2; 
 
4. Faça um fluxograma para calcular a área de 
um triângulo, conforme o exercício 3, mas 
que não permita a entrada de dados 
inválidos, ou seja, medidas menores ou 
iguais a zero. 
5. Dado o fluxograma 
ao lado, montar 
um pseudocódigo 
equivalente.

Outros materiais