Go Down

Topic: String (Read 821 times) previous topic - next topic

Kotch

em visual basic faria assim:
dim entrada as string         ' declaro uma variavel chamada entrada como string
dim saida    as integer       ' declaro  uma variavel chamada saida    como inteiro

saida = rnd * 1000             ' gero um numero aleatorio entre 1 e 1000

for x 1 to 10
    entrada = entrada + str$ (saida)  ' coloco na variavel entrada, o conteudo dela mesma somada a variavel inteira, transformada em string
next

e pro arduino como faço a linha vermelha?
  :~
????????????????????

Kotch

Desculpas pessoal, tem um erro no codigo acima!

a linha:
saida = rnd * 1000             ' gero um numero aleatorio entre 1 e 1000

ta dentro do loop!

:smiley-roll:
????????????????????

luiz-sp

Eu não estou com o arduino aqui para ver o resultado mas ele aceita a soma sem a necessidade de fazer a conversão .
Pode fazer direto que ele compila sem dar erro (esse teste eu fiz :) ).

entrada = entrada + saida;

Kotch

Luiz, não rola, o problema não é a converão e sim a concatenação
Aceita compilação mas na execução não mostra o conteudo anterior da variavel somado ao nova variavel saida
na realidade quero gerar 10 caracteres aleatóriamente:
no primeiro loop suponhamos que o aleatorio gerado foi x
agora entrada =x
no segundo loop:
aleatorio gerado foi k
agora entrada =x que tinha antes mais o k que foi gerado agora entao entrada=xk
e assim sucessivamente ate o 10 mas nao rola, como faço isto?

=(
????????????????????

luiz-sp

Entendi .

Acho que é isso que vc quer http://arduino.cc/en/Reference/StringConcat .

Kotch


Entendi .

Acho que é isso que vc quer http://arduino.cc/en/Reference/StringConcat .





Nao rola!
Alguem mais? algum pitaco?
=(
????????????????????

luisandrade

Eu consegui alguma coisa aqui, talvez seja o que está procurando.
int x;
float s;

for(int i=0; i<100; i++){
x = random(1000);
s = s + x;







bubulindo

Já estudaste vectores?

Code: [Select]

char saida[11];

saida[10] = '\0'; //para ser uma string.

for (int i = 0, i<10; i++) {
   saída[i] = random()%255; //o random gera valores até 0x7fff (~32000), e os códigos ASCII vão até 255 (extendido).
   //pode ainda ser precisa alguma lógica porque os primeiros 32 códigos ASCII são de controlo e não aparecem na porta série. 
}

Serial.println(saida);



Já agora, é preferível investir 3 horas a estudar e experimentar strings (como fiz aqui em cima), que perder mais horas a usar a classe String e não perceber porque não funciona ou como cortar outras partes do código para que caiba tudo dentro do limite de memória do chip.

http://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html#gae23144bcbb8e3742b00eb687c36654d1
http://www.asciitable.com/
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Go Up