Algoritmos e Programação: Funcionamento do computador. Conceito e definição de algoritmos
Algoritmos de Programação
-
Upload
alan-alves-oliveira -
Category
Documents
-
view
448 -
download
1
Transcript of Algoritmos de Programação
![Page 1: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/1.jpg)
Algoritmos de Programação
Prof. Alan Alves Oliveira
![Page 2: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/2.jpg)
Algoritmos
“A arte de programar consiste na arte de
organizar e dominar a complexidade”
Dijkstra
![Page 3: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/3.jpg)
Algoritmos
• Definição:
“Um algoritmo é a descrição de um padrão de comportamento, expressado em termos de um repertório bem definido e finito de ações primitivas, das quais damos por certo que elas podem ser executadas.”
(GUIMARÃES; LAGES, 1994, p.4)
![Page 4: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/4.jpg)
Algoritmos
• Definição:
“Algoritmo é a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações.”
(FARRER et al., 1999 p.14)
“Um algoritmo pode ser definido como uma seqüência de passos que visam a atingir um objetivo bem definido.”
(FORBELLONE; EBERSPACHER, 2005, p.3)
![Page 5: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/5.jpg)
Algoritmos
• Questão para discussão:
– Você já teve contato com algum tipo de algoritmo?
![Page 6: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/6.jpg)
Algoritmos
• Apesar de estar intimamente ligado à programação de computadores, o termo algoritmo surgiu muito antes que isso;
• Rotinas simples do dia a dia podem ser descritas em algoritmos:
– Trocar de roupa;
– Escovar os dentes;
– Tomar banho;
– Etc.
![Page 7: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/7.jpg)
Algoritmos
• Várias áreas do conhecimento utilizam algoritmos:
– Administração: um plano de ação é um algoritmo;
– Matemática: diversos cálculos e teoremas são algoritmos;
– Manufatura: a ficha técnica (ou engenharia) de um produto é um algoritmo.
![Page 8: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/8.jpg)
Algoritmos
• Características (CUNHA; MELLO, 2009, p. 8):
– Finitude:
• Um algoritmo deve sempre terminar após um número finito de passos.
– Definição:
• Cada passo de um algoritmo deve ser precisamente definido. As ações devem ser definidas rigorosamente, sem ambiguidades.
![Page 9: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/9.jpg)
Algoritmos
• Características (CUNHA; MELLO, 2009, p. 8):
– Entradas:
• Um algoritmo deve ter zero (0) ou mais entradas, isto é, quantidades que lhe são fornecidas antes do algoritmo iniciar.
– Saídas:
• Um algoritmo deve ter uma ou mais saídas, isto é, quantidades que têm uma relação específica com as entradas.
![Page 10: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/10.jpg)
Algoritmos
• Características (CUNHA; MELLO, 2009, p. 8):
– Efetividade:
• ... todas as operações devem ser suficientemente básicas de modo que possam ser ... executadas com precisão, em um tempo finito, por uma pessoa usando papel e lápis.
![Page 11: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/11.jpg)
Algoritmos
• Abstração:
– Um algoritmo é um modelo que representa algo do mundo real;
– Modelos servem para que possamos abstrair uma realidade e nos focar apenas nos detalhes que nos interessam.
![Page 12: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/12.jpg)
Algoritmos
• Atividade:
– Em uma folha do seu caderno, escreva, em forma de passos sequenciais, como é feita a troca de um pneu furado em um carro.
![Page 13: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/13.jpg)
Algoritmos
• O algoritmo e o computador:
– O algoritmo é bastante utilizado no meio computacional, seja para construir hardware (processadores), seja para desenvolver programas;
– “... computadores são seguidores de algoritmos.” (CUNHA; MELLO, 2009, p. 9);
![Page 14: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/14.jpg)
Algoritmos
• O algoritmo e o computador:
– Para se escrever um algoritmo computacional deve-se (CUNHA; MELLO, 2009, p. 9):
• Definir o problema;
• Planejar um algoritmo de solução;
• Codificar a solução;
• Testar o programa;
• Completar a documentação.
![Page 15: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/15.jpg)
Algoritmos
• O algoritmo e o computador:
– Um algoritmo escrito com a finalidade de construir um programa pode ser implementado em qualquer linguagem de programação sequencial (C, C++, C#, Delphi, Java, Pascal, Visual Basic, etc.)
![Page 16: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/16.jpg)
Algoritmos
• O algoritmo como software:
– Texto finito:
• Como já foi ressaltado antes, um algoritmo, assim como um software, possui um conjunto finito de instruções (ações) a serem executadas.
– Instruções elementares:
• A exemplo do software o algoritmo possui comandos e/ou informações que devem ser fornecidos ao executor. No caso do software o executor é o computador.
![Page 17: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/17.jpg)
Algoritmos
• O algoritmo como software:
– Receita metódica:
• Texto ou instruções precisas. No caso do software, estas instruções são escritas em uma linguagem de programação.
– Terminação:
• No caso do uso de estruturas de repetição (loops ou laços), deve haver a terminação, ou seja, a execução também é finita.
![Page 18: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/18.jpg)
Algoritmos
• Questão para discussão:
– Um programa de computador, é um algoritmo?
![Page 19: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/19.jpg)
Algoritmos
• Tipos de algoritmos:
– Algoritmo gráfico:
• Representado através de diagramas de blocos ou diagramas de quadros;
• Um diagrama de bloco bastante conhecido é o fluxograma;
![Page 20: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/20.jpg)
Algoritmos
• Tipos de algoritmos:
– Algoritmo gráfico:
• Exemplo: um algoritmo para verificar se o aluno foi aprovado:
Início
Nota 1,Nota 2,Nota 3
SomaNota 1 + Nota
2 + Nota 3
Soma >= 60
Aprovado Reprovado
Verdadeiro Falso
Fim
![Page 21: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/21.jpg)
Algoritmos
• Tipos de algoritmos:
– Algoritmo descritivo:
• Expresso em forma de texto;
• O texto deve conter todos os passos a serem executados, incluindo as entradas, decisões e saídas;
• Pode ser representado em linguagem natural ou em alguma linguagem técnica estruturada (pseudolinguagem ou pseugocódigo ou portugol);
![Page 22: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/22.jpg)
Algoritmos
• Tipos de algoritmos:
– Algoritmo descritivo:
• Exemplo: utilizando o mesmo algoritmo para verificar se o aluno foi aprovado:
1. Obter as notas 1, 2 e 3.
2. Efetuar o cálculo da soma.
3. Se a soma for maior ou igual a 60 o aluno
está aprovado.
4. Se a soma for menor que 60 o aluno está
reprovado.
![Page 23: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/23.jpg)
Algoritmos
• Tipos de algoritmos:
– Algoritmo descritivo:
• Perceba que o exemplo anterior foi escrito em linguagem natural, sem preocupação com formalização ou estruturação.
![Page 24: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/24.jpg)
Algoritmos
• Tipos de algoritmos:
– Algoritmo codificado:
• Expresso em uma linguagem de programação específica;
• Representa o próprio programa;
![Page 25: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/25.jpg)
Algoritmos
• Tipos de algoritmos:
– Algoritmo codificado:
• Exemplo: ainda para verificar se o aluno foi aprovado:
![Page 26: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/26.jpg)
Algoritmos
• Tipos de algoritmos:
– Algoritmo codificado:
• O algoritmo apresentado na tela anterior foi escrito na linguagem de programação Java;
• A entrada dos dados é feita através de caixas de texto apresentadas ao usuário;
• A saída (mensagem informando se o aluno está aprovado ou reprovado) é feita no console do sistema.
![Page 27: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/27.jpg)
Algoritmos
• Formas de representação:
– Um algoritmo pode ser representado de diversas formas;
– A escolha da melhor forma dependerá da finalidade do algoritmo;
– Manuais, receitas e guias, por exemplo, são geralmente escritos em linguagem natural;
![Page 28: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/28.jpg)
Algoritmos
• Formas de representação:
– Esquemas e modelos são geralmente representados através de uma forma gráfica (fluxograma);
– Para a programação, a melhor forma de representar algoritmos é da forma descritiva, utilizando-se uma linguagem estruturada, conhecida por pseudolinguagem, pseudocódigo ou portugol;
![Page 29: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/29.jpg)
Algoritmos
• Formas de representação:
– O pseudocódigo está bastante próximo das linguagens de programação sequenciais e, ao mesmo tempo, da linguagem natural;
– O pseudocódigo possui regras para sua escrita, isso o diferencia da linguagem natural;
![Page 30: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/30.jpg)
Algoritmos
• Formas de representação:
– De agora em diante, vamos adotar o pseudocódigo como forma de representação. Para mais detalhes sobre as outras formas, consulte Cunha; Melo (2009, pp. 11-15).
![Page 31: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/31.jpg)
Algoritmos
• Estrutura de um algoritmo em pseudocódigo:
– A palavra reservada Programa inicia o algoritmo e, logo após ela, deve colocado o nome do programa que está sendo feito;
Programa <nome>
<declarações de variáveis>
<subalgoritmos>
Início
<comandos>
Fim
![Page 32: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/32.jpg)
Algoritmos
• Estrutura de um algoritmo em pseudocódigo:
– O nome do programa é dado pelo
programador e deve seguir algumas regras:
• Deve começar com uma letra ou sublinhado;
• Não deve conter caracteres especiais como *, $, #, @, etc.;
• Não deve conter espaços em branco;
• Pode conter números, porém, não pode começar com um.
![Page 33: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/33.jpg)
Algoritmos
• Estrutura de um algoritmo em pseudocódigo:
– Entre as palavras reservadas Programa e Início
devem ser feitas as declarações de variáveis e definidos os subalgoritmos, quando for o caso;
– As instruções ou comandos são colocados entre as palavras reservadas Início e Fim.
Programa <nome>
<declarações de variáveis>
<subalgoritmos>
Início
<comandos>
Fim
![Page 34: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/34.jpg)
Algoritmos
• Estrutura de um algoritmo em pseudocódigo:
– Observação importante:
• Não existe um padrão ou estrutura únicos para a criação de algoritmos. Podem ser encontradas diferenças de padrão de um autor para o outro;
• Utilizaremos um conjunto de regras, porém, o que realmente importa é que o aluno entenda a lógica da criação do algoritmo. Assim, ele poderá interpretar qualquer algoritmo, mesmo com pequenas variações de padrão.
![Page 35: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/35.jpg)
Tipos de dados
• Um algoritmo pode manipular diversos valores para chegar ao resultado desejado;
• Definir tipos de dados é uma forma de tornar o algoritmo mais claro e mais efetivo;
• Em ciência da computação isso se chama tipagem de dados;
![Page 36: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/36.jpg)
Tipos de dados
• Tipos de dados são, portanto, um conjunto de valores sobre os quais pode ser aplicado um conjunto de operações;
• A princípio, vamos trabalhar com três
conjuntos de tipos de dados:
– Numéricos;
– Alfanuméricos (literais) e
– Lógicos.
![Page 37: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/37.jpg)
Tipos de dados
• Tipos de dados numéricos:
– Inteiro: {..., -2, -1, 0, 1, 2, ...};
– Real: abrange o conjunto de números inteiros, fracionários e irracionais.
• Tipos de dados literais:
– Literal: consiste em uma cadeia de caracteres alfanuméricos, incluindo caracteres especiais. Os valores literais devem estar sempre entre aspas duplas;
![Page 38: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/38.jpg)
Tipos de dados
• Tipos de dados lógicos:
– Lógico: esse tipo de dados, a exemplo do que acontece com o computador em nível físico, só pode assumir um entre dois valores: verdadeiro
ou falso (o computador, em nível físico, só entende zeros e uns)
![Page 39: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/39.jpg)
Variáveis e Constantes
• A equação do segundo grau é representada, matematicamente, pela seguinte expressão: (ax2 + bx + c = 0);
• As letras a, b e c poderão assumir qualquer valor, dependendo do cálculo a ser feito;
• Portanto, estas letras podem ser chamadas de variáveis;
![Page 40: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/40.jpg)
Variáveis e Constantes
• O conceito de variável na programação é o mesmo;
• Podemos dizer que variáveis são símbolos que podem assumir diversos valores durante o seu tempo de vida (veremos tempo de vida de uma variável mais adiante);
![Page 41: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/41.jpg)
Variáveis e Constantes
• Toda e qualquer variável a ser utilizada no algoritmo precisa ser declarada no local especificado anteriormente, entre as palavras reservadas Programa e Início;
• Na declaração de uma variável é obrigatória a definição do seu tipo, de acordo com os tipos de dados já vistos;
![Page 42: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/42.jpg)
Variáveis e Constantes
• Vamos utilizar duas formas de declarar variáveis e o aluno terá liberdade para escolher qualquer uma delas. Porém, quando utilizar uma das formas, torne-a padrão, ou seja, não utilize, em um mesmo algoritmo, as duas formas;
• Opção 1 (Java, C++):
– <Tipo> <Lista de variáveis>
Inteiro a, b, c; // Declara as variáveis: a, b e c
![Page 43: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/43.jpg)
Variáveis e Constantes
• Opção 2 (Pascal):
– <Lista de variáveis> : <Tipo>
a, b, c : Inteiro; // Declara as variáveis: a, b e c
![Page 44: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/44.jpg)
Variáveis e Constantes
• Vejamos um exemplo no contexto do
algoritmo:
Programa Exemplo
// Declaração de variáveis nas linhas abaixo
Inteiro Num1, Num2;
Literal Nome;
Início
<comandos>
Fim
![Page 45: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/45.jpg)
Variáveis e Constantes
• As constantes, assim como as variáveis, são símbolos que podem representar algum valor, porém, esse valor é dado a ela na sua declaração e não pode mais ser alterado;
• Para declarar uma constante acrescentamos, antes da declaração, a palavra const. Lembrando que o valor da constante deve ser dado na sua declaração;
![Page 46: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/46.jpg)
Variáveis e Constantes
• Exemplo:
Programa ExemploConstante
Inteiro Num1, Num2;
Const Real Pi <- 3.14; // Declaração da constante
Início
<comandos>
Fim
![Page 47: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/47.jpg)
Instruções primitivas
• Para fazer nossos primeiros algoritmos precisamos aprender três comandos básicos:
• O comando Escreva:
– É um comando de saída que permite que alguma mensagem (geralmente o resultado do algoritmo) seja dada ao usuário;
![Page 48: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/48.jpg)
Instruções primitivas
• O comando Escreva:
– Exemplos:
// Escreve uma mensagem na tela
Escreva("Meu primeiro programa");
// Escreve o valor de uma variável na tela
Escreva(Num1);
// Escreve uma mensagem e logo após o valor de uma
// variável
Escreva("O resultado é:", Soma);
![Page 49: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/49.jpg)
Instruções primitivas
• O comando Escreva:
– Exemplos:
// Um programa completo com o comando Escreva
Programa PrimeiroPrograma
Início
Escreva("Olá mundo!");
Fim
![Page 50: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/50.jpg)
Instruções primitivas
• O comando <- (atribuição):
– Em muitos momentos no nosso algoritmo precisaremos atribuir valores a variáveis. Isso é feito através do comando de atribuição;
– Esse comando é representado por uma seta que aponta para a esquerda (para representar esta seta no computador, utilize o sinal de menor
seguido pelo hífen);
![Page 51: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/51.jpg)
Instruções primitivas
• O comando <- (atribuição):
– Exemplos:
// Atribui um valor a uma variável
Num1 <- 100;
// Declara uma constante com atribuição de valor
Const Real Pi <- 3.14;
// Atribui uma expressão a uma variável
Soma <- Num1 + Num2;
![Page 52: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/52.jpg)
Instruções primitivas
• O comando <- (atribuição):
– Exemplos:
// Um programa completo com o comando <-
Programa PrimeiroPrograma
Literal Msg;
Início
Msg <- "Olá mundo!“;
Escreva(Msg);
Fim
![Page 53: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/53.jpg)
Instruções primitivas
• O comando Leia:
– O comando Leia é um comando de entrada, ou seja, a forma como iremos solicitar dados do usuário;
![Page 54: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/54.jpg)
Instruções primitivas
• O comando Leia:
– Exemplos:
// Lê uma informação e atribui à variável
Leia(Num1);
// Lê três informações e atribui às variáveis.
// A primeira informação digitada vai para a
// primeira variável e assim por diante
Leia(Num1, Num2, Num3);
![Page 55: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/55.jpg)
Instruções primitivas
• O comando Leia:
– Exemplos:
// Um programa completo com o comando Leia
Programa PrimeiroPrograma
Inteiro Num1, Num2, Num3, Soma;
Início
Leia(Num1, Num2, Num3);
Soma <- Num1 + Num2 + Num3;
Escreva("A soma é: ", Soma);
Fim
![Page 56: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/56.jpg)
Instruções primitivas
• Perceba que no final de cada comando, inclusive da declaração de variáveis, utilizamos um ponto-e-vírgula;
• O ponto-e-vírgula define que o comando terminou.
![Page 57: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/57.jpg)
Comentários
• Para facilitar o entendimento do nosso algoritmo e da lógica que foi utilizada para solucionar um problema, podemos comentar as ações;
• Os comentários, como você já deve ter percebido nos exemplos, é feito após duas barras (//);
![Page 58: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/58.jpg)
Comentários
• Todas as linhas que começam com (//) são ignoradas como ações, ou seja, não são executadas;
• O programa abaixo não faz nada:
Programa Inútil
Início
// Escreva("Olá mundo");
Fim
![Page 59: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/59.jpg)
Expressões
• Expressões aritméticas:
– Por hora, para fazermos nossos primeiros exercícios com algoritmos, vamos aprender as expressões aritméticas;
– Uma expressão aritmética é aquela que envolve somente números, sejam eles do tipo real ou inteiro;
![Page 60: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/60.jpg)
Expressões
• Expressões aritméticas:
– Para realizar uma expressão aritmética, precisaremos conhecer os operadores:
Operador Descrição
+ Soma e identificação de números positivos
- Subtração e identificação de números negativos
* Multiplicação
/ Divisão
DIV Parte inteira do quociente de uma divisão
MOD (Módulo) Resto da divisão
![Page 61: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/61.jpg)
Expressões
• Expressões aritméticas:
– A expressão pode manipular valores, de forma direta, ou variáveis, por exemplo:
// Uma expressão que manipula valores
(10 + 30) / 2
// Uma expressão que manipula valores contidos em
// variáveis
(a + b) / c
– Observação: A precedência matemática deve ser obedecida;
![Page 62: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/62.jpg)
Expressões
• Expressões aritméticas:
– Conforme já foi dito, uma expressão pode conter operadores inteiros ou reais;
– Uma expressão que contém operadores inteiros retornará, sempre, o resultado inteiro. Veja o exemplo:
// Uma divisão com dois operadores inteiros
// O resultado dessa divisão é 0, porque os dois
// operadores são inteiros
2 / 4
![Page 63: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/63.jpg)
Expressões
• Expressões aritméticas:
– Para garantir que o resultado retornará um número real, se for o caso, pelo menos um dos operadores deve ser, explicitamente, real. Veja o exemplo:
// Uma divisão com um operador real e um inteiro
// O resultado dessa divisão é 0.5
2.0 / 4
![Page 64: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/64.jpg)
Expressões
• Mais adiante, veremos expressões literais e expressões lógicas.
![Page 65: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/65.jpg)
Boas práticas
• Recuo:
– Um algoritmo representado em pseudolinguagem, assim como o programa que será desenvolvido com ele, deve ser visualmente organizado;
– Essa regra não afeta o resultado do algoritmo, porém, é extremamente importante para quem vai analisá-lo;
![Page 66: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/66.jpg)
Boas práticas
• Recuo:
– Até agora estamos vendo algoritmos simples, de poucas linhas, mas, imagine um algoritmo ou programa de 100 linhas sem uma organização visual;
![Page 67: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/67.jpg)
Boas práticas
• Recuo:
– Vamos ver dois exemplos:
Programa Resultado
Inteiro nota1, nota2, nota3, soma;
Literal resultado;
Início
Leia(nota1, nota2, nota3);
soma <- nota1 + nota2 + nota3;
Se (soma >= 60) Então
resultado <- "Aprovado“;
Senão
Resultado <- "Reprovado“;
Fim_se
Escreva(resultado);
Fim
Programa Resultado
Inteiro nota1, nota2, nota3, soma;
Literal resultado;
Início
Leia(nota1, nota2, nota3);
soma <- nota1 + nota2 + nota3;
Se (soma >= 60) Então
resultado <- "Aprovado“;
Senão
resultado <- "Reprovado“;
Fim_se
Escreva(resultado);
Fim
![Page 68: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/68.jpg)
Boas práticas
• Recuo:
– Os dois algoritmos fazem exatamente a mesma coisa, porém, o primeiro deles (da esquerda) não utiliza recuo;
– O algoritmo da direita está utilizando recuos e os blocos ficam bastante perceptíveis, facilitando a leitura.
![Page 69: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/69.jpg)
Boas práticas
• Nomes de variáveis:
– Procure dar nomes significativos para as suas variáveis;
– Isso facilita o entendimento de programa mais complexos;
– Ao mesmo tempo, por questões de praticidade, evite nomes muito extensos;
– Os nomes de variáveis devem seguir as mesmas regras aplicadas aos nomes dos programas.
![Page 70: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/70.jpg)
Boas práticas
• Inicialização de variáveis:
– Ao ser declarada, uma variável não contém um valor conhecido;
– Não é garantido (e isso depende da linguagem de programação) que uma variável declarada com Inteiro, por exemplo, antes de ser iniciada, contenha valor zero;
– Para evitar surpresas, inicie a variável no início do programa;
![Page 71: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/71.jpg)
Boas práticas
• Inicialização de variáveis:
– Vamos trabalhar com duas formas de
inicialização de variáveis:
• Inicialização na declaração:
Programa Exemplo
Real base <- 0, altura <- 0;
Início
<comandos>
Fim
![Page 72: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/72.jpg)
Boas práticas
• Inicialização de variáveis:
– Vamos trabalhar com duas formas de
inicialização de variáveis:
• Inicialização no corpo do programa:
Programa Exemplo
Real base, altura;
Início
base <- 0;
altura <- 0;
...
Fim
![Page 73: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/73.jpg)
Atividades
1. Desenvolva um algoritmo que leia o nome de uma pessoa e o escreva na tela.
2. Um professor de matemática está precisando urgentemente de três programas:
a) O primeiro é para calcular a área de retângulos, que é obtida pela expressão (� � ��), onde � é a base e � é a altura do retângulo.
b) O segundo é para calcular a área de círculos, que é data pela expressão (� � ��2), onde
� é uma constante que vale 3.14159 e � é o raio.
c) O terceiro programa deve calcular e apresentar o resultado das quatro operações matemáticas básicas, efetuadas com dois números. O resultado desejado pelo professor deverá ser apresentando conforme abaixo:O primeiro número é: 6
O segundo número é: 4
Os resultados são:
Soma: 10
Subtração: 2
Multiplicação: 24
Divisão: 1.5
Observação: Por hora, não se preocupe com a possibilidade de divisão por zero.
![Page 74: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/74.jpg)
Atividades
3. Dois candidatos concorreram a uma eleição sindical. Além dos votos dados a cada um dos candidatos, foram computados também votos nulos e brancos. Faça um programa que leia o nome de cada candidato e a quantidade de votos que ele obteve. O programa deverá ler também a quantidade de votos nulos e brancos. O resultado a ser apresentado pelo programa deverá ser conforme abaixo:Total de votos: 150
Total de votos válidos: 100
Votos brancos: 30
Votos nulos: 20
Resultado absoluto por candidato:
João da Silva: 45
Joaquim Manoel: 55
Resultado relativo em relação aos votos válidos:
João da Silva: 45 %
Joaquim Manoel: 55 %
Resultado relativo em relação ao total de votos:
João da Silva: 30 %
Joaquim Manoel: 37 %
![Page 75: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/75.jpg)
Estruturas de decisão
• Agora, vamos aprender como montar estruturas de decisão em um algoritmo;
• Para tanto, precisaremos montar expressões condicionais (condições);
• Uma expressão condicional é uma expressão que resulta um valor lógico, portanto, verdadeiro ou falso;
![Page 76: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/76.jpg)
Estruturas de decisão
• Para fazer expressões condicionais precisamos conhecer os operadores relacionais com os quais podemos trabalhar:
Operador Descrição
= Igual a
> Maior que
< Menor que
>= Maior ou igual a
<= Menor ou igual a
<> Diferente de
![Page 77: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/77.jpg)
Estruturas de decisão
• Exemplos de expressões condicionais:Expressão Significado
a = b Testa se o valor da variável a é igual ao valor da variável b
a > b Testa se o valor da variável a é maior que o valor da variável b
a <= b Testa se o valor da variável a é menor ou igual ao valor da variável b
a <> b Testa se o valor da variável a é diferente do valor da variável b
![Page 78: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/78.jpg)
Estruturas de decisão
• Além dos operadores relacionais, precisamos conhecer os operadores lógicos que podem estar presentes entre duas expressões condicionais:
Operador Descrição
e Avalia duas expressões lógicas e retorna verdadeiro se e somente se todas elas forem verdadeiras
ou Avalia duas expressões lógicas e retorna verdadeiro se pelo menos uma delas for verdadeira
não Nega (inverte) uma expressão lógica
![Page 79: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/79.jpg)
Estruturas de decisão
• Exemplos de expressões condicionais com operadores lógicos:
Expressão Significado
(a = b) e (a = c) Testa se o valor da variável a é igual ao valor da variável b e também se o valor da variável a é igual ao valor da variável c. O retorno será verdadeiro somente se as duas expressões simples retornarem verdadeiro.
(a = b) e (a = c) Testa se o valor da variável a é igual ao valor da variável b e também se o valor da variável a é igual ao valor da variável c. O retorno será verdadeiro se pelo menos uma delas for verdadeira.
não (a = b) Inverte o resultado da expressão (a = b). Portanto, se o valor da variável a for igual ao valor da variável b, o resultado da expressão será falso, caso contrário, será verdadeiro.
![Page 80: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/80.jpg)
Estrutura condicional simples
• A estrutura condicional simples para algoritmos, é a seguinte:
...
Se (Expressão_lógica) Então
<comandos para expressão lógica verdadeira>
FimSe
...
![Page 81: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/81.jpg)
Estrutura condicional simples
• Um exemplo:
Programa Exemplo
Inteiro a;
Início
Escreva("Digite um número:");
Leia(a);
Se (a >= 0) Então
Escreva("O número não é negativo!");
FimSe
Se (a < 0) Então
Escreva("O número é negativo!");
FimSe
Fim
![Page 82: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/82.jpg)
Estrutura condicional composta
• O exemplo do slide anterior utilizou duas estruturas condicionais simples, porém, podemos abrir mão de uma estrutura condicional composta, conforme abaixo:
...
Se (Expressão_lógica) Então
<comandos para expressão lógica verdadeira>
Senão
<comandos para expressão lógica falsa>
FimSe
...
![Page 83: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/83.jpg)
Estrutura condicional composta
• Um exemplo:
Programa Exemplo
Inteiro a <- 0;
Início
Escreva("Digite um número:");
Leia(a);
Se ((a Mod 2) = 0) Então
Escreva("O número é par!");
Senão
Escreva("O número é impar!");
FimSe
Fim
![Page 84: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/84.jpg)
Atividades
1. Faça um programa que receba as medidas dos lados de um quadrilátero e retorne: (1) a área do quadrilátero e (2) uma mensagem informando se esse quadrilátero é um quadrado.
2. Faça um programa que, a partir da idade de um nadador, informada pelo usuário, faça a sua classificação como abaixo:
Infantil A: 5 – 7 anos Juvenil B: 14 – 17 anos
Infantil B: 8 – 10 anos Adulto: 18 anos ou mais
Juvenil A: 11 – 13 anos
![Page 85: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/85.jpg)
Atividades
3. Uma empresa precisa de um programa para calcular a premiação de seus vendedores. O usuário irá digitar a média de vendas (R$) e o programa deverá calcular o valor da premiação com base em um percentual, definido na tabela abaixo. O valor da premiação tem um teto de R$ 2.000,00 e deve ser apresentado pelo programa no final da execução.
Média de vendas (R$) Premiação (%)
De 0 a 5.000,00 0
De 5.000,01 a 10.000,00 1
De 10.000,01 a 20.000,00 2
De 20.000,01 a 30.000,00 3
Acima de 30.000,00 4
![Page 86: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/86.jpg)
Estrutura condicional composta
• Encadeamento de estruturas condicionais:
– É perfeitamente possível utilizar uma estrutura condicional dentro de outra, aninhando-as para obter o resultado desejado;
– As boas práticas de programação dizem que o aninhamento de grau maior que três torna o programa complexo e deve ser evitado;
![Page 87: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/87.jpg)
Estrutura condicional composta
• Encadeamento de estruturas condicionais:– Um exemplo:
Programa Exemplo
Inteiro a <- 0, b <- 0;
Início
Escreva("Digite dois números:");
Leia(a, b);
Se (a > b) Então
Escreva("O primeiro número é maior que o segundo");
Senão
Se (a < b) Então
Escreva("O primeiro número é menor que o segundo");
Senão
Escreva("Os números são iguais");
FimSe
FimSe
Fim
![Page 88: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/88.jpg)
Estrutura condicional composta
• O SenãoSe:
– A estrutura condicional Se...Então...Senão...FimSe exige um fechamento para cada Se. Além disso, o Senão
não permite a utilização de uma expressão lógica depois dele;
– Porém, há casos em que pode ser interessante fazer um novo teste lógico logo após um Senão, sem encadear as estruturas explicitamente;
![Page 89: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/89.jpg)
Estrutura condicional composta
• O SenãoSe:
– O SenãoSe é um comando que permite que seja colocada uma nova expressão lógica (um novo teste) logo após o senão;
– O FimSe continua sendo utilizado, porém, só para fechar o Se. Ou seja, não se utiliza FimSe
para fechar o SenãoSe;
![Page 90: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/90.jpg)
Estrutura condicional composta
• O SenãoSe:– Um exemplo:
Programa Exemplo
Inteiro a <- 0, b <- 0;
Início
Escreva("Digite dois números:");
Leia(a, b);
Se (a > b) Então
Escreva("O primeiro número é maior que o segundo");
SenãoSe (a < b) Então
Escreva("O primeiro número é menor que o segundo");
Senão
Escreva("Os números são iguais");
FimSe
Fim
![Page 91: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/91.jpg)
Estrutura condicional composta
• O SenãoSe:– Outro exemplo:
Programa Exemplo
Inteiro preco <- 0, desconto <- 0;
Início
Escreva("Digite o preço do produto:");
Leia(preco);
Se (preco >= 100) Então
desconto <- preco * 0.05;
SenãoSe ((preco > 100) E (preco <= 500)) Então
desconto <- preco * 0.1;
SenãoSe (preco > 500) Então
desconto <- preco * 0.2;
FimSe
Escreva("Preço líquido: ", (preco – desconto));
Fim
![Page 92: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/92.jpg)
Estrutura condicional de múltipla escolha
• Em situações em que o número de escolhas é grande, pode ser interessante utilizar uma estrutura condicional de múltipla escolha;
• A estrutura é:
...
Escolha <variáve>
Caso <valor 1>: <lista de comandos 1>
Caso <valor 1>: <lista de comandos 2>
Caso <valor 1>: <lista de comandos 3>
...
Caso Senão: <lista de comandos n>
FimEscolha
...
![Page 93: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/93.jpg)
Estrutura condicional de múltipla escolha
• Veja um exemplo onde só se utiliza uma linha de comando para cada caso de escolha:
...
Escolha mes
Caso 1: descricaoMes <- "Janeiro";
Caso 2: descricaoMes <- "Fevereiro";
Caso 3: descricaoMes <- "Março";
...
Caso 12: descricaoMes <- "Dezembro";
FimEscolha
...
![Page 94: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/94.jpg)
Estrutura condicional de múltipla escolha
• Para mais de uma linha de comando para cada caso de escolha, faça conforme o exemplo abaixo:
...
Escolha mes
Caso 1:
descricaoMes <- "Janeiro";
mensagem <- "Primeiro mês do ano";
Caso 2:
descricaoMes <- "Fevereiro";
mensagem <- "Segundo mês do ano";
...
Caso 12:
descricaoMes <- "Dezembro";
mensagem <- "Terceiro mês do ano";
FimEscolha
...
![Page 95: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/95.jpg)
Estrutura condicional de múltipla escolha
• Vamos a um exemplo completo onde o programa deve retornar o preço de um produto de acordo com o código digitado pelo usuário:
Código Preço (R$)
1 5,00
2 10,00
3 12,50
4 8,00
![Page 96: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/96.jpg)
Estrutura condicional de múltipla escolha
// Usando SenãoSe
Programa CalculaPreco
Inteiro codigo <- 0;
Real preco <- 0;
Início
Escreva("Digite o código do produto:");
Leia(codigo);
Se (codigo = 1) Então
preco <- 5.00;
SenãoSe (codigo = 2) Então
preco <- 10.00;
SenãoSe (codigo = 3) Então
preco <- 12.50;
SenãoSe (codigo = 4) Então
preco <- 8.00;
FimSe
Escreva("O preço é: ", preco);
Fim
![Page 97: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/97.jpg)
Estrutura condicional de múltipla escolha
// Usando Escolha
Programa CalculaPreco
Inteiro codigo <- 0;
Real preco <- 0;
Início
Escreva("Digite o código do produto:");
Leia(codigo) ;
Escolha codigo
Caso 1: preco <- 5.00;
Caso 2: preco <- 10.00;
Caso 3: preco <- 12.50;
Caso 4: preco <- 8.00;
FimEscolha
Escreva("O preço é: ", preco);
Fim
![Page 98: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/98.jpg)
Atividades
1. Faça um algoritmo que receba como parâmetro o número de um mês do ano e retorne o nome desse mês ao usuário. Se o usuário digitar um valor inválido, ele deve ser informado. Utilize a estrutura Se...Então...SenãoSe...Senão...FimSe.
2. Refaça o algoritmo da atividade anterior agora utilizando a estrutura Escolha...Caso...CasoSenão...FimEscolha.
![Page 99: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/99.jpg)
Estruturas de repetição
• Para começar, uma questão para discussão:
– Com o que vimos até agora, se você fosse solicitado a desenvolver um programa para ler o nome de um usuário e escrevê-lo na tela 100 vezes, o que faria?
![Page 100: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/100.jpg)
Estruturas de repetição
• É comum que os programas ou partes deles precisem ser executados por várias vezes;
• As estruturas de repetição permitem que os programas façam esta execução utilizando um mesmo trecho. Quando isso acontece, dizemos que o programa tem um laço ou loop;
![Page 101: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/101.jpg)
Estruturas de repetição
• Utilizando nossa questão inicial desse capítulo, você concorda que ler o nome do usuário é uma ação a ser executada uma única vez?
• Porém, escrever o nome desse usuário é uma ação única, bem definida, que deve ser repetida por 100 vezes;
• Então, nesse caso, só uma parte do programa deve ter repetição.
![Page 102: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/102.jpg)
Estruturas de repetição
• Tipos de estruturas de repetição:
– Repetição controlada por variável;
– Repetição condicional com teste no início;
– Repetição condicional com teste no fim.
![Page 103: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/103.jpg)
Repetição controlada por variável
• Esse tipo de repetição é ideal para ser utilizado quando os comandos precisam ser repetidos por um número de vezes dado por um limite inicial e um limite final;
• Ou seja, tendo-se os limites inicial e final, o trecho de repetição sempre será repetido entre esses limites;
![Page 104: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/104.jpg)
Repetição controlada por variável
• Estrutura:
...
Para <variável> De <início> Até <fim> Passo <incremento> Faça
<comandos>
FimPara
...
– No campo <variável> deve ser indicada uma variável que fará o controle do laço. Para evitar problemas, essa variável não deve receber atribuição de valor dentro do laço;
![Page 105: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/105.jpg)
Repetição controlada por variável
• Estrutura:
– No campo <início> deve ser indicado o limite inicial do laço, ou seja, a partir de qual valor inicial a variável começa a ser incrementada;
– No campo <fim> define-se o limite final até quando a repetição será executada. O intervalo é aberto, ou seja, o intervalo de repetição inclui os valores de início e fim;
![Page 106: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/106.jpg)
Repetição controlada por variável
• Estrutura:
– No campo <incremento>, devemos indicar qual será o incremento da variável a cada iteração, ou seja, de quanto a variável será acrescida ou decrescida quando passar pelo laço.
– Observação importante: o incremento é feito pela própria estrutura de repetição. Não é necessário atribuir valores à variável, nessa estrutura, durante a execução do laço.
![Page 107: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/107.jpg)
Repetição controlada por variável
• Um exemplo:
Programa Exemplo
Inteiro i <- 0;
Início
Para i De 0 Até 10 Incremento 1
Escreva(i);
FimPara
Fim
![Page 108: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/108.jpg)
Repetição controlada por variável
• Outro exemplo:
Programa Exemplo
Inteiro i <- 0;
Início
Para i De 0 Até 10 Incremento 2
Escreva(i);
FimPara
Fim
![Page 109: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/109.jpg)
Repetição controlada por variável
• Mais um exemplo:
Programa Exemplo
Inteiro i <- 0;
Início
Para i De 10 Até 0 Incremento -1
Escreva(i);
FimPara
Fim
![Page 110: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/110.jpg)
Repetição controlada por variável
• Outro exemplo:
Programa Exemplo
Inteiro i <- 0, n <- 0;
Início
Escreva("Digite um número inteiro:");
Leia(n);
Para i De 0 Até n Incremento 1
Escreva(i);
FimPara
Fim
![Page 111: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/111.jpg)
Atividades
1. Escreva um algoritmo para ler o nome de uma pessoa e imprimi-lo na tela 100 vezes;
2. Refaça o algoritmo acima de modo que o número de vezes que o nome vai ser impresso seja definido pelo usuário.
Observação: utilize a estrutura de repetição controlada por variável.
![Page 112: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/112.jpg)
Repetição condicional
• A repetição condicional é controlada por uma expressão lógica;
• Os comandos que estão dentro da estrutura são repetidos de acordo com o resultado dessa expressão;
![Page 113: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/113.jpg)
Repetição condicional com teste no início
• Estrutura:
...
Enquanto <expressão lógica> Faça
<comandos>
FimEnquanto
...
– Executa os comandos da estrutura de repetição enquanto a <expressão lógica> for verdadeira;
![Page 114: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/114.jpg)
Repetição condicional com teste no início
• Estrutura:
– A exemplo de qualquer estrutura de repetição, deve-se tomar o devido cuidado para não causar um loop infinito;
– Observação importante: a estrutura de repetição condicional não incrementa
automaticamente nenhuma variável.
![Page 115: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/115.jpg)
Repetição condicional com teste no início
• Um exemplo:
Programa Exemplo
Inteiro i <- 0;
Início
Enquanto (i <= 10) Faça
Escreva(i);
i = i + 1;
FimEnquanto
Fim
![Page 116: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/116.jpg)
Repetição condicional com teste no início
• Outro exemplo:
Programa Exemplo
Inteiro i <- 10;
Início
Enquanto (i >= 0) Faça
Escreva(i);
i = i – 1;
FimEnquanto
Fim
![Page 117: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/117.jpg)
Repetição condicional com teste no início
• Mais um exemplo:
Programa Exemplo
Literal continua <- "s“;
Inteiro a <- 0;
Início
Enquanto (continua = "s") Faça
Escreva("Digite um número: ");
Leia(a);
Escreva("O número digitado é: ", a);
Escreva("Deseja continuar (s/n)?");
Leia(continua);
FimEnquanto
Fim
![Page 118: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/118.jpg)
Repetição condicional com teste no final
• Estrutura:
...
Faça
<comandos>
Enquanto <expressão lógica>
...
– Executa os comandos da estrutura de repetição pelo menos uma vez;
– Causa a repetição dos comandos enquanto a <expressão lógica> for verdadeira;
![Page 119: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/119.jpg)
Repetição condicional com teste no final
• Estrutura:
– A exemplo de qualquer estrutura de repetição, deve-se tomar o devido cuidado para não causar um loop infinito;
– Observação importante: a estrutura de repetição condicional não incrementa
automaticamente nenhuma variável.
![Page 120: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/120.jpg)
Repetição condicional com teste no final
• Um exemplo:
Programa Exemplo
Inteiro i <- 0;
Início
Faça
Escreva(i);
i = i + 1;
Enquanto (i <= 10)
Fim
![Page 121: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/121.jpg)
Repetição condicional com teste no final
• Outro exemplo:
Programa Exemplo
Inteiro i <- 10;
Início
Faça
Escreva(i);
i = i – 1;
Enquanto (i >= 0)
Fim
![Page 122: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/122.jpg)
Repetição condicional com teste no final
• Mais um exemplo:
Programa Exemplo
Literal continua <- "s“;
Inteiro a <- 0;
Início
Faça
Escreva("Digite um número: ");
Leia(a);
Escreva("O número digitado é: ", a);
Escreva("Deseja continuar (s/n)?");
Leia(continua);
Enquanto(continua = "s")
Fim
![Page 123: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/123.jpg)
Repetição condicional com teste no final
• Pode-se encontrar também a seguinte estrutura:
...
Repita
<comandos>
AtéQue <expressão lógica>
...
• A diferença fundamental dessa estrutura para a anterior é que, nesse caso, a repetição acontecerá enquanto a <expressão lógica> for falsa.
![Page 124: Algoritmos de Programação](https://reader033.fdocuments.net/reader033/viewer/2022052411/5571fa054979599169910cc5/html5/thumbnails/124.jpg)
Estrutura condicional
• Questão para discussão:
– Qual é a diferença básica entre as estruturas de repetição condicional com teste no início e teste no fim?