Skocz do zawartości

Tablica liderów


Popularna zawartość

Pokazuje zawartość z najwyższą reputacją 18.08.2019 we wszystkich miejscach

  1. 3 punkty
    Dzięki za ten przykład, bo zwykle staram się szerokim łukiem omijać tablice wielowymiarowe, zawsze jest z nimi "jakiś kłopot" Niemniej jednak zadanie wyzwoliło pokłady badawcze. Musiałem przypomnieć sobie teorię i zrobić kilka przykładów, ponieważ nie jestem zbyt biegły w C oczywiście skorzystałem z debuggera, ale nie było mowy o tym, że nie można skorzystać W odpowiedzi na pytanie wartość będzie równa 0. Dlaczego? Najciekawszy jest sposób inicjalizacji, zapis w nawiasami kwadratowymi pierwszy raz widzę (brak doświadczenia), ale z tego co zdążyłem ustalić, to podmienia wartości w konkretnych polach pamięci (wiersza), zgodnie względnym wskaźnikiem w wierszu. Zatem po inicjalizacji zmienna tab będzie miała takie wartości w pamięci: tab[][4] = { { 23, 2, 7, 1 }, { 4, 1, 0, 0 }, { 0, 0, 2, 11 }, { 0, 27, 0, 7 }, { 9, 2, 1, 0 } }; Wartości 2 oraz 27 z wiersza 2 i 3 zajmą miejsca zgodnie z podanym wskaźnikami odpowiednio 2 oraz 1, "rozpychając" na inne pozycje resztę wartości w wierszach. Zatem patrząc na wyrażenie *(*(tab+2)+1) mamy wskazanie na wartość 2 wiersza i pierwszej kolumny (licząc od zera). Nie bez powodu "mówi" się, że tablica 2 wymiarowa to "wskaźnik na wskaźnik", a trójwymiarowa to "wskaźnik na wskaźnik na wskaźnik" itd. z innymi wymiarami.
  2. 2 punkty
    Cześć, każdy z nas musi od czasu do czasu odświeżać sobie znane już wiadomości z używanego języka programowania (szczególnie, że "na co dzień" nie używamy wszystkich z zaawansowanych konstrukcji języka) lub uczyć się nowych rzeczy dla szybko zmieniających się standardów. Ja "na co dzień" używam języka C (nieobiektowego ponieważ w programowaniu mikro-kontrolerów nadal rzadko korzysta się z C++). Pomyślałem sobie, że fajnie byłoby na forum, gdybyśmy co jakiś czas zadawali sobie pytania dotyczące programowania w Językach C/C++ dotyczące jakichś trudniejszych do zrozumienia konstrukcji języka. Oto moje pierwsze pytanie: Załóżmy, że mamy definicję tablicy tab: int tab[5][4] = { {23, 2, 7, 1}, {4, 1}, {[2]=2, 11}, {[1]=27, 0, 7}, {9, 2, 1} }; Kto wie jaka będzie wartość wyrażenia: *(*(tab+2)+1) Zakładamy, że używamy kompilatora C zgodnego przynajmniej ze standardem C99 np. popularnego gcc (Linux, można go też uzywać pod Windows instalując pakiet "mingw"). Proszę, o krótkie uzasadnienie teoretyczne odpowiedzi (ponieważ można napisać prosty program i sprawdzić wartość). Czekam też na ciekawe pytania dotyczące programowania w C/C++ od Was Pozdrawiam
  3. 2 punkty
    Cześć Zrobiłem kalkulator kodu paskowego rezystora, dla rezystorów 3, 4 i 5 paskowych: https://resistor-calc.surge.sh Całość działa wyłącznie w oparciu o javascript, zmiana dowolnego parametru jest natychmiast odzwierciedlana w interfejsie całej aplikacji. Dodatkowo jest tryb PWA, tj. można ją zainstalować z interfejsu przeglądarki i korzystać z niej offline jak z natywnej aplikacji. Chciałbym poznać waszą opinię i dowiedzieć się czy dałoby się coś zrobić lepiej.
  4. 1 punkt
    Cześć, odpowiedź jest bardzo dobra i uzasadnienie także. Raczej rzadko używa się "podwójnych" wskaźników do poruszania się po tablicy dwuwymiarowej, łatwiej jest użyć indeksów. Niemniej warto wiedzieć jak to działa na wskaźnikach (przenoszą się te zależności także na tablice o większej liczbie wymiarów - wynika to wprost z rozmieszczenia danych tablicy w pamięci. I tak dla tablic trzy wymiarowych mamy już potrójną a nie podwójną de-referencję. To może teraz kolega zada jakieś pytanie - zobaczymy, czy uda się odpowiedzieć poprawnie Pozdrawiam
  5. 1 punkt
    Hej, To dobra i starannie opracowana aplikacja. Działa doskonale w obie strony - zarówno jak podaję kolory, jak i kiedy wpisuję wartość. Jeżeli chcesz coś zrobić lepiej to dodaj informację, jak obrócić rezystor do odczytu i w jakiej kolejności odczytywać paski.
  6. 1 punkt
    Za spoilerowanie powinno być 100zł grzywny albo 25 lat wiezienia.
Tablica liderów jest ustawiona na Warszawa/GMT+02:00
×
×
  • Utwórz nowe...