Polecenie FOR nie tobi tego co chcę :)

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
Awatar użytkownika
Karl
Majsterkowicz
Posty: 75
Rejestracja: 3 gru 2014, 10:00

Polecenie FOR nie tobi tego co chcę :)

Post autor: Karl » 4 kwie 2021, 16:24

Witajcie ponownie.
To znowu ja. Dziś mam pytanie z poziomu przedszkolnego.

Programik ma robić raport zdarzeń na wejściu cyfrowym.
Zrobione tak, działa:::::

Kod: Zaznacz cały

//Wstępna deklaracja:
 String Log1 = "s1";
 String Log2 = "s2";
 String Log3 = "s3";

Loop:()
 message += ("\n1: " + Log1);  
 message += ("\n2: " + Log2); 
 message += ("\n3: " + Log3);  
Wynikiem jest;
1: s1
2: s2
3: s3


Taka składnia jest to mało fachowa, więc chciałem przejść na taki zapis::

Kod: Zaznacz cały

//Wstępna deklaracja:
 String Log1 = "s1";
 String Log2 = "s2";
 String Log3 = "s3";
 
 Loop()
 for (int f=1; f<=3; f++)
      {
        message += "\n";
        message += f;  
        message += ": ";
        String Wyliczanie = "Log" + String(f);
        message += (Wyliczanie);
      }
Niestety tutaj wynikiem jest:;
1: Log1
2: Log2
3: Log3


Jak dać znać programowi, że chciałem wyświetlić zmienną Log1...3, a nie String ?

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


stiven
Złota rączka
Posty: 1655
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Polecenie FOR nie tobi tego co chcę :)

Post autor: stiven » 4 kwie 2021, 18:01

W arduino i w C nie ma możliwości zrobienia tego, nie da się odwołać do zmiennej w inny sposób, niż bezpośrednio. Ale zamiast trzech zmiennych, możesz użyć tablicy i odwoływać się do komórek tablicy.

Kod: Zaznacz cały

//Wstępna deklaracja:
 String Log[3];
 Log[0] = "s1"
 Log[1] = "s2";
 Log[2] = "s3";
 
 //lub w jednej linii z jednoczesną deklaracją wartości komórek:
 // String Log[] = {"s1", "s2", "s3"};
 
 Loop()
 for (int f=0; f<=2; f++)
      {
        message += "\n";
        message += f;  
        message += ": ";
        message += Log[f];
	  }
Jak tylko deklaruje się tablicę, bez jednoczesnego wpisywania wartości komórek, to trzeba wpisać liczbę komórek, jaką mam mieć tablica. Przy zadeklarowaniu tablicy z trzema komórkami, mamy komórki od 0 do 2, indeks pierwszej komórki to zawsze 0. Przy deklarowaniu tablicy z jednoczesnym ustawieniem wartości komórek, nie wpisuje się w nawiasy kwadratowe liczby komórek, no bo ich liczba wynika z liczby przypisanych wartości. I tak samo, pierwsza przypisana wartość będzie w komórce o indeksie 0, druga w komórce 1, itd.
Awatar użytkownika
Karl
Majsterkowicz
Posty: 75
Rejestracja: 3 gru 2014, 10:00

Re: Polecenie FOR nie tobi tego co chcę :)

Post autor: Karl » 4 kwie 2021, 18:56

Wyjaśniłeś zrozumiale i przejrzyście.
Działa, liczy, wyświetla.
Dziękuję bardzo !
ODPOWIEDZ

Strony partnerskie: