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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2009, 18:51   #1
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
Печаль Си++. Функции.

Здравствуйте)) У меня к Вам просьба..не могли бы Вы помочь мне с такой задачей..нужно было решить уравнение подставив два значение..сравнив их..и вывести наименьшее..вообщем вот..

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

int main()
{
      float a,b,y1,y2;
      printf("Vvedite a ");
      scanf("%f",&a);
      printf("Vvedite b ");
      scanf("%f",&b);
      y1=cos(2*a)+sin(a-3);
      y2=cos(2*b)+sin(b-3);
      printf("\n y1=%.3f \n",y1);
      printf("\n y2=%.3f \n",y2);
      if (y1>y2)
          printf("\n naimenshee znachenie v tochke  b %f \n",b);
      if (y1<y2)
          printf("\n naimenshee znachenie v tochke  a %f \n",a);
             if (y1=y2)
          printf("\n  znachenia ravni \n");


      system("PAUSE");
      return 0;
}
а теперь нужно переделать это в функцию..разработать функцию f(x) , которая вычисляет значение по следующей формуле: f(x)=cos(2x)+sin(x-3). Определить, в какой из точек а или b, функция принимает наименьшее значение. Помогите пожалуйста..незнаю как это в функцию перевести((
Diamond2107 вне форума Ответить с цитированием
Старый 09.12.2009, 19:11   #2
Познающий
Форумчанин
 
Аватар для Познающий
 
Регистрация: 09.05.2009
Сообщений: 162
По умолчанию

парень, у тебя тут С - удивил. Поскольку я в С не подкован, но в С++ лови:

только не упирайся в мой код я тебе напишу как делать функцию, а саму постановку не дюже понял
Работа функций.
Ты объявляешь их до main()
Код:
#include
bool min ( int, int); //  мне булкой почему-то проще...
main (){
}
после мэйна пишешь реализацию:
Код:
main(){
}

bool min (int x, int y){ // имя как ты понял несущественно идентификаторов
int y1,y2;
 y1=cos(2*x)+sin(x-3);
 y2=cos(2*y)+sin(y-3); // сравни с ТВОЕЙ функцией. найди отличие ;)

 return (y1<=y2) //маленький финт, вернет 1, если первое функция достигает минимума при x (или а как исходно было)
}
юзаем так:

Код:
void main(){
/* устанавливаем данные */
if (min (a,b) == 1) cout<<" при а мы получили минимум";
else cout<<"при ь мы получили минимум";
}
постарался написать более-менее разобрано - если какая-то строка непонятна - спрашивай.
С наилучшими пожеланиями.
Познающий вне форума Ответить с цитированием
Старый 09.12.2009, 19:35   #3
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

Так..щас разберусь. Спасибо Вам))..только вот в задании написано разработать функцию f(x), которая вычисляла бы значение по формуле..про то, что надо разработать функцию минимума, там не написано..

Я не парень)

А подскажите пожалуйста..есть еще такая задача..разработать функцию f(n) , который для заданного натурального числа n находит значение sqrt(n)+n . Вычислить с помощью неё значение выражения sqrt(6)+6/2+sqrt(13)+13/2+sqrt(21)+21/2. Не понимаю вообще..как вычислить значение выражения с помощью функции..ведь тут то и функции вообщем нет..ввожу n и считаю значение..если можете..объясните((

Последний раз редактировалось Stilet; 10.12.2009 в 08:26.
Diamond2107 вне форума Ответить с цитированием
Старый 09.12.2009, 20:32   #4
Познающий
Форумчанин
 
Аватар для Познающий
 
Регистрация: 09.05.2009
Сообщений: 162
По умолчанию

ау, я извиняюсь.

По функции - я ж все описал надо просто вам посмотреть что такое параметры функции, а по сути делаем тоже самое
Единственное что я не понял - откуда берется ряд 6 13 21, пожалуй, мы берем переменную и присваиваем ей 6, а потом прибавляем 6+1. , а потом 7+1 (это параметры функции)( <- бред XD )


тело f(A): // я назвал А и БУДУ так называть ваше n :Р
считаем просто вон то выражение
правда постановка с самим выражением чтото не дюже совпадает, но в функции я бы считал корень числа и складывал его с половиной того же числа. Немного запутанно.
Код:
main(){
int A=6,count=1,Rez=0;
int B=A;
do{
Rez=Rez+f(B);
B=B+A+count; 
count++;} while (count<3)
}


f(A){
return sqrt(A)+A/2
}

вроде верно но честно я чето не соображаю
и сам немного запутался тут скорее всего ошибка математическая мне так кажется
С наилучшими пожеланиями.

Последний раз редактировалось Stilet; 10.12.2009 в 08:26.
Познающий вне форума Ответить с цитированием
Старый 09.12.2009, 21:12   #5
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float min (float x, float y);
float main()
{
      float a,b,y1,y2;
      printf("Vvedite a ");
      scanf("%f",&a);
      printf("Vvedite b ");
      scanf("%f",&b);

      if (min (a,b) == 1)
      printf("naimenshee znachenie pri a= %1.f\n",a);
      else
      printf("naimenshee znachenie pri b= %1.f\n",b);

      system("PAUSE");
      return 0;
}
float min (float x, float y)
{
float y1,y2;
 y1=cos(2*x)+sin(x-3);
 y2=cos(2*y)+sin(y-3);
 printf("\n y1=%.3f \n",y1);
 printf("\n y2=%.3f \n",y2);
 return (y1<=y2);
}
Вот посмотрите..правильно решена первая задача?
Diamond2107 вне форума Ответить с цитированием
Старый 09.12.2009, 21:43   #6
Познающий
Форумчанин
 
Аватар для Познающий
 
Регистрация: 09.05.2009
Сообщений: 162
По умолчанию

ну можно и так) если функция адин вернет при return (y1<=y2);
скомпайлите и проверьте) вроде работает
С наилучшими пожеланиями.
Познающий вне форума Ответить с цитированием
Старый 09.12.2009, 21:45   #7
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

А что можно по другому..могут быть проблемы? А вот со второй что-то не понятно((..что брать в качестве параметров..и как это Rez=Rez+f(B)..

подскажите пожалуйста..разработать функцию f(n) , который для заданного натурального числа n находит значение sqrt(n)+n/2 . Вычислить с помощью неё значение выражения sqrt(6)+6/2+sqrt(13)+13/2+sqrt(21)+21/2. Помогите пожалуйста с параметрами функции и циклом..

Последний раз редактировалось Stilet; 10.12.2009 в 08:26.
Diamond2107 вне форума Ответить с цитированием
Старый 09.12.2009, 23:48   #8
osichev
Форумчанин
 
Регистрация: 18.05.2009
Сообщений: 180
По умолчанию

Код:
#include<stdio.h>
#include<math.h>
 void SQRT(float n,float m,float nm);
 void main(){
     float n1,m1,nm1;
     float s;
     printf("ВВЕдите 3 числа: "); scanf("%f%f%f",&n1,m1,nm1);
     printf("Ответ: ");
     SQRT(n1,m1,nm1);
     }
     void SQRT(float n,float m,float nm){
     float s;
     s=sqrt(n)+n/2+sqrt(m)+m/2+sqrt(nm)+nm/2;
     printf("%f",s);
      
}
вроде так))
Программист без пива, как спирт без пробки - выдохнется___________-

Последний раз редактировалось Stilet; 10.12.2009 в 08:27.
osichev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чем отличается описание функции от определения функции в С++? Go6a Помощь студентам 4 18.07.2009 18:07
Функции С++ moltes Помощь студентам 2 28.05.2009 18:46
C++ функции KOLYTFR Помощь студентам 1 27.04.2009 09:33
Функции на СИ tanek Помощь студентам 1 08.04.2009 17:43
Функции. Передача массива в качестве параметра функции. Wia Помощь студентам 2 17.03.2009 14:57