Ir para conteúdo

Arquivado

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

Pantoja

[Resolvido] String para char

Recommended Posts

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.imasters.com.br/public/style_emoticons/default/thumbsup.gif
opaaaaaaaaaavalew 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.imasters.com.br/public/style_emoticons/default/thumbsup.gif PS. se quiser podem colocar como "RESOLVIDO"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi nada Pantoja.Abração cara!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

opaaaaaaaaaavalew 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.imasters.com.br/public/style_emoticons/default/thumbsup.gif PS. se quiser podem colocar como "RESOLVIDO"

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.