Help, C++ Програмисти-помогнете
6 отговора
8 прегледа
Help, C++ Програмисти-помогнете
Даден е двумерен масив с n-реда и m-колони от тип fload.Да се състави програма, която генерира едномерен масив, всеки елемент на който се получава чрез отделна функция и е равен на сумата на четните елементи на съответния ред на двумерния
масив.
Как да се направи.
Моля помогнете!
Help, C++ Програмисти-помогнете
Хубаво е да се понапънеш и да си напишеш сама задачката по програмиране. Помисли малко - решението е елементарно.
Не мисля, че някой наистина ще ти помогне ако ти реши задачата.
Ето ти едно решение, което само трябва да преведеш на C:
1. Направи функция, която получава указател към двумерния масив и връща резултат тип double(за да избегнеш препълването). Добрата парктика изискава да предадеш и размерността му.
2. Викни функцията толкова пъти колкото реда има двумерния масив.
3. Резултатите от функцията ги записвай последователно в едномерния масив.
Успех
Help, C++ Програмисти-помогнете
kak wseki element se poluchawa s otdelna funkcia
sled kato weche e rawen na sumata na chetnite elementi?
за emo
Точно и това на мен не ми е ясно :-(((
Не знам какво да приказвам за даскала си?
Май да отиде на лекар .OR. да се гръмне.
Писна ми от такива !!!
Help, C++ Програмисти-помогнете
Сигурно е имал предвид "... трябва да е равен на ...". Така че не му мисли много, обикновенно тези които дават такива задачи не знаят много повече от тези на които ги дават. Правиш каквото знаеш, обясняваш му че така си разбрал условието, а ако на някой не му харесва - да си я направи по-добре.
за emo
Според мен условието е ясно. Функцията трабва да извършва събирането на четните елементи в съответния ред и да връща сумата. Това, което връща функцията е един елемент от масива, който трябва да получиш. Погледни пак алгоритъма който си дадох по-горе. Дотук написах повече символи, отколкото би имало в програмата :-)))))
Жоро е прав, но си мисля...
... че ако си ученичка/ученик, който не му се занимава с програмиране, а гледа да
мине метър, е по добре да ти се даде готово решение което просто да огледаш.
И въобще не ти трябва C++, а стандартното добро C.
Може да се мине с нещо съвсем просташко, без стилности и чупене на маниери.
Нешо от сорта:
/* Това #include трябва само за евентуално извеждане на резултата на екран */
#include
double MyFunc(int,int);
float arr[3][4]={{1,2,3,4},{1,2,3,4},{1,2,3,4}};
double result [3]={0,0,0};
void main(void)
{
int i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
result[i]+=MyFunc(i,j);
/* Това тук е само за извеждане на резултата на екрана */
for(i=0;i<3;i++)
printf("%8.2f \n\r",arr1[i]);
}
double MyFunc(int arg1,int arg2)
{
/* Този if долу проверява кой елемент е четен с проверка за остатък при делене */
/* Имай предвид, че четните елементи са елементи с номреа 1,3,5,7... тъй като
/* номерацията им започва от 0. Все пак трябва да знаеш какво представлява
/* аритметичната операция %. Тя работи само с цели типове. Имай предвид
/* също така че при логическата операция IF на долния ред, 0-е "лъжа", а всичко
/* различно от 0 е "истина"
if(arg2%2)
return arr[arg1][arg2];
return 0;
}
Разбира се тук размерността е дадена с точни числа за да се провери как , и дали
работи програмката. Иначе ще си сложиш теоретичните n,m. Указател към масив
в тази програмка не ти трябва. Те масивите по принцип в C се работят като
указатели ( с известни уговорки обаче). Що се отнася до необходимоста от
някаква функция ( в случая MyFunc(int,int) )- това ми звучи малко тъпичко, но
сигурно по този начин се "оттренирва" деклариране и описание на функции.
Хм, малко странно. Обърни внимание и на това къде са ДЕКЛАРИРАНИ и
ИНИЦИАЛИЗИРАНИ двата масива. Това е малко особенна тема, която няма
да кометирам. По принцип C++, не е език за решаване на такива проблемчета.
Ако нещо много те мъчи, обади се. Но само ако НЕ ТИ СЕ ЗАНИМАВА с програми-
ране.
Поздрави: Любо.