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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2011, 13:52   #1
Артл
Пользователь
 
Регистрация: 16.08.2010
Сообщений: 66
По умолчанию

помогите пожалуйста как это правильно написать на паскале

нужно запросить произвольный поиск корня или нет. Если да, то запрашиваем значение границ и выполняем поиск. В процессе поиска после 5 итераций запрашиваем прервать процесс или нет

В процессе поиска после 5 итераций запрашиваем прервать процесс или нет помогите вот с этим тут как лучше сделать if n:=5 do или по-другому как то и как прервать или продолжить процесс

Последний раз редактировалось Stilet; 12.06.2011 в 16:10.
Артл вне форума Ответить с цитированием
Старый 12.06.2011, 16:34   #2
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Непонятно что за корень... Что касается прервать и продолжить, то за это отвечают Continue и Break.

Ты напиши код, а как прервать мы сообразим.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 12.06.2011, 17:31   #3
Артл
Пользователь
 
Регистрация: 16.08.2010
Сообщений: 66
По умолчанию

вот код
Код:
n:=0;
repeat
fa:=a-sin(a)/cos(a);
fb:=b-sin(b)/cos(b);
c:=a + abs(fa/(fa-fb))*(b-a);
fc:=c-sin(c)/cos(c);
if fa*fc<0 then b:=c else a:=c;
n:=n+1;
until abs(fc)<e;
Артл вне форума Ответить с цитированием
Старый 12.06.2011, 18:17   #4
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

В задании написано: после 5 итераций запрашиваем прервать процесс или нет.

Значится нужно вести счёт кол-ва операций. Оно у нас видимо n.

Тогда

Код:
If n = 5 Then Begin
Writeln('Было произведено 5 итераций, прервать выполнение? (Y/N): ');
Readln(Q);
If Q = 'Y' Then Break;
End;
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 12.06.2011, 18:19   #5
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Можно ещё задествовать mod, чтоб через каждый 5 итераций происходил запрос.

Код:
If (n mod 5 = 0) Then ...
Вернее не div а mod. А также почитать:

http://www.delphisources.ru/pages/fa...s/Mod.php.html

http://www.delphisources.ru/pages/fa...tinue.php.html

http://www.delphisources.ru/pages/fa...Break.php.html

http://www.delphisources.ru/pages/fa.../Exit.php.html
Сливочное масло Valio - компиляция как по маслу

Последний раз редактировалось Valio; 12.06.2011 в 18:26.
Valio вне форума Ответить с цитированием
Старый 12.06.2011, 20:22   #6
Артл
Пользователь
 
Регистрация: 16.08.2010
Сообщений: 66
По умолчанию

спасибо, а если выбрать ответ N то как продолжить ? continue и после него опять код нахождения корня?

Последний раз редактировалось Артл; 12.06.2011 в 20:25.
Артл вне форума Ответить с цитированием
Старый 12.06.2011, 21:15   #7
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Цитата:
Сообщение от Артл Посмотреть сообщение
спасибо, а если выбрать ответ N то как продолжить ? continue и после него опять код нахождения корня?
А если N то цикл так и будет идти.. его не надо продолжать специально. Он закончится как ему и подобает при проверке:

Код:
until abs(fc)<e;
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 12.06.2011, 21:25   #8
Артл
Пользователь
 
Регистрация: 16.08.2010
Сообщений: 66
По умолчанию

если я выбираю N то у меня не выводится результат, что исправить?

Код:
If Q = 'Y' Then Break
End;
until abs(fc)<e;
writeln('x = ',c:12:8,'n = ',n);
end.
Артл вне форума Ответить с цитированием
Старый 12.06.2011, 21:31   #9
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Приведи полностью код.

Цитата:
если я выбираю N то у меня не выводится результат, что исправить?
Скорее не так, если ты выбрал чтото отличное от Y (всё что угодно, хоть N хоть W) то вообще ничего происходить не должно. Тоесть программа так и будет работать без каких либо изменений. Или же выполнилось abs(fc)<e;
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 13.06.2011, 15:08   #10
Артл
Пользователь
 
Регистрация: 16.08.2010
Сообщений: 66
По умолчанию

вот код полностью если в конце нажимаю Y то корень выводит а если другую букву то процесс не завершается и корня не выводит где что не так?
Код:
  var a,b,c,fa,fb,fc,e:real  ;
  var f,s,y,Q:char;
  var n:integer;
begin
   writeln ('proiz ili ne prpoizv (Y/N)' ) ;
   readln(f);
   if f='Y' then    begin
writeln('vvedite granits');
write ('a=');
readln (a);
 write ('b=');
readln(b) ;
writeln('vvedite e');
readln(e);
n:=0;
repeat
fa:=a-sin(a)/cos(a);
fb:=b-sin(b)/cos(b);
c:=a + abs(fa/(fa-fb))*(b-a);
fc:=c-sin(c)/cos(c);
if fa*fc<0 then b:=c else a:=c;
n:=n+1;
If n = 5 Then Begin
Writeln('Áûëî ïðîèçâåäåíî 5 èòåðàöèé, ïðåðâàòü âûïîëíåíèå? (Y/N): ');
Readln(Q);
If Q = 'Y' Then Break
End;
until abs(fc)<e;
writeln('x = ',c:12:8,'n = ',n);  end;
end.
Артл вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выполнить в Visual C++ alexeyda Фриланс 5 27.06.2010 18:31
выполнить действие. IVANSour Общие вопросы Delphi 6 01.02.2009 22:53
Как выполнить условие по именам valerij Microsoft Office Excel 3 14.09.2008 21:55
Выполнить условие с двумя ComboBox monushka Помощь студентам 2 30.04.2008 13:18