| Parte 2 >>> |
|
|
Se esta página lhe ajudar, considere fazer uma doação |
Introdução
A maioria das pessoas que querem aprender a programar começam de maneira errada. Arrumam um compilador ou ambiente de programação e já vão metendo a mão na massa. Esta é a maneira mais frustrante de aprender a programar. Logo, logo estas pessoas vão esbarrar em obstáculos que só serão transpostos com a análise cuidadosa do problema e com a construção de um algoritmo. A lógica de programação e a construção de algoritmos são conhecimentos fundamentais para programar. Construído o algoritmo, você pode, então, codificar seu programa em qualquer linguagem.
"Conte-me e eu esqueço
Mostre-me e eu lembro
Deixe-me fazer e eu aprendo"
Confúcio
Isto é verdade. E baseado nisto é que você deve assimilar as regras básicas da construção de algoritmos e cair em campo para fazer os exercícios. Não olhe as respostas antes. Queime os neurônios e tente até a cabeça doer. No final confira com as respostas. Porém, lembro que muitas vezes um problema pode ser resolvido de várias maneiras. A solução mostrada aqui é apenas uma delas.
Caso você já conheça alguma linguagem de programação, é interessante codificar suas soluções.
O que é um algoritmo
Basicamente, um algoritmo é um conjunto de passos a serem seguidos para a resolução de um problema.
Digamos que você quer que o seu programa calcule a média aritmética entre quatro notas. Para resolver este problema você poderia dar as seguintes ordens ao computador:
- Receba as quatro notas do usuário;
- Calcule a soma destas quatro notas;
- Divida o resultado desta soma por quatro.
Simples não ???
Porém existem algumas regras e convenções que facilitam a nossa vida e nos ajudam a resolver problemas mais complexos.
Sentimos dificuldade em organizar nossos pensamentos e fazer o algoritmo. Para melhorar isso devemos treinar, fazer muitos algoritmos e com o passar do tempo ficaremos com o raciocínio bem flexível.
Após feito o algoritmo você pode codificar seu programa em qualquer linguagem, observando, é lógico, as possibilidades e limitações da linguagem.
Existem várias formas de representar um algoritmo. Aqui utilizarei uma representação em forma de texto. Creio que esta representação facilita na hora da codificação devido a semelhança entre ela e a sintaxe das diversas linguagens.
Tipos de dados
Basicamente existem quatro de tipos de dados. São eles: inteiro, real, caracter e lógico.
Inteiro representa todo e qualquer número que pertença ao conjunto dos números inteiros. Na prática são os números positivos e negativos sem partes decimais. Exemplos: 2; -4; 145; -354.
Real representa todo e qualquer número que pertença ao conjunto dos números reais. Na prática são os números positivos e negativos que tem parte decimal. Exemplos: 3,545; -2,6; 0,157.
Caracter é qualquer dado composto por um conjunto de caracteres alfanuméricos. Os caracteres alfanuméricos são os números, as letras e os caracteres especiais (!,@,#,$,%, etc...). Exemplos: 3d; valor1; nome.
Lógico é um tipo de dado que só pode assumir dois valores.
Constantes e variáveis
Constante, como o nome indica, é um dado que não sofre nenhuma variação durante todo o algoritmo.
As constantes do tipo caracter sempre devem ser colocadas entre aspas ( " ). Exemplo: "Isto é uma constante caracter".
Convencionaremos que constantes do tipo lógico poderão assumir um dos seguintes valores: verdadeiro (V), ou falso(F).
Variável, como o nome indica, é um dado que tem a possibilidade de variar, ou seja, ter seu valor alterado durante a execução do algoritmo.
As variáveis do tipo caracter sempre devem ser colocadas entre aspas ( " ). Exemplo: "Isto é uma variável caracter".
Convencionaremos que variáveis do tipo lógico poderão assumir um dos seguintes valores: verdadeiro (V), ou falso(F).
Nomeando constantes e variáveis
Para nomear constantes e variáveis devemos obedecer as seguintes regras:
- Os nomes devem começar por um caractere alfabético;
- Podem ser constituídos de caracteres alfabéticos ou numéricos;
- Não devem conter caracteres especiais;
- Não devem ser utilizados nomes reservados da linguagem de programação que se vai usar.
Exemplos:
1. Nomes válidos: delta, X, BC4R, K7, notas, media, ABC, PI, ICMS.
2. Nomes inválidos: 5X, E(13), A:B, X-Y, Nota/2, AWq*, P&AA
Como regra de estilo eu costumo não utilizar acentuação, usar apenas letras maiúsculas para nomear as constantes e apenas letras minúsculas para nomear as variáveis. Mas, como gosto não se discute, fique livre para adotar estas regras ou não.
Declaração de variáveis
As variáveis devem ser declaradas antes do seu uso no algoritmo. Declarar uma variável é definir seu tipo e seu nome. Para a declaração de variáveis usaremos a seguinte sintaxe:
TIPO DE DADO: VARIÁVEL1, VARIÁVEL2, ....., VARIÁVELn;
Exemplos:
inteiro: x;
caracter: nome, endereco, data;
real: PI, preco;
lógico: resposta, opcao;
A declaração das variáveis deve estar no início do algoritmo.
Duas variáveis não devem ter o mesmo nome.
Operadores aritméticos
Operadores aritméticos são os sinais que representam as operações básicas da matemática.
OPERADOR |
FUNÇÃO |
EXEMPLO |
| + | Adição | 2 + 3, nr1 + nr1 |
| - | Subtração | 5 - 3, b - c |
| * | Multiplicação | 12 * 4, x * y |
| / | Divisão | 10 / 2, x / y3 |
| % | Resto da divisão | 9 % 4 resulta em 1 27 % 5 resulta em 2 |
| pot (x,y) | Potenciação. Significa x elevado a y | pot(3,2) |
| raiz(x) | Raiz quadrada de x | raiz(25) |
Prioridade das operações:
1. Parênteses mais internos
2. pot, raiz
3. *, /, %
4. +, -
Dentro da mesma prioridade as operações são executadas da esquerda para a direita.
Para alterar a prioridade utilize parênteses.
Operadores relacionais
Operadores relacionais são sinais utilizados para realizar comparações entre dois valores de mesmo tipo.
Os valores comparados podem ser constantes, variáveis ou expressões aritméticas.
| OPERADOR | FUNÇÃO | EXEMPLO |
| = | igual a | 5 = 5, x = y |
| > | maior que | 8 > 4, x > y |
| < | menor que | 1 < 5, x < y |
| >= | maior ou igual a | 11 >= 5, x >= y |
| <= | menor ou igual a | 2 <= 5, x <= y |
| != | diferente de | 34 != 5, a != b |
O resultado obtido sempre será um valor lógico. Por exemplo, analisando a operação a + b = c, o resultado será verdadeiro se o valor da expressão aritmética a + b for igual ao conteúdo da variável c. Caso o resultado da expressão a + b seja diferente de c o resultado será falso.
Exemplos:
a) 2 * 4 = 24 /3 ® resultado V,
pois 2 * 4 = 8 e 24 / 3 = 8;
b) (14 resto 4) < 1 ® resutaldo F,
pois 14 resto 4 = 2 e 2 não é menor que 1;
c) (2 +(8 resto 7)) >= 3 ®
resultado V, pois 2 + (8 resto 7) = 2 + 1 = 3 e 3 é maior ou igual a 3.
Operadores lógicos
Os operadores lógicos são sinais usados para montar operações relacionais compostas. São eles: não, e e ou
Exemplo: (notafinal >= 7,0) e (prestacao = V)
O resultado da operação acima será V se a variável "notafinal" for
maior ou igual a 7,0 e a variável lógica "prestacao" for igual a V.
Prioridade de execução entre os operadores lógicos
1. não
2. e, ou
Prioridade de execução entre todos os operadores
1° parênteses mais internos
2°operadores aritméticos
3° operadores relacionais
4° operadores lógicos
Comando de atribuição
Este comando atribui um valor a uma constante ou variável. O valor deve ser compatível com o tipo de dado da constante ou variável, ou seja, para uma constante ou variável inteira deve ser atribuído um valor inteiro; para uma constante ou variável real deve ser atribuído um valor real; o mesmo ocorrendo com o tipo caracter e o lógico.
Sintaxe: VARIÁVEL <== VALOR;
VALOR pode ser um valor propriamente dito ou uma expressão.
Exemplos:
x <== 34;
notafinal <== ((nota1+nota2+nota3)/3);
LIGADO <== V;
preco <== 25,15;
Comandos para entrada e saída de dados
Para a entrada de dados adotaremos o comando ler, cuja finalidade é receber os dados que serão processados. Sua sintaxe é:
ler (VARIÁVEL1, VARIÁVEL2, ..., VARIÁVELn);
Para a saída de dados utilizaremos o comando imprimir, cuja finalidade é exibir os dados processados. Sua sintaxe é:
imprimir (VARIÁVEL1, VARIÁVEL2, ..., VARIÁVELn);
Você pode exibir texto juntamente com as variáveis. Para isso coloque o texto entre aspas ( " ). Exemplo:
imprimir ("Seu nome é :", nome);
Inserindo comentários
A fim de dar ao seu algoritmo um entendimento melhor por parte de outros leitores, ou até para você mesmo, você deve sempre comentá-lo. Para inserir um comentário utilizaremos os comando /* (barra e asterisco) e */ (asterisco e barra). O que vier escrito entre estes dois comandos deve ser interpretado como comentário e não haverá ação alguma por parte do programa. Exemplo:
preco¬ precobruto +
IMPOSTO;
/* o IMPOSTO acima deve seguir a alíquota do ICMS. */
imprimir ("O preço do produto é", preco);
A linha do meio do trecho de algoritmo acima não dá nenhuma ordem pois é apenas um comentário.
Blocos de instruções
Um bloco de instruções é um conjunto de comandos com uma função definida. O algoritmo é formado de um ou mais blocos de instruções. O bloco de instruções também define os limites para o conhecimento de constantes e variáveis. Uma constante ou variável definida em um bloco só será conhecida dentro deste.
Para delimitar um bloco utilizamos os comandos início e fim. Exemplo:
início
inteiro: nota1, nota2; /* declaração das variáveis * /
imprimir ("Entre com a primeira nota :");
ler (nota1);
imprimir ("Entre com a segunda nota :");
ler (nota2);
imprimir ("A soma das duas notas é ", (nota1+nota2));
fim
Estrutura básica de um algoritmo
O algoritmo como um todo é um bloco de instruções, então deve ser delimitado pelos
comandos início e fim.
As constantes e variáveis devem ser declaradas no início.
Os comandos são executados sequencialmente de cima para baixo e da esquerda para a
direita, assim, devem ser escritos nesta sequência.
Cada comando deve terminar com ; (ponto-e-vírgula).
Abaixo segue um modelo da estrutura básica de um algoritmo:
início
/* declaração das constantes e variáveis*/
inteiro: var1, var2;
real: var3;
caracter: nome;
/* comandos */
comando 1;
comando 2;
comando 3;
..........
..........
..........
comando n;
fim
Observe que os comandos delimitados por início e fim estão avançados de dois espaços. Isto será muito utilizado pois facilita o entendimento do algoritmo.
Primeiros algoritmos
Abaixo seguem três algoritmos. Como você está iniciando (é o que suponho) analise-os com cuidado para entender a coisa.
Média aritmética entre quatro notas
início
/* Declaração das variáveis */
real: nota1, nota2, nota3, nota4, soma, media;
/* Comandos * /
/* Entrada de dados */
imprimir ("Entre com a primeira nota :");
ler (nota1);
imprimir ("Entre com a segunda nota :");
ler (nota2);
imprimir ("Entre com a terceira nota :");
ler (nota3);
imprimir ("Entre com a quarta nota :");
ler (nota4);
/* Processamento */
soma <== (nota1 + nota2 + nota3 + nota4 );
media <== soma / 4 ;
/* Saída de dados */
imprimir ("A média aritmética é ", media);
fim
Observe o uso dos comentários para tornar o algoritmo mais legível.
Cálculo da área de um quadrado
início
real: lado, area;
imprimir ("Entre com a medida do lado do quadrado :");
ler (lado);
area <== lado * lado;
imprimir ("A área do quadrado é ", area);
fim
Cálculo de juros
início
real: preco, taxa, juros, total;
imprimir ("Entre com o preço :");
ler (preco);
imprimir ("Qual a taxa de juros (%)?");
ler (taxa);
juros <== preco *
(taxa / 100);
total <== preco + juros;
imprimir ("O total a pagar é ", total);
fim
|
|
Se esta página lhe ajudou, considere fazer uma doação |
| Parte 2 >>> |