Nie wiem już co mam zrobić.
Nie potrafię zrobić samemu takiego programu jak np. na tej stronie http://zadaniacpp.blox.pl/2012/08/Zadanie-16-Kopiowanie-tablicy-w-odwroconej.html
Znam teorię pętli for, tablic itd. ale problem jest jak dochodzę do części praktycznej.
Czy ja się w ogóle nadaję do czegoś takiego?
Może znacie jakąś dobrą metodę nauki programowania?
Siedzę obecnie przy c++.
Powoli zaczynam tracić wiarę w to że jestem w stanie się nauczyć zrozumieć język programowania.
Hej!
Wiesz, dla mnie programowanie jest jak budowanie z klocków lego. Ale nie z instrukcją w ręku, lecz takie budowanie, że masz wieeelki karton z tymi klockami, a w głowie sobie tworzysz np. obraz jakiegoś statku kosmicznego, samochodu, domku, czy scenografii dla jakiejś fajnej sytuacji (wojna między ludzikami, czy coś). Jak już masz taki obraz w głowie, to szukasz w tym kartonie klocków, z których zbudujesz to, co naszkicowałeś sobie w głowie.
Polega to więc na tym, że masz jakiś problem, który jest pewnego rodzaju "abstrakcyjną całością" i rozwiązujesz go poprzez korzystanie z mniejszych elementów, w tym wypadku konkretnych słów danego języka. Najlepiej uczyć się programowania poprzez rozbijanie każdego problemu na mniejsze części i szukaniu dla tych części pojedynczych rozwiązań.
Następnie przy implementacji łączymy wszystko do kupy i teoretycznie mamy problem rozwiązany. Musisz więc nauczyć się dedukcji, rozbijania kwestii ogólnych na ich składowe, a później szukania dla tych składowych pojedynczych rozwiązań, które to rozwiązania następnie łączysz w spójną całość.
Poza tym nie rozwiązuj wyłącznie zadań w necie, ale też wymyśl sobie jakiś program z konkretną funkcjonalności i zacznij go pisać. Jak czegoś nie będziesz wiedział, to szukaj rozwiązań w necie dla konkretnych problemów. Z czasem wyryjesz w mózgu odpowiednie wzorce dla konkretnych problemów i dzień po dniu będzie Ci łatwiej nie tylko pisać, ale też chłonąć nową wiedzę z zakresu programowania dzięki już "przetartym szlakom" :)
Pozdrawiam :)
Jeżeli C++ jest dla ciebie za trudny to użyj jakiegoś prostszego/bardziej intuicyjnego języka jak ObjectPascal (dobre IDE to Delphi/Lazarus) albo PHP jest bardzo podobny do C++ ale łatwiejszy.
W Pascal'u wygląda to tak:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
CONST
WIELKOSC_TABLICY = 3;
var
TAB1:array of Integer;
TAB2:array of Integer;
CMD:Integer;
K,I:Integer;
begin
SetLength(TAB1,WIELKOSC_TABLICY);
SetLength(TAB2,WIELKOSC_TABLICY);
try
WriteLn('Podaj ',WIELKOSC_TABLICY,' liczb(y)');
for I := 0 to WIELKOSC_TABLICY-1 do begin
ReadLn(CMD);
TAB1[I]:=CMD;
end;
K:=0;
for I := WIELKOSC_TABLICY-1 downto 0 do begin
TAB2[I]:=TAB1[K];
INC(K);
end;
WriteLn('Odwrotna kolejnosc');
for I := 0 to WIELKOSC_TABLICY- 1 do WriteLn(TAB2[I]);
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
ReadLn;
end.
hzmzp napisał(a):
PHP jest bardzo podobny do C++ ale łatwiejszy.
Zgiń, przepadnij...
Jeżeli @Adrian.lodz i @adrian.widzew to ta sama osoba, to sądząc po poziomie zadawanych od kilku miesięcy pytań, programowanie nie jest dla Ciebie właściwym zajęciem.
@hzmzp No tak tylko czy to c++ czy pascal czy java to rozwiązanie na dobrą sprawą będzie się różnić tylko słowami kluczowymi.
Moim zdaniem problem nie leży w języku ale w sposobie myślenia. Także @Adrian.lodz wychodzi na to że masz problem w rozumowaniu więc zalecam wsiąść kartkę, długopis i jakimś pseudo kodem rozrysuj sobie to wszystko łopatologicznie, jeśli po czasie nie załapiesz czegoś takiego jak w/w zadanie to ja bym sobie dał spokój później ilość zależności i poziom zagmatwania rośnie bardzo szybko.
Może powodem jest brak porządnej książki która cię w interesujący sposób tego nauczy. Polecam Symfonie C++. Nie oszczędzaj kasy na książki bo to jest inwestycja która zwróci się z nawiązką w ciągu 1 miesiąca pracy.
A ja polecam http://helion.pl/ksiazki/jezyk-c-szkola-programowania-wydanie-vi-stephen-prata,cppri6.htm bo uczy najnowszego standardu c++11.