0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 29
1

Составить программу, которая определяет первое отрицательное значение функции y= x - sin x на заданном интерва

14.11.2015, 02:06. Показов 2551. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Составить программу, которая определяет первое отрицательное значение функции y= x - sin x на заданном интервале [a,b] и шаге h.

что не так со структурой?


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var a,b,h,x,y,f:real;//a,b-концы интервалов, h-шаг деления, x- переменная,через которую заменяется значение a, f-счётчик цикла
begin //ввод входных данных
  writeln('Введите a,b');
readln(a,b);
  writeln('Введите шаг h');
readln(h);
    x:=a; f:=0;
repeat // нахождение первого отрицательного значения функции
  y:=x-sin(x);
    if y<0 then f:=f+1;
  x:=x+h;
    if y>0 then begin
                writeln('на данном промежутке отсутствуют отрицательные значения');
                readln();
                end;
until f=1;
  writeln('первое отрицательное значение функции =',y:4:3);
  readln();
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2015, 02:06
Ответы с готовыми решениями:

Составить программу, которая определяет, встречается ли в тексте первое слово, еще хотя бы раз
5. Составить программу, которая определяет, встречается ли в тексте первое слово, еще хотя бы раз.

Составить программу которая определяет или число положительное или отрицательное
Помогите пожалуйста написать программу на Turbo Pascal. Составить программу которая определяет:...

Составить программу, которая определяет есть в заданном целом числе N цифра C
Составить программу, которая определяет есть в заданном целом числе N цифра C

Задача( составить программу, которая определяет верно ли что в заданном числе все цифры стоят по возрастанию)
помогите Как составить программу которая определяет верно ли, что в заданном числе все цифры...

3
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
14.11.2015, 06:53 2
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Цитата Сообщение от damer_1 Посмотреть сообщение
что не так со структурой?
1) в этом блоке программа всякий раз после приращения на шаг h будет спотыкаться
Pascal
1
2
3
4
    if y > 0 then begin
      writeln('на данном промежутке отсутствуют отрицательные значения');
      readln();
    end;
2) если на данном участке не будет отрицательного значения y, то программа выйдет за пределы интервала, и будет работать, пока не найдет отрицательного. А учитывая характер функции - будет работать бесконечно.
То есть нужно изменить условие until
3) для значения счетчика f нежелательно использовать вещественный тип real. Лучше integer. А учитывая, что условие сработает только один раз - булев тип.
4) при нахождении искомого значения желательно сразу выйти из цикла, чтобы программа не делала лишних телодвижений.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
  a, b, h, x, y: real; //a,b-концы интервалов, h-шаг деления, x- переменная,через которую заменяется значение a, f-счётчик цикла
  f: boolean;
 
begin //ввод входных данных
  writeln('Введите a, b');
  readln(a, b);
  writeln('Введите шаг h');
  readln(h);
  x := a; f := false;
  repeat // нахождение первого отрицательного значения функции
    y := x - sin(x);
    if y < 0 then begin
      f := true;
      break;
    end;
    x := x + h;
  until x >= b;
  if f then writeln('первое отрицательное значение функции =', y:4:3)
  else writeln('на данном промежутке отсутствуют отрицательные значения');
  readln();
end.
1
0 / 0 / 0
Регистрация: 21.10.2015
Сообщений: 29
17.11.2015, 23:10  [ТС] 3
Можно ли без операции break сделать
0
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
17.11.2015, 23:21 4
Лучший ответ Сообщение было отмечено damer_1 как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
  a, b, h, x, y: real;//a,b-концы интервалов, h-шаг деления, x- переменная,через которую заменяется значение a, f-счётчик цикла
 
begin//ввод входных данных
  writeln('Введите a, b');
  readln(a, b);
  writeln('Введите шаг h');
  readln(h);
  x := a;
  repeat // нахождение первого отрицательного значения функции
    y := x - sin(x);
    x := x + h;
  until (x >= b) or (y < 0);
  if y < 0 then writeln('первое отрицательное значение функции =', y:4:3)
  else writeln('на данном промежутке отсутствуют отрицательные значения');
  readln();
end.
1
17.11.2015, 23:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2015, 23:21
Помогаю со студенческими работами здесь

Составить программу, которая строит таблицу значений функции x^3+5*x^2+x-10*sin(5*x)-1
Составьте программу, которая строит таблицу значений функции {x}^{3}+5{x}^{2}+x-10sin(5x)-1....

Составьте программу, которая находит значение функции f(x)=sin x - cos x
Задали программу но я не до конца понял тему с переменной for. Составьте программу, которая...

Процедуры и функции. Составить программу, которая определяет углы треугольника по формулам.
Составить программу, которая определяет углы треугольника со сторонами а, b, с по известным...

Hайти первое отрицательное значение функции (с использованием функции и процедуры)
Hайти первое отрицательное значение функции c=sin(2v). V принадлежит интервалу (a;b) и изменятся с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru