Д.з.№1 Основные конструкции Java

Задания

  1. Почитайте в начале 3-й главы Хорстманна про переменные, типы данных, константы. Разберите примеры кода!
  2. Примерно в середине главы - про чтение пользовательского ввода (с клавиатуры) с помощью класса Scanner.
  3. (О) Используя полученные знания, напишите программу, которая спрашивает у пользователя его имя и возраст; затем печатает: "Hello, Name! Next year you'll be 20." (подставляя введенное имя и возраст - вычисляя, сколько лет ему будет через год).
  4. (Д) В предыдущем задании - попробуйте спросить у пользователя сначала возраст, затем имя. Но т.к. имя может состоять из нескольких слов - для его считывания используйте nextLine(), а не next().
  5. (Д) Разберитесь, как выводить int и double значения с помощью System.out.printf(), и как при этом указывать количество знаков после запятой. Функция printf пришла в Джаву из Си. Оттуда же она пришла в php, Linux/UNIX и много других сред - так что в будущем умение ей пользоваться вам не раз пригодится.
  6. (О) Перечислите 8 простых типов данных Java. Сколько каждый из них занимает памяти и почему?
  7. Проверьте: что будет, если присвоить переменной типа int значение 3 миллиарда? А переменной типа long?
  8. Проверьте: чему равно 5/2? А 2/5? Как получить "правильные" результаты 2.5 и 0.4 соответственно?
  9. Проверьте, что произойдет, если выполнить следующий код. Как это исправить?:
    int i;
    System.out.println(i);
  10. Проверьте, что произойдет, если выполнить следующий код. Как это исправить?:
    int i = 5;
    short s = i;
  11. Разберитесь как число с плавающей точкой округлить вниз. А как до ближайшего целого?
  12. (О) Объясните рис. 3.1 ("допустимые проеобразования числовых типов") из книги Хорстманна.
  13. Перечислите логические операторы Java.
  14. (Д) Разберитесь, чем отличатся && от &, || от |.
  15. (Д) Разберитесь, что делают операторы &,|,^,~,>>,<<,>>>? (подсказка: это операторы из одной категории)
  16. (Д) Подумайте, почему в Java есть оператор >>>, но нет оператора <<<?
  17. Будет ли это работать? Если да - какой будет результат?
    boolean b = x>=10 && x<100;
  18. Разберитесь, как проверить, что число четное (нечетное).
  19. Попробуйте операции деления и взятия остатка от деления, когда знаменатель - ноль. Проведите этот эксперимент с int'ами и double'ами.
  20. (О) Объясните таблицу 3.4 ("приоритет операторов") из книги Хорстманна.
  21. Найдите, как в Java сгенерировать целое случайное число от 0 до N-1. Подумайте, как сделать, чтобы условие (if) выполнялось с заданной вероятностью p (от 0.0 до 1.0).
  22. Ознакомьтесь с синтаксисом операторов if, switch, for, while, do-while, break, continue.
  23. (О) Известны результаты спортивного забега на 100 метров (фамилии участников и время (в секундах), показанное каждым из них). Напишите программу, которая по этим данным найдет троих победителей. (инструкции | Runners_Tests.java)
  24. Какие операторы языка Паскаль соответствуют Java'вским = и ==? В каких случаях используется каждый из них?
  25. Что такое область видимости (scope)? Приведите пример кода, иллюстрирующий влияние этого понятия на поведение программы. (это лучше описано у Шилдта).
  26. Попробуйте объявить во вложенной области переменную с именем, которое уже имеется у переменной во внешней области.
  27. (Д) Реализуйте тремя способами перевод числа в двоичное представление:
    1) Последовательным делением на 2.
    2) С помощью побитовых операций.
    3) С помощью подбора максимальной степени двойки, которая вмещается в число.

Легенда

  • (О) = Обязательное задание; его обязательно нужно сделать, и по нему обязательно спросят.
  • (Д) = дополнительное задание; его лучше делать, когда с остальными заданиями все понятно; также за него возможны дополнительные баллы.
  • (без метки) = задание можно не делать, если ответ для вас очевиден; в противном случае - обязательно делать!

Контрольные вопросы

  1. Перечислите основные методы класса Scanner.
  2. Напишите на листочке законченную программу "Hello, world!" на Java.
  3. Приведите простой пример цикла for на Java.
  4. Приведите простой пример цикла while на Java.
  5. Как в языке Java обозначаются логические операции И, ИЛИ, НЕ? Привести простой пример(ы) оператора if c их использованием.
  6. Приведите пример кода на Java, в котором создается массив целых чисел на 10 элементов.
  7. Как "в коде" узнать длину массива? (который в этом же коде создается)
  8. Приведите фрагмент кода, меняющий местами i-ый и j-ый элементы массива.
  9. Приведите фрагмент кода для вывода на экран массива целых чисел.
  10. Приведите фрагмент кода для поиска максимального элемента в массиве.
  11. Приведите фрагмент кода, который считывает с клавиатуры два целых числа и выводит на экран их сумму.
  12. Объясните, как у Вас в программе устроен поиск трех максимальных элементов массива (можно с примером кода).
Подстраницы (1): Задача о бегунах
Comments