
ЛАБЫ / КПП отчёт лаба3 (3)
.docxФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
_____________________________________________________________________
Факультет Информационных систем и технологий
Кафедра Безопасности информационных систем
Дисциплина «Кроссплатформенное программирование»
ОТЧЕТ
за практическое занятие №3
Тема: Работа с массивами и строками. Задача обработки палиндрома
Выполнили
Студенты 2 курса, гр. ИСТ-222
__________ Шумов В.В.
__________ Черномашенцев Б.А.
Принял
Зав. кафедрой БИС
____________ Бородянский Ю.М.
Цель работы:
Изучение общих принципов программирования в среде java.
Написание приложения, осуществляющего поиск в случайно созданном тексте "слов", являющихся палиндромами, заполнение найденными "словами" массива и распечатка полученного массива на экране.
Теоретическая часть:
В языке 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