10 / 21
Aug 2017

Też niedawno zacząłem ale sprawa wydaje mi się dość prosta :slight_smile:
Weźmy np. liczbę 42; jeżeli potraktujemy ją jako stringa (czyli tablicę znaków) do poszczególnych cyfr będziemy mogli dostać się poprzez indeksy 0 i 1 np. zdefiniujmy string str = 42; jeżeli będę chciał wyświetlić cyfrę 2 to zrobię to np. tak: cout << str[1];
twoja pętla for właśnie to robi wyświetla od tyłu, znak po znaku zadanego stringa.

PS. Dopisz co w założeniu ma robić ten program.

Chodzi o zadanie Tablica o numerze 977. Jak nie dam stringa to wczytywanie po spacji i zakończone enterem nie działa. Próbowałem pętli while (cin>>n) ale wtedy się nie kończy. Jak zrobię tablice to nie działa wpisywanie danych jak należy. Zgłupiałem już całkiem.

Ja zrobiłem to za pomocą stosu, wydawało mi się najprościej: https://ideone.com/Kmf6Bc37
Wczytywanie przez while(cin >> zmienna) działa do momentu gdy wyrażenie w nawiasie zwróci false, jak chcesz to osiągnąć w konsoli podając dane "ręcznie"? W momencie wczytywania z pliku, lub przypadków testowych tu na spoju działa poprawnie.

Dzięki kkafara
Przy okazji uświadomiłem sobie, że jestem zwyczajnie niedouczony...pierwszy raz dowiedziałem się od Ciebie o tym stosie.
Do końca nadal nie wiem jak działa tzn. jak oddziela liczby, czy traktuje je od spacji do spacji?
Zamiast zadawać masę głupich pytań powinienem się dokształcić, no właśnie tylko z czego? Większość podręczników jest albo zbyt formalnie napisana dla takich laików jak ja albo zbyt rozrywkowo gdzie czytelnik ma jedynie podążać za tym co pisze autor. Takich wydawałoby się "ciekawostek" trudno w nich znaleźć. Uczenie się z nich to jak uczenie się rozmówek na blachę, a mówić i tak nie koniecznie można umieć. Co zatem polecilibyście takiemu żółtodziobowi jak ja do c++?
Jeszcze raz dziękuję i pozdrawiam.

Ja osobiście polecam kurs Mirosława Zelenta na kanale Pasja Informatyki ([https://www.youtube.com/watch?v=ErOzmh3BiXU&list=PLOYHgt8dIdoxx0Y5wzs7CFpmBzb40PaDo]), bardzo fajnie i przystępnie opowiada, fajne na taki całkowity start.
Również na start fajnie czytało mi się "Kurs C++ " Xiona.
GL & HF

Kolega @kkafara podał wszystko czego nie należy używać chcąc być dobrym w programowaniu i wszystko co dobre, by umieć stworzyć jakikolwiek program komputerowy. Pytanie, na czym komu zależy?

Jeżeli ktoś chce w ogóle coś skompilować - źródła świetne. Skróty typu ctrl + z albo d nie będą znane (jak już wyszło w dyskusji), wielkie cuda z tego nie wyjdą, pracy na pewno nie będzie, za to filozoficzno-psychologiczne przygotowanie do bronienia własnej niekompetencji - marzenie!

Jeżeli ktoś myśli o algorytmach czy programowaniu na poważnie... @narbej, a czasami również np. ja pisaliśmy już na ten temat.

1 month later

Męczę się już nad tym zadaniem , nie mogę wnieść w nie świeżości , pisałem je już na 3 sposoby i zawsze odrzuca a tym razem sigabrt , pomoże ktoś ?

using namespace std;

int main()
{

int i=1;
int *tab=new int[i];
while(cin>>tab[i])
{
    i++;

}
for(int j=i-1;j>0;j--)
{
    cout<<tab[j]<<" ";
}


delete []tab;
return 0;

}

proponuję przeczytanie rozdziału poświęconego tablicom z podręcznika C/C++

Wyczerpująca forma pomocy z Twojej strony, wielkie dzięki.

Napiszę wprost: deklarujesz tablicę jednoelemntową, a potem próbujesz wczytać elementy do indeksu 1 i wyższych.

Twoja tablica w pamięci:
[ 0 ]

cin >> tab[i]
[ 0 ] [ ← tutaj próbujesz zapisać pierwszy wczytany element

Zarówno uwaga Mariusza jak i SIGABRT są jak najbardziej na miejscu.

Myślałem , ze w miarę inkrementacji i będzie zwiększał się rozmiar tablicy , co prawda doszedłem już do tego sam , ale dzięki. Uważam , że akurat uwaga Mariusza nie była trafna, po prostu lepiej zostawić takie zbędne uwagi dla siebie.

Całkowicie się tu z tobą zgadzam [w 100%]. Co Ty wiesz o programowaniu i kodowaniu, aby oceniać czyjąś podpowiedź [to była podpowiedż i dobra rada dla Ciebie, a nie żadna uwaga], jako trafna lub nie, chyba, że nie masz żadnej książki, a wiedzę czerpiesz z jakiś video kursów i wtedy może faktycznie. Nie wiem jednak tego i nie interesuje mnie to.

Tak, myślenie to podstawa, a w programowaniu to podstawa do potręgi n_tej, ale co sobie tam myślałeś, czy wymyśliłeś jest już mało interesujące [dla mnie]. Więc zamiast się tłumaczyć ze swojego błędu, przy okazji “opluwając” okazaną pomoc, lepiej było skorzystać ze swojej własnej rady [cytat na początku postu] i po prostu taką ocenę i uwagi zostawić po prostu tylko i wyłącznie dla siebie.

PS
Takie zachowania jak twoje, zmuszają mnie do zastanawiania się nie nad tym jak pomóc pytającemu lecz czy w ogóle jest sens angażować się i pomagać. Dziękuje Ci serdecznie i pozdrawiam w imeieniu zniesmaczonych i nie angażujących się “cichych” czytaczy.

jeżeli chodzi o ciebie, to załatwione

a ponieważ nie zamierzam zastanawiać się, która z moich uwag cię urazi, na wszelki wypadek wszystkie zatrzymam dla siebie

Zacznijmy od tego , że w poście proszę o pomoc której nie widzę w Twojej wypowiedzi , więc nie wiem w jakim celu włączasz się w dyskusję , chyba tylko po to , że lubisz denerwować ludzi. W cale mnie to nie dziwi bo pewien typ ludzi nie będę go wymieniał , sam na pewno wiesz o jaki mi chodzi będący w czymś lepszy tak ma, ale to już Twój problem, z którym może poradzić sobie tylko wyspecjalizowany w pewnej dziedzinie na ‘P’ lekarz.
W przypadku moich postów i próśb o pomoc , proszę Cię nie angażuj się w żaden sposób i nie próbuj wysnuwać jakichkolwiek teorii pomocy, a tym bardziej w stylu Mariusza.
Pewnie nie przyszło Ci do głowy, nie mówiąc o myśleniu w ten sposób, że może akurat samo nakierowanie na błąd, a nie wskazanie błędu więcej nauczy niż zaglądanie po raz kolejny do działu “tablice” na który patrząc już po raz kolejny może nie wnieść nic nowego.

Dzięki za radę i nakierowanie. Nie omieszkam skorzystać, bo chyba rzeczywiście jestem wariatem, bo tylko wariat angażuje się i traci swój cenny czas na próby pomocy [poczytaj może wątek liczby pierwsze] i obiecuję solennie, że niezależnie czy i jak skończy się moja w/w wizyta to:

postaram się spełnić twoją prośbę.