<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Przyszły Programista - Najnowsze pytania i odpowiedzi w Algorytmy</title>
<link>http://forum.przyszlyprogramista.pl/?qa=qa/algorytmy</link>
<description>Powered by Question2Answer</description>
<item>
<title>Odpowiedź: undefined reference</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1957/undefined-reference&amp;show=1958#a1958</link>
<description>Chyba brakuje PlikZAdresatami::PobierzId….</description>
<category>Algorytmy</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1957/undefined-reference&amp;show=1958#a1958</guid>
<pubDate>Tue, 16 Apr 2024 15:59:51 +0000</pubDate>
</item>
<item>
<title>Odpowiedź: zmienne globalne/odwoływanie się do zmiennej z następnej funkcji</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1812/zmienne-globalne-odwo%C5%82ywanie-zmiennej-nast%C4%99pnej-funkcji&amp;show=1813#a1813</link>
<description>Zadeklaruj nagłówek funkcji, a ciało dopisz gdzie potrzebujesz.</description>
<category>Algorytmy</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1812/zmienne-globalne-odwo%C5%82ywanie-zmiennej-nast%C4%99pnej-funkcji&amp;show=1813#a1813</guid>
<pubDate>Fri, 19 Jan 2024 09:39:28 +0000</pubDate>
</item>
<item>
<title>Odpowiedź: zadanie JGGHACK - Łamacz gg</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1773/zadanie-jgghack-%C5%82amacz-gg&amp;show=1777#a1777</link>
<description>Poprawiłam ten algorytm (niżej poprawiona wersja) i pierwsza część hasła, która pojawia się po kompilacji jest prawidłowa, ale ostatnie znaki są już inne. Dlaczego tak się dzieje?&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
string odszyfrowujemyHaslo(string zaszyfrowaneHaslo)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int dlugosc = zaszyfrowaneHaslo.length();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string tablicaLiter = &amp;quot;ABCDEFGHIJKLMNOP&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int liczbyPierwszaLitera[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int liczbyDrugaLitera[] = {0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240};&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string odszyfrowaneHaslo = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int wartosc1[8], wartosc2[8], i, suma[i], j, k;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (i = 0; i &amp;lt; dlugosc; i = i+2)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (j = 0; j &amp;lt; 16; j++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (zaszyfrowaneHaslo[i] == tablicaLiter[j])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wartosc1[i] = liczbyPierwszaLitera[j];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (k=0; k &amp;lt; 16; k++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (zaszyfrowaneHaslo[i+1] == tablicaLiter[k])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wartosc2[i+1] = liczbyDrugaLitera[k];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;suma[i] = wartosc1[i]+wartosc2[i+1];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;odszyfrowaneHaslo += char(suma[i]);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return odszyfrowaneHaslo;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string zaszyfrowaneHaslo = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while(getline(cin, zaszyfrowaneHaslo))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout &amp;lt;&amp;lt; odszyfrowujemyHaslo(zaszyfrowaneHaslo) &amp;lt;&amp;lt; endl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return 0;&lt;br /&gt;
}</description>
<category>Algorytmy</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1773/zadanie-jgghack-%C5%82amacz-gg&amp;show=1777#a1777</guid>
<pubDate>Sun, 08 Oct 2023 10:37:59 +0000</pubDate>
</item>
<item>
<title>Odpowiedź: JS - filtrowanie wyników</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1294/js-filtrowanie-wynik%C3%B3w&amp;show=1295#a1295</link>
<description>Ten kod jest krótki, prosty i czytelny, jeśli możesz coś zmienić to możesz od razu użyć filter() i pozbyć się map().&lt;br /&gt;
filter() i tak przechodzi po każdym elemencie tablicy i możesz tam zrobić wszystko, ważne tylko aby callback zwracał boolean.</description>
<category>Algorytmy</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1294/js-filtrowanie-wynik%C3%B3w&amp;show=1295#a1295</guid>
<pubDate>Thu, 22 Dec 2022 16:24:40 +0000</pubDate>
</item>
<item>
<title>Odpowiedź: Seminarium 12 - deszyfrator JSZYCER</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1182/seminarium-12-deszyfrator-jszycer&amp;show=1190#a1190</link>
<description>&lt;p&gt;Oczywiście, że słucham i spieszę z podpowiedzią!&lt;/p&gt;

&lt;p&gt;Moja sugestia jest taka - jak przesuwamy w lewo, to robimy:&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
textToDecode[i] -= shift;&lt;/pre&gt;

&lt;p&gt;Potem warunek:&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
if (textToDecode[i] &amp;lt; 65) {
    textTodecode[i] += 26;
}&lt;/pre&gt;

&lt;p&gt;Jak w prawo to analogicznie:&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
textToDecode[i] += shift;&lt;/pre&gt;

&lt;p&gt;No i:&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
if (textToDecode[i] &amp;gt; 90) {
    textTodecode[i] -= 26;
}&lt;/pre&gt;

&lt;p&gt;Michał, daj znać czy nasza pomoc cokolwiek Ci dała :)&lt;/p&gt;</description>
<category>Algorytmy</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1182/seminarium-12-deszyfrator-jszycer&amp;show=1190#a1190</guid>
<pubDate>Tue, 22 Nov 2022 17:53:21 +0000</pubDate>
</item>
<item>
<title>Odpowiedź: Książka adresowa, vectory</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1140/ksi%C4%85%C5%BCka-adresowa-vectory&amp;show=1146#a1146</link>
<description>Przede wszystkim rozbij to sobie na dwie osobne funkcje - niech jedna wczytuje dane nowego adresata i zapisuje je do vectora a druga niech zapisuje nowo dodany kontakt do pliku.&lt;br /&gt;
&lt;br /&gt;
Po drugie masz tu masę rzeczy do poprawy...nawet nie wiem od czego zacząć.&lt;br /&gt;
&lt;br /&gt;
- zrób sobie lokalną strukturę (jedną !) &amp;nbsp;np Person person w funkcji, która dodaje kontakt,&lt;br /&gt;
&lt;br /&gt;
- wczytaj dane do zmiennych, które tworzysz w funkcji a nie do wyimaginowanej struktury, którą przekazujesz&lt;br /&gt;
&lt;br /&gt;
- przypisz wczytane dane do lokalnie utworzonej struktury&lt;br /&gt;
&lt;br /&gt;
- lokalnie utworzoną strukturę pushujesz do vectora struktur, który wysyłasz&lt;br /&gt;
&lt;br /&gt;
- next step -&amp;gt; wysyłasz lokalnie utworzoną (i wypełnioną danymi) strukturę do funkcji, która dopisze to do pliku</description>
<category>Algorytmy</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1140/ksi%C4%85%C5%BCka-adresowa-vectory&amp;show=1146#a1146</guid>
<pubDate>Thu, 17 Nov 2022 08:14:42 +0000</pubDate>
</item>
<item>
<title>Odpowiedź: SPOJ  FR_12_06 - Plusy i minusy</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1105/spoj-fr_12_06-plusy-i-minusy&amp;show=1116#a1116</link>
<description>&lt;p&gt;Można uprościć sobie życie wbudowanymi metodami C++. Po drobnych modyfikacjach kodu Pawła, skróciłem logikę do :&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;math.h&amp;gt;
#include &amp;lt;algorithm&amp;gt;
#include &amp;lt;string&amp;gt;

using namespace std;

void printResult(int result) {
    if(result == 0) {
        cout &amp;lt;&amp;lt; &quot;BRAK&quot;;
    }

    if (result &amp;gt; 0) {
        for (int index = 0; index &amp;lt; result; ++index) {
            cout &amp;lt;&amp;lt; 5 &amp;lt;&amp;lt; &quot; &quot;;
        }
    }

    if (result &amp;lt; 0) {
        for (int index = 0; index &amp;lt; abs(result); ++index) {
            cout &amp;lt;&amp;lt; 1 &amp;lt;&amp;lt; &quot; &quot;;
        }
    }
}

int main()
{
    size_t result = {};
    string input = {};
    cin &amp;gt;&amp;gt; input;
    auto plusCounter = count(input.begin(), input.end(), '+');
    auto minusCounter = count(input.begin(), input.end(), '-');

    result = (plusCounter - minusCounter) / 3;
    printResult(result);

    return 0;
}

&lt;/pre&gt;

&lt;p&gt;I tak przy okazji - Paweł dlaczego w funkcji, która zlicza występowanie znaków, rzutujesz w pętli&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
 for (int i = 0; i &amp;lt; (int) input.length(); i++)&lt;/pre&gt;

&lt;p&gt;długość inputa na typ int, skoro zwracaną wartością metody length() jest size_t co odpowiada unsigned integral type ? Pytam z czystej ciekawości - już, któryś raz widzę wśród kursantów podobny zabieg.&lt;/p&gt;

&lt;p&gt;A jako ciekawostkę , mogę podać, że zamiast pisać&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
auto plusCounter = ...&lt;/pre&gt;

&lt;p&gt;można napisać :&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
std::string::difference_type plusCounter = std::count(input.begin(),  input.end(),  '+');&lt;/pre&gt;

&lt;p&gt;ale uznałem, że auto będzie zgrabniejsze, mimo, że nie powinno się go nadużywać.&lt;/p&gt;</description>
<category>Algorytmy</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1105/spoj-fr_12_06-plusy-i-minusy&amp;show=1116#a1116</guid>
<pubDate>Sat, 12 Nov 2022 09:33:23 +0000</pubDate>
</item>
<item>
<title>Odpowiedź: Problem dot. działania programu seminarium 11</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1088/problem-dot-dzia%C5%82ania-programu-seminarium-11&amp;show=1089#a1089</link>
<description>&lt;p&gt;Korzystaj z dobrodziejstw C++ skoro w nim piszesz - w bibliotece std jest funkcja std::copy&amp;nbsp;&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;algorithm&amp;gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;vector&amp;gt;
#include &amp;lt;iterator&amp;gt;
#include &amp;lt;numeric&amp;gt;
 
using namespace std;
 
 
int main()
{
    int maxIndex;
    cout &amp;lt;&amp;lt; &quot;Max index of array: &quot;&amp;lt;&amp;lt;endl;
    cin &amp;gt;&amp;gt; maxIndex;
    int *arrayFrom;
    arrayFrom = new int[maxIndex];
    int *arrayTo;
    arrayTo =  new int[maxIndex];
 
    for (int index = 0; index &amp;lt; maxIndex; ++index)
    {
        arrayFrom[index] = index+1;
    }
 
    copy(arrayFrom, arrayFrom + maxIndex, arrayTo);
 
    for(auto index = 0; index&amp;lt;maxIndex; ++index)
    {
         cout &amp;lt;&amp;lt; &quot;arrayFrom contains: &quot; &amp;lt;&amp;lt; *arrayFrom;
         cout &amp;lt;&amp;lt; endl;
         arrayFrom++;
    }
 
    for(auto index = 0; index&amp;lt;maxIndex; ++index)
    {
         cout &amp;lt;&amp;lt; &quot;arrayTo contains: &quot; &amp;lt;&amp;lt; *arrayTo;
         cout &amp;lt;&amp;lt; endl;
         arrayTo++;
    }
}
&lt;/pre&gt;

&lt;p&gt;Co podpowiada kompilator ? Po drugie dodaj bibliotekę ctime w nagłówku.&lt;/p&gt;

&lt;p&gt;Inicjalizacje możesz napisać tak :&lt;/p&gt;

&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;ctime&amp;gt;
#include &amp;lt;time.h&amp;gt; 

using namespace std;

void initialize(int arr[], int size);


int main(){


    const int SIZE = 10;
    int myList[SIZE];

    initialize(myList, SIZE);
    
    return 0;

}

void initialize(int arr[], int size){
    
    srand((unsigned)time(NULL));

    

    for(int i = 0; i &amp;lt; size; ++i){

            arr[i] = (rand()%10)
    }

    for(int j = 0; j &amp;lt; size; ++j){
        cout&amp;lt;&amp;lt;arr[j]&amp;lt;&amp;lt; endl;
    }
}&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>Algorytmy</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1088/problem-dot-dzia%C5%82ania-programu-seminarium-11&amp;show=1089#a1089</guid>
<pubDate>Wed, 12 Oct 2022 17:30:38 +0000</pubDate>
</item>
<item>
<title>Odpowiedź: Pytanie dot quicksortu</title>
<link>http://forum.przyszlyprogramista.pl/?qa=1080/pytanie-dot-quicksortu&amp;show=1081#a1081</link>
<description>&lt;p&gt;Dlaczego nie należy wklejać kodu jako obrazka (tłumaczenie zostawiam Tobie)&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://meta.stackoverflow.com/questions/285551/why-should-i-not-upload-images-of-code-data-errors-when-asking-a-question/285557#285557&quot;&gt;https://meta.stackoverflow.com/questions/285551/why-should-i-not-upload-images-of-code-data-errors-when-asking-a-question/285557#285557&lt;/a&gt;&lt;/p&gt;</description>
<category>Algorytmy</category>
<guid isPermaLink="true">http://forum.przyszlyprogramista.pl/?qa=1080/pytanie-dot-quicksortu&amp;show=1081#a1081</guid>
<pubDate>Tue, 11 Oct 2022 16:25:09 +0000</pubDate>
</item>
</channel>
</rss>