Файл: Лабораторная работа 3 По дисциплине Кроссплатформенное программирование. Фамилия Волков Имя Кирилл.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 22.11.2023

Просмотров: 79

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ им. проф. М.А. Бонч-БруевичаФАКУЛЬТЕТ ИНСТИТУТ НЕПРЕРЫВНОГО ОБРАЗОВАНИЯЛабораторная работа №3По дисциплине Кроссплатформенное программирование.Фамилия: ВолковИмя: КириллОтчество: ВладимировичКурс:3Дата сдачи работы _22.04.2023Санкт-Петербург2023Цель и назначение работыИзучение общих принципов программирования в среде 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. Получаем сгенерированный текст и массив слов-палиндромов:
ВыводБыла продемонстрирована рабочая программа, удовлетворяющая техническому заданию.