2. Napisz makrodefinicje o jednym parametrze formalnym, ktora bedzie wypisywala na ekranie:
- numer linii programu, w ktorej ja wywolano,
- wyrazenie, ktore bylo jej argumentem (ma byc ujete w cudzyslow);
- wartosc tego wyrazenia.
To znaczy: jesli w programie sa dwa wywolania tej makrodefinicji (w linii 120 i 150), to na ekranie pojawic powinien sie np. taki tekst:
W linii 120, wartosc wyrazenia "obiekt"=12
W linii 150, wartosc wyrazenia "obiekt"=10
3 Program ma miec kilka wariantow. W tym celu poslugujemy sie kompilacja warunkowa. Są juz nastepujace dyrektywy preprocesora
#define GRUDZIEN_2007 1
#define SIERPIEN_2005 2
Potem jest dyrektywa, w ktorej nastepuje wybor wersji. Ponizej widzisz, ze wybrano tu akurat wersje "grudniową"
#define WERSJA_EKSPERYMENTU GRUDZIEN_2007
Potrzebujemy teraz dyrektywy #define TYP_SPREZARKI ...
Powyzej, w miejscu wielokropka, nazwa ta, w zaleznosci od wybranego typu eksperymentu, ma miec wartosci
- dla eksperymentu grudniowego: 3000
- dla eksperymentu sierpniowego 2050
Jesli zas WERSJA_EKSPERYMENTU zostala okreslona inaczej lub nie zostala okreslona wcale, ma nastapic przerwanie kompilacji i wydrukowany komunika "Nieokreslony zostal typ eksperymentu";
4. Pierwszy program z tej ksiazki uzupelnij tak, by oprocz tekstu "witamy na pokladzie" pojawila sie na ekranie informacja o tym:
- jak nazywa sie plik programu
- w ktorej linii nastapila instrukcja wypisujaca
-jaka byla data kompilacji
- jaka byla godzina, minuta itd. tej kompilacji;
- czy uzyto kompilatora C++
moje pomysly:
program 1 (nie kompiluje sie poprawnie:6 D:\C++ symfonia moje projekty\!!!!!54 zaadanie 13 stroona 189\main.cpp:12 [Warning] character constant too long for its type )
Kod: Zaznacz cały
KOD
#include <cstdlib>
#include <iostream>
#define MISJA(Apollo_,d) Apollo_##d
int d;
char 'Apollo_';
using namespace std;
int main(int argc, char *argv[])
{
cout<<"podaj numer: \n";
cin>>d;
cout<<MISJA(Apollo_,d)<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
Kod: Zaznacz cały
KOD
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout<<"Witamy \nna pokladzie :)";
cout<<__NAME__<<__LINE__<<__TIME__;
system("PAUSE");
return EXIT_SUCCESS;
}
taki blad jest wyrzucany: 12 D:\C++ symfonia moje projekty\57 zaadanie 23 stronna 191\main.cpp `__NAME__' undeclared (first use this function)
z gory dzieki za pomoc