Форум программистов, компьютерный форум CyberForum.ru

как сделать правильно указатель на первую функцию - C++

Войти
Регистрация
Восстановить пароль
 
[CN]Defender
1 / 1 / 0
Регистрация: 25.09.2009
Сообщений: 56
02.10.2009, 18:57     как сделать правильно указатель на первую функцию #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
int F(int n)
    {
        if(n==0) return 1;
        if(n==1) return 1;
        return (n+(n-1));
    }
int _tmain(int argc, _TCHAR* argv[])
{
    int p,n;
    printf ("vvedite p ");
    scanf("%d",&p);
    [B]p=F(n);[/B]
    if((n+1)*(n-1)-n*n=((-1)^n))
        printf("ravenstvo dokazano");
    else
    printf ("ravenstvo nedokazano");
    getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
02.10.2009, 19:40     как сделать правильно указатель на первую функцию #2
[CN]Defender, у вас несколько странный код. не совсем понятно какой и зачем вам нужен указатель. но одно ясно: код не будет работать как вы его задумали.
1. вы получаете р и присваиваете ему значение p=F(n);, причём n неинициализированное. в лучшем случае оно будет равно 0, но это не факт.
2. if((n+1)*(n-1)-n*n=((-1)^n)) должно быть как минимум if((n+1)*(n-1)-n*n==((-1)^n)) и мне кажется что под ^ вы подразумевали возведение в степень а не исключающее или
[CN]Defender
1 / 1 / 0
Регистрация: 25.09.2009
Сообщений: 56
02.10.2009, 20:22  [ТС]     как сделать правильно указатель на первую функцию #3
возведение во степень
то просто рекурсия чисел фиббоначи...
и нужно доказать ото равенство

Добавлено через 7 минут
нужно использую результирующую рекурсию для чисел фиббоначи доказать равенстов касини
F(n+1)*F(n-1)-F(n^2)=(-1)^n
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
02.10.2009, 21:01     как сделать правильно указатель на первую функцию #4
n^2 не катить как возведение используй pow(n,2) библиотека math.h или cmath
= - это приравнять, а ты сравниваешь две части поэтому надо ==

тебе в принципе возведение в степень не к чему если n - чётное то (-1)^n=1, иначе -1

Добавлено через 9 минут
попробуй так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
 
  int F(int n)
  {
    if(n==0) return 1;
    if(n==1) return 1;
    return (n+(n-1));
  }
 
  int main()
  {
    int n;
    printf ("vvedite p ");
    scanf("%i",&n);
    if((F(n+1)*F(n-1)-F(n*n))==((n%2)?-1:1))
      printf("ravenstvo dokazano");
    else
      printf ("ravenstvo nedokazano");
    getch();
    return 0;
  }
((n%2)?-1:1) - это проверка на чётность
[CN]Defender
1 / 1 / 0
Регистрация: 25.09.2009
Сообщений: 56
02.10.2009, 21:18  [ТС]     как сделать правильно указатель на первую функцию #5
TanT так прога всё равно не считает через рекурсию для чисел фиббоначи
F(n+1)*F(n-1)-F(n^2)=F((-1)^n ) ошибка тута тоже F

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "math.h"
 
  int F(int n)
  {
    if(n==0) return 1;
    if(n==1) return 1;
    return (n+(n-1));
  }
 
  int main()
  {
    int n;
    printf ("vvedite p ");
    scanf("%i",&n);
    if((F(n+1)*F(n-1)-F(pow(n,2))==(F(pow(-1,n)))))
      printf("ravenstvo dokazano");
    else
      printf ("ravenstvo nedokazano");
    getch();
    return 0;
  }
только как сделать чтобы оно всё считало через рекурсию чисел фиббоначи и доказало то равенстов тута даже else не нужно
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
02.10.2009, 21:28     как сделать правильно указатель на первую функцию #6
последовательность чисел Фибоначчи задается рекуррентным соотношением:
Fn+1=Fn+Fn-1. где тебе ещё надо рекурсию?
я спать пойду. если (что в принципе не возможно) не найдутся смелые тебе помочь, я помогу, но по позжа
[CN]Defender
1 / 1 / 0
Регистрация: 25.09.2009
Сообщений: 56
02.10.2009, 22:30  [ТС]     как сделать правильно указатель на первую функцию #7
ВАРИАНТ 21
Используя рекурсивную реализацию функции для чисел Фибоначчи, доказать, что Fn+1Fn-1 – Fn2 = (-1)n (равенство Ж.Д. Касини).
это мое задание

Добавлено через 1 минуту
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "math.h"
 
  int F(int n)
  {
    if(n==0) return 1;
    if(n==1) return 1;
    return (F(n)+F(n-1));
  }
 
  int main()
  {
    int N;
    printf ("vvedite n  (n)\n");
    scanf("%d",&N);
    int res=F(N);
    if((F(N+1)*F(N-1)-F(pow(N,2)))==(F(pow(-1,N))))
      printf("ravenstvo dokazano");
    else
      printf ("ravenstvo nedokazano");
    getch();
    return 0;
  }
выдает ошибку pow

Добавлено через 51 минуту
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "math.h"
 
  int Function(int n)
  {
    if(n==0) return 1;
    if(n==1) return 1;
    return Function(n)+Function(n-1);
  }
 
 int _tmain(int argc, _TCHAR* argv[])
  {
    int nums;
    printf ("vvedite nums ");
    scanf("%d",&nums);
    int res=Function(nums);
    printf("%d",&res);
     if((res+1)*(res-1)-pow(res,2)==pow(-1,res))
      printf("ravenstvo dokazano");
    else
      printf ("ravenstvo nedokazano");
 
    getch();
    return 0;
  }
ОШИБКА В pow ПЛИЗ ПОМОГИТЕ!!!!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2009, 17:36     как сделать правильно указатель на первую функцию
Еще ссылки по теме:

C++ Как правильно кастовать указатель на константную ф-ю
C++ Не могу понять, как правильно передать указатель на объект в файл
Как получить указатель на функцию C++
Правильно ли передан указатель на массив структур в функцию? C++
C++ Как правильно передать массив через указатель?

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

Или воспользуйтесь поиском по форуму:
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
03.10.2009, 17:36     как сделать правильно указатель на первую функцию #8
слов на ветер не бросаю, как с дачи пригрёб так и написал. смотри:
оформление подсебя сделай

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "math.h"
 
// âû÷èñëåГ*ГЁГҐ Г·ГЁГ±Г«Г* ÔèáîГ*Г*Г·ГЁ èñïîëüçóÿ äâГ* ïðåäûäóùèõ Г§Г*Г*Г·ГҐГ*ГЁГї
// Г°Г*áîòГ*ГҐГІ êîððåêòГ*Г® Г*Г*Г·ГЁГ*Г*Гї Г± 4ГЈГ® Г·ГЁГ±Г«Г* ÔèáîГ*Г*Г·ГЁ
double Fibonachi(double nMinusOne, double n)
{
  return n+nMinusOne;
}
 
int main()
{
  int nums, counter=3;
  // ГЁГ*èöèГ*ëèçèðóåì Г§Г*Г*Г·ГҐГ*èÿìè ïåðâûõ 3Гµ Г·ГЁГ±ГҐГ« ÔèáîГ*Г*Г·ГЁ
  double numFibonNminus1=1, numFibonN=1, numFibonNplus1;
  printf ("vvedite nums ");
  scanf("%i",&nums);
  if (nums<2)
  {
    printf ("ERROR:nums<2 ");
  }
  else
  {
   // ГІГ*ГЄ ГЄГ*ГЄ ГІГ» Г±Г°Г*çó Г*ГҐ ñìîæåøü ïîëó÷èòü 5îå ÷èñëî ÔèáîГ*Г*Г·ГЁ, ГІГ® ГҐГ±ГІГј ГІГҐГЎГҐ
  // Г*Г*äî ïîñ÷èòГ*ГІГј Г±Г*Г*Г·Г*ëî 1îå ïîòîì 2îå ГЁ ГІГ*ГЄ Г¤Г*ëåå,
  // ГІГ® ГҐГ±ГІГј ðåêóðñèÿ.
  // áåð¸ì ГЁ Г±Г·ГЁГІГ*ГҐГ¬ ГўГ±ГҐ Г·ГЁГ±Г«Г* äî ââåä¸Г*îãî +1
  // Г§Г*ïîìèГ*Г*ГҐГ¬ Г*ГіГ¦Г*ûå ГЁ ïðîâåðÿåì Г°Г*ГўГҐГ*Г±ГІГўГ®
  // ïðèìåðГ*Г® âîò ГІГ*ГЄ:
    while(1)   
    {     
      numFibonNplus1=Fibonachi(numFibonNminus1,numFibonN);
      if (counter>=(nums+1)) 
       break;               // äîñòèãëè nums+1
      // ïðèñâГ*ГЁГўГ*ГҐГ¬ n-1 ÷èñëó ÔìáîГ*Г*Г·ГЁ n-îå,
      // n-ìó n+1-îå ГЁ Г±Г·ГЁГІГ*ГҐГ¬
      // êîðî÷å èä¸ì Г*Г* ñëåäóþùóþ ГЁГІГҐГ°Г*öèþ
      numFibonNminus1=numFibonN; numFibonN=numFibonNplus1;
      counter++;
    }
 
    printf("\n\r-1:%.0f 1:%.0f +1:%.0f", numFibonNminus1, numFibonN, numFibonNplus1);
    printf("\n%.0f*%.0f-%2.0f==%2.0f", numFibonNplus1,numFibonNminus1, pow(numFibonN,2), pow(-1,nums));
    if((numFibonNplus1*numFibonNminus1-pow(numFibonN,2))==pow(-1.0,nums))
      printf("\nravenstvo dokazano");
    else
      printf ("ravenstvo nedokazano");
  }
  
  getch();
  return 0;
  }
Yandex
Объявления
03.10.2009, 17:36     как сделать правильно указатель на первую функцию
Ответ Создать тему
Опции темы

Текущее время: 05:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru