Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Тема: «Основные структуры языка Java»




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

По предмету «Объектно-ориентированное программирование»

Тема: «Основные структуры языка Java»

Цель работы:

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

Задание для домашней подготовки:

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

Задания к лабораторной работе:

1. Написать программу, которая просит ввести два числа, получает эти два числа от пользователя, а затем печатает сумму, разность, произведение и частное этих чисел.

2. Написать программу, запрашивающую у пользователя три числа и печатающую сумму, произведение, среднее значение, меньшее и большее из этих чисел.

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

4. Написать программу, которая считывает два целых числа, определяет и печатает, является ли первое число кратным второму.

5. Написать программу, которая определяет, является введенное число четным или нечетным.

6. Написать программу, которая вычисляет и печатает квадрат и куб чисел от 1 до 10.

7. Написать программу, которая печатает геометрическую фигуру: прямоугольник, ромб, стрелу:

******* * *

* * * * **

* * * * ***

* * * * *

******* * *

*

  1. Написать программу, которая читает размер стороны квадрата и затем печатает звездочками и пробелами пустой квадрат заданного размера.
  2. Написать программу, которая читает неотрицательное целое, рассчитывает и печатает его факториал.
  3. Написать программу, которая суммирует последовательность целых чисел. Предполагается, что первое прочитанное целое число указывает количество целых чисел, которые будут введены, причем программа должна читать только по одному значению в операторе ввода.
  4. Написать программу, которая подсчитывает и печатает среднее значение нескольких целых чисел. Предполагается, что последняя читаемая величина имеет значение 9999.
  5. Написать программу, которая находит наименьшее и наибольшее из нескольких чисел. Предполагается, что первое прочитанное число задает количество последующих вводимых чисел.
  6. Написать программу, которая считает и печатает произведение нечетных целых чисел от 1 до 15.

 

 

В ходе лабораторной работы необходимо отладить написанную дома программу и предъявить работающую программу преподавателю.

Содержание отчета:

Отчет должен содержать:

1. Постановку задачи, решаемой отлаженной программой.

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

3. Листинг программы с необходимыми комментариями.

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

1. Какие операции существуют в языке Java?

2. Какие условные операторы есть в языке Java?

3. Какие операторы цикла существуют в языке Java?

4. В чем отличие между операторами цикла for и while? Какой синтаксис у этих операторов?

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

 

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

 

import javax.swing.*;

public class Retirement {

public static void main(String[] args) {

// чтение входных данных

String input = JOptionPane.showInputDialog

("Сколько денег вам нужно для пенсии?");

double goal = Double.parseDouble(input);

 

 

input = JOptionPane.showInputDialog

("Каков объем вашего ежегодного взноса?");

double payment = Double.parseDouble(input);

 

input = JOptionPane.showInputDialog

("Процентная ставка, %:?");

double interestRate = Double.parseDouble(input);

// Обновлять баланс счета, пока не накопится нужная сумма

 

double balance = 0;

int years = 0;

 

while (balance < goal)

{

// Добавить ежегодный взнос и процент

balance += payment;

double interest = balance*interestRate/100;

balance += interest;

years++;

}

 

System.out.println

("Можете идти на пенсию через "+ years + "лет");

System.exit(0);

}

}

 

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

 

import java.util.*;

import javax.swing.*;

public class Lottery {

public static void main(String[] args){

String input = JOptionPane.showInputDialog

("Сколько номеров нужно угадать?");

int k = Integer.parseInt(input);

 

input = JOptionPane.showInputDialog

("Чему равен наибольший из возможных номеров?");

int n = Integer.parseInt(input);

// Заполняем массив числами 1..n

int[] numbers = new int[n];

for (int i = 0; i< numbers.length; i++)

numbers[i] = i+1;

 

// Генерируем k чисел и помещаем их во второй массив

int[] result = new int[k];

for (int i = 0; i< result.length; i++)

{

// Генерируем случайный индекс от 0 до n -1

int r = (int)(Math.random()*n);

 

// Помещаем элемент в случайную ячейку

result[i] = numbers[r];

 

// Перемещаем последний элемент в случайную ячейку

numbers[r] = numbers[n-1];

n--;

 

}

 

// Выводим на печать упорядоченный массив

Arrays.sort(result);

 

System.out.println

("Поставте на следующую комбинацию - не пожалеете!");

for (int i = 0; i< result.length; i++)

System.out.println(result[i]);

 

System.exit(0);

 

}

}

 


Приложение 1. Операторы языкаJava

Введение

Выражение – это переменные, функции и константы, называемые операндами, объединенные знаками операций. Выражение, в котором участвуют две или более операции, называется состав­ным. Порядок применения операций определяется приоритетом операции и ее ас­социативностью. Простейшее выражение состоит из одной константы или переменной, то есть из операнда без операции. Результат его есть значение операнда.

Операторы образуют наименьшую исполняемую единицу программы на Java. Опе­раторы оканчиваются точкой с запятой. Самый простой случай - это пустой оператор. Он имеет следующую форму:

// пустой оператор

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

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

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

Последовательность выполнения различных действий в выражениях определяется компилятором. Каждая операция имеет свой приоритет; большое количество ошибок при программировании возникает, когда этот приоритет учитывается неправильно.

Побитовые операции

Побитовые операторы обращаются с переменными как с наборами битов, а не как с числами. Эти операторы используются в тех случаях, когда необходимо получить доступ к отдельным битам данных, например при выводе графических изображений на экран. Побитовые операторы могут выполнять действия только с целочисленными значениями. Существует 3 основных побитовых оператора: И (&), ИЛИ (|) и исключающее ИЛИ (^). Сюда можно также отнести унарный оператор побитового отрицания (~), который инвертирует значение битов числа.

Побитовое И.

Оператор записывает в бит результата единицу только в том случае, если оба сравниваемых бита равны 1:

Бит 0 Бит 1 Результат
     
     
     
     

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

Побитовое ИЛИ.

Оператор записывает в бит результата единицу в том случае, если хотя бы один из сравниваемых битов равен 1:

Бит 0 Бит 1 Результат
     
     
     
     

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

Побитовое исключающее ИЛИ.

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

Бит 0 Бит 1 Результат
     
     
     
     

 

Операции сдвига

Язык Java содержит два оператора сдвига: сдвиг влево(<<) и сдвиг вправо (>>> -арифметический,>> - логический). Первый сдвигает битовое представление целочисленной переменной, указанной слева от оператора, влево на количество битов, указанных справа от оператора. При этом освобождающиеся младшие биты заполняются нулями, а соответствующее количество старших битов теряется.

Сдвиг беззнакового числа на 1 позицию влево с заполнением младшего разряда нулем эквивалентен умножению числа на два, как показано в следующем примере:

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

Операции инкремента и декремента

Операторы инкремента ("++") и декремента ("--") дают удобную и компактную за­пись для прибавления или вычитания 1 из переменной. Эти операторы можно применять только к переменным, но не к константам. Так, вместо следующей строки

Value +1;

можно записать

Value++;

или

++Value;

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

При постфиксном инкрементировании (i++) сначала возвращается значение переменной, после чего оно увеличивается на единицу. При префиксном инкрементировании (++i), наоборот, сначала значение переменной увеличивается на единицу и только затем используется в дальнейших преобразованиях.

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...