|
Тема
|
Help, C++ Програмисти-помогнете
|
|
Автор |
Дима () |
Публикувано | 06.08.00 05:50 |
|
Даден е двумерен масив с n-реда и m-колони от тип fload.Да се състави програма, която генерира едномерен масив, всеки елемент на който се получава чрез отделна функция и е равен на сумата на четните елементи на съответния ред на двумерния
масив.
Как да се направи.
Моля помогнете!
| |
Тема
|
Help, C++ Програмисти-помогнете
[re: Дима]
|
|
Автор |
Жоро () |
Публикувано | 06.08.00 10:37 |
|
Хубаво е да се понапънеш и да си напишеш сама задачката по програмиране. Помисли малко - решението е елементарно.
Не мисля, че някой наистина ще ти помогне ако ти реши задачата.
Ето ти едно решение, което само трябва да преведеш на C:
1. Направи функция, която получава указател към двумерния масив и връща резултат тип double(за да избегнеш препълването). Добрата парктика изискава да предадеш и размерността му.
2. Викни функцията толкова пъти колкото реда има двумерния масив.
3. Резултатите от функцията ги записвай последователно в едномерния масив.
Успех
| |
Тема
|
Help, C++ Програмисти-помогнете
[re: Дима]
|
|
Автор |
emo () |
Публикувано | 07.08.00 16:27 |
|
kak wseki element se poluchawa s otdelna funkcia
sled kato weche e rawen na sumata na chetnite elementi?
| |
Тема
|
за emo
[re: Дима]
|
|
Автор |
Дима () |
Публикувано | 08.08.00 18:37 |
|
Точно и това на мен не ми е ясно :-(((
Не знам какво да приказвам за даскала си?
Май да отиде на лекар .OR. да се гръмне.
Писна ми от такива !!!
| |
Тема
|
Help, C++ Програмисти-помогнете
[re: Дима]
|
|
Автор |
!! () |
Публикувано | 08.08.00 20:09 |
|
Сигурно е имал предвид "... трябва да е равен на ...". Така че не му мисли много, обикновенно тези които дават такива задачи не знаят много повече от тези на които ги дават. Правиш каквото знаеш, обясняваш му че така си разбрал условието, а ако на някой не му харесва - да си я направи по-добре.
| |
Тема
|
за emo
[re: Дима]
|
|
Автор |
Жоро () |
Публикувано | 08.08.00 21:19 |
|
Според мен условието е ясно. Функцията трабва да извършва събирането на четните елементи в съответния ред и да връща сумата. Това, което връща функцията е един елемент от масива, който трябва да получиш. Погледни пак алгоритъма който си дадох по-горе. Дотук написах повече символи, отколкото би имало в програмата :-)))))
| |
|
... че ако си ученичка/ученик, който не му се занимава с програмиране, а гледа да
мине метър, е по добре да ти се даде готово решение което просто да огледаш.
И въобще не ти трябва 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++, не е език за решаване на такива проблемчета.
Ако нещо много те мъчи, обади се. Но само ако НЕ ТИ СЕ ЗАНИМАВА с програми-
ране.
Поздрави: Любо.
| |
|
|
|
|