2008/09/23
- Извънредните упражнения са в четвъртък 13.30 в P7.
- Условията за кредит са дадени в първата презентация.
- Всеки ученик трябва да участва само в едно практическо упражнение и теоретично упражнение
компютърни упражнения
- Понеделник, 7.20, P3
- Петък, 9.00, P3
- упражнението в петък в 14.00 часа е отменено поради липса на интерес.
условия за кредит
- участие в практически упражнения (20%)
- домашна работа (веднъж за две упражнения) (30%)
- окончателен проект (30%)
- тест след практика за наследственост (20%)
Упражнение 1 (17 септември 2008 г.)
Въведение в Java. Класове и обекти. Обектите имат състояние (променливи на екземпляра) и поведение (методи).
Упражнение 2 (1 октомври 2008 г.)
Променливи на частния екземпляр. Геттери и сервизи. Претоварени методи. Конструктори. Полета и списъци. ToString (), equals () и hashCode () методи .
Упражнение 3 (8 октомври 2008 г.)
Представяне на данни. Препратки, нула. Пакети. Изключения.
Упражнение 4 (15 октомври 2008 г.)
Състав и наследственост. Методи за наследяване и припокриване. Полиморфизъм на примера. Абстрактни класове и методи.
Упражнение 5 (22 октомври 2008 г.)
Модификатори на видимостта. Наследяване на променливи на екземпляра. Наследяване на конструктори. Повторно печатане. Изключения II. Презентация
Упражнение 6 (29 октомври 2008 г.)
Изключения III. Изключения по време на изпълнение. Хвърляне на изключения. Презентация
Упражнение 7 (5 ноември 2008 г.)
Изключения IV - наследяване при изключения и изключения при наследяване. Interfejsy. Статични методи и променливи. Презентация
Упражнение 8 (12 ноември 2008 г.)
Упражнение 9 (21 ноември 2008 г.)
Упражнение 10 (28 ноември 2008 г.)
Графични потребителски интерфейси в Swing 2 - мениджъри за оформление. % red% Също така съдържа слайдове, които не са били на лекцията. Презентация PDF презентация
Упражнение 11 (10 декември 2008 г.)
Упражнение 1 (29 септември 2008 г.)
Луд учен прави различни експерименти с риби в лабораторията си. Купува няколко аквариума, в които използва един вид риби. Всеки аквариум има отделен експеримент (облъчване с радиация от CRT монитор, позволяване на MC Erik и Barbara или Immortal, хранене на бързо хранене ...). След приключване на експеримента могат да се случат следните неща:
- експериментът беше успешен, рибата се умножи два пъти
- експериментът е неуспешен, половината от населението е изчезнало
- експериментът не е оказал ефект върху популацията, нищо не се е случило. Експериментите се провеждат в кръгове. Лудият учен ще извърши по един експеримент за всеки аквариум и ще ги оцени, след като завърши експериментите върху аквариумите. След това провежда нов експеримент.
Освен това се взема предвид капацитетът на аквариума. Ако в аквариума е останала само една риба, популацията ще изчезне. Ако броят на рибите надвишава капацитета на аквариума, популацията ще намалее до една четвърт.
Проектирайте подходящ обектен модел и внедрете подходящи класове, които ще съответстват на тази информационна система - т.е. те ще симулират експеримент върху няколко аквариума.
Упражнение 2 (6 октомври 2008 г.)
Вместо абстрактни риби, които са представени в аквариума по брой, ние искаме да запишем конкретни индивиди. Сменете аквариума, така че да можем да видим конкретни риби в него. Променете също експериментите, за да намалите/увеличите популацията на рибите.
- Създайте клас Fish с тегло, размер, вид и идентификатор.
- Създайте метод за подаване (), който произволно променя теглото и размера на индивида. Теглото може да се увеличи със стойност между нула и половината от първоначалното тегло. Размерът може да бъде увеличен със стойност между нула и четвърт от първоначалния размер.
- Дръжте хората в аквариума в ArrayList. Оставете експериментите да изхвърлят рибата от списъка или да я добавят към списъка.
- Добавете конструктор към клас Rybicka, който задава вида риба и задава други стойности автоматично (име) или произволно (тегло и размер).
- Подобрете експеримента, така че когато създавате нови индивиди, той случайно идентифицира двама, които ще бъдат родителите на новия индивид. (Нека рибните видове да бъдат създадени от имената на видовете на родителите си.) Уверете се, че рибата може да помни родителите си.
Изпратете задачата в ZIP файл с име name2 (пример: novotnyr2-zip) до 12 юни по неделя по имейл.
Упражнение 3 (13 октомври 2008 г.)
Програмирайте симулатор на машина на Тюринг.
Машината на Тюринг е, свободно казано, теоретичен модел на компютър, който ви позволява да симулирате работата на всеки алгоритъм. Има няколко варианта на модела, но ще използваме следното: Машината на Тюринг се състои от
- безкрайна лента, която е разделена на кутии. Лентата е еднопосочно безкрайна, така че има начало и безкрайна дължина. Всяко поле може да има 0 или 1.
- глава, която се движи над лентата. Във всеки един момент главата е над едно поле на лентата. Главата може да прочете стойност от поле и да напише нова стойност към него.
Машината на Тюринг може да бъде в едно от състоянията, които са важни при нейното програмиране. Програмата за машината на Тюринг представлява набор от инструкции, които са в следната форма:
Инструкцията означава, че ако машината на Тюринг е в дадено състояние и главата е на полето с прочетения символ, първо трябва да напише нов символ на полето и след това да премести главата наляво или надясно към следващото поле.
Пример за инструкция е q_0 0 1 q_1 R. Това означава, че ако машината на Тюринг е в състояние q_0 и главата чете символ 0, тя трябва да напише символ 1 в полето, да премине в състояние q_1 и да се премести надясно (R = дясно, дясно).
Пример за инструкции за машина на Тюринг, която произвежда последователно нули и единици (до безкрайност) на лента, е:
Такава машина на Тюринг няма да спре. В началото е в състояние q_0, отчита 0 от лентата, записва 1 и премества главата си надясно и преминава в състояние q_1. В следващата стъпка той чете 0, пише 1, премества главата надясно и преминава в състояние q_0. Състоянията q_0 и q_1 се редуват помежду си (в състояние q_0 пишем единици, а в състояние q_0 пишем 0). Имайте предвид, че инструкциите не се изпълняват отгоре надолу, както в класическата програма на Java, а въз основа на състоянието на машината на Тюринг.
Друг пример за машина на Тюринг е машина, която записва три единици на лента, е:
Когато приключи, машината на Тюринг остава в състояние q_3.
В симулатора представете състоянията с числа, 0 и 1 могат да бъдат представени чрез булева стойност. Главата може да се движи само надясно и наляво, което също може да бъде представено чрез булева стойност.
За простота засега разгледайте само онези набори от инструкции, които гарантирано ще спрат (т.е. няма да продължат безкрайно на лентата или няма да бъдат „стъпкани“ на място).
- Домашното задание с машината на Тюринг трябва да бъде изпратено до 25 октомври 2008 г.
Упражнение 4 (20 октомври 2008 г.)
Върнете се в аквариума от предишното упражнение. Референтното изпълнение на проекта е тук.
В аквариума искаме да регистрираме не само малки риби, но и други специални животни.
- Месоядните риби се характеризират с това, че се увеличават поне с половината от теглото си и най-много с двойно тегло при всяко хранене. Той също така увеличава дължината си поне с половината от дължината си и с максимум еднократно дължината си. В допълнение, месоядните риби ще изядат половината от обитателите на аквариума, когато се хранят.
- ускорителят на растежа, добавен към аквариума, ще накара експеримента винаги да увеличава популацията.
Освен това се уверете, че популацията на аквариума се зарежда от текстов файл.
Упражнение 5 (27 октомври 2008 г.)
Изпълнете предишната задача. Домашното трябва да бъде изпратено по имейл.
Упражнение 6 (4 ноември 2008 г.)
Искаме да добавим различни декоративни играчки към аквариума - камъни, растения, пластмасова кула ... Декоративните неща нямат ефект върху експериментите, те просто заемат място. Пример: печката заема място за 2 риби. Осигурете подкрепа за декоративни елементи за аквариума.
Заредете декоративни предмети от файл.
Справяйте се с изключенията по време на проекта разумно. Досега условията за грешки са изброени в блок за улов на конзолата. Помислете и преработете обработката на грешки.
Упражнение 7 (10 ноември 2008 г.)
Искаме да извършим различни статистически данни за аквариумни риби след края на експеримента: избройте рибите по тегло, според индекса на телесна маса, размера и т.н. Ние също искаме да намерим най-голямата и най-малката риба. Осигурете поддръжка за тази функционалност.
Да се върнем към машината на Тюринг. Разработете разумно обработване на изключения на машината на Тюринг и осигурете поддръжка за програми, които не спират или не стъпкват на място.
Упражнение 8 (24 ноември 2008 г.)
Графичен потребителски интерфейс. Изтеглете скелета на компонентите на GUI: Тестер.
Понастоящем формулярът има панел (JPanel) и два бутона (JButton): за зареждане и за стъпка на експеримента.
Изпълнете следната функционалност:
- бутонът за зареждане зарежда набор от риба от файла при натискане (зареждането трябва да се извърши). За всяка риба той създава по един JButton в панела в произволна позиция. Уверете се, че бутоните са видими. Панелът е с размери 625 x 400 пиксела.
- бутонът стъпка стартира една стъпка от експеримента. След това коригирайте броя на бутоните: ако има повече риби, добавете бутони. Ако рибата е изчезнала, премахнете съответните бутони.
след като щракнете върху бутона, съответстващ на рибата, покажете кратка информация за нея (име, родители, ръст, тегло). За да направите това, използвайте диалоговия прозорец за съобщения по аналогичен начин на:
Изпратете решението по имейл до 7 декември 2008 г.
Упражнение 1 (1 октомври 2008 г.)
Алгебристът иска да чете матрици от текстов файл и иска да може да ги записва в конзола и да ги записва във файл. Освен това той иска да може да ги добавя и умножава.
Създайте класове и подходящи методи.
Работата с методи за въвеждане и извеждане е отделна статия.
Упражнение 2 (9 октомври 2008 г.)
Компанията Prachy s.r.o. той иска да печели от машинации за обменни курсове, използвайки Интернет. Целта им е да следят обменните курсове на няколко банки всеки ден и да открият най-изгодния обменен курс за всяка валута за продажба и покупка на чуждестранна валута.
Създайте информационна система, която заобикаля обменните курсове на банките и намира най-ниската продажна цена и най-високата покупна цена за всяка валута. Обменните курсове могат да бъдат намерени в Интернет или да бъдат изтеглени от файл.
В началото предполагаме, че има само една банка, Националната банка на Словакия, чиито рискови курсове са на адрес http://www.nbs.sk/KL/KLSL2008/KL081009.SDF.
Създайте информационна система, която поддържа извличането на билети от различни източници в различни формати и ви позволява да проследявате развитието на курса във времето.
Упражнение (20 ноември 2008 г.)
Попълнете GUI въз основа на скелета на приложението. Уверете се, че данните се четат от четеца.