Помощь - Поиск - Пользователи - Календарь
Полная версия: Табулирование функции
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Breid
Задание: Протабулировать функцию s(t). Функция s(t)=8t на отрезке от 0 до 1, s(t)=8 если 1<=t<=3, s(t)=-4t+20, если t>3. Аргумент функции t меняется от 0 до 5 с шагом 0,2.

program;
uses crt;
var x,f:real;i:integer;


function func(t:real;var f:real):boolean;
begin
	 func:=false;
	 if (t>=0) and (t<1) then
	 begin
		  f:=8*t;
		  func:=true;
	 end
	 else if (t>=1) and (t<=3) then
	 begin
		  f:=8;
		  func:=true;
	 end
	 else if (t>3) then
	 begin
		  f:=4*t+20;
		  func:=true;
	 end;

end;

BEGIN
	 clrscr;
	 writeln('x':10,'f(x)':10);
	 for i:=0 to 25 do begin
		 x:=0.2*i;
		 if func(x,f) then writeln(x:10 :1,f:10 :1)
		 else writeln(x:10 :1,'*':10);
		 if i=20 then begin
		  writeln('Press any key to continue');
		  readkey;
		 end;
	 end;
READLN
END.


это программа работает, ну вот только преподователю не понравилось что я использовал логический оператор "boolean", ну так собственно в этом то и вопрос, можно ли как то это дело упростить, т.е. сделать без "boolean"? подскажите плз
п.с. я в паскале новичок, поэтому просьба сильно не пинать smile.gif а эту задачу делал просто по похожему примеру...
заранее спасибо
klem4
так ?

uses crt;
const
   a = 0;
   b = 5;
   h = 0.2;
var
   t : single;

function f(x : single) : single;
begin
   if (x > 0) and (x < 1) then f := 8 * x
    else if (x >= 1) and (x <= 3) then f := 8
     else f := -4 * x + 20;
end;

begin
   clrscr;
   t := a;
   while(t <= b + h/2) do begin
      writeln('t = ',t:5:2,' f(t) = ',f(t):5:2);
      t := t + h;
   end;
   readln
end.
volvo
dry.gif Ну, и сколько раз одно и то же будет поститься? Может вообще, FAQ, Поиск и все предыдущие сообщения удалим? Будем каждый раз заново все решать... Что за тяга к изобретению велосипеда????

Элементарно зайти в поиск, набрать "табулирование", получить больше 10 ссылок, и поменять функцию на свою... НЕТ же, нужно чтоб каждому решили заново, ИМЕННО его задачу dry.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.