IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Табулирование функции, помогите плз с задачей
Breid
сообщение 27.12.2005 17:25
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Задание: Протабулировать функцию 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 а эту задачу делал просто по похожему примеру...
заранее спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 27.12.2005 17:31
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


так ?

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.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 27.12.2005 17:56
Сообщение #3


Гость






dry.gif Ну, и сколько раз одно и то же будет поститься? Может вообще, FAQ, Поиск и все предыдущие сообщения удалим? Будем каждый раз заново все решать... Что за тяга к изобретению велосипеда????

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

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 19.07.2025 4:49
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"