Você está na página 1de 10

Estudo dirigido das linguagens C/C++ e Pascal

Estrutura do Programa em Estrutura de um Programa em C


Pascal #include <stdio.h>
main(){
program HelloWorld; printf(“Olá mundo”);
uses }
crt;
begin
writeln(‘Olá mundo’) Comentários
end. /**/ - bloco de comentário
Comentários // - comentário de linha
{ } – comentário de bloco
(* *) – comentário de bloco
// - comentário de linha (apenas no Delphi)
Tipos de Dados Primitivos
Tipos de Dados Primitivos 1. Inteiros
char
1. Inteiros
signed char
shortint
unsigned char
integer
short
longint
unsignet short
byte
long
word
unsigned long

2. Ponto Flutuante ou Reais


float
2. Ponto Flutuante ou Reais
double
real
long double
single
double
extended
comp
3. Caracteres
Em C não existe um tipo de dado string, no seu lugar é
3. Caracteres
utilizado uma matriz de caracteres.
string – cadeia de caracteres
nome: string;
cadeia caracteres
string[10] – string tamanho definido char nome[10];
nome: string[10];
apenas 1 posiçao
char – apenas um caractere char x;
tipo: char;
4. Lógicos
Não há equivalente
4. Lógicos
boolean – retorna verdadeiro ou falso
confirmado: boolean;
atrasado: boolean; 5. Variáveis e constantes
Podem ser declaradas com o tipo seguido do
identificador.
5. Variáveis e constantes
int valor;
A declaração var define a seção de variáveis:
char nome[10];
var
int valor,soma,media;
variável: tipo;
A declaração const define a seção de constantes:
const Também podem se declaradas com a declaração var
var nome[10];
constante = expressão;
var inteiro;

Constantes são variáveis inicializadas:


int cod = 1;
char tipo = ‘a’;

Operadores
Operadores
1. Atribuição 1. Atribuição
variável := valor; variável = valor;
variável := “valor” variável = ‘valor’;

2. Operadores Aritméticos 2. Operadores Aritméticos


Subtração - Subtração -
Adição + Adição +
Multiplicação * Multiplicação *
Divisão Real / Divisão Real /
Resto da Divisão Inteira %
Divisão Inteira ( truncada ) div
Resto da Divisão Inteira mod
Inverte Sinal -
Mantém Sinal +
3. Operador de Concatenação
3. Operador de Concatenação Sem equivalente
NomeCompleto := ´Jose´ + ´Maria´;
4. Operadores Relacionais
4. Operadores Relacionais
Maior que > > maior que
Menor que < >= maior ou igual
Maior ou igual >= < menor
Menor ou igual <= <= menor ou igual
Igual = == igual
Diferente <> != não igual

5. Operadores Lógicos
&& and
5. Operadores Lógicos || ou
E and ! not
O U or
NÃO not
XOR ou exclusivo

Estruturas de Controle de fluxo


Estruturas de Controle de fluxo 1. Decisão
1. Decisão a) if (condição)comando;
a) if... then b) if (condição)comando else comando;
b) if ...then...begin...end; c) if (condição){comando1,comandoN};
c) if... then...else d) if (condição){ comando1,comandoN }
d) if ...then...begin...end..else…begin..end; else{ comando1,comandoN };

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;

b) repeat...until (Teste no final)


repeat b) Do...while (Teste no final)
<instrução1 até que a condição seja do
verdadeira> ; {
<instrução1 até que a condição seja comando1;
verdadeira> ; comandoN;
<instrução1 até que a condição seja }
verdadeira> ; while(condição);
until <condição>;
4. Interrompimento do fluxo.
a) break
4. Comandos de desvio do fluxo. Ccausa seu término imediato da iteração. O
a) break controle do progra-ma passará então imediatamente
Quebra o loop for, while ou repeat. Salta para a para o código que segue o loop.
primeira linha após o bloco de comandos.
b) continue
b) continue Força a próxima iteração do loop e pula o código
Cancela a iteração corrente do loop for, while ou que estiver em seguida.
repeat. Passa para o próximo teste da construção de
controle de fluxo onde ele se encontra c) return
Retorna o valor de uma função para a função
c) exit chamadora.
Cancela a execução de uma sub-rotina e retorna
ao código que a chamou. d) goto
Salta para um rótulo.
d) raise
Causa uma exceção que desvia o fluxo para o e) exit
bloco de tratamento de exceções. Aborta a execução da aplicação e retorna para o
sistema operacional.
e) halt
Aborta a execução da aplicação e retorna para o
sistema operacional.
Halt;
Halt(0);
Halt(134);

Tipos de dados Estruturados Tipos de dados Estruturados


1. Vetor Unidimensional (vetor) 1. Vetor Unidimensional (vetor)
Sintaxe: Sintaxe:
<vetor> : array[tamanho] of <tipo_de_dado>; tipo nome[tamanho];
Ex: Ex:
NOTAS : array[1..5] of real; int x[10];

2. Vetor Bidimensional (matriz) 2. Vetor Bidimensional (matriz)


Sintaxe: Sintaxe:
<matriz> : array[linhas,colunas] of tipo nome[tamanho][tamanho] ...;
<tipo_de_dado>; Ex:
Ex: int x[10][10];
NOTAS : array[1..5,1..4] of real;
3. Vetor Multidimensional (cubo)
3. Vetor Multidimensional (cubo) Sintaxe:
Sintaxe: tipo nome[tamanho][tamanho][tamanho];
<matriz> : array[altura,largura,prof] of Ex:
<tipo_de_dado>; int x[10][10][10];
Ex:
NOTAS : array[1..5,1..4,1..10] of real; 4. . Tipos Definidos Pelo Usuário
a) Matriz estática
4. Tipos Definidos Pelo Usuário static int x[10]={0,1,2,3,4,5,6,7,8,9};
a) Subintervalos static char
type c[10]={“0”,”1”,”2”,”3”,”4”,”5”,”6”,”7”,”8”,”9”};
LittleLetter = ‘a’..’z’;
var
GoodLetter: LittleLetter;
b) Enumerações
c) Enumerações enum identificador(lista de enums) lista de
type veriáveis
StopLightColor = (Red, Yellow, Green);
DiaSemana = (Seg, Ter, Qua, Qui, Sex, enum coin(penny,nickel,dime,quarter,dolar);
Sab, Dom); enum coin money;
var
MyLight = StopLightColor; b) typedef
DiaUtil = DiaSemana; Cria novo tipo a partir de tipos já existentes;
b) Conjuntos
type typedef int inteiro;
KeysType = set of char;
Var
Keys : KeysType;
begin
Keys:= [‘0’..’9’,’*’,’#’]
end
DIG_HEXA = ['0'..'9', 'A'..'Z', 'a'..'z'];
type
DIG_HEXA: set of Char = ['0'..'9', 'A'..'Z', 'a'..'z'];
5. Estruturas
5. Registros Ex:
Sintaxe: struct esferografico {
type int dureza;
<identificador> = record char fabricante;
<lista de campos e seus tipos> int numero;
end; };
var
<variavel> : <identificador_registro> struct esferografico caneta;

Ex: struct esferografico caneta[100];


type
pessoa = record struct esferografico {
nome: string int dureza;
idade: integer; char fabricante;
sexo: char; int numero;
fone: string; } caneta,lapizeira,canetao;
end;
Entrada e Saída de Dados
1. Pelo Console
Entrada e Saída de Dados - getchar(). Lê um caractere, espera retorno do
1. Pelo Console
carro.
- read. Leitura sem quebra de linha.
- getche(). Lê um caractere com eco.
- readln. Leitura com quebra de linha.
- getch(). Lê um caractere sem eco.
- write. Escrita sem quebra de linha
- putchar(). Escreve um caractere.
- writeln. Escrita com quebra de linha
- putch(). O mesmo que putchar().
- gets(). Lê uma string do teclado.
- read. Leitura sem quebra de linha.
- puts(). Escreve uma string.
Ex:
- scanf(). Leitura formatada.
read (<ident-1>,...<ident-n>)
-printf(). Escrita formatada.
- readln. Leitura com quebra de linha
Ex:
- getchar(). Lê um caractere, espera retorno do carro.
readln (NOTA1,NOTA2,NOTA3);
Ex:
char ch;
- write. Escrita sem quebra de linha. ch = getchar();
Ex:
write (‘Escreve sem quebra’);
- getche(). Lê um caractere com eco.
write (NOTA1);
Ex:
- writeln. Leitura com quebra de linha char ch;
Ex: ch = getche();
writeln (‘Escreve com quebra de linha’);
writeln (NOTA1);
- getch(). Lê um caractere com eco.
writeln('Digite o Nome:');
readln(NOME); Ex:
char ch;
{saída formatada}
ch = getch();
writeln (MEDIA:5:2);{saída → 5.00}
------ - putchar(). Lê um caractere, espera retorno do carro.
Uses PRINTER;
Ex:
::: char ch;
{direto para impressora} putchar(ch);
writeln (LST, 'Media = ', MEDIA:5:2);
- putch(). Lê um caractere, espera retorno do carro.
Ex:
char ch;
putch(ch);
-gets(). Lê um caractere, espera retorno do carro.
Ex:
char str[10];
gets(str);

-puts(). Lê um caractere, espera retorno do carro.


Ex:
char str[10];
puts(“Imprimindo o valor\n”);
puts(str);
- scanf() e printf(). Leitura e saída formatadas.
Principais formatos:
- %c: caractere.
- %d: inteiros decimais com sinal.
- %i: inteiros decimais com sinal.
- %e: Notação científica.
- %s: String.
- %f: Ponto flutuante.
- %u: inteiros decimais sem sinal.
- %x: Hexadecimal.
- %o: Octal.
Ex:
int i,j;
scanf(%o%x,&i,&j);
printf(“Gosto %s de %c”,”muito!”);

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”);

- lseek(). Move ao byte especificado.


Posições:
- SEEK_SET. Move para o início.
- SEEK_CUR. Posição atual.
- SEEK_END. Move para o final.
Ex:
lseek(fd,(long)sector*BUF_SIZE,0);

Funções para tipo Arquivos C++ orientado a


objetos:
O C++ utiliza as classes iostream para
arealização de operações com arquivos. Os arquivos que
definem as classes são:
As bibliotecas de funções(units) - iostream.h. Impressões de vídeo e teclado.
- fstream.h. Leitura e gravação em arquivos.
1. As units A abordagem em C++ não será implementada
- CRT. Funções de controle de som, vídeo e teclado. neste estudo.
- DOS. Utilização do sistema operacional, funções de
baixo nível.
As bibliotecas de funções do C
- GRAPH. Destinadas a manipulação gráfica.
1. Os arquivos de cabeçalho.
- OVERLAY. Gerenciar atividades de um programa.
- ASSERT.H. Define marco assert().
- PRINTER. Utilização para impressora com o arquivo LST.
- CTYPE.H. Manipulação de caracteres.
- SYSTEM. Maior parte das rotinas do Pascal, carrega
- CONIO.H.
automaticamente.
- ERRNO.H. Apresentação de erros.
- FLOAT.H. Define valores em ponto flutuante.
- LIMITS.H. Define limites em ponto flutuante.
- MATH.H. Funções matemáticas.
- SETJMP.H. Suporte desvios não locais.
- SIGNAL.H. Manipulação de sinal.
- STDARG.H. Argumentos de comprimento variável.
- STDEF.H. Algumas constantes normalmente utilizadas.
- STDIO.H. Suporte E/S com arquivos.
- STDLIB.H
- STRING.H. Funções com strings.
- TIME.H. Funções de horário do sistema.
2. Declarando o uso das funções.
Ex:
program exemplo;
2. Declarando o uso das funções.
uses
CRT,PRINTER,SYSTEM,DOS,GRAPH; Ex:
#include <stdio.h>
#include <time.h>
#include <string.h>

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);

- chr. Retorna o caracter correspondente ao valor ASCII


especificado.
Exemplo:
codigo := 65;
caracter := CHR(codigo);
writeln (caracter); {será exibido o caracter 'A'}

- ord. Retorna o valor ASCII correspondente ao caracter


especificado.
Exemplo:
caracter := 'A';
codigo := ORD(caracter);
writeln (codigo); {será exibido 65}

b) Funções matemáticas.

- ABS(X). Valor Absoluto.


- FRAC(X). Parte Fracionária.
- TRUNC(X). Parte Inteira. b) Funções matemáticas.
- ROUND(X). Valor Arredondado.
- SQR(X). Eleva ao quadrado. - sqrt().Devolve raiz quadrada.
- SQRT(X). Raiz quadrada. Sintaxe:
- LN(X). Logaritmo Natural. sqrt(num);
- EXP(X). Exponencial.
- modf().Decompõe um número em suas partes inteira e
fração.
Sintaxe:
modf(num,variavel);

- pow().Devolve a base elevada a potência .


Sintaxe:
pow(x,y);

- sin().Devolve o seno.
Sintaxe:
sin(valor);
- cos().Devolve o co-seno.
Sintaxe:
cos(num);

- exp().Devolve o logaritmo natural e elevado a potência.


Sintaxe:
exp(num);

- log().Devolve raiz quadrada.


Sintaxe:
log(num);
- fabs().Devolve o absoluto.
Sintaxe:
fabs(num);

- abs().Devolve o absoluto.
Sintaxe:
abs(num);

c) Manipulação vídeo e teclado. c) Manipulação de data e hora.


KEYPRESSED. Função que retorna o valor lógico TRUE - localtime(). Devolve a forma decomposta de time.
caso tenha sido pressionada alguma tecla. Sua sintaxe é: - time(). Devolve o horário atual do sistema.
KEYPRESSED : boolean - asctime().

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.

GOTOXY. Posiciona em um ponto na tela.


GOTOXY (x, y : byte)

WHEREX. Função que retorna a coluna em que se


encontra o cursor.

WHEREY. Função que retorna a linha em que se encontra


o cursor.

CLREOL. Procedimento que apaga todos os caracteres de


uma linha.

TEXTCOLOR. Procedimento que determina a cor do texto.


textcolor(codigo);
TEXTBACKGROUND . Selecionar a cor de fundo da tela.
Sua sintaxe é:
textbackground(codigo);

Procedimentos e funções Procedimentos e funções


a) Procedures. As funções são o coração do C e C++.
As procedures apenas executam comandos e não
retornam valor. Podem receber ou não entrada de double soma(int num1,num2){
parâmetros. int total;
total = num1+ num2;
procedure limpartela; return total;
begin }
writeln(“limpando a tela...”);
clrscr;
end;
b) Functions
As funções se caracterizam por retornar valor após a
execução.

function soma(num1,num2:integer):integer;
var
variaveis: tipos;
begin
result:= num1+num;
end;

Você também pode gostar