Скачиваний:
36
Добавлен:
15.02.2021
Размер:
804.3 Кб
Скачать

Оглавление

 

 

Лабораторработа№1:Осиновыаятаксиса

Java.....................................................................

2

Лаборатработа№2:Основырнаябъектно

-ориентированногопрограммирования ................

6

Лабораторнаяработа№3:АлгоритмA* («A star»)

....................................................................

10

Лабораторнаяработа№4:Рисованиефракталов

......................................................................

17

Лабораторнаяработа№5Выбор. исохфракталованение

.......................................................

27

Лабораторнаяработа№6Многопоточный. генефракталовтор

............................................

34

Лабораторнаяработа№7Веб.

-сканер ........................................................................................

40

Лаборатработа№8:М рнаядифицированныйвеб

-сканер......................................................

50

Лаборабота№1т рная

:Основысинтаксиса

Java

Вданной лабораторнойработев

ыизуч ите

основысинтаксисаJava

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

 

 

использоватькомпиляJavaвирмашиуальордляJavaзапусканую

 

 

программы.Отваспотрешитьебуетсяследующиезадачи:

 

 

Простыечисла

 

 

Создайтепрограмму,котораянаходитвыводвсепростыечисла

 

 

меньше100.

 

 

1Создайте. файлсименемPrimesвэтомфайлеопишите.java,следующий

 

 

класс:

 

 

public class Primes {

 

 

public static void main(String[] args) {

 

}

 

 

}

 

 

Воспользовдакласннымвши,соберитезапуститеомьпрограмму.Так

 

каквданнойпрограмменетконкрреализации,результататнойвыполненияее

 

 

вынеувидите.

 

 

2Внутри. созданногоклас,пометле да

 

main(),опишитефункцию

IsPrimeкотоопр(Int,еделяетаяn),

явларгументияетсяпростымчислиом

 

нет.Можнопредп,чтвходноезначениеложитьвсnбубольшегде2т.

 

 

Полноеписаниефункциибудвыглядетьтак:

 

 

public static boolean isPrime(int n)

 

{

 

 

}

 

 

Даннметвыореализоватьдйжетеповашемуусмотрению,

однако

простойподходзаключаетсявиспользованиициклаforДанныйциклдо. жен

 

перебиратьчисла,начидо2но(включая)проверяяn,существуетли

 

какое-либозначе,делящеесянабиеостаnз.Дляэтможноогока

 

испоператоральзоватьостатк“%”.

Нап, равняется17%7имер3,16%4

 

равноЕсли0какая.

-либопеременнаяполностьюделитсяаргумент,

 

сработаетоператорreturnЕслижезначfalseнеденааргументли. тсябез

 

ос,тэтоаткапростоечисло,операторпокажетreturnОператорrettrue. (

urnв

Javaисподвозвратальзуетсяданныхизфункции,такимспособом

 

закрываетсяметод.)

 

 

3После. того,какэтотучастокбудетреализован,приступайтек

 

запосновноголметоданиюmain()другимциклом,котоперебираетый

 

числавдиапазонеотдо2100вк

лючительно.Необходимовывнап тестичать

 

значения,которыевашпомощникIsPrimeпосчиталпростыми. ()

 

4После. завервапрограммышескомпилируйтенияпротестируйте

 

её.Убедитесь,чторезулправильные.Винтернсможететатывы айти

 

спискипростых

чисел.

 

Крт,окакгомевидноизприм,неслзабыватьерадуетобиспользовании комм:передклассомнтариевегоназначпередм стодомниегоцелью.

Когдавыпишетепрогр,крайнев писатьммыжноподкобныемментарии.

Палиндромы

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

1. Дляэтойпрограм,создклсимйтессыPalindromeенемвфайле подназваниемPalindromeНаэтотразвыможетевоспользоваться.java.

следующимкодом:

public class Palindrome {

public static void main(String[] args) { for (int i = 0; i < args.length; i++) {

String s = args[i];

} }

}

Скомпилируйтезапуститеэтупрограммувтакомвиде, зультат ранебудетотыотображен.

2Вашапервая. задачасостоитвтом,чтобысоздатьметод,позволяющий полностьюизменитьсимволыстроке.Сигнатурапоследовательность( )метода должнабытьследующей:

public static String reverseString(Strings)

Выможетереализоватьэтотметодпутемсозданиялокальной переменной,котораяначинсострокиа"",затеметсядобавлятьсимволыиз входнойстрокивыходдан,обратномныепорядке.Используйтеметод length(),котвозвращаетрыйдлинустроки,методcharAt(intкоторыйindex),

возвращаетсимволпоуказанному ндексу.Индексыначинаются0

увеличиваютсяна1Например. :

String s = "pizzeria";

System.out.println(s.length()); //Выводим8

System.out.println(s.charAt(5)); //Выводимr

Выможетеисп ператорльзовконксоединения( )ьенациистрок+

илиоп ератор+=,навашеусмотрение. 3После. того,каквыприменилиметодreverseStringсоздайтеещеодин (),

методpublic staticЭтотмедолженодboolean isPalindrome(String s).

перевернутьсловоазатемs,сравнитьпервоначальнымиданными.

Используйтемето дEqualsдляпроверкизначения(Object)равенства.Например: String s1 = "hello";

String s2 = "Hello";

String s3 = "hello"; s1.equals(s2); // Истина s1.equals(s3); // Ложь

Неиспользуйтедля==проверкиравенствастрок.Этимзанимается другойт ествJava,которыйбудетрассмотрендалее.

4Скомпилируйте. протестируйтепрог!Наэтотразаммувходными

даннымибудутаргументыкомастроки, апримердной:

java Palindrome madam racecar apple kayak song noon

Вашапрограммадолжнавывестиответ,явля

етсяликаждоеслово

палиндром.

5Убедитесь. вналичиикомме,гдеуказаназт вашриевначы нияй

програиспользуемыхи етодов.

Лабораторнаяработа№2

:Основыобъектно

-ориентированного

программирования

 

 

Javaпозволяетисп бъектыльзовать.Вданнойла

 

бораторнойработе

необходимоиспоклпоассыодномуьзнафв,чайлтописатьобы,какэти

 

 

объектыработают.Воткоддляпростогокласса,которыйпредставляет

 

 

двумернуюточку:

 

 

/ **

 

 

*двумерныйклассточки.

 

 

**/

 

 

public class Point2d {

 

 

/ координата** X **/

 

 

private double xCoord;

 

 

/** координата Y **/ private double yCoord;

/Конструктор** инициализации**/

public Point2d ( double x, double y) { xCoord = x;

yCoord = y;

}

/ Конструктор** поумолчанию. **/ public Point2d () {

//Вызовитеконструктордвумяп араметрамиопределитеисточник. this(0, 0);

}

/** Возвращение координаты X **/ public double getX () {

return xCoord;

}

/** Возвращение координаты Y **/

public double getY () { return yCoord;

}

/** Установка значения координаты X. **/ public void setX ( double val) {

xCoord = val;

}

/** Установка значения координаты Y. **/ public void setY ( double val) {

yCoord = val;

}

}

СохраданкодвфайленитеыйсименемPoint2dсогласно.java,

требованJavaкименамклассовименамямфайлов.

Экземпляркласса можнотакжесоздать,вызвавлюбойреализованных конструкторов,например:

Point2d myPoint = new Point2d ();//создает точку (0,0)

Point2d myOtherPoint = new Point2d (5,3);//создает точку (5,3) Point2d aThirdPoint = new Point2d ();

Примечание: myPoint !=

aThirdPoint,несмотрянаточтоихзначения

равны.Объясняэт,емчтооправенсттсяратор==иегоин,в(аерсия

оператор неравенства!

=)сравссылкинаобъива.Другимиесловамикты, ==

операторвернетtrue,еслидвессылкиуказываютнаодинтотже

объект.В

данномслучаеmyPointи aThirdPointссылнараобъектызныеютсякласса

 

Point2d,поэтомуопесравненияцияmyPointвернетfalse,== aThirdPoint

несмотрянато,чтоихзначтеж!ения Длятого,чтобыпроверитьравнылисамизн,нечссылки,ния

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

Рекомендации припрограммировании

Стильпрограммированияявляенеочастьюсяъемлемойприсоздании

 

программногообеспечения.Присо

 

зданприбольшаяложенийчастьвремени

ухнаодиттладкупрограммы.Читаемыйкодиспользованиекомментариев

 

немпозволяютсэконвремяпритладкепрограммыить.

 

 

CS11 - хорвозможностьшаяизучитьиспользоватьхорошийстиль

 

коди.Прчемованияжде

приступитькзаданию,изучиинстCS11рукциие

Java НаStyleс йтеclusterCSестьпрограммаGuidelinesпроверкистиля, .

 

 

которпроавашнализякодпроиопроблемахнформирует.

 

 

Вашизадачи:

 

 

1. СоздайтеновыйклассPoint3dдляпредсточекв рехмернавления

ом

Евклидовпространстве.Не реализоватьбходимо:

 

 

созданиеновогообъPoint3dтремяктазначениямисплавающей точкой(double);

созданиеновогообъPoint3dсоктазн чениями(0.по0, 0.0, 0.0)

умолчанию,

 

возмполученияжноизменвсехтртьзначниях

енийпо

отдельности;

 

методдлясравнени

я значенийдвухобъектовPoint3d.

Нельзяпредоставлятьнепосредсквнутэлементампвренныйим

объектаклассаPoint3d .

 

2. ДобанометодвыйьтеdistanceTo,которыйвкачествепараметра

принимаетдругойобъектPoin

t3d,вычирасмеждустояниеляетдвумяточками

сточностьдвухзнаковпослезапятойи озвращполучензначе. етноеие

 

3. СоздайтедругкласспназваниемLab1,которыйбудетсодержать статическийметодПомнитеmain,чтометод. долженmainбыть

общедоступным (public)свозвращзначениемvoid,вкачествеемым аргуменприниматьдолженс року(String)Этотклассдолжениметь.

следфующуюнкциональность:

Ввкоодтрточекдинатех,находящихсяв рехмерномпространстве.

СозданобъектовтрехипаPoint3dнао

 

снованииполучеданных. ных

(Пред,чтполввьзагаетсякоррдитваданные.)ктныель

 

 

СоздайвторойстаметодическийcomputeArea,которыйпринимает

 

триобъектатипаPoint3dвычисляетплощадьтреугольника,образованного

 

этимиточками. Выможете(исп

 

ользформулуГеронавать.Верните)

получившеесязначениеплощадиформтипаdoubleте .

 

 

Наосновеполучеданныхисиспользованиемныхреализованного

 

алгоритмапосчитайтеплощадьвыведитеполучзначепользователюн. оеи

 

ПередвызовметcomputeAreaодам

проверьтенаравенствозначений

всехтрехобъектовPoint3dЕслиоднаизточекравна.другой,товыведите

 

соответствующеесообщениепользоватеневычисплощадь. яйтею

 

4. Скомпилируйобаисходныхфайлавмес: те

 

javac Point3d.java Lab1.java

 

изатемзапустит

епрограммуLab1,тестируяеенесколькимиобразцами

треугольников.

 

 

Лабораторнаяработа№3:АлгоритмA* («A star»)

Есливыкогда

-нибудьигрвкакуюли

ибонагрукомпьютеренаоснове

карт,товы,вероятно,сталкивалисьорганамикомпьютерногоуправлен

ия,

которыеумеютсамостоятельнорассчитыватьпутьизпунктаА Б.На

 

самделеэтомбычнаяраспространеннаяпроблемакаквиграх,таквдругих

 

видахпрограммногообеспечения

 

- поискпуначальногот местоп ложения

допунктаназначсуспенияшн

 

ымпреодолениемпрепятствий.

Одиноченьширокоспоалгоритмьзуемыйдлятакродапр блемы

 

называютА*произносится( "A

 

-star")Онявляетсянаиболее. эффективным

алгоритмомдляпоискапутивкомпрогрьютерн.Концепцияалгммейритма

 

довольнопроста,

ачсисходналгоритмнаямест,оположенияпостепенно

стрпуоисхитьтодочкиместанойазначения,используянаикратчайший

 

пу,чтсдеьобыследующийатьшаг.Этогарантирбудет,чтоп путьлный

 

такжеоптимальным.

 

 

Вамнепридетсяреализовывать

лгоритмА*;этобылоужесделаноза

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

 

чтобыэкспериментироватьэтималгоритмом:

 

Рисунок5Пользовате.1. интерфейсдляработыльскгорA*и.йтмом