0 | 1 | D2
1 | 1 | 1 | D3
В залежності від кількості інформаційних входів, які комутуються на один вихід, напишемо програму, яка демонструвала б роботу мультиплексорів з 4, 8, 16-ма інформаційними входами (мультиплексори 4-1, 8-1, 16-1). Для кожного з них програма буде креслити таблицю істинності.
2 Граф-схема алгоритму
3 Вказівки користувачеві
Виконувана програма selector.exe проста у виконанні, невелика за розміром, невибаглива до системи. Вона демонструє роботу мультиплексора та малює таблицю істинності. Для її роботи необхідно, щоб у каталозі, де знаходиться програма, був присутній файл egavga.bgi графічний драйвер. Після запуску треба вибрати тип мультиплексора, після чого, користуючись клавішами управління курсором, перебираючи кодові комбінації на адресні входи, можна спостерігати проходження сигналів з інформаційних входів на вихід.
Приклад роботи програми наведений в додатку.
4 Вказівки програмісту
Текст програми написаний мовою Turbo C++. У програмі використовуються функції графічної бібліотеки. Для заповнення таблиці істинності та подачі двійкових комбінацій на адресні входи мультиплексора були використані вкладені цикли від 0 до 1 із глибиною n, де n кількість адресних входів. В залежності від цих комбінацій за допомогою оператора switch демонструється проходження сигналу із інформаційних входів.
ВИСНОВКИ
В даній курсовій роботі були розглянуті основні логічні елементи та вузли цифрових пристроїв, їх види, визначені основні функції і значення для електронно-обчислювальної техніки. Було доведено, що вони є невід’ємними складовими обчислювальних машин, так як жодна ЕОМ або цифровий прилад не можуть обійтися без них. Для демонстрації роботи одного із вузлів цифрових приладів (мультиплексора) було написано програму.
ЛІТЕРАТУРА
Поджаренко В.О., Кучерук В.Ю., Марущак В.Ю. Основи цифрової техніки. – Вінниця:, ВДТУ, 2000р.
Хаімзон І. Я. Техніка передачі інформації. Функціональні вузли та схеми. Частина ІІ. – Вінниця:, ВДТУ,2000.- 112 с.
Додаток А
Текст програми selector.cpp
#include <iostream.h>
#include <conio.h>
#include <graphics.h>
#include <math.h>
//вибір типу мультиплексора
void sub_intro()
{
setcolor(3);
settextstyle(0,HORIZ_DIR,2);
outtextxy(90,100,"ПРИНЦИП РОБОТИ МУЛЬТИПЛЕКСОРА");
settextstyle(1,HORIZ_DIR,0);
setcolor(5);
outtextxy(210,150,"ВИБЕРІТЬ ТИП МУЛЬТИПЛЕКСОРА:");
setcolor(15);
settextstyle(0,HORIZ_DIR,2);
outtextxy(300,200,"4-1");
outtextxy(300,240,"8-1");
outtextxy(300,280,"16-1");
setcolor(1);
settextstyle(1,HORIZ_DIR,0);
outtextxy(460,400,"курсова робота");
outtextxy(460,420,"студента групи 1 ІС-05");
outtextxy(460,440,"Ткачука Андрія");
settextstyle(0,HORIZ_DIR,2);
}
//вибір мультиплексора, повернення значення кількості адресних входів
int intro()
{
int n,i,key;
i=0;
n=i+2;// n-кількість адресних входів
sub_intro();
setcolor(4);
outtextxy(280,200,">");
while(!kbhit())
{
key=getch();if(key==13) goto next;//вихід із функції
key=getch();
//управління клавішами курсора
switch(key)
{
case 72:cleardevice();
i--;
if(i<0) i=2;
n=i+2;
sub_intro();
setcolor(4);
outtextxy(280,200+i*40,">");
break;
case 80:cleardevice();
i++;
if(i>2)i=0;
n=i+2;
sub_intro();
setcolor(4);
outtextxy(280,200+i*40,">");
break;
}
}
next:cleardevice();
settextstyle(1,HORIZ_DIR,0);
return(n);
}
//виведення підказки користування клавішами
void instr(int x0,int y0,int n)
{
int x,y,zm;
if(n==4){x=x0+450;y=y0;zm=20;}
else {x=x0;y=y0;}
outtextxy(x,y,"КЛАВІШІ:");
if(n!=4)outtextxy(x,y+20,"ENTER – вибір мультиплексора;
else
{
outtextxy(x,y+20,"ENTER -");
outtextxy(x,y+40,"вибір мультиплексора");
}
outtextxy(x,y+40+zm,"UP - вверх");
outtextxy(x,y+60+zm,"DOWN - вниз");
outtextxy(x,y+80+zm,"ESC - вихід");
}
//функція креслення таблиці істинності
void table(int x,int y,int n)//x,y-координати верхнього лівого кута
{ //n-кількість адресних входів
int i,L0=100/n;
setcolor(7);
for(i=0;i<pow(2,n)+3;i++)
line(x,y+i*L0,x+(n+2)*L0,y+i*L0);
for(i=0;i<(n+3);i++)
line(x+i*L0,y,x+i*L0,y+(pow(2,n)+2)*L0);
}
//функція заповнення таблиці істинності
void fill(int x,int y, int n)
{
int i,j,k,t,g,L0=100/n;
for(i=0;i<n;i++)
switch(i)
{
case 0:outtextxy(x+L0/3+i*L0,y+L0/2,"A0");
outtextxy(x+L0/3+i*L0,y+1.5*L0,"*");break;
case 1:outtextxy(x+L0/3+i*L0,y+L0/2,"A1");
outtextxy(x+L0/3+i*L0,y+1.5*L0,"*");break;
case 2:outtextxy(x+L0/3+i*L0,y+L0/2,"A2");
outtextxy(x+L0/3+i*L0,y+1.5*L0,"*");break;
case 3:outtextxy(x+L0/3+i*L0,y+L0/2,"A3");
outtextxy(x+L0/3+i*L0,y+1.5*L0,"*");break;
}
switch(n)
{
case 2:outtextxy(x+L0/3+2*L0,y+L0/2,"E");
outtextxy(x+L0/3+2*L0,y+1.5*L0,"0");
outtextxy(x+L0/3+3*L0,y+L0/2,"Q");
outtextxy(x+L0/3+3*L0,y+1.5*L0,"0");break;
case 3:outtextxy(x+L0/3+3*L0,y+L0/2,"E");
outtextxy(x+L0/3+3*L0,y+1.5*L0,"0");
outtextxy(x+L0/3+4*L0,y+L0/2,"Q");
outtextxy(x+L0/3+4*L0,y+1.5*L0,"0");break;
case 4:outtextxy(x+L0/3+4*L0,y+L0/2,"E");
outtextxy(x+L0/3+4*L0,y+1.5*L0,"0");
outtextxy(x+L0/3+5*L0,y+L0/2,"Q");
outtextxy(x+L0/3+5*L0,y+1.5*L0,"0");break;
}
t=2;
switch(n)//заповнення таблиці кодовими комбінаціями
{
case 2://для мультиплексора з 2-ма адресними входами
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
switch(i)
{
case 0:outtextxy(x+L0/3,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3,y+t*L0+L0/2,"1");
}
switch(j)
{
case 0:outtextxy(x+L0/3+L0,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3+L0,y+t*L0+L0/2,"1");
}
outtextxy(x+L0/3+2*L0,y+t*L0+L0/2,"1");
t++;
}
break;
case 3://з 3-ма адр. входами
for(i=0;i<2;i++)
for(j=0;j<2;j++)
for(k=0;k<2;k++)
{
switch(i)
{
case 0:outtextxy(x+L0/3,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3,y+t*L0+L0/2,"1");
}
switch(j)
{
case 0:outtextxy(x+L0/3+L0,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3+L0,y+t*L0+L0/2,"1");
}
switch(k)
{
case 0:outtextxy(x+L0/3+2*L0,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3+2*L0,y+t*L0+L0/2,"1");
}
outtextxy(x+L0/3+3*L0,y+t*L0+L0/2,"1");
t++;
}
break;
case 4: //з 4-ма адр. входами
for(i=0;i<2;i++)
for(j=0;j<2;j++)
for(k=0;k<2;k++)
for(g=0;g<2;g++)
{
switch(i)
{
case 0:outtextxy(x+L0/3,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3,y+t*L0+L0/2,"1");
}
switch(j)
{
case 0:outtextxy(x+L0/3+L0,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3+L0,y+t*L0+L0/2,"1");
}
switch(k)
{
case 0:outtextxy(x+L0/3+2*L0,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3+2*L0,y+t*L0+L0/2,"1");
}
switch(g)
{
case 0:outtextxy(x+L0/3+3*L0,y+t*L0+L0/2,"0");break;
case 1:outtextxy(x+L0/3+3*L0,y+t*L0+L0/2,"1");
}
outtextxy(x+L0/3+4*L0,y+t*L0+L0/2,"1");
t++;
}
}
for(i=2;i<(pow(2,n)+2);i++)
switch(i)
{
case 2:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D0");break;
case 3:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D1");break;
case 4:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D2");break;
case 5:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D3");break;
case 6:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D4");break;
case 7:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D5");break;
case 8:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D6");break;
case 9:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D7");break;
case 10:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D8");break;
case 11:outtextxy(x+L0/4+(n+1)*L0,y+i*L0+L0/2,"D9");break;
case 12:outtextxy(x+L0/10+(n+1)*L0,y+i*L0+L0/2,"D10");break;
case 13:outtextxy(x+L0/10+(n+1)*L0,y+i*L0+L0/2,"D11");break;
case 14:outtextxy(x+L0/10+(n+1)*L0,y+i*L0+L0/2,"D12");break;
case 15:outtextxy(x+L0/10+(n+1)*L0,y+i*L0+L0/2,"D13");break;
case 16:outtextxy(x+L0/10+(n+1)*L0,y+i*L0+L0/2,"D14");break;
case 17:outtextxy(x+L0/10+(n+1)*L0,y+i*L0+L0/2,"D15");break;
}
}
//креслення мультиплексора
void mult(int x,int y,int n)//x,y-координати верхнього лівого кута
{ //кіль-сть адресних входів
int i,w=90/n,L0=80/n;
setcolor(7);
line(x,y,x,y+L0*(3+n+pow(2,n)));
line(x+w,y,x+w,y+L0*(3+n+pow(2,n)));
line(x+5*w,y,x+5*w,y+L0*(3+n+pow(2,n)));
line(x+6*w,y,x+6*w,y+L0*(3+n+pow(2,n)));
line(x,y,x+6*w,y);
line(x,y+L0*(3+n+pow(2,n)),x+6*w,y+L0*(3+n+pow(2,n))); line(x,y+L0*(1+pow(2,n)),x+w,y+L0*(1+pow(2,n)));
line(x,y+L0*(2+n+pow(2,n)),x+w,y+L0*(2+n+pow(2,n)));
outtextxy(x+L0/2,y+L0/3,"D");
outtextxy(x+L0/2,y+(1+pow(2,n))*L0+L0/3,"A");
outtextxy(x+L0/2,y+(2+n+pow(2,n))*L0+L0/3,"E");
line(x-w,y+(2+n+pow(2,n))*L0+L0/2,x,y+(2+n+pow(2,n))*L0+L0/2);
outtextxy(x+5*w+L0/2,y+L0*(3+n+pow(2,n))/2,"Q");
line(x+6*w,y+L0*(3+n+pow(2,n))/2,x+7*w,y+L0*(3+n+pow(2,n))/2);
for(i=0;i<n;i++)
//креслення та нумерація адресних входів
switch(i)
{
case 0:outtextxy(x+L0/2,y+(1+pow(2,n))*L0+L0+L0/3,"0");
line(x-w,y+(1+pow(2,n))*L0+L0+L0/2,x,y+(1+pow(2,n))*L0+L0+L0/2);
break;
case 1:outtextxy(x+L0/2,y+(1+pow(2,n))*L0+2*L0+L0/3,"1");
line(x-w,y+(1+pow(2,n))*L0+2*L0+L0/2,x,y+(1+pow(2,n))*L0+2*L0+L0/2);
break;
case 2:outtextxy(x+L0/2,y+(1+pow(2,n))*L0+3*L0+L0/3,"2");
line(x-w,y+(1+pow(2,n))*L0+3*L0+L0/2,x,y+(1+pow(2,n))*L0+3*L0+L0/2);
break;
case 3:outtextxy(x+L0/2,y+(1+pow(2,n))*L0+4*L0+L0/3,"3");
line(x-w,y+(1+pow(2,n))*L0+4*L0+L0/2,x,y+(1+pow(2,n))*L0+4*L0+L0/2);
break;
}
for(i=0;i<pow(2,n);i++)
//нумерація інформаційних входів
switch(i)
{
case 0:outtextxy(x+L0/2,y+L0/3+L0,"0");
line(x-w,y+L0/2+L0,x,y+L0/2+L0);break;
case 1:outtextxy(x+L0/2,y+L0/3+2*L0,"1");
line(x-w,y+L0/2+2*L0,x,y+L0/2+2*L0);break;
case 2:outtextxy(x+L0/2,y+L0/3+3*L0,"2");
line(x-w,y+L0/2+3*L0,x,y+L0/2+3*L0);break;
case 3:outtextxy(x+L0/2,y+L0/3+4*L0,"3");
line(x-w,y+L0/2+4*L0,x,y+L0/2+4*L0);break;
case 4:outtextxy(x+L0/2,y+L0/3+5*L0,"4");
line(x-w,y+L0/2+5*L0,x,y+L0/2+5*L0);break;
case 5:outtextxy(x+L0/2,y+L0/3+6*L0,"5");
line(x-w,y+L0/2+6*L0,x,y+L0/2+6*L0);break;
case 6:outtextxy(x+L0/2,y+L0/3+7*L0,"6");
line(x-w,y+L0/2+7*L0,x,y+L0/2+7*L0);break;
case 7:outtextxy(x+L0/2,y+L0/3+8*L0,"7");
line(x-w,y+L0/2+8*L0,x,y+L0/2+8*L0);break;
case 8:outtextxy(x+L0/2,y+L0/3+9*L0,"8");
line(x-w,y+L0/2+9*L0,x,y+L0/2+9*L0);break;
case 9:outtextxy(x+L0/2,y+L0/3+10*L0,"9");
line(x-w,y+L0/2+10*L0,x,y+L0/2+10*L0);break;
case 10:outtextxy(x+L0/5,y+L0/3+11*L0,"10");
line(x-w,y+L0/2+11*L0,x,y+L0/2+11*L0);break;
case 11:outtextxy(x+L0/5,y+L0/3+12*L0,"11");
line(x-w,y+L0/2+12*L0,x,y+L0/2+12*L0);break;
case 12:outtextxy(x+L0/5,y+L0/3+13*L0,"12");
line(x-w,y+L0/2+13*L0,x,y+L0/2+13*L0);break;
case 13:outtextxy(x+L0/5,y+L0/3+14*L0,"13");
line(x-w,y+L0/2+14*L0,x,y+L0/2+14*L0);break;
case 14:outtextxy(x+L0/5,y+L0/3+15*L0,"14");
line(x-w,y+L0/2+15*L0,x,y+L0/2+15*L0);break;
case 15:outtextxy(x+L0/5,y+L0/3+16*L0,"15");
line(x-w,y+L0/2+16*L0,x,y+L0/2+16*L0);break;
}
}
//функція, що малює стрілку
void arrow(int x, int y)
{
setfillstyle(1,4);
setcolor(4);
line(x,y,x-20,y-10);
line(x,y,x-20,y+10);
line(x-15,y,x-20,y-10);
line(x-15,y,x-20,y+10);
floodfill(x-5,y,4);
}
//введення кодової комбінації на адресні входи мультиплексора
void adress(int x,int y,int n,int m)
{
int i,j,k,g,t,L0=100/n;
t=0;
switch(n)
{
case 2://для мультиплексора з 2-ма адр. входами
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
switch(i)
{
case 0:if(t==m)outtextxy(x-90/n,y+(1+pow(2,n))*L0,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+(1+pow(2,n))*L0,"1");
}
switch(j)
{
case 0:if(t==m)outtextxy(x-90/n,y+(2+pow(2,n))*L0-L0/5,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+(2+pow(2,n))*L0-L0/5,"1");
}
outtextxy(x-90/n,y+(3+pow(2,n))*L0-L0/2.5,"1");
t++;
}
break;
case 3:// для мультиплексора з 3-ма адр. входами
for(i=0;i<2;i++)
for(j=0;j<2;j++)
for(k=0;k<2;k++)
{
switch(i)
{
case 0:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0,"0");break;
case 1:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0,"1");
}
switch(j)
{
case 0:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0+L0-L0/4,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0+L0-L0/4,"1");
}
switch(k)
{
case 0:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0+2*L0-L0/2,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+pow(2,n)*L0+2*L0-L0/2,"1");
}
outtextxy(x-90/n,y+pow(2,n)*L0+3*L0-L0/1.5,"1");
t++;
}
break;
case 4:// для мультиплексора з 4-ма адр. входами
for(i=0;i<2;i++)
for(j=0;j<2;j++)
for(k=0;k<2;k++)
for(g=0;g<2;g++)
{
switch(i)
{
case 0:if(t==m)outtextxy(x-90/n,y+(pow(2,n)-2)*L0+L0/3,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+(pow(2,n)-2)*L0+L0/3,"1");
}
switch(j)
{
case 0:if(t==m)outtextxy(x-90/n,y+(pow(2,n)-1)*L0+L0/6,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+(pow(2,n)-1)*L0+L0/6,"1");
}
switch(k)
{
case 0:if(t==m)outtextxy(x-90/n,y+(pow(2,n))*L0,"0");break;
case 1:if(t==m)outtextxy(x-90/n,y+(pow(2,n))*L0,"1");
}
switch(g)
{
case 0:if(t==m)outtextxy(x-90/n,y+(pow(2,n)+1)*L0-L0/4,"0");
break;
case 1:if(t==m)outtextxy(x-90/n,y+(pow(2,n)+1)*L0-L0/4,"1");
}
outtextxy(x-90/n,y+(pow(2,n)+2)*L0-L0/2.5,"1");
t++;
}
}
}
void main()
{
int dr=DETECT,mod,y,i,n,L0,key,c;
initgraph(&dr,&mod,"");
again:;
n=intro();
table(25,10,n);
fill(25,10,n);
mult(310,10,n);
instr(20,380,n);
i=-1;
y=0;
L0=80/n;
setcolor(2);
//на адр. входи не подаються сигнали
if(n==2)outtextxy(310-90/n,75+(3+pow(2,n))*L0-L0/2.5,"0");
if(n==3)outtextxy(310-90/n,82+pow(2,n)*L0+3*L0-L0/1.5,"0");
if(n==4)outtextxy(310-90/n,95+n+(pow(2,n)+2)*L0-L0/2.5,"0");
outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"0");
//на адр. входи подаються сигнали
while(!kbhit())
{
key=getch();if(key==13){cleardevice();goto again;}
if(key==27) goto next;
key=getch();
//керування стрілкою
switch(key)
{
case 72:cleardevice();//стрілка вверх
table(25,10,n);
fill(25,10,n);
mult(310,10,n);
instr(20,380,n);
i--;
if(i<0) i=pow(2,n)-1;
arrow(260,10+(i+1)*L0+L0/2);//y+L0/2+7*L0
setcolor(2);
//комутація з одного із інф. входів на вихід
switch(i)
{
case 0:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D0");
break;
case 1:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D1");
break;
case 2:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D2");
break;
case 3:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D3");
break;
case 4:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D4");
break;
case 5:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D5");
break;
case 6:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D6");
break;
case 7:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D7");
break;
case 8:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D8");
break;
case 9:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D9");
break;
case 10:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D10");
break;
case 11:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D11");
break;
case 12:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D12");
break;
case 13:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D13");
break;
case 14:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D14");
break;
case 15:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D15");
break;
}
adress(310,10,n,i);
break;
case 80:cleardevice();//стрілка вниз
table(25,10,n);
fill(25,10,n);
mult(310,10,n);
instr(20,380,n);
i++;
if(i>pow(2,n)-1) i=0;
arrow(260,(i+1)*L0+10+L0/2);
setcolor(2);
switch(i)
{
case 0:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D0");
break;
case 1:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D1");
break;
case 2:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D2");
break;
case 3:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D3");
break;
case 4:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D4");
break;
case 5:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D5");
break;
case 6:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D6");
break;
case 7:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D7");
break;
case 8:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D8");
break;
case 9:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D9");
break;
case 10:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D10");
break;
case 11:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D11");
break;
case 12:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D12");
break;
case 13:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D13");
break;
case 14:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D14");
break;
case 15:outtextxy(310+450/n+1.5*L0,y+L0*(3+n+pow(2,n))/2,"D15");
break;
}
adress(310,10,n,i);
break;
}
}
next:closegraph();
}
Результат роботи програми
Демонстрація роботи мультиплексора типу 8-1.