• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Poprawa notatek z języków programowania

VPS Starter Arubacloud
+1 głos
209 wizyt
pytanie zadane 6 kwietnia 2021 w Offtop przez Dawidziu Bywalec (2,630 p.)
komentarz 6 kwietnia 2021 przez Oscar Nałogowiec (29,300 p.)

Jeśli chodzi o C++ to w sumie większość tekstu wymaga poprawek albo uściśleń.

Przykłady:

typu string, int i float nie są z "biblioteki" iostreams. Char w conio?

Nazwanie <iostreams> "Podstawowa biblioteka zawierająca większość przydatnych instrukcji." to po pierwsze nic konkretnego nie mówi a po drugie jest nieprawdą.

setprecision, o ile pamiętam, to <iomanip>

tablica.length() - o co chodzi?

 

komentarz 6 kwietnia 2021 przez Dawidziu Bywalec (2,630 p.)
Ok poprawiłem to co napisałeś, a {tablica}.length ustawia zmienną na taką wartość ile komórek ma tablica
komentarz 6 kwietnia 2021 przez Oscar Nałogowiec (29,300 p.)

{tablica}.length to chyba jest w Javie, w C++ nie słyszałem o czymś takim, chyba że to jakiś nowy feature, szczególnie w konktekście poprzedzającego tekstu, gdzie jest mowa o normalnej tablicy[], a nie o kontenerach z stl.

1
komentarz 6 kwietnia 2021 przez Oscar Nałogowiec (29,300 p.)
edycja 6 kwietnia 2021 przez Oscar

Podstawowy problem z zadaniem jakie sobie postawiłeś to to, że na początkowym etapie nauki wiele rzeczy jest przestawianych "na wiarę/na pamięć" tzn uczeń nie wie co oznaczają poszczególne elementy i czym one tak naprawdę są. Efekt ten widać także np. w nauce normalnych, ludzkich obcych języków. Na początku zwykle uczniowie uczą się na pamięć kilku zdan/wyrażeń, bez wnikania w ich konstrukcję i gramatykę.

Skutkiem tego twoje notatki przestaną być aktualne po kilku tygodniach nauki, bo wtedy objaśnienia będą już inne. Jeden z nauczycieli powiedział mi kiedyś, że najgorsza rzecz jaką można zrobić ucząć kogoś, to nauczyć go na początku nieprawdy i potem to odkręcać. Z drugiej strony, fajnie jest od razu napisać jakiś program (lub przywitać się z kolegą z kursu w obcym języku). 

Od razu uprzedzam, że nie mam talentów edukacyjnych, nie gwarantuje, że sam zastosuje się do przedstawionych zasad.

 

A wracając do sedna, jedziemy dalej na nowej wersji (kolejność mniej więcej jak w dokumencie - chyba nie jest najlepsza):

iostream to podstawowa biblioteka operacji wejścia wyjścia(pisania i czytania). Definiuje abstrakcyjne (czy pokazujące co można zrobić, ale nie określające jak to jest zrobione) clasy strumieni, czyli obiektów do których można pisać (ostream) lub czytać (istream). Jest też strumień dwukierunkowy (iostream). Zawiera również deficję tzw strumieni standardowych - konkretnych obiektów, których można używać bez inicjowania - wejścia (cin), wyjścia (cout) i komunikatów błędów (cerr). Dokładnie tak samo jest w czystym C, gdzie program dostaje otwarte trzy "pliki" - stdin, stdout i strerr. W sumie nie wynika to z języka, a raczej z właściwości systemów operacyjnych.

fstream to pewna konkretyzacja iostream - strumienie są reprezentowane przez pliki na dysku. Analogicznie do strumieni abstrakcyjnych występują strumień wejściowy (do czytania - ifstream), wyjściowy (do pisania - ofstream) i dwukierunkowy (fstream) - swoją drogą tutaj na forum zdecydowanie nadużywany.

Operatory pisania << i czytania >> służą do formatowania/konwersji danych z/na postać tekstową. Obiekty w nagłówku iomanip umożliwiają w pewnym zakresie sterowanie formatowaniem.

Do obsługi strumieni binarnych są metody read i write.

 

Typu char, int, float, double i mieszanki z long/short, signed/unsigned są wbudowane w język i nie wymagają dołączania niczego. Jedynie "zaawansowane" obliczenia na liczbach zmiennoprzecinkowych wymagają dołączenia math.h/cmath.

Natywnym w C typem napisowym jest char *, w C++ dochodzi string, ale to nie jest typ wbudowany, definiuje do nagłówek string i jest to klasa. Stałe (literały) napisowe pozostają typu char * (dokładniej const char *).

 

Tłumacząć metodę (tak nazywamy funkcję będącą elementem klasy) find podałeś w nazwiasach, jako parametr, {zmienna}. Nie jest to do końca prawda, argumentami funkcji zwykle może być wyrażenie (wyjątek to przekazywanie przez referencję), w szczególności stała czyli literał. Szczególnie ma to sens w metodzie find - najczęściej szuka się w góry znanego ciągu znaków.

Insert i erase zamieniłeś miejscami.

Substr jest metodą - też musi być wykonane na jakimś obiekcie. To metoda a nie funkcja.

 

Te opisy atoi i atof chyba niepotrzebnie są połączone.

Usuwanie i tworzenie dynamicznej tablicy są zamienione.

Sam pokazałeś, że wskaźnik nie musi być inicjowany adresem istniejącej zmiennej, może być przez new, więc tekst przy definicji wskaźnika jest trochę niekonieczny, przedstaw to jako alternatywę albo  = &zmienna albo = new ....

Na razie chyba tyle...

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 433 wizyt
pytanie zadane 2 października 2022 w Urządzenia mobilne przez KitKetPolska Nowicjusz (240 p.)
0 głosów
2 odpowiedzi 803 wizyt
pytanie zadane 22 lipca 2016 w C i C++ przez niezalogowany
+1 głos
4 odpowiedzi 1,320 wizyt
pytanie zadane 13 kwietnia 2015 w Offtop przez CrookedKnee Gaduła (3,150 p.)

92,953 zapytań

141,913 odpowiedzi

321,141 komentarzy

62,286 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...