Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 03.06.2015, 13:58   #1
Конь Антон
Пользователь
 
Регистрация: 24.05.2015
Сообщений: 15
По умолчанию

Код:
var i,a,b:integer;
x,y,min,max:real;
begin
writeln('Введите a');
readln(a);
writeln('Введите b');
readln(b);
x:=a;
min:=1000;
max:=-1000;
y:=0;
for i:= a to b do
begin
repeat
x:=x+0.1;
y:= 3*x*x + x - 4;
if y<min then min:=y;
if y>max then max:=y;
until x<=b;
end;
writeln('Максимум функции в интервале от ',a,' до ',b,' равен ',max);
writeln('Минимум функции в интервале от ',a,' до ',b,' равен ',min);
end.
вот задание: найти max и min функции на отрезке [а,b] с шагом 0,1

Последний раз редактировалось Stilet; 03.06.2015 в 14:28.
Конь Антон вне форума   Ответить с цитированием
Старый 03.06.2015, 14:26   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,437
По умолчанию

.. что не так ?
Во - первых, почему a,b:integer; ? Что, границы могут быть только целые?
Во - вторых, зачем аж два цикла - for и repeat ?
У вас сначала repeat что-то ищет при x - от a до b, потом - при x - от b до b, потом снова много раз - при x - от b до b. И потом что-то выводит, непонятно что.
type_Oleg вне форума   Ответить с цитированием
Старый 03.06.2015, 15:44   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,263
По умолчанию

в соответствии с абсолютно верными замечаниями type_Oleg (ну и исходя из собственного мнения)
я позволил себе переписать ваш код:

Код:
function f(x: real):real;
begin
  f := 3*x*x + x - 4;
end;

var a,b,x,y,min,max:real;
begin
  writeln('Введите a');
  readln(a);
  writeln('Введите b');
  readln(b);
  if a>b then begin x:=a; a:=b; b:=x end;

  x:=a;
  min:=f(x);
  max:=f(x);
  repeat
    y:= f(x);
    if y<min then min:=y;
    if y>max then max:=y;
    x:=x+0.01;
  until x>b;
  writeln('Максимум функции в интервале от ',a,' до ',b,' равен ',max);
  writeln('Минимум функции в интервале от ',a,' до ',b,' равен ',min);
end.
Serge_Bliznykov вне форума   Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посмотрите) Вроде правильно все но не работает. Что не так? Bane БД в Delphi 14 13.03.2014 22:14
Посмотрите что не так в программе lalalalala Microsoft Office Excel 2 28.05.2012 22:31
посмотрите что не так alex_sande Microsoft Office Excel 4 17.06.2010 00:32
посмотрите что не так(((( доходит до 37 строки - функции и все sunnysunny Помощь студентам 15 29.05.2009 00:20
Посмотрите что не так, я весь мозг сломал... Devil55 Помощь студентам 3 18.02.2009 19:31