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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2009, 23:40   #21
MR_Andrew
Форумчанин
 
Регистрация: 05.10.2009
Сообщений: 100
По умолчанию

Цитата:
Сообщение от Sweta Посмотреть сообщение
Вычисление абсолютного значения погрешности вещественного числа.
А слово "вещественного" можно как-то заменить? У нас преподавание на украинском языке, мне это перевести надо будет. А это слово я, наверно, на укр, да чтоб еще суть не потерять, перевести не смогу...

П.С. А готовые комментарии ко всем методам есть? Если нету, то специально делать не надо, я сам напишу. Просто если есть уже готовые...
MR_Andrew вне форума Ответить с цитированием
Старый 07.12.2009, 23:48   #22
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Цитата:
А слово "вещественного" можно как-то заменить
обчислення абсолютного значення дійсного числа .
коментариев нет.
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 07.12.2009, 23:54   #23
MR_Andrew
Форумчанин
 
Регистрация: 05.10.2009
Сообщений: 100
По умолчанию

Цитата:
Сообщение от Sweta Посмотреть сообщение
обчислення абсолютного значення дійсного числа .
коментариев нет.

А так еще лучше
СПАСИБО!!!
MR_Andrew вне форума Ответить с цитированием
Старый 12.12.2009, 22:50   #24
MR_Andrew
Форумчанин
 
Регистрация: 05.10.2009
Сообщений: 100
По умолчанию

Такс... Закончили!
Код (поправил с преподом немного. там заминка с буквами была. Пришлось Ревинд применить (причем препод сам минут 10 думал)

Код:
Код:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>



int main()
{
int n, k, a=0;
float  x, d, u, q, w, x0, x1, x2, u1, u2, b=0.85, eps=0.00005;



printf ("Programa dl9 znahodzhenn9 koren9 rivn9nn9 4-ma metodami\n");
printf ("Metod 1: metod polovinnogo dilenn9\n");
printf ("Metod 2: metod hord\n");
printf ("Metod 3: metod doti4nih (metod Newton'a\n");
printf ("Metod 4: metod poslidovnih nablizhen'\n");
printf ("Press 0 to exit\n");

for (;;)

{

printf ("Viberite metod\n");

scanf ("%d", &n);			//оператор введення
     switch(n)				//оператор вибору
     {
     case 1: x1=a;
	     x2=b;
	     {
	      k=0;
	      do
		{
		u1=x1-(1/(3+sin(3.6*x1))); //Обчислюємо значення ф-ї для х1
		x=(x1+x2)/2;		  //Ділимо новий відрізок на 2
		u2=x-(1/(3+sin(3.6*x))); //Обчислюємо значення ф-ції для нового значення х
		if(u2*u1<0)		//Якщо значення ф-цій мають різні знаки, то корінь х1 і х
		x2=x;		       //Задаємо нову кординату  х2 відрізка
		else                  //якщо значення ф-цій мають одинакові знаки, то корінь між х і х2
		x1=x; 		     //Задаємо нову кординату  х1 відрізка
		k=k+1;              //Рахуємо кількість кроків
		d=fabs(x1-x2);     //обчислення абсолютного значення дійсного числа.
		}
		while(d>eps);     //цикл виконуємо доти, доки не досягнемо заданої точності
		printf("korin'=%f\n",x);
		printf("k=%i\n",k);
		}
		break;

	 case 2: x0=a;
		x1=b;
		k=0;
		do
	       {
x2=x1-(x1-(1/(3+sin(3.6*x1))))*(x1-x0)/((x1-(1/(3+sin(3.6*x1))))-(x0-(1/(3+sin(3.6*x0)))));
		//Обчислення кореня х2 за формулою метода хорд.
		d=fabs(x0-x1);            //обчислення абсолютного значення дійсного числа.
		if(d>eps)                //Якщо значення d більше за eps, виконувати наступний цикл
	       {
		x0=x1;                  //значенню х0 присвоюємо значення х1
		x1=x2;                 //Значенню х1 присвоюємо значення х2
	       }
		k=k+1;               //Рахуємо кількість кроків
	       }
		while(d>eps);       //цикл виконуємо доти, доки не досягнемо заданої точності
		printf("korin'=%f\n",x2);
		printf("k=%i\n",k);
		break;

     case 3: k=0;                           //початкова к-ть кроків = 0
	  x1=(a+b)/2;                     //знаходимо півсумму меж пошуку коренів
	  do
	 {
	  k=k+1;                        //к-ть кроків щоразу збульшуемо на 1
	 x2=x1-(x1-(1/(3+sin(3.6*x1))))/(1+(cos(3.6*x1)))/((3+sin(3.6*x1)*(3+sin(3.6*x1))));
		                       //знаходимо значення х2 зо формулою Ньютона
	  d=fabs(x2-x1);              //обчислення абсолютного значення дійсного числа.
	  if(d>eps)                   //Якщо значення d більше за eps, виконувати наступний цикл
	  x1=x2;		     //значенню х1 просвоюємо значення х2
	 }
	  while(d>eps);		    //цикл виконуємо доти, доки не досягнемо заданої точності
	  printf("korin'=%f\n",x2);
	  printf("k=%i\n",k);
     break;


     case 4:  k=0;                       //початкова к-ть кроків = 0
	       x0=(a+b)/2;              //значення х0 = півсуммі меж пошуку коренів
	       do
	      {
	       x1=x0-(x0-1/(3+sin(3.6*x0))); //знаходимо значення х1 підстановкою у рівняння значення х0
	       k=k+1;			    //к-ть кроків щоразу збульшуемо на 1
	       d=fabs(x1-x0);		   //обчислення абсолютного значення дійсного числа.
	       x0=x1; 			  //Значенню х0 присвоюємо значення х1
	      }
	       while(d>eps);		 //цикл виконуємо доти, доки не досягнемо заданої точності
	       printf("korin'=%f\n",x1);
	       printf("k=%i\n",k);
	       break;


     case 0: return(0);
     }



printf ("Programa rabotu zakin4yla\n");
printf ("--------------------------------------------------------------\n");


rewind(stdin);				 //очищення пам'яті


}


getchar ();
return 0;
}
Что хотел бы уточнить: комментарии правильные? Правда на украинском... Ну если кто силен, может помочь, проверить?
Спасибо
MR_Andrew вне форума Ответить с цитированием
Старый 13.12.2009, 08:55   #25
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Код:
if(u2*u1<0)		//Якщо значення ф-цій мають різні знаки, то корінь  між х1 і х
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 13.12.2009, 22:42   #26
MR_Andrew
Форумчанин
 
Регистрация: 05.10.2009
Сообщений: 100
По умолчанию

Цитата:
Сообщение от Sweta Посмотреть сообщение
Код:
if(u2*u1<0)		//Якщо значення ф-цій мають різні знаки, то корінь  між х1 і х
Огромное спасибо! Поправлю.
MR_Andrew вне форума Ответить с цитированием
Старый 16.12.2009, 20:00   #27
MR_Andrew
Форумчанин
 
Регистрация: 05.10.2009
Сообщений: 100
По умолчанию

Сдал на "А"
Если кому надо протокол - напишите в личку, я сюда залью.
MR_Andrew вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание MediaPlayer методами DirectShow AlexFAst Мультимедиа в Delphi 1 29.09.2009 01:16
Работа со строками и методами в Java PavelZet Помощь студентам 1 02.06.2009 05:36
Пишу *.dll помогите с методами mdbm Общие вопросы Delphi 11 28.05.2008 14:19
Автоматизация обработки изображений и их оцифровки методами делфи helpme32 Мультимедиа в Delphi 1 14.12.2007 13:03