.:. Apostila de Lógica de Programação

Recomendamos esse estudo para todos que estão iniciando desenvolvimento. Nosso objetivo é que você amplie seu conhecimento de lógica até o nível avançado.

Inicie com o exercício aula, vai ficar tudo mais fácil:


Seu primeiro exercício


Capítulo 1

Aprendendo a Programar Computadores

O principal componente de um programa de computador é a sua lógica, ou seja, o que o computador deve fazer para resolver um problema. A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir a sequência lógica para o desenvolvimento.

Devemos então DESCREVER essa lógica numa linguagem que o computador “entenda”, é mais fácil começar a programar (organizar a lógica) em uma linguagem de alto nível. Qual é a linguagem de mais alto nível para um ser humano que fala naturalmente o português? O caminho mais tranquilo é por meio de ALGORITMOS.

Definição de Algoritmo

É uma sequência finita de instruções, ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Um algoritmo fixa um padrão de comportamento a ser seguido, uma norma de execução, com o objetivo de resolver um determinado problema. Como exemplos de algoritmos podemos citar os algoritmos das operações básicas (adição, multiplicação, divisão e subtração) de números reais decimais. Outros exemplos seriam os manuais de aparelhos eletrônicos, como um videocassete, que explicam passo-a-passo como, por exemplo, gravar um evento.  Até mesmo as coisas mais simples, podem ser descritas por sequências lógicas. Por exemplo:

“Chupar uma bala”

  1. Pegar a bala 
  2. Retirar o papel 
  3. Chupar a bala 
  4. Jogar o papel no lixo 

“Somar dois números quaisquer”

  1. Escreva o primeiro número no retângulo A. 
  2. Escreva o segundo número no retângulo B. 
  3. Some o número do retângulo A com número do retângulo B e coloque o resultado no retângulo C. 

Existem diversas soluções para um problema, desta forma pode-se haver vários algoritmos para resolver um mesmo problema, afinal, cada pessoa pensa e age de forma diferente. O desenvolvimento de um algoritmo é um exercício de criatividade e experiência.

Diferentes algoritmos podem estar corretos, se levarem ao alcance do objetivo final. Entretanto, deve-se procurar desenvolver algoritmos que resolvam o problema com menos esforço e maior objetividade.

Capítulo 2

Desenvolvendo algoritmos

Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome é uma alusão à posterior implementação em uma linguagem de programação, ou seja, quando formos programar em uma linguagem, por exemplo Java, estaremos gerando código em Java. Ao contrário de uma linguagem de programação não existe um formalismo rígido de como deve ser escrito o algoritmo, este deve ser fácil de se interpretar e fácil de codificar, ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação. Para escrever Algoritmos (programas) é necessário o uso de Instruções / Comandos:

  • Instrução/Comando: São frases que indicam as ações a serem executadas. São compostas de um verbo no imperativo, ou no infinitivo, mais um complemento. 

Pseudocódigo

Pseudocódigo é uma forma de representação de algoritmos, é praticamente um programa escrito em português que, depois, podemos passar para o computador. Para escrevermos códigos com pseudocódigo precisaremos de um programa chamado visual (disponível gratuitamente na Internet) e conhecer alguns comandos básicos, são eles:

  • escreva (” “)= comando usado para imprimir uma mensagem na tela; 
  • leia () = comando usado para ler valores digitados no teclado; 
  • <-= comando de atribuição; 
  • inicio = palavra usada para iniciar o programa principal; 
  • fimalgoritmo = palavra usada para finalizar o algoritmo; 
  • var = palavra usada para declarar variáveis; 
  • algoritmo = palavra usada para indicar o início do programa. 

 Construiremos a seguir um algoritmo para ler dois números. Em seguida, calcularemos a soma desses números, armazenando o resultado em outra variável.

Imprimindo os dados iniciais e a soma.

Analisaremos a seguir linha a linha o algoritmo desenvolvido pra solucionar o problema de somar dois números:

Linha 1: usamos a palavra-chave ALGORITMO para começar o nosso algoritmo. Observe que em seguida temos um nome entre as aspas duplas, então, sempre que for desenvolver um algoritmo você deve escrever na primeira linha algoritmo “nome_do_algoritmo”. É importante saber que toda linguagem de programação tem um modo de identificar o início do programa. Você sempre deve consultar a documentação da linguagem de programação que deseja trabalhar para verificar a estrutura da mesma.

Linha 2: usamos a palavra-chave VAR para indicar que naquele espaço devemos declarar as variáveis que usaremos em nosso programa.

Linha 3: aqui são declaradas as variáveis, com seus identificadores e tipos. Observe que primeiro vem o nome (identificador) da variável e após os dois pontos é que vem o tipo dela. n1 e n2 são os dois números, soma é a variável que armazenará o resultado da operação.

Linha 5: usamos a palavra-chave INICIO para indicar que a partir daquele ponto, tem-se o início do programa principal. Programa principal? Mas espera aí, a gente já não está no programa? Pois é!!! Vamos esclarecer isso. O algoritmo inteiro, das linhas 01 à 16, é um programa, mas o programa é dividido em partes, como
estamos percebendo aqui: nome do programa, declaração de variáveis, etc. Isso é norma para todas as linguagens de programação. O que ocorre é que, o que de fato o
algoritmo vai fazer, vai no programa principal, ou seja, dentro de INICIO e FIMALGORITMO. Essas divisões existem, pois, como veremos mais adiante, um programa na verdade é um conjunto de programas, é o que chamamos de modularização. Não fiquem com medo, logo falaremos sobre isso. No momento, o mais importante é saber que o programa principal é aquele que faz EXECUTAR os seus comandos.

Linha 7: usamos o comando ESCREVA para que seja impresso na tela do usuário um texto. Neste caso, está sendo impresso na tela um texto de solicitação. Solicitamos que o usuário digite um número.

Linha 8: usamos o comando LEIA para que o valor digitado pelo usuário, no teclado, seja armazenado na variável correspondente. Portanto, será atribuído à variável N1 o valor que o usuário digitar.

Linha 9: idem à linha 7.

Linha 10: idem à linha 8.

Linha 11: aqui é realizada uma operação matemática, mais especificamente aritmética. Observe que usamos o comando <- para que seja atribuído à variável SOMA o resultado da soma entre os valores armazenados em n1 e n2.

Linha 12: aqui novamente usamos o comando escreva, mas observe que desta vez tem algo diferente em relação às linhas 7 e 9. Estamos imprimindo na tela, junto com o texto que queremos, os valores das variáveis. Isso é feito usando-se a vírgula e, pondo após ela, a variável que queremos que seja impressa na tela.

Linha 13: idem à linha 12

Linha 14: idem à linha 12

Linha 16: usamos a palavra-chave FIMALGORITMO para finalizar o programa principal e terminar a execução do programa. Essa palavra chave força a saída do
programa, fechando a janela e liberando o espaço de memória que estavam reservados para as variáveis.

 Regras para construção do Algoritmo:

Para escrever um algoritmo precisamos descrever a sequência de instruções, de maneira simples e objetiva. Para isso utilizaremos algumas técnicas:

  • Usar somente um verbo por frase. 
  • Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informática. 
  • Usar frases curtas e simples. 
  • Ser objetivo. 
  • Procurar usar palavras que não tenham sentido dúbio. 

Uma linguagem (ou pseudo-linguagem) possui duas características:

Sintaxe – como escrever os comandos e seus componentes;

Semântica – o significado de cada comando e conceito.

A sintaxe e a semântica de uma linguagem de programação englobam várias ações, como, por exemplo: Declarações de Variáveis; Operadores; Comandos de entrada e de saída; Comandos de seleção, repetição etc.

Exemplo de Algoritmo

Imagine o seguinte problema: Calcular a média final dos alunos da 3ª Série. Os alunos realizarão quatro provas: P1, P2, P3 e P4.

Onde: Média Final = P1 + P2 + P3 + P4

Para montar o algoritmo proposto, faremos três perguntas:


  • Quais são os dados de entrada? 

R: Os dados de entrada são P1, P2, P3 e P4

  •  Qual será o processamento a ser utilizado? 

R: O procedimento será somar todos os dados de entrada e dividi-los por 4 (quatro). P1 + P2 + P3 + P4

  • Quais serão os dados de saída? 

R: O dado de saída será a média final

Algoritmo

  • Receba a nota da prova1
  • Receba a nota de prova2
  • Receba a nota de prova3
  • Receba a nota da prova4
  • Some todas as notas e divida o resultado por 4
  • Mostre o resultado da divisão

Capítulo 3

Diagrama de Bloco

O diagrama de blocos é uma forma padronizada e eficaz para representar os passos lógicos de um determinado processamento. Com o diagrama podemos definir uma sequência de símbolos, com significado bem definido, portanto, sua principal função é a de facilitar a visualização dos passos de um processamento.

Simbologia

Existem diversos símbolos em um diagrama de bloco. No decorrer do curso Apresentaremos os mais utilizados. Veja no quadro abaixo alguns dos símbolos que iremos utilizar:

Obs.: Dentro do símbolo sempre terá algo escrito, pois somente os símbolos não nos dizem nada. Veja no exemplo a seguir:

Obs.: Veja que no exemplo da bala seguimos uma sequência lógica somente com informações diretas, já no segundo exemplo da média utilizamos cálculo e exibimos o resultado do mesmo.

Capítulo 4

Constantes e Variáveis

Variáveis e constantes são os elementos básicos que um programa manipula. Uma variável. é um espaço reservado na memória do computador para armazenar um tipo de dado determinado. Variáveis devem receber nomes para poderem ser referenciadas e modificadas quando necessário. Um programa deve conter declarações que especificam de que tipo são as variáveis que ele utilizará e as vezes um valor inicial. Tipos podem ser por exemplo: inteiros, reais, caracteres, etc. As expressões combinam variáveis e constantes para calcular novos valores.

VariáveisQuando declaramos uma variável em um programa, estamos na verdade definindo e reservando um espaço na memória para armazenar o valor que aquela variável conterá em determinado tempo de execução do programa. Muito difícil??? Vamos exemplificar então para facilitar. Suponha que você precise fazer um programa que solicite ao usuário dois números inteiros, some esses dois números e apresente o resultado da soma para o usuário. Para resolver esse problema teremos de DECLARAR duas variáveis do TIPO inteiras. Vamos supor que essas duas variáveis se chamem X e Y. Além disso, você precisará de uma terceira variável para armazenar o resultado da soma. Vamos chamar então essa variável de SOMA. Sendo assim, teremos o seguinte algoritmo passo a passo:

Não se preocupe com alguns detalhes desse algoritmo, voltaremos nele mais para frente. O que é importante no momento é entender como funcionam as variáveis. Veja, o programa solicita ao usuário para digitar os valores de X e Y. Nesse instante é impresso na tela a mensagem que está dentro dos parênteses do comando ESCREVA e, em seguida, o usuário digita um valor usando o teclado. No momento em que o usuário digita o valor desejado, esse valor DECIMAL é “passado” para a variável X, por meio do comando LEIA. Lembre-se, a variável X é um espaço de memória reservado, com o tamanho de bits para o tipo de dado INTEIRO. O mesmo acontece com a variável Y. Esses valores ficarão armazenados nas variáveis enquanto nenhum outro valor for digitado para eles, ou enquanto o programa estiver em execução. Isso significa que depois que o programa terminar de executar, esses valores deixarão de existir, assim como as variáveis, e o espaço de memória que estava reservado será também liberado.

Tipos de Variáveis

As variáveis e as constantes podem ser basicamente de quatro tipos: Numéricas, caracteres, Alfanuméricas ou lógicas.

Numéricas – Específicas

para armazenamento de números, que posteriormente poderão ser utilizados para cálculos. Podem ser ainda classificadas como Inteiras ou Reais. As variáveis do tipo inteiro são para armazenamento de números inteiros e as Reais são para o armazenamento de números que possuam casas decimais.

CaracteresEspecíficas para armazenamento de conjunto de caracteres que não contenham números (literais). Ex: nomes. Alfanuméricas – Específicas para dados que contenham letras e/ou números. Pode em determinados momentos conter somente dados numéricos ou somente literais. Se usado somente para armazenamento de números, não poderá ser utilizada para operações matemáticas.

LógicasArmazenam somente dados lógicos que podem ser Verdadeiro ou Falso. Constantes Uma constante é uma variável. Sim, é uma variável no sentido de que uma constante também reserva um espaço de memória para o tipo de dado que manipulará. Entretanto, uma constante armazenará um valor ÚNICO, um valor que NÃO mudará com o tempo de execução do programa. Suponha que você precise trabalhar com o número PI, que é um valor fixo de aproximadamente 3.14. Você pode simplesmente declará-lo e utilizá-lo em todo o seu programa. Veja:

Uma constante chamada PI foi declarada no início do algoritmo e, posteriormente, usada para realizar uma operação de multiplicação. Portanto, lembre-se: constantes e variáveis são espaços de memória reservados para o tipo de dados que você deseja trabalhar. Constantes são valores fixos que você utilizará em seu programa e variáveis são valores que precisam variar durante o tempo de execução do seu programa.

Capítulo 5

Operadores

Os operadores são meios pelo qual incrementamos, decrementamos, comparamos e avaliamos dados dentro do computador. Temos três tipos de operadores:

  •  Operadores Aritméticos
  •  Operadores Relacionais
  •  Operadores Lógicos 
  •  Operadores Aritméticos

Os operadores aritméticos são os utilizados para obter resultados numéricos. Além da adição, subtração, multiplicação e divisão, podem utilizar também o operador para exponenciação. Os símbolos para os operadores aritméticos são:

Operadores Relacionais

Os operadores relacionais são utilizados para comparar String de caracteres e números. Os valores a serem comparados podem ser caracteres ou variáveis. Estes operadores sempre retornam valores lógicos (verdadeiro ou falso/ True ou False), para estabelecer prioridades no que diz respeito a qual operação executar primeiro,
utilize os parênteses. Os operadores relacionais são:

ou, dependendo da linguagem
Igual a                     ==
Diferente de           !=
Maior que               >
Menor que              <
Maior ou igual a    >=
Menor ou igual a   <=

Operadores Lógicos

Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso. Os operadores lógicos são:

  • E / AND – Uma expressão AND (E) é verdadeira se todas as condições forem verdadeiras. 

  • OR / OU – Uma expressão OR (OU) é verdadeira se pelo menos uma condição for verdadeira. 

  • NOT – Uma expressão NOT (NÃO) inverte o valor da expressão ou condição, se verdadeira inverte para falsa e vice-versa. 

A tabela abaixo mostra todos os valores possíveis criados pelos três operadores lógicos (AND, OR e NOT).

Operações Lógicas

Operações Lógicas são utilizadas quando se torna necessário tomar decisões em um diagrama de bloco. Num diagrama de bloco, toda decisão terá sempre como resposta o resultado VERDADEIRO ou FALSO. Como no exemplo do algoritmo “CHUPAR UMA BALA”. Imaginemos que algumas pessoas não gostem de chupar bala de Morango, neste caso teremos que modificar o algoritmo para:

“Chupar uma bala”

  • Pegar a bala 
  • A bala é de morango? 
  • Se sim, não chupe a bala 
  • Se não, continue com o algoritmo 
  • Retirar o papel 
  • Chupar a bala 
  • Jogar o papel no lixo 

Exemplo do algoritmo “Chupar Bala” utilizando diagrama de Blocos:

Comandos de Decisão

Comandos de Controle de Programa ou simplesmente comandos de decisão são comandos que podemos usar em nossos programas para direcionar o fluxo de sua execução. Explicaremos melhor a seguir, não se preocupe. Um programa pode ser dividido em partes, como pudemos compreender até aqui, primeiro temos que escrever o nome do programa, depois temos um espaço reservado para declaração de variáveis, aí entra o programa principal, com os comandos que queremos que sejam executados. Um comando de controle de programa é então um comando que desvia de uma parte do programa, executa determinada ação, e volta para onde estava. Normalmente, o programa principal está sendo executado e então, ao chegar em uma linha que contém um comando desse tipo, o controle do programa passa a não ser mais do programa principal, mas sim daquele bloco de código que está sendo executado.

A estrutura de decisão “SE/IF”

Normalmente vem acompanhada de um comando, ou seja, se determinada condição for satisfeita pelo comando SE/IF então execute determinado comando. Segue Sintaxe:

O comando SE (IF): deve ser utilizado sempre quando precisamos analisar uma situação e decidir o que vamos fazer em seguida. Simplificadamente, funciona mais ou menos assim: Se tal condição for verdadeira, faça tal coisa, caso contrário, faça outra coisa. Daremos um exemplo clássico. Desenvolveremos um programa que:

  • Solicite as notas das duas provas bimestrais dos estudantes; 
  • Calcule a média dessas notas; 
  • Verifique a situação do estudante: 
  • Aprovado se a média for maior ou igual a 7; 
  • Recuperação se a média for menor que 7 e maior que 4; 
  • Reprovado se a média for menor que 4. 
  • Apresente na tela os resultados. 

Linha 1: Nome do Programa.

Linha 3: Início do Programa.

Linha 5: Declaração de Variáveis. São declaradas três variáveis do tipo real, duas para obter os valores das duas notas e uma terceira para armazenar o valor da média.

Linhas 6, 8, 12, 13, 14, 15 e 17: Usamos o comando ESCREVA para escrever textos na tela.

Linhas 7 e 9: Usamos o comando LEIA para obter os valores das variáveis n1 e n2 que serão digitados pelo usuário.

Linha 10: Fazemos o cálculo da média das duas notas.

Linha 11: Aqui usamos o comando SE para avaliar a condição MÉDIA >= 7.0. Se a resposta para avaliação for VERDADEIRA, então, vai aparecer na tela as mensagens que colocamos no ESCREVA. Essas mensagens apresentam as notas das provas, a média e a situação do aluno. Se MÉDIA não for maior ou igual a 7.0, então nada acontece, simplesmente saímos do bloco de comando do SE e voltamos para o programa principal, o qual apenas emite uma mensagem de FIM DE PROGRAMA. Portanto, das linhas 11 à 16, temos o bloco de comando do IF. A condição sendo verdadeiro, esse bloco será executado, sendo falso, sairá do bloco. se/senão Vamos ver agora como fica o mesmo programa ao tratarmos tanto a resposta verdadeiro, quanto a falso. O Pseudocódigo correspondente é apresentado na figura a seguir:

Observe as linhas de 17 a 21. Nelas encontram-se o tratamento para a resposta FALSA da avaliação da condição. Novamente vamos imprimir na tela os valores das notas, da média e agora a situação do estudante aparecerá como REPROVADO. A condição avaliada é a seguinte: Se a MÉDIA >= 7 é V então o estudante está aprovado, CASO CONTRÁRIO, o estudante está reprovado. Então, o comando Se Composto pode ser generalizado como: SE a condição avaliada for Verdadeira, ENTÃO, execute os comandos deste bloco, CASO CONTRÁRIO, execute os comandos do outro bloco. Ao terminar a execução do bloco SE, retorne ao programa principal.

A sintaxe é:

While

O comando While é um comando de LOOP, ou falando em português, um comando de repetição. Este é muito diferente do comportamento do comando IF. Em um comando de decisão, é analisada uma condição e, se a resposta for V ou F, algo acontece, ou não, uma única vez. No caso do While, uma condição também é analisada, uma resposta F sai do bloco de comando e volta para o programa principal, mas uma resposta V executará o bloco de instruções repetidas vezes. A quantidade de vezes que aquele bloco de instruções será executado é definido na condição. Portanto, enquanto a condição for verdadeira, repita o bloco de comandos. No momento em que a condição for falsa, sairá do while.

A sintaxe do comando While é a seguinte:

Veremos a seguir um exemplo simples onde iremos somar os números menores ou iguais a dez.

Switch Case

O comando Switch/Case é do tipo Seleção/Condição, como o IF: diante de uma condição ele seleciona o que será feito. Este comando é muito utilizado para a construção de menus de opções ao usuário, a sua sintaxe em pseudocódigo (VISUALG) é a seguinte:

A palavra-chave ESCOLHA é o comando que conhecemos como SWITCH em várias linguagens de programação. Switch em inglês quer dizer (entre outros significados) chave, então, um comando Switch funciona como uma chave de seleção. Caso é uma palavra-chave reservada que em inglês é Case, o qual é selecionado de acordo com o valor da expressão.

Cada CASO é um bloco de comandos específico que será executado somente se for selecionado. Então, Switch seleciona um CASO e CASO é a seleção de um bloco de comandos específico. Em algumas situações você pode usar o IF/ELSE ou o SWITCH/CASE para resolver o mesmo problema. Apesar de serem comandos parecidos, funcionam de formas diferentes.

O comando funciona basicamente da seguinte forma: o valor de ESCOLHA (Switch) é normalmente uma variável que contém um valor que foi digitado pelo usuário anteriormente. Esse valor será comparado a cada um dos casos, até chegar no caso igual a esse valor e, se o valor não existir nos casos, será direcionado para default. Reforço que o programa é executado de forma sequencial, isto é, o programa é executado linha a linha. Se tivermos 10 casos e o usuário digitar a opção 8, ficará assim:

Caso1 = 8? Falso, não executa nada e vai pro próximo caso.

Caso2 = 8 ? Falso, não executa nada e vai pro próximo caso.

Assim por diante até que: Caso8= 8? Verdadeiro, entra no bloco de comandos executa todas as instruções e depois retorna o comando para o programa principal.

Vamos codificar uma calculadora que permite ao usuário escolher a operação matemática que ele deseja.

Analisaremos a seguir o pseudocódigo:

Linha 3 e 4: são declaradas as variáveis que utilizaremos no programa. X e Y são as variáveis responsáveis por armazenar os valores dos números (operandos). OP é o valor da opção que o usuário selecionará.

Linha 14: LIMPATELA é um comando utilizado para limpar a tela do CONSOLE no momento em que o programa está sendo executado.

Linhas de 16 a 19: Nestas linhas apenas escrevemos na tela do console mensagens que apresentam as opções ao usuário. São mensagens claras e objetivas.

Linhas de 21 a 23: Nestas linhas pedimos ao usuário que escolha a opção que ele deseja e fazemos a LEITURA do valor digitado pelo usuário. OP armazena esse valor para que ele seja usado em seguida, na comparação do caso até encontrar o caso desejado.

Linhas 25 a 27: Este é o CASO 1. Aqui é executada a operação de SOMA. Observe que todos os comandos aqui são utilizados para isso, para calcular a SOMA e
apresentar ao usuário o resultado da soma.

Linhas 29 a 31: Aqui estão os comandos correspondentes ao CASO 2, que é a SUBTRAÇÃO, bem parecido com o CASO1.

Linhas 33 a 35: Aqui estão os comandos correspondentes ao CASO 3, que é a MULTIPLICAÇÃO, bem parecido com o CASO1.

Linhas 37 a 43: Aqui estão os comandos correspondentes ao CASO 4, que é a DIVISÃO. Aqui foi feito o tratamento da divisão por zero, nunca podemos nos esquecer disso quando formos usar a DIVISÃO. Se o divisor for zero, não existe divisão por zero e isso gera um erro! Então, quando o divisor for zero, enviamos uma mensagem para o usuário alertando-o sobre isso. Caso contrário, a divisão ocorre normalmente.

Linha 45: FIMESCOLHA é o comando para finalizar o ESCOLHA/CASO.

For (Para) O comando FOR pode ser utilizado sempre que você precisar repetir um bloco de comandos, Mas cuidado, um bloco de comando deve ser repetido um
número de vezes, isto é, a repetição deve ter um fim, caso contrário, o seu programa ficará em LOOP infinito. Resumindo, se não tiver um fim, aqueles comandos ficarão executando eternamente, o programa ficará travado nisso e ninguém quer isso certo?! Na verdade, não é agradável quando isso acontece e, na maioria das vezes, o LOOP infinito ocorre por um erro de lógica ou um erro de digitação, além disso, deve haver uma forma de CONTAR quantas vezes o FOR foi executado, isto é, precisamos de um contador ou um INCREMENTADOR. No pseudocódigo apresentado aqui, pelo VisuALg, esse incrementador fica IMPLÍCITO, mas a maioria das linguagens de programação, implementa o incrementador de forma EXPLICITA. Mostrarei com o FOR é implementado em outras linguagens para que vocês compreendam melhor.

A estrutura FOR, portanto, repete a execução do bloco em um número definitivo de vezes pois ela possui limites fixos, devemos utilizar essa estrutura quando sabe-se de antemão o número de vezes que o laço deverá ser executado. A estrutura básica é a seguinte:

V é uma variável de controle que precisa ser do tipo inteiro, VI é o valor inicial da variável V e VF é o valor final da variável V.

Fazemos a leitura da seguinte forma: para uma variável V com um valor inicial VI até atingir o valor final VF FAÇA. O comando FOR vai repetir todas as linhas de comando que estiverem dentro do seu bloco até que VF seja alcançado. Quando VF for alcançado, o FOR para e sai do bloco de comandos, retornando o controle para o programa principal. Exemplo de pseudocódigo estrutura FOR:

Vamos analisar o pseudocódigo acima linha a linha:

Linha 1: nome do algoritmo.

Linha 3 e 4: declaração de variáveis.

Linha 6: inicio do algoritmo.

Linha 7: inicializando a variável i com o valor zero.

Linha 8: inicializando a variável soma com zero.

Linha 9: escreve uma mensagem de texto na tela.

Linha 11 a 15: comando For.

Linha 11: Nesta linha é definido o comando FOR – para i de 1 até 10 faça – isto é, para i começando em 1 e até alcançar o valor 10, execute os comandos deste bloco.

Linhas 12, 13 e 14: são os comandos que serão repetidos até que VF seja igual a 10.

Linha 12: Realiza uma soma cumulativa, soma <- i + soma, em que o valor da variável SOMA será sempre somado com o valor da variável I, armazenando o resultado dessa soma em SOMA.

Linha 13: escreve uma mensagem de texto na tela, informando o valor ATUAL da variável i.

Linha 14: escreve uma mensagem de texto na tela, informando o valor ATUAL da variável soma.

Linha 15: fim do bloco de comando PARA.

Linha 17: fim do pseudocódigo.

DO-WHILE

O comando Do-While é parecido com o comando While, mas existe uma pequena diferença entre eles. Os comandos do bloco DO-WHILE só serão executados se a avaliação da condição resultar VERDADEIRA. Essa é a diferença entre esses dois comandos. A sintaxe é a seguinte:

Os comandos do do-while serão repetidos quantas vezes forem necessárias até que a condição definida seja alcançada. Vamos ver um exemplo:

Esse exemplo mostra como somar os números de 1 a 10, sem a necessidade de alguém digitar os números, o próprio programa faz a soma sozinho. São necessárias duas variáveis: i e soma. A variável i funciona como um contador, a cada vez que se entra no do-while, ele soma mais um, e é assim que conseguimos chegar ao valor 10. A variável soma armazena o valor da soma, que é o resultado de soma + i, e também é somado de forma iterativa, ou seja, a cada vez que o do-while é executado.

 A condição de parada desse LOOP é i=10, então, enquanto o valor de i não chegar à 10, o LOOP continuará executando. Quando i for igual a 10, a execução dos comandos do bloco do-while são encerradas, e o controle volta para o programa principal. Esse código faz exatamente a mesma coisa que o código do artigo anterior, mas desta vez estamos usando DO-WHILE e não WHILE ou FOR.

As linhas de 7 a 12: são as que correspondem ao comando do-while que, no VISUALG, no PASCAL e no PSEUDOCÓDIGO é chamado de REPEAT-UNTIL ou REPITA ATÉ QUE.

Vetores e Matrizes

Vetores e Matrizes são estruturas de dados muito simples que podem nos ajudar muito quando temos muitas variáveis do mesmo tipo em um algoritmo. Imagine o seguinte problema: Você precisa criar um algoritmo que lê o nome e as 4 notas de 50 alunos, calcular a média de cada aluno e informar quais foram aprovados e quais foram reprovados.

Conseguiu imaginar quantas variáveis você vai precisar? Muitas né? Vamos fazer uma conta rápida: 50 variáveis para armazenar os nomes dos alunos, (4 * 50 =) 200 variáveis para armazenar as 4 notas de cada aluno e por fim, 50 variáveis para armazenar as médias de cada aluno. 300 variáveis no total, sem contar a quantidade de linhas de código que você vai precisar para ler todos os dados do usuário, calcular as médias e apresentar os resultados. Mas eu tenho uma boa notícia para você. Nós não precisamos criar 300 variáveis! Podemos utilizar Vetores e Matrizes (também conhecidos como ARRAYs)!

Vetor (array uni-dimensional) é uma variável que armazena várias variáveis do mesmo tipo. No problema apresentado anteriormente, nós podemos utilizar um vetor de 50 posições para armazenar os nomes dos 50 alunos.

Matriz (array multi-dimensional) é um vetor de vetores. No nosso problema, imagine uma matriz para armazenar as 4 notas de cada um dos 50 alunos. Ou seja, um vetor de 50 posições, e em cada posição do vetor, há outro vetor com 4 posições. Isso é uma matriz.

Cada item do vetor (ou matriz) é acessado por um número chamado de índice.

Podemos ver na imagem acima que cada posição do vetor é identificado por um número (chamado de índice), no caso da matriz são dois números (um na vertical e um na horizontal). Tomando o exemplo apresentado anteriormente, vamos implementar o algoritmo utilizando o Visualg. Nele, vamos usar algumas estruturas básicas já apresentadas aqui, tais como A estrutura de repetição PARA e a estrutura de decisão SE-ENTÃO-SENÃO.

Repare que os arrays (vetores ou matrizes) aliados a estrutura de repetição PARA é um ótimo recurso para algoritmos que precisam de muitas variáveis do mesmo tipo