Prikazani su postovi s oznakom polja. Prikaži sve postove
Prikazani su postovi s oznakom polja. Prikaži sve postove

ponedjeljak, 13. svibnja 2013.

Izražavanje članova - obrada lekcije iz škole

Ponekad iz našega polja želimo izraziti najveći ili najmanji član ili dobiti umnožak ili zbroj svih članova. To ćemo Vam objasniti u ovoj lekciji.

U ovoj lekciji napisati ćemo algoritme umjesto primjera.

Zbrajanje članova niza

Zadali smo polje od nekoliko realnih brojeva tipa double većih od nule. Ako sve te članove želimo zbrojiti, onda to možemo učiniti petljom for.

zbroj = 0.0;
for (i = 0; i < n; ++i)
   zbroj += x [i];
. . .
printf ("Zbroj clanova niza  =%f.\n", zbroj);

Umnožak članova niza

Kada se radi o umnošku svih članova, moramo znati da varijabla koja ga računa ne smije započeti s nulom jer njom se ne može množiti. Zato umjesto da nam varijabla umnoz bude 0.0, ona će biti 1.0.

umnoz = 1.0;
 for (i = 0; i < n; ++i)
   umnoz *= x [i];
. . .
printf ("Umnozak clanova niza = %f.\n", umnoz);

Vrijednost i indeks najmanjeg člana

Ovdje ćemo koristiti petlje for i if.

min = x [0];
poz = 0;
for (i=1; i < n; ++i)
   if (x [i] < min)
      {
      min = x [i];
      poz = i;
      }
printf ("Najmanji član niza x[%d] =%f.\n", poz, min);

Vrijednost i indeks najvećeg člana

Za računanje najvećeg člana koristimo isti algoritam kao i kod računanja najmanjeg člana, samo što je u naredbi if uvjet da je x [i] veći od varijable max.

max = x [0];
poz = 0;
for (i=1; i < n; ++i)
   if (x [i] > max)
     {
     max = x [i];
     poz = i;
     }
printf ("Najveci clan niza: x[%d] =%f.\n", poz, max);

četvrtak, 11. travnja 2013.

Polja - obrada lekcije iz škole

Najjednostavnija definicija za polja je da su ona niz istovrsnih znakova. Ona nam pomažu da deklariramo više istih tipova podataka odjednom.

Polja nam mogu olakšati posao kada unosimo više varijabli istoga tipa.

To znači da umjesto pisanja

int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
...

i tako sve do nekog željenog broja, možemo jednostavno napisati

int brojevi[50] = {1, 2, 3, 4, 5, 6, 7};

int - oznaka za tip podataka integer
brojevi - naziv za polje
[50] - broj u uglatoj zagradi predstavlja maksimalan broj deklaracija u polju. U slučaju da deklariramo manje od navedenoga, ostali članovi u polju bit će 0. Takvi nedefinirani članovi zovu se trash članovi.
Niz znakova u polju završava sa NULL.
{1, 2, 3, ...} - brojevi u vitičastoj zagradi su deklaracije članova polja. Trenutno u našem polju od 50 članova ima 7 deklariranih članova.

Kako bi pristupili članovima u polju, koristimo se indeksom.
Indeks govori koliko mjesta je član pomaknut od početka polja.

Indeks započinje brojem 0. To znači da je

1. član - indeks: 0
2. član - indeks: 1
3. član - indeks: 2
...
n. član - indeks: n-1

Primjer uporabe polja:

float prosjek [10] = {4.5, 4.1, 3.6, 3.0, 2.7}

Označite mišem bijelo polje ispod pitanja kako bi dobili odgovor!

Koji je po redu član 3.6 ? Koji je po indeksu?

Član 3.6 je treći po redu. Po indeksu je (3-1) drugi.

Koliko se članova može deklarirati?

Može se deklarirati 10 članova.

Koliko je članova deklarirano? Koliko je trash?

Pet članova je deklarirano, a idućih pet je trash.

četvrtak, 28. veljače 2013.

Domaća zadaća: Primjer uporabe polja u C++

#include <stdio.h>
#include <iostream>



int main ()
{
   int p[100],c,n;

   printf("Koliko elemenata unosimo u polje \n");
   scanf("%d", &n);

   printf("Upis %d elemenata \n",n);
   for(c=0;c<n;c++)
      scanf(
"%d",&p[c]);

   printf("Ispis polja \n",n);
   for (c=0;c<n;c++)
      printf ("%d. %d ", c+1, p[c]); // 2 podatka
                                     // rbr = index +1
                                     // element polja


   printf("\n Ispis polja u obrnutom redoslijedu \n",n);
   for(c=n-1;c>=0;c--)
      printf("%d. %d \n",c+1, p[c]);
   printf("\n");

   int zbroj=0;
   printf("\nProsjecna vrijednost u polju je \n",n);
   
for (c=0;c<n;c++)

      zbroj+=p[c];
   printf("\nProsjek je %.2f \n", (float)zbroj/n);

   int max= p[0];
   printf("\nNajveca vrijednost u polju\n",n);
   for (c=1; c<n; c++)
      if (p[c] > max)
   max=p[c];

   printf("\n Najveci je %d \n", max);

   int min = p[0], imin=0;
   printf("\nIndeks najmanje vrijednosti u polju\n",n);
   for(c=1; c<n; c++)
      if(p[c]<min)
      {
         min=p[c];
         imin=c;
      }

   printf("\nIndeks najmanjega je %d \n", imin);


   system("pause");
}