Ir ao conteúdo

Posts recomendados

  • Membro VIP
Postado

Olá.

 

1 hora atrás, Vinícius Werneck disse:

Oi pessoal. Estou com curiosidade em saber se o Espaço vazio ("") possui código ANSI, pois quero comparar palavras para ver quem vem primeiro.


Pelo que consta seria 0 (zero), ou seja, seria a representação do null character. Vide Caractere Nulo no Wikipedia.

 

Mas não sei como funcionaria no Visualg... teria que entender melhor o contexto.

 

ADENDOS:

- acho "" estaria mais para "caractere nulo" mesmo. O termo "espaço vazio" seria " ", ou seja, existe um espaço, mas ele está vazio;

- a tabela utilizada no Visualg é ASCII (ANSI é outra);

 

 

No aguardo.

  • Curtir 1
Postado

Oi.

No caso eu fiz uma função para comparar qual conjunto de strings vem na frente.

A função ia percorrendo o texto pela variável i, que vai de 1 ate o comprimento do maior nome.

Ex.: Se tivesse

nome1 = "palavra" (7 caractere) e nome2 = "palavraA" (8 caracteres). Então i vai de 1 ate 8. Na hora que chega para comparar  A de nome1 com "" de nome2,  a função retornou para mim nome1 vemantes que nome2. Então "" só pode ser o caractere 0, mesmo... Eu fiquei curioso em saber qual  era o código para "" porque no meu livro a tabela começa com código 32 e não 0 :)

Abraços

 

 

 

 

 

 

 

  • Membro VIP
Postado
3 horas atrás, Vinícius Werneck disse:

A função ia percorrendo o texto pela variável i, que vai de 1 ate o comprimento do maior nome.

Por quê do maior? não daria para verificar o tamanho individualmente?

 

 

 

3 horas atrás, Vinícius Werneck disse:

Então "" só pode ser o caractere 0, mesmo.

Nops! Tem que tomar cuidado para não se atrapalhar... zero seria o código, ou seja, código zero representa o caractere "null carater" ("não é caractere" ou "nulo"). Já o caractere 0 tem como o código 48 tanto no ASCII, tanto no ANSI. Etc.

 

Obs.: pelo que consta, ANSI não é uma codificação em si, ou seja, é o nome do instituto, não da codificação... assim como temos o ABNT. Qualquer coisa dá uma pesquisa mais a fundo sobre.

 

 

 

3 horas atrás, Vinícius Werneck disse:

Eu fiquei curioso em saber qual  era o código para "" porque no meu livro a tabela começa com código 32 e não 0

Essa tabela provavelmente deve ser apenas dos "caracteres imprimíveis"... eu não consegui encontrar uma tabela completa do ANSI (suposta tabela), só uma que começa justamente do 32 também.


 

É com Visualg mesmo ou outra linguagem?

 

Se puder posta o código aqui que analisamos melhor..

 

 

No aguardo.

Postado
2 horas atrás, Simon Viegas disse:

Por quê do maior? não daria para verificar o tamanho individualmente?

 

 

Olá..

Não entendi sobre verificar individualmente.

Da forma que fiz, tive que colocar para i percorrer o comprimento do maior nome. Defini uma variável R de retorno, N1 e N2 que são os parâmetros para os nomes. A variável R vai retornar 3 situações: maior se N1 vier depois que N2, menor se N1 vier antes que N2, ou igual se N1 for igual a N2.

 

O i vai variar de 1 até o comprimento do maior nome. Em cada repetição do Repita, a função vai comparar os caracteres na posição i em cada um dos nomes.

Ex.: N1 = "NOME" e N2="NOMEB". A variável R vai começar vazia e continuar vazia até i chegar no valor 4. Quando i chega na valor 5, a função vai ver que "" (caractere da posição 5 em N1) vai vir antes de "B" (caractere na posição 5 de N2) Se eu fizesse para verificar pelo comprimento do menor nome, i só iria até 4, então R continuaria vazio. Por isso, fiz a variável i mudar de valor até chegar ao comprimento do maior nome..

 

No VisualG:

algoritmo "comparanomes"

funcao comparanome(N1,N2: caractere):caractere
var
   R : caractere
   compri_maior_nome: inteiro
   i: inteiro
inicio
   R <- ""
   Se (N1 = N2) então
      R <- "igual"
   Senao
      Se (compr(N1) > compr(N2)) então
         compri_maior_nome <- compr(N1)
      Senao
         compri_maior_nome <- compr(N2)
      Fimse
      i <- 1
      Repita
         Se (copia(N1,i,1) > copia(N2,i,1)) então
            R <- "maior"
         Fimse
         Se (copia(N1,i,1) < copia(N2,i,1)) então
            R <- "menor"
         Fimse
         i <- i + 1
      Ate (i > compri_maior_nome) ou (R <> "")
   Fimse
   Retorne R
fimfuncao

var
   nome1, nome2, a: caractere
inicio
   a <- compara(nome1,nome2)        
fimalgoritmo                           

 

  • Membro VIP
Postado

Olá.

 

10 horas atrás, Vinícius Werneck disse:

Não entendi sobre verificar individualmente.

Eu não tinha entendido o contexto, mas já consegui entender. Ficou muito bom!

 

Obs.: apenas um detalhe: os se dentro do repita precisam do senao também, já que são mutuamente excludentes.

Postado
Em 15/01/2018 às 09:51, Simon Viegas disse:

Olá.

 

Eu não tinha entendido o contexto, mas já consegui entender. Ficou muito bom!

 

Obs.: apenas um detalhe: os se dentro do repita precisam do senao também, já que são mutuamente excludentes.

Obrigado :)

Ok

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...