Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Конструктор копии Конструктор копии вызывается при: 1)явном создании копии 2)при передачи параметров в функцию (по значению) 3)при возвращении объекта из функции напиши пожалуйста примеры https://www.cyberforum.ru/ cpp-beginners/ thread811420.html Подскажите отладить запись в файл и считывание с него C++
Я написал программу, она работает с использованием fprintf() и fscanf(), но задание сделать с fwrite() и fread() - вот с ними у меня выводит бред в файл тоже записывает бред.. #include <stdio.h> #include <locale.h> //Чтоб Visual понимал русские символы #include <string.h> #include <conio.h> struct SchoolBoys{ //Определение структуры char num; char name; int SchoolNumber;
C++ Вычислить сумму делителей некоторого числа СН #include <stdlib.h> #include <iostream.h> #include <math.h> main () {long ch,d,sumdel; float c; clrscr(); ch=(1+rand()% 999); cout<<"generator random chesil vidal znachenie"<<ch<<endl; c=sqrt (ch); https://www.cyberforum.ru/ cpp-beginners/ thread811410.html C++ operator char() или operator int() https://www.cyberforum.ru/ cpp-beginners/ thread811409.html
Здорова госпдо! Снова ничо не ясно как всегда. Разбираю программку из книги Страуструпа, там он описывает класс String в нем есть вложенный класс Cref как бы имитирующий char. И от надыбал я там строчку: operator char() const {s.check(i); return s.read(i);}//выдает значение ну и не понял, что это он тут перегрузил, и кода этот оператор вызывается. И еще смотрел на перед задачку, так там...
Задача на одномерный массив C++
Дана задача: "Лесенка" Вова стоит перед лесенкой из N ступеней. На каждой из ступеней написаны произвольные целые числа. Первым шагом Вова может перейти на первую ступень или, перепрыгнув через первую, сразу оказаться на второй. Также он поступает и дальше, пока не достигнет N-ой ступени. Посчитаем сумму всех чисел, написанных на ступенях через которые прошел Вова. Требуется написать...
C++ написал программу, ошибка! https://www.cyberforum.ru/ cpp-beginners/ thread811381.html
Info :Compiling C:\BC5\BIN\zadacha 3.cpp Warn : zadacha 3.cpp(25,3):'c' is assigned a value that is never used вот такая ошибка вылетает не знаю что делать #include <conio.h> #include <iostream.h> #include <math.h> main () {int ch, d, kol, k, prost, n, c; clrscr(); cout<<"Zadaite chislo nachalo poiska: "; cin>>k;
C++ Массив указателей на функцию https://www.cyberforum.ru/ cpp-beginners/ thread811379.html
Здравствуйте. У меня вопрос: почему данный код компилируется и при вводе, скажем 0 выводит 0, хотя при вводе других значений она крашится. На что указывает имя массива? #include <iostream> bool min( int, int ); bool max( int, int ); bool equal( int, int ); int main() { int choise; bool (*f)( int, int );
C++ Даны x, y, z. Вычислить a, b, если
Даны x, y, z. Вычислить a, b, если
C++ Получение возраста из даты рождения https://www.cyberforum.ru/ cpp-beginners/ thread811367.html
Задача получить возраст из даты рождения. Как это можно сделать? Подкиньте примеров)) p.c Заранее благодарю
C++ Передача аргументов функции Всем привет. Писал код не зная, правильно ли это. В общем застрял на составлении прототипов функции и функции мэин. И ещё, можно ли так как я структурой пользоваться? Заранее прошу прощение за возможный бред в коде. #include <iostream> #include <math.h> using namespace std; int enter(); int processing(struct side); void output(int t); https://www.cyberforum.ru/ cpp-beginners/ thread811366.html
C++ Реализовать класс ListPerson для работы с картотекой персоналий
Карточка персоны содержит фамилию и дату рождения. Реализовать класс ListPerson для работы с картотекой персоналий. Класс должен содержать массив карточек персон. Реализовать методы добавления и удаления карточек персон, а также метод доступа к карточке по фамилии. Фамилии в массиве должны быть уникальны. Реализовать операции объединения двух картотек, операцию пересечения и вычисления разности....
C++ Класс матрица https://www.cyberforum.ru/ cpp-beginners/ thread811359.html
Здравствуйте. У меня есть класс матрицы: #pragma once #ifndef classMatrix_h #define classMatrix_h #include <iostream> using std::istream;
5 / 5 / 1
Регистрация: 12.06.2012
Сообщений: 60
18.03.2013, 02:09  [ТС] 0

Передача массивов и параметров с одной функции в другую - C++ - Ответ 4270843

18.03.2013, 02:09. Показов 1291. Ответов 12
Метки (Все метки)

Ответ

Цитата Сообщение от DU Посмотреть сообщение
глобальные - это плохо. голые массивы - тоже. лучше вектора.
входные параметры передаются по значению или константной ссылке, выходные - по неконстантной ссылке или ко указателю. (если выходной параметр - указатель, то в функцию нужно отдавать указатель на указатель в общем лучше пользоваться ссылками)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void convert(const std::vector<int>& source, std::vector<int>& result)
{
   result = source; // ну тут конверсия - это простое копирование.
}
 
int main()
{
    std::vector<int> data;
    // тут заполняем вектор data
    std::vector<int> convertedData;
    convert(data, convertedData);
 
   // вот тут после такой конверсии вектора станут одинаковыми.
 
   return 0;
}
Вектора к сожалению тут не проконают, нужен динамический массив. Попробую использовать ссылку, спасибо=)

Цитата Сообщение от alsav22 Посмотреть сообщение
Вектор нет. И покажите, что у вас в функциях делается.

Добавлено через 7 минут
С tab и Gradient у вас непонятно, что это... Если это указатели на массивы указателей ("конвертор из вектора который мы определяем в предыдущей функции в массив указателей"), то тогда:
C++
1
2
double **Gradient
double **tab;
тут вся прога, к сожалению без комментариев, прошу прощения =) сил писать их нет пока что=) в общем тут файл, считываются данные с файла в вектор, определяется размер, далее идет конвертор, с вектора в динамический массив, и этот массив обрабатывается методом градиентов. получаем результирующую матрицу, которая так же записывается в файл. Каждая функция по отдельности работает. Компилирую, ошибок нет, но файл с результирующей матрицей пустой.

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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <vector>
 
using namespace std;
 
double* Gradient;
vector<double> VectorArray;
double* tab;
 
void ReadData(char*, vector<double>, int&, int&);
void ConvertVectorToDoubleArray(vector<double>, double*, int, int);
void WriteData(char*, double*, int, int);
int EdgeDetection(double*, double*, int, int);
 
int main()
{
    int raw=1;
    int column=0;
    ReadData("EdgeInput.txt",VectorArray, raw, column);
    ConvertVectorToDoubleArray(VectorArray, tab, raw, column);
    EdgeDetection(tab, Gradient, raw, column);
    WriteData("EdgeResult.txt", Gradient, raw, column);
}
 
void ReadData(char* filename, vector<double> OutputVector, int& raw, int& column)
{
    ifstream EdgeInputData(filename);
    if (!EdgeInputData) 
        cerr << "Error! Can't open the input file.\n";
    double InterveningVariable=0;
    while (!EdgeInputData.eof())
    {
        EdgeInputData>>InterveningVariable;
        OutputVector.push_back(InterveningVariable);
        char c;
        EdgeInputData.get(c);
        if (c=='\n')
            raw++;
        column=OutputVector.size()/raw;
    }
    EdgeInputData.close();
}
 
void WriteData(char* filename, double* matrix, int raw, int column)
{
    ofstream EdgeResultFile(filename); //Open a file for output
    if (!EdgeResultFile) 
        cerr << "Error! Can't open the output file.\n";
    int i=0;
    int j=0;
    for (i=0; i<raw; i++)
    {
        for(j=0; j<column; j++)
            EdgeResultFile<<matrix[i*column+j]<<" ";
        EdgeResultFile<<"\n";
    }
    EdgeResultFile.close(); 
    delete []matrix;
}
 
 
void ConvertVectorToDoubleArray(vector<double> InputVector, double* OutputArray, int raw, int column)
{
    OutputArray=new double[raw*column];
    int i=0;
    int j=0;
    for (i=0; i<raw; i++)
        for (j=0; j<column; j++)
            OutputArray[i*column + j] = InputVector[i*column + j];
}
 
int EdgeDetection(double* InputArray, double* G, int raw, int column)
{
    int i=0;
    int j=0;
    double *GC;
    GC=new double[raw*column];
    for (i=0; i<raw; i++)
        for(j=0; j<column; j++)
        {
            if (j==column-1)
                GC[i*column+j] = InputArray[i*column+j] - InputArray[i*column+j-1];//The boundary
            else 
                GC[i*column+j] = InputArray[i*column+j] - InputArray[i*column+j+1];
        }
    /*Forming array inlude raw gradients*/
    double *GR;
    GR=new double[raw*column];
    for (j=0; j<column; j++)
        for(i=raw-1; i>=0; i--)
        {
            if (i==0)
                GR[i*column+j] = InputArray[i*column+j] - InputArray[(i+1)*column+j];//The boundary
            else
                GR[i*column+j] = InputArray[i*column+j] - InputArray[(i-1)*column+j];//The row gradient
                
        }
    /*The edge gradient and saving the data in file*/
    double *G;
    G=new double[raw*column];
    for (i=0; i<raw; i++)
        for(j=0; j<column; j++)
            G[i*column+j] = abs(GC[i*column + j]) + abs(GR[i*column + j]);
    WriteData("EdgeResult.txt", G, raw, column);
    delete []GR;
    delete []GC;
    delete []InputArray;
    return 0;
}


Вернуться к обсуждению:
Передача массивов и параметров с одной функции в другую C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2013, 02:09
Готовые ответы и решения:

Передача параметров из одной формы в другую
Доброе утро всем, есть такая задача, не знаю как решить. Пользователь в форме1(ф1) вводит свои...

Передача параметров одной формы в другую
Здравствуйте господа. Существует проблема не могу ни как решить И так по сути вопроса: есть...

Передача параметров из одной открытой формы в другую
Есть 2 открытых формы, на form1 есть textbox и на form2 находится textbox + button Ввели в textbox...

Передача массивов из одной формы в другую
Собственно сама задача состоит в том, чтобы в одной форме рассчитать два массива значений, а затем...

12
18.03.2013, 02:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2013, 02:09
Помогаю со студенческими работами здесь

Передача массивов из одной формы в другую
Есть форма 1 и форма 2. Начнем с формы 2. Я хочу из формы 1, взять массивы, значения всякие ну и...

Передача массивов в качестве параметров функции
Задав динамический двумерный массив вещественных данных (матрицу А размером NxN), реализовать его...

Передача массивов указателей в качестве параметров функции
Доброго времени суток, не компилится данный код. Ошибка возникает в функции deal(deck, suit,...

Передача переменной из одной функции в другую
Доброго времени суток, мне нужно передать переменные *x и n из функции main в функции А10, A8, M5,...

Передача значений из одной функции в другую
Здравствуйте, последняя функция ищет косинус угла между векторами и чтобы не увеличивать...

Передача переменных из одной функции в другую
Друзья подскажите как передать вариеблы из одной функции в другую Пример function test ($var1,...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru