segunda-feira, 25 de agosto de 2014

Estou reformulando o blog

Pessoal, vamos voltar com o blog agora além do material em texto, vou disponibilizar video-aulas.

sexta-feira, 27 de agosto de 2010

Anihamento de ifs

Para estruturas simples um if basta, mas vamos pensar num problema mais complexo
Eu quero fazer uma viagem de carro ate recife, e digamos que eu tenho um computaor de bordo no meu carro, que da dicas de inspeção para viagem.Esse programa faz o seguinte
Checa a calibragem do pneu se o pneu esta calibrado ele imprime ok , senao ele verifica se o pneu esta furado ( pressao 0 ) ou se so precisa calibrar, se for necessario calibrar ele manda calibrar.

Estruturas de decisão

Ja vimos que
if condiçao then
atitude;
ele checa se a condiçao é verdadeira , se for toma uma atitude
mas existe uma variação de if
if condiçao then
atitude se verdadeiro {note que não usa-se ponto e virgula}
else
atitude se for falso;
obs: podemos fazer rotinas (mini programas) dentro da esturtua condicional
basta usar (begin) e (end;)
if condiçao then
begin
comando 1
comando2
end {note que não usa-se ponto e virgula}
else
begin
comando 1
comando2
end;

quinta-feira, 26 de agosto de 2010

Biblioteca crt

clrscr;
limpa tela
delay(milisegundos);
espera
clreol;
limpa linha
highvideo;
aumenta brilho dos proximos textos
lowvideo;
diminui cideo dos proximos textos
normvideo;
retorna o video ao normal
sound(1);
emite som
nosound;
desabilita som
a:=readkey;
a recebe um char
dellline;
deleta uma linha
insline;
insire uma linha
gotoxy(coluna,linha);
vai para linha e coluna especificados

Algumas fuçoes matematicas disponiveis

Para facilitar a vida do programador algumas funçoes matematicas ja foram definidas.
Abs(numero);
retorna o valor absoluto(modulo) de um ou mais numeros
ex:
a:=abs(-1.98);
a recebe 1.98
b:=abs(-9);
b recebe 9
writeln(abs(8));
imprime 8
Funções dec() e inc()
Só funcionam com numeros inteiros
inc() soma um numero
dec() subtrai um numero

a:=inc(9);
a recebe 10
b:=dec(21);
b recebe 20
inc(a,8);
nesse caso ele soma oito na variavel a

Função exp()
Pode receber valor inteiro ou real porem retorna sempre real
retorna o exponecial do numero

Função frac()
retorna a parte fracionaria do numero
ex
a:=frac(8.93);
a recebe 0.93
b:=frac(-9.989);
b recebe -0.989

Função int()
retorna a parte inteira de um numero

Função random()
retorna um numero aleatorio entre 0 e 1
Função randomize()
utilizado antes de random para garantir nao repitir numeros
ex:
program randomico;
begin
randomize;
writeln(random:1:2);
readln
end.

Função round()
Arrendonda um numero
exemplo
writeln(round(1.89));
imprime 2
Função trunc()
Trunca o numero
Função sqr()
eleva o numero ao quadrado
Função sqrt()
retorna a raiz quadrada do numero

Entrada e saida de dados

Para interagir com o ususario o programa precisa "perguntar"(enviar saida) e ser "respondido"(receber entrada).
Certo , mas como fazer isso?
Simples:
Para enviar dados utilizamos os comandos write() e writeln()
Para imprimir uma variavel usamos write(var1,var2,var3);
Para imprimir texto write('Este texto vai ser impresso');
Pra imprimir texto e variavel:
write('texto1',variavel1,'texto2',variavel2);
writeln() tambem imprime so que ao inves de imprimir na mesma linha ele imprime na linha seguinte.

Para receber dados utilizamos os comandos read() e readln()
read(var1,var2,var3);
readln(var1,var2,var3); o memso de read so que le na linha seguinte

Obs:
colocando readln; sem os parenteses no final do programa ele para ate uma tecla ser pressionada.
colocando writeln; sem os parenteses ele pula uma linha

Uma coisa importante tambem é o fato da impressao de dados formatados
por exemplo um numero real em pascal
se vc imprimir por exemplo:
write(2.0);
ele imprime na tela 2.000000000000E+00
Ai nos temos de colocar parametros para imprimir :
write(2.0:n);
ele pula n espaços antes de imprimir 2.000000000000000E+00
write(2.0:n:d);
no caso n tem a mesma funçao anterior e d diz quantas casas vai ter o numero real
writeln(2.98889889889:2:2);
resulta
__2.98
os underlines representam os espaços

Obs: Se você deseja que os dados sejam enviados a uma impressora matricial basta fazer
write(lst,'isto vai ser impresso na impressora);

Operaçoes logicas

If simples:
"If" é um comando de Pascal que nos permite verificar uma condição e tomar uma decisão.
Sintaxe:
if condição then
comando;
Exemplo:
if a=b then
b=5;
No exemplo ele veirfica se a é igual a b se for ele atribuia a b o valor 5
No caso se a for igual a b , isso resulta em true
if true then
comando;
o camando é executada
Se a for difernete de b a condiçao se torna false
if false then
comando;
o comando não é executado

No caso "=" é um operador relacional
Operadores relacionais:
"=" igual
"<>" diferente
">" maior que
"<" menor que ">=" maior ou igual
"<=" menor ou igual "IN" incluso Podemos tambem colocar mais de uma condiçao : if a=b and c=d then comando; No caso And é um operador logico relaciona duas condiçoes: Operadores logicos : And se as duas condiçoes forem true Or se pelo menos uma das duas seja true Xor se uma for true e a outra false Prioridade de operadores: Primeira prioridade:not Segunda prioridade:*,/,div,mod,and,+,-,or Terceira prioridade:=,<>,<,>,<=,>=
Lembrando que os parenteses alteram essa ordem
Obs not é um operador de negação

Operações matematicas

Com o conhecimento que ja adquirimos sobre variaveis e sobre a linguagem Pascal podemos comelar a parender a travalhar com dados.
Soma:
Utilizamos o operador "+"
Ex:
soma:=var1+var2;
Subtração:
Utilizamos o operador "-"
sub:=var1-var2;
Divisão real:
Utilizamos o operador "/"
divisao:=var1/var2;
Divisao inteira:
Utilizamos o operador "div"
divisao:=var1 div var2;
Uma divisao inteira é aquela que resulta um numero inteiro
Exemplo: 9 dividido por 4 numa divisao real da 2.25 mas numa divisao inteira da 2
Multiplicaçao:
Utilizamos o operador "*"
Exemplo:
mult:=var1*var2;
Resto:
Utilizamos o operador "mod"
Exemplo:
resto:=var1 mod var2; resulta o resto da divisao de var1 pela var2

Observação:
A prioridade das operações é a mesma usada na matematica , assim como o uso de parenteses altera esta prioridade
Exemplo:
9*3+4=31
9*(3+4)=63
Exemplo:

segunda-feira, 23 de agosto de 2010

Atribuição de valores as variaveis

Para atribuir um valor a uma varivel é simples:
nome_variavel := valor_que_voce_deseja;

':=' é um operador de atribuição
Exemplo:

Constantes

Constantes funcionam como as variaveis ou seja guardam um valor , só que este valor é fixo.
As constantes podem ser numericas,alfanumericas,ou booleanas.
As regras para o nome das constantes é igual o das variaveis
Exemplo:

Variaveis

Variaveis são onde guardamos os valores com os quais vamos trabalhar.É importante observar que em Pascal como em qualuqer outra kinguagem existem palavras que não podem serutilizadas como nomes de variaveis, são as palavras reservadas:
AND,ARRAY,BEGIN,CASE,CONST,DIV,DO,DOWNTO,ELSE,END,FILE,FOR,FUCTION,GOTO,IF,
IN,LABEL,MOD,NIL,NOT,OF,OR,PACKED,PROCEDURE,PROGRAM,RECORD,REPEAT,SET,THEN,
TO,TYPE,UNTIL,VAR,WHILE,WITH,INPUT,OUTPUT,INTEGER,REAL,READ,STRING,WRITE
ou seja todas as palavras que tem alguma função ou que definam um tipo de variavél.

Para escolher o nome de variavel é muito simples ele tem de obrigatoriamente começar com uma letra e depois pode ser seguido de varias letras e numeros , é bom que o nome não exceda 32 caracteres e tambem que seu nome indentifique para que essa variavel serve.
Exemplos:
lado_do_triangulo,a1234,tempo são nomes de variaveis validos.

Como se declara uma variavél?
Simples basta fazer:
Nome_variavel : tipo_variavel;
Exemplo:Tipos de variaveis:
Numericas:são variaveis que guardam numeros , dependendo da função que esse numero va ter no programa ele pode ter varios formatos :
shortint : de -128 a 127 ocupando 1byte
integer : de -32768 a 32767 ocupando 2 bytes
longint : de -2147483648 a 2147483647 ocupando 4 bytes
byte : de 0 a 255 ocupando 1 byte
word : de 0 a 65535 ocupando 2 bytes
real : de 2.9 elevado a -39 até 1.7 elevado a 38 ocupando 6 bytes
single : 1.5 elevado a -45 até 3.4 elevado a 38 ocupando 4 bytes
double : de 5.0 elevado a -324 até 1.7 elevado a 308 ocupando 8 bytes
extended : de 3.4 elevado a -4932 até 1.1 elevado a 4932 ocupando 10 bytes
tenha sempre a mão essas informações para saber qual o tipo que vai ocupar a memoria necessaria para seu programa.
Variaveis alfanumericas:
São variaveis de texto
char:ocupa 1 byte e armaxena um caractere
string:ocupa de 2 a 256 bytes e pode armazenar de 1 a 256 caracteres
Variaveis logicas:
boolean: ocupa um byte e assume os valores true ou false
true é 1
false é 0

Bibliotecas

O uso de bibliotecas é muito interessante para qualquer programdor , pois permite que você faça uso de um codigo já construido ao invés de construir tudo sozinho.
Algumas bibliotecas uteis são : Crt,Dos,Graph,Printer,Overlay;
Exemplo:

Algumas considerações sobre Pascal

A linguegem Pascal não faz distinção entre letras maiusculas e minusculas(não é case sensitive).

Comentários são textos ou palavras que inserimos no codigo para que este fique claro , eles são ingnorados pelo compilador .
Comentarios em Pascal são feitos ebtre '{' e '}' ou entre '(*' '*)'
Exemplo:

terça-feira, 2 de junho de 2009

Estrtura de um programa em Pascal

O esqueleto de todo programa em Pascal é :

PROGRAM NOME_DO_PROGRAMA(INPUT,OUTPUT);
USES
BIBLIOTECAS;
TYPE
DEFINIÇÃO DE NOVOS TIPOS;
CONST
CONTANTES;
VAR
VARIAVEIS;
BEGIN
INSTRUÇÕES
END.

Mas ai vem a pergunta:
Certo e pra que serve isso e como usar?

A resposta a essa pergunta é a seguinte:
PROGRAM : Vem sempre no começo de todo codigo em Pascal , define o nome do programa .
tem a seguinte estrutura:
PROGRAM NOME_QUE_VC_ESCOLHEU(INPUT,OUTPUT);

Colocar "(INPUT,OUTPUT"é opcional , mas eu prefiro programar de forma que o programa fique o mais claro possivel.

USES:Essa palavra reservada é usada para declarar que vamos usar bibliotecas(Servem para utilizaramos funções prontas , mais tarde falaremos nisso).

Estrutura:
USES BIBLIOTECA1,BIBLIOTECA2;

TYPE:Serve para declarar um novo tipo de dado.
Estrtutura
TYPE nome_grupo=(tipo);

CONST:Serve para definir constantes.
Estrtutura:
CONST nome_constante=valor;

VAR:Serve para definir variavéis.
Estrutura
VAR nomes : tipo;

O que apresentamos até agora chamamos de cabeçalho , o programa em si tem a estrutura abaixo:
BEGIN
INSTRUÇÕES;
END.

sábado, 16 de maio de 2009

Compiladores

Você deve estar se perguntando : Como um monte de palavras podem se tornar um programa de computador?

Antigamente no começo da computação se programava um computador manualmente , ou seja regulando valvulas , de forma que elas combinadas resolvessem um problema , mais tarde eles com a idéia de programa armazenado (programa que fica na memoria do computador) eles consiguiram que o computador recebesse instruções escritas e executasse tarefas , o Asembly por exemplo(linguagem de montagem ) consiste em uma série de instruções de baixo nível que o computador é capaz de executar.

Obs: Quando se fala em linguagem de baixo nível falamos de linguagens de programção que estão mais próximas da forma como o computador entende(numeros) , já linguagens de alto nível são linguagens que mais próximas de como nós humanos entendemos .

Só para dar exemplo :
Baixo nível :
10 AF455AF

Alto nível:
Read(a);

Mas para que o computador consiga entender o programa escrito em uma linguagem , esse programa precisa ser traduzido para uma forma mais compreensível para o computador , essa é a função de um programa que nós chamamos de compilador.

Exemplo:
Vamos agora escrever seu promeiro programa em Pascal:
Ao longo do curso você vai entender o que significam essas instruções.

Para ver o programa sendo executado clique em "run".

Se você quiser criar um executavél basta clicar em "compile", o codigo-fonte e o executvél ficam na pasta: C:\FPC\2.2.4\bin\i386-win32

Esse compilador esta disponivél em quase todos os sites de downloads da internet.

Não use o compilador "Dev Pascal" , ele tem sérios problemas , também não aconselho o Turbo Pascal porque este compilador "não se dá bem" com computadores modernos, contudo as vezes é bom dar uma olhada em outras alternativas.
O Pascalzim é um bom compilador também , mas não tem acesso a bibliotecas(esse assunto vai ser abordado mais a frente).

Texto:Vladwoguer Bezerra

Pascal , história da linguagem

A linguagem Pascal é uma das maiores referencias quando falamos de Programação Estruturada , Top-Down ou como você prefira chamar , porque é uma linguagem segura quanto a compilação(Desde que usando compiladores de qualidade) , de fácil acesso , pois é muito fácil encontrar apostilas e pessoas que saibam programar em Pascal, talvez por isso ela seja a linguagem favorita mundialmente para ensinar programção.

Mas ai vem a pergunta , como e pra que essa linguagem foi inventada?

A linguagem Pascal é uma invenção de Niklaus Wirth , uma famoso cientista que foi uma das maiores referencias no mundo quanto a programção , hoje apesar de aposentado Wirth ainda continua a nós supreender com seu inegavél talento programacional.A idéia de criar uma linguagem que fosse de fácil entendimento e ao mesmo tempo tivesse recursos muito parecidos com outras linguagens a muito tempo estava presente no mundo da Computação , até que por volta dos anos 70 (1968 pra ser mais preciso) surge em uma universidade de Zurique (ETH) uma linguagem originada do Algol(Hoje ja não se programa mais em Algol) que tinha imensa clareza e ao mesmo tempo tinha muitos recursos , essa é a linguagem que trataremos nesse site .

O nome da linguagem é uma homenagem ao matemático Blaise Pascal e a suas contribuções a ciência .(Segundo Niklaus Wirth)

Texto :Vladwoguer Bezerra
Fontes:Wikipedia.org,Pascal Estruturado(Farrer,Becker,Faria,Santos , Maia).