[1, . 70-74] , ASCII. , .. ENTER . , , :
var f: text;
f ( ), , , .
:
assign(f, ff.dat);
f - Pascal-, ff.dat - .
, , .
( ) ( ).
, :
reset(f);
rewrite(f); -
f - Pascal-.
( ) ( ) :
readln(f); f;
writeln(f); f.
f ,
Close(f);
21. :
yi=xi2 , xi ≤ a
yi=xi+1, xi > a (i=1, 2, , n) (n≤10)
( ) fread.dat :
n =5; a =2.5; x={0.5, 1.2, 2.5, 3.2, 3.5},
n , x , n , .. x={x1,x2,,xn}.
fwrite.dat
program prim21; { }
var f1, f2: text; { f1 f2}
x, y: array[1..10] of real; { }
i, n: integer; { }
a: real;
begin
assign(f1,'fread.dat'); { f1 }
reset(f1); { f1 }
read(f1,n); { f1 n }
read(f1,a); { f1 a }
for i:=1 to n do
read(f1,x[i]); { f1 x }
close(f1); { f1}
assign(f2,'fwrite.dat'); { f2 }
rewrite(f2); { f2 }
for i:=1 to n do
if x[i]<=a then y[i]:=x[i]*x[i] else y[i]:=x[i]+1;
writeln(f2,' y(x)');
writeln(f2,' x y ');
for i:=1 to n do
writeln(f2,x[i]:6:3,' ',y[i]:6:3); { f2}
close(f2); { f2}
end.
, ,
(fread.dat): (fwrite.dat):
|
|
5 n y(x)
2.5 a x y
0.5 x1 0.500 0.250
1.2 x2 1.200 1.440
2.5 x3 2.500 6.250
3.2 x4 3.200 4.200
3.5 x5 3.500 4.500
Pascal
Pascal - (), [1, . 64].
().
- :
function - ( );
- , () .
- , , , , .
22. f(x)=0 [a,b] e.
x2 - 5 = 0 x, f(x ), n.
, [2,3] .
e.
- .
: t [a,b], fa f(a), ft - f(t), eps- e.
Program Primer22;
var a, b, eps, t, x, fa, ft: real;
n: integer;
function f(x: real): real; {- f(x)}
begin
f:=x*x-5;
end;
begin writeln(a, b, eps);
readln(a, b, eps);
n:=0;
fa:=f(a); { - f(x) x=a}
while abs(b-a) > eps do
begin
t:=(a+b)/2;
n:=n+1;
ft:=f(t); { - f(x) x=t}
if (fa*ft) < 0 then b:=t else begin a:=t; fa:=ft; end;
end;
x:=(a+b)/2;
writeln(x = , x:5:3, f(x) = , f(x):5:3, n = , n:3);
end.
a | b | e | x | f(x) | n |
0.01 | 2.23828 | 0.0099 | |||
0.001 | 2.23583 | -0.001 | |||
0.00001 | 2.23605 | -0.00006 |
.
x , f(x) ≈ 0.
Pascal
Pascal - (), () [1, . 61-64].
- :
Procedure - ( );
- - , .
, , - , , .
|
|
23. A, B. C=A+B. : cij = aij + bij.
Program prim23;
const m=2;
n=2;
type matr=array[1..m,1..n] of real;
var i,j:integer;
a,b,c:matr;
procedure readmatr(var x:matr); { }
begin
for i:=1 to m do
for j:=1 to n do
read(x[i,j]);
end;
begin
writeln(' a');
readmatr(a); { a(m,n)}
writeln(' b');
readmatr(b); { b(m,n)}
writeln(' ');
for i:=1 to m do
begin
for j:=1 to n do
begin
c[i,j]:=a[i,j]+b[i,j];
write(c[i,j]:5:2,' ');
end;
writeln;
end;
end.