Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Cursos Online iMasters
Foto:

[Resolvido] String para char

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

#1 Pantoja

Pantoja

    パントジャ

  • Membros
  • 12.962 posts

Postado 28 setembro 2007 - 18:25

Program minusculo_maiusculo;
${APPTYPE CONSOLE}

uses sysutils;

VAR
Nome,nomeUP: String;
Letra: Char;
I: integer;


Begin
writeln('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

#2 marcio.theis

marcio.theis
  • Membros
  • 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;
begin
writeln('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;
begin
writeln('digite seu nome');
readln(nome);
nome:=AnsiUpperCase(nome);
writeln('O nome digitado em maiúsculo é: ' + nome);
sleep(3000);
end.

  • 0

#3 Pantoja

Pantoja

    パントジャ

  • Membros
  • 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;
begin
writeln('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;
begin
writeln('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
  • Membros
  • 2.671 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.

:thumbsup:
  • 0

#5 Pantoja

Pantoja

    パントジャ

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

:thumbsup:



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!


:thumbsup:


PS. se quiser podem colocar como "RESOLVIDO"
  • 0

#6 Kandrade

Kandrade
  • Membros
  • 2.671 posts

Postado 02 outubro 2007 - 22:42

Foi nada Pantoja.

Abração cara!!!


:thumbsup:

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!


:thumbsup:


PS. se quiser podem colocar como "RESOLVIDO"


  • 0




Publicidade

/ins>