Pozwól, że napiszę punktami to co mam w tej chwili w głowie czytając twoją wypowiedź (będzie mi łatwiej i jednocześnie tekst będzie prostszy do zrozumienia) : )
1. Algorytmika, a znajomość języka to zupełnie dwie różne bajki.. Wiem to z doświadczenia.. mój przyjaciel posiada mega wiedzę ze znajomości języka.. ja natomiast jestem lepszy z algorytmiki.. i powiem tak.. ja potrafię napisać program, który rozwiąże naprawdę dziwne zadania (nawet studenckie), czy wszelkiego rodzaju problemy w aplikacjach (np. szybsze skanowanie danych, fizyka i kolizja, znajdywanie najlepszej drogi z punktu A do B itd.) i to co zrobię często jest dla niego czarną magią (oczywiście dopóki mu tego nie wyjaśnię).. on natomiast potrafi zrobić z prostego zadania.. szyfr, którego rozwiązywanie zajmuje mi czasem nawet parę dni.. mam ma myśli użyte metody i składnię z c++ 11, 14 a nawet 17 coś czego ja na oczy nigdy nie widziałem.. a działa to zazwyczaj ultra szybko.. podam prosty przykład "auto x = def" gdzie def to specjalna zmienna, która (?)wywołuje domyślny konstruktor danego typu (mam nadzieję, że nie namieszałem, bo mnie zabije x_x).. by się wydawało, że to nie ma sensu.. a jednak ma.. ten kod normalnie się kompiluje O.o. Wracając do twojego tematu.. uważam, że twoja nauczycielka próbuje cię nauczyć nie składni danego języka programowania, a myślenia algorytmicznego.
2. Wiele maszyn jest programowanych w języku C.. poza tym wiele rzeczy jest pisanych w C po prostu dla optymalizacji.. dodatkowo wiele problemów na studiach (wiem od kolegi bo pomagam mu rozwiązywać) też musi być rozwiązanych za pomocą C.. Dla przypomnienia w języku C nie ma dostępu do std::vector ponieważ jest to klasa z języka c++. Dlatego też z tych ww. powodów uważam, że warto czasami użyć najprostszych w świecie tablic, a nie wbudowanych już struktur.
3. Jeżeli chodzi o samo uczenie się w szkole programowania.. nigdy nie miałem zbytnio takich problemów, że nauczyciel zarzucał mi zrobienie czegoś inaczej niż on chciał.. nie miał problemów z tym, że użyję std::vector czy innych bajerów. Ponieważ na maturze używanie tego typu rzeczy jest dozwolone. Myślę, że twoja nauczycielka, chce cie po prostu przygotować na studia i bardziej zmusić do myślenia.. Zgaduję, że dotychczas pisząc własne programy nigdy nie interesowało cię jak taki wektor, albo lista dwukierunkowa w ogóle działa. Pisanie programów bez zastosowania wbudowanych możliwości c++ zmusza do większego myślenia oraz przede wszystkim rozwija i poszerza wiedzę.
4. Algorytmika jest mega istotna w programowaniu i niezależnie od tego czy będziesz ją lubił, czy nie.. bez niej się nie obejdzie.. w końcu jak myślisz.. jeżeli jakiś zleceniodawca będzie miał do wyboru program o złożoności O(nlogn) i I(n^3), to który wybierze? Poznawanie różnorakich algorytmów rozwija myślenie algorytmiczne.. ono natomiast umożliwia tworzenie coraz szybszych programów/algorytmów, co przekłada się na większą optymalizację. Tak więc algorytmika jest bardzo istotna w programowaniu.
Podsumowując.. jeżeli pisanie programów obiektowych sprawia ci przyjemność to pisz je i się rozwijaj.. jednak pamiętaj.. że sama składnia to nie wszystko.. polecam ci porobić trochę zadań ze SPOJ'a (bez posługiwania się internetem.. czyt. bez używania gotowych algorytmów). Zobaczysz, że sama wiedza o składni i umiejętność rozwiązywania prostych/podstawowych problemów okażą się niewystarczające by sprostać niektórym zadaniom.. Jeżeli chcesz jakiegoś dopalacza na start to takie proste zadanko ode mnie.. (wracając do korzeni) Stwórz kalkulator.. wydaje się proste? Pozwól, że zmienię to zadanie w małego potwora.. Stwórz kalkulator w konsoli, który po wpisaniu dowolnego ciągu znaku obliczy wynik. Przy wprowadzaniu ciągu do dyspozycji masz liczby stało i zmiennoprzecinkowe oraz sin(x),cos(x),neg() [negacja], nawiasy, pow(x,n), sqrt(x), sqr(x), znak potęgowania '^', dzielenie, mnożenie, dodawanie, odejmowanie no i na końcu round(x) [matematyczne zaokrąglanie do całości].. Spróbuj napisać taki "prosty" kalkulator by działał jak najszybciej :D Powodzenia w kompilacji ; )
1. Algorytmika, a znajomość języka to zupełnie dwie różne bajki.. Wiem to z doświadczenia.. mój przyjaciel posiada mega wiedzę ze znajomości języka.. ja natomiast jestem lepszy z algorytmiki.. i powiem tak.. ja potrafię napisać program, który rozwiąże naprawdę dziwne zadania (nawet studenckie), czy wszelkiego rodzaju problemy w aplikacjach (np. szybsze skanowanie danych, fizyka i kolizja, znajdywanie najlepszej drogi z punktu A do B itd.) i to co zrobię często jest dla niego czarną magią (oczywiście dopóki mu tego nie wyjaśnię).. on natomiast potrafi zrobić z prostego zadania.. szyfr, którego rozwiązywanie zajmuje mi czasem nawet parę dni.. mam ma myśli użyte metody i składnię z c++ 11, 14 a nawet 17 coś czego ja na oczy nigdy nie widziałem.. a działa to zazwyczaj ultra szybko.. podam prosty przykład "auto x = def" gdzie def to specjalna zmienna, która (?)wywołuje domyślny konstruktor danego typu (mam nadzieję, że nie namieszałem, bo mnie zabije x_x).. by się wydawało, że to nie ma sensu.. a jednak ma.. ten kod normalnie się kompiluje O.o. Wracając do twojego tematu.. uważam, że twoja nauczycielka próbuje cię nauczyć nie składni danego języka programowania, a myślenia algorytmicznego.
2. Wiele maszyn jest programowanych w języku C.. poza tym wiele rzeczy jest pisanych w C po prostu dla optymalizacji.. dodatkowo wiele problemów na studiach (wiem od kolegi bo pomagam mu rozwiązywać) też musi być rozwiązanych za pomocą C.. Dla przypomnienia w języku C nie ma dostępu do std::vector ponieważ jest to klasa z języka c++. Dlatego też z tych ww. powodów uważam, że warto czasami użyć najprostszych w świecie tablic, a nie wbudowanych już struktur.
3. Jeżeli chodzi o samo uczenie się w szkole programowania.. nigdy nie miałem zbytnio takich problemów, że nauczyciel zarzucał mi zrobienie czegoś inaczej niż on chciał.. nie miał problemów z tym, że użyję std::vector czy innych bajerów. Ponieważ na maturze używanie tego typu rzeczy jest dozwolone. Myślę, że twoja nauczycielka, chce cie po prostu przygotować na studia i bardziej zmusić do myślenia.. Zgaduję, że dotychczas pisząc własne programy nigdy nie interesowało cię jak taki wektor, albo lista dwukierunkowa w ogóle działa. Pisanie programów bez zastosowania wbudowanych możliwości c++ zmusza do większego myślenia oraz przede wszystkim rozwija i poszerza wiedzę.
4. Algorytmika jest mega istotna w programowaniu i niezależnie od tego czy będziesz ją lubił, czy nie.. bez niej się nie obejdzie.. w końcu jak myślisz.. jeżeli jakiś zleceniodawca będzie miał do wyboru program o złożoności O(nlogn) i I(n^3), to który wybierze? Poznawanie różnorakich algorytmów rozwija myślenie algorytmiczne.. ono natomiast umożliwia tworzenie coraz szybszych programów/algorytmów, co przekłada się na większą optymalizację. Tak więc algorytmika jest bardzo istotna w programowaniu.
Podsumowując.. jeżeli pisanie programów obiektowych sprawia ci przyjemność to pisz je i się rozwijaj.. jednak pamiętaj.. że sama składnia to nie wszystko.. polecam ci porobić trochę zadań ze SPOJ'a (bez posługiwania się internetem.. czyt. bez używania gotowych algorytmów). Zobaczysz, że sama wiedza o składni i umiejętność rozwiązywania prostych/podstawowych problemów okażą się niewystarczające by sprostać niektórym zadaniom.. Jeżeli chcesz jakiegoś dopalacza na start to takie proste zadanko ode mnie.. (wracając do korzeni) Stwórz kalkulator.. wydaje się proste? Pozwól, że zmienię to zadanie w małego potwora.. Stwórz kalkulator w konsoli, który po wpisaniu dowolnego ciągu znaku obliczy wynik. Przy wprowadzaniu ciągu do dyspozycji masz liczby stało i zmiennoprzecinkowe oraz sin(x),cos(x),neg() [negacja], nawiasy, pow(x,n), sqrt(x), sqr(x), znak potęgowania '^', dzielenie, mnożenie, dodawanie, odejmowanie no i na końcu round(x) [matematyczne zaokrąglanie do całości].. Spróbuj napisać taki "prosty" kalkulator by działał jak najszybciej :D Powodzenia w kompilacji ; )