Buscar

Tabela_ASCII4

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Algoritmo "Tabela_ASCII"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Professor: Antonio Carlos Nicolodi
// Autor : Antonio 
// Função : Monta e mostra uma tabela ASCII (com números em
// decimais / Hexadecimais / Binários / Octais e os Caracteres
// Data : 10/4/2015
// Seção de Declarações 
var
 xvet : Vetor[1..255] de caracter
 i : inteiro
 xcar,xs,xcf,xE : caracter
 xo,xh,xb : caracter
// funções (não Pré-definas) ou User Define Functions 
// em portugues: Funções Definidas pelo Usuário (programador da linguagem)
// funções e procedimentos UDFs do programa
// FUNÇÕES GERAIS PARA TODOS OS PROGRAMAS 
// retorna uma string com qqer caracteres na quantidade passada
Funcao Replicar(STRING : caracter; QTDE : inteiro) : caracter 
 var
 iREP : inteiro
 xREP : caracter
 inicio
 xREP <- ""
 para iREP de 1 ate QTDE faca
 xREP <- xREP + STRING
 fimpara
 Retorne xREP
Fimfuncao
// retorna uma string com caracteres "0" na quantidade passada
Funcao Zeros(QTDE : inteiro) : caracter
var
 iZER : inteiro
 rZER : Caracter
inicio
 rZER <- ""
 para iZER de 1 ate QTDE faca
 rZER <- rZER + "0"
 fimpara
 Retorne rZER
Fimfuncao
// retorna uma string c/ todos da Esquerda p/ Direita
Funcao Esquerda(STRING : caracter; QTDE : inteiro) : caracter 
var
 iESQ,xESQ : inteiro
 sESQ,cESQ : caracter
inicio
 xESQ <- Compr(cESQ)
 se QTDE > xESQ entao
 QTDE <- xESQ
 fimse
 sESQ <- ""
 para iESQ de 1 ate xESQ faca
 cESQ <- copia(STRING,iESQ,1)
 sESQ <- sESQ + cESQ
 QTDE <- QTDE - 1
 se QTDE < 1 entao
 interrompa
 fimse
 fimpara
 Retorne sESQ
Fimfuncao
// retorna uma string c/ todos da Direita p/ Esquerda
Funcao Direita(STRING : caracter; QTDE : inteiro) : caracter 
var
 iDIR,xDIR : inteiro
 sDIR,cDIR : caracter
inicio
 xDIR <- Compr(STRING)
 se QTDE > xDIR entao
 QTDE <- xDIR
 fimse
 sDIR <- ""
 para iDIR de xDIR ate 1 passo -1 faca
 cDIR <- copia(STRING,iDIR,1)
 sDIR <- cDIR + sDIR
 QTDE <- QTDE - 1
 se QTDE < 1 entao
 interrompa
 fimse
 fimpara
 Retorne sDIR
Fimfuncao
// retorna uma string compactada, retirando os espaços da Esquerda
Funcao Ltrim(STRING : caracter) : caracter
var
 iLTR,xLTR : inteiro
 sLTR,cLTR,eLTR : caracter
inicio
 xLTR <- Compr(STRING)
 sLTR <- ""
 iLTR <- 1
 eLTR <- Carac(32)
 cLTR <- copia(STRING,iLTR,1)
 Enquanto (cLTR = eLTR) faca
 iLTR <- iLTR + 1
 cLTR <- copia(STRING,iLTR,1)
 se iLTR > xLTR entao
 cLTR <- ""
 fimse
 Fimenquanto
 sLTR <- COPIA(STRING,iLTR,XLTR)
 Retorne sLTR
Fimfuncao
// retorna uma string compactada, retirando os espaços da Direita
Funcao Rtrim(STRING : caracter) : caracter
var
 iRTR,xRTR : inteiro
 sRTR,cRTR,eRTR : caracter
inicio
 xRTR <- Compr(STRING)
 sRTR <- ""
 iRTR <- 1
 eRTR <- Carac(32)
 cRTR <- copia(STRING,xRTR,iRTR)
 Enquanto (cRTR = eRTR) faca
 xRTR <- xRTR - 1
 cRTR <- copia(STRING,xRTR,iRTR)
 se xRTR < 1 entao
 cRTR <- ""
 fimse
 Fimenquanto
 sRTR <- COPIA(STRING,iRTR,XRTR)
 Retorne sRTR
Fimfuncao
// retorna uma string compactada, retirando os espaços da Direita e da Esq.
Funcao Alltrim(STRING : caracter) : caracter 
Var 
 sALL : caracter
inicio
 sALL <- STRING
 sALL <- Ltrim(Rtrim(sALL)) 
Retorne sALL
Fimfuncao
Funcao Vazia(STRING : caracter) : logico
Var 
 sVAZ : caracter
 nVAZ : inteiro
 vVAZ : logico
inicio
 vVAZ <- Falso
 sVAZ <- STRING
 sVAZ <- Ltrim(Rtrim(sVAZ)) 
 nVAZ <- Compr(sVAZ)
 se nVAZ = 0 entao
 vVAZ <- Verdadeiro
 fimse
Retorne vVAZ
Fimfuncao
// FUNÇÕES ESPECÍFICAS DESTE PROGRAMA 
// converte de decimal p/ Hexadecimal
Funcao Dec2Hex(STRING : caracter) : caracter 
var
 xHEX,letrasHEX,vHEX : caracter
 yHEX,dHEX,iHEX,mHEX,pHEX : inteiro
inicio
se Vazia(STRING) entao 
 yHEX <- 0
senao
 yHEX <- Caracpnum(STRING)
fimse
dHEX <- yHEX
letrasHEX <- "ABCDEF"
pHEX <- 0
vHEX <- ""
para iHEX de 1 ate 4 faca
 se yHEX > 0 entao
 mHEX <- (yHEX mod 16)
 se mHEX = 0 entao
 xHEX <- "0" + xHEX
 senao
 se mHEX > 9 entao
 pHEX <- (mHEX - 9)
 vHEX <- copia(letrasHEX,pHEX,1)
 xHEX <- vHEX + xHEX
 senao
 xHEX <- Numpcarac(mHEX)+xHEX
 fimse
 fimse
 yHEX <- yHEX div 16 //fimenquanto
 fimse
fimpara
Retorne xHEX
Fimfuncao 
// converte de decimal p/ Binario 
Funcao Dec2Bin(STRING : caracter) : caracter 
var
 xBIN : caracter
 yBIN,dBIN,iBIN,mBIN : inteiro
 
inicio
se Vazia(STRING) entao 
 yBIN <- 0
senao
 yBIN <- Caracpnum(STRING)
fimse
dBIN <- yBIN
para iBIN de 1 ate 9 faca
 se yBIN > 0 entao
 mBIN <- (yBIN mod 2)
 se mBIN = 0 entao
 xBIN <- "0" + xBIN
 senao
 xBIN <- "1" + xBIN
 fimse
 yBIN <- yBIN div 2
 fimse
fimpara
Retorne xBIN
Fimfuncao
// converte de decimal p/ Octal
Funcao Dec2Oct(String : caracter) : caracter 
var
 xOCT : caracter
 yOCT,dOCT,iOCT,mOCT : inteiro
 
inicio
se Vazia(STRING) entao 
 yOCT <- 0
senao
 yOCT <- Caracpnum(STRING)
fimse
dOCT <- yOCT
para iOCT de 1 ate 8 faca
 se yOCT > 0 entao
 mOCT <- (yOCT mod 8)
 se mOCT = 0 entao
 xOCT <- "0" + xOCT
 senao
 xOCT <- Numpcarac(mOCT) + xOCT
 fimse
 yOCT <- yOCT div 8
 fimse
fimpara
Retorne xOCT
Fimfuncao
// Seção de Comandos programa principal
inicio
 xo <- Replicar("0",3)
 xh <- Replicar("0",3)
 xb <- Replicar("0",8)
// monta o vetor com os 255 códigos em ASCII
 limpatela
 Escreval("=================================================")
 Escreval("================= A G U A R D E =================")
 Escreval("=================================================")
 Escreval(" ")
 para i de 1 ate 255 faca
 xcar <- "<Indisponível>"
 se i < 33 entao
 escolha i
 caso 8
 xcar <- ">Tecla TAB-><-"
 caso 9
 xcar <- ">Backspace<==="
 caso 10
 xcar <- "><Line feed ><"
 caso 13
 xcar <- ">Tecla <Enter>"
 caso 16
 xcar <- ">Seta Direita<"
 caso 17
 xcar <- ">Seta esquerda"
 caso 24
 xcar <- ">Seta Subir<|>"
 caso 25
 xcar <- ">Seta Descer<>"
 caso 26
 xcar <- "Fim de Arquivo"
 caso 27
 xcar <- ">Tecla <<ESC>>"
 caso 32
 xcar <- "Barra de Espaco"
 fimescolha
 senao
 xcar <- Carac(i)
 fimse
 xs <- Numpcarac(i)
 xcf <- Direita(Zeros(3)+xs,3)
 xo <- Direita(Zeros(4)+Dec2Oct(xs),4) // FORMATA NO TAMANHO 4
 xh <- Direita(Zeros(3)+Dec2Hex(xs),3) // FORMATA NO TAMANHO 3
 xb <- Direita(Zeros(8)+Dec2Bin(xs),8) // FORMATA NO TAMANHO 8
 se Compr(Rtrim(xcar)) < 5 entao
 xcar <- Replicar(" ",7)+xcar+Replicar(" ",7)
 fimse
 xo <- Replicar(" ",2)+xo+Replicar(" ",2)
// Aqui monta realmente o vetor com as variáveis formatadas
 xvet[i] <- xcf+" "+xh+" "+xb+" "+xo+" "+xcar
 fimpara
// Aqui mostra na tela
 limpatela
 Escreval("=================================================")
Escreval("================ TABELA ASCII ===================")
 Escreval("=================================================")
 Escreval("Num/Hex/Binários/ Octais / Caracteres")
 para i de 1 ate 255 faca
 Escreval(xvet[i])
 se Int(i/20) = i/20 entao // a cada 20 linhas salte e espere
 Escreval("Tecle <enter> para próximo ou <<ESC>> para sair")
 Leia(xE)
 limpatela
 Escreval("=================================================")
 Escreval("================ TABELA ASCII ===================")
 Escreval("=================================================")
 Escreval("Num/Hex/Binários/ Octais / Caracteres")
 fimse
 fimpara
//
 Escreval("=================================================")
 Escreval("================= FINALIZADO ====================")
 Escreval("=================================================")
fimalgoritmo

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando