Главная страница
Навигация по странице:

  • Лабораторная работа №3 По дисциплине Кроссплатформенное программирование. Фамилия: Яковлев

  • Дата сдачи работы _18.06.2019

  • Ход работы Пишем программу в соответствии с заданием: import

  • Кроссплатформенное программирование. Лабораторная работа 3 По дисциплине Кроссплатформенное программирование. Фамилия Яковлев Имя Александр


    Скачать 278.31 Kb.
    НазваниеЛабораторная работа 3 По дисциплине Кроссплатформенное программирование. Фамилия Яковлев Имя Александр
    АнкорКроссплатформенное программирование
    Дата01.04.2023
    Размер278.31 Kb.
    Формат файлаdocx
    Имя файлаЛ.р.№3.docx
    ТипЛабораторная работа
    #1029299

    САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ

    УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ им. проф. М.А. Бонч-Бруевича

    ФАКУЛЬТЕТ ИНСТИТУТ НЕПРЕРЫВНОГО ОБРАЗОВАНИЯ
    Лабораторная работа №3

    По дисциплине Кроссплатформенное программирование.

    Фамилия: Яковлев

    Имя: Александр

    Отчество: Андреевич

    Курс:3

    Студ. билет №:1610541

    Группа №: ОБ-62з

    Дата сдачи работы _18.06.2019
    Санкт-Петербург

    2019

    Цель и назначение работы

    Изучение общих принципов программирования в среде java.

    Написание приложения, осуществляющего поиск в случайно созданном

    тексте "слов", являющихся палиндромами, заполнение найденными

    "словами" массива и распечатка полученного массива на экране.

    Необходимо создать консольное приложение, осуществляющее генерацию

    случайного текста в размере не менее чем 100 строк. Все "слова" текста

    составляются программой автоматически из случайно выбранных букв.

    После создания текста программа осуществляет поиск в тексте слов –

    палиндромов (то есть таких слов, которые одинаково читаются слева –

    направо и справа – налево), заполняет этими словами массив и распечатывает

    на экране исходный текст и найденные палиндромы. Для простоты размер

    всех "слов" взять одинаковым. Размер "слова" задается пользователем путем ввода с клавиатуры.

    Ход работы

    1. Пишем программу в соответствии с заданием:

    import java.util.Arrays;
    import java.util.Random;
    import java.util.Scanner;

    public class App
    {
    private static final int LINE_LENGTH = 140;
    private static final int LINE_NUMBER = 240;
    private static final Random rand = new Random();

    private static char getRandLetter()
    {
    return (char) (97 + rand.nextInt(26));
    }

    private static String getText(int wordLength)
    {
    StringBuilder text = new StringBuilder();
    for(int k = 0; k < LINE_NUMBER; k++)
    {
    StringBuilder line = new StringBuilder();
    while(line.length() + wordLength + 1 <= LINE_LENGTH)
    {
    char[] chars = new char[wordLength];
    for(int j = 0; j < wordLength; j++)
    {
    chars[j] = getRandLetter();
    }
    line.append(chars).append(' ');
    }
    text.append(line).append("\n");

    }
    return text.toString();
    }

    private static boolean isPalindrome(String s){
    if(s == null || s.isEmpty()){
    return false;
    }
    int length = s.length();
    char[] chars = s.toCharArray();
    for(int i = 0, j = length - 1; i < length / 2 && j >= length - length / 2; i++, j--)
    {
    if (chars[i] != chars[j]){
    return false;
    }
    }
    return true;

    }
    private static String[] findPalindromes(String text)
    {
    return Arrays.stream(text.split("\\s"))
    .filter(App::isPalindrome)
    .toArray(String[]::new);
    }

    public static void main(String[] args)
    {

    Scanner scanner = new Scanner(System.in);
    System.out.println("Input the word length: ");
    int wordLength = scanner.nextInt();
    System.out.println("The text is : ");
    String text = getText(wordLength);
    System.out.println(text);
    System.out.println("Palindrome list: ");
    System.out.println(Arrays.toString(findPalindromes(text)));

    }
    }

    1. Запускаем ее и вводим число



    1. Получаем сгенерированный текст и массив слов-палиндромов:



    Вывод

    Была продемонстрирована рабочая программа, удовлетворяющая техническому заданию.


    написать администратору сайта