Ir para conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membros, 0 visitantes, 0 membros anônimos

Foto
- - - - -

[Resolvido] String para char

  • Por favor, faça o login para responder
5 respostas neste tópico

#1 Pantoja

Pantoja

    パントジャ

  • Members
  • 12.962 posts

Postado 28 setembro 2007 - 18:25

Program minusculo_maiusculo;${APPTYPE CONSOLE}uses sysutils;VARNome,nomeUP: String;Letra: Char;I: integer;Beginwriteln('digite seu nome');readln(nome);for i:= 1 to length(nome) do  begin	Letra:=upcase(copy(nome,i,1); //aqui é o problema *	if i=1 then	begin	  NomeUP:=Letra;	end	 else	begin	  nomeUP:=concat(nomeUP,Letra));	end;		 	  end;writeln('O nome digitado em maiúsculo é: ', nomeUP);sleep(3000);end.
Olá pessoal de lógica e pascal bele? Seguinte fiz um algoritmo para pegar um nome qualquer minúsculo e trasnformá-lo em maiúsculo em pascal. caso vocês copiem e colem no pascal ou console do Delphi dará incompatibilidade entre char e string* normal tendo em vista que a função upcase serve SOMENTE para char e a função copy somente para string. O que eu quero na verdade é converter 1 caracter em string para char. Uma observação é que não pode ser por Matriz pois meus alunos nestaq ocasião nãon conheciam vetor nem matriz logo não daria para fazer este exercício e quando eu passei ele não me atententei a esse "detalhe". Caso alguém conheça um método de conversão viável fico grato. PS. fiz rapidão o algorítmo acima e não rodei ainda, logo pode ter algum erro de grafia ou até mesmo lógico, peço se alguém achar apontar por gentileza. Valew galera gente boa!
  • 0

Publicidade

#2 marcio.theis

marcio.theis
  • Members
  • 5.382 posts

Postado 29 setembro 2007 - 01:12

Bom, pode fazer de duas formas, uma fazendo letra por letra, que seria:
Program minusculo_maiusculo;uses sysutils;VAR	nome: String;	i: integer;beginwriteln('digite seu nome');readln(nome);for i:=1 to length(nome) do	nome[i]:=upcase(nome[i]);writeln('O nome digitado em maiúsculo é: ' + nome);sleep(3000);end.
Ou então usando o comando AnsiUpperCase, ficando muito mais simples...
Program minusculo_maiusculo_2;uses sysutils;VAR	nome: String;beginwriteln('digite seu nome');readln(nome);nome:=AnsiUpperCase(nome);writeln('O nome digitado em maiúsculo é: ' + nome);sleep(3000);end.

  • 0

#3 Pantoja

Pantoja

    パントジャ

  • Members
  • 12.962 posts

Postado 01 outubro 2007 - 18:48

Bom, pode fazer de duas formas, uma fazendo letra por letra, que seria:

Program minusculo_maiusculo;uses sysutils;VAR	nome: String;	i: integer;beginwriteln('digite seu nome');readln(nome);for i:=1 to length(nome) do	nome[i]:=upcase(nome[i]);writeln('O nome digitado em maiúsculo é: ' + nome);sleep(3000);end.
Ou então usando o comando AnsiUpperCase, ficando muito mais simples...

Program minusculo_maiusculo_2;uses sysutils;VAR	nome: String;beginwriteln('digite seu nome');readln(nome);nome:=AnsiUpperCase(nome);writeln('O nome digitado em maiúsculo é: ' + nome);sleep(3000);end.


Uma observação é que não pode ser por Matriz pois meus alunos nestaq ocasião nãon conheciam vetor nem matriz logo não daria para fazer este exercício e quando eu passei ele não me atententei a esse "detalhe".


Opa Marcio Bele?


cara não pode ser por Matriz.

O lance dessa função que você passou ai é bacana. Mas tb fugiu o que eu queria mostrar. Letra por letra pelo for. Mas pelo que vi é inviavel mesmo!


Valew aee Marcio e a todos que deram uma olhada aqui no Tópico.



Abraços
  • 0

#4 Kandrade

Kandrade
  • Members
  • 2.726 posts

Postado 01 outubro 2007 - 22:15

O lance dessa função que você passou ai é bacana. Mas tb fugiu o que eu queria mostrar. Letra por letra pelo for. Mas pelo que vi é inviavel mesmo!

Grande Pantoja, Do jeito que voce quer tem que usar um vetor e uma variável indexando. Não tem como passar caracter por caracter de uma string sem isso, a não ser que voce crie uma função que retorne um caracter de uma string e com uma variável global voce controle o caracter a ser retornado. http://forum.imaster...tyle_emoticons/default/thumbsup.gif
  • 0

#5 Pantoja

Pantoja

    パントジャ

  • Members
  • 12.962 posts

Postado 02 outubro 2007 - 18:16

O lance dessa função que você passou ai é bacana. Mas tb fugiu o que eu queria mostrar. Letra por letra pelo for. Mas pelo que vi é inviavel mesmo!

Grande Pantoja, Do jeito que voce quer tem que usar um vetor e uma variável indexando. Não tem como passar caracter por caracter de uma string sem isso, a não ser que voce crie uma função que retorne um caracter de uma string e com uma variável global voce controle o caracter a ser retornado. http://forum.imaster...tyle_emoticons/default/thumbsup.gif

opaaaaaaaaaa valew pela força Kandrade, sabe cara é que eu passei esse exercício antes de ensinar vetor. Na verdade na aula seguinte eu ensinei e disse que com vetor daria para fazer na boua mas que eu ia ver se tinha algum método de conversão que "salvasse" esse exemplo pois ele lógicamente está perfeito. Tirando a incompatibilidade claro. Bem, obrigadmo mais uma vez ao Marcio e a você Kandrade! http://forum.imaster...tyle_emoticons/default/thumbsup.gif PS. se quiser podem colocar como "RESOLVIDO"
  • 0

#6 Kandrade

Kandrade
  • Members
  • 2.726 posts

Postado 02 outubro 2007 - 22:42

Foi nada Pantoja. Abração cara!!! http://forum.imaster...tyle_emoticons/default/thumbsup.gif

opaaaaaaaaaa valew pela força Kandrade, sabe cara é que eu passei esse exercício antes de ensinar vetor. Na verdade na aula seguinte eu ensinei e disse que com vetor daria para fazer na boua mas que eu ia ver se tinha algum método de conversão que "salvasse" esse exemplo pois ele lógicamente está perfeito. Tirando a incompatibilidade claro. Bem, obrigadmo mais uma vez ao Marcio e a você Kandrade! http://forum.imaster...tyle_emoticons/default/thumbsup.gif PS. se quiser podem colocar como "RESOLVIDO"


  • 0




Publicidade

/ins>