Go Down

Topic: String (Read 1 time) 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/
This... is a hobby.

Go Up