МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра САПР
ЗВІТ
про виконання лабораторної роботи №2
на тему:
«Робота зі стрічками в JAVA»
Виконав:
Ст. гр. КН-3
Львів 2008Мета роботи: Метою роботи є придбання навиків програмування з використанням стрічок мови Java.
Короткі теоретичні відомості
Типи даних і оголошення змінних
Мова програмування Java, як і інші мови компілюючого типу, є мовою із строгою типізацією (strongly typed language). Це означає, що кожна змінна і кожен вираз мають тип, який повинен бути відомий під час компіляції програми. Тип обмежує набір значень, які можуть бути привласнені змінною, або отримані у виразі, обмежує операції над значеннями і визначає реалізацію конкретної операції.
У Java визначено дві категорії даних:
примітивні типи (primitive types);
посилальні типи (reference types).
Існує також спеціальний нульовий тип, тип виразу null, який не має імені.
Примітивні типи діляться на булевий тип (boolean) і числові типи. У свою чергу, числові типи – це цілі типи (byte, short, int, long і char) речові типи (float і double). Посилальні типи – це типи класів, інтерфейсів і масивів.
Оголошення змінних (за винятком масивів) в Java має наступний вигляд:
ім'я типу идентификатор-переменной;
наприклад:
int x;
String str1;
Якщо декілька змінних мають один і той же тип, їх можна оголосити в одній пропозиції, перерахувавши ідентифікатори змінних через кому:
имя-типа идентификатор-переменной-1, идентификатор-переменной-2.;
наприклад:
int x1, x2, x3;
У угодах по кодуванню рекомендується починати идентификатор-переменной з маленької букви. Якщо ім'я змінної складається з декількох слів, то всі вони пишуться злито, причому кожне слово, окрім першого, починається з великої букви, наприклад:
double inputValue;
Змінна є вказівкою місця зберігання значення змінної в пам'яті. Змінна примітивного типу завжди містить значення змінної вказаного типу (наприклад, int), а змінна посилального типу зберігає посилання (адреса) об'єкту вказаного типу.
Створювати нові змінні можна в будь-якому місці програми.
Будь-яке оголошення змінній має свою область дії, межі якої залежать від того, де саме розташовано це оголошення. При приміщенні фрагмента тексту програми в пару фігурних дужок { } створюється новий блок. Блоки в програмі на мові Java можуть бути вкладеними. Змінна доступна в блоці тільки в тому випадку, якщо вона визначена в цьому блоці або в одному з вищестоящих блоків, в який входить поточний блок.
На відміну від мови C, у внутрішньому блоці не можна оголошувати змінну з таким же ім'ям, як в зовнішній області дії.
Крім області дії, кожна змінна має і час життя. Коли поточний блок, в якому змінна була оголошена, закінчується, вона стає доступною для знищення за допомогою так званого складальника сміття.
Змінити область дії і час життя змінної можна за допомогою модифікаторів доступу. Модифікатори вставляються в оголошення змінній перед именем-типа.
За умовчанням (без модифікатора) змінна доступна тільки класам в тому ж пакеті, що і клас, в якому вона міститься.
Модифікатор public визначає, що змінна доступна як усередині, так і поза класом, тобто змінна є глобальною і доступна будь-якому іншому об'єкту.
Модифікатор private, навпаки, означає, що змінна доступна тільки в тому класі, в якому вона була оголошена.
Модифікатор final визначає, що змінна має постійне (незмінне) значення і не може бути перевизначена.
Слід зазначити, що згідно угоді про кодування, імена констант записуються повністю прописними буквами; якщо ім'я складається з декількох слів, то між ними ставиться знак підкреслення, наприклад:
int final GREEN_COLOR =2;
Оператори передачі управління в Java
При роботі програми оператори виконуються послідовно. Проте часто буває необхідним змінити порядок виконання операторів. Для цього використовуються оператори управління програмою.
У Java існують наступні види операторів управління програми:
умовний оператор;
оператори циклу;
оператори переходу;
оператор вибору.
Умовний оператор
Оператори, відповідальні за зміну порядку виконання інших операторів, називаються операторами передачі управління.
Умовного оператора Java має наступний формат:
if (булевское-выражение)
оператори-1;
else
оператори-2;
Якщо значення булевского-выражения рівне true, то виконуються оператори-1, інакше виконаються оператори-2. Оператор else може бути опущений, в цьому випадку, якщо булевское-выражение рівне false, виконується оператор, наступний за оператором if. Якщо операторів-1 або операторів-2 містять декілька операторів, вони повинні бути поміщені у фігурні дужки.
Оператори циклу
У Java визначені наступні оператори циклу:
оператор for;
оператор while;
оператор do.while.
Оператора циклу for має наступний формат:
for (инициализация-цикла;контрольное-выражение;шаговое-выражение)
тело-цикла
Ініциалізация-цикла виконується один раз перед першим проходом тіла циклу. Контрольноє-вираженіє обчислюється перед початком кожного виконання тіла циклу (у тому числі і перед першим його виконанням), а шаговое-выражение обчислюється в кінці кожного виконання тіла циклу. Як правило, в нім відбувається збільшення або зменшення деякої змінної, від якої залежить значення контрольного виразу. Тіло циклу може містити одного оператора або декілька операторів, увязнених у фігурні дужки.
У вираз для ініціалізації циклу і у вираз для ітерації циклу можна включити декілька операторів, розділених комами. Зазвичай така форма застосовується, коли в циклі необхідно використовувати декілька змінних циклу.
Оператори циклу while і do.while мають наступний формат:
while(булевское-выражение) do
тело-цикла тело-цикла
while(булевское-выражение);
Обидва цикли виконуються до тих пір, поки булевское-выражение має значення true, проте в циклі while обчислення булевского-выражения проводиться до початку чергового виконання циклу, а в циклі do.while – після його чергового виконання (тобто цикл do.while завжди виконуватиметься хоч би один раз).
Оператори переходу
У Java відсутній оператор
goto влучна
мови C, що дозволяє виконувати перехід до оператора з вказаною міткою, оскільки цей оператор може істотно ускладнити логічну структуру програми. У тих же випадках, коли необхідно пропустити виконання деяких операторів програми, в Java використовуються оператор переривання break і оператор продовження continue. До операторів переходу зазвичай відносять і оператора return, який був розглянутий раніше в розділі, присвяченому методам.
Оператор переривання:
break влучна;
передає управління за межі циклу або оператора вибору, поміченого вказаною міткою. Мітка є звичайним ідентифікатором Java, за яким слідує двокрапка. Мітка може бути опущена – в цьому випадку управління передається за межі циклу або оператора вибору, що містить даного оператора break.
Оператор продовження
continue влучна;
схожий на оператора break, проте він передає управління усередині циклу. Якщо мітка опущена, оператора continue передає управління на самий кінець тіла циклу (після останнього його оператора) і, якщо контрольний вираз, обчислений після того, як черговий прохід тіла циклу був насильницький завершений оператором continue, буде рівний true, виконання циклу продовжиться. Це буває корисно для того, щоб пропустити при виконанні тіла циклу деякі з операторів. Якщо мітка вказано, оператори пропускаються в циклі, поміченому вказаною міткою
Оператор вибору
Оператор вибору switch зазвичай використовується, коли необхідно організувати галуження програми по декількох напрямах, проте умови перевірки в нім повинні бути виражені за допомогою різних значень цілої змінної.
Оператора switch має наступний формат:
switch (вираз)
{
case значення-1: оператори-1;
case значення-2: оператори-2;
.
default: операторы-n;
}
Вираз, який ставиться в круглих дужках після ключового слова switch, може належати до одного з типів char, byte, short або int. Перевірка значення цього виразу на рівність заданому константному значенню здійснюється за допомогою операторів case, що входять в оператора switch (всі оператори case повинні містити різні значення). Як тільки один з операторів case пізнав значення виразу, управління отримує операторів, наступних після символу ":" за цим оператором case. Після цього виконуються оператори, що містяться у всіх наступних операторах case і в операторові default. Для того, щоб обійти виконання подальших операторів case і оператора default, слід задати останнім оператором для даного case оператор break. Якщо значення виразу не співпадає ні з одним із значень, виконуються оператори, наступні за оператором default (цей оператор може бути опущений). Оператори, наступні за двокрапкою, можна не брати у фігурних дужок. Якщо для декількох значень виконуються одні і ті ж дії, операторів case можна об'єднати:
case значення-1:
case значення-2: оператори;
ІНДИВІДУАЛЬНЕ ЗАВДАННЯ:
Аналіз параметрів, що задаються при введенні програми. Програма визначає, які з введених параметрів містять рядок, що задається як перший параметр. Програма виводить кількість заданих параметрів (без урахування першого параметра) і параметри, що містять заданий підрядок або повідомлення про те, що даний рядок не міститься у введених параметрах. Визначення параметрів, що містять перший параметр, проводиться в окремому методі.
Текст програми:
public class lab2 {
public static void main(String[] args) {
int nArgsNumber = args.length;
boolean k=false;
if ((nArgsNumber==0)||(nArgsNumber==1)){
System.out.println("number of parametr: 0 \nThere is too few parametres\nTry to enter some more parametres =)");
return;
}
System.out.println("number of parametr: " + (nArgsNumber-1));
for (int i=1; i<nArgsNumber; i++){
if (find(args[0],args[i])==true){
System.out.println(args[i]);
k=true;
}
}
if (k==false)
System.out.println("\nThere is no parametres with substring "+args[0]);
}
static boolean find(String sub, String This){
if (This.length()<sub.length()) return false;
if (This.indexOf(sub)==-1) return false;
return true;
}}
Результати виконання програми:
1. Параметри при запуску програми: - (відсутні або лише один, будь-який)
Результат:
number of parametr: 0
There is too few parametres
Try to enter some more parametres =)
2. Параметри при запуску програми: RolleXX sdfsdf sdfse asdwefre vcbgg
Результат:
number of parametr: 4
There is no parametres with substring RolleXX
3.Параметри при запуску програми: RolleXX "RolleXX is the best" "he is stupid" "Because RolleXX is God" "no, it's false"
Результат:
number of parametr: 4
RolleXX is the best
Because RolleXX is God
4. Виконання в консолі:
C:\Program Files\eclipse\workspace\lab2\bin>java lab2 RolleXX "fsddfgdfgdf dfgd" "RolleXX - 4EVER" fdgdf
number of parametr: 3
RolleXX - 4EVER
Висновок: на даній лабораторній роботі я навчився працювати зі стрічками мови JAVA.