Лабораторная работа 1 2 лабораторная работа 2 31 лабораторная работа 3 44 лабораторная работа 4 74
Скачать 1.76 Mb.
|
Операнды арифметических операций должны иметь числовой тип. Их нельзя применять к переменным типа boolean, но можно использовать на типах char, т. к. тип char в Java, по существу, подмножество int. 1.5.2 Арифметические операции присваивания В Java обеспечены специальные операции, которые можно использовать для комбинирования арифметических операций с присваиванием. Как вы, вероятно, знаете, операторы, подобные следующему, весьма обычны в программировании: а = а + 4; В Java вы можете переписать этот оператор так: а += 4; Данная версия использует операцию присваивания со сложением +=. Оба оператора выполняют одно и то же — увеличивают значение на 4. Вот другой пример: а = а % 2; который можно выразить так: а %= 2; В этом случае операция %= получает остаток от деления а на 2 и помещает этот результат обратно в а. Имеются операции присваивания для всех арифметических и бинарных операций. Таким образом, любой оператор формы var = var op expression; где var — идентификатор переменной; op—выполняемая операция; expression — выражение; можно переписать как var op — expression Операции присваивания обеспечивают два преимущества. Во-первых, они немного сокращают объем клавиатурного ввода, потому что короче эквивалентных им длинных форм. Во-вторых, исполнительная система Java реализует их гораздо эффективнее, чем их длинные эквиваленты. По этим причинам в профессионально составленных Java-программах вы часто увидите использование именно этих форм операций присваивания. Пример: Public static void main (String args[]){ Int a = 1; Int b = 2; Int c = 3; a += 5; b +=4; c %= 6; System.out.println(“a = “ + a); System.out.println(“b = “ + b); System.out.println(“c = “ + c); } } Вывод этой программы: a = 6 b = 8 c = 3 1.5.3 Поразрядные операции java определяет несколько побитовых операций, которые могут применяться к целочисленным типам: long, int, short, char и byte. Эти операции воздействуют на отдельные биты операндов. Табл. 5
1.5.4 Операции отношений Операции отношений(relational operators) определяют отношения, которые один операнд имеет к другому. В частности, они определяют равенство и упорядочивания. В Java используются операции отношений, представленные в табл. 6. Табл. 6
Результат этих операций — значение типа boolean. Операции отношений часто используются в выражениях, которые управляют условными операторами и различными операторами цикла. Данные любых Java-типов, включая целые числа, числа с плавающей точкой, символы и булевские переменные, можно сравнивать, используя операции проверки равенства (==) и проверки неравенства (!=). Обратите внимание, что в Java (как в С и С++) равенство обозначается двумя знаками равенства, а не одним. (Напомним, что одиночный знак равенства (=) используется для операции присваивания.) С помощью операций упорядочивания (<, >, <=, >=) можно сравнивать только числовые типы (т. е., чтобы увидеть, какой операнд больше или меньше, чем другой, можно сравнивать только целочисленные, с плавающей точкой и символьные операнды). Как было сказано ранее, результат, полученный операциями отношений, представляет собой значение типа boolean. Например, следующий кодовый фрагмент содержит совершенно правильные утверждения: int а = 4; int b = 1; boolean с = а < b; В этом случае результат выражения а < b (который есть false) сохраняется в с. Если вы переходите к Java из среды C/C++, обратите внимание на следующее. В программах C/C++ часто встречаются следующие типы операторов: int done; // ... if(!done) ... // Верно в C/C++ if(done) ... // но не в Java. На языке Java эти операторы должны быть записаны так: if(done == 0)) ... // Это Java-стиль, if(done != 0) ... Причина в том, что Java не определяет true и false таким же образом, как C/C++. В C/C++ true — любое значение, отличное от нуля, a false — нуль. В Java true и false — нечисловые значения, которые не имеют отношения к нулю или не нулю. Поэтому, чтобы выполнить проверку на равенство нулю, вы должны явно использовать одну или несколько операций отношений. 1.5.5 Операции булевой логики Логические операции работают только с операндами типа boolean. Все логические операции с двумя операндами объединяют два значения типа boolean, образуя результирующее значение типа boolean. Булевские логические операции перечислены в табл. 7. Табл. 7.
Пример программы, которая работает с логическими значениями типа boolean: // Демонстрация применения булевских лоrических операций. class BoolLogic { pиblic static void main (String args [] ) boolean а = true; boolean b = false; boolean с = а | b; boolean d = а & b; boolean е = а ^ b; boolean f = (!а&b)|(а&!b); bооlеаn g = !а; Sуstеm.оut.рrintln(“ а =" + а); Sуstеm.оut.рrintln(" b =" + b); Sуstеm.оut.рrintln (" a|b = " + с); System.out.println(" а&b =" + d); System.out.println(" а^b ="+ е); Sуstеm.оut.рrintln ("(!а&b)|(а&!b) = " + f); System.oиt.println(" !а =" + g); } } Выполняя эту программу, легко убедиться, что в java строковое представление значения типа boolean значение одной из символьных констант true или false: а = true b = false a|b = true а&b = false а^b = true (!а&b)|(а&!b) = true !а = false 1.5.6 Операция присваивания Операция присваивания (назначения)(assignment operator) — это одиночный знак равенства (=). Операция присваивания работает в Java во многом так же, как в любом другом машинном языке. Она имеет следующую общую форму: var = expression; Здесь тип переменной var должен быть совместим с типом выражения expression. Операция присваивания имеет один интересный атрибут, с которым вы, может быть, не знакомы. Он позволяет создавать цепочку присваиваний. Например, рассмотрим следующий фрагмент: int х, у, z; х = у = z = 100; // установить в х, у, и z значение 100 Этот фрагмент устанавливает в переменных х, у, и z значение 100 с помощью одиночной операции присваивания. Это работает, потому что = представляет собой операцию, которая выдает значение правого выражения. Таким образом, значением выражения z=100 является 100, которое присваивается переменной у, а затем, в свою очередь, присваивается переменной х. Использование "цепочки присваиваний" — это просто способ установки общего значения в группе переменных. 1.5.7 Приоритеты операций Приоритеты операций jаvа, от высшего к низшему, описаны в табл. 8. В первой строке таблицы указаны элементы, которые, как правило, не считают символами операций: круглые и квадратные скобки и символ точки. С технической точки зрения они являются разделителями, но в выражениях они действуют подобно операциям. Круглые скобки используют для изменения порядка выполнения операций, квадратные скобки служат для индексации массивов, а символ точки используется для разыменования объектов. Табл. 8.
Индивидуальные задания Написать программу на java, которая решает задачу: 1. Дана сторона квадрата a. Найти его периметр P = 4·a и площадь S = a2. 2. Даны стороны прямоугольника a и b. Найти его площадь S = a·b и периметр P = 2·(a + b). 3. Дан диаметр окружности d. Найти ее длину L = π·d. В качестве значения π использовать 3.14. 4. Дана длина ребра куба a. Найти объем куба V = a3 и площадь его поверхности S = 6·a2. 5. Даны два целых числа: A, B. Проверить истинность высказывания: «Справедливы неравенства A ≥ 0 или B < –2». 6. Даны длины ребер a, b, c прямоугольного параллелепипеда. Найти его объем V = a·b·c и площадь поверхности S = 2·(a·b + b·c + a·c). 7. Дано целое число A. Проверить истинность высказывания: «Число A является четным». 8. Найти длину окружности L и площадь круга S заданного радиуса R: L = 2·π·R, S = π·R2. В качестве значения π использовать 3.14. 9. Дано целое число A. Проверить истинность высказывания: «Число A является положительным». 10. Даны два числа a и b. Найти их среднее арифметическое: (а+b)/2. 11. Даны три неотрицательных числа a, b и с. Найти их среднее арифметическое. 12. Дано целое число A. Проверить истинность высказывания: «Число A является нечетным». 13. Даны два ненулевых числа. Найти сумму, разность, произведение и частное их квадратов. 14. Даны два ненулевых числа. Найти их сумму, разность, произведение и частное. 15. Даны два целых числа: A, B. Проверить истинность высказывания: «Ровно одно из чисел A и B нечетное». 16. С начала суток прошло N секунд (N — целое). Найти количество полных минут, прошедших с начала суток. 17. С начала суток прошло N секунд (N — целое). Найти количество полных часов, прошедших с начала суток. 18. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Ровно одно из чисел A, B, C положительное». 19. С начала суток прошло N секунд (N — целое). Найти количество секунд, прошедших с начала последней минуты. 20. С начала суток прошло N секунд (N — целое). Найти количество секунд, прошедших с начала последнего часа. Контрольные вопросы Какие существуют концепции создания программы? Сколько простых типов данных в java? Какие существуют группы простых типов данных? Дать характеристику. Что такое литерал, виды литералов? Переменная. Какие бывают операции? Дать характеристику. Рекомендуемая литература Основная литература Шилдт Г., Ноутон П. Java 2. Наиболее полное руководство, 2001. Павловская Т.А., Щупак Ю.А. C++. Объектно-ориентированное программирование. Практикум. СПб. Питер, 2006. Г.Шилдт. Полный справочник по Java SE6 2007. Б.Эккель. Философия Java (4е издание), 2009. К. Арнольд, Д. Гослинг. Язык программирования Java. Питер Пресс, Санкт-Петербург, 1997. Дополнительная литература М. Эферган Java: справочник .- QUE Corporation, 1997, Издательство "Питер Ком", 1998 Д. Вебер Технология Java в подлиннике .- QUE Corporation, 1996, "BHV-Санкт-Петербург",1997. Н. Бартлетт, А. Лесли, С. Симкин Программирование на Java. Путеводитель .- The Coriolis Group,Inc.,1996, Издательство НИПФ "ДиаСофт Лтд.",1996 К. Джамса Библиотека программиста Java .- Jamsa Press, 1996, ООО "Попурри", 1996 К. Арнольд, Д. Гослинг Язык программирования Java .- Addison-Wesley Longman,U.S.A.,1996, Издательство "Питер-Пресс", 1997. |