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

[zlecenie] Program wyszukujący najmniejsze liczby


olokos1

Rekomendowane odpowiedzi

Opublikowano

Witam,

 

Potrzebuję programu, który z ciągu

 

Wioska Współrzędne Punkty (540|572) 11.162 017 (537|567) 5.866 031 (523|550) 6.018 036 (507|560) 6.364 045 (505|565) 5.236 047 (507|551) 4.808 048 (503|558) 5.006 049 (502|559) 4.808 050 (502|564) 4.808 051 (513|571) 4.808 052 (514|574) 4.808 053 (509|572) 4.705 054 (506|571) 4.808 056 (522|575) 4.808 057 (511|573) 4.296 058 (531|574) 4.296 062 (518|576) 3.972 063 (522|578) 3.794 064 (521|577) 3.794 065 (518|578) 6.037 066 (515|577) 6.083 073 (562|528) 7.907 076 (562|531) 6.519 090 (518|580) 9.079

 

 

Wyszuka mi najmniejsze wartości pomiędzy współrzędnymi, które ja wpiszę i serii współrzędnych które ja wkleję tak jak w spoilerze.

np. wpisuję współrzędne 1|1 i mam serię 2|2 3|3 4|4 to program mi powie, że najmniejsza różnica jest we współrzędnej 2|2 i będzie ona wynosiła 2.

 

Wystarczy samo źródło programu bo sam się uczę programowania :D

Opublikowano

Rozumiem, że nie działa to 'skosami'. Tzn, można 'poruszać' się tylko wzdłóż osi x i y; i nie ma po drodze przeszkód, które trzeba omijać

Przyjmijmy, że każda współrzędna to x, y, a ta pierwsza, do której porównujemy ( to 1|1 w twoim przykładzie) xn, yn

przeszukujesz wszystkie po kolei i wybierasz tą, gdzie abs(x+y-xn+yn) będzie najbliższe zeru

 

co do parsowania ciągu to leć znak po znaku. Jeśli napotkasz '(' to czytaj dopóki znak jest cyfrą, potem zrób konwersję na inta. To samo po znaku '|' z tym, że do jakiejś równoległej zmiennej (tablica[][], struktura, mapa etc)

btw. Nie pisze o regexach, bo się nie znam na nich. Nie wiem czy takie rozwiązanie byłoby prostsze.

Opublikowano

działa skosami. Działa to w każdym kierunku bez ograniczenia. Kilka pomysłów miałem, tylko sęk w tym, że nie mam pojęcia jak to napisać :P

Opublikowano

jeśli działa skosami to wylicz przekątną prostokąta, którego dwa przeciwległe wierzchołki leżą na punktach kolejnych współrzędnych i te przekątne porównuj z najkrótszą

Opublikowano

Chodziło mi bardziej o to, że jedyne co umiem w C++ to zrobić grę w ciepło zimno w konsoli :D

  • 1 miesiąc temu...
Weteran
Opublikowano

Niech ci będzie, łap:

struct Coord
{
   int x, y;
   Coord(int x, int y)
   {
       Coord::x = x;
       Coord::y = y;
   }
};

int p2(int i)
{
   return i*i;
}

int FindCloser(Coord c, Coord c1, Coord c2)
{
   float r1 = sqrt(p2(c.x - c1.x) + p2(c.y - c1.y));//z pitagorasa liczymy przeciwprostokatna trojkata utworzonego z roznicy koordynatow
   float r2 = sqrt(p2(c.x - c2.x) + p2(c.y - c2.y));
   if(r1 > r2)
   {
       return 2;
   }
   else if(r1 < r2)
   {
       return 1;
   }
   else
   {
       return 0;
   }
}

Dalej już chyba sobie poradzisz.

Opublikowano

Jeśli zlecenie, to powinieneś zaoferować jakieś wynagrodzenie za to(najlepiej pieniężne) :P

Ale z tego co wiedzę, to jest to coś z plemion, to polecam TW Stats do tych zabaw, bo jest duża szansa, że tam znajdziesz to czego szukasz.

Obawiam się, że skoro zaczynasz naukę, to tego sam nie napiszesz.

4166086824bcdebc547729.png

 

Jesli pomogłem, daj 'Lubię to!'.

Opublikowano

Prosta matematyka:) dużo kodu tutaj nie ma tylko trzeba zaszyć algorytm..

Więc jeśli zaczynasz programować to na sam początek nim siądziesz do kodu polecam zapoznać się z Matematyką dyskretną i algorytmami.

Jest to żmudne ale dużo pomaga i wyjaśnia.

  • 1 miesiąc temu...

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...