![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
CKEK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.11.2014 Репутация: нет Всего: нет |
В массиве A и B хранятся коэффициенты двух многочленов. Сформировать массив C, содержащий коэффициенты произведения данных многочленов.
#include<stdio.h> #include<stdlib.h> #include<time.h> #include<signal.h> int input1 (int &k,int &l){ printf("Vvedite razmernost a: "); scanf("%i \n",&k); printf("Vvedite razmernost b: "); scanf("%i \n",&l); return 0; } int input2(double a[],double b[],int &k,int &l){ for (int i=0; i<k; i++){ printf("Vvedite kooficient a: "); scanf("%lf \n", &a[i]); } for (int i=0; i<l; i++){ printf("Vvedite kooficient b: "); scanf("%lf \n", &b[i]); } return 0; } int function(double a[], double b[], double result[], int& k, int& l, int& m){ for (int k1=0; k1<=k; k1++){ for (int k2=0; k2<=l; k2++){ result[k1+k2]+=a[k1]*b[k2]; } } return 0; } int main () { int k,l,m; input1(k,l); double *a = new double [k]; double *b = new double [l]; m=k+l; double *result = new double [m]; input2(a,b,k,l); function(a,b,result,k,l,m); printf("%1.3lf \n",&result); return 0; } Что тут не так? |
|||
|
||||
baldina |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
в scanf не нужны пробелы и новая строка
и т.п. заменить на
здесь нужно в цикле вывести значения массива
и все заработает а вообще на с++ (а не ацкой смеси с С) это могло бы выглядеть примерно так
Добавлено через 2 минуты и 31 секунду http://ideone.com/oANpLT Это сообщение отредактировал(а) baldina - 14.11.2014, 17:12 |
||||||
|
|||||||
CKEK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.11.2014 Репутация: нет Всего: нет |
Я попробовал, и вот что выдает:
\лабораторная 2.cpp(10) : error C2059: синтаксическая ошибка: [ \лабораторная 2.cpp(10) : error C2143: синтаксическая ошибка: отсутствие ")" перед "{" \лабораторная 2.cpp(10) : error C2143: синтаксическая ошибка: отсутствие ";" перед "{" \лабораторная 2.cpp(11) : error C2065: x: необъявленный идентификатор \лабораторная 2.cpp(12) : error C2059: синтаксическая ошибка: ) Добавлено через 1 минуту и 44 секунды А вообще огромное спасибо за помощь, сам бы не разобрался никогда!! Низкий поклон!! |
|||
|
||||
CKEK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.11.2014 Репутация: нет Всего: нет |
baldina, подскажите, пожалуйста, как эти ошибки исправить?
|
|||
|
||||
baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
видимо вы используете довольно старый компилятор.
для начала попробуйте исправить свою программу, она в принципе правильная. а мою вам придется объяснять преподавателю, вы сможете это сделать? Добавлено @ 23:09
можно заменить на
Это сообщение отредактировал(а) baldina - 15.11.2014, 23:09 |
||||
|
|||||
CKEK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.11.2014 Репутация: нет Всего: нет |
baldina, я бы с удовольствием получил бы пару-тройку индивидуальных занятий, чтобы мне помогли с лабами, объяснили, на чем программирование на С++ основано, вы, случайно, не занимаетесь преподаванием? И если да, какие ваши условия?
|
|||
|
||||
CKEK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.11.2014 Репутация: нет Всего: нет |
baldina, при замене еще больше ошибок выдает.. А использую я Visual C++2008 express edition
|
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
преподаванием не занимаюсь, но объяснить могу.
однако если вы не сами писали программу, объяснять придется слишком много, с самого начала. в этом случае вам лучше для начала прочесть какую-нибудь книгу по программированию на С++. вот например а если сами, то должны быть в состоянии понять смысл сообщения об ошибке и её причину. если смысл ошибки непонятен - показывайте код и соотв. сообщение, т.к. я не телепат. определитесь с целями, если спихнуть - возьмите это (в vc++2008 должно работать), если понять - надо изучать с самого начала, или задать конкретные вопросы о том, что непонятно. |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
= удалено =
Это сообщение отредактировал(а) baldina - 16.11.2014, 16:52 |
|||
|
||||
CKEK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.11.2014 Репутация: нет Всего: нет |
baldina, Я в принципе ошибки исправил, осталось только объявить идентификатор "x". Как это сделать?
Спасибо |
|||
|
||||
baldina |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
профессор у доски: "возьмем произвольное число n. нет, n мало... возьмем m!" а что это за идентификатор? вообще идентификаторы объявляются так:
здесь type имя типа, name - идентификатор. например,
Добавлено @ 10:36 CKEK, я подозреваю, что вы боретесь с лямбда-функцией
если лямбды у вас не поддерживаются, то и x вам не нужен, в обычном цикле по i у вас будет v[i] вместо x.
мы же это уже обсуждали, и работающий пример я вам дал Это сообщение отредактировал(а) baldina - 17.11.2014, 10:36 |
||||||||
|
|||||||||
CKEK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.11.2014 Репутация: нет Всего: нет |
baldina,
Я работаю с вашим кодом, в котором выдавались ошибки. После корректировки он выглядит так: #include<iostream> #include<vector> #include<algorithm> #include<iterator> typedef std::vector<double> dvector; dvector getArray () { size_t n; std::cin >> n; dvector v(n); std::for_each (v.begin(), v.end(), (double&) x);{ std::cin >> x; }; return v; } dvector operator*(const dvector& a, const dvector& b) { dvector result(a.size()+b.size()); for (size_t i=0; i < a.size(); ++i){ for (size_t j=0; j < b.size(); ++j){ result[i+j] += a[i]*b[j]; } } return result; } int main () { dvector a = getArray(); dvector b = getArray(); dvector result = a*b; std::ostream_iterator<double> out (std::cout, " "); std::copy (result.begin(), result.end(), out); } И теперь у меня такие ошибки: laba 2.cpp(10) : error C2065: x: необъявленный идентификатор laba 2.cpp(11) : error C2065: x: необъявленный идентификатор Если я его объявляю как (int x), то ошибка выглядит так : 1>c:\program files (x86)\visual c++2008\vc\include\algorithm(29) : error C2064: результатом вычисления фрагмента не является функция, принимающая 1 аргументов 1> laba 2.cpp(10): см. ссылку на создание экземпляров функции шаблон при компиляции "_Fn1 std::for_each<std::_Vector_iterator<_Ty,_Alloc>,double>(_InIt,_InIt,_Fn1)" 1> with 1> [ 1> _Fn1=double, 1> _Ty=double, 1> _Alloc=std::allocator<double>, 1> _InIt=std::_Vector_iterator<double,std::allocator<double>> 1> ] |
|||
|
||||
baldina |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
удобно это делать здесь
ваша конструкция
разделена точкой с запятой, так что это два последовательных блока кода в первом
упоминается x, которая ранее не объявлена. вообще, std::for_each(), работает с диапазоном последовательности, задаваемым итераторами, применяя к каждому элементу функцию, указанную в третьем аргументе. в моем примере это была анонимная функция. а в вашем варианте этот кусок становится бессмысленным. я вам уже предлагал (неоднократно!) заменить его на обычный цикл
получается вот что Это сообщение отредактировал(а) baldina - 17.11.2014, 17:09 |
||||||
|
|||||||
CKEK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 12.11.2014 Репутация: нет Всего: нет |
baldina,
При замене на цикл выдает следующее: laba 2.cpp(13) : error C2059: синтаксическая ошибка: return |
|||
|
||||
baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
CKEK, смеетесь?
я же вам показал работающий код. на ideone и компилируется, и исполняется. вы вообще туда заходили? потрудитесь посмотреть и хотя бы точно скопировать. в обсуждаемом фрагменте нет return. проверяйте скобки, точки с запятой... показывайте код, я ж не телепат, что у вас вышло после правки. и используйте кнопочку "код" для оформления кода Добавлено через 4 минуты и 21 секунду вот ваш код с оформлением кнопочкой код
вот что у вас должно было получиться после правки
здесь (нажмите, это ссылка!!) этот код успешно компилируется, запускается и выдает правильный результат |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |