Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 25.09.2009
Сообщений: 56
1

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

02.10.2009, 18:57. Просмотров 657. Ответов 7
Метки нет (Все метки)

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;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2009, 18:57
Ответы с готовыми решениями:

Как сделать функцию, возвращающую указатель на функцию (которая в свою очередь возвращает указатель на массив)
Изучаю c++ по одной книжке.Она говорить не умеет.. Так вот понадобилось написать функцию,которая...

Как правильно передавать указатель на функцию?
Класс для очереди typedef unsigned size_t; template<typename T> struct List { T data; ...

Как правильно передать в функцию указатель на двумерный массив?
Сабж #include <windows.h> #include <stdio.h> using namespace std; //ОТ безысходности сделал...

C# Подскажите как правильно передать указатель на структуру в функцию
Здравствуйте, возникли проблемы с переходом из С в С#, к сожалению синтаксис C# знаю плохо и сразу...

7
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
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)) и мне кажется что под ^ вы подразумевали возведение в степень а не исключающее или
1
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
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
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) - это проверка на чётность
1
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 не нужно
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
02.10.2009, 21:28 6
последовательность чисел Фибоначчи задается рекуррентным соотношением:
Fn+1=Fn+Fn-1. где тебе ещё надо рекурсию?
я спать пойду. если (что в принципе не возможно) не найдутся смелые тебе помочь, я помогу, но по позжа
1
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 ПЛИЗ ПОМОГИТЕ!!!!!!
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
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;
  }
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2009, 17:36

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как правильно вызвать функцию, в которую передаётся указатель на структуру?
#define _CRT_SECURE_NO_WARNINGS #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt;...

Как сделать указатель на функцию ?
Я только учусь программировать и у меня возник такой вопрос. В общем имеется на форме 5 эдитов...

DataTable - сделать, чтобы указатель указывал на нужную строку, а не на первую
Есть DataTable, DataGridView Каждый раз когда обновляю DataTable, указатель указывает на первую...

Как правильно удалять выделенную память под указатель на указатель?
есть код #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; using...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.