operonepas

modello dell'operone

ritorna operone.html

 

program operone1; (* modello OPERONE batterico *)
uses crt,graph;


var
h,c2,c3,c4,c6,c7,c15:word;
tempo:integer;
regola:array[1..800] of integer;
induce:array[1..800] of integer;
polime:array[1..800] of integer;


procedure grafica;
var t,s:integer;
stringa:string;
begin
t:=0;
s:=0;
stringa:=('c:\SCHEDA\');
initgraph(s,t,stringa);
end;


procedure pausa1;
begin
setcolor(c15);
outtextxy(430,10,'premi INVIO');readln;
setcolor(0);
outtextxy(430,10,'premi INVIO');
setcolor(c15);
end;

procedure pausa;
begin
readln;cleardevice;
end;

procedure testo(x,y:integer;st:string);
begin
outtextxy(x,y,st);
end;

procedure testo2(x,y:integer;st:string);
begin
setcolor(c2);
outtextxy(x,y,st);
end;

procedure testo3(x,y:integer;st:string);
begin
setcolor(c3);
outtextxy(x,y,st);
end;

procedure testo4(x,y:integer;st:string);
begin
setcolor(c4);
outtextxy(x,y,st);
end;

procedure testo6(x,y:integer;st:string);
begin
setcolor(c6);
outtextxy(x,y,st);
end;

procedure testo7(x,y:integer;st:string);
begin
setcolor(c7);
outtextxy(x,y,st);
end;

procedure testo15(x,y:integer;st:string);
begin
setcolor(c15);
outtextxy(x,y,st);
end;


procedure at;
begin
delay(tempo);
end;

procedure barra(x1,y1,x2,y2,st,col:integer);
begin
setfillstyle(st,col);
bar(x1,y1,x2,y2);
end;

procedure come1;
begin
testo2(20,350,'gene regolatore codifica per Repressore');
testo2(20,360,'che si lega a gene Operatore,impedendo allo enzima');
testo2(20,370,'RNA-polimerasi di legarsi al Promotore');
end;

procedure come2;
begin
barra(30,400,90,430,1,0);
barra(90,400,100,410,2,0);
barra(120,400,170,450,9,0);
setcolor(0);
testo(30,390,'repressore');
testo(90,380,'induttore');
testo(200,390,'RNA-polimerasi');
testo4(30,380,'induttore si lega a repressore e lo stacca da operatore');
end;

procedure come3;
begin
testo2(20,390,'enzima RNA-polimerasi si lega a Promotore');
testo(20,400,'e trascrive i geni strutturali in m-RNA ');
testo(20,410,'che verranno tradotti in proteine nei ribosomi');
end;


procedure pro1;
var x,y,k:integer;
begin
barra(20,100,600,150,1,c3); (* operone *)
testo3(20,30,'OPERONE: regolatore + promotore + operatore + strutturali');
barra(50,120,100,160,2,c2); (* regolatore *)
testo2(50,40,'gene regolatore');at;
barra(190,120,240,160,3,c4); (* promotore *)
testo3(150,50,'gene promotore');at;
barra(250,120,300,160,4,c7); (* operatore *)
testo4(250,60,'gene operatore');at;
testo15(310,70,'gene1,gene2,gene3:strutturali');
barra(310,100,360,150,5,c15); (* gene1 *)
barra(360,100,410,150,6,c15); (* gene2 *)
barra(410,100,460,150,7,c15);at; (* gene3 *)
barra(30,400,90,430,1,c2);
getimage(30,400,90,430,regola);
testo2(30,390,'repressore');
testo4(90,380,'induttore');
testo2(200,390,'RNA-polimerasi');
barra(90,400,100,410,2,c4);
getimage(90,400,100,410,induce);
barra(120,400,170,450,9,c2);
getimage(120,400,170,450,polime);
for h:=1 to 2 do
begin
come1;
x:=50;y:=160;
for k:=1 to 19 do
begin
putimage(x,y,regola,2);at;putimage(x,y,regola,1);
x:=x+k;end;
putimage(x,y,regola,2);pausa1;come2;
x:=250;y:=260;
for k:=1 to 12 do
begin
putimage(x,y,induce,2);at;putimage(x,y,induce,1);
y:=y-k;end;putimage(x,y,induce,2);at;
barra(220,160,300,210,1,0);at;
x:=250;y:=160;
for k:=1 to 12 do
begin
putimage(x,y,regola,2);at;putimage(x,y,regola,1);y:=y+k;end;
pausa1;
come3;x:=190;y:=230;
for k:=1 to 15 do
begin
putimage(x,y,polime,2);putimage(x,y,polime,1);
y:=y-k;end;putimage(x,y,polime,2);pausa1;
x:=190;y:=120;
for k:=1 to 30 do
begin
putimage(x,y,polime,1);at;putimage(x,y,polime,1);
if k=14 then begin testo2(310,270,'m-RNA1');line(310,150,310,270);end;
if k=18 then begin testo3(350,280,'m-RNA2');line(360,150,360,280);end;
if k=22 then begin testo4(400,290,'m-RNA3');line(410,150,410,290);end;
x:=x+k;end;pausa1;
(* ripete operazioni *)
barra(10,160,600,450,1,0);
end;
end;

procedure scelta;
var sce:integer;
begin
cleardevice;
settextstyle(0,0,1);
setcolor(c3);
pro1;
testo(20,20,'scrivi 1 per rivedere,2 per finire');
gotoxy(5,5);readln(sce);
if sce=1 then scelta;
end;


procedure inizio;
begin
settextstyle(4,0,4);
outtextxy(50,50,'modello OPERONE');
pausa1;cleardevice;
end;

begin
clrscr;
writeln('scrivi valore per pausa nella esecuzione');
writeln('numero intero da 100 (veloce ) a 2000 (lento):prova 100..500..1000.. ');
repeat
write('valore= ? ');readln(tempo);
until (tempo>10) and (tempo<2100);
c2:=2;c3:=3;c4:=4;c6:=6;c15:=15;c7:=7;
clrscr;textcolor(c3);
writeln('esempio di regolazione della attivazione dei geni');
writeln('secondo il modello batterico dello OPERONE');
writeln('il gene REGOLATORE codifica per una proteina :REPRESSORE');
writeln('il REPRESSORE si lega al gene OPERATORE impedendo allo enzima');
writeln('RNA-polimerasi di legarsi al PROMOTORE e trascrivere ');
writeln('i geni STRUTTURALI....premi INVIO');readln;
writeln;textcolor(c2);
writeln('una sostanza agisce come INDUTTORE legandosi al REPRESSORE');
writeln('staccandolo dal gene OPERATORE rendendo possibile il legame');
writeln('della RNA-polimerasi al gene PROMOTORE...premi INVIO');readln;
textcolor(c3);writeln;
writeln('la RNA-polimerasi legge i geni STRUTTURALI operando la');
writeln('trascrizione da DNA a m-RNA che verra tradotto in proteine');
writeln('nei RIBOSOMI citoplasmatici....premi INVIO');readln;
textcolor(c2);writeln;
writeln('in assenza di induttore il REPRESSORE blocca nuovamente');
writeln('il gene OPERATORE e la trascrizione di m-RNA');
textcolor(c15);
writeln('premi INVIO');readln;clrscr;
grafica;inizio;scelta;closegraph;
end.