Ir ao conteúdo
  • Cadastre-se

Pergunte simples sobre um comando do Pascal


Lukas0145

Posts recomendados

Pergunta*

Olá,

Eu estava fazendo um algoritmo em Visualg e estava passando-o para Pascal, porém apenas não consegui achar uma função de um comando muito importante.

O comando no Visualg é: POS, o qual é designado a pegar uma posição de um texto que o usuário vai digitar em um vetor.

Exemplo:



Escreval ("Digite o nome de um animal:") //Digitar o nome do animal desejado
Leia (texto)



Para i de 1 ate 20 faca //Vetor limitado até o 20
Se[B] pos[/B](maiusc(texto), maiusc(frases[i])) > 0 então
// Caso o texto digitado esteja dentro do vetor, ele irá mostrar
Escreval (frases[i])

Fimse

Fimpara

Que função no pascal trocaria esse Pos? Lembrando que nele passa 2 parâmetros e caso ele seja > 0 é porque achou algo dentro do vetor.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá Lukas0145.

O comando no Visualg é: POS, o qual é designado a pegar uma posição de um texto que o usuário vai digitar em um vetor.

Tanto no VisuAlg quanto no Pascal, ambos estão voltados a trabalhar com "caracteres"... sendo respectivamente caracter/caractere no VisuAlg e string para Pascal. Vale salientar que a sintaxe do comando não tem nenhuma relação com o «texto que o usuário vai digitar em um vetor» (obs.: não vetor, e sim caracter) ou qualquer "lógica" do programador. Sempre enxergue os comandos de formas autônomas. É uma questão bem interessante. Pense somente "em tipos" (caractere, inteiro, real) em não em "relações" (letra, número, valor). ^_^

Exemplo em Pascal:

[color=#0000ff]PROGRAM[/color] NumPerfeito[color=#000000];[/color]
[color=#0000ff]uses[/color]
CRT[color=#000000];[/color]
[color=#0000ff]BEGIN[/color]
[color=#ff0080]write[/color][color=#000000]([/color][color=#a31515]'"dw" esta na posicao '[/color][color=#000000],[/color][color=#ff0080]pos[/color][color=#000000]([/color][color=#a31515]'dw'[/color][color=#000000],[/color] [color=#a31515]'Clube do Hardware'[/color][color=#000000]),[/color][color=#a31515]' em Clube do Hardware.'[/color][color=#000000]);[/color]
readln[color=#000000];[/color]
[color=#0000ff]END[/color][color=#000000].[/color]

Que função no pascal trocaria esse Pos? Lembrando que nele passa 2 parâmetros e caso ele seja > 0 é porque achou algo dentro do vetor.

Então, só frisando: o comando em si serve para "retornar a primeira posição onde é encontrado uma determinada cadeia de caracteres dentro de outra cadeia de caracteres". Retornar "0" para não encontrada não é a função dela, mas sim uma característica, ou seja, se encontrar retornar a posição, senão, retorna "0". No caso, você pode está utilizando desta característica para determinada lógica...

Em fim, no Pascal também é Pos(). Funciona da mesma forma que no VisuAlg.

Mais aqui na documentação do Free Pascal.

Abraços

Link para o comentário
Compartilhar em outros sites

Olá Lukas0145.

Tanto no VisuAlg quanto no Pascal, ambos estão voltados a trabalhar com "caracteres"... sendo respectivamente caracter/caractere no VisuAlg e string para Pascal. Vale salientar que a sintaxe do comando não tem nenhuma relação com o «texto que o usuário vai digitar em um vetor» (obs.: não vetor, e sim caracter) ou qualquer "lógica" do programador. Sempre enxergue os comandos de formas autônomas. É uma questão bem interessante. Pense somente "em tipos" (caractere, inteiro, real) em não em "relações" (letra, número, valor). ^_^

Exemplo em Pascal:

[color=#0000ff]PROGRAM[/color] NumPerfeito[color=#000000];[/color]
[color=#0000ff]uses[/color]
CRT[color=#000000];[/color]
[color=#0000ff]BEGIN[/color]
[color=#ff0080]write[/color][color=#000000]([/color][color=#a31515]'"dw" esta na posicao '[/color][color=#000000],[/color][color=#ff0080]pos[/color][color=#000000]([/color][color=#a31515]'dw'[/color][color=#000000],[/color] [color=#a31515]'Clube do Hardware'[/color][color=#000000]),[/color][color=#a31515]' em Clube do Hardware.'[/color][color=#000000]);[/color]
readln[color=#000000];[/color]
[color=#0000ff]END[/color][color=#000000].[/color]

Então, só frisando: o comando em si serve para "retornar a primeira posição onde é encontrado uma determinada cadeia de caracteres dentro de outra cadeia de caracteres". Retornar "0" para não encontrada não é a função dela, mas sim uma característica, ou seja, se encontrar retornar a posição, senão, retorna "0". No caso, você pode está utilizando desta característica para determinada lógica...

Em fim, no Pascal também é Pos(). Funciona da mesma forma que no VisuAlg.

Mais aqui na documentação do Free Pascal.

Abraços

Olá,

Obrigado por responder! =)

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...