All pastes #734525 Raw Edit

Stuff

public text v1 · immutable
·published 2007-10-12 20:03 UTC
rendered paste body
// Ohjelma käyttää kahta taulukkoa.
// Taulukkoon on mahdollista lisätä alkioita.
// Jokaisen lisäyksen jälkeen muuttuja check vaihtaa
// arvoaan välillä 0 ja 1.
// riippuen tästä arvosta ohjelma tulostaa joko taulun x tai
// taulun y.

// Ennen uuden alkion luontia ohjelma formatoi toisen taulukon ja lisää
// sen pituutta yhdellä. Tämän jälkeen se kopioi toisesta taulukosta
// kaikki alkiot viimeistä lukuunottamatta ja pyytää käyttäjältä viimeisen
// alkion arvon. Toinen taulukko siis pitää alkioiden tiedot sisällään
// formatoinnin aikana.

// ohjelma luuppaa "menua" niin kauan ennen kun muuttuja 'asd' saa arvon alle 0.
// 'asd' arvo kuitenkin nousee joka luupin aikana, kunnes käyttäjä valitsee
// 'c': lopeta jolloin 'asd' saa arvon -1.


package ohjelmoinninperusteet;

public class osoite2 {

   public static void main (String[]args){

 String [] swaptauluy;
 swaptauluy = new String[0];

 int sty;
 int stx;

 String [] swaptaulux;
 swaptaulux = new String[0];

 int check;
 check = 0;
 int i;
 int asd;


 for (asd = 1; asd>0; asd++){
   sty = swaptauluy.length;
   stx = swaptaulux.length;

     System.out.println("a) Tulosta");
     System.out.println("b) Lisää alkio");
     System.out.println("c) Lopeta");
     System.out.println("d) Poista alkio\n");

char ab;
ab = Oma.lueChar();
System.out.println("\n\n");

switch (ab){
case 'a':

   if ((swaptaulux.length == 0 && check == 1) || (swaptauluy.length == 0 && check == 0)) {
   System.out.print("Taulu on tyhjä\nLisää tietoja ennen tulostamista.\n\n");
   }
   else  if (check == 0){
       System.out.println("\n");
       for (i = 0; i<sty; ++i){
       System.out.println(""+swaptauluy[i]+"");
       }
       System.out.println("\n");
       }
       else
       {
           System.out.println("\n");
           for (i = 0; i < stx; ++i) {
           System.out.println("" + swaptaulux[i] + "");
           }
           System.out.println("\n");
       }



break;
case 'b':

   stx = swaptaulux.length;
   sty = swaptauluy.length;

   if (check == 0){
       swaptaulux = new String[sty+1];
       for (i=0; i<sty; i++) {
       swaptaulux[i] = swaptauluy[i];
       }
       System.out.println("anna uusi alkio "+(i+1)+"");
       swaptaulux[i] = Oma.lueString();
       check = 1;
       System.out.println("\n");

     }
     else
     {
     swaptauluy = new String[stx+1];
       for (i=0; i<stx; i++) {
       swaptauluy[i] = swaptaulux[i];
     }
     System.out.println("anna uusi alkio "+(i+1)+"");
     swaptauluy[i] = Oma.lueString();

     check = 0;
     System.out.println("\n");
     }
     break;
     case 'c':
     asd = -1;
     break;



 // d) poisto toimii ikään kuin vetämällä palikan toisen taulun alta.
 // ensin luodaan -1 pituinen taulu y[] ja kopiodaan tieto y[i] <- x[i]
 // ja palikan otto paikasta lähtien y[i] <- x[i+1]



     case 'd':
         stx = swaptaulux.length;
         sty = swaptauluy.length;
         if (check == 1) {

             int poistoarvo;
             System.out.println("Minkä alkion haluat poistaa?\n");
             String poisto = Oma.lueString();

             for (i = 0; i < stx; i++) {

         if (swaptaulux[i].equals(poisto)) {
             poistoarvo = i;
             if (sty == 1){
             swaptauluy = new String[0];
             }
             else {
             swaptauluy = new String[stx-1];

             for (i=0; i<poistoarvo; i++){
             swaptauluy[i] = swaptaulux[i];
             }



             for (i = poistoarvo; i < stx; i++) {
              if(swaptaulux[poistoarvo].equals(stx))
                 {
                 swaptauluy = new String[stx-1];
                 for (i = 0; i<=poistoarvo; i++){
                 swaptauluy[i] = swaptaulux[i];

                 }
                 check = 0;
                 }
                 else {
                     for (i = poistoarvo; i<stx-1; i++){
                     swaptauluy[i] = swaptaulux[i + 1];
                 }

                     check = 0;
                 }

             }
           System.out.println("Alkio poistettu\n");
         }
         }

     }
         }
       else {

           int poistoarvo;
           System.out.println("Minkä alkion haluat poistaa?\n");
           String poisto = Oma.lueString();

           for (i = 0; i < sty; i++) {

       if (swaptauluy[i].equals(poisto)) {
           poistoarvo = i;

           swaptaulux = new String[sty-1];

           for (i=0; i<poistoarvo; i++){
           swaptaulux[i] = swaptauluy[i];
           }



           for (i = poistoarvo; i < sty; i++) {
           if(swaptauluy[poistoarvo].equals(sty))
           {
               swaptaulux = new String[sty-1];
               for (i = 0; i<=poistoarvo; i++){
               swaptaulux[i] = swaptauluy[i];

               }
               check = 1;
           }


           else {
               for (i = poistoarvo; i<sty-1; i++){
                   swaptaulux[i] = swaptauluy[i+1];
               }
               check = 1;
           }

           }

           System.out.println("Alkio poistettu\n");

       }


   }


       }

     break;
     default:
 }

}


}
}