У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент





«Системне програмування і операційні системи»

Системне програмування (практика)

Реалізувати програму, яка періодично перевіряє стан функціональних клавіш: Shift, Ctrl, Alt, ScrollLock, NumLock, CapsLock, Ins з виводом результату на екран, вихід з програми після натискання клавіші Esc.

?include <WRITE.H-->

main()

byte VarAl,VarKey;

word *Statbyte;

{

Statbyte=0417;

do

{

AH=0ch;

AL=08h;

$int 21h

VarAl=AL;

$push DS

DS=0;

VarKey= *Statbyte;

$pop DS

if (VarKey & 64>0) WRITESTR("Caps On");

else WRITESTR("Caps Off");

if (VarKey & 32 >0) WRITESTR("Num On");

else WRITESTR("Num Off");

if (VarKey & 16>0) WRITESTR("Scroll On");

else WRITESTR("Scroll Off");

if (VarKey & 2>0) WRITESTR("LShift On");

else WRITESTR("LShift Off");

if (VarKey & 1>0) WRITESTR("RShift On");

else WRITESTR("RShift Off");

if (VarKey & 128>0) WRITESTR("Insert On");

else WRITESTR("Insert Off");

WRITELN();

}

while (VarAl!=27);

}

Реалізувати програму, яка дозволяє побачити і, при необхідності, змінити атрибути файлу.

? include “WRITE.H--”

char * fn=”1.txt”;

void main()

{

AH=0x43;

DX=fn;

AL=0x1;

CX=0x01;

$int 0x21;

AH=0x43;

DX=fn;

$int 0x21;

if(!CARRYFLAG)

{

WriteStr(“THERE IS NO ERROR”);

Writeln();

}

if(CX&0x01)

{

WriteStr(“C:\ TBL.dat is read only”);

Writeln();

}

if(CX&0x02)

{

WriteStr(“C:\ TBL.dat is hidden”);

Writeln();

}

if(CX&0x04)

{

WriteStr(“C:\ TBL.dat is system”);

Writeln();

}

}

Реалізувати програму, яка дозволяє побачити і, при необхідності, змінити час і дату створення файлу.

Реалізувати програму, яка дозволяє перекодувати вміст заданого файлу шляхом перестановки символів в непарних позиціях між собою.

Реалізувати програму, яка періодично перевіряє стан маніпулятора миша (положення курсору, стан кнопок) з виводом результату на екран, вихід з програми після натискання клавіші Esc.

?include<WRITE.H--> /* підключення бібліотеки */

?include<mouse.h-->

? define lkey 0x01

? define rkey 0x02 /* задання бітів, які відповідають кнопкам миші */

main()

{

int key,mkey,x,y,xm,ym,xp,yp; /* задання змінних */

x=y=xp=yp=0;

RESETMOUSE(); /* ініціалізація миші */

SHOWMOUSE(); /* показуєм на екран */

do

{

AH=01h; /* перевірка буферу на наявність в ньому символів */

$int 16h

key=AL;

AX=0003h; /* визначення положення курсора */

$int 33h

mkey=BX;

xm=CX/8;

ym=DX/8;

if(mkey==lkey) { /* вивід координат курсора в верхньому лівому куті */

x=y=1;

WRITESTR(" ");

GOTOXY(x,y);WRITEINT(xm);

WRITESTR(" ");WRITEINT(ym);

}

if(mkey==rkey){ /* вивід координат курсора в нижньому правому куті */

x=70;y=23;

WRITESTR(" ");

GOTOXY(x,y);WRITEINT(xm);

WRITESTR(" ");WRITEINT(ym);

}

}

while(key!=27); /* вихід з програми по натисканні Esc */

}

Реалізувати програму, що визначає кількість наявних паралельних (LPT) та послідовних (COM) портів та їх базові адреси з виводом результату на екран.

Реалізувати програму, що визначає кількість наявних FDD пристроїв та їх ємність з виводом результату на екран.

Реалізувати програму, яка дозволяє перевірити правильність розстановки дужок: [], (), {} заданого файлу на основі кінцевого автомату з виводом результату на екран.

Реалізувати програму, яка дозволяє об’єднати два задані файли, а результат зберегти в третьому.

Реалізувати програму, яка дозволяє визначити об’єм заданого текстового файлу, підрахувати кількість розділових знаків та наявних слів з виводом результату на екран.

#include <stdio.h>

#include <stdlib.h>

#include <DOS.H> /* підключення бібліотек */

#include <iostream.h>

#include <ctype.h>

#include <string.h>

#include <conio.h>

FILE *f;

char *s;

int i,j=0,k=1,len;

int v = 0;

int slova;

char ch; /* оголошення змінних */

int a[23][2]={0};

main(int argc, char *argv[])

{

f=fopen(argv[1],"rt"); /* відкриття файлу */

if(f==NULL)

{

cputs ("Cant open file\r\n");

exit(0);

}

while(!feof(f)) /* організовуємо цикл поки не кінець файлу */

{

fgets(s,255,f); /* функція зчитування з файлу */

len=strlen(s);

for (i=0;i<len;i++)

{

cout<<s[i];

if (s[i]==' '&& s[i]==13) slova++;

ch=s[i];

v++;

if(s[i]>32&&s[i]<48||s[i]>57&&s[i]<64||s[i]>90&&s[i]<97||s[i]>122&&s[i]<127) /*перевірка скан кодів*/

{

for(j=0;j<k;j++)

{

if(a[j][0]==0) /* якщо ми знайшли розділовий знак, то збільшуємо його кількість */

{

a[j][0]=s[i];

a[j][1]++;

k++;

break;

}

else if(a[j][0]==s[i]) /* якщо попередній цикл не знайшов коду */

{

a[j][1]++;break;

}

}

}

}

}

cout<<endl<<k<<endl;

for(j=0;j<k;j++)

cout<<a[j][0]<<"="<<a[j][1]<<endl;

/* вивід на екран */

cout<<endl<<slova<<endl;

cout<<endl<<v<<endl;

cin>>i;

fcloseall(); /* закриття файлів */

}