80
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» О. Ф. Власенко Основы программирования на Java. Основные управляющие конструкции Методические указания к выполнению лабораторных работ по программированию для студентов направления 230100.62 «Информатика и вычислительная техника» Ульяновск УлГТУ 2015

Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

  • Upload
    others

  • View
    22

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования «УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

О. Ф. Власенко

Основы программирования на Java. Основные управляющие

конструкции

Методические указания к выполнению лабораторных работ по программированию для студентов направления 230100.62

«Информатика и вычислительная техника»

Ульяновск УлГТУ

2015

Page 2: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

УДК 681.3 (076) ББК 32.97 я 7

В58 Рецензент доцент кафедры вычислительной техники Ульяновского государственного технического университета, канд. техн. наук, Святов К. В.

Рекомендовано научно-методической комиссией факультета информационных систем и технологий

в качестве методических указаний

Власенко, О. Ф. В58 Основы программирования на Java. Основные управляющие конструкции: ……...методические указания. – Ульяновск : УлГТУ, 2015. – 80 с.

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

Рассмотрены основные управляющие конструкции языка Java: развилки – полные, усеченные и вложенные, циклы – do while, while, for, вложение циклов друг в друга. Управляющие конструкции продемонстрированы подробными блок-схемами.

Дана минимально необходимая для студентов информация по классам, методу main, логическим операциям, по вводу и выводу в консоль, по обработке исключений. Подробно рассмотрены вопросы работы в среде Eclipse – создание проекта, создание класса, выполнение программы, отладка линейного кода, отладка развилок и циклов.

В методические указания включено большое количество примеров, а также варианты для трех работ: A – развилки, B – циклы, C – вложенные циклы.

Указания могут быть использованы студентами, изучающими дисциплины «Информатика», «Программирование на языках высокого уровня» при изучении Java как второго языка программирования.

Работа подготовлена на кафедре «Вычислительная техника».

УДК 681.3 (076) ББК 32.97 я 7

© Власенко О.Ф., 2015 © Оформление. УлГТУ, 2015

Page 3: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

3

СОДЕРЖАНИЕ ВВЕДЕНИЕ .................................................................................................................................. 5

СОЗДАНИЕ ПЕРВОЙ ПРОГРАММЫ НА JAVA В СРЕДЕ ECLIPSE ............................................... 7

Установка JDK и Eclipse ......................................................................................................... 7

JDK ...................................................................................................................................... 7

Eclipse ................................................................................................................................. 7

Первый запуск Eclipse ........................................................................................................... 7

“Hello World!” На Java ........................................................................................................... 9

Создание нового проекта ................................................................................................ 9

Создание класса ............................................................................................................. 11

Добавление вывода в консоль ...................................................................................... 13

Синтаксические ошибки Java в Eclipse .......................................................................... 15

Запуск программы на выполнение ............................................................................... 15

Работа с консолью в Eclipse ........................................................................................... 16

ЭЛЕМЕНТЫ ЯЗЫКА JAVA ДЛЯ НАПИСАНИЯ ПРОСТЕЙШЕГО КОДА ..................................... 17

Классы .................................................................................................................................. 17

Метод public static void main(String[] args) ........................................................................ 17

Вывод строки в консоль ..................................................................................................... 17

Комментарии ...................................................................................................................... 18

Объявление переменных ................................................................................................... 18

Стандартные типы данных ................................................................................................. 19

Вычисление математических формул .............................................................................. 20

Ввод строк через консоль .................................................................................................. 20

Конвертация строк в число (parseXxx()) и обратно (toString()) ....................................... 21

Пример – вычисление корней квадратного уравнения .................................................. 23

Запуск программы и ввод переменных через консоль .................................................. 24

Трассировка в Eclipse .......................................................................................................... 26

РАЗВИЛКИ ................................................................................................................................ 32

Развилки полные и усеченные .......................................................................................... 32

Пример – вычисление минимума из трех чисел ............................................................. 34

Вложенные развилки ......................................................................................................... 36

Пример с вложенными развилками ................................................................................. 37

Page 4: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

4

Пример с усеченными развилками ................................................................................... 39

Логические операции в Java .............................................................................................. 41

Обработка исключений ...................................................................................................... 42

Пример обработки исключений при чтении числа из консоли ................................. 42

Пример решения задачи A ................................................................................................. 43

Трассировка развилок в Eclipse ......................................................................................... 45

ЦИКЛЫ ..................................................................................................................................... 52

Цикл с постусловием do while ........................................................................................... 52

Трассировка цикла в Eclipse ............................................................................................... 53

Пример решения задачи B ................................................................................................. 56

Цикл с предусловием while ................................................................................................ 57

Пример с циклом с предусловием .................................................................................... 57

Вложенные циклы .............................................................................................................. 59

Цикл for ................................................................................................................................ 61

Пример решения задачи C с помощью цикла for ............................................................ 64

Пример решения задачи C с помощью цикла do while ................................................... 67

ВАРИАНТЫ ЗАДАЧ ................................................................................................................... 69

Варианты задачи A (развилки) .......................................................................................... 69

Общие требования ......................................................................................................... 69

Варианты ......................................................................................................................... 69

Варианты задачи B (циклы) ................................................................................................ 72

Общие требования ......................................................................................................... 72

Варианты ......................................................................................................................... 72

Варианты задачи C (вложенные циклы) ........................................................................... 75

Общие требования ......................................................................................................... 75

Общее задание ............................................................................................................... 75

ЗАКЛЮЧЕНИЕ .......................................................................................................................... 79

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ ........................................................................... 80

Интернет–ресурсы .............................................................................................................. 80

Книги .................................................................................................................................... 80

Page 5: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

5

ВВЕДЕНИЕ Одним из наиболее популярных языков программирования в

течение последних двух десятилетий является Java. Как глобальный мировой рынок труда, так и региональный Ульяновский, испытывает острую нехватку в квалифицированных Java программистах. В РФ язык Java широко используется как при создании мобильных приложений, так и при разработке ПО для предоставления госуслуг, для разработки корпоративных распределенных приложений, всевозможных порталов, систем управления бизнесом, и многого другого.

Кроме практического применения Java выгодно отличается своей простой объектно-ориентированной моделью, из-за чего его часто используют в качестве первого ООП языка при изучении основ программирования студентами младших курсов, а часто и школьниками.

Актуальность необходимости знакомства ИТ специалиста с Java не вызывает сомнений.

Существует множество источников для изучения Java – это и книги, и обучающие онлайн курсы, и многочисленные статьи по тем или иным вопросам на популярных интернет ресурсах. Но опыт автора показывает, что имеющиеся ресурсы не всегда помогают студентам второго семестра, изучающим программирование всего лишь полгода, разобраться в столь объемном и непростом языке. Книги, как правило, рассматривают слишком много вопросов, чаще всего очень поверхностно затрагивая вопросы старта в языке. Обучающие онлайн курсы, как правило, рассчитаны на самомотивированных людей – что справедливо для студентов далеко не всегда. Статьи на популярных ресурсах покрывают темы фрагментировано.

Поэтому в данных методических указаниях автором сделана попытка собрать воедино всю информацию, необходимую студенту второго семестра, изучающего курс «Программирование на языках высокого уровня», для того, чтобы эффективно освоить базовые элементы Java и начать использовать его для различных целей. Здесь собраны в одном месте минимально необходимая информация по синтаксису Java, информация по основам алгоритмизации, и дана пошаговая инструкция для применения среды разработки Eclipse. Данные методические указания можно применять как в процессе

Page 6: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

6

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

Методические указания разработаны в соответствии с программой «Программирование на языках высокого уровня» для студентов 1 курса направления подготовки 230100.62 «Информатика и вычислительная техника».

Выписка из ГОС ВПО направления подготовки 230100.62 «Информатика и вычислительная техника».

ОПД.Ф.05 Программирование на языке высокого уровня

основные этапы решения задач на ЭВМ; критерии

качества программы; жизненный цикл программы; постановка задачи и спецификация программы; способы записи алгоритма; программа на языке высокого уровня; стандартные типы данных; представление основных управляющих структур программирования; теорема структуры и структурное программирование; анализ программ; утверждения о программах; корректность программ; правила вывода для основных структур программирования; инвариантные утверждения; процедуры и функции; массивы; утверждения о массивах; записи; файлы; индуктивные функции на последовательностях (файлах, массивах); динамические структуры данных; линейные списки: основные виды и способы реализации; линейный список как абстрактный тип данных; модульные программы; рекурсивные определения и алгоритмы; программирование рекурсивных алгоритмов; способы конструирования и верификации программ.

Page 7: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

7

СОЗДАНИЕ ПЕРВОЙ ПРОГРАММЫ НА JAVA В СРЕДЕ ECLIPSE

Установка JDK и Eclipse

JDK JDK – это пакет Java разработчика. Без установки его на

компьютере невозможно писать программы на Java. Его актуальную версию (на ноябрь 2014 года) можно скачать по этой ссылке: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Eclipse Eclipse – это среда разработки, одна из наиболее популярных

при разработке на Java. 64-битную версия Eclipse для Windows64 можно скачать здесь: https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/luna/SR1/eclipse-java-luna-SR1-win32-x86_64.zip

Это не инсталлятор, а просто архив. Его нужно распаковать и поместить в папку, на которую у Вас есть права.

Первый запуск Eclipse

Чтобы запустить Eclipse, нужно запустить файл ECLIPSE_FOLDER\eclipse\eclipse.exe (где ECLIPSE_FOLDER – это папка, куда Вы распаковали Eclipse во время установки).

Page 8: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

8

После запуска вы увидите такое окно:

Рис. 1.1. Начало работы с Eclipse Закройте вкладку Welcome – для этого нажмите крестик. После

этого Eclipse перейдет в рабочий режим:

Рис. 1.2. Рабочий режим Eclipse

Page 9: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

9

“Hello World!” На Java

Создадим первую программу на Java, используя Eclipse.

Создание нового проекта Для начала создадим новый Java проект. Для этого нужно в Package Explorer нажать правую кнопку

мыши. Появится контекстное меню – как на рис. 1.3. Нужно выбрать пункт New, появится еще одно меню. В нем выбрать пункт Java Project:

Рис. 1.3. Создание нового проекта

Появится диалог «Create a Java Project» – как на рис. 1.4 ниже. Нужно ввести имя проекта – в примере введено HelloWorld. И затем нажать кнопку Finish:

Page 10: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

10

Рис. 1.4. Вводим имя проекта

В результате будет создан новый проект, и Eclipse перейдет в вид, похожий на этот:

Рис. 1.5. Проект создан

Page 11: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

11

Создание класса Код в Java пишется в классах. Чтобы создать класс внутри

нашего только что созданного проекта, в Eclipse нужно выбрать папку проекта src (исходные тексты) и поместить курсор над ней. Затем нажать правую кнопку мыши – появится контекстное меню. В нем выбрать New – появится еще одно меню. И в нем выбрать пункт Class. Рис. 1.6 ниже демонстрирует этот выбор:

Рис. 1.6. Создание класса

Откроется диалог Java Class, в котором Вам нужно ввести имя класса – в данном случае это Main, и поставить галочку в пункте «public static void main(String[] args)», а затем нажать Finish. Перед нажатием на Finish диалог будет выглядеть как на рис.1.7.

Page 12: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

12

Рис. 1.7. Класс создан

После нажатия на Finish Eclipse перейдет в такое состояние:

Рис. 1.8. Рабочее окно Eclipse с вновь созданным классом

Page 13: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

13

Добавление вывода в консоль Переходим в редактор текста Main.java (просто щелкнув левой

кнопкой мыши в соответствующую строку кода) и добавляем в метод main одну строку кода: System.out.println("Hello World");

Эта строка во время выполнения программы выведет в консоль текст "Hello World".

Eclipse после добавления этой строки будет выглядеть так:

Рис. 1.9. Вывод «Hello World!»

Комментарии из кода можно убрать, чтобы упростить восприятие текста программы.

После изменения текста программы все нужно сохранить. Для сохранения нажимаем Ctrl+S или выбираем пункт меню File/Save

Page 14: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

14

После этого текст программы будет следующий: public class Main { public static void main(String[] args) { System.out.println("Hello World"); } }

А Eclipse теперь будет выглядеть так:

Рис. 1.10. Убрали комментарии из кода

\

Page 15: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

15

Синтаксические ошибки Java в Eclipse Если в тексте программы есть ошибки (синтаксические), то ее

невозможно выполнить. Синтаксические ошибки в Eclipse выделяются красным цветом.

Сам ошибочный текст подчеркивается красной волнистой чертой. По левому и правому краю редактора размещаются иконки, при подведении к которым выдается информация об ошибках в данной строке. Ниже приведен рис. 1.11, где показана ситуация после добавления в текст программы трех пробелов в неправильных местах:

Рис. 1.11. Ошибки в Eclipse

Запуск программы на выполнение Если в тексте программы нет ошибок, то такую программу

можно выполнить. Чтобы запустить программу на выполнение, нужно нажать зеленую иконку Run, на рис. 1.12 ниже она обведена:

Page 16: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

16

Рис. 1.12. Запуск программы в Eclipse

Работа с консолью в Eclipse После выполнения программы в консоли появится текст “Hello

World”, вывод которого мы прописали в коде метода main:

Рис. 1.13. Консоль Eclipse

Поздравляем Вас! Вы только что успешно написали и выполнили первую

программу на Java!!!

Page 17: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

17

ЭЛЕМЕНТЫ ЯЗЫКА JAVA ДЛЯ НАПИСАНИЯ ПРОСТЕЙШЕГО КОДА

Классы

Java является объектно-ориентированным языком программирования высокого уровня. И весь код, который пишется на Java, пишется внутри одного из классов. Простейший вариант класса выглядит так: public class ClassExample { }

Public – в данном случае означает что этот класс может использоваться извне из любого другого класса.

Class – ключевое слово. ClassExample – название класса.

Метод public static void main(String[] args)

Любой класс в Java может содержать метод main. Именно этот метод вызывается, когда на выполнение запускается соответствующий класс. Такой метод называют точкой входа в программу.

Пустой метод main выглядит так: public static void main(String[] args) { }

Вывод строки в консоль

Для вывода в консоль можно использовать методы:

System.out.println(СТРОКА); System.out.print(СТРОКА); System.out.printf(ФОРМАТНАЯ_СТРОКА, ВЫВОДИМЫЕ_ПАРАМЕТРЫ);

Примеры использования методов для вывода будут показаны ниже.

Page 18: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

18

Заметим, что метод System.out.printf() очень похож на функцию printf() из языка Си. Для тех, кто знаком с Си, будет легко использовать эту функцию.

Комментарии

В Java используются 2 вида комментариев – блочный /* здесь пишется любой текст на одну или несколько строк */

и строчный // где пишется комментарий на одной строке.

Объявление переменных Язык Java является потомком языка Си, и Java полностью

позаимствовал из Си синтаксис объявления переменных: Тип_переменной имя_переменной;

Примеры объявления переменных:

int value_int; // Объявление переменной value_int double value_double; // Объявление переменной value_double String str; // Объявление переменной str int val1 = 1; // Объявление переменной val1 и ее инициализация

Page 19: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

19

Стандартные типы данных

Система стандартных типов Java приведена на рис. 2.1:

Рис. 2.1. Стандартные типы данных

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

Таблица 2.1 Целые типы данных

Название Длина байт Область значений 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 (примерно 1019)

char 2 '\u0000' .. '\uffff', или 0 .. 65.535

Таблица 2.2 Вещественные типы данных

Название Длина байт Область значений float 4 3.40282347e+38 .. 1.40239846e-45 double 8 1.79769313486231570e+308 .. 4.94065645841246544e-324

Page 20: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

20

Вычисление математических формул

Вычисление математических формул рассмотрим на простом примере – вычислении корней квадратного уравнения.

Напомним, что уравнение вида ax2 + 𝑏𝑥 + 𝑐 = 0 называется квадратным при a отличном от нуля. Способ получения корней этого уравнения, известный большинству российских выпускников школ, выглядит так:

Сначала вычисляется дискриминант 𝐷 = 𝑏2 − 4𝑎𝑐. Затем, если дискриминант не отрицательный, то вычисляются 2

корня:

𝑥1 = −𝑏+√𝐷2𝑎

,

𝑥2 = −𝑏−√𝐷2𝑎

. Объявим необходимые переменные для хранения аргументов и

результатов вычислений. double a, b, c; double D; double x1, x2;

Ввод коэффициентов a, b, c мы разберем позже. Код, вычисляющий дискриминант и сами корни, представлен

ниже: D = b * b – 4 * a * c; x1 = (–b – Math.sqrt(D)) / (2 * a); x2 = (–b + Math.sqrt(D)) / (2 * a);

Ввод строк через консоль

Чтобы в программе получить строку, введенную с консоли, требуется работать с System.in. Существует несколько способов работы с System.in. Сейчас мы разберем только один способ работы – через буферизированный читатель BufferedReader: //Создаем объект br для чтения данных из консоли BufferedReader br = new BufferedReader(new

Page 21: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

21

InputStreamReader(System.in)); //Читаем из консоли строку 1 String s1 = br.readLine(); //Читаем из консоли строку 2 String s2 = br.readLine(); //Читаем из консоли строку 3 String s3 = br.readLine();

Конвертация строк в число (parseXxx()) и обратно (toString())

Через консоль вводится текстовая информация – набор символов. Например, когда мы хотим ввести число 125, нам нужно ввести текст, состоящий из 3 последовательных символов «1», «2», «5». А чтобы из 3 символов собрать одно число, нужно применить конвертацию. В случае конвертации из текста в числа в Java применяют методы семейства parse. Например, вот так ранее введенные строки s1, s2, s3 превратятся в вещественные числа: // конвертируем введенные строки в вещественные числа a = Double.parseDouble(s1); b = Double.parseDouble(s2); c = Double.parseDouble(s3);

Для получения из строки вещественного числа используется метод Double.parseDouble(строка).

Для получения из строки целого числа используется метод Integer.parseInt(строка).

Аналогичные методы parseXxxx() существуют для других стандартных типов.

Когда требуется обратная конвертация – из чисел в строку, – чаще всего используют неявный вызов метода toString(), который вызывается всякий раз, когда требуется привести какой-либо тип к строке. Например, как здесь: // вывод значений корней System.out.println("x1=" + x1); System.out.println("x2=" + x2);

Page 22: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

22

Рассмотрим подробно код внутри println("x1=" + x1) По сути, выражение ("x1=" + x1) содержит операцию

конкатенации (склеивания) двух строк “x1=” и той, которая получится из x1.

Поскольку x1 имеет тип double, то чтобы получить из него строку, к нему неявно применяется конвертация. Выглядит на самом деле это так: “x1=" + Double.toString(x1));

Заметим, что метод toString() есть у каждого класса и типа Java, и поэтому любую переменную любого типа всегда можно автоматически конвертировать в строку. Но можно это сделать и вручную, как показано в примере ниже. Здесь вводятся целые числа N и M, вычисляется их произведение и выводится на экран. Например, при вводе N=2, M=5 будет выведена строка «P = 10»: // main() – точка входа в программу // throws IOException – сообщаем, что метод main() // может выбрасывать исключения ввода/вывода public static void main(String[] args) throws IOException { // Объявили переменные n и m int n, m; //Создаем объект br для чтения данных из консоли BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //Читаем из консоли N // выводим приглашение к вводу N System.out.print("Введите n: "); //Читаем из консоли строку String sN = br.readLine(); //конвертируем строку в число n = Integer.parseInt(sN); //Читаем из консоли M // выводим приглашение к вводу M System.out.print("Введите m: "); // Читаем из консоли строку String sM = br.readLine(); //конвертируем строку в число

Page 23: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

23

m = Integer.parseInt(sM); //Вычисляем произведение int p = n * m; //Готовим строку из числа p и выводим результат // Конвертируем целое число p в строку sP String sP = Integer.toString(p); // Выводим строку sP в консоль System.out.println("p = " + sP); }

Пример – вычисление корней квадратного уравнения

Соберем все касающееся вычисления корней квадратного уравнения вместе и приведем весь код, который по введенным значениям коэффициентов a, b, c вычисляет и выводит корни квадратного уравнения. // импорт=подключение необходимых классов import java.io.BufferedReader; import java.io.InputStreamReader; // класс программы public class Class2 { // main() – точка входа в программму // throws Exception – сообщаем, что метод main() // может выбрасывать исключения public static void main(String[] args) throws Exception { // объявляем все необходимые переменные double a, b, c; double D; double x1, x2; //Создаем объект br для чтения данных из консоли BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // Ввод A // выводим приглашение к вводу A System.out.print("A=");

Page 24: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

24

//Читаем из консоли строку String s1 = br.readLine(); // Ввод B // выводим приглашение к вводу B System.out.print("B="); //Читаем из консоли строку String s2 = br.readLine(); // Ввод C // выводим приглашение к вводу C System.out.print("C="); //Читаем из консоли строку String s3 = br.readLine(); // конвертируем введенные строки в вещественные числа a = Double.parseDouble(s1); b = Double.parseDouble(s2); c = Double.parseDouble(s3); // вычисление дискриминанта D = b * b – 4 * a * c; // вычисление корней x1 = (–b – Math.sqrt(D)) / (2 * a); x2 = (–b + Math.sqrt(D)) / (2 * a); // вывод значений корней System.out.println("x1=" + Double.toString(x1)); System.out.println("x2=" + x2); } }

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

Запускаем на выполнение эту программу. Когда она запустится, надо щелкнуть мышкой в консоль и

ввести значение A, как показано на рис. 2.2.

Page 25: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

25

Рис. 2.2. Ввод значения А

Затем нужно ввести значение B, затем значение C. После ввода C программа подсчитает корни и выведет их в

консоль. После окончания работы программы Eclipse будет иметь вид:

Рис. 2.3. Вывод корней квадратного уравнения

Page 26: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

26

Трассировка в Eclipse

Очень часто в процессе отладки программы помогает трассировка. Сейчас мы посмотрим, как трассировка выполняется в Eclipse.

Чтобы перейти в режим трассировки, нужно сначала поставить точку прерывания в тексте программы. В нашем примере поставим точку прерывания на 40 строку – строку, где производится конвертация ранее введенной строки s1 в переменную a.

Для установки точки прерывания нужно щелкнуть левой

кнопкой мыши левее номера строки и выбрать из контекстного меню пункт Toggle Breakpoint, как это показано на рис. 2.4 ниже:

Рис. 2.4. Точка прерывания

Page 27: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

27

После установки точки прерывания нужно запустить программу на выполнение в режиме Debug:

Рис. 2.5. Запуск программы в режиме Debug При первом запуске в режиме Debug Вы можете получить

подобное сообщение:

Рис. 2.6. Разрешаем доступ Eclipse в брандмауэре

Page 28: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

28

Выберите «Разрешить доступ». После ввода строк со значениями для a, b, c Eclipse выдаст Вам

запрос на изменение перспективы. Ответьте ему Yes. Также желательно поставить галочку на Remember my decision, чтобы Eclipse делал такое же изменение каждый раз – см. рис. 2.7 ниже:

Рис. 2.7. Запрос на изменение перспективы

После переключения в перспективу Debug вы увидите такой вид Eclipse:

Page 29: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

29

Рис. 2.8. Перспектива Debug в Eclipse

Теперь, чтобы трассировать (выполнять по шагам программу), нужно нажимать на клавиатуре F6 (Step Over – на рис. 2.9 помечено цифрой 1).

При пошаговом выполнении в Variables можно видеть текущее состояние переменных (цифра 2 на рис. 2.9), а в редакторе кода видеть, какая строка будет выполняться следующей (цифра 3 на рис. 2.9).

Рис. 2.9. Трассировка программы

Page 30: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

30

Пройдя по шагам всю программу и дойдя до последнего вывода в коде, Вы получите такой вид Eclipse:

Рис. 2.10. Завершение трассировки

После окончания трассировки нужно перейти в Java перспективу. Для этого можно зайти в меню и выбрать Window/Open Perspective/Java, как это показано на рис. 2.11.

Рис. 2.11. Переход в Java перспективу

Page 31: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

31

Снова наши поздравления – Вы выполнили трассировку Вашей программы в Eclipse!

Теперь, после первичного знакомства с Java и с Eclipse, мы

перейдем к изучению управляющих конструкций Java. Вас ждут 3 работы – A, B и C, выполняя которые Вы освоитесь в Eclipse, а Java для Вас станет хорошим знакомым, с которым можно решать любые задачи. Вы готовы перейти к следующему этапу? Тогда – поехали!!!

Первая работа A – в ней Вы напишите программу на Java, в

которой будут развилки, и в которой Вы попробуете все ранее рассмотренные инструменты Eclipse.

Page 32: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

32

РАЗВИЛКИ

Развилки полные и усеченные

Практически в каждом алгоритме есть несколько путей его выполнения. Тот или иной путь выбирается в процессе выполнения алгоритма в зависимости от условий. Например, если мы обратимся к кулинарии и рассмотрим рецепт приготовления блинчиков, то при приготовлении блинчиков один вариант рецепта используется, если есть кефир, другой – если нет кефира, но есть, например, сметана.

В программировании такие ситуации описываются при помощи развилки.

Типичная развилка выглядит в Java так: if (условное_выражение) { Действие_1 } else { Действие_2 }

В блок-схеме она выглядит так:

Рис. 3.1. Структура развилки

Пример – вычисление максимума из двух чисел – val1 и val2:

if (val1 > val2) { max_val = val1;

} else { max_val = val2; }

Page 33: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

33

В блок-схеме это выглядит так:

Рис. 3.2. Блок-схема вычисления максимума из двух чисел

Развилка, в которой есть и ветка if, и ветка else, называется полной.

Развилка, в которой есть только ветка if, а ветки else нет, называется усеченной развилкой. Код усеченной развилки в Java выглядит так: if (условное_выражение) {

Действие_1 }

Блок - схема для усеченной развилки выглядит так:

Рис. 3.3. Структура усеченной развилки

Page 34: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

34

Обратите внимание, что в блок-схеме ЕСТЬ ветка МИНУС, но на ней НЕТ ДЕЙСТВИЙ. При этом в тексте программы else нет совсем. Это важный момент!

Пример – вычисление минимума из трех чисел

Ниже представлена программа, которая находит и выводит минимальное из трех чисел. В реализации используются усеченные развилки. public class Test1 { public static void main(String[] args) { int val1 = 9; int val2 = 10; int val3 = 6; int min_val = val1; // берем за минимальный число val1 if (val2 < min_val) { // если второе меньше min_val = val2; // то теперь минимальное val2 } if (val3 < min_val) { // если третье меньше min_val = val3; // то теперь минимальное val3 } System.out.println("min_val = " + min_val); } }

Page 35: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

35

Блок-схема для программы целиком выглядит так:

Рис. 3.4. Блок-схема программы поиска минимума из трех чисел

Page 36: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

36

Вложенные развилки

Одна развилка разбивает программу на 2 пути выполнения. Часто путей выполнения программы больше, чем два. Чтобы выбрать один из них, требуется либо набор идущих друг за другом усеченных развилок, как в предыдущем примере, либо вложенные развилки.

Типичная вложенная развилка выглядит так: if (условное_выражение1) { Действие_1 } else { if (условное_выражение2) { Действие_2 } else { Действие_3 } }

В сокращенной записи используется последовательность else if в одной строке: if (условное_выражение1) { Действие_1 } else if (условное_выражение2) { Действие_2 } else { Действие_3 }

Блок-схема для вложенной развилки выглядит так:

Рис. 3.4. Структура вложенной развилки

Page 37: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

37

Пример с вложенными развилками

Ниже представлена программа вычисления размера штрафа за превышение скорости, реализованная с использованием вложенных развилок: public class Test2 { public static void main(String[] args) { int v_max = 40; // задано ограничение скорости int v = 121; // задана скорость нарушителя if ( v <= v_max) { System.out.println("Все по правилам!"); } else if (v <= v_max + 20) { System.out.println("не штрафуется"); } else if (v <= v_max + 40) { System.out.println("500"); } else if (v <= v_max + 60) { System.out.println("1000-1500"); } else if (v <= v_max + 80) { System.out.println("2000-2500"); } else { System.out.println("5000"); } } }

Page 38: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

38

Блок-схема для этой программы выглядит так:

Рис. 3.5. Блок-схема программы вычисления размера штрафа (вложенные развилки)

Page 39: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

39

Пример с усеченными развилками

Ниже представлена программа вычисление размера штрафа за превышение скорости, реализованная с использованием усеченных развилок: public class Test2_1 { public static void main(String[] args) { int v_max = 40; int v = 130; if ( v <= v_max) { System.out.println("Все по правилам!"); } if ((v > v_max) && (v <= v_max + 20)) { System.out.println("не штрафуется"); } if ((v > v_max + 20) && (v <= v_max + 40)) { System.out.println("500"); } if ((v > v_max + 40) && (v <= v_max + 60)) { System.out.println("1000-1500"); } if ((v > v_max + 60) && (v <= v_max + 80)) { System.out.println("2000-2500"); } if (v > v_max + 80) { System.out.println("5000"); } } }

Page 40: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

40

Блок-схема для варианта с усеченной развилкой:

Рис. 3.6. Блок-схема программы вычисления размера штрафа (усеченные развилки)

Page 41: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

41

Логические операции в Java

В примере с усеченными развилками используется операция «&&». Что это такое?

Это одна из логических операций. Вот список всех логических операций, которые могут использоваться для формирования условия развилки:

Таблица 3.1 Логические операторы

Оператор Описание & Логическое AND (И)

&& Сокращенное AND | Логическое OR (ИЛИ) || Сокращенное OR

^ Логическое XOR (исключающее OR

(ИЛИ)) ! Логическое унарное NOT (НЕ)

Из таблицы видно, что && – это операция «сокращенное AND».

Таблица 3.2

Таблица истинности логических операторов A В A OR B

| || A AND B & &&

A XOR B ^

NOT A !

false false false false false true

true false true false true false

false true true false true true

true true true true false false

В нашей задаче нам нужен именно AND, так как он позволяет

задать условие, при котором должны соблюдаться два ограничения ОДНОВРЕМЕННО. Например, максимально разрешенная скорость составляет v=40 км/ч, а водитель едет со скоростью 79 км/ч, тогда сработает условие, которое предписывает ему штраф в 500 рублей: if ((v > v_max + 20) && (v <= v_max + 40)) { System.out.println("500"); }

Page 42: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

42

Условие сработает, потому что обе части и (v > v_max + 20) и (v <= v_max + 40) истинны.

Если же скорость водителя будет, например, v = 150 км/ч, то условие (v > v_max + 20) будет истинно, но условие (v <= v_max + 40) ложно, и все условие в целом будет ложно.

Обработка исключений

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

В простейшем варианте использования он выглядит так: try { Строка_кода1_которая_может_выбросить_исключение; Строка_кода2_которая_может_выбросить_исключение; Строка_кодаN_которая_может_выбросить_исключение; } catch (ИМЯ_КЛАССА_ИСКЛЮЧЕНИЯ Объект) { Сюда_попадает_управление_когда_исключение_выброшено; } catch (ИМЯ_КЛАССА_ИСКЛЮЧЕНИЯ2 Объект2) { Сюда_попадает_управление_когда_исключение2_выброшено; }

Этого варианта конструкции try catch Вам будет достаточно для выполнения всех заданий из этих методических указаний.

Пример обработки исключений при чтении числа из консоли Ниже приведен пример ввода целого числа t с консоли и вывода

его снова в консоль – с обработкой всех возникающих исключений. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Test3 { public static void main(String[] args) { int t; try { // !!! Здесь может быть выброшено исключение // ввода-вывода

Page 43: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

43

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //Читаем из консоли строку // !!! Здесь может быть выброшено исключение // ввода-вывода String s = br.readLine(); //конвертируем строку в число t // !!! Здесь может быть выброшено исключение // неправильного формата числа t = Integer.parseInt(s); //Ловим исключения ввода-вывода } catch (IOException e) { //Выводим сообщение об исключении в консоль System.out.println("IOException: " + e.getMessage()); // завершаем работу программы return; //Ловим исключения неправильного формата числа } catch (NumberFormatException e) { //Выводим сообщение об исключении в консоль System.out.println("NumberFormatException: " + e.getMessage()); // завершаем работу программы return; } // Если исключений не было – дойдем до этого кода // и выведем введенное значение t System.out.println("t=" + t); } }

Пример решения задачи A Ниже приведено решение для 0 варианта задачи A. Вариант A.0 Для введенного числа t (температура на улице в конце января)

вывести прилагательное, характеризующее температуру качественно. Если t>–5, то вывести «Тепло».

Page 44: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

44

Если –5>= t > –20, то вывести «Нормально». Если –20>= t, то вывести «Холодно». Текст программы:

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class A_0 { public static void main(String[] args) { int t; System.out.print("Введите t: "); try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //Читаем из консоли String s = br.readLine(); //конвертируем строку в число t = Integer.parseInt(s); //Ловим исключения ввода-вывода } catch (IOException e) { //Выводим сообщение об исключении в консоль System.out.println("IOException: " + e.getMessage()); // завершаем работу программы return; //Ловим исключения неправильного формата числа } catch (NumberFormatException e) { //Выводим сообщение об исключении в консоль System.out.println("NumberFormatException: " + e.getMessage()); // завершаем работу программы return; } // собственно вывод «Тепло», «Нормально» и «Холодно» if (t >–5) { System.out.println("Тепло!"); } else if (t > –20) { System.out.println("Нормально!"); } else { System.out.println("Холодно!");

Page 45: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

45

} } }

Блок-схема программы:

Рис. 3.7. Блок-схема программы A.0

Трассировка развилок в Eclipse

Чтобы выполнить трассировку нашей программы нужно установить точки прерывания, где требуется. В нашем случае мы устанавливаем точку прерывания на 32 строке кода:

Page 46: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

46

Рис. 3.8. Ставим точку прерывания

Выбираем режим выполнения Debug:

Рис. 3.9. Выбор режима Debug

Page 47: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

47

Вводим значение t – в нашем случае –25:

Рис. 3.10. Ввод значения t=–25

Переключаемся в перспективу Debug. Чтобы диалог переключения не появлялся при каждом запуске программы в режиме трассировки, лучше выбрать пункт «Remember my decision», как показано на рис. 3.11.

Рис. 3.11. Ставим галочку, чтобы сообщение не появлялось снова

Page 48: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

48

После этого собственно можно приступить к трассировке. Обратите внимание на то, что трассировка возможна, только если в закладке Debug активным является именно отлаживаемый метод – в нашем случае main – это видно на рисунках ниже:

Рис. 3.12. Отлаживаемый метод активен

Рис. 3.13. Отлаживаемый метод не активен

Page 49: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

49

В Eclipse есть возможность просмотреть не только состояние переменных, но и любых выражений. Чтобы их просмотреть, нужно добавить к просматриваемым видам (Views) Expressions:

Рис. 3.14. Добавляем Expressions

В закладках появится Expression, в который можно добавлять любые выражения, в том числе те выражения, которые вычисляются в if – “t>–5”, “t>–20”:

Рис. 3.15. Добавляем выражения в Expressions

Page 50: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

50

При t = –25, программа зайдет только в блок последнего else:

Рис. 3.16. Трассировка программы

И в консоль будет выведено «Холодно»:

Рис. 3.17. Вывод строки «Холодно» в консоль

Page 51: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

51

Чтобы завершить отлаживаемое приложение, нужно выполнить команду Terminate:

Рис. 3.18. Выполнение команды Terminate

Eclipse после завершения отладки выглядит так:

Рис. 3.19. Eclipse после завершения отладки

Page 52: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

52

ЦИКЛЫ

Цикл с постусловием do while

Часто в алгоритме требуется выполнять какие-то действия несколько раз. В программе в таком случае используется цикл. Простейший цикл – цикл с постусловием. В Java такой цикл обозначается так: do { Действие; } while (условное_выражение);

На блок-схеме он изображается так:

Рис. 4.1. Структура цикла с постусловием

Рассмотрим использование цикла с постусловием на примере вычисления факториала.

Напомним, что факториал числа N можно вычислить как произведение натуральных чисел 1 * 2 * 3 * … * N–1 * N.

На Java код вычисления факториала через цикл с постусловием можно записать так: public class Test4 { public static void main(String[] args) { int n = 4; int f = 1;

Page 53: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

53

int i = 1; do { f = f * i; i = i + 1; } while (i <= n); System.out.println("f= " + f); } }

Блок схема для этой программы выглядит так:

Рис. 4.2. Блок-схема программы для вычисления факториала

Трассировка цикла в Eclipse

Рассмотрим трассировку цикла в Eclipse на примере факториала.

Page 54: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

54

Точку прерывания поставим на строку 9. В Expressions добавим все переменные (n, f, i) и условие продолжения цикла (i <= n). Логично, что тело цикла будет выполняться до тех пор, пока условие i<=n будет равно true.

Рис. 4.3. Трассировка цикла

Поскольку n = 4, i последовательно получит значения 1, 2, 3, 4. F будет вычислено последовательно f = 1, затем f = 1 * 1 = 1, f = 1*2 = 2, f = 2 * 3 = 6, f = 6 * 4 = 24. В итоге i станет равным 5, и только в этот момент условие продолжения станет равным false. В этот момент f = 24. Этот момент отображен на рис. 4.4. ниже:

Page 55: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

55

Рис. 4.4. Трассировка цикла

После этого программа выйдет из цикла и перейдет к выводу результата:

Рис. 4.5. Вывод результата вычисления факториала

Page 56: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

56

Пример решения задачи B

Рассмотрим реализацию задачи B.0 с помощью цикла do while. Задача B.0: Население города увеличивается на 3% каждый год. В 2013 году

население города составляло 650 000 человек. Напишите программу, которая выведет на экран предсказываемую численность населения города в каждом году, вплоть до 2040.

Код программы:

public class B_0 { public static void main(String[] args) { int year = 2014; int population = 650000; do { System.out.println("В " + year + " году в городе живет " + population); population = (population * 103) / 100; year++; } while (year <= 2040); } }

Блок-схема для этого кода выглядит так:

Рис. 4.6. Блок-схема программы подсчета населения

Page 57: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

57

Цикл с предусловием while

Код цикла с предусловием в Java выглядит так:

while (условное_выражение) { Действие;

}

Блок-схема цикла с предусловием выглядит так:

Рис. 4.7. Структура цикла с предусловием while

Пример с циклом с предусловием

Задача: ввести число. Найти сумму его цифр. Код решения этой задачи выглядит так:

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Test_while { public static void main(String[] args) { int number; // здесь будет оригинальное число System.out.print("Введите number (>0): "); try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = br.readLine();

Page 58: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

58

number = Integer.parseInt(s); } catch (IOException e) { System.out.println("IOException: " + e.getMessage()); return; } catch (NumberFormatException e) { System.out.println("NumberFormatException: " + e.getMessage()); return; } // Вычисляем сумму цифр int s = 0; while (number > 0) { // остаток от деления на 10 это последняя // цифра числа. Например: 129 % 10 = 9 int digit = number % 10; // к сумме добавляем только что полученную цифру s = s + digit; // отбрасываем последнюю цифру числа // Например: 129 / 10 = 12 number = number / 10; } System.out.println("Сумма цифр: " + s); } }

Page 59: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

59

Блок-схема для этого кода:

Рис. 4.8. Блок-схема программы подсчета суммы

Вложенные циклы

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

Page 60: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

60

Вкладывать друг в друга можно любые циклы (do while, while, for). Рассмотрим вложенные циклы на примере while.

Напишем код, формирующий такой узор из чисел: 5 4 5 3 4 5 2 3 4 5 1 2 3 4 5

Код:

int i = 5; // внешний цикл – формирует 5 строк while (i >= 1) { int j = i; // внутренний цикл – формирует строку из чисел while (j <= 5) { System.out.print(j + " "); j++; } System.out.println(); i--; }

Page 61: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

61

Блок-схема для этого кода выглядит так:

Рис. 4.9. Блок-схема программы, рисующей узор

Цикл for

Мы рассмотрели уже много циклических задач, и Вы заметили, что каждому циклу в коде предшествовало описание переменной – счетчика цикла, и ее инициализация (присваивание начального значения). В цикле эта переменная изменялась (очень часто +1 или –1 на каждом шаге), и условие цикла включало в себя проверку нахождения этой переменной в каких-то пределах (например, j <= 5).

Page 62: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

62

Часть кода, взятая из предыдущего примера, демонстрирует это: int j = i; // инициализация счетчика цикла while (j <= 5) { // условие продолжения цикла System.out.print(j + " "); j++; // изменение счетчика цикла }

Блок-схема для этого кода представлена на рис.4.10:

Рис. 4.10. Структура цикла for

Если Вы имеете дело с циклом с предусловием, и в нем

используется счетчик цикла, то в подавляющем большинстве случае вместо while можно использовать for, который записывается компактнее: for (int j = i; j <= 5; j++) { System.out.print(j + " "); }

Page 63: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

63

При этом блок-схема, описывающая код, будет иметь тот же самый вид, что и для цикла while:

Рис. 4.11. Соответствие элементов цикла for элементам блок-схемы Заметьте, что в цикле for счетчик цикла можно (и нужно!)

объявлять прямо внутри конструкции for! В этом случае счетчик будет существовать ТОЛЬКО внутри цикла, и будет недоступен после его окончания. Такой подход к созданию переменных упрощает создание больших программ, где очень много переменных.

Page 64: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

64

Пример решения задачи C с помощью цикла for

Вариант C.0. Нужно написать программу, формирующую и выводящую в

консоль узор из чисел по заданной схеме. Ввод: N = 5 Вывод: 5 4 5 3 4 5 2 3 4 5 1 2 3 4 5 Код программы:

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Test_for1 { public static void main(String[] args) { int n; System.out.print("Введите n: "); try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //Читаем из консоли String s = br.readLine(); //конвертируем строку в число n = Integer.parseInt(s); } catch (IOException e) { //Выводим сообщение об исключении в консоль System.out.println("IOException: "

Page 65: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

65

+ e.getMessage()); // завершаем работу программы return; } catch (NumberFormatException e) { //Выводим сообщение об исключении в консоль System.out.println("NumberFormatException: " + e.getMessage()); // завершаем работу программы return; } // Формируем узор for (int i = n; i >= 1; i--) { for (int j = i; j <= n; j++) { System.out.print(j + " "); } System.out.println(); } } }

Page 66: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

66

Блок-схема для этого кода:

Рис. 4.12. Блок-схема задачи С с циклом for

Page 67: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

67

Пример решения задачи C с помощью цикла do while Код программы:

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Test_do_while { public static void main(String[] args) { int n; System.out.print("Введите n: "); try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //Читаем из консоли String s = br.readLine(); //конвертируем строку в число n = Integer.parseInt(s); } catch (IOException e) { //Выводим сообщение об исключении в консоль System.out.println("IOException: " + e.getMessage()); // завершаем работу программы return; } catch (NumberFormatException e) { //Выводим сообщение об исключении в консоль System.out.println("NumberFormatException: " + e.getMessage()); // завершаем работу программы return; } // Формируем узор int i = n; do { int j = i; do { System.out.print(j + " "); j++; } while (j <= n);

Page 68: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

68

System.out.println(); i--; } while (i >= 1); } }

Блок-схема выглядит так:

Рис. 4.13. Блок-схема задачи C с циклом do while

Page 69: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

69

ВАРИАНТЫ ЗАДАЧ

Варианты задачи A (развилки)

Общие требования

При решении задачи A ОБЯЗАТЕЛЬНО нужно использовать вложенные развилки. Нельзя использовать массивы, циклы, собственные функции.

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

В задаче нужно написать программу, и подготовить отчет, в котором нарисовать (от руки) блок-схему для этой программы.

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

Варианты

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

Если t>–5, то вывести «Тепло». Если –5>= t > –20, то вывести «Нормально». Если –20>= t, то вывести «Холодно». 1. По введенному номеру месяца вывести его название (7 –

июль, 11 – ноябрь). 2. По введенному номеру определить цвет радуги (1 –

красный, 4 – зеленый и т. д.) 3. По введенному номеру вывести соответствующую ноту (2

– «ре», 4 – «фа» и т. д.). 4. По введенному номеру определить день недели (1 –

понедельник, 5 – пятница и т. д.). 5. Для введенного числа (от 1 до 5) вывести его название на

русском и английском языках (1 – “один/one”) .

Page 70: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

70

6. По введенному числу (от 1 до 10) вывести соответствующий числу элемент таблицы Менделеева (6 – С (Углерод), 8 – O (Кислород) и т. д.).

7. По коду региона вывести название региона. (для 6-8 регионов) (63 – Самарская область, 73 – «Ульяновская область» и т. д.).

8. По введенному номеру контакта USB вывести его название и цвет провода (1 – VCC/Красный, 4 – GND/Черный и т. д.).

9. По введенному номеру контакта VGA вывести название сигнала (1 – RED, 6 – RGND и т. д.).

10. По введенному номеру месяца, определить сезон года (1 –

«зима», 3 – «весна» и т. д.). 11. Для любого товара вывести «дешево», «нормально»,

«дорого», «очень дорого» на основании его цены (данные взять реальные!).

12. По расстоянию в километрах указать «далеко», «близко» и т. п. находится город (200 – «не далеко»).

13. По времени ходьбы пешком до пункта B из пункта A вывести, насколько близко или далеко он находится (5 мин – «близко», 15 минут – «не далеко», 60 минут – «очень далеко» и т. п.).

14. По количеству баллов, набранных на ЕГЭ, вывести оценку для аттестата (100 – «отлично»).

15. По количеству секунд, потребовавшихся студенту для преодоления дистанции в 400 м на уроке физкультуры, вывести, какую оценку он должен получить (цифры взять реальные).

16. По количеству подтягиваний на физкультуре вывести оценку от «неуд» до «отл».

17. По введенному времени в часах вывести время суток: «утро», «день», «вечер», «ночь». (13 – «День», 0 – «Ночь»).

18. По введенному числу в градусах (от 1 до 179) определить угол ( 30 – «острый», 90 – «прямой», 110 – «тупой» и т. д.).

19. По введенному возрасту вывести: от 0 до 12 – ребенок, от 13 до 19 – подросток, с 20 до 25 – молодой, с 25 до 55 – взрослый, от 55 и выше – пожилой.

20. Для введенного числа k вывести фразу «Мы нашли k

грибов в лесу», согласовав слово «гриб» с числом k.

Page 71: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

71

21. Составить программу, которая выводит введенный возраст человека с добавлением слов «год», «года», «лет» (41 год, 3 года, 20 лет).

22. Для целого числа d от 1 до 100, обозначающего денежную единицу, дописать слово «рубль» в правильной форме. (1 рубль, 2 рубля, 5 рублей и т. д.)

23. Для целого числа d от 1 до 100, обозначающего денежную единицу, дописать слово «доллар» в правильной форме. (1 доллар, 5 долларов, 24 доллара и т. д.)

24. Пользователь вводит целое число от –999 до +999. Вывести на экран, сколько в этом числе цифр и положительное оно или отрицательное. Например, «2 – это однозначное положительное число».

25. Ввести число от 1 до 999. Вывести строку описание – с указанием количества знаков и четностью или нечетностью. (74 – «четное двузначное число»).

26. Ввести 3 числа. Вывести вначале большее, а затем меньшее из них. (Ввод: 10 20 15 – Вывод: 20 10)

27. Определить, является ли данный год високосным. (Год является високосным, если его номер кратен 4, но не кратен 100, а также, если он кратен 400) (1990 – «не високосный», 2000 – «високосный»).

28. По введенной мощности двигателя легкового авто рассчитать и вывести сумму налога за автомобиль. (Источник – http://zakon-auto.ru/info/tnalog/ulyanovskaya-oblast.php).

29. В коробку помещается 12 пачек печенья. В ящик помещается 18 коробок. Вводится число d (от 1 до 999) – количество требуемых пачек печенья. Нужно вывести фразу «Вы заказали X пачек печенья. Ваш заказ будет доставлен в Y ящиках + Z коробок + W пачек». Нужно согласовать окончания слов с количеством ящиков и коробок. Например, для d=229 должна быть выведена фраза: «Вы заказали 229 пачек печенья. Ваш заказ будет доставлен в 1 ящике + 1 коробка + 1 пачка».

Page 72: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

72

Варианты задачи B (циклы)

Общие требования

В каждом варианте требуется сделать 2 программы B1. Решение с использованием DO WHILE. B2. Решение с использованием WHILE В задаче нужно написать программу и подготовить отчет, в

котором нарисовать (от руки) блок-схему. Защита работы включает в себя демонстрацию

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

Варианты

0. Население города увеличивается на 3% каждый год. В 2013 году население города составляло 650 000 человек. Напишите программу, которая выведет на экран предсказываемую численность населения города в каждом году, вплоть до 2040.

1. Дано целое число X — цена 1 кг конфет. Вывести

стоимость 1, 2, 3, … , 10 кг конфет. 2. Банк начисляет на вклады 12% каждый год. Начисленные

проценты присоединяются к основному вкладу. Напечатать таблицу увеличения суммы вклада на ближайшие 20 лет. Сумма вклада вводится с клавиатуры.

3. В начале года в банк положили X рублей. Банк начисляет на вклады 0,95% каждый месяц. Начисленные проценты присоединяются к основному вкладу. Напечатать таблицу увеличения суммы вклада по месяцам на год. Сумма вклада вводится с клавиатуры.

4. Напечатать таблицу перевода температуры из градусов по шкале Цельсия в градусы по шкале Фаренгейта для значений от 15°С до 38°С с шагом 1°С (перевод осуществляется по формуле F = 1,8C+32)

5. Ввести два целых числа A и B (A < B). Вывести в порядке возрастания все целые числа, расположенные между A и B (включая сами числа A и B), а также количество N этих чисел.

Page 73: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

73

6. Ввести два целых числа A и B (A < B). Вывести в порядке убывания все целые числа, расположенные между A и B (не включая числа A и B), а также количество N этих чисел.

7. Даны два целых числа A и B (A < B). Найти произведение всех целых чисел от A до B включительно.

8. Даны два целых числа A и B (A < B). Найти сумму квадратов всех целых чисел от A до B включительно.

9. Даны два целых числа A и B (A < B). Найти сумму кубов всех целых чисел от A до B включительно.

10. Дано целое число N > 0. Найти сумму

1 + 1/2 + 1/3 + … + 1/N (вещественное число). 11. Дано целое число N> 0. Найти квадрат данного числа,

используя для его вычисления следующую формулу: N2 = 1 + 3 + 5 + … + (2·N – 1). После добавления к сумме каждого слагаемого выводить текущее значение суммы (в результате будут выведены квадраты всех целых чисел от 1 до N).

12. Дано вещественное число A и целое число N (N>0). Найти A в степени N, используя операцию умножения: AN = A·A· … ·A (числа A перемножаются N раз).

13. Дано вещественное число A и целое число N (N>0). Используя один цикл, вывести все целые степени числа A от 1 до N.

14. Дано вещественное число A и целое число N (N>0). Используя один цикл, найти сумму 1 + A + A2 + A3 + … + AN.

15. Дано вещественное число A и целое число N (N>0). Используя один цикл, найти значение выражения 1 – A + A2 – A3 + … + (–1)N·AN. Условный оператор не использовать.

16. Дано целое число N (N>1). Вывести наименьшее из целых чисел K, для которых сумма 1 + 2 + … + K будет больше или равна N, и саму эту сумму.

17. Ввести число N. Вывести все квадраты натуральных чисел, не превосходящие данного числа N (N=50 – 1 4 9 16 25 36 49)

18. Даны натуральные числа от 20 до 50. Напечатать те из них, которые делятся на 3, но не делятся на 5.

19. Напечатать те из двузначных чисел, которые делятся на 4, но не делятся на 6.

20. Население двух стран в 2014 году равно N1 и N2 человек

соответственно. Прирост населения этих стран составляет P1 и P2 % в год соответственно. Население N1 < N2, а P1 > P2. Определить, в

Page 74: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

74

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

21. Ежегодный прирост рыбы в пруду составляет 15%. Запасы рыбы оценены в A тонн. Ежегодный план отлова B тонн. Наименьший запас рыбы, ниже которого запас уже не восстанавливается, составляет С тонн. Составить алгоритм и программу, подсчитывающую, сколько лет можно выдержать заданный план.

22. Для натурального числа N вывести все делители, кроме единицы и самого числа. (Ввод 12 – Вывод 2 3 4 6).

23. Выяснить, N является простым или составным числом. (Ввод 13 – Вывод «простое»).

24. Проверка гипотезы Сиракуз. Возьмем любое натуральное число. Если оно четное – разделим его пополам, если нечетное – умножим на 3, прибавим 1 и разделим пополам. Повторим эти действия с вновь полученным числом. Гипотеза гласит, что независимо от выбора первого числа рано или поздно мы получим 1.

25. В банк сделали 2 вклада – один вклад 100 000 рублей под 10% годовых, второй 200 000 рублей под 2% годовых. Вывести изменение суммы вкладов по годам до тех пор, пока сумма на первом вкладе не превысит сумму на втором.

26. Ввести число. Найти произведение его цифр. 27. Ввести число N (от 1 до 1 000 000 000). Проверить,

является ли введенное число десятичным палиндромом (палиндром – это симметричный относительно своей середины набор символов). (1224 – не палиндром, 12321 – палиндром)

28. Вводится число. Преобразовать его в другое число, цифры которого будут следовать в обратном порядке по сравнению с введенным числом. (Ввод 125 – Вывод 521).

29. Ввести два двухзначных (от 10 до 99) числа: X – начало диапазона и Y – конец диапазона. Определить сумму всех цифр всех чисел диапазона. (Ввод X = 21 Y = 24 – Вывод S = (2 + 1) + (2 + 2) + + (2 + 3) + (2 + 4) = 18).

Page 75: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

75

Варианты задачи C (вложенные циклы)

Общие требования

В каждом варианте требуется сделать 3 программы C1. Решение с использованием DO WHILE. C2. Решение с использованием WHILE C3. Решение с использованием FOR При решении задачи С ОБЯЗАТЕЛЬНО нужно использовать

вложенные циклы. Нельзя использовать массивы, собственные функции, рекурсию. Нужно организовать ввод с клавиатуры, вывод в консоль. Необходимо обеспечить обработку исключений.

В задаче нужно написать программу и подготовить отчет, в котором нарисовать (от руки) блок-схему.

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

Общее задание

Вводится целое число N (1<=N<=9), а выводится несколько строк с числами, которые образуют определенный «узор». «Узор» задается вариантом. «Узор» создается использованием вложенных циклов.

В варианте показан узор при введенном N=5. Таблица 5.1

Варианты задач C Вариант Рисунок Вариант Рисунок

0

5 4 5 3 4 5 2 3 4 5 1 2 3 4 5

1

1 2 3 4 5 1 2 3 4 1 2 3 1 2 1

2

1 1 2 1 2 3 1 2 3 4 1 2 3 4 5

3

5 4 3 2 1 5 4 3 2 5 4 3 5 4 5

Page 76: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

76

Продолжение табл. 5.1

Вариант Рисунок Вариант Рисунок

4

5 5 4 5 4 3 5 4 3 2 5 4 3 2 1

5

1 2 1 3 2 1 4 3 2 1 5 4 3 2 1

6

1 2 3 4 5 2 3 4 5 3 4 5 4 5 5

7

5 5 5 5 5 5 5 5 5 5 5 5 5 5 5

8

5 5 5 5 5 5 5 5 5 5 5 5 5 5 5

9

5 4 3 2 1 4 3 2 1 3 2 1 2 1 1

10

5 4 5 3 4 5 2 3 4 5 1 2 3 4 5 2 3 4 5 3 4 5 4 5 5

11

1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 4 3 2 1 3 2 1 2 1 1

12

1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1

13

5 4 5 4 3 4 5 4 3 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1

14

1 2 1 2 3 2 1 2 3 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5

15

5 5 4 5 5 4 3 4 5 5 4 3 2 3 4 5 5 4 3 2 1 2 3 4 5

16

5 4 3 2 1 5 4 3 2 5 4 3 5 4 5 5 4 5 4 3 5 4 3 2 5 4 3 2 1

17

1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 2 3 4 5 3 4 5 4 5 5

Page 77: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

77

Продолжение табл. 5.1

Вариант Рисунок Вариант Рисунок

18

1 2 3 4 5 2 3 4 5 3 4 5 4 5 5 4 5 3 4 5 2 3 4 5 1 2 3 4 5

19

1 2 3 4 5 1 2 3 4 1 2 3 1 2 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5

20

1 2 3 4 5 2 3 4 5 3 4 5 4 5 5 5 4 5 4 3 5 4 3 2 5 4 3 2 1

21

1 2 3 4 5 1 2 3 4 1 2 3 1 2 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1

22

5 4 3 2 1 5 4 3 2 5 4 3 5 4 5 4 5 3 4 5 2 3 4 5 1 2 3 4 5

23

5 4 3 2 1 4 3 2 1 3 2 1 2 1 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5

24

1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 5 4 3 2 1 4 3 2 1 3 2 1 2 1 1

25

5 4 5 3 4 5 2 3 4 5 1 2 3 4 5 5 4 3 2 1 5 4 3 2 5 4 3 5 4 5

26

1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1

27

1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 4 5 3 4 5 2 3 4 5 1 2 3 4 5

Page 78: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

78

Окончание табл. 5.1

Вариант Рисунок Вариант Рисунок

28

5 4 5 3 4 5 2 3 4 5 1 2 3 4 5 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1

29

1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 1 2 3 1 2 3 4 1 2 3 4 5

Page 79: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

79

ЗАКЛЮЧЕНИЕ

В данных методических указаниях собран воедино весь материал, необходимый для быстрого вхождения начинающему ИТ специалисту в разработку на языке Java в среде Eclipse.

Рассмотрены основные управляющие конструкции языка Java: развилки – полные, усеченные и вложенные, циклы – do while, while, for, вложение циклов друг в друга. Управляющие конструкции продемонстрированы подробными блок-схемами.

Дана минимально необходимая для студентов информация по классам, методу main, логическим операциям, по вводу и выводу в консоль, по обработке исключений. Подробно рассмотрены вопросы работы в среде Eclipse – создание проекта, создание класса, выполнение программы, отладка линейного кода, отладка развилок и циклов.

В методические указания включено большое количество примеров, а также варианты для трех работ: A – развилки, B – циклы, C – вложенные циклы.

Указания могут быть использованы студентами, изучающими дисциплины «Информатика», «Программирование на языках высокого уровня» при изучении Java как второго языка программирования. Также они могут быть использованы для самостоятельного индивидуального изучения Java вне университетской программы.

Page 80: Основы программирования на Java. Основные ...venec.ulstu.ru/lib/disk/2015/149.pdfРассмотрены основные управляющие конструкции

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

Интернет–ресурсы

1. Общая информация по языку Java: http://ru.wikipedia.org/wiki/Java (Дата обращения: 26.08.2015).

2. Синтаксис базовых конструкций Java: http://www.javable.com/tutorials/fesunov/lesson4/ (Дата обращения: 26.08.2015).

3. Циклы: http://kostin.ws/java/java-loops.html (Дата обращения: 26.08.2015).

4. Руководство по Eclipse: http://sotnyk.com/2011/10/09/rukovodstvo-po-eclipse-ide/ (Дата обра

5. щения: 26.08.2015). 6. Eclipse – учебное пособие: http://window.edu.ru/resource/397/58397

(Дата обращения: 26.08.2015).

Книги

1. Шилдт, Г. Java. Руководство для начинающих / Г. Шилдт. – М.: Вильямс, 2012. – 624 с.

2. Шилдт, Г. Полный справочник по Java / Г. Шилдт. – 7-e изд. – М.: Вильямс, 2009. – 1040 с.

3. Власенко, О.Ф. Изучение Си после Паскаля: циклы, развилки, функции, обработка одномерных массивов: методические указания / О.Ф. Власенко, И.В. Беляева. – Ульяновск: УлГТУ, 2003. – 68 с.

Учебное издание

Власенко Олег Федосович

Основы программирования на Java. Основные управляющие конструкции

Методические указания к выполнению лабораторных работ

Подписано в печать 31.08.2015. Формат 60×84 1/16. Усл. печ. л. 4,65. Тираж 100 экз. Заказ 699.

Ульяновский государственный технический университет, 432027, г.Ульяновск, ул. Сев. Венец, 32.

ИПК «Венец» УлГТУ, 432027, г. Ульяновск, ул. Сев. Венец, 32.

user
Машинописный текст
user
Машинописный текст
Редактор Н. А. Евдокимова
user
Машинописный текст
ЭИ № 509.