sábado, 28 de maio de 2011

Exercício Pascal

Faça um algorítmo que leia 10 nomes e idades, caso a idade seja maior que 21, o programa lerá o número do telefone do sujeito, caso contrário, o programa perguntará o nome dos pais, e no fim imprimir o Nome, idade, telefone/nome dos pais

código fonte

Jogo em flash - Pouse o avião

gente, estou postando o código-fonte de um jogo que fiz recentemente, por enquanto ele é simples e é fácil de estudar.

não colocarei as explicações do código pos fiz com minha própria lógica, seria horrível ter um programador que não usa a própria lógica, portanto não a explicarei

o objetivo do jogo é simples, você apenas deve pousar o avião, para fazê-lo subir, apenas suba seu mouse ...

Clique aqui para jogar

Clique aqui para ver o código fonte

quarta-feira, 11 de maio de 2011

Flash - AS3 - Matriz e Time

E ai galera, aqui vai mais um post sobre AS3, criação de Matriz e Timer, vamos la!

--

MATRIZ

var herois:Array = new Array(); // cria a matriz
herois = [
["Ryu","Ken","Bison"], //atribui os seus valores...
["Sagat","Vega","Zangief"] // a vírgula determina que existe uma array dentro de um array
]
trace(herois[0][0]); // linha e coluna

trace ("a matriz herois tem ",herois.length," linhas e ",herois[0].length," colunas"); // quantos objetos tem na matriz

--
Criação de tempo

var tempo:Timer = new Timer(1000,5) // é ativado 5 vezes a cada 1 segundo
tempo.start() // começa o tempo
tempo.addEventListener(TimerEvent.TIMER, time)//ativa a função a cada vez que o tempo chegar no tempo determinado

function time (e:TimerEvent):void // usa-se o TimerEvent para importar
{
//comandos
trace(tempo.currentCount); // currentcount significa em qual ciclo o tempo esta, nesse caso irá imprimir 1 2 3 4 5 um número a cada 1 segundo ...
}

--

utilização do timer...um exemplo fácil é utilizá-lo em criação de partículas, não sei se é o jeito correto de criar partículas no palco, mas um dos métodos poderia ser esse ...
você pode criar chuva ... neve ... núvens ...

basta criar um timer e uma função que criará o elemento, então a cada um determinado tempo poderá criar o elemento.

a utilização da matriz é meio confusa, mas a Matriz, nada mais é do que uma variável que pode conter vários valores da mesma, ela é como uma grade, separa-se em linha e coluna. por exemplo: uma matriz pode ser 6x6 (6 linhas e 6 colunas) 3x2 (3 linhas e 2 colunas) e assim em diante. em uma matriz você pode determinar a linha 4 (por exemplo) como variável de texto e a 1 (por exemplo) como variável de inteiro e então ligá-las ... por exemplo: temos o jogador 1 2 e 3 e respectivamente eles tem 100 200 e 300 pontos, em uma matriz ficaria:
jogador 1[0,0]jogador 2[0,1]jogador 3[0,2]
100 [1,0]200 [1,1] 300[1,2]

perceba que que a coluna 0 (a primeira) é reservada para o jogador 1, logo terá em uma única variável várias para guardar várias informações de um mesmo tipo dentro de uma única variável

Obs.: não publicarei o código fonte para que o usuário mesmo digite o próprio código

Exercício Pascal

E ai galera, aqui é o joker e eu estou aqui passando alguns exercícios com a resolução (óbviamente) para vocês treinarem



Primeiramente eu gostaria de dizer que eu não sabia em que dificuldade colocar, logo adicionei em dois marcadores.



1)Faça um algorítmo que leia o número de habitantes da Cidade A e depois da Cidade B, peça a porcentagem em que a população cresce anualmente e então calcule o tempo em que a Cidade A demorará para ultrapassar a Cidade B em anos.

Resolução



2)Faça um algorítimo que leia um número e diga se ele é primo ou não



Resolução



Qualquer dúvida, postem nos comentários ou adicionem-me no msn, gabriel_hbcs@hotmail.com

se eu puder esclacerei-as-ei

sexta-feira, 6 de maio de 2011

HTML - Tabelas e Linkagem

Primeiramente, HTML não vai ter nível avançado.
Ele é simples demais pra isso.
Ao invés disso, do HTML vamos para JavaScript/CSS/SeiLáQueOutrasLinguagensVamosUsarNaInternet.
Agora vamos falar de tabela.
Na verdade, estou com preguiça, estou bem cansado pois cheguei em casa tem só umas 3 horas, e nesse tempo passei a limpo duas matérias pra uma amiga que faltou hoje.
Vou Uploadar os 4 arquivos .html que fizemos hoje, junto da mini-explicação que já tinha escrito no Word pra minha amiga que faltou, e vocês aprendam um pouco.
Em caso de dúvida, comente, que eu responderei.
Tabelas
Principal & Links & Contato (esses 3 são exemplo de linkagem entre páginas. Salve os 3 no computador na mesma pasta e veja funcionando.)
No segundo link as tabelas estão exibidas corretamente.
É interessante ler ambos, o que um não diz, o outro complementa.

quinta-feira, 5 de maio de 2011

Flash - AS3 basico

Aqui mostrarei algumas coisas básicas que apareciam no AS2 e transformarei-as em códigos para AS3

Botão

O botão feito no AS2 era muito simples de fazer, certo bastava criar um novo Objeto como Botão

Selecioná-lo e começar a programar



nesse caso, programeio-o para escrever "botão" na aba "saída" ao apertá-lo
código:
on (release) {
trace("botão");
}


Em AS3, o mesmo código fazendo a mesma utilidade no mesmo objeto sairia um pouco mais complicado. começando por:

criar o botão e convertê-lo para MovieClip (ou até mesmo para botão, caso queira que fique mais bonitinho)



agora devemos instancia-lo



depois deveremos clicar no frame em que localiza-se o botão e ir na aba de ações para finalmente programar:



Botao_mc.addEventListener(MouseEvent.MOUSE_DOWN, clique);

o que significa essa linha?

significa que quando um evento do mouse acontecer, no caso o click do mouse(MOUSE_DOWN) no moviclip chamado Botao_mc, executará a função chamada "clique"

agora que chamamos a função clique quando o Botao_mc for clicado, deveremos criar a função



function clique (e:MouseEvent):void
{
trace("botao");
}

primeiramente, criamos uma função com o código function, e em seguida devemos colocar o nome da função, entre parênteses devemos colocar o tipo da função, e como função é um tipo de variável, deveremos dar um tipo pra ela, nesse caso é :void que significa que é uma 'variável' inútil, ela não retornará valores nenhum para o exterior da função

agora que criamos a função, deveremos criar o corpo dela, como estou baseando-me em um código simples de AS2, apenas coloquei um trace();, mas no comando você pode colocar qualquer coisa.

e aqui finalizo o tutorial sobre AS3 Flash - básico, bons estudos

Flash - mudanças

e ai galera, neste post mostrarei a vocês algumas modificações que ocorreram na atualização do ActionScript 2 para o ActionScript 3 primeiramente uma simples introdução
A linguagem de programação ActionScript é usada e desenvolvida pela Adobe, é a linguagem cujo o programa Flash utiliza atualmente. O ActionScript é utilizado para orientar objetos, ou seja, sua base é em objetos do palco.
Mudanças
Várias mudanças ocorreram, algumas boas e outras ruins, e a primeira que citarei é o _root. do AS2. o _root. era utilizado basicamente para chamar variáveis externas, agora no AS3 não existe mais esse comando, tornando desnecessário chamar variáveis externas através de um comando.
Algumas outras mudanças ocorreram apenas na escrita, como por exemplo o hitTest (as2) que mudou para hitTestObjet (as3), por exemplo
Uma mudança drástica que houve no ActionScript, é que agora os objetos não podem mais ter códigos de programação, ou seja, todo o código deve ser colocado unicamente nos frames e não mais em MovieClips ou Botões ... as mudanças que ocorreram no AS3 é para melhorar o desenvolvimento do programa, melhorou com certeza, mas muitos programadores estão tendo dificuldades para mudar para o AS3, mas quem ja se adaptou com certeza aprova o AS3.
Funções
no AS2 ja existiam as famosas Functions(){} mas agora no AS3 tornou-se quase obrigatório saber fazer para pelo menos fazer uma homepage ou um jogo, por exemplo para quem ja sabia funções no AS2 com certeza não encontrará dificuldades nesse tópico, mas para quem é iniciante no ramo, aconselho dar uma lida em algoritmos e etc... para finalizar, vou deixar minha opinião: como sou praticamente leigo no assunto (ainda estou aprendendo) eu diria que o AS3 facilitará bastante meu futuro, apesar de eu estar com algumas dificuldades, tentarei assemelhar alguns comandos de Pascal/Delphi/Java/AS2 com o AS3 para que eu possa situar-me a essa linguagem o mais brevemente possível e continuar praticando assim como eu praticava com o AS2.

Algoritmo - Leia 10 números e retorne o maior

Parece que na prova do 1o ano de LTP, caiu um algoritmo pedindo para que se leia 10 números e retorne qual é o maior número. Ou foram isso que fontes não muito confiáveis minhas me disseram... (na verdade, foi o próprio Joker que me falou saiudhoesuiad)
*Edit: tenho bons motivos mesmo pra falar que são fontes não muito confiáveis... ele estava me zuando quando falou que era essa a questão da prova... E eu ainda acreditei e fiz tudo isso... Bem, vai ficar aqui como material didático...*
Enfim, mão na massa!
Supondo que você não queira ver a explicação, pule para o final e pegue o código-fonte
Vamos ver... 1o passo é o diagrama de variáveis
Ele pede que sejam lidos 10 números e seja impresso o maior número -> colocando isso num exemplo real, imagine assim: um amigo seu vai te falando vários números, e você tem que falar no final qual foi o maior número que ele falou... você não precisa lembrar dos outros números... ele fala 1, depois fala 5 [5 é maior que 1, você pode esquecer do 1], 3[3 é menor que 5, mantém o 5], 8 [8 é maior que 5, agora você só precisa lembrar do 8]
ou seja, ele pede que sejam lidos 10 números e seja impresso o maior número... temos a variável do número que foi dito agora, e do maior número. (Num, e Maior)
ok, mas são 10 números, então precisamos de uma variável pra contar quantos números já foram (Cont)
E | Num
P | Cont
S | Maior
alguma dúvida até aí?
vamos pra estrutura básica:

Algoritmo Maior-Número
  inteiro: Num, Cont, Maior; {ou ainda, caso vocês tenham aprendido assim/prefira, você pode colocar um abaixo do outro -> inteiro: Num; / inteiro: Cont; / inteiro: Maior;}
Início
  <comandos>
Fim.

para declarar variáveis no algoritmo, colocamos <tipo de variável>: <nome da variável 1 do tipo definido>, <nome da variável 2 do tipo definido>, <...>; {fechamos com um ponto e vírgula}
Tipos de variáveis:
  • Caracter: variáveis de texto, aceitam qualquer tipo de texto
  • Inteiro: variáveis numéricas que só aceitam números inteiros, como 1, 6, 15; mas não aceitam números fracionários, como 7.3, 1.5, etc
  • Real: variáveis numéricas que aceitam números inteiros ou fracionários, como 1, 6, 15, 7.3, 1.5, 71.163, etc
  • Lógico: variáveis que seguem a álgebra booleana, que só podem ter dois valores: Verdadeiro ou Falso. Supondo que você seja do meu colégio e esteja no primeiro ano com o mesmo professor que eu tive, você provavelmente não vai ver muito esse tipo
O Contador de números lidos é inteiro, não tem como ler um número e meio. O Maior número vai receber um valor de um outro Número, portanto, o tipo da variável Maior depende do tipo da variável Num. Como Num é um número, e não é especificado que é um número real, nem existe motivo para supor que seja um número real, pode-se utilizar como inteiro.
vamos ao Programa

Início
  Cont <- 0; {zerar o contador}
  Maior <- 0; {transformar o maior número até o momento em 0}
  Enquanto Cont < 10 Faça
    <comandos que serão repetidos>
  Fim-Enquanto;
Fim.

Essa é a estrutura principal do programa
Quais serão os comandos repetidos?
Primeiro ele vai ler um número. então, vai pegar cada número lido e vai verificar se o número é maior que o maior número já registrado. Se o número for maior, ele fica registrado como maior; senão, é descartado.


  Enquanto Cont < 10 Faça
    Leia (Num);
    Se Num > Maior
      Então Maior <- Num;
    Fim-se;
  Fim-Enquanto;


Depois, não pode se esquecer de contar que foi lido mais um número.


  Enquanto Cont < 10 Faça
    Leia (Num);
    Se Num > Maior
      Então Maior <- Num;
    Fim-se;
    Cont <- Cont + 1;
  Fim-Enquanto;

até agora temos:

Algoritmo Maior-Número
  inteiro: Num, Cont, Maior;
Início
  Cont <- 0;
  Maior <- 0;
  Enquanto Cont < 10 Faça
    Leia (Num);
    Se Num > Maior
      Então Maior <- Num;
    Fim-se;
    Cont <- Cont + 1;
  Fim-Enquanto;

Fim.

Ok, ele verifica o maior número e registra ele. Mas espere um momento! Ele tem que falar qual foi o maior número!

Algoritmo Maior-Número;
  inteiro: Num, Cont, Maior;
Início
  Cont <- 0;
  Maior <- 0;
  Enquanto Cont < 10 Faça
    Leia (Num);
    Se Num > Maior
      Então Maior <- Num;
    Fim-se;
    Cont <- Cont + 1;
  Fim-Enquanto;
  Imprima(Maior);
Fim.

Código-Fonte em Algoritmo: Aqui
Código-Fonte em Pascal: Aqui

Uma observação: Se você botar Enquanto Cont <= 10, você vai ter que igualar Cont a 1 no início do programa
Se você botar Enquanto Cont < 10, você vai ter que igualar Cont a 0 no início do programa

quarta-feira, 4 de maio de 2011

Delphi - Questão da Prova

Até agora não tínhamos entrado em Delphi porque não sabemos muito de Delphi, apesar de Delphi ter o código similar ao Pascal. Porém, hoje tivemos uma prova de Delphi, e se não foi uma surpresa o professor pedindo pra nós fazermos o código de uma calculadora em Delphi. 80% da turma nem tentou fazer, e os 20% que tentaram, 15% falharam miseravelmente e 5% acha que se deu bem, mas também falhou miseravelmente.
Pois bem, acredito que não era assim que o Professor queria que fosse feito, mas foi a unica forma que consegui.
Acreditem ou não, colegas, mas esse é o código fonte:
Ultima questão da prova de Delphi
Até descobrir em que categoria inserir, essa postagem estará sem marcadores.
Lembrando que são 17 botões (Button), e mais o rótulo (Label) de resultado:

  1. um (1)
  2. dois (2)
  3. três (3)
  4. quatro (4)
  5. cinco (5)
  6. seis (6)
  7. sete (7)
  8. oito (8)
  9. nove (9)
  10. zero (0)
  11. vírgula (,)
  12. somar (+)
  13. subtrair (-)
  14. multiplicar (x ou *)
  15. dividir (/)
  16. resultado (=)
  17. limpar
E o programa nem está instável... [/sarcasmo
Qualquer botão que você decida brincar de apertar fora de ordem, e trava...

De qualquer forma, pretendo utilizar esse código-fonte no futuro pra ensinar Pascal e Delphi... Me esperem...

terça-feira, 3 de maio de 2011

Questão da Identação

Vou falar agora sobre a questão da Identação.

Primeiramente, queria pedir desculpas pelas postagens até agora não terem identação, mas é porque o Blogspot não aceita identação. Eu vou passar a fazer a identação através de imagem.
*20:31 Edit: Problema de identação acaba de ser resolvido. Códigos passarão a ser postados pelo docs.google*
Identação é a organização do texto. Exemplo:

Primeiro Sem Identação, depois Com Identação
Conseguem ver a diferença?
A identação serve apenas para organização do código, não alterando o funcionamento do programa. Se você quiser testar, abra o Pascalzim, e coloque isso:

Program Pzim ; Type M=Array [1..6,1..6] of Integer; VAR Mat:M; I,J:Integer; Begin I := 1; J := 1; While (I <= 6) and (J <= 6) do Begin If (J = 1) or (J = 6) or (I = 1) or (I = 6) Then Mat[I,J] := 1 Else If ((J = 2) and ((I <> 1) or (I <> 6))) or  ((J = 3) and ((I = 2) or (I = 5))) or ((J = 4) and ((I = 2) or (I = 5))) or ((J = 5) and ((I <> 1) or (I <> 6))) Then Mat[I,J] := 2 Else Mat [I,J] := 3; Inc (I); If (I = 7) and (J < 6) Then Begin I := 1; Inc (J); End; End; I := 1; J := 1; While (I <= 6) and (J <= 6) do Begin If (Mat[I,J] = Mat[1,1]) Then Textcolor ( LightGreen ) Else If (Mat[I,J] = Mat[2,2]) Then Textcolor ( Yellow ) Else Textcolor ( LightBlue ); If I <> 6 Then Begin Write (Mat[I,J]); Textcolor ( Black ); Write ('|'); End Else Writeln (Mat[I,J]); Inc (I); If (I = 7) and (J < 6) Then Begin I := 1; Inc (J); End; End; End.

Leigo: Mas isso vai funcionar?
Amumu: Claro que vai, Leigo.
Leigo: Então eu posso botar na prova?
Amumu: CLARO QUE NÃO, CRIATURA DE DEUS!!

Funcionar, funciona. Mas existem 2 bons motivos pra você não fazer isso:
1o: Você está fazendo seu programa monolinha (com uma linha só) no Pascalzim, pensa "que beleza, vai ficar perfeito!", daí você termina, e aperta F9. Aparece "Erro na linha 1". Ok, AONDE da linha 1?
2o: Independente se você está no Ensino Técnico ou no Ensino Superior*, você está aprendendo para entrar no mundo do trabalho. Então, você está sendo avaliado como seria avaliado numa empresa. Eles avaliam a organização e a simplicidade do programa. Se o programa vier a ser editado no futuro, pra você se achar nele, sem identação, vai ser uma guerra (acredite em mim, já sofri com isso em Delphi, no primeiro trimestre ainda). E se você sair da empresa, entrar outra pessoa, e o programa precisar de adaptação, pior ainda, aí que o outro não vai se achar. As empresas procuram códigos fáceis de serem entendidos por outros técnicos, talvez um dia você tenha que se aposentar, mude de empresa, de cidade, de estado, país, enfim, e quem vier a te substituir vai precisar entender o programa.
*Eu só citei ensino técnico ou superior, porque estamos falando do Pascal, que é uma linguagem didática, ou seja, apenas de aprendizado. O Pascal não é usado comercialmente.

Leigo: Eu notei que você e o Joker utilizam identações diferentes. Qual a mais correta?
Exemplo:
ele usa (se não for assim é algo parecido)
If <condição> then
<comandos>
else
<comandos>

você usa
If <condição>
then <comandos>
else <comandos>

Amumu: A menos que seu professor seja um carrasco e exiga que você faça como ele ensinou, ambas estão corretas.

NOTA: Algoritmo é uma linguagem pra se usar na teoria. Essa questão da identação se aplica ao Pascal e HTML. Creio eu que se aplique à todas as linguagens, mas não tenho todos os compiladores no meu computador pra testar, então é difícil afirmar.

Pascal - Comandos de Repetição - Enquanto, Para

Olá galera, neste post aprenderemos um pouco sobre "Enquanto" (while) e "Para" (for), então mão na massa.

Enquanto (while)

While (condição) do
begin
comando1;
comando2;
end;

tradução:

Enquanto (condição) faça
início
comando1;
comando2;
fim-enquanto;

o While só procede suas linhas de comando se a condição proposta pelo programado for true (verdadeira)

digamos que eu precise fazer um programa para uma empresa que leia 10 idades aleatóriamente (sem precisar guardá-las) dos filhos dos funcionários e no relatório dizer quantos são crianças, adolescentes e adultos.

uma pessoa (não um programa) pensaria assim:
enquanto eu ainda não obtiver os 10 números (idades) então vou continuar perguntando aos pais e continuar classificando a idade do filho dele, e quando eu finalmente acabar, vou ver quantas crianças, adolescentes e adultos tem na pesquisa.

O programa "pensará" da mesma forma, e como seria, Tio Joker? Fácil, apensa acompanhe e entenda os comentários
primeiramente as variáveis:
eu vou precisar uma para guardar o valor da idade então criaremos uma variável chamada idade
após saber a idade e ela será do tipo integer (inteiro) pois apenas irei querer saber os anos (nada de número quebrado, ou seja, com vírgula), vou precisar classificá-la, então vou criar 3 variáveis, uma para cada classificação, e chamarei-as de criancas , adolescentes e adultos, e por ultimo porem não menos importante precisaremos de um contador, que indicará se ja contei as 10 idades, chamaremos a variável de cont .

nossas variáveis então serão
Program idade;
var
idade,criancas,adolescentes,adultos,cont:integer; //declarei minhas variáveis como tipo inteiro.

após declarar nossas variáveis, o que faremos?
agora entrará a parte do "enquanto"
a frase a ser traduzida para o programa é: "enquanto eu ainda não obtiver os 10 números..."
no programa ficará:

cont := 1 //declaro um valor ao cont para que ele possa entrar no "enquanto"
while cont <= 10 do //enquato cont <= 10 então...
begin
comandos
end;

pronto, agora o programa só sairá do while se o número que esta no cont for maior que 10
então se não colocarmos que cont receberá +1 (cont := cont + 1;) sempre que ler uma idade, o programa nunca acabará, logo deveremos acrescentar essa linha de comando antes do end;

cont := 1
while cont <= 10 do
begin
comandos
cont := cont + 1;
end;

agora deveremos colocar os comandos para lerem as idades

cont := 1
while cont <= 10 do
begin
writeln('Qual a idade?');
read(idade);
cont := cont + 1;
end;

agora que lemos a idade, deveremos classificar a pessoa em criança, adolescente ou adulto

cont := 1;
while cont <= 10 do
begin
writeln('Qual a idade?');
read(idade);
if (idade < 13) then
begin
criancas := criancas + 1;
end
else if (idade < 18) then
begin
adolescentes := adolescentes + 1;
end
else adultos := adultos + 1;
cont := cont + 1;
end;

óooo, mas espere manolo, ta faltando alguma coisa não é?

sim, esta faltando caro leigo. como uma variável vai receber ela + 1 se ela não tem valor?

então deveremos acrescentar mais três linhas antes do while ficando assim:

cont := 1;
criancas := 0;
adolescentes := 0;
adultos := 0;
while cont <= 10 do
begin
writeln('Qual a idade?');
read(idade);
if (idade < 13) then
begin
criancas := criancas + 1;
end
else if (idade < 18) then
begin
adolescentes := adolescentes + 1;
end
else adultos := adultos + 1;
cont := cont + 1;
end;

pera ae manolo-man, como ela recebe 0??? RIARIAIRAIRAIRIARAI você é burro!!!1!!

caro iniciante, como você está começando a contar quantos tem, você tem que começar do 0, não acha?

e Pq o cont tem que começar do 1 então? ein ein ein??? responde essa !!!1!!

o cont não precisa começar do 1, ele pode começar do 53679, mas ai o while deverá ser <= 53689
o programa precisa ler 10 idades, não importa de quanto a quanto eu conto, mas tem que ser 10!

agora como vou precisar dizer quantas crianças, adolescentes e adultos tem, vou ter que começar do 0

ae titio joker, se você escreve criança certo, pq no programa tu escreveu crianca? tu é idiota?

nenhuma linguagem de programação (que eu conheça) aceita acentos e caracteres especiais ☺

terminando a parte do while, vou precisar imprimir quantas crianças, adolescentes e adultos tem, certo?

então depois do while, a unica linha que vou precisar adicionar é:
write('existem ',criancas,' crianças,',adolescentes,' adolescentes e ',adultos,' adultos');

estudem essa parte da programação, ela será muito (MUITO MESMO) útil!

código fonte no final do tutorial.

Para (for)

For x := 1 to 10 do // Para que var de 1 até 10 faça
begin
comandos
comandos
end;

O For tem o mesmo propósito do While , porem ele só serve para números(integer e real) o while pode servir para String e Boolean)

então titio jo-joker, o que me faz usar For ao invés de While?????

primeiramente, você reduzirá algumas linhas (2 nesse caso) na programação, fazendo seu código-fonte ficar mais bonito e apresentável.

quais as linhas que mudam manolo????

aqui está meu caro:

cont := 1; // essa linha pode sair, ja que o programa ja atribui um número a variável
criancas := 0;
adolescentes := 0;
adultos := 0;
for cont := 1 to 10 do // essa linha muda
begin
writeln('Qual a idade?');
read(idade);
if (idade < 13) then
begin
criancas := criancas + 1;
end
else if (idade < 18) then
begin
adolescentes := adolescentes + 1;
end
else adultos := adultos + 1;
cont := cont + 1; // essa linha também será descartada
end;

resumindo, o For ja atribui um número a variável (For cont := 1 to 10 do) e não precisará fazer a adição ao número, ja que a variável irá de x até y (For cont := 1 to 10 do cont de 1 a 10)

em questão de aparência e simplicidade o For ganha, mas em questão de utilidade, o While é melhor, na minha opinião.




e aqui acaba nosso tutorial sobre os repetitivos While e For


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