Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou...
Transcript of Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou...
![Page 1: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/1.jpg)
Fundamentos de Programação 1Fundamentos de Programação 1
Aula 4B
Lógica e Algoritmos.
Profª. [email protected]
![Page 2: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/2.jpg)
LógicaLógica� A lógica de programação é a técnica de
encadear pensamentos para atingir determinadoobjetivo.
� Sequência Lógica
São passos executados até atingir um objetivoSão passos executados até atingir um objetivoou a solução de um problema.
� Instruções
Um conjunto de regras ou normas definidas paraa realização ou emprego de algo. Eminformática, é o que indica a um computadoruma ação elementar a executar.
![Page 3: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/3.jpg)
AlgoritmoAlgoritmo
� “Algoritmo é uma sequência de passos quevisa atingir um objetivo bem definido.”(Forbellone,1999)
� “Algoritmo é a descrição de uma sequênciade passos que deve ser seguida para arealização de uma tarefa.” (Ascencio,1999)
� No dia-a-dia executamos vários algoritmos.
![Page 4: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/4.jpg)
Exemplo AlgoritmoExemplo Algoritmo� Fazer um sanduíche:
- Pegar o pão- Cortar o pão ao meio- Pegar a maionese- Abrir a maionese- Passar a maionese no pão- Pegar o alface e tomate- Cortar o tomate- Lavar o alface- Colocar o tomate e o alface no pão- Pegar o hamburger- Fritar o hamburger- Colocar o hamburger no pão- Fechar o pão.
![Page 5: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/5.jpg)
ExercíciosExercícios
� Crie uma sequência lógica para tomarbanho.
� Faça um algoritmo para trocar umalâmpada. Descreva com detalhes.lâmpada. Descreva com detalhes.
![Page 6: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/6.jpg)
Método para a construção de algoritmos Método para a construção de algoritmos
� Compreender completamente o problema a ser
resolvido, destacando os pontos mais importantes eos objetos que o compõem;
� Definir os dados de entrada, ou seja, quais os dadosserão fornecidos e quais objetos fazem parte destecenário- problema;
� Definir o processamento, ou seja, quais cálculos serãoefetuados e quais as restrições para esses cálculos. Oprocessamento é responsável pela transformação dosdados de entrada em dados de saída.
� Definir os dados de saída, ou seja, quais os dados serãogerados depois do processamento.
� Construir o algoritmo utilizando alguns dos tipos de
algoritmos existentes.
� Testar o algortimo realizando simulaçõ[email protected]
![Page 7: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/7.jpg)
Regras para a construção do AlgoritmoRegras para a construção do Algoritmo
� Usar somente um verbo por frase;
� Imaginar que você está desenvolvendo umalgoritmo para pessoas que não trabalham cominformática;informática;
� Usar frases curtas e simples;
� Ser objetivo;
� Procurar usar palavras que não tenham sentidoambíguo.
![Page 8: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/8.jpg)
Fases do algoritmoFases do algoritmo� Primeiramente precisamos dividir o problema
apresentado em três fases fundamentais:
entrada processamento saída
� Entrada: são os dados de entrada do algoritmo;
� Processamento: são os procedimentos utilizados parachegar ao resultado final;
� Saída: são os dados já processados.
![Page 9: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/9.jpg)
Exemplo 1Exemplo 1
� Problema: Calcular a média final dos alunos de uma turma. Os alunos realizarão quatro provas: P1, P2, P3 e P4.
Onde:
Média Final = P1+ P2 + P3 + P4Média Final = P1+ P2 + P3 + P4
4
Para montar o algoritmo, faremos três perguntas:
a) Quais são os dados de entrada?
b) Qual será o processamento a ser utilizado?
c) Quais serão os dados de saída?
![Page 10: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/10.jpg)
ResRespostaspostas
a) Quais são os dados de entrada?
R.: Os dados de entrada são P1, P2, P3 e P4.
b) Qual será o processamento a ser utilizado?
R.: O procedimento será somar todos os dadosR.: O procedimento será somar todos os dadosde entrada e dividi-los por 4.
c) Quais serão os dados de saída?
R.: O dado de saída será a média final.
![Page 11: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/11.jpg)
Algoritmo Exemplo 1Algoritmo Exemplo 1
Receba a nota da prova1
Receba a nota da prova2
Receba a nota da prova3Receba a nota da prova3
Receba a nota da prova4
Some todas as notas e divida o resultado por 4
Mostre o resultado da divisão.
![Page 12: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/12.jpg)
Tipos de AlgoritmosTipos de Algoritmos
� Descrição narrativa: consiste em analisar o enunciadodo problema e escrever, utilizando uma linguagem natural(ex: língua portuguesa), os passos a serem seguidos paraa sua resolução;
� Fluxograma ou Diagrama de blocos: consiste em� Fluxograma ou Diagrama de blocos: consiste emanalisar o enunciado do problema e escrever, utilizandosímbolos gráficos predefinidos, os passos a seremseguidos para a sua resolução;
� Pseudocódigo ou portugol: consiste em analisar oenunciado do problema e escrever, por meio de regraspredefinidas, os passos a serem seguidos para a suaresolução.
![Page 13: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/13.jpg)
Exemplos de AlgoritmosExemplos de Algoritmos
Fazer um algoritmo para multiplicar dois números.� Descrição narrativa:
Receba o primeiro número.
Receba o segundo número.
Multiplique os dois números.
Mostre o resultado da multiplicação.Mostre o resultado da multiplicação.
� Pseudocódigo:
Inicio {
inteiro n1, n2, m;
leia (n1, n2);
m = n1 * n2;
escreva(“Resultado é: ”, m);
![Page 14: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/14.jpg)
Exemplos de AlgoritmosExemplos de Algoritmos� Fluxograma ou diagrama de blocos:
Início
n1,n2
M = n1 + n2
M
Fim
![Page 15: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/15.jpg)
Diagrama de Bloco ou Diagrama de Bloco ou FluxogramaFluxograma
� O diagrama de blocos é uma forma padronizada eeficaz para representar os passos lógicos de umdeterminado processamento.
� Podemos definir uma sequência de símbolos, comsignificado bem definido, portanto, sua principalfunção é a de facilitar a visualização dos passosde um algoritmo (processamento).
![Page 16: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/16.jpg)
Diagrama de Bloco ou FluxogramaDiagrama de Bloco ou Fluxograma
Simbologia
Símbolo Função
Símbolo utilizado para indicar o início e o fim do algoritmo.
Permite indicar o sentido do fluxo de dados. Serve exclusivamente para conectar os símbolos ou blocos existentes.
símbolos ou blocos existentes.
Símbolo utilizado para indicar cálculos e atribuições de valores.
Símbolo utilizado para representar a entrada de dados.
Símbolo utilizado para representar a saída de dados.
Símbolo utilizado pra indicar que deve ser tomada uma decisão, apontando a possibilidade de desvios.
![Page 17: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/17.jpg)
Variáveis e ConstantesVariáveis e Constantes
� Variáveis e constantes são os elementos básicosque um programa manipula.
� Um programa deve conter declarações queespecificam de que tipo são as variáveis que eleespecificam de que tipo são as variáveis que eleutilizará e as vezes um valor inicial.
� Tipos podem ser por exemplo: inteiros, reais,caracteres, etc.
� As expressões combinam variáveis e constantespara calcular novos valores.
![Page 18: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/18.jpg)
ConstantesConstantes
� Constante é um determinado valor fixo quenão se modifica ao longo do tempo,durante a execução de um programa.durante a execução de um programa.
![Page 19: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/19.jpg)
VariáveisVariáveis
� Uma variável é um espaço reservado namemória do computador para armazenarum tipo de dado determinado, cujoconteúdo pode se alterado ao longo dotempo durante a execução de umtempo durante a execução de umprograma.
� Variáveis devem receber nomes parapoderem ser referenciadas e modificadasquando necessário.
![Page 20: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/20.jpg)
VariáveisVariáveis
� Embora uma variável possa assumirdiferentes valores, ela só pode armazenarum valor a cada instante.
� As variáveis só podem armazenar valoresde um mesmo tipo.
![Page 21: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/21.jpg)
OperadoresOperadores
� Os operadores são meios pelo qualrealizamos cálculos, comparações eavaliações dos dados no nosso programa.Temos três tipos de operadores:
1. Operadores Aritméticos
2. Operadores Relacionais
3. Operadores Lógicos
![Page 22: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/22.jpg)
Operadores AritméticosOperadores Aritméticos
Operação Símbolo
Adição +
Subtração -Subtração -
Multiplicação *
Divisão /
![Page 23: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/23.jpg)
Operadores RelacionaisOperadores Relacionais
Descrição Símbolo
Igual a =
Diferente de <> ou !=
Maior que >
Menor que <
Maior ou igual a >=
Menor ou igual a <=
![Page 24: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/24.jpg)
Operadores LógicosOperadores Lógicos
Operação Operador
E E
OU OU
NÃO NOT
E / AND: uma expressão AND (E) é verdadeira se todas ascondições forem verdadeiras.
OR/OU: uma expressão OR (OU) é verdadeira se pelomenos uma condição for verdadeira.
NOT: um expressão NOT (NÃO) inverte o valor daexpressão ou condição, se verdadeira inverte para falsa evice-versa.
![Page 25: Fundamentos de Programação 1 - DAINFjeansimao/Fundamentos1/Algoritmos/... · Diagrama de Bloco ou Fluxograma O diagrama de blocos é uma forma padronizada e ... Maior que > Menor](https://reader031.fdocumentos.com/reader031/viewer/2022021911/5c0d281f09d3f217548d2aee/html5/thumbnails/25.jpg)
Referência BibliográficaReferência Bibliográfica
� FOBERLLONE, André Luiz Villar; EBERSPÄCHER, HenriFrederico. Lógica de programação a construção de algoritmose estrutura de dados. 3. ed. Makron, 2000.
� ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene� ASCENCIO, Ana Fernanda Gomes; CAMPOS, EdileneAparecida Veneruchi de. Fundamentos da programação decomputadores. 2. ed. Pearson Prentice Hall, 2007.
� MORAES, Paulo Sérgio de. Curso Básico de Lógica de Programação. Unicamp, 2000.