Escolar Documentos
Profissional Documentos
Cultura Documentos
Operadores
Operadores
1. Atribuição 1. Atribuição
variável := valor; variável = valor;
variável := “valor” variável = ‘valor’;
5. Operadores Lógicos
&& and
5. Operadores Lógicos || ou
E and ! not
O U or
NÃO not
XOR ou exclusivo
Ex: Ex:
if (NUMERO >= 20) and (NUMERO <=90) then if (b) printf("%d\n",a/b);
writeln(‘Numero na faixa 20 a 90’) else printf("divisão por zero\n");
else
writeln(‘Numero fora da faixa 20 a 90’);
2. Seleção 2. Seleção
a) case .. of a) switch()...case <>:...comandos
b) case ..of ..else; switch(variável)
case <variavel> of {
<opcao1> : <instrucao1>; case constante1:
<opcao2> : <instrucao2>; seqüência de comandos
<opcao3> : <instrucao3>; break;
else case constante2:
<instrução4>; seqüência de comandos
end; break;
default:
seqüência de comandos
}
3. Repetição
A) Repetição com número definido: 3. Repetição
a) for variavel := <início> to/downto <fim> do A) Repetição com número definido:
instução; a) for(inicialização;condição;incremento) comando;
b) for variavel := <início> to/downto <fim> do b) for(inicialização;condição;incremento)
begin {comando1..comandoN};
instrução1;
instrução2;
end;
B) Repetição condicional
a) while...do (Teste no início) B) Repetição condicional
while <condição> do a) While (Teste no início)
<instrução para condição verdadeira>; while(condição) comando;
while <condição> do while(condição) {comando1...comandoN};
begin
<instruções para condição verdadeira>;
end;
printf(“A direita:%8d”,100);
printf(“A esquerda:%-8d”,100);
printf(“%.4f”,123.12312312313);
printf(“%3.8d”,100);
2. Com arquivos
O PASCAL, possui dois tipos de arquivos: 2. Com arquivos
a) Arquivos FILE Os comandos para E/S com arquivos em C/C++
Arquivo randômico ou de acesso aleatório. ocorrem mediante as chamadas à biblioteca. C possui
Sintaxe : dois padrões de E/C com arquivos ANSI e UNIX.
<Nome da variável> : FILE OF<tipo> ANSI. Possui conjunto completo de funções.
UNIX. Possui dois padrões: com buffer e sem
Ex: buffer.
TYPE Além disso podemos contar com as operações
Meu_tipo = FILE OF INTEGER; com arquivos em C puro e C++. Onde C++ , além de
VAR todas as funções de C, define o seu próprio sistema de
Minha_Variável = FILE OF STRING; E/S orientado a objetos.
Streams e Arquivos
Funções para arquivos do tipo FILE: Stream: Abstração independente e consistente
- ASSIGN() que serve de interface para o programador. Dispositivo
- REWRITE() lógico.
- RESET() - Streams de texto
- CLOSE() - Streams binários.
- WRITE()
Arquivos: Dispositivo real acessado, que pode
- READ()
- FILEPOS() qualquer coisa.
- FILESIZE()
- SEEK () Funções para o tipo Arquivos C ANSI:
- EOF() - fopen(). Abre um arquivo.
- ERASE () - fclose(). Fecha um arquivo.
- putc(). Escreve um caractere em um arquivo.
- ASSIGN(). Associa um nome de arquivo físico com o arquivo - fputc(). O mesmo que putc.
definido pelo programador.
- fputs(). Escreve uma string em um arquivo.
Sintaxe:
ASSIGN(Meu_Arquivo, - getc(). Lê um caractere de um arquivo.
STRING_Com_Nome_Arquivo_DOS). - fgetc(). O mesmo que getc.
Exemplo: - fgets(). Lê uma string de um arquivo.
Arquivo : FILE OF Registro; - fseek(). Posiciona o arquivo em um byte
BEGIN específico.
ASSIGN (Arquivo, ’dados.dat’); - fprintf(). É para o arquivo o que printf() é para
END. console.
- REWRITE(). Cria e abre para E\S um arquivo. Caso o arquivo - fscanf().É para o arquivo o que scanf () é para
não exista, o mesmo será criado. Caso o arquivo já exista, todos console.
os dados existentes nele serão apagados. - feof(). Verifica se o fim do arquivo foi atingido.
Sintaxe:
- ferror(). Verifica se ocorreu erro na leitura do
REWRITE(Meu_Arquivo);
Exemplo:
arquivo.
VAR - rewind(). Posiciona no início do arquivo.
Arquivo : FILE OF Registro; - remove(). Apara um arquivo.
BEGIN - fflush(). Descarrega arquivo da memória
ASSIGN (Arquivo, ’Dados.Dat’);
REWRITE (Arquivo); O ponteiro de arquivo.
END.
FILE *nome_do_ponteiro
- RESET(). Abre para E/S um arquivo que já exista. Caso o
arquivo não exista ocorrerá um erro de execução e o programa - fopen(). Abre um arquivo.
será abortado. Modos de abertura do arquivo:
Sintaxe : - r: Abre arquivo-texto como somente leitura.
RESET(Meu_Arquivo); - w: Cria arquivo texto para escrita.
Exemplo: - a: Anexa a um arquivo texto.
VAR - rb: Abre arquivo-binário como somente leitura.
Arquivo : FILE OF Registro; - wb: Cria arquivo- binário para escrita.
BEGIN
ASSIGN (Arquivo, ’Dados.Dat’); - ab: Anexa a um arquivo binário.
RESET (Arquivo); - r+: Abre arquivo-texto como leitura/escrita.
END.
- w+: Cria arquivo texto para leitura/escrita.
- a+: Anexa ou cria a um arquivo texto para
- CLOSE(). Fecha um arquivo que tenha sido aberto com
RESET\REWRITE.
leitura/escrita.
Sintaxe: - r+b: Abre arquivo-binário como leitura/escrita.
CLOSE(Meu_Arquivo) - w+b: Cria arquivo-binário para leitura/escrita.
Exemplo: - a+b: Anexa a um arquivo texto para
VAR leitura/escrita.
Arquivo : FILE OF Registro; Ex:
BEGIN FILE *fp;
ASSIGN (Arquivo, ’Dados.Dat’);
REWRITE (Arquivo);
fp = fopen(“text”,”w”);
CLOSE (Arquivo);
END. - fclose(). Fecha um arquivo.
Ex:
- WRITE(). Mesma Função de saída de informações, a mesma fclose(fp);
será armazenada em um arquivo.
Sintaxe: - putc(). Escreve um caractere em um arquivo.
WRITE (Meu_Arquivo, Registro) Ex:
Exemplo: ch = getchar();
Arquivo : FILE OF Registro;
Reg : Registro; putc(ch,fp);
BEGIN
ASSIGN (Arquivo, ‘Dados.Dat’); - fputc(). O mesmo que putc.
REWRITE (Arquivo); ch = getchar();
WRITE (‘Digite o Nome: ‘); putc(ch,fp);
READ (Reg.Nome);
WRITE (‘Digite a Idade: ‘);
- fputs(). Escreve uma string em um arquivo.
READ (Reg.Idade);
WRITE (Arquivo, Reg); Ex:
CLOSE (Arquivo); char str[80];
END. printf(“Digite uma string: \n”);
- READ(). Mesma Função de entrada de informações como até gets(str);
agora já, a mesma será feita de um arquivo. fputs(str,fp);
Sintaxe:
READ (Meu_Arquivo, Registro) - getc(). Lê um caractere de um arquivo.
Exemplo: Ex:
VAR
Arquivo : FILE OF Registro;
ch = getc(fp);
Reg : Registro;
BEGIN - fgetc(). O mesmo que getc.
ASSIGN (Arquivo, ‘Dados.Dat’); Ex:
RESET (Arquivo); ch = fgetc(fp);
READ (Arquivo);
WRITE (‘Nome = ‘, Reg.Nome);
- fgets(). Lê uma string de um arquivo.
WRITE (‘Idade = ‘, Reg.Idade);
CLOSE (Arquivo); Ex:
END. char str[80];
- FILEPOS(). Retorna um número inteiro indicando qual o fgets(str,fp);
registro corrente em um arquivo.
Sintaxe: - fseek(). Posiciona em um byte específico com acesso
Registro_Corrente : = FILEPOS (Meu_Arquivo) aleatório.
Exemplo: - SEEK_SET: Início do arquivo.
VAR
Arquivo : FILE OF Registro;
- SEEK_CUR: Posição atual.
Corrente: INTEGER; - SEEK_END: Final do arquivo.
BEGIN Ex:
ASSIGN (Arquivo, ‘Dados.Dat’); if(fseek(fp,atol(argv[2]),SEEK_SET)){
RESET (Arquivo); printf(“Erro na busca”);
corrente : = FILEPOS(Arquivo); exit(1);}
WRITE (corrente); - fprintf(). É para o arquivo o que printf() é para console.
CLOSE (Arquivo);
END. Ex:
FILE *fp
- FILESIZE(). Retorna quantos registros existem armazenados char s[80];
no arquivo. s = “Escrevendo no arquivo\n”
Sintaxe: fprintf(fp,”%s%d”,s,t);
Tamanho_Arquivo : = FILESIZE (Meu_Arquivo)
Exemplo: - fscanf().É para o arquivo o que scanf () é para console.
VAR Ex:
Arquivo : FILE OF Registro;
fscanf(fp,”%s%d”,s,&t);
Total : INTEGER;
BEGIN
ASSIGN (Arquivo, ‘Dados.Dat’); - feof(). Verifica se o fim do arquivo foi atingido.
RESET (Arquivo); Ex:
Total : = FILESIZE (Arquivo); while(!feof(fp)) ch = getc(fp);
WRITE (Total);
CLOSE (Arquivo); - ferror(). Verifica se ocorreu erro na leitura do arquivo.
END.
Ex:
- SEEK ()
if(ferror(fp)) err(fp);
Posiciona o ponteiro do arquivo em um registro determinado,
para que o mesmo possa ser processado. - rewind(). Posiciona no início do arquivo.
Sintaxe: Ex:
SEEK(Meu_Arquivo, Endereço_Registro) rewind(fp);
Exemplo:
ASSIGN (Arquivo, ‘Dados.Dat’);
RESET (Arquivo);
- remove(). Apara um arquivo.
SEEK (Arquivo, 10); Ex:
READ (Arquivo, Reg); if(remove(argv[2])){printf(“Não
WRITE (‘Nome = ‘, Reg.Nome); apagado”); exit(1);}
WRITE (‘Idade = ‘, Reg.Idade);
CLOSE (Arquivo); - fflush(). Descarrega uma stream da memória.
Ex:
- EOF() fflush(fp)
Retorna TRUE caso se alcance o final do arquivo, FALSE caso
contrário.
- fread(). Ler tipos de dados maiores que um byte,
Sintaxe: quando arquivo aberto como binário.
Chegou_Final : = EOF (Meu_Arquivo) Ex:
Exemplo: fwrite(&d,sizeof(double),1,fp);
ASSIGN (Arquivo, ‘Dados.Dat’); - fwrite(). Escrever tipos de dados maiores que um byte,
RESET (Arquivo); quando arquivo aberto como binário.
WHILE NOT EOF(Arquivo) DO
BEGIN Ex:
READ (Arquivo, Reg); fread(&d,sizeof(double),1,fp);
WRITE (‘Nome = ‘, Reg.Nome);
WRITE (‘Idade = ‘, Reg.Idade); Funções Arquivos tipo C UNIX:
END; Sistema de rotinas em disco de baixo nível do
CLOSE (Arquivo); UNIX, sem buffer.
-read(). Lê um buffer de dados.
- ERASE ()
Elimina o arquivo do disco. É importante notar que o arquivo a
-write(). Escreve um buffer de dados.
ser eliminado não pode estar aberto. - open(). Abre um arquivo em disco.
Sintaxe: - create(). Cria um arquivo em disco.
ERASE (Meu_Arquivo) - close(). Fecha um arquivo em disco.
- lseek(). Move ao byte especificado.
b) Arquivos TEXT - unlink(). Remove um arquivo do diretório.
Também conhecido por arquivo seqüencial, é um tipo especial
de arquivo que, ao contrário do arquivo FILE, pode ser editado - open (). Escreve um buffer de dados.
normalmente através de um editor de textos qualquer. Modos:
Sintaxe:
<Nome da variável> : TEXT
- O_RDONLY. Lê.
- O_WRONLY. Escreve.
Ex: - RDWR. Lê/Escreve.
PROGRAM Exemplo; Ex:
TYPE int fd,
Menu_Tipo : TEXT; if((fd =open(filename,mode) == -1){
VAR printf(“Impossível abrir arquivo”);
Minha_Variável : TEXT;
exit(1);}
BEGIN
End.
- create(). Cria um arquivo em disco.
Ex:
Funções para arquivos do tipo FILE: int fd;
fd=create(filename,mode);
- ASSIGN(). Associa um Nome de arquivo o arquivo definido pelo
programador - close(). Fecha um arquivo em disco.
- REWRITE(). Crie/Abra um arquivo em Write-Only. Ex:
- RESET(). Abre um arquivo existente em Read-Only. close(fd);
- APPEND(). Abre arquivo para inclusão de novas informações
em Write.
- CLOSE(). Fecha arquivo com Reset\Rewrite\Append -read(). Lê um buffer de dados.
- WRITE() ou WRITELN(). Escreve no arquivo com ou sem quebra Ex:
de linha write(fd1,buf,BUF_SIZE);
- READ() ou READLN(). Lê do arquivo com ou sem quebra de
linha. -write(). Escreve um buffer de dados.
- EOF(). Verifica se alcançou final do arquivo. Ex:
- ERASE(). Apaga arquivo do disco associado ao arquivo do write(fd1,buf,BUF_SIZE);
programador.
- unlink(). Remove um arquivo do diretório.
Ex:
unlink(“filename”);
main(){}
3. Funções divesas.
a) Manipulação de strings. 3. Funções divesas.
-length. Retorna o número de caracteres de uma string. a) Manipulação de caractere e strings
tam := length('TURBO PASCAL'); -strcpy().Copia o conteúdo de uma string.
Sintaxe:
-upcase . Função que retorna o caractere contido no strcpy(destino,origem);
parâmetro em maiúsculo.
maiusc := upcase (letra); - strcat(). Concatena duas strings. Não verifica tamanho.
Sintaxe:
- concat. Retorna a união de duas ou mais strings strcat(string1,string2);
passadas como parâmetros.
uniao := concat (pal1,' ',pal2); - strcmp(). Compara duas strings, se forem iguais
A função CONCAT tem efeito semelhante ao operador + devolve 0.
(operador de concatenação). Sintaxe:
uniao := pal1 + ' ' + pal2; strcmp(s1,s2);
- pos. Retorna a posição que uma substring ocupa dentro - isalnum(). Verifica se é alfanumérico. Se não for
de uma string passadas como parâmetro. devolve 0.
Exemplo: Sintaxe:
frase := 'VAMOS ESTUDAR MAIS'; isalnum(ch);
pesq := 'ESTU';
posicao := pos (pesq,frase); - isalpha(). Verifica se valor é alfabético. Se não for
writeln (posicao); {será exibido o valor 7} devolve 0.
Sintaxe:
isalpha(ch);
- copy – Retorna uma substring de uma string passadas
como parâmetro, de acordo com sua posição e - isdigit(). Verifica se valor é numérico de 0 a 9. Se não
quantidade de caracteres especificados. for devolve 0.
frase := 'VAMOS ESTUDAR MAIS'; Sintaxe:
pedaco := copy(frase,7,4); isdigit(ch);
writeln (pedaco);
- islower(). Verifica se valor é minúsculo. Se não for
- delete. Exclui um pedaço de uma string passada como devolve 0.
parâmetro, de acordo com uma posição e quantidade de Sintaxe:
caracteres especificados. islower(ch);
Exemplo: - isupper(). Verifica se valor é maiúsculo. Se não for
frase := 'TURBO PASCAL 7.0'; devolve 0.
delete (frase,7,7); Sintaxe:
writeln (frase); {será exibido o string 'TURBO isupper(ch);
7.0'}
- strcatr(). Concatena str2 em str1.
Sintaxe:
- insert. Procedimento que permite inserir uma substring strcat(str1,str2);
dentro de uma string, em uma posição especificada. - strlen().Tamanho de uma string.
Exemplo: Sintaxe:
frase := 'CURSO DE INFORMATICA'; strlen(string);
insert ('MICRO',frase,10);
writeln (frase); {será exibido o string 'CURSO DE - toupper().Converte para maiúscula.
MICROINFORMATICA'} Sintaxe:
toupper(string);
- val – Converte uma string passada como parâmetro - tolower(). Converte para minnúsculo.
para valor numérico. Sintaxe:
islower(ch);
Exemplo 1:
codigo := '017348'; - atof().Converte a string em double.
val (codigo,numero,erro); Sintaxe:
writeln (numero); {será exibido o valor 17348} atof(ch);
writeln (erro); {será exibido o valor 0}
- atoi(). Converte para inteiro.
- str. Converte uma variável numérica em um string. Sintaxe:
Exemplo: atoi(ch);
numero := 12.3;
str (numero:6:2,conv); - atol(). Converte para long integer.
writeln (conv); {será exibido o string ' 12.30'} Sintaxe:
atol(ch);
b) Funções matemáticas.
- sin().Devolve o seno.
Sintaxe:
sin(valor);
- cos().Devolve o co-seno.
Sintaxe:
cos(num);
- abs().Devolve o absoluto.
Sintaxe:
abs(num);
READKEY. Retorna o valor (do tipo caracter) de uma tecla c) Manipulação vídeo e teclado.
pressionada. - textcolor(7);
READKEY : char - textbackground(1);
- gotoxy (x, y).
DELAY. Provoca uma pausa num determinado intervalo - clrscr( ).
de tempo. - clreol( ).
DELAY (tempo : word) - delline( ).
- setcolor( ).
WINDOW. Desenha uma window: - setbkground( ).
WINDOW (x1, y1, x2, y2 : byte) - setbkcolor().
- getch(). Espera uma tecla.
CLRSCR. Procedimento que limpa a tela.
function soma(num1,num2:integer):integer;
var
variaveis: tipos;
begin
result:= num1+num;
end;