Основы_программирования_Java_03_2014_2_зан.ppt
- Количество слайдов: 32
Основы программирования на Java Занятие 2. GUI приложения на Java. Window. Builder. Стандартные типы данных. Циклы while. Строки, конвертация строк в числа. Власенко Олег Федосович
Window. Builder – простейшее приложение
Window. Builder – создание окна приложения 1. Создать новый проект Proj 2: Package Explorer -> Правая кнопка мыши -> МенюNewJava Project 2. Создать окно приложения Lec 2 App 0 Package Explorer -> Проект Proj 2 Правая кнопка мыши -> МенюNewOther… -> NewWindow. BuilderSwing DesignerApplication Window -> Next -> Name=“Lec 2 App 0”
Добавление контролов (элементов GUI) 1. 2. 3. 4. 5. 6. Добавить null Layout Добавить метку (lbl. New. Label) Конвертировать ее из локальной в поле Добавить кнопку «Кнопка 1» (button) Добавить кнопку «Кнопка 2» (button_1) Добавить обработчик на «Кнопка 1» - к метке lbl. New. Label дописать «+1» String s = lbl. New. Label. get. Text(); lbl. New. Label. set. Text(s + "+1"); 7. Добавить обработчик на «Кнопка 2» - метке lbl. New. Label присвоить строку « 0» lbl. New. Label. set. Text("0"); 8. Запуск на выполнение
GUI приложение с вводом Создать приложение с полем ввода (N), вычисляющее факториал и выводящая его в другое поле (не редактируемое).
Цикл с предусловием while (условное_выражение) { Действие; }
Пример i = 1; while (i <= 10) { System. out. print(i + " "); i = i + 1; }
Создание окна приложения 1. Создать окно приложения Lec 2 App 1 Package Explorer -> Проект Proj 2 Правая кнопка мыши -> МенюNewOther… -> NewWindow. BuilderSwing DesignerApplication Window -> Next -> Name=“Lec 2 App 1”
Добавление контролов (элементов GUI) 1. 2. 3. 4. 5. 6. 7. 8. Добавить null Layout Добавить метку JLabel «N=» Добавить поле для редактирования JText. Field Name=“text. Field. N” Добавить кнопку JButton «Подсчитать!» Name=“button. Calculate” Добавить метку JLabel «F=N!=» Добавить поле для редактирования JText. Field Name=“text. Field. F” Свойство text. Field. F. editable = false Добавить обработчик на кнопку «Подсчитать!» - прочитать из text. Field. N число N, вычислить в цикле факториал f, вывести f в поле text. Field. F (код на следующем слайде) 9. Запустить 10. Трассировка
Получение числа из контрола int n = 0; try { String str. N = text. Field. N. get. Text(); n = Integer. parse. Int(str. N); } catch (Number. Format. Exception ex) { text. Field. F. set. Text(ex. get. Message()); return; }
Вычисление факториала и вывод значения int f = 1; int i = 1; while (i <= n) { f = f * i; i++; } String str. F = "" + f; text. Field. F. set. Text(str. F);
Стандартные типы в Java
Целые типы Название Длина байт Область значений byte 1 -128. . 127 short 2 -32. 768. . 32. 767 int 4 -2. 147. 483. 648. . 2. 147. 483. 647 long 8 -9. 223. 372. 036. 854. 775. 808. . 9. 223. 372. 036. 854. 775. 807 (примерно 10^19) char 2 'u 0000'. . 'uffff', или 0. . 65. 535
Вещественные типы Название float double Длина байт Область значений 4 3. 40282347 e+38 f ; 1. 40239846 e-45 f 8 1. 79769313486231570 e+308 ; 4. 94065645841246544 e-324
Типы в действии значение факториала хранить в переменных разных типов – попробовать по очереди: byte f; f = (byte) (f * i); short f; f = (short) (f * i); int f; f = f * i; long f; f = f * i; float f; f = f * i; double f; f = f * i; char c; f = (char)(f * i); System. out. print((int)f + "n"); String str. F = "" + (int)f; text. Field. F. set. Text(str. F); Трассировка выполнения – посмотреть, что происходит с переменной f при переполнении
Eclipse Перспективы: • Java (default) • Debug Управление перспективами: • Close All Perspectives • WindowOpen PerspectiveOther Виды - WindowShow view: • Console • Package Explorer (Java) • Debug (Debug) • Variables (Debug) • Expressions (Debug)
Трассировка циклического алгоритма На примере вычисления факториала изучаем трассировку циклов
Практика по циклам:
Задача 1 - решение Вывести в консоль числа от 1 до 10. Использовать цикл while. public static void main(String[] args) { int a = 1; while (a <= 10) { System. out. printf("%d ", a); a = a + 1; } System. out. println(); }
Задача 2 Вывести в консоль числа от 100 до 10 с шагом 10. Использовать цикл while. Вывод: 100 90 80 70 60 50 40 30 20 10
Задача 2 - решение Вывести в консоль числа от 100 до 10 с шагом 10. Использовать цикл while. public static void main(String[] args) { int a = 100; while (a >= 10) { System. out. printf("%d ", a); a = a - 10; } System. out. println(); }
Задача 3 Вывести в консоль числа 1 2 4 8 16 … 1024. Каждое следующее число вычисляется по формуле A = A * 2; Использовать цикл While. Вывод: 1 2 4 8 16 32 64 128 256 512 1024 Дополнительное задание: Переделать вывод с консоли на вывод в контрол редактирования
Задача 4 Вывести в консоль числа 1 4 9 16 25 (всего 10 чисел). Каждое следующее число вычисляется по формуле A = I * I, I = I + 1; Использовать цикл While. Вывод: 1 4 9 16 25 36 49 64 81 100 Дополнительное задание: Переделать вывод с консоли на вывод в контрол редактирования
Алтернативный вариант: Задача A 1 Написать программу, производящую разложение натурального числа на простые множители http: //ru. wikipedia. org/wiki/%D 0%9 F%D 0%B 5%D 1%80%D 0%B 5%D 0 %B 1%D 0%BE%D 1%80_%D 0%B 4%D 0%B 5%D 0%BB%D 0%B 8%D 1% 82%D 0%B 5%D 0%BB%D 0%B 5%D 0%B 9 Ввод: 24 Вывод: 24 = 1 * 2 * 2 * 3
Алтернативный вариант: Задача A 2 Написать программу, вычисляющую корень квадратный при помощи итерационной формулы Герона с заданной точностью http: //ru. wikipedia. org/wiki/%D 0%98%D 1%82%D 0%B 5%D 1%80%D 0% B 0%D 1%86%D 0%B 8%D 0%BE%D 0%BD%D 0%B 0%D 1%8 F _%D 1%84%D 0%BE%D 1%80%D 0%BC%D 1%83%D 0%BB%D 0%B 0_ %D 0%93%D 0%B 5%D 1%80%D 0%BE%D 0%BD%D 0%B 0 (рекомендуется использовать do while). Ввод: 25 0. 001 Вывод: 5. 00001
Домашнее задание 1. Установить Window. Builder Качать отсюда : http: //eclipse. org/downloads/download. php? file=/window builder/WB/release/R 201309271200/WB_v 1. 6. 1_Update Site_for_Eclipse 4. 3. zip
Порядок установки Window. Builder: 1 Распаковать архив WB_v 1. 6. 1_Update. Site_for_Eclipse 4. 3. zip 2 Запустить Eclipse 3 Зайти в меню Eclipse менюHelpInstall new software… -> Откроется диалог “Install” 4 В диалоге “Install”нажать кнопку «Add» -> Откроется диалог “Add Repository” 5 В диалоге “Add Repository” нажать кнопку “Local…” 6 В открывшемся диалоге выбрать папку куда Вы в пункте 1 распаковали архив WB_v 1. 6. 1_Update. Site_for_Eclipse 4. 3. zip. Нажать кнопку OK -> диалог закроется 7 В диалоге “Add Repository” в поле Name введите “Window. Builder”, после чего нажмите кнопку OK -> диалог закроется 8 В диалоге “Install” в поле Name поставьте галочки для всех компонентов – Swing Designer, SWT Designer, Window. Builder Engine (можно нажать Select All) 9 Нажмите кнопку Next 10 И далее до победного конца!
Домашнее задание B Выберите один-два варианта из предложенных. Реализуйте два решения выбранных вариантов. 1. Консольное решение с использованием WHILE в рамках main() 2. GUI решение с использованием WHILE.
Домашнее задание B – варианты 1 -5 1. Найти произведение двух натуральных чисел A и B. Нельзя использовать операцию умножения. Нужно использовать операцию сложения и цикл. Пример: a = 3, b = 4 => a*b= 12 2. Найти натуральную степень натурального числа (а- основание n – показатель степени). Использовать операцию умножения и цикл. Пример: a = 3, n = 4 => a^n= 81 3. Банк начисляет на вклады 0, 95% каждый месяц(т. е. каждый месяц вклад увеличивается на 0, 95% без участия вкладчика). Начисленные проценты присоединяются к основному вкладу. Напечатать таблицу увеличения суммы вклада по месяцам на год. Сумма вклада вводится с клавиатуры. 4. Население города увеличивается на 3% каждый год. В 2013 году население города составляло 650000 человек. Напишите программу, которая выведет на экран предсказываемую численность населения города в каждом году, вплоть до 2040. 5. Банк начисляет на вклады 9% каждый год. Начисленные проценты присоединяются к основному вкладу. Напечатать таблицу увеличения суммы вклада на ближайшие 20 лет. Сумма вклада вводится с клавиатуры.
Домашнее задание B – варианты 6 -10 6. Подсчитать значение суммы первых N членов ряда: 1 + ½ + 1/3 + ¼ + 1/5 + … + 1/N 7. Подсчитать значение суммы первых N членов ряда: 1 + 1/(1!) + 1/(2!) + 1/(3!) + … + 1/(N!) 8. Напечатать таблицу перевода температуры из градусов по шкале Цельсия в градусы по шкале Фаренгейта для значений от 15 С до 30 С с шагом 1 С (перевод осуществляется по формуле F=1, 8 C+32) 9. В банк сделали 2 вклада – один вклад 100000 рублей под 10% годовых, второй 200000 рублей под 2% годовых. Вывести изменение суммы вкладов по годам до тех пор, пока сумма на первом вкладе не превысит сумму на втором. 10. Вычислите сумму первых членов арифметической прогрессии A 0 = 10, Ai+1 = Ai + 3. Не использовать формулы прогрессии, использовать цикл и пошаговое вычисление очередного члена ряда.
Литература http: //prostojava. blogspot. ru/p/java_01. html (типы данных) http: //sotnyk. com/2011/10/09/rukovodstvopo-eclipse-ide/ (Справочник по Eclipse) http: //window. edu. ru/resource/397/58397 (Справочник по Eclipse)
Спасибо за внимание! Власенко Олег Федосович E-mail: vlasenko. oleg@gmail. com Vk: vk. com/oleg. f. vlasenko Телефон: 8 902 246 05 47