Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class PenztarGep{
- public static void main(String[] args){
- boolean nettoertek = false; // addig false-on tartom, amíg be nem lép a hozzátartozó if-be
- boolean darabszam = false; // addig false-on tartom, amíg be nem lép a hozzátartozó if-be
- int brutto = 0; //egeszrekerekitett bruttoertek
- if(args.length==0){ // ha nincs megadva parameter akkor 0 a hossza
- System.err.println("Hiba! Nincs paraméter!");
- }
- else if(args.length%3==0){ //ha van megadva az osszes termék(minden adattagjával együtt) akkor biztosan osztható 3-mal a hossz
- byte xfeletermek = (byte)(args.length/3); //0 db parameter kizárva az előző if miatt, így már csak azt kell kideríteni, hogy hány féle termékünk van
- int[] sum = new int[xfeletermek]; // darab*osszeg*afakulcs tarolasa termekenkent
- int[] AfasTermek = new int[xfeletermek]; // áfa nélkül lehetne short is
- byte plusz = 0; // a plusz bevezetése a következő termékhez szükséges
- for(byte i = 0;i<xfeletermek;i++,plusz+=3){ // +3 ciklusonként (attól függ, hogy hány féle temrékünk van)
- byte j = plusz; // j értéke az új termék első adattagja lesz
- while(j<(xfeletermek*3)){
- if(Integer.parseInt(args[j])>100){ // a két feltétel, melyek külön-külöm teljesülésekor a boolean értéke true lesz
- System.err.println("A darabszám nem lehet 100-nál nagyobb!");
- nettoertek = true;
- }else if(Integer.parseInt(args[j+1])>30000){
- System.err.println("A nettó érték nem lehet 30000-nél több!");
- darabszam = true;
- }
- float Afa = Integer.parseInt(args[j+2]); // float típus kell a sum[i]-k számolásához, különben nem tudom törttel szorozni a nettó értéket
- int AfaMentesOsszDarab = (Integer.parseInt(args[j])) * (Integer.parseInt(args[j+1])); //afamentesen a darab*termek
- AfasTermek[i] = Math.round((Integer.parseInt(args[j+1]))*((Afa/100)+1));
- sum[i] = Math.round(AfaMentesOsszDarab*((Afa/100)+1)); // elmentem a sum tombbe (termekenkent) az osszegeket
- brutto += sum[i];
- break; // ha ezt elhagynánk, végtelen ciklusba lépne, mivel a while-on kívül növeljük a plusz értékét
- }
- }
- int MIN = AfasTermek[0]; //lehetne short, persze áfa nélkül
- int MAX = AfasTermek[0];
- for(int i = 0;i<xfeletermek;i++){ // egy gyors min/max számolás ciklussal
- if(AfasTermek[i]>=MAX){
- MAX = AfasTermek[i];
- }
- }
- for(int i = 0;i<xfeletermek;i++){
- if(AfasTermek[i]<=MIN){
- MIN = AfasTermek[i];
- }
- }
- if((nettoertek == false) && (darabszam == false)){ // ha egyik boolean sem állítódott át true-ra, csak akkor írja ki az adatokat
- System.out.printf("Összeg: %d Max: %d Min: %d\n", brutto,MAX,MIN);
- }
- }
- else{
- System.err.println("Hiba! Nincs minden adat megadva!");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement