listati per turbo pascal
studio funzione-derivata-massimi-minimi

max2aga max2ga max3aga max3ga max4ga max4aga max4bga


program max2aga;
uses crt,graph;
(* ricerca massino,minimo funzione *)
(* tabella valori funzione e derivata 1,2 *)
(* grafico funzione e assi cartesiani *)

var x,sc,tp:integer;
    grafici:string;

procedure grafica;
begin
initgraph(sc,tp,grafici);
end;

function y(x:integer):real;
 begin
 y:=-x*x;
 end;
function d1(x:integer):real;
 begin
 d1:=-2*x;
 end;
function d2(x:integer):real;
 begin
 d2:=-2;
 end;

procedure testo;
begin
writeln('si calcola derivata prima e seconda della funzione');
writeln('in punto x interno a intervallo esistenza funzione');
writeln('massimo relativo f(x) se d1(x)=0 e d2(x)<0');
writeln('minimo relativo  f(x) se d1(x)=0 e d2(x)>0');
writeln;
writeln('premi enter');readln;clrscr;
writeln('funzione = -x^2 ');
writeln('x':6,'d1(x)':12,'d2(x)':12,'y(x)':12);
writeln;
for x:=-6 to 6 do
 begin
 writeln(x:6,d1(x):12:3,d2(x):12:3,y(x):12:3);
 end;
writeln;
writeln('massimo per x=0....d1(x)=0...d2(x)=-2...y(x)=0 ');
writeln;writeln('premi enter');
 readln;
end;

procedure assi;
var b,c:integer;
begin
c:=0;
setcolor(3);
line(0,200,200,200);
line(60,10,60,300);
for b:=0 to 12 do
begin
line(c,198,c,202);
c:=c+10;
end;
end;

procedure funzione;
var a,h,r:integer;
    sy,sx,sd1,sd2,sd3:string;
begin
a:=0;h:=5;r:=30;
setcolor(7);
outtextxy(200,10,'x,d1,d2,y');
for x:=-6 to 6 do
begin
 line(a,200,a,200-round(y(x))*h);
 str(round(y(x)),sy);
 str(x,sx);
 str(d1(x):5:0,sd1);
 str(d2(x):5:0,sd2);
 outtextxy(400,r,sy);
 outtextxy(160,r,sx);
 outtextxy(190,r,sd1);
 outtextxy(240,r,sd2);
 a:=a+10;
 r:=r+10;
end;
outtextxy(50,250,'massimo per x=0');
outtextxy(50,300,'premi enter');
readln;
end;

procedure scheda;
var tipo:integer;
begin
writeln('indica il tipo di computer in uso');
writeln('olivetti..1...corel..2...corelVGA..3 ');
readln(tipo);
if tipo=1 then begin sc:=0;tp:=0;grafici:='c:\tp\bgi';end;
if tipo=2 then begin sc:=7;tp:=0;grafici:='c:\tp\bgi';end;
if tipo=3 then begin sc:=0;tp:=0;grafici:='c:\turbo5';end;
clrscr;
end;

begin
clrscr;
scheda;
testo;
grafica;
assi;
funzione;
end.

program max2ga;
uses crt,graph;
(* ricerca massino,minimo funzione *)
(* tabella valori funzione e derivata 1,2 *)
(* grafico funzione e assi cartesiani *)

var x,sc,tp,tipo:integer;
    grafici:string;

procedure grafica;
begin
initgraph(sc,tp,grafici);
end;

procedure scheda;
var tipo:integer;
begin
writeln('indica il tipo di computer in uso');
writeln('olivetti..1...corel..2...corelVGA..3 ');
readln(tipo);
if tipo=1 then begin sc:=0;tp:=0;grafici:='c:\tp\bgi';end;
if tipo=2 then begin sc:=7;tp:=0;grafici:='c:\tp\bgi';end;
if tipo=3 then begin sc:=0;tp:=0;grafici:='c:\turbo5';end;
clrscr;
end;

function y(x:integer):real;
 begin
 y:=-x*x;
 end;
function d1(x:integer):real;
 begin
 d1:=-2*x;
 end;
function d2(x:integer):real;
 begin
 d2:=-2;
 end;

procedure testo;
begin
writeln('si calcola derivata prima e seconda della funzione');
writeln('in punto x interno a intervallo esistenza funzione');
writeln('massimo relativo f(x) se d1(x)=0 e d2(x)<0');
writeln('minimo relativo  f(x) se d1(x)=0 e d2(x)>0');
writeln;
writeln('premi enter');readln;clrscr;
writeln('funzione =- x^2 ');
writeln('x':6,'d1(x)':12,'d2(x)':12,'y(x)':12);
writeln;
for x:=-6 to 6 do
 begin
 writeln(x:6,d1(x):12:3,d2(x):12:3,y(x):12:3);
 end;
writeln;
writeln('massimo per x=0....d1(x)=0...d2(x)=-2...y(x)=0 ');
writeln;writeln('premi enter');
 readln;
end;

procedure assi;
var b,c:integer;
begin
c:=0;
line(0,200,200,200);
line(60,10,60,300);
for b:=0 to 12 do
begin
line(c,198,c,202);
c:=c+10;
end;
end;

procedure funzione;
var a,h:integer;
begin
a:=0;h:=5;
for x:=-6 to 6 do
begin
 putpixel(a,200-round(y(x))*h,7);
 a:=a+10;
end;
outtextxy(250,250,'massimo per x=0');
outtextxy(250,300,'premi enter');
readln;
end;

begin
clrscr;
scheda;
testo;
grafica;
assi;
funzione;
end.

program max3aga;
uses crt,graph;
(* ricerca massino,minimo funzione *)
(* tabella valori funzione e derivata 1,2,3 *)
(* grafico funzione e assi cartesiani *)

var x,sc,tp:integer;
    grafici:string;

procedure grafica;
begin
initgraph(sc,tp,grafici);
end;

function y(x:integer):real;
 begin
 y:=x*x*x*x*x-5*x*x*x*x+5*x*x*x+1;
 end;
function d1(x:integer):real;
 begin
 d1:=5*x*x*x*x-20*x*x*x+15*x*x;
 end;
function d2(x:integer):real;
 begin
 d2:=20*x*x*x-60*x*x+30*x;
 end;
 function d3(x:integer):real;
 begin
 d3:=60*x*x-120*x+30;
 end;
procedure testo;
begin
writeln('si calcola derivata prima e seconda della funzione');
writeln('in punto x interno a intervallo esistenza funzione');
writeln('massimo relativo f(x) se d1(x)=0 e d2(x)<0');
writeln('minimo relativo  f(x) se d1(x)=0 e d2(x)>0');
writeln('non massimo,minimo    se d1(x)=0 e d2(x)=0 e d3(x)>0');
writeln;
writeln('premi enter');readln;clrscr;
writeln('funzione= x^5-5x^4+5x^3+1');
writeln('x':6,'d1(x)':12,'d2(x)':12,'d3(x)':12,'y(x)':12);
writeln;
for x:=-1 to 3 do
 begin
 writeln(x:6,d1(x):12:3,d2(x):12:3,d3(x):12:3,y(x):12:3);
 end;
writeln;
writeln('minimo per x=3.......y(x)=-26');
writeln('massimo per x=1....d1(x)=0...d2(x)=-10...y(x)=2 ');
writeln('dubbio  per x=0.....d1(x)=0..d2(x)=0..d3(x)=30..y(x)=1');
writeln;writeln('premi enter');
 readln;
end;

procedure assi;
var b,c:integer;
begin
c:=0;
setcolor(3);
line(0,200,200,200);
line(10,10,10,300);
for b:=0 to 12 do
begin
line(c,198,c,202);
c:=c+10;
end;
end;

procedure funzione;
var a,h,r:integer;
    sy,sx,sd1,sd2,sd3:string;
begin
a:=0;h:=5;r:=30;
setcolor(7);
outtextxy(200,10,'x,d1,d2,d3,y');
for x:=-1 to 3 do
begin
 line(a,200,a,200-round(y(x))*h);
 str(round(y(x)),sy);
 str(x,sx);
 str(d1(x):5:0,sd1);
 str(d2(x):5:0,sd2);
 str(d3(x):5:0,sd3);
 outtextxy(400,r,sy);
 outtextxy(160,r,sx);
 outtextxy(190,r,sd1);
 outtextxy(240,r,sd2);
 outtextxy(300,r,sd3);
 a:=a+10;
 r:=r+10;
end;
outtextxy(50,250,'minimo per x=3..massimo per x=1..dubbio x=0');
outtextxy(50,300,'premi enter');
readln;
end;

procedure scheda;
var tipo:integer;
begin
writeln('indica il tipo di computer in uso');
writeln('olivetti..1...corel..2...corelVGA..3 ');
readln(tipo);
if tipo=1 then begin sc:=0;tp:=0;grafici:='c:\tp\bgi';end;
if tipo=2 then begin sc:=7;tp:=0;grafici:='c:\tp\bgi';end;
if tipo=3 then begin sc:=0;tp:=0;grafici:='c:\turbo5';end;
clrscr;
end;

begin
clrscr;
scheda;
testo;
grafica;
assi;
funzione;
end.

program max3ga;
uses crt,graph;
(* ricerca massino,minimo funzione *)
(* tabella valori funzione e derivata 1,2,3 *)
(* grafico funzione e assi cartesiani *)

var x,sc,tp,tipo:integer;
    grafici:string;

procedure grafica;
begin
initgraph(sc,tp,grafici);
end;

procedure scheda;
var tipo:integer;
begin
writeln('indica il tipo di computer in uso');
writeln('olivetti..1...corel..2...corelVGA..3 ');
readln(tipo);
if tipo=1 then begin sc:=0;tp:=0;grafici:='c:\tp\bgi';end;
if tipo=2 then begin sc:=7;tp:=0;grafici:='c:\tp\bgi';end;
if tipo=3 then begin sc:=0;tp:=0;grafici:='c:\turbo5';end;
clrscr;
end;

function y(x:integer):real;
 begin
 y:=x*x*x*x*x-5*x*x*x*x+5*x*x*x+1;
 end;
function d1(x:integer):real;
 begin
 d1:=5*x*x*x*x-20*x*x*x+15*x*x;
 end;
function d2(x:integer):real;
 begin
 d2:=20*x*x*x-60*x*x+30*x;
 end;
function d3(x:integer):real;
begin
 d3:=60*x*x-120*x+30;
end;

procedure testo;
begin
writeln('si calcola derivata prima e seconda e terza della funzione');
writeln('in punto x interno a intervallo esistenza funzione');
writeln('massimo relativo f(x) se d1(x)=0 e d2(x)<0');
writeln('minimo relativo  f(x) se d1(x)=0 e d2(x)>0');
writeln('non massimo,minimo    se d1(x)=0 e d2(x)=0 e d3(x)>0');
writeln;
writeln('premi enter');readln;clrscr;
writeln('funzione = x^5-5x^4+5x^3+1 ');
writeln('x':6,'d1(x)':12,'d2(x)':12,'d3(x)':12,'y(x)':12);
writeln;
for x:=-1 to 3 do
 begin
 writeln(x:6,d1(x):12:3,d2(x):12:3,d3(x):12:3,y(x):12:3);
 end;
writeln;
writeln('minimo  per x=3..d1(x)=0..d2(x)=90...........y(x)=-26');
writeln('massimo per x=1..d1(x)=0..d2(x)=-10..........y(x)=2');
writeln('dubbio  per x=0..d1(x)=0..d2(x)=0...d3(x)=30.y(x)=1 ');
writeln;writeln('premi enter');
 readln;
end;

procedure assi;
var b,c:integer;
begin
c:=0;
line(0,200,200,200);
line(10,10,10,300);
for b:=0 to 12 do
begin
line(c,198,c,202);
c:=c+10;
end;
end;

procedure funzione;
var a,h:integer;
begin
a:=-1;h:=6;
for x:=-1 to 3 do
begin
 putpixel(a,200-round(y(x))*h,3);
 a:=a+10;
end;
outtextxy(150,250,'minimo per x=3..massimo per x=1..dubbio per x=0');
outtextxy(150,300,'premi enter');
readln;
end;

begin
clrscr;
scheda;
testo;
grafica;
assi;
funzione;
end.

program max4ga;
uses crt,graph;
(* ricerca massino,minimo funzione *)
(* tabella valori funzione e derivata 1,2,3 *)
(* grafico funzione e assi cartesiani *)

var x,sc,tp,tipo:integer;
    grafici:string;

procedure grafica;
begin
initgraph(sc,tp,grafici);
end;

procedure scheda;
var tipo:integer;
begin
writeln('indica il tipo di computer in uso');
writeln('olivetti..1...corel..2...corelVGA..3 ');
readln(tipo);
if tipo=1 then begin sc:=0;tp:=0;grafici:='c:\tp\bgi';end;
if tipo=2 then begin sc:=7;tp:=0;grafici:='c:\tp\bgi';end;
if tipo=3 then begin sc:=0;tp:=0;grafici:='c:\turbo5';end;
clrscr;
end;


function y(x:integer):real;
 begin
 y:=x*x*x;
 end;
function d1(x:integer):real;
 begin
 d1:=3*x*x;
 end;
function d2(x:integer):real;
 begin
 d2:=6*x;
 end;
function d3(x:integer):real;
begin
 d3:=6;
end;

procedure testo;
begin
writeln('si calcola derivata prima e seconda e terza della funzione');
writeln('in punto x interno a intervallo esistenza funzione');
writeln('massimo relativo f(x) se d1(x)=0 e d2(x)<0');
writeln('minimo relativo  f(x) se d1(x)=0 e d2(x)>0');
writeln('non massimo,minimo    se d1(x)=0 e d2(x)=0 e d3(x)>0');
writeln;
writeln('premi enter');readln;clrscr;
writeln('funzione = x^3 ');
writeln('x':6,'d1(x)':12,'d2(x)':12,'ddd3(x)':12,'y(x)':12);
writeln;
for x:=-3 to 3 do
 begin
 writeln(x:6,d1(x):12:3,d2(x):12:3,d3(x):12:3,y(x):12:3);
 end;
writeln;
writeln('flesso per x=0....d1(x)=0...d2(x)=0...d3(x)=6..y(x)=0 ');
writeln;writeln('premi enter');
 readln;
end;

procedure assi;
var b,c:integer;
begin
c:=0;
line(0,200,200,200);
line(60,10,60,300);
for b:=0 to 12 do
begin
line(c,198,c,202);
c:=c+10;
end;
end;

procedure funzione;
var a,h:integer;
begin
a:=0;h:=1;
for x:=-6 to 6 do
begin
 putpixel(a,200-round(y(x))*h,3);
 a:=a+10;
end;
outtextxy(150,250,'flesso per x=0');
outtextxy(150,300,'premi enter');
readln;
end;

begin
clrscr;
scheda;
testo;
grafica;
assi;
funzione;
end.

program max4aga;
uses crt,graph;
(* ricerca massino,minimo funzione *)
(* tabella valori funzione e derivata 1,2,3 *)
(* grafico funzione e assi cartesiani *)

var x,sc,tp,tipo:integer;
    grafici:string;

procedure grafica;
begin
initgraph(sc,tp,grafici);
end;

procedure scheda;
var tipo:integer;
begin
writeln('indica il tipo di computer in uso');
writeln('olivetti..1...corel..2...corelVGA..3 ');
readln(tipo);
if tipo=1 then begin sc:=0;tp:=0;grafici:='c:\tp\bgi';end;
if tipo=2 then begin sc:=7;tp:=0;grafici:='c:\tp\bgi';end;
if tipo=3 then begin sc:=0;tp:=0;grafici:='c:\turbo5';end;
clrscr;
end;


function y(x:integer):real;
 begin
 y:=x*x*x;
 end;
function d1(x:integer):real;
 begin
 d1:=3*x*x;
 end;
function d2(x:integer):real;
 begin
 d2:=6*x;
 end;
function d3(x:integer):real;
begin
 d3:=6;
end;

procedure testo;
begin
writeln('si calcola derivata prima e seconda e terza della funzione');
writeln('in punto x interno a intervallo esistenza funzione');
writeln('massimo relativo f(x) se d1(x)=0 e d2(x)<0');
writeln('minimo relativo  f(x) se d1(x)=0 e d2(x)>0');
writeln('non massimo,minimo    se d1(x)=0 e d2(x)=0 e d3(x)>0');
writeln;
writeln('premi enter');readln;clrscr;
writeln('funzione = x^3 ');
writeln('x':6,'d1(x)':12,'d2(x)':12,'ddd3(x)':12,'y(x)':12);
writeln;
for x:=-3 to 3 do
 begin
 writeln(x:6,d1(x):12:3,d2(x):12:3,d3(x):12:3,y(x):12:3);
 end;
writeln;
writeln('flesso per x=0....d1(x)=0...d2(x)=0...d3(x)=6..y(x)=0 ');
writeln;writeln('premi enter');
 readln;
end;

procedure assi;
var b,c:integer;
begin
c:=0;
line(0,200,200,200);
line(60,10,60,300);
for b:=0 to 12 do
begin
line(c,198,c,202);
c:=c+10;
end;
end;

procedure funzione;
var a,h:integer;
begin
a:=0;h:=1;
for x:=-6 to 6 do
begin
 line(a,200,a,200-round(y(x))*h);
 a:=a+10;
end;
outtextxy(150,250,'flesso per x=0');
outtextxy(150,300,'premi enter');
readln;
end;

begin
clrscr;
scheda;
testo;
grafica;
assi;
funzione;
end.

program max4bga;
uses crt,graph;
(* ricerca massino,minimo funzione *)
(* tabella valori funzione e derivata 1,2,3 *)
(* grafico funzione e assi cartesiani *)

var x,sc,tp:integer;
    grafici:string;

procedure grafica;
begin
initgraph(sc,tp,grafici);
end;

function y(x:integer):real;
 begin
 y:=x*x*x;
 end;
function d1(x:integer):real;
 begin
 d1:=3*x*x;
 end;
function d2(x:integer):real;
 begin
 d2:=6*x;
 end;
 function d3(x:integer):real;
 begin
 d3:=6;
 end;
procedure testo;
begin
writeln('si calcola derivata prima e seconda della funzione');
writeln('in punto x interno a intervallo esistenza funzione');
writeln('massimo relativo f(x) se d1(x)=0 e d2(x)<0');
writeln('minimo relativo  f(x) se d1(x)=0 e d2(x)>0');
writeln('non massimo,minimo    se d1(x)=0 e d2(x)=0 e d3(x)>0');
writeln;
writeln('premi enter');readln;clrscr;
writeln('funzione= x^3');
writeln('x':6,'d1(x)':12,'d2(x)':12,'d3(x)':12,'y(x)':12);
writeln;
for x:=-3 to 3 do
 begin
 writeln(x:6,d1(x):12:3,d2(x):12:3,d3(x):12:3,y(x):12:3);
 end;
writeln;
writeln('flesso per x=0.....d1(x)=0..d2(x)=0..d3(x)=6..y(x)=0');
writeln;writeln('premi enter');
 readln;
end;

procedure assi;
var b,c:integer;
begin
c:=0;
setcolor(3);
line(0,200,200,200);
line(30,10,30,300);
for b:=0 to 12 do
begin
line(c,198,c,202);
c:=c+10;
end;
end;

procedure funzione;
var a,h,r:integer;
    sy,sx,sd1,sd2,sd3:string;
begin
a:=0;h:=2;r:=30;
setcolor(7);
outtextxy(200,10,'x,d1,d2,d3,y');
for x:=-3 to 3 do
begin
 line(a,200,a,200-round(y(x))*h);
 str(round(y(x)),sy);
 str(x,sx);
 str(d1(x):5:0,sd1);
 str(d2(x):5:0,sd2);
 str(d3(x):5:0,sd3);
 outtextxy(400,r,sy);
 outtextxy(160,r,sx);
 outtextxy(190,r,sd1);
 outtextxy(240,r,sd2);
 outtextxy(300,r,sd3);
 a:=a+10;
 r:=r+10;
end;
outtextxy(50,250,'flesso per x=0..');
outtextxy(50,300,'premi enter');
readln;
end;

procedure scheda;
var tipo:integer;
begin
writeln('indica il tipo di computer in uso');
writeln('olivetti..1...corel..2...corelVGA..3 ');
readln(tipo);
if tipo=1 then begin sc:=0;tp:=0;grafici:='c:\tp\bgi';end;
if tipo=2 then begin sc:=7;tp:=0;grafici:='c:\tp\bgi';end;
if tipo=3 then begin sc:=0;tp:=0;grafici:='c:\turbo5';end;
clrscr;
end;

begin
clrscr;
scheda;
testo;
grafica;
assi;
funzione;
end.