Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2009, 10:14   #1
Semych
 
Регистрация: 15.06.2009
Сообщений: 6
Радость Задачка с цикломв Turbo Pascal

помогите пожалуйста решить задачу с циклом в Turbo Pascal

задание:
1. Изучить возможности языка программирования для реализации:
- вычислительных процессов циклической структуры: а) - цикл с предусловием; b) - цикл с постусловием разработать алгоритм решения
- разработать алгоритм решения в соответствии с заданием



Код:
program zadanie02;
var
x,a,b,w:real;
begin
 writeln('x=');
 readln(x);
 writeln('a=');
 readln(a);
 writeln('b=');
 readln(b);
if x<=-1 then
w:=(sqrt(x*x+b-b*b)) else
if (x<=-1) and (x=-2.9)
then w:=((sqr(sin(x+a)))*sin(x+a))/x
else w:=(sqr(cos(x*x*x)))-x/sqrt(a*a+b*b);
write('w=',w:2:2);
end.
шаг изменения аргумента a=16.5 b=3.4 xε[-3;0]
2. Составить программу табулирования функции.



это то что у меня получилась, но она ошибку выдает:
Код:
program pr_cikl;
var
 xn,xk,dx,b:integer;
 x,y:integer;
begin
  writeln ('введите b,xn,xk,dx');
  readln(b,xn,xk,dx);
  writeln('таблица функций');
  writeln(  ' y(x)');
  x:=xn;
readln(b);

if x<=-1 then
w:=(sqrt(x*x+b-b*b)) else
if (x<=-1) and (x=-2.9)
then w:=((sqr(sin(x+a)))*sin(x+a))/x
else w:=(sqr(cos(x*x*x)))-x/sqrt(a*a+b*b);

  y:=sqr(x)+b;
  x:=x+dx;
  writeln( 'y(x)=',y:5);
  until x>xk;
 end.
все большое спасибо кто откликнулся на просьбу)
Semych вне форума Ответить с цитированием
Старый 18.06.2009, 10:24   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Какую ошибку? Хотя могу и так сказать примерно в чем проблема. У тебя все числа Integer - т.е. целые, в то время как все математические функции (типа Sqr, cos, sin и пр.) всегда возвращают вещественные числа. Вот ты пишешь: w:=(sqr(cos(x*x*x)))-x/sqrt(a*a+b*b); А что есть w? Потому как это азы - перед использованием переменной, она должна быть объявлена. Типы переменных должны совпадать с результатом операций. Это значит, что если к примеру у тебя результат вещественное число (то которое с запятой), то и переменная должна быть соответствующая. Сделано это специально, что избегать ошибок при выполнении программ.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 18.06.2009, 16:16   #3
Semych
 
Регистрация: 15.06.2009
Сообщений: 6
По умолчанию

вот вроде переделал но что о не то( помогите плиззз....
Код:
program zadanie03;
uses crt;
var z,c,x,b,a:real;
begin
clrscr;
writeln ('Uslovie | Otvet');
writeln ('----------------');
c:=2.1;
WHILE x<=-1 do begin
z:=(sqrt(x*x+b-b*b));
x:=x+0.15;
writeln ('  | X<1 |- ',z:5:3);
begin
while (x>=-1) and (x<-2.9) do begin
z:=((sqr(sin(x+a)))*sin(x+a))/x;
x:=x+0.15;
writeln ('  | X=1 |- ',z:5:3);
begin
while x<=-2.9 do begin
z:=sqr(cos(x*x*x))-(x/sqrt(a*a+b*b));
x:=x+0.15;
write('  | X<2 |- ',z:5:3);
readln;
end;
end;
end;
end;
end;
end.
Semych вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задачка в Turbo Pascal Semych Помощь студентам 2 17.06.2009 20:56
а free pascal не читает задачи которые написаны на turbo pascal? demonara Паскаль, Turbo Pascal, PascalABC.NET 3 25.05.2009 16:28
Turbo Pascal Jasper92 Помощь студентам 17 25.04.2009 14:17
Turbo Pascal dinozavr Помощь студентам 5 13.04.2009 22:10