Unidade 1 – Introdução a Algoritmos e Linguagens (10 horas)
• Noções de Lógica de Programação e Algoritmos • Fases Básicas da Construção de Algoritmos.
• Representação de Algoritmos: fluxogramas, português estruturado e linguagem algorítmica (pseudocódigo)
• Conceitos Básicos de Lógica de Programação e Linguagens de Programação
Unidade 2 – Linguagem Algorítmica (20 horas)
• Identificadores
• Constantes, Variáveis e Tipos de Dados
• Operadores e Expressões (aritméticos, relacionais e lógicos) • Instruções Primitivas (entrada e saída)
• Sintaxe e Semântica
• Estrutura seqüencial (início/fim)
• Estruturas de Decisão (simples, composta e múltipla) • Estruturas de Repetição (condicional e com contador) • Dicas para escrever bons algoritmos
Cada unidade conterá exercícios para fixação do assunto apresentado, assim como indicações de leituras adicionais. A Unidade 1 exigirá 10 horas de sua dedicação e a Unidade 2, o dobro de dedicação (20 horas).
Unidade 2 – Linguagem
Algorítmica
A linguagem algorítmica consiste na definição de uma pseudolinguagem (também chamada de pseudocódigo) de programação para representar algoritmos. Esta pseudolinguagem, apesar de fazer uso de um português estruturado (o português que conhecemos, porém com regras para formação do algoritmo), se assemelha muito ao modo como os programas são escritos. Por isso, essa representação permite que os algoritmos nela representados possam ser traduzidos, quase que diretamente, para uma linguagem de programação (bom, não?).
A linguagem algorítmica não tem uma padronização. Você vai ver que em cada livro que você consultar, você poderá encontrar a linguagem com alguma modificação no formato. Porém, todos os formatos têm os mesmos tipos de estruturas, apenas escritas de forma um pouco diferente (por exemplo, em um tipo você pode encontrar a palavra fim para marcar o final do algoritmo e em outro tipo, como será o nosso caso, a palavra usada será fimalgoritmo). Para o nosso estudo, vamos adotar a linguagem algorítmica que é usada dentro da ferramenta VisuAlg (http://www.apoioinformatica.inf. br/visualg/objetivos.htm), uma vez que, posteriormente, vamos utilizar essa ferramenta para a compilação dos nossos algoritmos. E qual o formato dessa linguagem, afinal? O formato geral de um algoritmo em linguagem algorítmica está representado no Quadro 4.
Algoritmo “<nome_do_algoritmo>”
[<declaração_de_constantes>] [var <declaração_de_variáveis>] [<definição de sub-algoritmos>]
inicio
<corpo_do_algoritmo ou seja, as instruções, comandos e cálculos>
fimalgoritmo
Quadro 4 - Formato geral de um algoritmo em linguagem algoritmica
Neste quadro, os trechos que estão entre os sinais < > são obrigatórios e os que estão entre colchetes [ ] são opcionais. Agora,
vamos explicar, resumidamente, o código do Quadro 1:
• Algoritmo é uma palavra que indica o início da definição de um algoritmo em forma de pseudocódigo.
• <nome_do_algoritmo> é um nome simbólico dado ao algoritmo com a finalidade de distinguí-los de outros algoritmos que você possa vir a criar. Esse nome deverá vir entre aspas.
• <declaração_de_constantes> - é uma parte opcional do algoritmo e indica a área onde será feita a declaração dos valrores constantes (que não vão mudar durante a execução do algoritmo). Mais detalhes, daqui a pouco.
• var <declaração_de_variáveis> – é uma parte opcional do algoritmo e indica a área onde será feita a declaração de variáveis (que vamos saber o que é daqui a pouco) do algoritmo. Uma vez que essa parte exista no algoritmo, deve- se indicar a área de declaração com a palavra var e, depois dela, obrigatoriamente, especificar que variáveis serão usadas no algoritmo. Paciência que explicaremos isso em detalhes, mais a frente.
• <definição de subalgoritmos> consiste de uma área opcional do algoritmo onde são definidos os subalgoritmos, ou seja, algoritmos que podem ser criados dentro de outros. Isso será assunto do módulo 2. Logo, por agora, apenas saiba que esse seria o lugar onde os sub-algoritmos, também chamados de sub-rotinas entrariam.
• início e fimalgoritmo são respectivamente as palavras que delimitam o início e o fim do conjunto de instruções do corpo do algoritmo, que é o lugar onde vai ocorrer todo o processamento (realização de cálculos, leituras de dados, saída de dados, operações, etc).
No Quadro 1, as palavras indicadas em negrito são palavras reservadas da linguagem algorítmica. Você poderia então perguntar: e o que são palavras reservadas?
Palavras Reservadas são palavras que fazem parte da estrutura de uma linguagem (como, por exemplo, a linguagem algorítmica). Ou seja, elas têm significados pré-determinados dentro da linguagem
linguagem algorítmica a palavra Algoritmo é uma palavra reservada que indica o início da definição do algoritmo. Dessa forma, você não pode usar essa palavra em nenhuma outra parte do algoritmo: nem na declaração de variáveis, nem como parte das instruções, comandos, cálculos ou expressões do corpo do algoritmo. A utilização indevida de palavras reservadas causam erros no processo de compilação. Apenas para ilustrar, as palavras reservadas da linguagem algorítmica que vamos utilizar são:
aleatorio enquanto funcao para
algoritmo entao inicio passo
arquivo escolha int pausa
asc escreva inteiro pos
ate escreval interrompa real
carac faca leia procedimento
caracpnum falso limpatela repita
caractere fimalgoritmo logico retorne
caso fimenquanto maiusc se
compr fimescolha minusc senao
copia fimfuncao mod timer
cronometro fimpara nao var
debug fimprocedimento numpcarac vetor
e fimrepita ou verdadeiro
eco fimse outrocaso xou
Você não precisa se preocupar em decorar essas palavras! Nem nós vamos explicar todas elas agora. Essas palavras irão aparecendo no decorrer das explicações dessa unidade e, também, do próximo módulo. É só ter paciência, ok?
Ah, uma coisa que ia esquecendo, a linguagem algorítmica não faz distinção entre letras maiúsculas e minúsculas. Ou seja, a palavra Algoritmo seria reconhecida dentro da linguagem da mesma forma que a palavra algoritmo. Porém, há linguagens (como por exemplo, C e Java) onde essas palavras seriam consideradas diferentes.
Agora, também, apenas para ilustrar, ou seja, você não precisa se preocupar em entender esse código agora, vamos dar um exemplo do uso da linguagem algorítmica para aquele caso que já apresentamos em descrição narrativa e fluxograma de “calcular a média de dois alunos a partir de duas notas dadas”. Esse exemplo pode ser visto no Quadro 5.
Algoritmo “calcularMedia” var N1, N2, Media : real inicio leia(N1, N2) Media <- (N1 + N2)/2 se media>=6 entao escreva(“aprovado”) senao escreva(“reprovado”) fimse fimalgoritmo
Quadro 5 - Exemplo de uso da linguagem algorítmica para calcular a média de um aluno
Como afirmei antes: não se assuste! Mais à frente, vamos explicar melhor cada pedacinho desse código. E, logo, logo, ele vai ficar mais claro para você.