Write
e Writeln
Estas são as principais
procedures destinadas a exibir todos os tipos dados no vídeo. A diferença entre
write e writeln reside no fato de que a
procedure write escreve o parâmetro, e mantém o cursor do lado daquilo que foi
escrito, enquanto que writeln passa o cursor para a próxima linha. Estas
procedures possuem 3 formas de sintaxes, a saber:
Primeira forma:
Write(parâmetro_1,Parâmetro_2, ...);
Exemplo:
Program Exemplo;
Uses CRT;
Var i
: integer;
r : real;
c : char;
s : string[20];
Begin
ClrScr; (*
apaga a tela e coloca o cursor em 1,1 *)
Writeln('Exemplos de aplicação de
writeln e write');
writeln; (*
apenas pula uma linha *)
i:=100;
r:=3.14;
c:='A';
s:='interessante';
writeln('Valor de i e igual a ',i);
write('valor de r = ');
writeln(r);
writeln(c,' ',s);
end.
Este programa resultaria na seguinte tela:
Exemplos de aplicação de writeln
e write
Valor de i e igual a 100
valor de r = 3.1400000000E+00
A interessante
Segunda forma:
Write(parâmetro : n);
onde n é um número inteiro que
determina quantas colunas o cursor deve ser deslocado à direita, antes do
parâmetro ser escrito. Além disso, o parâmetro é escrito da direita para a
esquerda, exemplo:
Program Exemplo;
Uses CRT;
Begin
Writeln('A');
Writeln('A':5);
end.
Resultaria
a seguinte tela:
A
.....A
Os pontos representam espaços em branco
Terceira forma:
Write(parâmetro : n : d);
Neste caso, n tem
a mesma função que o caso anterior sendo que d representa o número de casas
decimais. Obviamente, parâmetro terá queser do tipo Real. Exemplo:
Program Exemplo;
Uses CRT;
Var r : real;
Begin
ClrScr;
r:=3.14156;
Writeln(r);
Writeln(r:10:2);
End.
resultaria a seguinte tela:
3.1415600000E+00
3.14
Read e Readln
Estas procedures são utilizadas
para fazer leitura de dados via teclado. A procedure Read lê um dado do teclado
até que se pressione a tecla ENTER, sendo que cada tecla digitada é ecoada para
o vídeo. Após pressionarmos ENTER, o cursor permanecerá no mesmo lugar. Já, a
procedure Readln faz a mesma coisa só que o cursor passa para a próxima linha.
A sintaxe geral para estas procedures é:
Read (Var_1,Var_2,Var_3,...);
Ao se digitar os valores das
variáveis pedidas, deve-se separá-los por espaços.
Exemplo 1:
Program teste;
Uses CRT;
Var
a,b,c:integer;
Begin
clrscr;
readln(a,b,c);
writeln (a,' ',b,' ',c);
end.
Exemplo 2:
Program teste;
Uses CRT;
Var i : integer;
r : real;
c : char;
s : string[10];
Begin
ClrScr;
Write('Digite um numero inteiro
------> ');
Readln(i);
Write('Digite um numero real
---------> ');
Readln(r);
Write('Digite um caractere
-----------> ');
Readln(c);
Write('Digite uma string ------------->
');
Readln(s);
Writeln;Writeln; (* pula duas linhas *)
Writeln(i);
Writeln(r);
Writeln(c);
Writeln(s);
End.
Exemplo
3:
PROGRAMA AREA_DE_TRIANGULOS :
calcula área de triângulos
Program Area_de_Triangulos;
Uses CRT;
Var Base, (*
base do triângulo *)
altura: (*
altura do triângulo *)
Real;
Begin
ClrScr;
Writeln('CALCULO DA ÁREA DE
TRIANGULOS':55);
Writeln;
Write('Valor da base ------> ');
Readln(base);
Writeln;
Write('Valor da altura ---->
');
Readln(altura);
Writeln;
Writeln;
Writeln('Área do triângulo =
',base*altura/2 : 10 : 2);
End.
ReadKey:
Lê uma tecla do teclado, sem que
seja necessário pressionar a tecla ENTER
Program Exemplo;
Uses CRT;
Var tecla:char;
Begin
Write('digite uma tecla ->');
Tecla:=readkey;
Writeln;
writeln('você
digitou ',tecla);
end.
Impressora
Podemos enviar dados para a
impressora através das procedures Write e Writeln. Para tanto, devemos colocar,
antes dos parâmetros a serem enviados à impressora, o nome lógico LST. Exemplo:
Writeln('isto vai para o vídeo');
Writeln(lst,'isto vai para a impressora','
e isto também');
Funções e procedures para controle
de vídeo
ClrScr
Esta procedure tem a finalidade
de limpar a tela de vídeo e colocar o cursor na primeira coluna da primeira
linha. A tela de vídeo é dividida em 80 colunas e 25 linhas. O canto superior
esquerdo tem coordenadas (1,1) e o inferior direito (80,25).
Gotoxy(x,y)
Move
o cursor para a coluna x e linha y.
Exemplo:
Program Exemplo;
Uses CRT;
Var x,y : Byte;
Begin
ClrScr;
Gotoxy(10,2);
Write('Coluna 10 da linha 2');
x:=40;
y:=10;
Gotoxy(x,y);
Write('Coluna 40 da linha 10');
End.
ClrEol
Esta procedure limpa desde a
posição atual do cursor até o final da linha.
CrtExit
Envia para a tela de vídeo a
string de finalização definida na instalação
CrtInit
Envia para a tela de vídeo a
string de inicialização definida na instalação.
Delline
Procedure que elimina a linha em
que está o cursor. As linhas posteriores sobem, ocupando a que foi eliminada.
Exemplo:
Program exemplo;
Uses CRT;
Begin
ClrScr;
Writeln('linha 1');
Writeln('linha 2');
Writeln('linha 3');
Writeln('linha 4');
Gotoxy(1,2); (* posicionei o cursor no início da
linha 2 *)
Delline;
End.
O programa anterior irá provocar a seguinte
tela:
linha 1
linha 3
linha 4
Repare que a string 'linha 2' foi
eliminada.
HighVideo
Coloca o vídeo no modo normal.
Esta procedure é equivalente a NormVídeo.
InsLine
Esta procedure faz exatamente o
contrário de Delline, ou seja, insere uma linha na posição atual do cursor.
Exemplo
Program Exemplo;
Begin
ClrScr;
Writeln('linha 1');
Writeln('linha 2');
Writeln('linha 3');
Writeln('linha 4');
Gotoxy(1,3); (*
cursor na 1a. coluna da 3a. linha *)
InsLine;
Write('teste');
Gotoxy(1,20);
End.
Este Programa provocará a seguinte tela
linha 1
linha 2
teste
linha 3
linha 4
LowVideo
Coloca o vídeo em baixa
intensidade até que se execute a procedure NormVideo ou HighVideo.
NormVideo
O mesmo que HighVideo
TextBackGround
Esta procedure seleciona a cor do
fundo sobre o qual o texto será escrito. Sua sintaxe geral é:
TextBackGround(cor);
Tabela de cores
|
0
|
Black
|
Preto
|
|
1
|
Blue
|
Azul
|
|
2
|
Green
|
Verde
|
|
3
|
Cyan
|
Ciano
|
|
4
|
Red
|
Vermelho
|
|
5
|
Magenta
|
Magenta
|
|
6
|
LightGray
|
Cinza-claro
|
Nós podemos entrar com o número
ou o nome da cor em inglês
Exemplo:
Program Exemplo;
Uses CRT;
Begin
ClrScr;
WriteLn('teste');
TextBackGround(7);
Writeln('teste');
TextBackGround(Brown);
Writeln('teste');
End.
TextColor
Esta procedure permite selecionar a cor com
que o texto será impresso.
Tabela de cores
|
0.
|
Black
|
Preto
|
|
1.
|
Blue
|
Azul
|
|
2.
|
Green
|
Verde
|
|
3.
|
Cyan
|
Ciano
|
|
4.
|
Red
|
Vermelho
|
|
5.
|
Magenta
|
Magenta
|
|
6.
|
Brown
|
Marrom
|
|
7.
|
LightGray
|
Cinza-claro
|
|
8.
|
DarkGray
|
Cinza-escuro
|
|
9.
|
LightBlue
|
Azul-claro
|
|
10.
|
LightGreen
|
Verde-claro
|
|
11.
|
LightCyan
|
Ciano-claro
|
|
12.
|
LightRed
|
Vermelho-claro
|
|
13.
|
LightMagenta
|
Magenta-claro
|
|
14.
|
Yellow
|
Amarelo
|
|
15.
|
White
|
Branco
|
|
16.
|
Blink
|
Piscante
|
Exemplo:
Program Exemplo;
Uses CRT;
Begin
Clrscr;
TextBackGround(7);
TextColor(black);
writeln('teste');
TextColor(black+blink);
write('teste');
End.
Window
Sintaxe: Window(x1,y1,x2,y2);
Esta procedure tem o poder de
definir uma janela de texto cujo canto esquerdo superior é x1,y1 e canto
inferior direito é x2,y2. Após esta instrução, as instruções ClrScr, Write
Writeln agem somente dentro da janela recém definida. A instrução Gotoxy passa
a utilizar como referencial o ponto x1,y1 que passa a ser considerado 1,1.
Exemplo:
Program Exemplo;
Uses CRT;
Begin
Window(10,10,70,20);
ClrScr; (* limpa somente a janela *);
Writeln('teste'); (* escreve 'teste' em 10,10 *)
End.
WhereX
Função que retorna o número da coluna onde
está o cursor.
WhereY
Função que retorna o número da linha onde
está o cursor.
Controle do teclado
Kbd
Quando quisermos ler dados do
teclado e que não sejam ecoados para o monitor de vídeo até que sejam processados
e aceitos, nós podemos utilizar a seguinte sintaxe:
Read(Kbd,Variável);
No caso de números inteiros ou
reais, o número só será aceito quando pressionarmos a tecla <enter>, no caso de variáveis do tipo char, o
caractere será aceito sem que seja necessário pressionar a tecla <enter>, idem para o tipo string.
Exemplo:
Program Exemplo;
Uses CRT;
Var i:integer;
Begin
ClrScr;
Write('Entre com um inteiro --> ');
Readln(Kbd,i);
Writeln(i);
End.
BufLen
Buflen é uma variável interna
pré-definida em Turbo Pascal cujo valor inicial é 126. Ela contém o número máximo
de caracteres aceitos por Read.
Exemplo:
Program Exemplo;
Uses CRT;
Var i : Integer;
Begin
ClrScr;
Writeln(Buflen); (*
escreve 126 *)
Buflen:=2;
Write('Digite um inteiro --> ');
Readln(i); (*
se você tentar digitar inteiros com mais de dois dígitos, readln não permitirá
*)
End.
Keypressed
O identificador Keypressed é uma
função especial do Turbo Pascal que retorna um valor booleano - TRUE se uma tecla foi pressionada, ou FALSE caso contrário. Ela é muito
utilizada para detectar teclas pressionadas no teclado.
Exemplo
Program Exemplo;
Uses CRT;
Begin
ClrScr;
Write('Pressione uma tecla ->
');
Repeat until Keypressed; (* repita até que uma tecla seja
pressionada. O comando Repeat Until será estudado mais adiante *)
End.
Nenhum comentário:
Postar um comentário