Algoritmos e Estruturas de Dados I Dados Comandos

  • Slides: 55
Download presentation
Algoritmos e Estruturas de Dados I – Dados, Comandos Básicos e Operadores Profa. Mercedes

Algoritmos e Estruturas de Dados I – Dados, Comandos Básicos e Operadores Profa. Mercedes Gonzales Márquez

Processador de Algoritmos Um algoritmo deve ser executado por algum agente ou também chamado

Processador de Algoritmos Um algoritmo deve ser executado por algum agente ou também chamado processador de algoritmos. Este agente pode ser uma pessoa munida de certos equipamentos e utensílios ou uma máquina projetada para executar automaticamente algumas instruções básicas. O algoritmo para a travessia do fazendeiro seria executado pelo tal senhor, que estava para tal munido do barco e de remos. O computador não entenderia a instrução Bater duas claras nem Tomar o café.

Processador de Algoritmos Consideremos um algoritmo para extrair o algarismo da casa das unidades

Processador de Algoritmos Consideremos um algoritmo para extrair o algarismo da casa das unidades de um inteiro dado. O algoritmo para resolver esta questão depende do processador que vai executá-lo. 1. Se o processador for um ser humano que saiba o que é número inteiro, algarismo e casa das unidades, o algoritmo teria uma única instrução: Escreva o algarismo da casa das unidades do inteiro dado. 2. Se o processador for um ser humano que não saiba o que é casa das unidades, mas souber o que é número inteiro, algarismo e tenha a noção de "mais à direita“ o algoritmo seria: Escreva o algarismo "mais à direita" do número dado.

Processador de Algoritmos 3. 4. E se o processador for uma máquina e não

Processador de Algoritmos 3. 4. E se o processador for uma máquina e não souber o que é algarismo, casa das unidades, "mais à direita", etc. ? Neste caso, quem está elaborando o algoritmo deveria conhecer que instruções o processador é capaz de executar para poder escrever o seu algoritmo compatível com estas instruções. Por exemplo, se a máquina for capaz de determinar o resto de uma divisão inteira de um número inteiro, o algoritmo poderia ser: 1. Chame de n o inteiro dado; 2. Calcule o resto da divisão de n por 10; 3. Forneça este resto como o algarismo pedido.

Processador de Algoritmos Já que o processador de nossos algoritmos será o computador, precisamos

Processador de Algoritmos Já que o processador de nossos algoritmos será o computador, precisamos entender seu funcionamento básico. Conheçamos a seguir alguns conceitos básicos sobre computador.

Conceitos Básicos Computadores – máquinas capazes de solucionar problemas, mas que só agem quando

Conceitos Básicos Computadores – máquinas capazes de solucionar problemas, mas que só agem quando recebem instruções nos mínimos detalhes. A tarefa principal dos computadores é o processamento de dados, ou seja, receber dados (entrada), realizar operações (processamento propriamente dito) e gerar uma resposta (saída).

Conceitos Básicos Estrutura de um computador MEMÓRIA UNIDADE DE ENTRADA UNIDADE DE CONTROLE UNIDADE

Conceitos Básicos Estrutura de um computador MEMÓRIA UNIDADE DE ENTRADA UNIDADE DE CONTROLE UNIDADE DE SAIDA UNIDADE LÓGICA E ARITMÉTICA Unidade Central de Processamento (UCP)

Conceitos básicos • Unidade de entrada – Traduz informação de um dispositivo de entrada

Conceitos básicos • Unidade de entrada – Traduz informação de um dispositivo de entrada em um código que a UCP entende (padrões de pulsos elétricos compreensíveis ao computador). Exemplos: Teclado, drive de CD / DVD -ROM, pen drive, joystick, câmera filmadora, câmera digital, tela sensível ao toque, mesa gráfica, caneta ótica, etc. • Unidade de saída – converte os dados processados, de pulsos elétricos em palavras ou números que podem ser escritos em vídeos ou outros dispositivos de saída. Exemplos: Vídeo, Impressora, drive de CD/DVD-ROM, pen drive, caixa de som, etc.

Conceitos básicos Memória – armazena os dados e o próprio programa. Número finito de

Conceitos básicos Memória – armazena os dados e o próprio programa. Número finito de localizações que são identificadas por meio de um único endereço. Escrita – CPU envia endereço da posição de memória a ser escrita e dados CPU a escrever. 1000 Endereço 1001 1002 Read/Write 1003 1004 Dados 1005 1006 Leitura – CPU envia endereço da posição de memória a ser lida e recebe dados. 1007 1008 1009 1010

Conceitos básicos Unidade lógica e aritmética – São executadas operações matemáticas de adição, multiplicação

Conceitos básicos Unidade lógica e aritmética – São executadas operações matemáticas de adição, multiplicação e divisão e operações lógicas como conjunção, disjunção, ou exclusivo e outras. Unidade de controle – Responsável pelo “tráfico” de dados. Controla a transferência de dados da memória para a unidade lógica e aritmética, da entrada para a memória e da memória para a saída.

Conhecimento do nosso processador (I) comandos básicos que manipulam os dados em memória e

Conhecimento do nosso processador (I) comandos básicos que manipulam os dados em memória e a interação com o usuário (entrada e saída de dados e comando de atribuição). (II) Operadores aritméticos, relacionais e lógicos. (III) Algumas funções primitivas (IV) comandos que modificam o fluxo de execução do algoritmo. (I) Antes de falarmos dos comandos básicos devemos falar dos conceitos de dados e variáveis.

Dados • Os algoritmos irão manipular dados, que normalmente são fornecidos pelos usuários, e

Dados • Os algoritmos irão manipular dados, que normalmente são fornecidos pelos usuários, e entregar resultados para estes usuários. • Uma pergunta importante neste momento é: que tipo de dados poderemos manipular? As linguagens de programação estabelecem regras precisas para definir que tipos de dados irão manipular.

Dados • • A representação por pseudo-código, que será adotada nesta matéria, também estabelece,

Dados • • A representação por pseudo-código, que será adotada nesta matéria, também estabelece, ainda que informalmente, algumas regras que limitam o conjunto de dados existentes na natureza e que poderão ser manipulados pelos algoritmos. Existem três tipos básicos de dados que a linguagem irá manipular: Dados numéricos Dados literais ou alfa-numéricos Dados Lógicos

Dados (1) Dados Numéricos: Dois tipos: inteiros e reais • O conjunto dos dados

Dados (1) Dados Numéricos: Dois tipos: inteiros e reais • O conjunto dos dados inteiros pode ser definido como Z={. . . , -3, -2, 0, 1, 2, . . . }. • O conjunto dos números reais inclui o conjunto dos números inteiros, dos números fracionários e dos números irracionais. • O conjunto dos números fracionários pode ser formalmente definido como Q={p/q | p, q pertencem a Z}. • O conjunto dos números irracionais engloba aqueles que não podem ser representados por uma fração, por exemplo o número PI=3. 141515. . .

Dados • Os números irracionais são armazenados até um certo número de casas decimais

Dados • Os números irracionais são armazenados até um certo número de casas decimais que o computador consegue representar a partir daí as casas decimais são descartadas. (1) Inteiro Exemplos: a) 15 b) -1 (2) Real Exemplos: a) 3, 141592; b) -0, 91

Dados (2) Dados literais ou alfa-numéricos Dados literais servem para tratamento de textos e

Dados (2) Dados literais ou alfa-numéricos Dados literais servem para tratamento de textos e normalmente são compostos por uma seqüência de caracteres contendo letras, algarismos e caracteres de pontuação. Nos algoritmos são normalmente representados por uma seqüência de caracteres entre aspas, por exemplo: (a) “JOSÉ GONÇALVES” b) “ 12345” c) “x 1 y 2 w 3” d) “*A!B: -” e) “ 23/03/10” f) “falso”

Dados (3) Dados Lógicos • Os dados lógicos ou também chamados booleanos somente podem

Dados (3) Dados Lógicos • Os dados lógicos ou também chamados booleanos somente podem assumir dois valores: verdadeiro e falso. Computadores tomam decisões, durante o processamento de um algoritmo, baseados nestes dois valores. • Portanto, este tipo de dados é intensamente aplicado durante o processo de tomada de decisões que o computador frequentemente é obrigado a fazer.

Variáveis • Uma entidade destinada a guardar um dado cujo valor pode variar ao

Variáveis • Uma entidade destinada a guardar um dado cujo valor pode variar ao longo do tempo durante a execução do algoritmo. • A cada variável corresponde uma posição na memória. • Ela assume somente um valor de cada vez. • Toda variável é identificada por um nome ou identificador.

Variáveis - Identificadores • • O identificador escolhido para rotular as variáveis deve obedecer

Variáveis - Identificadores • • O identificador escolhido para rotular as variáveis deve obedecer as seguintes regras - O primeiro caractere deve ser uma letra - Os nomes devem ser formados por caracteres pertencentes ao seguinte conjunto: {A, B, . . . , X, Y, W, Z, 0, 1, . . . , 8, 9, _} Utiliza-se nomes de variáveis elucidativos. Exemplo se a variável vai armazenar o nome de um empregado, deve-se usar o identificador nome para representá-la.

Variáveis - Declaração • • • As variáveis também são classificadas como numéricas, lógicas

Variáveis - Declaração • • • As variáveis também são classificadas como numéricas, lógicas e literais. Para indicar o tipo de uma variável é usada a declaração de variáveis. Quando se declara uma variável é feita uma associação do identificador com a respectiva posição de memória que este vai simbolizar.

Variáveis - Declaração • Uma vez declarada a variável, qualquer referência que se faça

Variáveis - Declaração • Uma vez declarada a variável, qualquer referência que se faça ao seu identificador implica a referência ao conteúdo do local da memória representado pelo mesmo.

Variáveis – Sintaxe da declaração tipo_dado : identificador_da_variável Exemplos: Real: x, y, z, w

Variáveis – Sintaxe da declaração tipo_dado : identificador_da_variável Exemplos: Real: x, y, z, w Inteiro: num_alunos Literal: nome_aluno Logico: sim

I - Comandos básicos Um comando é a descrição de uma ação a ser

I - Comandos básicos Um comando é a descrição de uma ação a ser executada em um dado momento. Descreveremos três comandos básicos no desenvolvimento de algoritmos : atribuição, entrada e saída. Atribuição: Este comando permite que se forneça um valor a uma certa variável cujo tipo deve ser compatível com esse valor.

Comando de atribuição Forma geral do comando de atribuição identificador ← expressão onde: identificado

Comando de atribuição Forma geral do comando de atribuição identificador ← expressão onde: identificado é o nome da variável; ← é o símbolo de atribuição, e expressão é a representação simbólica de um valor que pode ser do tipo aritmética, lógica ou literal. A avaliação dessa representação simbólica resulta no valor a ser atribuído à variável.

Comando de atribuição Exemplo de atribuição: k ← 10 COR ← “VERDE” teste ←

Comando de atribuição Exemplo de atribuição: k ← 10 COR ← “VERDE” teste ← falso soma ← 50 media ← soma/k cod ← (n*n+1) > 5 sim ← k = 0 e media < 0 (e é um operador lógico que veremos mais adiante)

Comandos de entrada e saída Sabe-se que as unidades de entrada e saída são

Comandos de entrada e saída Sabe-se que as unidades de entrada e saída são dispositivos que possibilitam a comunicação entre o usuário e o computador. Exemplo: através de um teclado, o usuário dá entrada ao programa e aos dados na memória e o computador emite mensagens para o usuário através da tela ou impressora. Os comandos de entrada e saída são usados para determinar o momento da entrada de dados para o algoritmo e a saída dos resultados obtidos para o usuário.

Comandos de entrada e saída Forma geral do comando de entrada leia (lista de

Comandos de entrada e saída Forma geral do comando de entrada leia (lista de identificadores) Onde lista de identificadores são os nomes das variáveis, separados por vírgula, nas quais serão armazenados os valores provenientes do meio de entrada. Exemplo : suponhamos que nota e numero são variáveis de tipo real e inteiro respectivamente, o comando leia (nota, número) indica que dois valores numéricos (real e inteiro) serão lidos de uma unidade de entrada, quando este comando for executado. Os valores serão armazenados nas posições de memória destinadas para as variáveis nota e número.

Comandos de entrada e saída Forma geral do comando de saída escreva (lista de

Comandos de entrada e saída Forma geral do comando de saída escreva (lista de identificadores e/ou constantes) Onde lista de identificadores são os nomes das variáveis, cujos conteúdos serão mostrados ao usuário através de um meio de saída. Além dos conteúdos das variáveis, o valor de uma constante pode ser emitido diretamente. Exemplo : escreva (36, nota, número) indica que a constante 36 e os conteúdos das variáveis nota e número serão exibidos numa unidade de saída, quando este comando for executado.

Exemplos - leia Escrever o(s) comandos(s) de entrada que leia(m) as seguintes três linhas

Exemplos - leia Escrever o(s) comandos(s) de entrada que leia(m) as seguintes três linhas (nome e nota de um aluno) e armazene(m) os valores na memória principal. PAULO, 100 MARIA, 75 JOSE, 80 Resposta: Supondo que A, B e C são variáveis do tipo numérico e que X, Y e Z são variáveis do tipo literal, temos duas opções leia (X, A, Y, B, Z, C) ou leia (X, A) leia (Y, B) leia (Z, C)

Exemplos - escreva Escrever o(s) comandos de saída que imprima(m) os conteúdos das posições

Exemplos - escreva Escrever o(s) comandos de saída que imprima(m) os conteúdos das posições de memória A, B, C, X, Y, Z do exemplo anterior. Mostramos duas formas: COMANDO SAIDA escreva (X, A, Y, B, Z, C) JOSE, 80, MARIA, 75, PAULO, 100 escreva (X, A) escreva (Y, B) escreva (Z, C) JOSE, 80 MARIA, 75 PAULO, 100

Exercício • N e P são variáveis de tipo literal e o valor lido

Exercício • N e P são variáveis de tipo literal e o valor lido para N é MMAA e X e A variáveis de tipo numérico e o valor lido para A é 25, interpretar a sequência seguinte de comandos e mostrar a sua saída X← 0 leia (N, A) X←X+A P←N escreva (P, X) X←X+A escreva (X) A←X escreva (N, X, A)

II - Operadores aritméticos • Além de limitar o conjunto de dados, a declaração

II - Operadores aritméticos • Além de limitar o conjunto de dados, a declaração de tipos define o conjunto de operadores que podem agir sobre a variável. Operadores aritméticos:

Operadores aritméticos Símbolo Função Tipos disponíveis Adição Inteiro, real subtração Exponenciação ” ” MOD

Operadores aritméticos Símbolo Função Tipos disponíveis Adição Inteiro, real subtração Exponenciação ” ” MOD Resto da divisão inteira Inteiro DIV Quociente da divisão inteira Inteiro + * / ** Multiplicação Divisão real

Operadores aritméticos -Prioridades 1º prioridade : Exponenciação 2º prioridade : Divisão, multiplicação 3º prioridade

Operadores aritméticos -Prioridades 1º prioridade : Exponenciação 2º prioridade : Divisão, multiplicação 3º prioridade : Adição, subtração Exemplos: 18%5=3 DIV(18, 5)=3

Operadores relacionais Função Símbolo = <> >= <= Tipos disponíveis Igual Todos Diferente Todos

Operadores relacionais Função Símbolo = <> >= <= Tipos disponíveis Igual Todos Diferente Todos Maior ou igual que Todos Menor ou igual que Todos O resultado obtido de uma relação é sempre um valor lógico. Exemplos: (a) A<>B (b) nome=“Maria” (c) B**2 -4*A*C<0

Operadores relacionais Dadas as variáveis numéricas x, y, z e as variáveis literais NOME

Operadores relacionais Dadas as variáveis numéricas x, y, z e as variáveis literais NOME e COR, observar os resultados obtidos para as relações a partir dos valores atribuídos a estas variáveis. VARIÁVEIS X Y Z COR RELAÇÕES NOME X 2 +Y>Z COR=“AZUL” NOME<>”JOSE” 1 2 5 “AZUL” “PAULO” Falso Verdade 4 3 1 “VERDE” “JOSE” Falso 1 1 2 “BRANCO” “PEDRO” Falso Verdade 1 2 1 “AZUL” Verdade Falso “JOSE” Verdade

Operadores relacionais Dadas as variáveis numéricas A e B, e as variáveis literais NOME

Operadores relacionais Dadas as variáveis numéricas A e B, e as variáveis literais NOME e PROFISSÃO, completar o quadro a seguir. VARIÁVEIS A B NOME PROFISSÃO 3 16 “MIRIAM ” “ADVOGADO” 5 64 “PEDRO” “MÉDICO” 2, 5 9 “ANA” “PROFESSOR” RELAÇÕES A+2 > B NOME<>”ANA ” PROFISSÃO=“MEDICO”

Operadores lógicos Símbolo Função e Conjunção Tipos disponíveis Lógico Ou Disjunção Lógico Não Negação

Operadores lógicos Símbolo Função e Conjunção Tipos disponíveis Lógico Ou Disjunção Lógico Não Negação Lógico

Operadores lógicos - e A conjunção de duas proposições p e q representa-se por:

Operadores lógicos - e A conjunção de duas proposições p e q representa-se por: p e q e é verdadeira se e somente se ambas as proposições são verdadeiras. falsa. p V V F F q V F p e q V F F F Por exemplo ``chove e venta'' só é verdadeiro se as duas coisas forem verdadeiras, ``chove'' e também ``venta''. Se uma das sentenças não ocorrer, a sentença como um todo é falsa.

Operadores lógicos - e Sejam as seguintes proposições p: ok, onde ok é uma

Operadores lógicos - e Sejam as seguintes proposições p: ok, onde ok é uma variável lógica cujo conteúdo é verdadeiro q: A=0, onde o valor de A é 3. r: teste, onde teste é uma variável lógica cujo conteúdo é falso. s: B<>1, onde o conteúdo de B é 2 Qual é o valor lógico das conjunções (a) p e s (b) p e r (c) q e s (d) q e r

Operadores lógicos - ou A disjunção de duas proposições p e q representa-se por:

Operadores lógicos - ou A disjunção de duas proposições p e q representa-se por: p ou q e é verdadeira se e somente se, pelo menos, uma delas for verdadeira. p q p ou q V V F F V F V V V F Por exemplo, ``vou à praia ou vou ao campo'' é um sentença verdadeira caso qualquer uma das duas ações acontecer, ou ambas. É verdadeira, se eu for a praia e não ao campo, se eu for ao campo e

Operadores lógicos - ou Para as quatro proposições do exemplo anterior qual será o

Operadores lógicos - ou Para as quatro proposições do exemplo anterior qual será o valor lógico das disjunções: (a) p ou s (b) p ou r (c) q ou s (d) q ou r

Operadores lógicos - não O operador negação (não) atribui o valor lógico falso a

Operadores lógicos - não O operador negação (não) atribui o valor lógico falso a uma proposição com valor verdade, e o valor lógico verdade a uma proposição com valor falso. Assim p não (p) V F F V

Operadores - Prioridades 1º prioridade : aritmético 2º prioridade : relacional 3º prioridade :

Operadores - Prioridades 1º prioridade : aritmético 2º prioridade : relacional 3º prioridade : e 4º prioridade : ou 5º prioridade : não

III - Funções primitivas • Representa uma operação exercida sobre um valor para obter

III - Funções primitivas • Representa uma operação exercida sobre um valor para obter como resultado um valor numérico. • Assumiremos que as funções da tabela estão disponíveis no nosso computador hipotético Função Resultado Sen(x) Seno de um ângulo Cos(x) Coseno de um ângulo Tg(x) Tangente do ângulo Exp(x) O número e elevado a x. Ln(x) Logaritmo neperiano de x Sqr(x) Raiz quadrada de x Abs(x) Valor absoluto de x

Operadores - Prioridades nas expressões mistas 1º prioridade : parênteses mais internos 2º prioridade

Operadores - Prioridades nas expressões mistas 1º prioridade : parênteses mais internos 2º prioridade : funções 3º prioridade : potências e raízes 4º prioridade : divisão e multiplicação 5º prioridade : adições e subtrações 6º prioridade : operadores relacionais 7º prioridade : operador lógico e 8º prioridade : operador lógico ou 9º prioridade : operador lógico não

Comando de atribuição Exercícios de fixação 1. 7. 1. 1. e 1. 7. 1.

Comando de atribuição Exercícios de fixação 1. 7. 1. 1. e 1. 7. 1. 2. do livro Algoritmos Estruturados de Harry Farrer e outros. Sendo SOMA, NUM, X variáveis numéricas, NOME, COR, DIA variáveis literais, e TESTE, COD, TUDO variáveis lógicas, assinalar os comandos de atribuição considerados inválidos: (a) NOME ← 5 (b) SOMA ← NUM + 2*X (c) TESTE ← COD ou X**2 <> SOMA (d) TUDO ← SOMA (e) COR ← “PRETO” – sqrt(X)

Comando de atribuição (f) X ← X+1 (g) NUM ← “*ABC*” (h) DIA ←

Comando de atribuição (f) X ← X+1 (g) NUM ← “*ABC*” (h) DIA ← “SEGUNDA” (i) SOMA + 2 ← X**2 – sqr(NUM) (j) X ← NOME >= COD Quais os valores armazenados em SOMA, NOME e TUDO, supondo-se que NUM, X, COR, DIA, TESTE e COD valem, respectivamente, 5; 2, 5; “AZUL”; “TERÇA”, falso e verdadeiro NOME ← DIA (a) SOMA ←NUM**2/x+ DIV(NUM+1, 2) (b) TUDO ←não TESTE ou COD e SOMA<X (c)

Expressões mistas Exercícios de fixação 1. 5. 5. 1. e 1. 5. 5. 2.

Expressões mistas Exercícios de fixação 1. 5. 5. 1. e 1. 5. 5. 2. do livro Algoritmos Estruturados de Harry Farrer e outros.

Exercício 1. Faça um algoritmo que leia o valor do salário de um funcionário,

Exercício 1. Faça um algoritmo que leia o valor do salário de um funcionário, calcule e mostre seu novo salário, sabendo que o mesmo recebeu um aumento de 21, 3%. 2. Leia o valor do raio de um círculo e calcule a área deste círculo. 3. Leia os valores de dois catetos de um triângulo e calcule e mostre o valor da hipotenusa 4. Escreva um algoritmo para ler o nome e a idade de uma pessoa, e exibir quantos dias de vida ela possui. Considere sempre anos completos, e que um ano possui 365 dias. Ex: uma pessoa com 19 anos possui 6935 dias de vida; veja um exemplo de saída: MARIA, VOCÊ JÁ VIVEU 6935 DIAS. 5. Um motorista deseja colocar no seu tanque X reais de gasolina. Escreva um algoritmo para ler o preço do litro da gasolina e o valor do pagamento, e exibir quantos litros ele conseguiu colocar no tanque.

Exercício 6. O restaurante a quilo Bem-Bão cobra R$12, 00 por cada quilo de

Exercício 6. O restaurante a quilo Bem-Bão cobra R$12, 00 por cada quilo de refeição. Escreva um algoritmo que leia o peso do prato montado pelo cliente (em quilos) e imprima o valor a pagar. Assuma que a balança já desconte o peso do prato. 7. Entrar com o dia e o mês de uma data e informar quantos dias se passaram desde o início do ano. Esqueça a questão dos anos bissextos e considere sempre que um mês possui 30 dias. 8. Uma fábrica de camisetas produz os tamanhos pequeno, médio e grande, cada uma sendo vendida respectivamente por 10, 12 e 15 reais. Construa um algoritmo em que o usuário forneça a quantidade de camisetas pequenas, médias e grandes referentes a uma venda, e a máquina informe quanto será o valor arrecadado.

IV - Estruturas de Controle de Fluxo de execução do algoritmo Estas estruturas de

IV - Estruturas de Controle de Fluxo de execução do algoritmo Estas estruturas de controle de fluxo são: Sequencial, Condicional e de Repetição.

Estruturas de controle de fluxo Estrutura Sequencial: Execução dos comandos em uma sequência linear

Estruturas de controle de fluxo Estrutura Sequencial: Execução dos comandos em uma sequência linear (na mesma ordem em que foram escritas). Exemplo*: escreva (“Informe seu nome: ”) leia (nome) escreva (“Informe sua idade: ”) leia (idade) escreva (“Você se chama”, nome, “e possui”, idade, “anos!”) *Todos os algoritmos que foram apresentados até agora.

Estruturas de controle de fluxo Estrutura Condicional : É utilizada quando há uma condição

Estruturas de controle de fluxo Estrutura Condicional : É utilizada quando há uma condição lógica que desviará o fluxo do algoritmo para um diferente bloco de comandos, dependendo da condição ser verdadeira ou falsa. Exemplo: se (A > B) então escreva “A é maior” senão escreva “O B é maior ou são iguais”

Estruturas de controle de fluxo Estrutura de Repetição: Execução de uma sequência de comandos

Estruturas de controle de fluxo Estrutura de Repetição: Execução de uma sequência de comandos repetidas vezes. O computador abandona o fluxo natural da execução (de cima para baixo) e volta a executar a sequência de ações desejada. Exemplo: M← 1 enquanto (M < 10) faça M←M+1 Fim enquanto escreva M