Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Ciklicno pomeranje elemenata matrice za K mesta udesno

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Ciklicno pomeranje elemenata matrice za K mesta udesno

[ Pregleda: 5199 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dnkol
Dragan Kolarevic
Nis

Član broj: 94720
Poruke: 7
*.sbb.co.yu.



Profil

icon [Zadatak] Ciklicno pomeranje elemenata matrice za K mesta udesno14.05.2006. u 12:55 - pre 217 meseci
Napisati program kojim se matrica A(NxN) medifikuje tako da elementi iznad glavne dijagonale u svakoj vrsti budu ciklicno pomerani za K mesta udesno (K se unosi sa tastature), i nalazi maksimalni element za elemente ispod glavne dijagonale. Prikazati matricu pre i posle transformacije kao i maksimalni element za elemente ispod glavne dijagonale.


Ukoliko neko zna kako da resi problem neka napise kod na C-u,pascalu ili neka jednostavno recima opise sta i kako da uradim!
dnk
 
Odgovor na temu

n1tr0
Freelance
Cortanovci / NS

Član broj: 55279
Poruke: 465
80.93.231.*

Sajt: grubicv.iz.rs


+2 Profil

icon Re: [Zadatak] Ciklicno pomeranje elemenata matrice za K mesta udesno14.05.2006. u 14:58 - pre 217 meseci
Npr. imas ovakvu matricu:
1 3 9 5 6 7
8 1 7 4 0 2
6 2 1 6 2 7
3 8 9 1 7 2
2 5 7 2 1 6
7 8 9 6 3 1
(ove jedinice sam stavio da uocis glavnu dijagonalu)
Sada treba rotirati za npr. dva mesta udesno, pa matrica treba da izgleda ovako:
1 6 7 3 9 5
8 1 0 2 7 4
6 2 1 2 7 6
3 8 9 1 7 2
2 5 7 2 1 6
7 8 9 6 3 1
Ako prolazis kroz matricu pomocu dve petlje sa i i j brojacima(i za vrste i j za kolone) treba da znas da kod elemenata na glavnoj dijagonali i i j su jednaki. Kada rotiras elemente u istoj vrsti(a uslov je da su iznad g.d.), znaci da kada to radis za neku vrstu i se ne menja, a j treba da bude vece od i.
Pokusaj sada sam napisati program, a ako naidjes na problem javi, pa cemo ti rado pomoci...
 
Odgovor na temu

dnkol
Dragan Kolarevic
Nis

Član broj: 94720
Poruke: 7
*.sbb.co.yu.



Profil

icon Re: [Zadatak] Ciklicno pomeranje elemenata matrice za K mesta udesno15.05.2006. u 18:24 - pre 217 meseci
Ok ali nisam postigo nista, ako moze malo detaljnije
dnk
 
Odgovor na temu

IronTIRANIN
Milos Manojlovic
Nis

Član broj: 12974
Poruke: 59
*.medianis.net.



+1 Profil

icon Re: [Zadatak] Ciklicno pomeranje elemenata matrice za K mesta udesno18.05.2006. u 16:20 - pre 217 meseci
Dakle, posto zvanicno nismo radili funkcije pa ce zadatak da ti priznaju ako sve radis "pesice", evo prijatelju kako sam ja to zamislio.
Code:

#include <stdio.h>

main()
{
    int A[10][10];
    int i,j,k,n,p,pom,max_el;

    //**************************************************
    // UNOS MATRICE
    printf("\n\tUnesite dimenziju kvadratne matrice : ");
    scanf("%d",&n);
    for (i=0; i<n; i++)
        for (j=0; j<n; j++)
        {
            printf("\tUnesite vrednost elementa A[%d,%d] = ",i,j); 
            scanf("%d",&A[i][j]);
        }

    //**************************************************
    // STAMPANJE MATRICE PRE PROMENE
    for (i=0; i<n; i++)
    {
        printf("\n");
        for (j=0; j<n; j++)
            printf("\t%d",A[i][j]);
    }
    printf("\n\n");

    //**************************************************
    // POMERANJE ELEMENATA IZNAD GLAVNE DIJAGONALE ZA P MESTA UDESNO
    printf("\n\tZa koliko mesta treba pomeriti elemente vrste\? Odgovor : za ");
    scanf("%d",&p);
    for (k=0; k<p; k++)
    {
        for (i=0; i<n; i++)
        {
            pom=A[i][n-1];
            for (j=n-1; j>0; j--)
                if (i<j)
                    A[i][j]=A[i][j-1];
            A[i][i+1]=pom;
        }
    }

    //**************************************************
    // NALAZENJE NAJVECEG ELEMENATA ISPOD GLAVNE DIJAGONALE
    max_el=A[1][0];
    for (i=0; i<n; i++)
        for (j=0; j<n; j++)
            if (i>j)
                if (A[i][j]>max_el)
                    max_el=A[i][j];    
    
    //**************************************************
    // STAMPANJE MATRICE NAKON PROMENE I MAX_EL
    for (i=0; i<n; i++)
    {
        printf("\n");
        for (j=0; j<n; j++)
            printf("\t%d",A[i][j]);
    }
    printf("\n\n\tNajveci element ispod glavne dijagonale je %d.\n\n",max_el);

}

Naravno da je ovo moglo da se uradi mnogo lakse, al evo radio sam postupno da bi tebi bilo jasno. U svakom slucaju, najbitnije je da program radi a i da tebi bude jasno :) Pozdrav, ako jos nesto treba, tu sam.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Ciklicno pomeranje elemenata matrice za K mesta udesno

[ Pregleda: 5199 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.