sábado, 30 de abril de 2011

Introdução ao Algoritmo - Portugol

Você quer entrar em casa. Para abrir ela não basta virar a maçaneta; antes é necessário destrancá-la. Então, você pega a chave no seu bolso, encaixa na fechadura, gira no sentido anti-horário (supondo que o lado de fora da maçaneta fique no lado direito da porta), então, pega a maçaneta, gira ela também, empurra a porta pra frente, tira a chave, depois entra, fecha a porta, coloca a chave na fechadura do lado de dentro e tranca.
O computador é burro. Se você não explicar pra ele exatamente o que você quer feito, ele não vai saber fazer. Pra isso existe o Algoritmo, que é a sequência de instruções, e o Portugol, que é a linguagem do português estruturado.
Vamos enumerar tudo o que foi descrito acima:
  1. Pegar a chave no bolso;
  2. Encaixar na fechadura;
  3. Destrancar a porta;
  4. Abrir a porta;
  5. Entrar na casa *Edit: corrigido após sinalização de uma leitora*
  6. Tirar a chave da fechadura;
  7. Fechar a porta;
  8. Trancar a porta.
A ideia básica é mais ou menos essa.

Pascal - Comandos Básicos e Comandos Condicionais

Neste post, citaremos alguns comandos básicos que encontra-se no pascal.

declarar variável (simples):
primeiramente, você deverá colocar depois da linha "program" a palavra "var" e enfim declarar as variáveis do programa.

Program pascal
var
idade:integer
num:real;
nome:string;
Begin

End.

neste exemplo, eu declarei as variaveis idade (como numero inteiro(integer)), num (como numero real(real)) e nome (como tipo de "palavra"(string))

posteriormente mostraremos mais tipos de variáveis, mas neste post só utilizaremos estes tipos de variáveis.

comandos(básicos):

:=

Esse sinal significa "recebe", por exemplo:
idade := 5
isso significa que a variavel "idade" receberá o valor 5

Write();

Serve para você mostrar/imprimir na tela o que tiver dentro do parênteses, por exemplo:
Write('você tem ',idade,' anos');
nesse exemplo, aparecerá exatamente "você tem 5 anos"
outro exemplo:
Write('escreva seu nome ');
obs.: existe o comando Writeln(); que tem o mesmo fundamento do Write(); porem quando o Writeln(); é usado, a barra de escrita estará na linha de baixo, não do lado

Read();

Read(); serve para você atraibuir um valor, que o usuário digitará, à uma variável. exemplo:
Writeln('Qual seu nome?');
Read(nome);
Writeln('Seu nome é ',nome);

neste exemplo aparecerá:

Qual seu nome?
[aqui o usuário digitará algo e apertará enter]
Seu nome é [o nome que o usuário digitou]

osb.: existe tbm o readln(); que tem o mesmo propósito do writeln(); pular uma linha.

por enquanto nosso programa está assim:

Program Pzim ;
var
idade:integer;
num:real;
nome:string;
Begin
writeln('Qual seu nome?');
readln(nome);
write('Seu nome é ',nome,);
End.

Condicionais

condicionais são os comandos que nos criam possibilidades.

if (condição) then
begin
comando1
comando2
.
.
.
end;

essa condicional funciona assim: Se tal_coisa então fazer_coisa fim
lembram do "Se sede então beber_agua"?
então, essa linha de programação encaixa-se aqui

if (sede = true) then
begin
beber_agua();
end;

dica: SEMPRE que existir um "begin" deverá existir um "end" não pode existir mais "begin" que "end" e vice-versa

if ... then begin
...
end
else begin
comando
end;

else significa se não ... ou seja se a resposta do "se" voltar negativa (false), o programa pulará todo a parte do "se" e irá direto para o "Se não" e executará os comandos. por exemplo:

if (idade > 18) then
begin
write('você é adulto');
end
else begin
clrscr;
writeln('você não é adulto');
end;

no nosso caso, idade é 5, então o programa perguntará: idade > 18? a resposta é negativa, logo pulará direto para o else e imprimirá na tela a frase "você não é adulto"

if ... then begin
...
end
else if (outra condição) then begin
comando;
end;
(e se quiser colocar outro else aqui pode colocar ...)

else if sinifica "Se não se" ou seja se sua idade não for maior que 18 ela pula pro "se não se" e novamente fará outra pergunta:


if (idade > 18) then
begin
write('você é adulto');
end
else if (idade > 13) then
begin
clrscr;
writeln('você é adolescente');
end
else begin
clrscr;
writeln('Você é criança')
end;

primeira pergunta: idade > 18? não?
se não se: idade > 13 e idade <= 18? (como a idade não é maior que 18, ela só pode ser menor ou igual, então a segunda parte entra automaticamente no "se não se") não?
se não: Você é criança

Operadores matemáticos

Essa parte é uma parte fácil, mas que pode-se tornar muito complicado!

+
símbolo de adição. exemplo: 5 + 9 = 14
-
símbolo de subitração. exemplo: 7 - 3 = 4
*
símbolo de multiplicação. exemplo: 2 * 8 = 16
/
símbolo de divisão (restorna valores com vírgula). exemplo: 6 / 3 = 2

primeiro programa: IMC - índice de massa corporal
Faça um programa que leia a altura e peso da pessoa, e imprima a massa corporal

fórmula para massa corporal: peso/altura² (altura em metros)

resposta:

Program Pzim ;
var
peso:integer; // peso inteiro, mas pode ser real também
altura,imc:real; // altura e imc deve ser real, ja que será colocado número com vírgula
Begin
writeln('Insira seu peso'); //imprime na tela a frase "insira seu peso" para que o usuário possa entender o que é para fazer
readln(peso); //armazena na variável peso o número que o usuário colocou
writeln('Insira sua altura em metros'); //o mesmo do peso
readln(altura); //o mesmo do peso
imc := peso/(altura*altura); // insiro a fórmula do IMC
write(imc); //imprime o IMC na tela
End.


Aqui vai um desafio:

quero que o programa diga ao usuário se ele tem massa corporal em excesso (acima de 24,5), se precisa engordar (abaixo de 17,5) ou se esta no ideal

Introdução ao Pascal

Para você começar a programar, você não precisa de conhecimento na linguagem tanto quanto precisa de conhecimentos lógicos, e nesse post mostrarei algumas dicas de como pensar como um programa ... ou melhor fazer com que o programa pense como nós



Suponhamos que precisemos fazer um joguinho estilo The Sims, onde o personagem precise ir ao banheiro, dormir, comer, beber agua e etc...


como seria o pensamento lógico?


primeiro a pergunta "Estou com sede?" se a resposta for positiva (true) então PegarCopo();, ColocarAgua(); e então finalmente Beber(); ... Atulizar();>


Traduzindo essa frase meio estranha seria algo do tipo... Uma atualização cerebral acontece, você esta com sede, você pega um copo com agua e enche-o de agua, e finalmente bebe a agua, outra atualização cerebral acontece... E assim por diante


Outra situação: você esta brincando de pique-esconde, de repente escolhem você para contar até 10 e finalmente começar a procurar


começar do 0 ... enquanto numero_contado diferente de 10 então continuar contando


quando acabar de contar, então começar a procurar;


como seria isso em linguagem básica (pascal)


cont := 0;
while cont <> 10 do
begin
...cont := cont + 1;
end;
procurar();


e aqui termina o post sobre dicas de lógica básica de programação


espero que tenha ajudado

Bem-vindos

Aqui começa o blog que trará exercícios, dicas e tutoriais sobre linguagem de programação e coisas sobre informática.
fiquem ligados :)

  By: Amumu & Joker