C/C++

Amaterasu

123123113
Член од
17 април 2012
Мислења
1.143
Поени од реакции
1.092
Дечки имам проблем со една задачка во C
Значи имам матрица А[N][N] која има интервал на вредности -1000 до 1000. Значи од int тип.
Треба да се образува нова матрица C[N] чиишто елементи ќе бидат сумата од соодветната колона од А.
Кој е кодот кој треба да се внесе во for циклусот, дали треба да се дефинираат други вариабли освен sum?
Би ви бил многу благодарен ако ме упатите кон решението. :)
Вака, кај овие задачи со матрица, најлесно е да земеш и да нацрташ на лист, за некој пример и гледај како треба да ти работи циклусот. Ќе претпоставам дека ова C[N] ти е низа.
Значи имаш една матрица А[N][N]. Креираш нова низа од C[N]. И сега гледаш според примерот, првиот елемент во Ц треба да биде сума од елементите во првата колона од матрицата. Вториот елемент во Ц треба да ти биде сума од втората колона на матрицата. Тоа значи дека наместо како што стандардно ја изминуваш матрицата, ред по ред, сега ќе ја изминуваш колона по колона.Значи циклусите ќе ти бидат малку поразлични. Инаку воопшто не ти се потребни дополнителни променливи, па ни sum :).
 
Член од
23 февруари 2011
Мислења
1.320
Поени од реакции
1.277
Дечки имам неколку прашања за вас ако можете да ми ги одговорите.
1. Што ќе се прикаже по извршувањето на следниот програмски сегмент
int niza[]={4, 3, 1, 6, 8, 2, 5};
int x=niza[0];
for (int i=1; i<n; i++)
{
if (niza>x)
x=niza;
}
cout<<x;

2. Што се пресметува со следниот дел од програмата?
I=2;
While (i<11)
{
S=s+a;
J=i+2;
}


3. Определи кој резултат ќе се прикаже по извршувањето по следнио програмски сегмент?
Include <iostream>
Using namespace std;
Int main ()
{
Int niza[]={0, 2, 4, 6, 7, 5, 3}
Int n, rezultat=0;
For (n=0; n<5; n++)
{
Result +=niza[n]
}
Cout<<result;
Return 0;
}
 

Amaterasu

123123113
Член од
17 април 2012
Мислења
1.143
Поени од реакции
1.092
Дечки имам неколку прашања за вас ако можете да ми ги одговорите.
1. Што ќе се прикаже по извршувањето на следниот програмски сегмент
int niza[]={4, 3, 1, 6, 8, 2, 5};
int x=niza[0];
for (int i=1; i<n; i++)
{
if (niza>x)
x=niza;
}
cout<<x;

2. Што се пресметува со следниот дел од програмата?
I=2;
While (i<11)
{
S=s+a;
J=i+2;
}

3. Определи кој резултат ќе се прикаже по извршувањето по следнио програмски сегмент?
Include <iostream>
Using namespace std;
Int main ()
{
Int niza[]={0, 2, 4, 6, 7, 5, 3}
Int n, rezultat=0;
For (n=0; n<5; n++)
{
Result +=niza[n]
}
Cout<<result;
Return 0;
}
Знаеш кога ти пишува што ќе се добие откако ќе се изврши програмскиот код, тоа значи дека треба да го извршиш и да видиш. Мислам ископирај го и изврши го во некоја развојна околина....[DOUBLEPOST=1415297721][/DOUBLEPOST]
го најдов решението другар
for (i=0;i<N;i++)
{
sum=0;
{
for(j=0;j<N;j++)
sum=sum+A;
C=sum;
}}

Работата беше сумата на сите редици од матрицата А да бидат елементи на C.
Фала у секој случај :)
Не па види, што е разликата ако напишеш C=C+A[j]
Ти викаш sum=sum+A
C=sum
Што е исто со C=C+A, ако C го поставиш на нула. Како и да е, браво, ти си еден од ретките кој бараше насока на решавање, обично сите бараат готов код.
 
Последно уредено:

раднаскела

Wubba lubba dub duuuub
Член од
7 февруари 2011
Мислења
1.678
Поени од реакции
1.990
Знаеш кога ти пишува што ќе се добие откако ќе се изврши програмскиот код, тоа значи дека треба да го извршиш и да видиш. Мислам ископирај го и изврши го во некоја развојна околина....[DOUBLEPOST=1415297721][/DOUBLEPOST]
Не па види, што е разликата ако напишеш C=C+A[j]
Ти викаш sum=sum+A
C=sum
Што е исто со C=C+A, ако C го поставиш на нула. Како и да е, браво, ти си еден од ретките кој бараше насока на решавање, обично сите бараат готов код.
Хах, до некаде си во право со ова. второто :D Не ми се чека ептен на готово, сакам малку да ја мозгам задачата :D
Иначе пошто не се разбираме, сакам да ти дадам пример
Матрицата А од 3х3 го има следниот формат
3 4 6
8 5 1
9 2 4

Сумата sum ќе биде збирот на вредностите на редиците
C[1]=18
C[2]=14
C[3]=15
Во твојот случај матрицата С само ќе ги земаше вредностите на редиците од матрицата А. :)
 

Amaterasu

123123113
Член од
17 април 2012
Мислења
1.143
Поени од реакции
1.092
Хах, до некаде си во право со ова. второто :D Не ми се чека ептен на готово, сакам малку да ја мозгам задачата :D
Иначе пошто не се разбираме, сакам да ти дадам пример
Матрицата А од 3х3 го има следниот формат
3 4 6
8 5 1
9 2 4

Сумата sum ќе биде збирот на вредностите на редиците
C[1]=18
C[2]=14
C[3]=15
Во твојот случај матрицата С само ќе ги земаше вредностите на редиците од матрицата А. :)
Па како што кажа некој погоре, само така се учи програмирање, од готов код ништо.
Само ова C ти е низа така, не е матрица? Инаку јас мислев се бараат вредност на сума по колони,на пример во C[0] да имаш 3 + 8 +9, затоа што така пишуваше во твоето објаснување : "Треба да се образува нова матрица C[N] чиишто елементи ќе бидат сумата од соодветната колона од А."
Значи C[1] треба да биде сума на елементи од првата колона
тоа би било вака
притоа секој елемент од низата C е еднаков на 0.
for(i=0;i<n;i++)
for(j=0;j<n;j++)
C[ i ]=C[ i ]+A[j][ i ];
 

раднаскела

Wubba lubba dub duuuub
Член од
7 февруари 2011
Мислења
1.678
Поени од реакции
1.990
Еве го точното
for (j=0;j<N;j++)
{
sum=0;
for(i=0;i<N;i++)
{
sum=sum+A[j];
C[j]=sum;
}}
Сега го тестирав, ова ми е решение на задачата. Можеби лошо сум ти го кажал условот, па затоа не се совпаѓаат :)
 
Член од
24 октомври 2008
Мислења
1.382
Поени од реакции
248
Еве го и кодот, некој да каже да грешам ? :confused:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, broj, cifra, sumaKraj=0, sumaP=0, sumaN=0, zbir1=0, zbir2=0;
while(scanf("%d", &n))
{
cifra=n%10;
if(cifra>0)
{

if(cifra%2==0)
sumaP+=cifra;
if(cifra%2!=0)
sumaN+=cifra;
n/=10;
}
if(sumaP>5)
zbir1++;

if(sumaN<=5)
zbir2++;
}
printf("Broevi so zbir pogolem od 5: %d\n", zbir1);
printf("Broevi so zbir pomal ili ednakov od 5: %d", zbir2);

return 0;
}
 

Attachments

Dani

1 + 1 = 10
Член од
22 јуни 2010
Мислења
24.134
Поени од реакции
57.573
Еве го и кодот, некој да каже да грешам ? :confused:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, broj, cifra, sumaKraj=0, sumaP=0, sumaN=0, zbir1=0, zbir2=0;
while(scanf("%d", &n))
{
cifra=n%10;
if(cifra>0)
{

if(cifra%2==0)
sumaP+=cifra;
if(cifra%2!=0)
sumaN+=cifra;
n/=10;
}
if(sumaP>5)
zbir1++;

if(sumaN<=5)
zbir2++;
}
printf("Broevi so zbir pogolem od 5: %d\n", zbir1);
printf("Broevi so zbir pomal ili ednakov od 5: %d", zbir2);

return 0;
}
#include<stdio.h>
int main() {
int a, sump=0, sumn=0, cifra, bp=0, bn=0;
while(scanf("%d", &a)) {
sump=0;
sumn=0;
while(a>0) {
cifra=a%10;
a=a/10;
if(cifra%2==0)
sump=sump+cifra;
else
sumn=sumn+cifra;
}
if(sump>5)
bp++;
if(sumn<=5)
bn++;
}
printf("Broevi so zbir pogolem od 5: %d\n", bp);
printf("Broevi so zbir pomal ili ednakov od 5: %d", bn);
return 0;
}
 

marinium

Even Cops Dial 911 -S.W.A.T !
Член од
5 мај 2013
Мислења
984
Поени од реакции
496
дечки помош...
Учевме за -Еднодимензионално поле- и проф. ни даде две задачи за дома а тоа се
1. Одреди го најголемиот елемент во низата 3 7 12 4 8 5 и отпечати ја неговата вредност и позиција.
2. Подреди ја следната низата во растечки редослед : 8 3 7 6 12 5

треба како програма да се напишат не само онака блок дијаграм логички...
ми треба до утре до 12ч на пладне кој може да ми решии, фалаа :)
 

Amaterasu

123123113
Член од
17 април 2012
Мислења
1.143
Поени од реакции
1.092
дечки помош...
Учевме за -Еднодимензионално поле- и проф. ни даде две задачи за дома а тоа се
1. Одреди го најголемиот елемент во низата 3 7 12 4 8 5 и отпечати ја неговата вредност и позиција.
2. Подреди ја следната низата во растечки редослед : 8 3 7 6 12 5

треба како програма да се напишат не само онака блок дијаграм логички...
ми треба до утре до 12ч на пладне кој може да ми решии, фалаа :)
Нема да ти ги решам задачите, ептен се едноставни само треба малце да седнеш и да размислиш.
Зошто не се обидеш да напишеш код, па да ни кажеш каде си заглавил, за да можеме да ти помогнеме?
За првата задача. Треба да ја изминуваш низата, и нон стоп да правиш проверка кој ти е најмал член
Значи ќе имаш две помошни променливи maxValue и maxIndex, во кој ќе ја чуваш најголемата вредност до сега и нејзиниот индекс во низата.
На пример за почетна вредност во maxValue ја ставаш првата вредност од низата, во случајот на
3 7 12 4 8 5 тоа е 3. maxIndex исто го ставаш на прва позиција (нулта позиција во низата).
Сега го гледаш следниот член. Дали следниот член е поголем од моменталниот најголем ( во случајов тоа е 3)? Да ? Епа тогаш сега моментално најголем (maxValue) е еднакво на 7, а позицијата е еднаква на 2. И така натаму до крајот на низата. Кога ќе ја изминеш низата, во maxValue ќе ти биде најголемата вредност, a vo maxIndex ќе ти биде позицијата на која се наоѓа тој елемент.

За втората задача. Ова е типичен пример на сортирање, да си прогуглал малце ќе видиш дека има 100215112512519 алгоритми за сортирање на низа. Еве на пример можеш да го искористиш кодот од погоре и да го правиш следното. Најди го најголемиот елемент во низата и замени му го местотото со последниот елемент во низата. Сега знаеш дека на крајот на низата ти се наоѓа најголемиот елемент. Сега пак гледај ја истата низа, ама без последниот елемент. Пак најди го најголемиот и стави го последен. Да речеме, сортот за оваа низа би одел вака.
Почнуваме од 8 3 7 6 12 5
После првата замена ќе биде 8 3 6 7 5 12
После втората замена ќе биде 5 3 6 7 8 12
После третата замена ќе биде 5 3 6 7 8 12
после четвртата замена ќе биде 5 3 6 7 8 12
после петтата замена че биде 3 5 6 7 8 12
Тука завршува алгоритмот.
 

marinium

Even Cops Dial 911 -S.W.A.T !
Член од
5 мај 2013
Мислења
984
Поени од реакции
496
Нема да ти ги решам задачите, ептен се едноставни само треба малце да седнеш и да размислиш.
Зошто не се обидеш да напишеш код, па да ни кажеш каде си заглавил, за да можеме да ти помогнеме?
За првата задача. Треба да ја изминуваш низата, и нон стоп да правиш проверка кој ти е најмал член
Значи ќе имаш две помошни променливи maxValue и maxIndex, во кој ќе ја чуваш најголемата вредност до сега и нејзиниот индекс во низата.
На пример за почетна вредност во maxValue ја ставаш првата вредност од низата, во случајот на
3 7 12 4 8 5 тоа е 3. maxIndex исто го ставаш на прва позиција (нулта позиција во низата).
Сега го гледаш следниот член. Дали следниот член е поголем од моменталниот најголем ( во случајов тоа е 3)? Да ? Епа тогаш сега моментално најголем (maxValue) е еднакво на 7, а позицијата е еднаква на 2. И така натаму до крајот на низата. Кога ќе ја изминеш низата, во maxValue ќе ти биде најголемата вредност, a vo maxIndex ќе ти биде позицијата на која се наоѓа тој елемент.

За втората задача. Ова е типичен пример на сортирање, да си прогуглал малце ќе видиш дека има 100215112512519 алгоритми за сортирање на низа. Еве на пример можеш да го искористиш кодот од погоре и да го правиш следното. Најди го најголемиот елемент во низата и замени му го местотото со последниот елемент во низата. Сега знаеш дека на крајот на низата ти се наоѓа најголемиот елемент. Сега пак гледај ја истата низа, ама без последниот елемент. Пак најди го најголемиот и стави го последен. Да речеме, сортот за оваа низа би одел вака.
Почнуваме од 8 3 7 6 12 5
После првата замена ќе биде 8 3 6 7 5 12
После втората замена ќе биде 5 3 6 7 8 12
После третата замена ќе биде 5 3 6 7 8 12
после четвртата замена ќе биде 5 3 6 7 8 12
после петтата замена че биде 3 5 6 7 8 12
Тука завршува алгоритмот.
ok fala mnogu
 
Член од
19 јуни 2014
Мислења
179
Поени од реакции
158
Moze li mala pomos so zadacata? Znam da ja resam bez funkcija ama so funkcija ne odi...
Да се напише функција која дадена низа ќе ја промени така што сите елементи ќе ги премести во лево за n места (n се внесува од тастатура) така што најлевите елементи ќе се додадат на крајот на добиената низа. Потоа да се напише главната програма која ќе ја испроба работата на оваа функција. Главна програма треба да дозволи внесување на низа од целобројни елементи и притоа ќе ја испечати променетата низа на екран.
 

Eva Molotow

Anti-social Engineer
Член од
6 јуни 2008
Мислења
532
Поени од реакции
392
Moze li mala pomos so zadacata? Znam da ja resam bez funkcija ama so funkcija ne odi...
Да се напише функција која дадена низа ќе ја промени така што сите елементи ќе ги премести во лево за n места (n се внесува од тастатура) така што најлевите елементи ќе се додадат на крајот на добиената низа. Потоа да се напише главната програма која ќе ја испроба работата на оваа функција. Главна програма треба да дозволи внесување на низа од целобројни елементи и притоа ќе ја испечати променетата низа на екран.
Како така без функција можеш, а со функција не можеш? Во main ќе се внесува низата и n, потоа n и низата ги праќаш како параметри на функцијата која го содржи кодот што си го напишал и ќе ја враќа променетата низа. Читни тука за функции: http://www.tutorialspoint.com/cprogramming/c_functions.htm :)

Ќе имаш нешто како...

char* поместување(char* низа, int n) {
код за поместување на низата во нованиза;
return нованиза;
}

main () {
scanf низа и n;
финална = поместување(низа, n);
printf финална;
}

П.С. внатре во функцијата нованиза мора да ти биде алоцирана со malloc(); на heap бидејќи во спротивно кога ќе заврши функцијата со извршување се губи поинтерот ИЛИ да ја дефинираш во main и да ја пратиш како параметар. :)
 
Последно уредено:

Kajgana Shop

На врв Bottom