Zadanie w c++/cli

0

Witam.
Na początku chciałbym przeprosić, jeśli wybrałem zły dział do założenia takiego tematu.

Teraz będzie wstęp, trochę długi, ale jak ktoś nie ma czasu i nerwów to może go nie czytać i przejść od razu do właściwej części...

/* Od początku semestru pracujemy na uczelni, na zajęciach z "programowania" w języku(?) C++/CLI - nasz wykładowca mówi na to CLR, taka nazwa widnieje również w programie Visual Studio w którym pracujemy, nie wiem czy ma to jakieś znaczenie, jaką robi to różnicę? - jeśli ktoś mógłby mi to wytłumaczyć byłbym wdzięczny :). Wydaje mu się również, że choć nie mieliśmy żadnych podstaw programowania, ŻADNYCH, to robienie z nami tego języka nie jest niczym złym i wszystko byłoby ok gdyby nie robił z nami zajęć na zasadzie "przepisujemy kod z tablicy, ja Wam zaraz wytłumaczę co tu jest - wiecie już jak działa? Super. To za tydzień go zdajecie." - i wszyscy kują na pamieć ten kod albo podkładają gotowca na zajęciach byle mieć iksika za zaliczenie konkretnego programu.
Schody zaczęły się teraz kiedy wykładowca wymyślił sobie, że każdy ma zrobić na zaliczenie jakiś projekt (dał odpowiednią listę tematów do zrobienia)...

I tu zaczyna się w sumie właściwa treść posta, przepraszam za dłuuugi wstęp (studia niehumanistyczne, studiuję matematykę :D ale nawet mi zdarza się czasem rozpisać :>): */

Temat jaki sobie wybrałem dotyczy sprawdzenia sudoku (dokładna treść do zadania jest zamieszczona w pliku txt). Czego można się domyśleć po moim wstępie (jeśli ktoś go czytał :>) programowania to nas nikt specjalnie nie nauczył... ale po tygodniu siedzenia w internecie nad różnymi poradnikami zmontowałem taki oto kod, który o dziwo działa i to sudoku sprawdza (kod również znajduje się w pliku txt dołączonym do postu).

Pytanie moje brzmi tak:

  1. w kodzie 6x występuje ten sam fragment z tworzeniem pliku wyjściowego "wynik5.txt" ze słowem "NIE" w środku (jest to 6 linijek kodu), po każdym z warunków na sudoku, i raz, na samym końcu, tworzenie tego samego pliku ze słowem "TAK".
    Zapewne można stworzyć jakąś funkcję, algorytm, który będę mógł zapisać na samym początku programu a potem po każdym z tych warunków tylko się do niego odwoływać i program niejako sam sobie odczyta co ma do końcowego pliku wpisać. Jak można zrobic takie cudo? Tego już nie udało mi się nigdzie znaleźć... Podejrzewam, że uprościłoby to nieco kod, który sam w sobie długi nie jest, ale im bardziej zoptymalizowany tym lepiej.
  2. Znalazłem na stronach microsoftu w pomocy do C++/CLI taki kod na wpisywanie stringa do tablicy stringów, wyraz po wyrazie, po wcześniejszym podzieleniu go za pomocą delimitera, coś takiego (na samym początku kodu to jest). Czy jest na to szybszy sposób albo czy można pobrany string od razu jakoś wpisać do tablicy dwuwymiarowej intów (na którą umiałem zapisać warunki), po uprzedniej konwersji do tego formatu rzecz jasna, czy trzeba koniecznie najpierw go wrzucać do jednej tablicy-stringów, żeby potem wszystko przerzucić do tablicy intów?

W razie możliwości, jeśli Wasz czas pozwoli, prosiłbym o rzucenie oka na resztę kodu i rady co można by poprawić, co zapisać lepiej - naprawdę wszystko robiłem na wyczucie i w oparciu o podstawowe rzeczy, które robiliśmy na zajęciach (luźne zabawy ze stringami, z tablicami, działaniami, if, for i parę innych rzeczy których już chyba nie za bardzo rozumiem...).

Z góry dziękuję za każda pomoc i przede wszystkim za cierpliwość, to tak à propos mojego rozpisywania się _

Pozdrawiam,
Krystian

0

C++/CLI - nasz wykładowca mówi na to CLR, taka nazwa widnieje również w programie Visual Studio w którym pracujemy, nie wiem czy ma to jakieś znaczenie, jaką robi to różnicę?

C++/CLI to wariant języka C++, w większości zgodny z C++, działający na maszynie wirtualnej zgodnej ze standardem CLI (Common Language Infrastructure).

Tyle teoria, bo w praktyce kompilator obsługujący C++/CLI jest jeden (Visual C++) i maszyna CLI kompatybilna z C++/CLI też w zasadzie jedna: CLR (Common Language Runtime), nazwa handlowa: .NET Framework.

W skrócie: C++/CLI to C++ dla .NET

nasz wykładowca mówi na to CLR
Jeśli język programowania określa mianem CLR to mówi źle.
CLI, czyli CLR, czyli .NET Framework, to nazwa platformy, a C++/CLI to nazwa języka programowania.

Wydaje mu się również, że choć nie mieliśmy żadnych podstaw programowania, ŻADNYCH, to robienie z nami tego języka nie jest niczym złym i wszystko byłoby ok gdyby nie robił z nami zajęć na zasadzie "przepisujemy kod z tablicy, ja Wam zaraz wytłumaczę co tu jest - wiecie już jak działa? Super.
Ograniczaj beztreścizm. Do rzeczy. Jakie jest pytanie?

Pomijam bez czytania następnych kilka akapitów.

Pytanie moje brzmi tak:
Już lepiej.

Zapewne można stworzyć jakąś funkcję, algorytm, który będę mógł zapisać na samym początku programu a potem po każdym z tych warunków tylko się do niego odwoływać
Masakra. Naprawdę nie pokazał jak zdefiniować funkcję? Coś nie chce mi się wierzyć.

w programie masz jedną funkcję (main). inne tworzy się podobnie:

void ErrorResult()
{
    StreamWriter ^sr2 = gcnew StreamWriter("wynik5.txt");
    sr2->WriteLine("NIE");
    sr2->Close();
}

potem robisz ErrorResult(); zamiast powtarzać te linijki (które też skróciłem).

Zacznij od dowolnego kursu C++ (samo C++, nie C++/CLI), przerób kilka lekcji, a wiele rzeczy stanie się jasnych.
Wszystkie przykłady z kursu C++ bez problemu pójdą pod C++/CLI.

Czy jest na to szybszy sposób albo czy można pobrany string od razu jakoś wpisać do tablicy dwuwymiarowej intów
Przejrzałem kod, i chociaż ładowanie tej tablicy z pliku można by napisać trochę lepiej, to jest to zrobione to poprawnie.

0

Witam.
Cóż, mówię jak jest, zajęcia są prowadzone naprawdę słabo, na zasadzie pokazywania gotowych programów z których powinniśmy umieć wyciągnąć pewne rzeczy (które potem są... no powiedzmy, że "omawiane" ale nasz wykładowca to przecież specjalista w tej dziedzinie i nie będzie nam tłumaczył wszystkiego x razy mimo, że nie mieliśmy wcześniej styczności z programowaniem).
To samo tyczy się tej funkcji, w ogóle pierwszy raz widzę coś takiego jak 'void' :> a język c++, starałem się go trochę liznąć w trakcie tego semestru i coś kojarzę, oczywiście, ale też dla mnie problemem potem jest - "ale jak to zapisać w tym całym CLI", tu w ogóle inna składnia itd.
W ramach ćwiczeń rzucę okiem na to definiowanie funkcji a na razie dziękuję za pomoc :)

Pozdrawiam,
Krystian

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