Ir ao conteúdo
  • Cadastre-se

Pascal execi, criar algoritmo para converter letras minusculas para maiúsculas


Posts recomendados

bom galera, o professor passou esse algoritmo para mim, só que estou com dificuldades na logica de criar esse algoritmo, alguem poderia me dizer como seria feito esse algoritmo.

 

criar algoritmo que converta letras minusculas para maiúsculas e maiúscula para minuscula, e que faça frases de trás para frente.

Link para o comentário
Compartilhar em outros sites

  • Moderador

Prezado,

 

Seja bem-vindo ao Fórum do Clube do Hardware; obrigado por sua participação! :)

 

Quanto à sua dúvida, para podermos lhe ajudar, nós precisamos de mais alguns detalhes, tais como:

 

  • parte do código que já foi feito;
  • caso não tenha um código feito, qual o algoritmo que você pretende usar para resolver o problema;
  • você tem experiência com esta linguagem de programação?

 

Por favor, não leve para o lado pessoal, mas o nosso objetivo principal aqui é ajudar você a resolver o problema, se simplesmente postássemos um código já pronto, você nunca aprenderia de fato... ;)

 

Atenciosamente,

Equipe Clube do Hardware

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

bom, desculpe. então eu pretendo fazer esse algoritmo com vetores, a minha logica é criar um vetor com letras maiúsculas e outro com minusculas depois fazer o vetor minusculo receber letras maiúscula e assim vice e versa.

não tenho muita experiencia com programação, estou no primeiro semestre da faculdade.

 

comecei o meu algoritmo assim..

 

Program Pzim ;
uses crt;
var
    vetor: array [1..26] of string;
    a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z : string;
Begin
    vetor [1] := a;
    vetor [2] := b;
    vetor [3] := c;
    vetor [4] := d;
    vetor [5] := e;
    vetor [6] := f;
    vetor [7] := g;
    vetor [8] := h;
    vetor [9] := i;
    vetor [10] := j;
    vetor [11] := k;
    vetor [12] := l;
    vetor [13] := m;
    vetor [14] := n;
    vetor [15] := o;
    vetor [16] := p;
    vetor [17] := q;
    vetor [18] := r;
    vetor [19] := s;
    vetor [20] := t;
    vetor [21] := u;
    vetor [22] := v;
    vetor [23] := w;
    vetor [24] := x;
    vetor [25] := y;
    vetor [26] := z;
    
        
    
End. 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderador

@Rodrigo Santos_719236 Faz muito tempo que não programo com Pascal.

Mas você pode usar a seguinte lógica:

 

Utilizar dois vetores, onde um é armazenado as letras minusculas e outro as letras maiúsculas.

Uma variável do tipo string para a frase.

 

Então percorrer a frase e comparar caractere por caractere e testar se é maiúsculo ou minusculo.

 

Com relação a inversão,  você percorre a frase com um laço de for e inverte! 

Enfim,  estas é as únicas dicas que posso te dar por enquanto.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderador

@Rodrigo Santos_719236 Não sei como seu professor ensinou a matéria, ou se ele permite que use resoluções práticas.

 

Mas o pascal parece que tem uma função que converte minusculo para maiúsculo "UpCase()"

Se não puder usar a solução prática da função.. terias que verificar caractere por caractere com o substring 

http://stackoverflow.com/questions/12253682/pascal-substr-equivalent

 

Como disse anteriormente, não posso te ajudar com o código, pois não programo mais em pascal. Mas a lógica é a praticamente a mesma em qualquer linguagem!

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

bom eu fiz os vetores e declarei a as variável da frase, o problema é como o sistema vai distinguir cada letra na frase ? usando um contador por exemplo ? eu ja tentei com o up case mas se o usuário digitar uma letra em maiúsculo o programa tem que fazer virar minusculo

Program Pzim ;
uses crt;
var
    vetor: array [1..26] of string;
    vetorB: array [27..52] of string;
    a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z : string;
    frase: string;
    indice: integer;
Begin
    vetor [1] := a;
    vetor [2] := b;
    vetor [3] := c;
    vetor [4] := d;
    vetor [5] := e;
    vetor [6] := f;
    vetor [7] := g;
    vetor [8] := h;
    vetor [9] := i;
    vetor [10] := j;
    vetor [11] := k;
    vetor [12] := l;
    vetor [13] := m;
    vetor [14] := n;
    vetor [15] := o;
    vetor [16] := p;
    vetor [17] := q;
    vetor [18] := r;
    vetor [19] := s;
    vetor [20] := t;
    vetor [21] := u;
    vetor [22] := v;
    vetor [23] := w;
    vetor [24] := x;
    vetor [25] := y;
    vetor [26] := z;
    
    vetorB [27] := A;
    vetorB [28] := B;
    vetorB [29] := C;
    vetorB [30] := D;
    vetorB [31] := E;
    vetorB [32] := F;
    vetorB [33] := G;
    vetorB [34] := H;
    vetorB [35] := I;
    vetorB [36] := J;
    vetorB [37] := K;
    vetorB [38] := L;
    vetorB [39] := M;
    vetorB [40] := N;
    vetorB [41] := O;
    vetorB [42] := P;
    vetorB [43] := Q;
    vetorB [44] := R;
    vetorB [45] := S;
    vetorB [46] := T;
    vetorB [47] := U;
    vetorB [48] := V;
    vetorB [49] := W;
    vetorB [50] := X;
    vetorB [51] := Y;
    vetorB [52] := Z;
    
    writeln('Digite a frase...: ');
    readln (frase);
    
 
    
    
    
        
    
        
    
End.

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Rodrigo Santos_719236 Você está fazendo isso de maneira errada.

Como mencionei anteriormente.  SE e somente SE o seu professor quer que faça o algoritmo,  você precisa percorrer a quantidade de caracteres e substituir quando necessário.

 

Para percorrer, é necessário que saiba como aplicar o laço de FOR.

Agora se o seu professor permitir a resolução por funções, podes usar upCase() para converter tudo para maiúsculo, qualquer letra que estiver em minusculo 

 

http://stackoverflow.com/questions/34949559/check-input-character-pascal

Não vou dar códigos aqui, mas posso dizer que declarando as 26 letras do alfabeto na variável está errado, e definindo os valores de cada índice manualmente também está errado.

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@Rodrigo Santos_719236 Bom, este é o problema do exercício! Não podemos simplesmente dizer COMO fazer.

Estamos apenas dando o norte para você! 

Outra dica que posso dar é você primeiro descobrir o tamanho da string usando length. sabendo o tamanho você pode pegar o caractere e testar.. se ela é maiúscula ou não, dependendo do seu vetor.

Deixo um slide com uma explicação mais aprofundada do pascal

http://pt.slideshare.net/MarcusVinicius36/linguagem-de-programao-pascal

 

 

Assim já estou dando dicas demais, os alunos precisam pensar um pouco :) 

PS: Um dos motivos que não darei código é porque além de prejudicar o seu estudo, seu professor estará pesquisando aqui se os alunos estão copiando ou estudando.

 

Espero que entenda e boa sorte

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá.

 

Temos o problema:

16 horas atrás, Rodrigo Santos_719236 disse:

criar algoritmo que converta letras minusculas para maiúsculas e maiúscula para minuscula, e que faça frases de trás para frente.

 

Que no caso são divididos em duas partes.... 1) "up case" e "down case"; e  2) espelhamento.

Se preferir, faça logo o segundo, que é bem mais fácil!!!

 

Vamos lá:

 

1) TIPO DE DADO x VARIÁVEIS

 

14 horas atrás, Rodrigo Santos_719236 disse:

var
  vetor: array [1..26] of string;
  vetorB: array [27..52] of string;
  a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z : string;
  frase: string;
  indice: integer;

 

 

Está declaração das letras "a" ao "z" do tipo string está conceitualmente errada.. Podemos dizer que as letras são "dados", ou seja, está contida em um "tipo" (caracteres)... de uma maneira mais simples, tente imaginar que você queria trabalhar com números, você iria declarar o "1", "2", "3"... do tipo interger? Enfim... pode apagar toda a terceira de variáveis!

 

2) ACESSO A CARACTERE (letra) DA FRASE

Uma string no Pascal se comporta como um "array de char de 255 posições", ou seja, se você quer uma letra em determinada posição, basta acessar utilizando a posição com "[]", ex.:
 

var
  frase: string;
begin
frase:='Bora Beea Minha Porreta';
writeln(frase[11]); //vai imprimir a quinta letra "B")

Outra exemplo auto explicativo

letra:=frase[10]; //decima letra da frase

Esse recurso serve para os 2 "sub-programas".

 

3) VERIFICAÇÃO DA LETRA

Creio que o uso do UpCase() ou qualquer outra função (de tratamento de strings) pronta, ou mesmo achar uma algoritmo pronto, deve ser evitada... Pois creio que o objetivo do exercício seja desenvolver o raciocínio, e usar "algo pronto perderia a graça"... então, tendo o recurso do item 2), já elimina uns dos desafios que era de "coletar" as letras da frase.

 

 

 

Foque no "tendo uma letra, como retornar o valor invertido no sentido de minúsculo e MAIÚSCULO?"

 

***

 

Para facilitar no processo criativo, em vez de uma frase, leia apenas uma letra e imprima o "caractere convertido". Depois passar para uma frase é fácil.

 

No aguardo.

 

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...