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