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

Сделать из одной программы процедуру и головную - C++

Восстановить пароль Регистрация
 
nick95nick
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 18
08.03.2014, 23:01     Сделать из одной программы процедуру и головную #1
Мной написана программа, которая меняет местами указанные строки в массиве. Но необходимо, чтобы это была процедура с параметрами
C++
1
int Func( int * Array, int Dim1, int Dim2, ...).
с соответствующим обращением в головной программе. В моем случае возникает сложность, т.к к элементу напрямую я обратиться уже не могу (a[i,j]) , в таком случае процедура не заработала бы. Так как должна выглядеть процедура и головная программа?
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
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <stdio.h>
using namespace std;
 
void main()
{
    SetConsoleOutputCP(1251);
    const int Y = 3, X = 4;
    int a[Y][X];
 
    cout << "Enter the matrix:\n";
    for (int i = 0; i < Y; i++)
    {
        for (int j = 0; j < X; j++)
        {
            cout << "a[" << i << "][" << j << "] = ";
            cin >> a[i][j];
        }
    }
    cout << "Result:\n";
 
    int a1;
    int a2;
    cout << "Enter number of strings you want to change:";
    cin >> a1;
    cin >> a2;
 
 
    for (int j = 0; j < X; j++)
    {
        int b = a[a1][j];
        a[a1][j] = a[a2][j];
        a[a2][j] = b;
    }
 
    for (int i = 0; i < Y; i++)
    {
        for (int j = 0; j < X; j++)
        {
            cout << a[i][j] << " ";
        }
        cout << '\n';
    }
 
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2014, 23:01     Сделать из одной программы процедуру и головную
Посмотрите здесь:

C++ Сделать из одной программы другую
запуск одной программы из другой C++
как связать несколько файлов одной программы C++
Две программы в одной C++
Обращение одной программы к другой C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Worf
42 / 42 / 6
Регистрация: 06.02.2014
Сообщений: 227
08.03.2014, 23:12     Сделать из одной программы процедуру и головную #2
Головная программа - это процедура main()
В вашем случае необходимо сделать отдельную процедуру (все main), а из main её вызывать
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 <iostream>
#include <windows.h>
#include <stdio.h>
using namespace std;
 
int Func( int * Array, int Dim1, int Dim2, ...)
 
{ 
 SetConsoleOutputCP(1251);
    const int Y = 3, X = 4;
    int a[Y][X];
 
    cout << "Enter the matrix:\n";
    for (int i = 0; i < Y; i++)
    {
        for (int j = 0; j < X; j++)
        {
            cout << "a[" << i << "][" << j << "] = ";
            cin >> a[i][j];
        }
    }
    cout << "Result:\n";
 
    int a1;
    int a2;
    cout << "Enter number of strings you want to change:";
    cin >> a1;
    cin >> a2;
 
 
    for (int j = 0; j < X; j++)
    {
        int b = a[a1][j];
        a[a1][j] = a[a2][j];
        a[a2][j] = b;
    }
 
    for (int i = 0; i < Y; i++)
    {
        for (int j = 0; j < X; j++)
        {
            cout << a[i][j] << " ";
        }
        cout << '\n';
    }
 
    system("pause");
return 0;
}
void main()
{
Func( int * Array, int Dim1, int Dim2, ...).   
}
где вместо int * Array, int Dim1, int Dim2, ... указываются значения
nick95nick
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 18
09.03.2014, 00:08  [ТС]     Сделать из одной программы процедуру и головную #3
Получается вот такой вот код. Но отладчик все равно выдает гору ошибок((

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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
 
int ChangeValue(int* Array, int Dim, int value)
{
    int i, j,first,second;
    int a[10],b[10];
    for (i = 0; i < Dim; i++)
            //if ((i == j) && (Array[i*Dim+j] > 0) && (Array[i*Dim+j] > value))
            a[i]=Array[i*Dim][first];
            b[i]=Array[i*Dim][second];
    return a[i];
}
 
void main(void)
{
    int a[10][10];
    int j;
    int i = 0;
    srand(time(NULL));
    while (i < 10)
    {
        for (j = 0; j < 10; j++)
        {
            a[i][j] = 10 - rand() % 20;
            printf("%2d ", a[i][j]);
        }
        i++;
        puts("");
    }
    int val1,val2;
    printf("Enter number of strings to change: ");
    scanf("%i", &val1,&val2);
    int result = positiveAmount(*a, 10, val);
    printf("There are %i such elements in the array", result);
    getch();
}
Worf
42 / 42 / 6
Регистрация: 06.02.2014
Сообщений: 227
09.03.2014, 00:10     Сделать из одной программы процедуру и головную #4
Ну, как минимум зачем вам процедура, если вы её не вызываете в main?
nick95nick
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 18
09.03.2014, 00:12  [ТС]     Сделать из одной программы процедуру и головную #5
Прошу прощения, это не тот код-просто на вкладках сразу несколько разных программ((

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
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <stdio.h>
using namespace std;
 
int Func(int * Array, int Dim1, int Dim2)
 
{
    for (int j = 0; j < 3; j++)
    {
        int b = Array[Dim1][j];
        Array[Dim1][j] = Array[Dim2][j];
        Array[Dim2][j] = b;
    }
 
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            cout << Array[i][j] << " ";
        }
        cout << '\n';
    }
 
    system("pause");
    return 0;
}
void main()
{
    SetConsoleOutputCP(1251);
    const int Y = 3, X = 4;
    int a[Y][X];
    int a1, a2;
    cout << "Enter the matrix:\n";
    for (int i = 0; i < Y; i++)
    {
        for (int j = 0; j < X; j++)
        {
            cout << "a[" << i << "][" << j << "] = ";
            cin >> a[i][j];
        }
    }
    cout << "Result:\n";
 
    cout << "Enter number of strings you want to change:";
    cin >> a1;
    cin >> a2;
    Func(*a, a1,a2).
}
Worf
42 / 42 / 6
Регистрация: 06.02.2014
Сообщений: 227
09.03.2014, 00:14     Сделать из одной программы процедуру и головную #6
Если у вас ошибки, то было бы неплохо прилагать их список к листингу
nick95nick
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 18
09.03.2014, 00:24  [ТС]     Сделать из одной программы процедуру и головную #7
12 IntelliSense: требуется имя члена e:\Users\Коля\Desktop\prg2\prg2\prg2.cpp 50 1 prg2

6 IntelliSense: выражение должно иметь тип указателя на объект e:\Users\Коля\Desktop\prg2\prg2\prg2.cpp 12 23 prg2

7 IntelliSense: выражение должно иметь тип указателя на объект e:\Users\Коля\Desktop\prg2\prg2\prg2.cpp 13 15 prg2

8 IntelliSense: выражение должно иметь тип указателя на объект e:\Users\Коля\Desktop\prg2\prg2\prg2.cpp 13 32 prg2

9 IntelliSense: выражение должно иметь тип указателя на объект e:\Users\Коля\Desktop\prg2\prg2\prg2.cpp 14 15 prg2

10 IntelliSense: выражение должно иметь тип указателя на объект e:\Users\Коля\Desktop\prg2\prg2\prg2.cpp 21 21 prg2

11 IntelliSense: выражение должно иметь тип класса e:\Users\Коля\Desktop\prg2\prg2\prg2.cpp 49 2 prg2

Ошибка 1 error C2109: для индекса требуется массив или указатель e:\users\коля\desktop\prg2\prg2\prg2.cpp 12 1 prg2

Ошибка 2 error C2109: для индекса требуется массив или указатель e:\users\коля\desktop\prg2\prg2\prg2.cpp 13 1 prg2

Ошибка 3 error C2109: для индекса требуется массив или указатель e:\users\коля\desktop\prg2\prg2\prg2.cpp 14 1 prg2

Ошибка 4 error C2109: для индекса требуется массив или указатель e:\users\коля\desktop\prg2\prg2\prg2.cpp 21 1 prg2

Ошибка 5 error C2059: синтаксическая ошибка: } e:\users\коля\desktop\prg2\prg2\prg2.cpp 50 1 prg2
Worf
42 / 42 / 6
Регистрация: 06.02.2014
Сообщений: 227
09.03.2014, 00:29     Сделать из одной программы процедуру и головную #8
строка 49, как вы можете передавать массив в функцию, где определен указатель в качестве входного параметра?
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
09.03.2014, 00:30     Сделать из одной программы процедуру и головную #9
Чего тут смотреть то..
7-я строка:
C++
1
int Func(int Array[3][4], int Dim1, int Dim2)
49-я:
C++
1
Func(a, a1,a2);
Worf
42 / 42 / 6
Регистрация: 06.02.2014
Сообщений: 227
09.03.2014, 08:33     Сделать из одной программы процедуру и головную #10
Ну, о чём и я говорил
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2014, 10:20     Сделать из одной программы процедуру и головную
Еще ссылки по теме:

C++ Как сделать чтоб все проверки вызывались одной функцией?
Сделать все задание в одной программе) C++
C++ Считывание из одной строки. Как сделать из нескольких?

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

Или воспользуйтесь поиском по форуму:
nick95nick
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 18
09.03.2014, 10:20  [ТС]     Сделать из одной программы процедуру и головную #11
Теперь получается что две программы-исходная без процедуры и получившаяся- работают совершенно по-разному (т.е последняя работает не так как нужно). Отчего это может быть?
Миниатюры
Сделать из одной программы процедуру и головную   Сделать из одной программы процедуру и головную  
Yandex
Объявления
09.03.2014, 10:20     Сделать из одной программы процедуру и головную
Ответ Создать тему
Опции темы

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