Страница 1 из 1

Помогите решить!

Добавлено: 14 окт 2009, 01:31
леха_18749
Люди помогите плиз решить лабу. А то я в паскале 0 , а столько баллов мне не охото получить.
Вот если кто захочет:
(x+1)ln(2.1x+4x) - составить программу для вычисления и печати таьлици значений y=F(x) на отрезке (0;1) с шагом 0.1.

Re: Помогите решить!

Добавлено: 14 окт 2009, 12:24
atavin-ta

Код: Выделить всё

 program q;
 var min,max,step;
 function y(x:real):real;
 begin  
        y:=(x+1)*ln(2.1*x+4*x);
end;
procedure Tab(min,max,step:real);
var x:real;
begin
       x:=min;
       SrtringGrid1.Rows=1;
       repeat        
        writeln('x='+x,'y=',y(x);
       unil x>max;
end;
begin
       readln(min,max,step);
       Tab(min,max,step);
end.

Re: Помогите решить!

Добавлено: 14 окт 2009, 23:20
леха_18749
Спасиб непойму как тут отблагодорить! Но чет она не работает! :(

Re: Помогите решить!

Добавлено: 15 окт 2009, 00:46
dr.Jekill
[syntax="pascal"]
uses crt;
const a=0;
b=1;
h=0.1;
c=0.000000000000001;
var x,y:real;

function Func(x0:real):real;
var c:real;
begin
func:=(x0+1)*ln(2.1*x0+4*x0+c);
end;

procedure Line;
begin
writeln(' ------- ----------');
end;

begin
clrscr;
Line;
writeln(' | x | f(x) |');
Line;
x:=a;
repeat
writeln(' |',x:6:2,' | ',Func(x):6:2,' |');
x:=x+h;
until x>b+h;
Line;
readkey;
end.
[/syntax]

Re: Помогите решить!

Добавлено: 15 окт 2009, 12:29
atavin-ta
&quot писал(а):Спасиб непойму как тут отблагодорить! Но чет она не работает!
Там два умножения были пропущены и в идентификаторе step была опечатка. Попробуй так. И что у тебя за паскаль? Может делфа? Тогда не пойдёт, там ввод/вывод другой. И прямо с нуля такая функция не пойдет. У тебя отрезок через круглые скобки, поэтому в постановке всё в порядке. Но в таком случае, min на step увеличивается, а max на столько же уменьшается.