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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2014, 19:59   #1
Алькер
Пользователь
 
Регистрация: 07.04.2014
Сообщений: 26
Восклицание паскаль abc- найти ошибку

Код:
const i = 6;
var x, h,y, max,k ,p,ymax,xmax: real;
begin
k:=0;
h:= 0.01*i;
x:=0;
max:= sin(x+i);
writeln ('x':6, 'y':6);
repeat
  y:= sin(x+i);
  writeln(x:7:2, y:7:2);
  if y > 0 then k:=k+1;
  x:= x + h;
until x > i + h/2;
writeln('Количество отрицательных=',k);
while x<=i do
  begin
  y:=sin(x+i);
  if y<0 then
     begin
     if p=0 then p:=1;
     p:=p*y;
     end;
  if x=0 then ymax:=y;
  if y>ymax then
    begin
    ymax:=y;
    xmax:=x;
    end;
  writeln(x:6:2,y:10:5);
  x:=x+0.01*i;
  end;
writeln('Произведение отрицательных: ',p);
end.
не высчитывает произведение отрицательных.. по отдельности все считает само задание Протабулировать функцию у = sin(x+ i) на отрезке [0;i]с шагом h=0,01*i, где i – номер варианта. Результаты вычислений вывести на экран в виде таблицы пар чисел х и у. 4. вычислить произведение всех отрицательных значений функции у и определить количество положительных

Последний раз редактировалось Stilet; 24.04.2014 в 20:18.
Алькер вне форума Ответить с цитированием
Старый 24.04.2014, 20:06   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

В той строчке, где у вас считается p, поставьте
Writeln(p); и посмотрите как считается p.
Или воспользуйтесь отладчиком.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 24.04.2014, 22:50   #3
Алькер
Пользователь
 
Регистрация: 07.04.2014
Сообщений: 26
По умолчанию

а можно как то в коде эт пометить? НИкак разобраться не могу. По отдельности все решает , а как вместе собрать- не понимаю чет. Уже только как и не переписала
Алькер вне форума Ответить с цитированием
Старый 24.04.2014, 23:10   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

Код:
while x<=i do
Вот здесь x=6.059999..., а i=6 и цикл нахождения произведения отрицательных вообще не выполняется. Исправляйте.

Черт знает, что тут намутено. В коде не разбирался. Произведение считается, но число очень маленькое. Что-то не так с алгоритмом.
Код:
const i = 6;
var x, h,y, max,k ,p,ymax,xmax: real;
begin
k:=0;
h:= 0.01*i;
x:=0;
max:= sin(x+i);
writeln ('x':6, 'y':6);
repeat
  y:= sin(x+i);
  writeln(x:7:2, y:7:2);
  if y > 0 then k:=k+1;
  x:= x + h;
until x > i + h/2;
writeln('Количество отрицательных=',k);
readln;
  p:=1;
  x:=0;
  while x<=i do
    begin
      y:=sin(x);
      if p=0.0 then
        p:=1;
      p:=p*y;
      writeln(x:6:2,y:10:5,p:10:5);
      x:=x+0.01*i;
    end;
writeln('Произведение отрицательных: ',p);
readln;
end.
Изображения
Тип файла: jpg 2014-04-24 23-31-04 Free Pascal IDE.jpg (36.8 Кб, 112 просмотров)

Последний раз редактировалось ZX Spectrum-128; 24.04.2014 в 23:33.
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль.НАЙТИ ОШИБКУ!!! Настя Котова Помощь студентам 1 20.04.2013 16:39
Найти ошибку, в файле. Паскаль. Veleri92 Помощь студентам 6 02.06.2010 21:43
найти ошибку в массиве, паскаль bingooo Помощь студентам 2 09.04.2010 19:12
помогите найти ошибку - паскаль ai\ekcah^p Помощь студентам 2 11.05.2009 17:32
Найти ошибку в задаче на ПАскаль Анжелика Помощь студентам 3 16.01.2009 00:55