Java programozás – 2011 májusi emelt informatika érettségi – szójáték (2. verzió)

A feladat leírását, melynek a megoldását közzéteszem innen töltheted le. Ez a megoldás tömbbel dolgozik. Adattároló osztály nincs.
A feladat megoldásai:

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

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

public class Webotlet_11maj_szojatek_v2
{

  public static void main(String[] args)
  {
    Scanner sc = new Scanner(System.in);
    System.out.print("1. feladat Adjon meg egy szot: ");
    String szo = sc.nextLine();
    
    if( mghDb(szo) > 0 )
    {
      System.out.println("Van benne maganhangzo.");
    }
    else
    {
      System.out.println("Nincs benne maganhangzo.");
    }
    
    System.out.println("2. feladat");
    
    String leghosszabb = "";
    try
    {
      RandomAccessFile raf = new RandomAccessFile("szoveg.txt", "r");
      String sor;
      for( sor = raf.readLine(); sor != null; sor = raf.readLine() )
      {
        if( sor.length() > leghosszabb.length() )
        {
          leghosszabb = sor;
        }
      }
      raf.close();
    }
    catch( IOException e )
    {
      System.out.println("HIBA");
    }
    System.out.println(leghosszabb + " " + leghosszabb.length());
    
    
    System.out.println("3. feladat");
    int tobbMgh = 0;
    int osszDb = 0;
    try
    {
      RandomAccessFile raf = new RandomAccessFile("szoveg.txt", "r");
      String sor;
      for( sor = raf.readLine(); sor != null; sor = raf.readLine() )
      {
        osszDb++;
        if( mghDb(sor) > (sor.length() / 2) )
        {
          System.out.print(sor + " ");
          tobbMgh++;
        }
      }
      System.out.println();
      double szazalek = (double)tobbMgh / osszDb * 100;
      System.out.println(String.format("%d/%d : %.2f%%",
        tobbMgh, osszDb, szazalek));
      raf.close();
      
    }
    catch( IOException e )
    {
      System.out.println("HIBA");
    }
    
    System.out.println("4. feladat");
    
    String[] szavak5 = null;
    
    try
    {
      RandomAccessFile raf = new RandomAccessFile("szoveg.txt", "r");
      String sor;
      int db = 0;
      for( sor = raf.readLine(); sor != null; sor = raf.readLine() )
      {
        if( sor.length() == 5 )
        {
          db++;
        }
      }
      
      szavak5 = new String[db];
      raf.seek(0);
      
      int hely = 0;
      for( sor = raf.readLine(); sor != null; sor = raf.readLine() )
      {
        if( sor.length() == 5 )
        {
          szavak5[hely] = sor;
          hely++;
        }
      }
      raf.close();
    }
    catch( IOException e )
    {
      System.out.println("HIBA");
    }
    
    System.out.println("Adj meg egy 3 betus szotreszletet!");
    String reszlet = sc.nextLine();
    
    for( int i = 0; i < szavak5.length; i++ )
    {
      if( kozep(szavak5[i]).equals(reszlet) )
      {
        System.out.print(szavak5[i] + " ");
      }
    }
    System.out.println();
    
    // 5. feladat
    for( int i = 0; i < szavak5.length - 1; i++ )
    {
      for( int j = i + 1; j < szavak5.length; j++ )
      {
        if( kozep(szavak5[i]).compareTo(kozep(szavak5[j])) > 0 )
        {
          String csere = szavak5[i];
          szavak5[i] = szavak5[j];
          szavak5[j] = csere;
        }
      }
    }
    
    try
    {
      RandomAccessFile ki = new RandomAccessFile("letra.txt", "rw");
      ki.setLength(0);
      
      if( kozep(szavak5[0]).equals(kozep(szavak5[1])) )
      {
        ki.writeBytes(szavak5[0] + "\n");
      }

      for( int i = 1; i < szavak5.length - 1; i++ )
      {
        if( kozep(szavak5[i]).equals(kozep(szavak5[i - 1])) )
        {
          ki.writeBytes(szavak5[i] + "\n");
        }
        else if( kozep(szavak5[i]).equals(kozep(szavak5[i + 1])) )
        {
          ki.writeBytes("\n" + szavak5[i] + "\n");
        }
      }

      if( kozep(szavak5[szavak5.length - 1])
        .equals(kozep(szavak5[szavak5.length - 2])) )
      {
        ki.writeBytes(szavak5[szavak5.length - 1] + "\n");
      }

    }
    catch( IOException e )
    {
      System.out.println("HIBA");
    }
  }
  
  public static String kozep(String szo)
  {
    return szo.substring(1, 4);
  }

  public static int mghDb(String szo)
  {
    int db = 0;
    
    for( int i = 0; i < szo.length(); i++ )
    {
      if( szo.charAt(i) == 'a'
      || szo.charAt(i) == 'e'
      || szo.charAt(i) == 'i'
      || szo.charAt(i) == 'o'
      || szo.charAt(i) == 'u' )
      {
        db++;
      }
    }
    return db;
  }
 }

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 .