Java programozás – 2005 október emelt informatika érettségi programozási feladatának megoldása

A feladat leírását, melynek a megoldását közzéteszem innen töltheted le.

/**
 *
 * @author https://webotlet.hu
 */
package webotlet_05okt_kodol_java;

import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Scanner;

public class Webotlet_05okt_kodol_java
{
  public static void main(String[] args)
  {
    System.out.println("1. feladat");
    // ekezetes beolvasas
    Scanner sc = new Scanner(System.in, "iso-8859-2");
    System.out.println("Adj meg egy szoveget:");
    String nyilt = sc.nextLine();
    
    System.out.println("2. feladat");
    // nagybetus
    nyilt = nyilt.toUpperCase();
    
    // ekezetes cserek
    String[] mit = new String[]  {"Á","É","Í","Ó","Ö","Ő","Ú","Ü","Ű"," "};
    String[] mire = new String[] {"A","E","I","O","O","O","U","U","U", ""};
    
    for( int i = 0; i < mit.length; i++ )
    {
      nyilt = nyilt.replaceAll(mit[i], mire[i]);
    }
    
    // nem betuk torlese
    char[] kar = nyilt.toCharArray();
    nyilt = "";
    
    for( int i = 0; i < kar.length; i++ )
    {
      if( Character.isAlphabetic(kar[i]) )
      {
        nyilt = nyilt.concat(Character.toString(kar[i]));
      }
    }
    
    System.out.println("3. feladat");
    System.out.println(nyilt);
    
    System.out.println("4. feladat");
    System.out.println("Adj meg egy legfeljebb 5 karakteres kulcssszot:");
    String k = sc.nextLine().toUpperCase();
    
    System.out.println("5. feladat");
    
    String kszoveg = "";
    int hanyszor = nyilt.length() / k.length();
    
    for( int i = 0; i < hanyszor; i++ )
    {
      kszoveg = kszoveg.concat(k);
    }
    
    if( kszoveg.length() < nyilt.length() )
    {
      kszoveg = kszoveg.concat(k.substring(0, nyilt.length() - kszoveg.length() ) );
    }
    
    System.out.println(kszoveg);
    
    System.out.println("6. feladat");
    String[] kodtabla = null;
    
    try
    {
      RandomAccessFile raf = new RandomAccessFile("vtabla.dat", "r");
      String sor;
      int db = 0;
      for( sor = raf.readLine(); sor != null; sor = raf.readLine() )
      {
        db++;
      }
      kodtabla = new String[db];
      
      raf.seek(0);
      int hely = 0;
      for( sor = raf.readLine(); sor != null; sor = raf.readLine() )
      {
        kodtabla[hely] = sor;
        hely++;
      }
      raf.close();
    }
    catch( IOException e )
    {
      System.out.println("HIBA");
    }
    
    String kodolt = "";
    
    for( int i = 0; i < nyilt.length(); i++ )
    {
      int sor = 0;
      int oszlop = 0;
      // megkeressuk a tabla elso oszlopaban -> .charAt(0)
      // a nyilt szoveg aktualis karakteret
      for( int j = 0; j < kodtabla.length; j++ )
      {
        if( kodtabla[j].charAt(0) == nyilt.charAt(i) )
        {
          sor = j;
          break;
        }
      }
      
      // megkeressuk a tabla elso soraban -> kodtabla[0]
      // a nyilt szoveg aktualis karakteret
      for( int j = 0; j < kodtabla[0].length(); j++ )
      {
        if( kodtabla[0].charAt(j) == kszoveg.charAt(i) )
        {
          oszlop = j;
          break;
        }
      }
      
      kodolt = kodolt.concat(kodtabla[sor].charAt(oszlop)+"");
    }
    
    System.out.println("7. feladat");
    System.out.println(kodolt);
    try
    {
      RandomAccessFile out = new RandomAccessFile("kodolt.dat", "rw");
      out.setLength(0);
      out.writeBytes(kodolt + "\n");
      out.close();
    }
    catch( IOException e )
    {
      System.out.println("HIBA");
    }
  }
}

Ha hibát találsz benne, kérlek jelezd!

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

*

Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .