Gyakorlati alapok

Másolás

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

A másolás legfontosabb jellegzetessége, hogy az eredmény mindig ugyanannyi elemszámú, mint amennyi a bemenet volt, ezért a kimenet iterált tagját a bemenet ugyanabban a pozícióban lévő, szintén iterált tagjából meg lehet határozni. Következésképpen a bemenő sorozatot le kell másolni és közben egy elemspecifikus átalakítást kell rajta elvégezni. Ezen tulajdonságot hívják elemenkénti feldolgozhatóságnak.

 

Például: a véletlenszámokkal feltöltött alaptömb (int[] tomb) elemeit egyszerűen átmásoljuk az eredménytömbbe (int[] tombEredmeny = new int[tomb.length];) egyetlen feltétellel: minden páratlan számú elemet párossá alakítunk át. Látható, hogy az eredménytömb méretét az alaptömb hosszából vesszük ([tomb.length]), amely itt nem nagy produkció, de bizonyos esetekben nagyon praktikus megoldás.

 

Mivel további feltételek nincsenek, az alapalgoritmus nem tesz mást, mint feltétel vizsgálat után (if(tomb[i] % 2 != 0)) a páratlan számhoz hozzáad 1-et, ezáltal az párossá válik:

 

int[] tombEredmeny = new int[tomb.length];
    for(int i = 0; i < tomb.length; i++){
        if(tomb[i] % 2 != 0){
            tombEredmeny[i] = tomb[i] + 1;
        }
        else
            tombEredmeny[i] = tomb[i];
    }

 

Nézzük meg a futtatható Java-kódos változatot:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import java.util.Random;

public class Main {
    public static void main(String[] args) {
    Random random = new Random();
    int[] tomb = new int[10];
    for(int i = 0; i < tomb.length; i++){
        tomb[i] = random.nextInt(50) + 1;
        System.out.print(tomb[i] + " ");
    }

    System.out.println();

    int[] tombEredmeny = new int[tomb.length];
    for(int i = 0; i < tomb.length; i++){
        if(tomb[i] % 2 != 0){
            tombEredmeny[i] = tomb[i] + 1;
        }
        else
            tombEredmeny[i] = tomb[i];
    }


    for(int i = 0; i < tomb.length; i++){
        System.out.print(tombEredmeny[i] + " ");
        }
    }
}

 

Végeredmény (például):
45 24 39 21 8 43 39 34 47 21
46 24 40 22 8 44 40 34 48 22