Aula-3
Para que o programa realize o que desejamos é necessário manipular as variáveis e para isto usamos os operadores. Veja as tabelas abaixo.
Operadores Aritméticos
Operador | Função |
+ | adição |
- | subtração |
* | multiplicação |
/ | divisão com resultado real |
DIV | divisão entre inteiros com resultado inteiro |
MOD | resto da divisão entre inteiros |
Operador | Função |
= | igual |
<> | diferente |
> | maior que |
< | menor que |
>= | maior ou igual a |
<= | menor ou igual a |
Operador | Função |
NOT | inverte o resultado de uma expressão lógica |
AND | somente verdadeiro se ambos operandos forem verdadeiros |
OR | é verdadeiro quando pelo menos um dos operandos for verdadeiro |
XOR | so é verdadeiro se apenas um dos operandos for verdadeiro |
Operador | Função |
IN | Verdadeiro se um operando pertencer a um conjunto |
+ ( para strings ) | Permite a concatenação (união) de strings. |
Shl | Deslocamento à esquerda bit a bit |
Shr | Deslocamento à direita bit a bit |
Set | Operação com conjuntos |
Observação:
Os operadores seram exemplicados no decorrer das aulas.
As units possuem comandos ( rotinas já prontas ) que você pode utilizar. Para usar os comandos de uma unit, ela deve ser declarada.
Sintaxe: Uses
unit1,unit2,....,unitn;
Unidade | Rotinas ( Comandos ) |
System | Padrões ( não precisa ser declarada ) |
Crt | Vídeo e Som |
Dos | Sistema Operacional |
Graph | Gráficas |
Printer | Impressão |
Overlay | Memória |
Comando If (se) ... Then (então) ... Else (senão)
Esta estrutura permite executar um certo bloco de comandos se uma condição for verdadeira ou falsa.
Sintaxe 01
Se a condição for verdadeira (true) será executado o bloco de comandos.
IF
<condição> Then
Begin
< bloco de comandos >
End;
Sintaxe 02
Se a condição for verdadeira ( true) o programa executa o 1º bloco de comandos senão será executado o 2º bloco de comandos.
IF
< condição > Then
Begin
< 1º bloco de comandos >
End
{ você nao deve usar ; antes do Else }
Else
Begin
< 2º bloco de comandos >
End;
Observações:
1- Você não deve usar ; ( ponto-e-vírgula
) antes do Else
2- Quando o bloco só possuir um comando, este não
precisa vir entre o Begin e o End.
Sintaxe : IF
< condição > Then
comando;
Exemplos:
Exemplo da Sintaxe 01
Program Baskara;
{ Este programa calcula as raízes de um
equação do 2º grau }
{ A fórmula de báskara pode
ser encontrada em livros de matemática do 8º ano do 1º
grau }
Uses Crt;
{ A Declaração da unit Crt é necessária para usarmos o comando ClrScr }
Var
a,b,c,delta: real;
{ As variáveis a,b,c representam
os coeficientes de uma equação do 2º grau }
{ A variável delta guarda o valor do delta
da fórmula de báskara}
Begin
Clrscr;
{ Este comando Limpa a Tela }
Write ('Digite
o valor do coeficiente A - ');
readln (a);
Write('Digite
o valor do coeficiente B - ');
readln(b);
Write('Digite
o valor do coeficiente C - ');
readln(c);
delta:=
( (b*b) - (4*a*c) );
If delta
>= 0 Then
Begin
Writeln('A
1º raiz é', ( -b + sqrt(delta) ) / ( 2*a)
);
Write('A
2º raiz é', ( -b - sqrt(delta) ) / ( 2*a)
);
end;
End.
Obs: Sqrt(x) é uma função da unidade system que cacula a raiz quadrada de x...
Exemplo da Sintaxe 02
Program Baskara;
{ Este programa calcula as raízes de um
equação do 2º grau usando a formula de báskara
que pode ser encontrada em livros de matemática
do 8º ano do 1º grau. }
Uses Crt; { Esta unit possui o comando clrscr }
Var
a,b,c,delta: real; { As variáveis
a,b,c representam... }
{ os coeficientes de um equação do 2º grau }
{ delta guarda o valor do delta da fórmula de báskara}
Begin
Clrscr;
{ Este comando Limpa a Tela }
Write ('Digite
o valor do coeficiente A - ');
read (a);
Write('Digite
o valor do coeficiente B - ');
read (b);
Write ('Digite
o valor do coeficiente C - ');
read (c);
delta:=
( (b*b) - (4*a*c) );
If delta
>= 0 Then
Begin
Writeln
('A 1º raiz é', ( -b + sqrt(delta) ) / ( 2*a)
);
Write
('A 2º raiz é', ( -b - sqrt(delta) ) / ( 2*a)
);
end
else
Begin
Write
('As raízes desta equação são imaginárias');
end;
End.
Comando Case (caso ) ... Of ( igual a ) ... Else( caso contrário )
A estrutura Case é uma seletora de opções. Se a expressão for igual a alguma opcão (opx) do case o programa executa o respectivo bloco de comandos, senão ele executa o bloco de comandos do else. Esta estrutura possui duas sintaxes.
Sintaxe 01
Case
<expressão> Of
op1: Begin
< 1º bloco de comandos >
End;
op2: Begin
< 2º bloco de comandos >
End;
.
.
.
opn: Begin
< nº bloco de comandos >
End;
End;
Sintaxe 02
Case
<expressão> Of
op1: Begin
< 1º bloco de comandos >
End;
op2: Begin
< 2º bloco de comandos >
End;
.
.
.
opn: Begin
< nº bloco de comandos >
End;
Else
Begin
< bloco de comandos >
End;
End;
Exemplos:
Exemplo da Sintaxe 01
Program Calculadora; { cabeçalho }
{ Autor: Sitegauss }
{ Programa que efetua 4 operações
matemáticas entre 2 valores }
Uses crt; { Esta unit possui o comando Clrscr }
Var
operacao: char; { Esta variável pode gravar
caracteres }
{ Ela gruardará a operação selecionada pelo usuário}
valor1,valor2:real; { Estas variáveis gravam os valores que serão operados }
Begin
Clrscr;
{ Este comando Limpa a Tela }
Writeln ('
Calculadora ');
Writeln;
Write ('Entre
com o tipo de operação ( +, -, *, / )');
Readln (operacao);
Write
('Digite o primeiro valor - ');
Readln
(valor1);
Write
('Digite o segundo valor - ');
Readln
(valor2);
Case operacao
of
'+': begin
clrscr;
Write('A soma dos valores é',valor1+valor2);
end;
'-': begin
clrscr;
Write('A diferença dos valores
é', valor1-valor2);
end;
'*': begin
clrscr;
Write('O produto dos valores é',valor1
* valor2);
end;
'/': begin
clrscr;
Write('O quociente dos valores é',valor1
/ valor2);
end;
End; {
fim do case }
End.
Exemplo da Sintaxe 02
Program Calculadora; { cabeçalho }
{ Este efetua 4 operações matemáticas
entre 2 valores }
Uses Crt; { Esta unit possui o comando clrscr }
Var
operacao: char; { Esta variável pode
gravar carcteres }
{ Ela grava a operação selecionada pelo usuário}
valor1,valor2:real; { Estas variáveis gravam os valores que serão operados }
Begin
Clrscr;
{ Este comando Limpa a Tela }
Writeln ('
Calculadora ');
Writeln;
Write ('Entre
com o tipo de operação ( +, -, *, / )');
Readln (operacao);
Write
('Digite o primeiro valor - ');
Readln
(valor1);
Write
('Digite o segundo valor - ');
Readln
(valor2);
Case operacao
of
'+': begin
clrscr;
Write('A soma dos valores é',valor1+valor2);
end;
'-': begin
clrscr;
Write('A diferença dos valores
é', valor1-valor2);
end;
'*': begin
clrscr;
Write('O produto dos valores é',valor1*
valor2);
end;
'/': begin
clrscr;
Write('O quociente dos valores é',valor1
/ valor2);
end;
Else
begin
Write('Operação inválida');
end;
End; {
fim do case }
End.