Obsługa plików [matura] - lepsze C czy C++ ?

0

Za rok zdaję maturę, więc nauka rusza pełną parą :)
Uczę się obsługi plików (wiem, że dla was większości to banalne, ale proszę o wyrozumiałość).
Obecnie na 3 roku miałem w szkole C, więc obsługę próbowałem robić również w C..

Chciałbym abyście mi doradzili, może lepiej przenieść się na C++ ? Wiem, że są tam strumienie, czy to ułatwia w jakiś sposób sprawę? Są jakieś dodatkowe funkcje do obsługi plików tekstowych?
C jest podobne do C++ jak patrzyłem, różni się jedynie trochę składnią na pierwszy rzut oka. Jeśli byłoby prościej, przerzuciłbym się na pełen gaz na C++..

Jak wy to widzicie?

1

Chciałbym abyście mi doradzili, może lepiej przenieść się na C++ ?

Chyba lepiej. Zadania maturalne z programowania są w praktyce tworzone z C++ na myśli (tak samo jak te z przetwarzaniem danych są czysto pod ms office), więc tak by było najprościej.
W C da się oczywiście to samo wszystko zrobić, ale nauka C++ i tak nie zaszkodzi ;).

0

Tylko niektórzy mówią, że w C jest sporo niepotrzebnych rzeczy, np. w funkcjach scanf, printf(trzeba podawać typ danych)..
Ja to już umiem i się przyzwyczaiłem, ale myślałem, że w C++ są może jakieś ułatwienia :)

1

Jak chcesz nauczyć się tylko na maturę, to polecam jednak biblioteki C. Obsługa plików w C jest dużo bardziej banalna (ale w tej kwestii to wiadomo, każdy może mieć swoje zdanie)

1

Próbowałem pisać coś w C kiedyś, sprawdzałem jak wygląda kod i porównywałem. Szczerze mówiąc mocno mnie odrzucił i nie zamierzam nigdy wracać, dodatkowo wolniejszy. Polecam c++ , nawet dla laika obsługa plików jest banalna. A tutaj kursy z których się uczyłem: http://cpp0x.pl/kursy/Kurs-C++/Poziom-4/Podstawy-obslugi-plikow/355 http://cpp0x.pl/kursy/Kurs-C++/Obsluga-plikow/305

0

Jak ja pisałem to używałem C++ i wystarczyła mi znajomość std::getline w pętli + std::vector i robisz cały program w max kilka minut.

0

Pewnie też zależy jaki :)

2
Bartolinho10 napisał(a):

Wiem, że są tam strumienie, czy to ułatwia w jakiś sposób sprawę?

Odniosę się tylko do tej części pytania. Oczywiście że ułatwia sprawę. Dla przykładu wypisanie zawartości pliku na standardowe wyjście:

	std::ifstream file( "file.txt" );
	std::cout << file.rdbuf() << std::endl;

Proste, przejrzyste i wydajne. Nawet dla osoby, która zna tylko podstawy C++, zapis ten jest prosty do wywnioskowania. Czy tak samo jest w przypadku C, IMO - nie.

0

Kurcze już sam nie wiem, jak to wygląda w praktyce, ale wydaje mi się, że w C jest sporo więcej kręcenia..

1

Sam pisałem tegoroczną maturę i korzystałem z mechanizmu do obsługi plików dostępnego w C++. Ogólnie wystarczy, że nauczysz się parę funkcji (sort(), replace(), find(), tolower(), toupper(), tostring(), itp) plus ogarnąć std::vector i w zupełności wystarczy do matury.

0

@mto9 , no właśnie, w C chyba takich rzeczy nie ma? np. sort() .

0

A powiedzcie mi Panowie, jak to jest... Jeśli podam sobie np. że pisze w C, to strumieni, ani funkcji z C++ używać nie mogę.. Ale jak zaznaczę że wybieram C++, to normalnie mogę polecieć tak samo jak w C, bez strumieni np. a używać funkcji które są dostępne tylko w C++ ?

1

Podejrzewam, że w obu przypadkach egzaminator nie czepiałby się, ale lepiej zaznaczyć C++. Obecnie najwięcej punktów masz za poprawne wyniki, a nie za szybkość/efektowność rozwiązania. Polece Ci jeszcze strone: http://maturainformatyka.pl/ oraz zadanie z tego roku: http://mradny.blogspot.com/2014/06/ciekawe-napisy-zadanie-maturalne-z.html

0

@mto9 zadania z tego roku mam zrobione już wszystkie. :) Wszystko mi wyszło dobrze, jedynie nad czym mogę ubolewać, to że spory czas nad tym siedziałem, muszę się teraz bardziej spinać, bo tak na luzaku, włączony net itp, ciągle coś rozprasza.

Dzięki za linki :)

1

W obu językach można zrobić te same rzeczy, z tym że:

  • w C++ zrobisz zwykle przy tym mniej błędów (znaki formatujące w printf, długość bufora)
  • C++ pozwala na zapisanie tego samego problemu krócej, dzięki czemu bardziej prawdopodobne jest napisanie poprawnego programu na kartce (jak się zdaje teraz maturę?)
0

Właśnie teraz się dowiedziałem, że nie ma wyboru z pośród C i C++ ale można wybrać tylko Pascal, Java lub C/C++ razem. Czyli jeden problem rozwiązany, bo na pewno to wybiorę :) A w jakim środowisku polecacie? Można wybrać Visual Studio, Code Blocks oraz DEV C++. Ja koduję w Dev'ie i nie narzekam, jednak wiele opinii mówi, że jest to najsłabsze środowisko..

1

Jako osoba, która w tym roku zdawała rozszerzoną maturę z informatyki, mogę Ci polecić C++ i do tego Visual Studio(mi akurat najprzyjemniej się w nim pisze). Aby najlepiej przygotować się do maturki to przerób wszystkie poprzednie arkusze(nie wiem co tam zdajesz podstawa czy rozszerzenie), przyzwyczaj się do używania funkcji z biblioteki standardowej ułatwiającej życie i czas :). I nie martw się za bardzo, że teraz coś Cię rozprasza przy komputerze w domu, mnie ciągle coś rozpraszało, a to muzyka, rodzina etc. Czasami jedno zadanie robiłem godzinę bo co chwilę odchodziłem od kompa ;). Pamiętaj, że na maturze liczą się wyniki i działający kod-metoda rozwiązania(a jak on będzie napisany to już ostatnia rzecz o którą możesz się martwić).

No i GL&HF :)

0

Przekonaliście mnie trochę do tego Visual Studio. Dziś ściągne, i zobaczę z czym to się je..

@Quedin , przygotowując się do matury, przerabiałeś tylko poprzednie arkusze? Te najstarsze też, co był tylko poziom rozszerzony?
Czy wykonywałeś jeszcze jakieś zadania?

1

@Bartolinho10

  • naucz sie obslugi plikow
  • rob zadania ze spoj
  • rob zadania z poprzednich lat

tyle Ci starczy zeby zdac programistyczna czesc

0

Jak na razie przerabiam arkusze z lat poprzednich, ściągnąłem sobie informator maturalny, tam są wymagania i po kolei będę się uczył tego, co wymagają (algorytmy itp.)

1

@Bartolinho10, przerabiałem tylko poprzednie arkusze na poziomie rozszerzonym(nie zrobiłem chyba tylko 2 najstarszych), aby wczuć się w typy zadań jakie zazwyczaj serwują. Poza tym musiałem sobie przypomnieć funkcje Excela i Accessa - pamiętaj, że część 2 zazwyczaj jest rozdzielona na 3 moduły: programowanie, bazy danych i arkusze kalkulacyjne.
Po za arkuszami nie wykonywałem żadnych specjalnych zadań(SPOJów czy innych rzeczy). Jako iż kończyłem technikum informatyczne, programowanie zazwyczaj przebiegało normalnie na lekcjach(przynajmniej w mojej grupie) oraz dużo uczyłem się i pisałem w domu dla siebie/dodatkowe projekty ze szkoły(gdy udało się dogadać z nauczycielem), nie widziałem potrzeby wykonywania jakichś innych zadań. Ale pamiętaj, że wszystko zależy od własnych umiejętności :).

Co do algorytmów to polecam powtórzyć te które są zazwyczaj wałkowane w szkole miliard razy, czyli np. NWD, NWW, ciąg Fibonacciego oraz tego czego w szkole nie uświadczysz(przynajmniej ja nie miałem, a jak odkryłem to życie stało się łatwiejsze) sito Eratostenesa czy szyfry np. Cezara. Pamiętaj także o rekurencji, która może pojawić się na części 1 ;).

Szczerze powiedziawszy informatora maturalnego nie czytałem, więc nie wiem jakie tam mają wymogi :D.

Do tego masz jeszcze kilka złotych rad:

  1. Każdy program ma magiczną funkcję o nazwie "Help/Pomoc", gdzie można znaleźć ciekawe informacje, gdy dopadnie nas czarna dziura.
  2. W domu twoim największym atutem w nauce jest wujek Google, który zawsze pomoże.
  3. Większość IDE ma podpowiadanie funkcji itp. - w Visual Studio jest to IntelliSense.
  4. Nauka i ciągłe pisanie czynią cuda ;)
    (kolejność przypadkowa)

PS. Gdybyś miał problemy z jakimś zdaniem to na tej stronie masz opracowane większość zadań z arkuszy, do tego chyba nawet jakieś algorytmy :).

0

Dzięki wielkie za pomoc. Wybieram na razie C, muszę tutaj nauczyć się obsługi plików, potem będę przerabiał sobie na C++, zobaczę jak to wygląda i wybiorę lepszy, łatwiejszy i najbardziej efektowny język :)
Będę was pytał - ewentualnie, jeśli będzie coś łatwiejszego, to będę zastępował łatwiejszymi funkcjami, które lepiej będą się sprawdzać.

Dzięki wielkie za udział w temacie,
jeśli macie coś do powiedzenia, to czekam na wszystkie opinie nadal !

1

Jak mozna uzywac Pascala/Delphi to prosciej bedzie wlasnie w tym robic tego typu zadania.

0

Chyba raczej nie, w Pascalu ciężko, więcej pisania, i kombinowania, z tego co wiem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1