// PascalABC.NET 3.2, сборка 1389 от 01.03.2017 // Внимание! Если программа не работает, обновите версию!
begin var F:real->real:=x->2*x*x-6*x+8; var a,b:real; Write('a b= '); Read(a,b); Writeln('Min=',Range(a,b,9).Select(x->F(x)).Min) end.
Пример a b= -2 6 Min=3.50617283950617
2. Решение "по-школьному" ("дедушкин метод")
function F(x:real):real; begin F:=2*x*x-6*x+8 end;
var a,b,y,h,min:real; i:integer; begin Write('a b= '); Read(a,b); h:=(b-a)/9; min:=F(a); for i:= 1 to 9 do begin y:=F(a+i*h); if y<min then min:=y end; Writeln('Min=',min) end.
1) тк не уточнила загружаем из файла, или вводим с клавиатуры, получай с этими двумя функциями. в каталоге с программой должен быть файлик .txt
var a,filename:string[255]; chk,i,res:integer; f1:Text; begin res:=0; chk:=0; Writeln('1. Input line'); Writeln('2. Load from file'); Readln(chk); if chk=1 then begin Writeln('Input line: '); Readln(a); for i:=1 to Length(a) do if a[i]='.' then res:=res+1; Writeln('Result: ',res); end; if chk=2 then begin writeln('Input name of file: '); Readln(filename); filename:=filename+'.txt'; Assign (f1, filename); Reset(f1); while not eof (f1) do begin readln (f1, a); writeln(a); for i:=1 to Length(a) do if a[i]='.' then res:=res+1; end; Writeln('Result: ',res); Close (f1); end; readln; end.
2) вводим не запятую, а точку, как разделитель частей числа
var a,substr:string[100]; x,res,i:integer; begin writeln('Input number:'); Readln(a); substr:='.'; x:=Pos(substr,a); for i:=1 to x-1 do res:=res+strtoint(a[i]); Writeln('Result of first part: ',res); res:=0; for i:=x+1 to Length(a) do res:=res+StrToInt(a[i]); Writeln('Result of second part: ',res); readln; end.
// PascalABC.NET 3.2, сборка 1389 от 01.03.2017
// Внимание! Если программа не работает, обновите версию!
begin
var F:real->real:=x->2*x*x-6*x+8;
var a,b:real;
Write('a b= '); Read(a,b);
Writeln('Min=',Range(a,b,9).Select(x->F(x)).Min)
end.
Пример
a b= -2 6
Min=3.50617283950617
2. Решение "по-школьному" ("дедушкин метод")
function F(x:real):real;
begin
F:=2*x*x-6*x+8
end;
var
a,b,y,h,min:real;
i:integer;
begin
Write('a b= '); Read(a,b);
h:=(b-a)/9;
min:=F(a);
for i:= 1 to 9 do begin
y:=F(a+i*h);
if y<min then min:=y
end;
Writeln('Min=',min)
end.
Пример
a b= -2 6
Min=3.50617283950617
1) тк не уточнила загружаем из файла, или вводим с клавиатуры, получай с этими двумя функциями. в каталоге с программой должен быть файлик .txt
var a,filename:string[255];
chk,i,res:integer;
f1:Text;
begin
res:=0;
chk:=0;
Writeln('1. Input line');
Writeln('2. Load from file');
Readln(chk);
if chk=1 then
begin
Writeln('Input line: ');
Readln(a);
for i:=1 to Length(a) do
if a[i]='.' then
res:=res+1;
Writeln('Result: ',res);
end;
if chk=2 then
begin
writeln('Input name of file: ');
Readln(filename);
filename:=filename+'.txt';
Assign (f1, filename);
Reset(f1);
while not eof (f1) do
begin
readln (f1, a);
writeln(a);
for i:=1 to Length(a) do
if a[i]='.' then
res:=res+1;
end;
Writeln('Result: ',res);
Close (f1);
end;
readln;
end.
2) вводим не запятую, а точку, как разделитель частей числа
var a,substr:string[100];
x,res,i:integer;
begin
writeln('Input number:');
Readln(a);
substr:='.';
x:=Pos(substr,a);
for i:=1 to x-1 do
res:=res+strtoint(a[i]);
Writeln('Result of first part: ',res);
res:=0;
for i:=x+1 to Length(a) do
res:=res+StrToInt(a[i]);
Writeln('Result of second part: ',res);
readln;
end.