Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Porównywanie liczb bez wykorzystania tablic


piotrekkkkkk

Rekomendowane odpowiedzi

Opublikowano

Cześć ;)

 

Mam problem jak zabrać się za program, który z dowolnie elementowego ciagu (np. 12,45,1,2,3,5,9,12,55,55) sprawdzi czy sasiednie liczby są takie same. Niby banał ale jak zrobić takie coś bez wykorzystania tablic?

Macie jakieś pomysły??

Obama wie, co robisz!!!
131894.jpg                                                                                                                                                    4906167742.png

                                                                                                                                                                                                                                                                                      LTE Play Opole

Opublikowano

Nie da się tego zrobić bez tablic/vectorow/whatever

3587513.png


Potrzebujesz pomocy? Pisz śmiało na PW/Skype/Gadu-Gadu!


(albo napisz na forum... ^.^)

Opublikowano

Da się - trzymaj po 2 liczby(powiedzmy a i b ), ostatnia(a) i obecna( b ). Jak są równe(a == b ) to wiadomo co, jak nie to do a wsadź tą z b(a = b ), do b wczytaj nową(np. std::cin >> b ) - i tak dopóki nie znajdziesz.

 

A gdyby to robić na tablicach, to można by wykorzystać std::adjacent_find.

Opublikowano

Pytanie - dlaczego chcesz to robić bez tablic? Pewnie, że się da robiąc to kawałek po kawałku na zwykłych zmiennych, lub nawet przez wyrażenia regularne pewnie, ale po co wiązać sobie ręce?

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Opublikowano

@Hans Kloss PL Bo taka jest treść zadania, jako wyzwanie, nauczyć się jak można to zrobić, nie marnować pamięci - jest mnóstwo powodów.

 

Swoją droga, jeśli chodzi o regexa dla takiej formy jaką podał autor:

(\d+),\1
Opublikowano

@Fireho

No tak - jedyne co mi przychodzi do głowy to jakiś spoj, dlatego pytam - czy ograniczenia ma narzucone, czy sobie je sam nakłada bo np nie radzi sobie z pętlą for.

A co do marnowania pamięci - pamięć zmarnowana to pamięć niewykorzystana - jeśli kosztem większego wykorzystania (nie zużycia!) pamięci zyskasz prostotę i czytelność, a program nadal mieści się z założonych ramach to nie widze przeciwskazań.

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Opublikowano

Takie zadanie babka dała i zaznaczyła żeby nie korzystać z tablic

Obama wie, co robisz!!!
131894.jpg                                                                                                                                                    4906167742.png

                                                                                                                                                                                                                                                                                      LTE Play Opole

Opublikowano

@Fireho, zależy jaki system do sprawdzania. Niekiedy nie wolno mieszać wejścia z wyjściem naprzemiennie. Wtedy potrzebujesz tablice tak czy siak. Albo do imputu albo outputu

3587513.png


Potrzebujesz pomocy? Pisz śmiało na PW/Skype/Gadu-Gadu!


(albo napisz na forum... ^.^)

Opublikowano

@{Hans Kloss PL}

 

Rozumiem gdyby to był jakiś problem z zejściem z zużyciem pamięci do O(1), ale implementacja tego co napisał Fierho będzie w praktyce nawet prostsza i bardziej przejrzysta od tej z tablicą (i bardziej wydajna, nie tylko ze względu na brak konieczności dodatkowej pamięci, ale też ze względu na to, że nie znamy rozmiaru wejścia. Wersja z tablicą wymagałaby wielokrotnej realokacji).

 

Niekiedy nie wolno mieszać wejścia z wyjściem naprzemiennie. Wtedy potrzebujesz tablice tak czy siak.

 

W praktyce ZAWSZE wejście i wyjście są oddzielne. Wspólne wejście i wyjście to niepotrzebne komplikowanie. Jeśli gdzieś tak jest to ubolewam

Opublikowano

@Sopelek997

 

Wiem, przeważnie stdout i stdin są oddzielone w takich systemach, ale z tego co wiem zdarzają się takie przypadki. Nie wiem czy na OIG można tak zrobić, kiedyś mi chyba nie chciało zaliczyć... Tak tylko piszę w ramach przestrogi ;) Mimo wszystko lepiej zastosować tablicę. Jeśli wydajność ma być zwiększona kosztem pamięci, a dalej mieścić się w limicie to jak najbardziej jest to pożądane

3587513.png


Potrzebujesz pomocy? Pisz śmiało na PW/Skype/Gadu-Gadu!


(albo napisz na forum... ^.^)

Opublikowano

@{Hans Kloss PL}

 

Rozumiem gdyby to był jakiś problem z zejściem z zużyciem pamięci do O(1), ale implementacja tego co napisał Fierho będzie w praktyce nawet prostsza i bardziej przejrzysta od tej z tablicą (i bardziej wydajna, nie tylko ze względu na brak konieczności dodatkowej pamięci, ale też ze względu na to, że nie znamy rozmiaru wejścia. Wersja z tablicą wymagałaby wielokrotnej realokacji).

 

W praktyce ZAWSZE wejście i wyjście są oddzielne. Wspólne wejście i wyjście to niepotrzebne komplikowanie. Jeśli gdzieś tak jest to ubolewam

Pewnie masz rację, nie jestem specem w c++ - pierwsze co mi przyszło do głowy to 3 linijki z tablicą w Javascript - stąd moje pytanie czemu nie tablice.

Jeśli nie jest to tak proste w c++ a inne rozwiązania wyglądają lepiej to milknę  ;)

Chcesz precyzyjnej i zrozumiałej odpowiedzi? - Zadaj precyzyjne i zrozumiałe pytanie. Nie przyjmuję zleceń.
Nie odpowiadam na priv na pytania, które można zadać na forum. Chcesz mojej pomocy - oznacz mnie w poście =>  @"Hans Kloss PL" 

Opublikowano

Wszystko fajnie tylko jakby nie patrzeć to wasze rozważania zeszły trochę z tematu ;) mam po prostu taki program do zrobienia bez żadnego zwracania uwagi na pamięć :)

 

Czy w takim razie poza pobieraniem pierwszej pary, sprawdzenie i następnie pobranie kolejnej i znów porównanie nie ma innego sposobu (oczywiście bez tablic)?

Obama wie, co robisz!!!
131894.jpg                                                                                                                                                    4906167742.png

                                                                                                                                                                                                                                                                                      LTE Play Opole

Opublikowano

Wszystko fajnie tylko jakby nie patrzeć to wasze rozważania zeszły trochę z tematu ;) mam po prostu taki program do zrobienia bez żadnego zwracania uwagi na pamięć :)

 

Czy w takim razie poza pobieraniem pierwszej pary, sprawdzenie i następnie pobranie kolejnej i znów porównanie nie ma innego sposobu (oczywiście bez tablic)?

Yyy, liczba 1 do zmiennej a, liczba 2 do zmiennej b, liczba 3 do zmiennej c itd.

Nie ma tablic? Nie ma.

TuByłaSygnatura.png

Opublikowano

Yyy, liczba 1 do zmiennej a, liczba 2 do zmiennej b, liczba 3 do zmiennej c itd.

Nie ma tablic? Nie ma.

Niby tak ale jak np. zadeklaruje 15 zmiennych a użytkownik poda tylko 8? Nie bardzo mi się widzi takie rozwiązanie ;)

 

 

Zrobiłem to wg postu Fireho

Obama wie, co robisz!!!
131894.jpg                                                                                                                                                    4906167742.png

                                                                                                                                                                                                                                                                                      LTE Play Opole

Opublikowano

Jak babka powiedziała ze bez tablic to walnij kontener stl (vector)

3587513.png


Potrzebujesz pomocy? Pisz śmiało na PW/Skype/Gadu-Gadu!


(albo napisz na forum... ^.^)

Opublikowano

Tfu, walnąłem się. Można równie dobrze wykorzystać stos

3587513.png


Potrzebujesz pomocy? Pisz śmiało na PW/Skype/Gadu-Gadu!


(albo napisz na forum... ^.^)

Opublikowano

co się stało z tym forum wtf

To też rozwiązanie, które zgadza się z podanym poleceniem.

Miał nie używać tablicy, niech nawet wyśle do jakiejś bazy danych te liczby, nikt mu nie zabroni.

TuByłaSygnatura.png

Opublikowano
Opublikowano

jak masz dwie zmienne np:

 

int a,b,c;

 

c == &a[2];    ---> czasami może być na odwrót, to zależy od kompilatora.

 

Czyli to także jest tablicą ^.^

 

-----------------------------------------------------------------------------------------------------------------

 

Po za tym ja bym otworzył input za pomocą WinAPI, wtedy będziesz mógł czytać go jak plik;

 

FILE console;

 

for(int i=0;i<ilosc liczb;++i){

  if(console==console[i+1]){

    TAKIE SAME

  }

}

Linux pozwoli wycisnąć ostatnią łzę z twojego procesora.

Opublikowano

jak masz dwie zmienne np:

 

int a,b,c;

 

c == &a[2];    ---> czasami może być na odwrót, to zależy od kompilatora.

 

Czyli to także jest tablicą ^.^

Idac tym tokiem rozumowania: wszystko jest tablica.

 

FILE console;

 

for(int i=0;i<ilosc liczb;++i){

  if(console==console[i+1]){

    TAKIE SAME

  }

}

To juz w ogole nie ma sensu. FILE nie jest z WinAPI(tu mamy HFILE) tylko stdio, no ale pomijajac to, jak chcesz uzyc struktury(w WinAPI typu prymitywnego) jako tablicy?

Nie pomagam na PW, od tego macie forum!!!

 

#PHP-things

 

 

08FMpDu.png

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...