Тапсырмалар және оларды орындау тәртібі
mpC тізімдерге бірқатар операциялардың орындалуына мүмкіндік береді.
- тізімге тиісті болуды тексеру
Осыған байланысты мынадай программа жазайық:
Domains
n=integer*
m=sumbol*
find(integer,n)
find(symbol,m)
append(n,n,n)
append(m,m,m)
clauses
find(H,[H|_]).
Find(H,[_|T]):-
Find(H,T).
append([],L,L).
append([H|T1],L2,[H|T3):-
append(T1,L2,T3).
Келесі тапсырмаларды орындаңдар:
HeteroNet желісін анықтау және жоқ болған жағдайда құру
#include
#include
#include
#include
#define DELTA (0.5)
typedef struct {
double len;
double wid;
double hei;
double mass;
} rail;
nettype HeteroNet(int n, double v[n]) {
coord I=n;
node {
I>=0: v[I];
};
parent [0];
};
double Density(double x, double y, double z) {
return 6.0 * sqrt( exp( sin( sqrt( x*y*z ) ) ) );
}
int [*]main(int [host]argc, char **[host]argv) {
repl N=3;
if(argc>1)
N = [host]atoi(argv[1]);
if(N>0) {
static rail [host]steel_hedgehog[[host]N];
repl double volumes[N], [host]start;
int [host]i;
repl j;
for(i=0; i<[host]N; i++) {
steel_hedgehog[i].len = 200.0*(i+1);
steel_hedgehog[i].wid = 5.0*(i+1);
steel_hedgehog[i].hei = 10.0*(i+1);
}
start = [host]MPC_Wtime();
for(j=0; j<N; j++)
volumes[j] =
steel_hedgehog[j].len * steel_hedgehog[j].wid * steel_hedgehog[j].hei;
{
net HeteroNet(N, volumes) mynet;
[mynet]: {
rail myrail;
double x, y, z;
myrail = steel_hedgehog[];
for(myrail.mass=0., x=0.; x<myrail.len; x+=DELTA)
for(y=0.; y<myrail.wid; y+=DELTA)
for(z=0.; z<myrail.hei; z+=DELTA)
myrail.mass += Density(x,y,z);
myrail.mass *= DELTA*DELTA*DELTA;
MPC_Printf("Rail #%d is %gcm x %gcm x%gcm and weights %g kg\n",
I coordof mynet, myrail.len, myrail.wid,
myrail.hei, myrail.mass/1000.0);
[host]printf("The steel hedgehog weights %g kg\n",
[host]( (myrail.mass)[+]) / 1000.0 );
}
}
[host]printf("\nIt took %.1f seconds to run the program.\n",
[host]MPC_Wtime() - start);
}
else
[host]printf("Wrong input (N=%d)\n", [host]N);
}
Бақылау сұрақтары:
1. Тізім белгісі қандай?
2. Тізімге қандай операциялар қолданылады?
3. Тізімді мәліметтер қорының элементтерінен қалай құруға болады?
№7 Тәжірибелік жұмыс.
Жұмыстың мақсаты: мәліметтердің динамикалық қорымен жұмыс жасайтын предикаттарды білу, графикалық режиммен жұмыс жасауға арналған предикаттарды білу.
Материалдар және жабдықтар: ДК, mpCпрограммалау ортасы
Жұмыстың мазмұны және орындалу тәртібі:
1. Вариант бойынша тапсырманы алу
2. Есептің қойылымы
3. Есепті шешу алгоритмі
4. Есепті шешу программасын mpCпрограммалау ортасында құру
5. Программа листингі
6. Орындалған жұмыс жөнінде есеп беру
Қысқаша мәлімет
Мәліметтердің статистикалық қоры программа кодының бөлігі болып табылады және оларды программамен жұмыс кезінде өзгертуге болмайды. Мәліметтердің динамикалық қорына жаңа фактілер қосуға болады немесе одан кейбір ұйғарымдарды өшіруге болады. Динамикалық қордың екінші ерекшелігі ол дискідегі жазылған немесе жедел жадтағы дискіден оқылатын жеке файлда сақталуы мүмкін. Программаның database бөлігі динамикалық қордың предикаттарын сипаттауға арналған
Мысалы:
dstudent(strign, symbol, integer)
d латын әріпін тіркеу статистикалық предикаттарды динамикалық предикаттардан ажырату үшін қолданылады.
Динамикалық қор фактілерін өзгертуге арналған mpC тілінде кіріктірілген предикаттар бар. Олар төмендегі:
assreta(X)- фактіні мәліметтер қорының басына тіркейді
assretaz(X)- фактіні мәліметтер қорының аяғына тіркейді.
retract(X)- мәліметтер қорынан берілген фактіге сәйкес фактіні өшіреді
cosult(X)-мәліметтер қорына фактілерді тіркеу үшін ашады.
Терезелермен жұмыс жасауға арналған негізгі предикаттар:
makewindow(терезе номері, экран атрибуты, рамка атр, тақырыбы, жол, баған, биіктік, ұзындық) – терезені берілген атрибуты және номері бойынша анықтайды
clearwindow- ағымдағы терезені тазартады
remowindow-ағымдағы терезеі өшіреді
gotowindow(терез номері)- берілген номер бойынша терезеі активтейді
shiftwindow(терезені)- ағымдағы терезені ауыстырады немесе ағымдағы терезе номерін оқиды
graphics(режим, палитра, фон)-графикалық режимді қояды
dot(жол, баған, түс)- берілген координат бойынша нүктенің түсін қояды немесе оқиды
line(1 жол, 1 баған, 2 жол, 2 баған, түс)-түзуді графикалық режимде сызады
Достарыңызбен бөлісу: |