Dziwne zadanie

0

Mam problem z rozwiązaniem zadania, które pojawiło się na zajęciach z programowania w C++. Nikt na naszym roku nie potrafił go rozwiązać, w związku z czym pomyślałem, że może tutaj znajdzie się ktoś, kto by sobie z nim poradził.

Sytuacja wygląda następująco: otrzymujemy od prowadzącego plik źródłowy, którego nie możemy edytować. Znajduje się w nim dyrektywa #include, która pozwala nam niejako wszczepić do środka swój kod i w tej sposób sprawić, żeby całość się kompilowała. Zaznaczam od razu, że problemem nie jest rozwiązanie merytorycznej części zadania (nie ma na nią nawet co patrzeć), ale dwie kropki w 8 linijce, które powodują błąd kompilacji. Oto kod:

//Tego pliku NIE WOLNO modyfikować (nadpisze sie przy wysylaniu)
//
//Prosze napisac program, ktory odpowiedni przydzieli pamiec oraz wykona
//operacje wynikajace z tego co znajduje sie na przykladowym wyjsciu.
//
//Prosze pamietac o odpowiednim deklarowaniu i definiowaniu funkcji
//
..
#include "lab_02.h"
#include "lab_02.h"

int main()
{
        int size = rnd(5, 15);  // funkcja losująca liczbe pseudolosowa z przedzialu [5, 15]
                          // kazde uruchomienie programu powoduje wylosowanie innej liczby
                          // prosze skorzystac z: rand, srand oraz time

        PTR_TYPE ptr = alloc_mem(size); //przydzielenie pamięci
        std::cout << "-----------------------------\n";

        print_ptr(ptr, size); // wypisanie
        std::cout << "\n-----------------------------\n";

        ptr = realloc_mem(ptr, size); // skasowanie i ponowne zaalokowanie pamieci wraz z inna incjalizacja

        print_ptr(ptr, size);
        std::cout << "\n-----------------------------";

        FUN_PTR_TYPE fun_ptr = suma;
        std::cout << "\nSuma = " << fun_ptr(ptr, size);
        std::cout << "\n-----------------------------";

        fun_ptr = iloczyn;
        std::cout << "\nIloczyn = " << fun_ptr(ptr, size) << std::endl;

        dealloc_mem(ptr); // czyszczenie pamieci
}

/* Wyjście z programu wyglada nastepująco (PRZYKLADOWE dla wylosowanej warosci 10)
-----------------------------
[1], [2], [3], [4], [5], [6], [7], [8], [9], [10],
-----------------------------
[10], [9], [8], [7], [6], [5], [4], [3], [2], [1],
-----------------------------
Suma = 55
-----------------------------
Iloczyn = 3.6288e+06
*/

Moje pytanie brzmi: co takiego można by wstawić do pliku lab_02.h, żeby całość się skompilowała? Jest to w ogóle wykonalne? A może to błąd w zadaniu? (na zajęciach mieliśmy zastępstwo, w związku z czym na razie nie sposób było zapytać o to prowadzącego)

Byłbym bardzo wdzięczny za pomoc, pozdrawiam.

3

Mi to wygląda na zwykły babol.

1

Babol :) Nawet preprocesorem nie da sie tego załatwić bo nazwa makra musi być poprawnym identyfikatorem i kropki nie przejdą ;]

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