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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
#1

Как применять функции? - C++

07.01.2011, 21:23. Просмотров 1107. Ответов 26
Метки нет (Все метки)

Вот я делал задание программа работаает но сделать это надо с использованием функции то есть я понял что это такое но как это сделать. Я запутался и не понимаю если в функции я переменные обозначил то в тексте самой программы надо по новой их обьявлять . и как в программе использовать функцию.
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
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
 
int main(void)
{
    const int  n=7;
    const int m=7;
    srand((unsigned)time(NULL));
    int i,j ;
    unsigned int  **a;
    a=new  unsigned int *[n];
    for(i=0;i<n;i++)
    {
        a[i]=new  unsigned int  [m];
    }
    printf("\n             massiv\n\n");
    for(i=0;i<n;i++)
    {
        for( j=0; j<m; j++)
        {
            if(i==j)
            {
                a[i][j]=(rand()%050)*2;
            }
            else
            {
                double pi = cos(-1);
                double ci=((double) rand() / RAND_MAX) * pi + 0;
                double cj=((double) rand() / RAND_MAX) * pi + 0;
                a[i][j]=(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
            }
                
            printf("%4d", a[i][j]);
        }
        printf("\n\n");
    }
    for(i=0; i<n; i++)
    {
       delete (a[i]);
    }
    delete  a;
    return 0;
    
 
}
вот тут мне надо сделать функцию программа работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    for(i=0;i<n;i++)
    {
        for( j=0; j<m; j++)
        {
            if(i==j)
            {
                a[i][j]=(rand()%050)*2;
            }
            else
            {
                double pi = cos(-1);
                double ci=((double) rand() / RAND_MAX) * pi + 0;
                double cj=((double) rand() / RAND_MAX) * pi + 0;
                a[i][j]=(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
            }
                
            printf("%4d", a[i][j]);
        }
        printf("\n\n");
    }
как мне вот это привратить в функцию чтоб работало.Только я на первом курсе и знания мои не очень кто может помогите обьясниите мне не умному попроще)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2011, 21:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как применять функции? (C++):

Создать функцию для обработки символьных строк. За образец брать библиотечные функции обработки строк языка С, но не применять их в своей функции - C++
Доброго времени суток! Крайне необходима помощь экспертов в С++! Кто может - не оставьте меня в беде))) Вот задания: 3. Создать...

Как строится ветвление, как читать данные, введённые с клавиатуры, как их потом применять - C++
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Мне 11 лет, и я учусь программировать на С++. Расскажите мне о...

Как рационально применять if - C++
когда идет несколько условий подряд зависимых от первого условия (если первое исполнится другие не должны выполняться) каком случае меньше...

Как правильно применять оператор switch - C++
Подскажите пожалуйста, в чём здесь ошибка. Язык С++. Среда C++ Builder 6. void __fastcall TForm1::Button1Click(TObject *Sender) { ...

как применять diff файл на ресурсы c++ - C++
как применять diff файл на ресурсы c++ такие файлы как .c и .h желательно на гайдик ссылку PS: может быть не там написал, заранее...

Как применять caption и radio-buutin run-time? - C++
Spasibo

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
08.01.2011, 20:15 #16
C++
1
2
3
4
5
6
7
8
9
10
for(i=0;i<n;i++)
                {
             mins[i]=a[0][i]
              for(int j=1;j<n;j++)
                          {
                  mins[i]=a[j][i];
                                  
                          }
             printf("%2d", mins[i]);
                }
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
08.01.2011, 20:48  [ТС] #17
Ошибки вылетают и как удалить его из динамической памети
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <algorithm>
void my_func(unsigned int** a, int n);
 
unsigned int * find_mins(unsigned int **a, int n)
{
  unsigned int *mins;
  mins=new unsigned int[n];
  for(int i=0;i<n;i++)
    {
      mins[i]=a[0][i]
      for(int j=1;j<n;j++)
        mins[i]=std::min(mins[i],a[j][i]);
    }
  return mins;
}
 
int main(void)
{
        const int  n=7;
        srand((unsigned)time(NULL));
        unsigned int  **a;
        a=new  unsigned int *[n];
        for(int i=0;i<n;i++)
        {
                a[i]=new  unsigned int  [n];
        }
        printf("\n             massiv\n\n");
        my_func(a,n);
        unsigned int *mins=find_mins(a,n);
        for(i=0;i<n;i++)
        {
             mins[i]=a[0][i];
              for(int j=1;j<n;j++)
               {
                  mins[i]=a[j][i];
                                  
               }
             printf("%2d", mins[i]);
        }
        for(i=0;i<n;i++)
        {
            delete [] mins[i];
        }
       for( i=0; i<n; i++)
        {
       delete [] a[i];
        }
        delete [] a;
        return 0;
        
 
}
void my_func(unsigned int** a, int n)
{   
        for(int i=0;i<n;i++)
    {
                for(int j=0; j<n; j++)
        {
                        if(i==j) a[i][j]=(rand()%050)*2;
                        else if(i==n-j-1) a[i][j]=(rand()%050)*2-1;
                        else
                        {
                                double pi = cos(-1);
                                double ci=((double) rand() / RAND_MAX) * pi + 0;
                                double cj=((double) rand() / RAND_MAX) * pi + 0;
                                a[i][j]=std::max(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
                        }
                
                        printf("%4d", a[i][j]);
                }
                printf("\n\n");
        }
}
и я еще std не проходил это что за оператор
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
08.01.2011, 20:51 #18
Цитата Сообщение от Steam.dll Посмотреть сообщение
и я еще std не проходил это что за оператор
Это стандартное пространство имен.
vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
08.01.2011, 21:42 #19
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
55
56
57
58
59
60
61
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <algorithm>
void my_func(unsigned int** a, int n);
 
unsigned int * find_mins(unsigned int **a, int n)
{
  unsigned int *mins;
  mins=new unsigned int[n];
  for(int i=0;i<n;i++)
    {
      mins[i]=a[0][i];
      for(int j=1;j<n;j++)
        mins[i]=std::min(mins[i],a[j][i]);
    }
  return mins;
}
 
int main(void)
{
        const int  n=7;
        srand((unsigned)time(NULL));
        unsigned int  **a;
        a=new  unsigned int *[n];
        for(int i=0;i<n;i++)
        {
                a[i]=new  unsigned int  [n];
        }
        printf("\n             massiv\n\n");
        my_func(a,n);
        unsigned int *mins=find_mins(a,n);
        for(int i=0;i<n;i++) printf("%2d", mins[i]);
        for(int i=0; i<n; i++) delete [] a[i];
        delete [] a;
    delete [] mins;
        return 0;
 
}
void my_func(unsigned int** a, int n)
{   
        for(int i=0;i<n;i++)
    {
                for(int j=0; j<n; j++)
        {
                        if(i==j) a[i][j]=(rand()%050)*2;
                        else if(i==n-j-1) a[i][j]=(rand()%050)*2-1;
                        else
                        {
                                double pi = cos(-1);
                                double ci=((double) rand() / RAND_MAX) * pi + 0;
                                double cj=((double) rand() / RAND_MAX) * pi + 0;
                                a[i][j]=std::max(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
                        }
                
                        printf("%4d", a[i][j]);
                }
                printf("\n\n");
        }
}
у меня иногда вместо 2,1,0 встречается и элемент -1, это нормально ?)

Добавлено через 1 минуту
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
vx5@Dev:~/cpp$ ./a.out
 
             massiv
 
  30   2   1   1   2   1  61
 
   2   6   1   1   2  51   1
 
   2   1   4   2  33   1   2
 
   1   2   1  22   2   1   1
 
   1   2  75   2  36   1   1
 
   1  -1   1   1   1  78   1
 
   5   1   1   2   2   2  28
 
 1 1 1 1 1 1 1
Добавлено через 3 минуты
и я еще std не проходил это что за оператор
если напрягает, можешь в самом верху написать
C++
1
using namespace std;
и потереть все std::

Добавлено через 40 минут
исправьте 48ую строку на:
C++
1
else if(i==n-j-1) a[i][j]=(rand()%050)*2+1;
вот откуда -1. Кстати, восьмиричные числа вы там осознано писали ?
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
08.01.2011, 21:42  [ТС] #20
-1 это думаю не страшно. я так с этим std не разобрался.а как его использовать.
у меня крмпилятор что то с ним ошибается пишит типа он не член стандартных.
Compiling...
1.cpp
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(16) : error C2039: 'min' : is not a member of 'std'
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(16) : error C2065: 'min' : undeclared identifier
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(34) : error C2374: 'i' : redefinition; multiple initialization
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(27) : see declaration of 'i'
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(35) : error C2374: 'i' : redefinition; multiple initialization
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(27) : see declaration of 'i'
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(54) : error C2039: 'max' : is not a member of 'std'
C:\Users\Андрей\Desktop\Lab\6\6_1\1.cpp(54) : error C2065: 'max' : undeclared identifier
Error executing cl.exe.

1.exe - 6 error(s), 0 warning(s)
vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
08.01.2011, 22:00 #21
а вы ничего не редактировали в коде из предыдущего сообщения?
C++
1
#include <algorithm>
написан ? что у вас за компилятор ?

Добавлено через 14 минут
вариант без использования STL и в фор переменную не объявляем..
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
void my_func(unsigned int** a, int n);
 
double max(double val1, double val2)
{
  return (val1>val2) ? val1 : val2;
}
 
unsigned int min(unsigned int val1,unsigned int val2)
{
  return (val1<val2) ? val1 : val2;
}
 
unsigned int * find_mins(unsigned int **a, int n)
{
  unsigned int *mins;
  mins=new unsigned int[n];
  int i;
  for(i=0;i<n;i++)
    {
      mins[i]=a[0][i];
      for(int j=1;j<n;j++)
        mins[i]=min(mins[i],a[j][i]);
    }
  return mins;
}
 
int main(void)
{
        const int  n=7;
        srand((unsigned)time(NULL));
        unsigned int  **a;
        a=new  unsigned int *[n];
        int i;
        for(i=0;i<n;i++)
        {
                a[i]=new  unsigned int  [n];
        }
        printf("\n             massiv\n\n");
        my_func(a,n);
        unsigned int *mins=find_mins(a,n);
        for(i=0;i<n;i++) printf("%2d", mins[i]);
        for(i=0; i<n; i++) delete [] a[i];
        delete [] a;
    delete [] mins;
        return 0;
 
}
void my_func(unsigned int** a, int n)
{   
        int i,j;
        for(i=0;i<n;i++)
    {
                for(j=0; j<n; j++)
        {
                        if(i==j) a[i][j]=(rand()%40)*2;
                        else if(i==n-j-1) a[i][j]=(rand()%40)*2+1;
                        else
                        {
                                double pi = cos(-1);
                                double ci=((double) rand() / RAND_MAX) * pi + 0;
                                double cj=((double) rand() / RAND_MAX) * pi + 0;
                                a[i][j]=max(ci * ci - 3.5 * cj, exp(-ci + cos(cj)));
                        }
                
                        printf("%4d", a[i][j]);
                }
                printf("\n\n");
        }
}
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
09.01.2011, 00:27  [ТС] #22
А какие компеляторы бывают и какие лучше? И вот вопрос не по теме можно ли в visual c++ что бы строки показывало а то когда ошибка вылетает строку считать надо рань ше программы маленькие были а щас каждым разом больше и больше сщетать не вариант
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
09.01.2011, 00:29 #23
Цитата Сообщение от Steam.dll Посмотреть сообщение
А какие компеляторы бывают и какие лучше?
Бесплатные среды (IDE) для программирования на С/С++
vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
09.01.2011, 00:40 #24
какие компеляторы бывают и какие лучше? И вот вопрос не по теме можно ли в visual c++ что бы строки показывало а то когда ошибка вылетает строку считать надо рань ше программы маленькие были а щас каждым разом больше и больше сщетать не вариант
1) Сказать какой лучше сложно, скорее дело вкуса и привычки я бы посоветовал minGW или Dev-C++.
2) не понял второго вопроса, поясните
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
09.01.2011, 01:17  [ТС] #25
ну вот на скрине это я через паинт сам нарисовал вот чтоб каждую строку можно былобы узнать какая она по счёту
Миниатюры
Как применять функции?  
vx5
187 / 171 / 4
Регистрация: 04.09.2010
Сообщений: 656
09.01.2011, 01:22 #26
без запятых пишите - не так прочитал
http://msdn.microsoft.com/ru-ru/libr...(v=vs.90).aspx
Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
09.01.2011, 01:42  [ТС] #27
Спасибо большое за всё. Нервы у вас крепкие со мной непутёвым мало кто выдерживает Многое узнал.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2011, 01:42
Привет! Вот еще темы с ответами:

Почему необходимо применять cin.get() - C++
Почему необходимо применять cin.get() ? В книге Липмана вообще не упоминается cin.get(), а без неё идёт бесконечный вывод строки ошибки ...

Надо применять delete [] или нет - C++
Привет. Читаю книгу Прата и выполняю задания. Гл.8 Зд.4: Мое решение: #define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; using...

Слова get/set и put, когда что применять - C++
Допустим, есть метод класса, который выводит атрибуты класса. Как этот метод обозвать? С одной стороны getData по смыслу очень подходит,...

Функции. Как после одного возвратного значения функции отталкиваться от возврата другой функции - C++
Написал код, в котором 2 функции одна возвращает стринговое значение, вторая должна бы вернуть значение, отталкиваясь от первой. Возможно...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.01.2011, 01:42
Ответ Создать тему
Опции темы

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