Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛАБЫ / КПП отчёт лаба3 (3)

.docx
Скачиваний:
5
Добавлен:
13.06.2024
Размер:
69.87 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

_____________________________________________________________________

Факультет Информационных систем и технологий

Кафедра Безопасности информационных систем

Дисциплина «Кроссплатформенное программирование»

ОТЧЕТ

за практическое занятие №3

Тема: Работа с массивами и строками. Задача обработки палиндрома

Выполнили

Студенты 2 курса, гр. ИСТ-222

__________ Шумов В.В.

__________ Черномашенцев Б.А.

Принял

Зав. кафедрой БИС

____________ Бородянский Ю.М.

Цель работы:

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

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

Теоретическая часть:

В языке Java, как и других языках программирования, массив данных (Array) используется для хранения нескольких значений одного и того же типа. Массив может иметь определенный при его создании размер. К элементам массива обращаются с указанием индекса, и начальный элемент массива имеет значение индекса 0.

Процесс создания массива происходит в два этапа. Во-первых, следует объявить переменную нужного типа массива. Это выглядит следующим образом (например):

Во-вторых, с помощью оператора new необходимо зарезервировать память для хранения массива и связать ее с переменной массива. Например,

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

Например, в приведенной ниже строке значение 35 присваивается второму элементу массива mass.

Объявление переменной массива можно объединять с выделением для него памяти:

Именно так обычно и поступают в программах, профессионально написанных на Java.

Массивы можно инициализировать при их объявлении. Этот процесс во многом аналогичен инициализации простых типов. Инициализатор массива - это список выражений, разделяемый запятыми и заключаемый в фигурные скобки. Запятые разделяют значения элементов массива. Массив автоматически создается такого размера, чтобы вмещать все элементы, указанные в инициализаторе массива. В этом случае потребность в операторе new отпадает.

Символьные строки

Строковый тип данных String не относится к примитивным типам, это – класс. Тип данных String служит для объявления строковых переменных, а также массивов символьных строк. Переменной типа String можно присвоить заключенную в кавычки строковую константу. Переменная типа String может быть присвоена другой переменной типа String. Объект класса String можно указывать в качестве аргумента метода println (). Пример:

В этом примере str обозначает объект класса String. Ему присваивается символьная строка "Java-технология", которую метод println() выводит на экран. Как будет показано далее, объекты класса String обладают многими характерными особенностями и свойствами, которые делают их довольно эффективными и простыми в употреблении.

Ход работы:

Вывод:

  • Изучены принципы работы массивов в языке программирования java.

  • Написано приложение, осуществляющее поиск в случайно созданном тексте "слов", являющихся палиндромами, заполняющее найденными "словами" массив и распечатывающее полученный массив на экране.

Приложение

package project1; // Объявление пакета project1

import java.util.*; // Импорт всех классов из пакета java.util

public class Palindroms { // Объявление класса Palindroms

static int count = 0; // Объявление статической переменной count для подсчета палиндромов

public static void main(String[] args) { // Объявление метода main

int lengthW = 5; // Длина генерируемых слов

System.out.print("Длина слова = " + lengthW); // Вывод сообщения о длине слова

Random rand = new Random(); // Создание объекта Random для генерации случайных чисел

int wordsNum = 100; // Количество генерируемых слов

String[] words = generateW(wordsNum, lengthW); // Генерация массива слов

System.out.println("\n Все сгенерированные слова:"); // Вывод сообщения о сгенерированных словах

for (String word : words) { // Итерация по массиву сгенерированных слов

System.out.print(word + " "); // Вывод каждого слова

}

printP(words); // Вызов метода для печати палиндромов

}

// Метод для генерации массива слов

static String[] generateW(int amount, int length) {

String alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"; // Алфавит

Random rand = new Random(); // Создание объекта Random для генерации случайных чисел

String[] generatedWords = new String[amount]; // Создание массива для сгенерированных слов

for (int wordNum = 0; wordNum < amount; ++wordNum) { // Итерация для каждого слова

String word = "";

// Генерация слова по символам из алфавита

for (int letter = 0; letter < length; ++letter) { // Итерация для каждой буквы в слове

word += alphabet.charAt(rand.nextInt(alphabet.length() - 1)); // Добавление случайной буквы к слову

}

generatedWords[wordNum] = word; // Добавление сгенерированного слова в массив

}

return generatedWords; // Возвращение массива сгенерированных слов

}

// Метод для печати палиндромов из массива слов

public static void printP(String[] words) {

System.out.print("\n\nСлова палиндромы: "); // Вывод сообщения о палиндромах

for (String word : words) { // Итерация по массиву слов

if (proverka(word)) { // Проверка на палиндром

System.out.print(word + " "); // Вывод палиндрома

}

}

}

// Метод для проверки является ли слово палиндромом

public static boolean proverka(String word) {

for (int i = 0; i < word.length() / 2; ++i) { // Итерация до половины длины слова

if (word.charAt(i) != word.charAt(word.length() - i - 1)) // Проверка символов на равенство

return false; // Возвращение false, если символы не равны

}

return true; // Возвращение true, если все символы равны (слово палиндром)

}

}

Санкт-Петербург 2024

Соседние файлы в папке ЛАБЫ