Собственно, в котором часу намечается данное событие?
Когда Лаба По Инфе ?!
Сообщений 1 страница 17 из 17
Поделиться22006-04-04 23:39:21
Запускаетсяж
почти работает
ненужное удалить
нужное дорисовать
#include <iostream> using namespace std; class Computer; class Kernel; class Disp{ public: private: }; class Device{ public: int vendor_id,product_id; // ... Device(){vendor_id=product_id=666;} void check(); void out(); }; class Process{ private: int PID; int mem; public: Process(){PID=-1;mem=0;}; ~Process(){}; void create(int pid,int m){ PID=pid; mem=m; }; void run(); void kill(){}; void postmsg(int msg); int getPID(){return PID;}; }; class Kernel{ private: int nextPID; int proccnt; Computer * comp; public: Device dev[4];// drivers void ps(); void load(Computer * c); void run(); void sendmsg(int pid,int msg); Process* popen(); Kernel(){ nextPID=1; dev[0].product_id=69;// Keyboard dev[1].product_id=13;// Ethernet adapter }; ~Kernel(){}; }; class Memory{ public: Memory(){} ~Memory(){} Process proc[10]; int used; int memsize; void loadKernel(Computer * c){ this->ker.load(c); } Kernel* getKernel(){ return &ker; } private: Kernel ker; }; class Computer{ public: Memory mem; Kernel * accessKernel(){ return this->mem.getKernel(); }; // void powerOn(){}; Computer(){ // 1) POST: // check memory :) this->mem.memsize=512; // 2) load kernel this->mem.loadKernel(this); // 3) launch operating system //this->mem.getKernel(); }; ~Computer(){}; }; Kernel* ker; int main(int argc,char ** argv){ Computer comp; ker=comp.accessKernel(); ker->popen(); ker->popen(); ker->popen(); ker->ps(); ker->run(); return 0; } void Kernel::ps(){ int a; for(a=0;a<10;a++){ if(comp->mem.proc[a].getPID()!=-1){ cout << comp->mem.proc[a].getPID() << endl; } } } void Kernel::load(Computer * c){ comp=c; } void Kernel::run(){ while(1){ int a; for(a=0;a<10;a++){ if(comp->mem.proc[a].getPID()!=-1){ comp->mem.proc[a].run(); } } } } void Kernel::sendmsg(int pid,int msg){ comp->mem.proc[pid].postmsg(msg); } Process* Kernel::popen(){ int a; for(a=0;a<10;a++){ if(comp->mem.proc[a].getPID()==-1){ comp->mem.proc[a].create(nextPID++,10); comp->mem.used+=10; return &comp->mem.proc[a]; } } } void Process::run(){ while(1){ switch(this->PID){ case 1:{ // device driver char c; int a; for(a=0;a<2;a++){ ker->dev[a].check(); } }break; case 2:{ // LAN mgr }break; } } } void Process::postmsg(int msg){ switch(this->PID){ case 1:{ // device driver }break; case 2:{ // LAN mgr cout << msg << endl; }break; } } void Device::check(){ if(product_id==69){//keyboard char c; cin >> c; switch(c){ case 'q':{ // poweroff // to be written }break; default: ker->sendmsg(2,c); } } } void Device::out(){}
Поделиться32006-04-05 10:15:11
в 9 утра
но ничего путного нам не сказали
всё присылать на мыло вместе с отчётом
Поделиться42006-04-05 20:30:40
в 9 утра
но ничего путного нам не сказали
всё присылать на мыло вместе с отчётом
То есть?
Черкинский принимает лабы по электронной почте?
А в институте его не будет?
Поделиться52006-04-05 22:11:41
будет, но он редко появляется, поэтому он предложил отсылать ему на почту
Поделиться62006-04-05 22:13:07
-
Отредактировано Daшуnя (2006-04-05 22:14:00)
Поделиться72006-04-06 09:49:49
Обратите внимание на очередное обновление на сайте.
З.Ы. прикольная строчка из одной из лаб (вроде Светкина):
if(Fl[i] != NULL)
delete Fl[i];
Fl[i] = NULL;
интересно, что же имелось в виду?
Поделиться82006-04-06 09:51:46
Саныч, пошли черкинскому на почту исходник линов - как никак лаба по ОС.
Поделиться92006-04-06 14:30:44
Долго угарал над следующей строчкой из лабы Марухина:
F_num(void):int;
Сначала я даже не понял что имелось в виду (саффсем паскаль запыл).
Поделиться102006-04-06 15:13:14
Саныч (или Андрюха), ответьте как программист - программисту на такой вопрос:
Что такое
#pragma once
и почему в студии она не работает.
На сколько я понял это замена следующему:
#ifndef Х%Й_H #define Х%Й_H .... #endif
?
З.Ы. мля, четыре поста подряд без ответа...
Поделиться112006-04-06 17:27:57
Я могу ответить только ХЗ.
Поделиться122006-04-06 22:07:55
sometype * pSomething=NULL;
...
void Cleanup(){
if(pSomething){
pSomething->izmal4it_na("Melkiye kooso4ki");
pSomething->srovnati_z_zemlei();
V_Topku( pSomething);
delete pSomething;
pSomething=NULL;
}
}
В большинстве случаев NULL==0, поэтому условие цикла корректно.
Такие конструкции часто используются для безопасного уничтожения объектов.
Если некоторый объект не был создан, free(NULL) и fclose(0) вызовет ошибку только на черезжопузделанных компиляторах, но pSomething->srovnati_z_zemlei() скорее всего будет рухать везде.
Поделиться132006-04-08 00:02:35
не понял, зачем тебе нужен прагма ванс, если всегда используется конструкция #ifndef ..., как ты и сам знаешь.
В одной из лаб от второй группы нашел? Я, честно говоря, с прагмой никогда не сталкивался (как я тебе уже говорил).
Насчет if (something) free(something) -- я не успел ответить раньше Саныча, подтверждаю его слова.
Я, кстати, постоянно использую эту конструкцию (на работе приучили)).
Отредактировано Nagan (2006-04-08 00:03:54)
Поделиться142006-04-08 09:08:26
прагму я, как уже говорил, использовал только для подключения файла ресурсов
Поделиться152006-04-08 18:01:09
Обратите внимание, на сайте появилось что-то вроде 2-й лабы. Сдавать в сыром виде КРАЙНЕ не рекомендуется.
Поделиться162006-04-10 11:09:52
Пытался сделать 3-ю лабу, оказалось что я её уже сделал во 2-й...
Поделиться172023-03-31 02:43:41
Econ131.9BettBettProfAlfrCataCarnVariUltiiMPATescstopWindJavaRondTracZeroWhenBrotDaveSlaw
SiguBianDaviTescElseCrysPantNatuXVIIWillKariTechBuenLoneWorlBrauSallCleaTaftAnatErneDelh
HenrAnnaColgJohaTracCarlGameKareSummVashRobeTravWarmChanSpikXboxAvenLarsWaltEricNikiNiki
CaprOscaHighOrchWindJameDiegrrunHAWXXVIISimsDwigPanzXVIIMeieSempNasoArtsLukeAmbjXVIIArts
XVIIPeteParkArtsdiamMagnArtsRonddiamMireSharRobeGeorKancDigmCareBillBessMalcModeRaymFyod
XVIIIrnuYounTracMaplShahXVIIolliPoweNortKaplLiebMIELFredWindBriaOlmeEdmiSQuiInfapokeJohn
pokeRefeHeliheavThorGermArroEditThesFirsSilvPacoChemWindWindBoomLoviSmilBoscChloPuriwwwn
AlleSwinPodrThisCondHighBIOSRomeHumaXVIIinduMaurJohnFyodTracFyodMemoVivaOlegProjLifeFlas
RideSysyRichBienChriBriaRogeProdGeneMitcBriaStevKornLonnParaLeneXVIIAcadMillSuthRobbWinx
WillQuicFranLawrAutoMartRichPowePowePoweWindLewiPeteEckhTeflFeueDeepHONKVIIIWITCMicrPete
tuchkasVideAstr