Назад Зміст Вперед

Урок 1.3. Арифметичні операції. Тип даних double. Операція ділення за модулем, в т.ч. ділення за модулем від’ємних чисел. Взаємні перетворення (casting) типів int та double.

План уроку.

1.Особливості ділення цілих чисел (class Arithmetics_1).
2.Тип даних double. Особливості присвоєння змінній типу double  результату ділення цілих чисел (class Arithmetics_2). Два типи арифметико-логічних пристроїв в процесорах (для цілих та дробових операндів).
3. Взаємні перетворення (casting) типів int та double (class Arithmetics_3, тест [task-mughal] – № 3.5).
4.Операція ділення за модулем (class Modules_1). Призначення операції ділення за модулем: 1)доповнення до цілого ділення в цілочисельній арифметиці, 2)визначення парності чисел.
5.Особливості ділення за модулем відємних чисел: знак залишку завжди дорівнює знаку діленого (class Modules_2)

Операція ділення по модулю визначається так:
а % b = а - (а / b) * b; 
наприклад, 5%2 дасть в результаті 1, а 5% (-3) дасть 2, тому що 5 = (-3) * (-1) + 2, але (-5)%3 дасть -2, оскільки -5 = 3 * (-1) - 2.

Програми:
public class Arithmetics_1 {
            public static void main(String args[]) {
//ділення цілих змінних
                        int x = 75;
int y = 10;
System.out.println(x/y);  //результат 7 замість 7.5

            }
}
******************************************************************
public class Arithmetics_2 {
            public static void main(String args[]) {
//тип даних double
                        int x = 75;
int y = 10;
double z = x/y;
System.out.println(z);  //результат 7.0 замість 7.5
            }
}
******************************************************************
public class Arithmetics_3 {
            public static void main(String args[]) {
//casting даних типів int та double
                        int x = 75, y = 10;
System.out.println((double)x/y);  // результат 7.5
double z = x;           // еквівалентно double z = (double)x; неявне
                              // перетворення (implicity casting)
// int a = z;              // не компілюється, потрібне явне перетворення
int a = (int)z;           // explicity casting (явне перетворення)
System.out.println(y+z);  // результат додавання змінних типів int та  
                                              // double має тип double:  85.0
            }
}
******************************************************************
public class Modules_1 {
            public static void main(String args[]) {
//ділення за модулем
                        int x = 75, y = 8;
int a = x/y;
int b = x%y;
System.out.println(a + “ ” + b);
System.out.println(a*y + b); // 75 = 9*8 + 3 – при діленні можна обійтись
                                             //без дробових чисел, інформація не
                                            //втрачається за рахунок використання
                                            //залишку
System.out.println(x%2);    //1 – залишок ділення на 2 непарних чисел       
System.out.println(y%2);       // 0 – залишок ділення на 2 парних чисел
            }
}
******************************************************************
public class Modules_2 {
            public static void main(String args[]) {
//ділення за модулем
                        int x = 75, y = 8, a = -74, b = -7;
System.out.println(x/y + “ ” + x%y);
System.out.println(x/b + “ ” + x%b); 
System.out.println(a/y + “ ” + a%y); 
System.out.println(a/b + “ ” + a%b);
            }
}
Література для класної роботи:

Тести для класної роботи




Література для домашньої роботи:
 
Тести для домашньої роботи
.