• Мая 14, 2021, 08:06:41 am
• Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Новости: на нашем Telegram канале: https://t.me/progkievua

Автор Тема: Java Start Online. Лекция №2: "Переменные"  (Прочитано 172 раз)

j4ck50n

  • Пользователи
  • *
  • Сообщений: 20
  • For mother UA!
    • Просмотр профиля
Java Start Online. Лекция №2: "Переменные"
« : Апреля 03, 2021, 10:05:11 pm »
Задание №1
Написать программу, которая считывает 5-значное число с клавиатуры и выводит цифры из которого оно состоит. Например:
Считывается: 56734
Выводится:
5
6
7
3
4

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();

        System.out.println(num / 10000);
        System.out.println((num % 10000) / 1000);
        System.out.println((num % 1000) / 100);
        System.out.println((num % 100) / 10);
        System.out.println(num % 10);
    }
}

Задание №2
Написать программу, которая вычислит и выведет на экран площадь треугольника если известны его стороны.
public class Main {
    public static void main(String[] args) {
        double a = 1.5;
        double b = 1.7;
        double c = 1.2;

        double p = (a + b + c) / 2;
        double s = Math.sqrt(p * (p - a) * (p - b) * (p - c));

        System.out.println("Площадь треугольника: " + s);
    }
}

Задание №3
Написать программу, которая вычислит и выведет на экран длину окружности, если её радиус считывается с клавиатуры.
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double r = scanner.nextDouble();
        double p = 2 * Math.PI * r;

        System.out.println("Длина окружности: " + p);
    }
}

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 14797
    • Просмотр профиля
    • E-mail
Re: Java Start Online. Лекция №2: "Переменные"
« Ответ #1 : Апреля 03, 2021, 11:51:45 pm »
J4ck50n
Решение верное.
Почему вы создали отдельную тему? Вы студент онлайн обучения на LMS?

j4ck50n

  • Пользователи
  • *
  • Сообщений: 20
  • For mother UA!
    • Просмотр профиля
Re: Java Start Online. Лекция №2: "Переменные"
« Ответ #2 : Апреля 05, 2021, 05:31:02 pm »
J4ck50n
Решение верное.
Почему вы создали отдельную тему? Вы студент онлайн обучения на LMS?
Так точно, студент онлайн обучения. Создание новой темы - "В разделе Java SE создайте новую тему и в ней выкладывайте задания и пишите вопросы. Преподаватель будет проверять." из ответа в email  ???

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 14797
    • Просмотр профиля
    • E-mail
Re: Java Start Online. Лекция №2: "Переменные"
« Ответ #3 : Апреля 06, 2021, 11:35:03 am »
J4ck50n

Ну чего ж вы назвали ее так неудачно??? В названии темы должен быть ваш ник. Ну да ладно все дальнейшие решения выкладывайте в этой теме это и будет ваша персональная тема.

j4ck50n

  • Пользователи
  • *
  • Сообщений: 20
  • For mother UA!
    • Просмотр профиля
Re: Java Start Online. Лекция №2: "Переменные"
« Ответ #4 : Апреля 06, 2021, 12:48:13 pm »
Лекция №3: Условные операторы

Уровень 1

Задание №1
Написать программу, которая считает с клавиатуры 4 числа и выведет на экран самое большое из них.
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int a;
        int b;
        int c;
        int d;
        int maxNumber;

        System.out.println("Enter first number:");
        a = scanner.nextInt();
        System.out.println("Enter second number:");
        b = scanner.nextInt();
        System.out.println("Eneter third number:");
        c = scanner.nextInt();
        System.out.println("Enter fourth number:");
        d = scanner.nextInt();

        maxNumber = a;
        if (b > maxNumber) {
            maxNumber = b;
        }

        if (c > maxNumber) {
            maxNumber = c;
        }

        if (d > maxNumber) {
            maxNumber = d;
        }

        System.out.println("Maximum number is: " + maxNumber);
    }

Задание №2
Есть девятиэтажный дом, в котором 4 подъезда. Номер подъезда начинается с единицы. На одном этаже 4 квартиры. Напишите программу, которая получит номер квартиры с клавиатуры, и выведет на экран на каком этаже, какого подъезда расположена эта квартира. Если такой квартиры нет в этом доме то нужно сообщить об этом пользователю.
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int apartmentNumber;
        int apartmentsPerFloor = 4;
        int apartmentsPerEntrance = apartmentsPerFloor * 9;
        int entrance = 0;

        System.out.println("Enter apartment:");
        apartmentNumber = scanner.nextInt();

        if ((apartmentNumber >= 1) && (apartmentNumber <= apartmentsPerEntrance)) {
            entrance = 1;
        } else if ((apartmentNumber > apartmentsPerEntrance) && (apartmentNumber <= (2 * apartmentsPerEntrance))) {
            entrance = 2;
        } else if ((apartmentNumber > (2 * apartmentsPerEntrance)) && (apartmentNumber <= (3 * apartmentsPerEntrance))) {
            entrance = 3;
        } else if ((apartmentNumber > (3 * apartmentsPerEntrance)) && (apartmentNumber <= (4 * apartmentsPerEntrance))) {
            entrance = 4;
        } else {
            System.out.println("Wrong apartment number!");
        }

        if (entrance > 0) {
            System.out.println("Entered apartment " + apartmentNumber + " is on " + ((apartmentNumber - 1) % apartmentsPerEntrance / apartmentsPerFloor + 1) + " floor of " + entrance + " entrance");
        }
    }
}

Задание №3
Определить количество дней в году, который вводит пользователь. В високосном годе - 366 дней, тогда как в обычном 365. Високосный год определяется по следующему правилу:
год високосный, если он делится на 4 без остатка, но если он делится на 100 без остатка, это не високосный год. Однако, если он делится без остатка на 400, это високосный год.
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int year;
        System.out.println("Enter year:");
        year = scanner.nextInt();

        if (year % 4 != 0) {
            System.out.println("This is not a leap year, so 365 days :(");
        } else {
            if ((year % 100 == 0) && (year % 400 != 0)) {
                System.out.println("This is not a leap year, so 365 days :(");
            } else {
                System.out.println("This is a leap year and 366 days! :)");
            }
        }
    }
}

Задание №4
Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей.
Дано:
a, b, c - стороны треугольника.
Напишите программу которая укажет существует такой треугольник или нет.
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a;
        int b;
        int c;

        System.out.println("Enter A:");
        a = scanner.nextInt();
        System.out.println("Enter B:");
        b = scanner.nextInt();
        System.out.println("Enter C:");
        c = scanner.nextInt();

        if (((a + b) >= c) && ((a + c >= b)) && ((c + b) >= a)) {
            System.out.println("Triangle exists! :)");
        } else {
            System.out.println("Triangle not exists :(");
        }
    }
}

j4ck50n

  • Пользователи
  • *
  • Сообщений: 20
  • For mother UA!
    • Просмотр профиля
Re: Java Start Online. Лекция №2: "Переменные"
« Ответ #5 : Апреля 06, 2021, 12:56:54 pm »
Лекция №3: Условные операторы

Уровень 2

Задание №1
Есть круг с центром в начале координат и радиусом 4. Пользователь вводит с клавиатуры координаты точки X и Y. Написать программу которая определит лежит ли эта точка внутри круга или нет.
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        scanner.useLocale(Locale.UK);
        double x;
        double y;

        int centerX = 0;
        int centerY = 0;
        int radius = 4;

        System.out.println("Enter coordinate of X point:");
        x = scanner.nextDouble();
        System.out.println("Enter coordinate of Y point:");
        y = scanner.nextDouble();

        // cartesian coordinate system circle equation
        // xc, yc - X and Y coordinates of circle center
        // (x - xc)^2 + (y - yc)^2 < r^2 - point inside the circle
        // (x - xc)^2 + (y - yc)^2 > r^2 - point outside the circle
        // (x - xc)^2 + (y - yc)^2 = r^2 - point is on the circle
        double result = Math.pow((x - centerX), 2) + Math.pow((y - centerY), 2);
        if (result < Math.pow(radius, 2)) {
            System.out.println("Given point coordinates are inside the circle!");
        } else if (result == Math.pow(radius, 2)) {
            System.out.println("Given point coordinates are on the circle!");
        } else {
            System.out.println("Given point coordinates are outside the circle...");
        }
    }
}

Задание №2
Дан треугольник с координатами вершин A(0,0) B(4,4) C(6,1). Пользователь вводит с клавиатуры координаты точек X, Y.
Написать программу которая определит лежи ли эта точка внутри треугольника или нет.
public class Main {
    // Heron's formula for coordinates
    // s = |(x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1)| / 2
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // triangle ABC coordinates
        // A vertex (x,y)
        double aX = 0;
        double aY = 0;
        // B vertex (x,y)
        double bX = 4;
        double bY = 4;
        // C vertex (x,y)
        double cX = 6;
        double cY = 1;

        // area of ABC triangle
        double s = Math.abs( ((bX - aX) * (cY - aY)) - ((cX - aX) * (bY - aY)) ) / 2;

        double pX;
        double pY;

        System.out.println("Enter coordinate of X point:");
        pX = scanner.nextDouble();
        System.out.println("Enter coordinate of Y point:");
        pY = scanner.nextDouble();

        // triangle ABP
        double s1 = Math.abs( ((bX - aX) * (pY - aY)) - ((pX - aX) * (bY - aY)) ) / 2;
        // triangle BCP
        double s2 = Math.abs( ((cX - bX) * (pY - bY)) - ((pX - bX) * (cY - bY)) ) / 2;
        // triangle CAP
        double s3 = Math.abs( ((aX - cX) * (pY - cY)) - ((pX - cX) * (aY - cY)) ) / 2;

        if (s == (s1 + s2 + s3)) {
            System.out.println("Entered point coordinates are inside triangle ABC :)");
        } else {
            System.out.println("Entered point coordinates are outside triangle ABC :(");
        }
    }
}

Задание №3
Проверить, является ли четырехзначное число счастливым билетом. Дано четырехзначное число. Проверить, является ли оно "счастливым билетом". Примечание: счастливым билетом называется число, в котором - при четном количестве цифр в числе сумма цифр его левой половины равна сумме цифр его правой половины.
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int number;
        int a;
        int b;
        int c;
        int d;
        int rightPart;
        int leftPart;

        System.out.println("Enter your number:");
        number = scanner.nextInt();

        a = (number / 1000);
        b = (number % 1000) / 100;
        c = (number % 100) / 10;
        d = (number % 10);

        leftPart = a + b;
        if (leftPart >= 10) {
            leftPart = ((leftPart / 10) + (leftPart % 10));
        }

        rightPart = c + d;
        if (rightPart >= 10) {
            rightPart = ((rightPart / 10) + (rightPart % 10));
        }

        if (leftPart == rightPart) {
            System.out.println("Congratulations! Ticket is lucky!");
        } else {
            System.out.println("Sorry! Ticket is not lucky!");
        }
    }
}

Задание №4
С клавиатуры вводится шестизначное число. Проверить, является ли оно палиндромом.
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int number;
        int a;
        int b;
        int c;
        int d;
        int e;
        int f;

        System.out.println("Enter number to check:");
        number = scanner.nextInt();

        a = (number / 100000);
        b = (number % 100000) / 10000;
        c = (number % 10000) / 1000;
        d = (number % 1000) / 100;
        e = (number % 100) / 10;
        f = (number % 10);

        if (a == f) {
            if (b == e) {
                if (c == d) {
                    System.out.println("This number is a palindrome!");
                } else {
                    System.out.println("This number is not a palindrome");
                }
            } else {
                System.out.println("This number is not a palindrome");
            }
        } else {
            System.out.println("This number is not a palindrome");
        }
    }
}


Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 14797
    • Просмотр профиля
    • E-mail
Re: Java Start Online. Лекция №2: "Переменные"
« Ответ #6 : Апреля 07, 2021, 03:47:34 pm »
J4ck50n

Решение верное

j4ck50n

  • Пользователи
  • *
  • Сообщений: 20
  • For mother UA!
    • Просмотр профиля
Re: Java Start Online. Лекция №2: "Переменные"
« Ответ #7 : Апреля 10, 2021, 03:51:33 pm »
Лекция №4. Циклы

Уровень 1

Задание №1
С помощью циклов нарисовать "обои". Причем количество полос должно вводится с клавиатуры.
public class Main {
    public static void main(String[] args) {
        int linesNumber = 10;
        int num;
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter count of strips:");
        num = scanner.nextInt();

        for (int i = 1; i <= linesNumber; i++) {
            for (int j = 1; j <= num; j++) {
                if (j % 2 != 0) {
                    System.out.print("***");
                } else {
                    System.out.print("+++");
                }
            }
            System.out.println();
        }
    }
}

Задание №2
Вычислить с помощью цикла факториал числа N введенного с клавиатуры (4 < N < 16).
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num;
        System.out.println("Enter number to calculate factorial:");
        num = scanner.nextInt();
        int f = 1;

        if (num > 4 && num < 16) {
            for (int i = 1; i <= num; i++) {
                f *= i;
            }

            System.out.println(f);
        } else {
            System.err.println("Allowed range: 4 < N < 16");
            System.exit(1);
        }
    }
}

Задание №3
Напечатайте таблицу умножения на 5.
public class Main {
    public static void main(String[] args) {
        for (int i = 1; i < 10; i++) {
            System.out.println(i + " x 5 = " + (i * 5));
        }
    }
}

Задание №4
Выведите на экран прямоугольник из *. Причем высота и ширина прямоугольника вводятся с клавиатуры.
public class Main {
    public static void main(String[] args) {
        int height;
        int width;
        Scanner scanner = new Scanner(System.in);

        System.out.println("Enter rectangle height:");
        height = scanner.nextInt();
        System.out.println("Enter rectangle width:");
        width = scanner.nextInt();

        for (int i = 1; i <= height; i++) {
            for (int j = 1; j <= width; j++) {
                if (i == 1 || i == height || j == 1 || j == width) {
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }
}

j4ck50n

  • Пользователи
  • *
  • Сообщений: 20
  • For mother UA!
    • Просмотр профиля
Re: Java Start Online. Лекция №2: "Переменные"
« Ответ #8 : Апреля 10, 2021, 03:57:42 pm »
Лекция №4. Циклы

Уровень 2

Задание №1
С помощью цикла (только одного) нарисовать фигуру. Причем максимальная высота этой фигуры вводится с клавиатуры.
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int triangleHeight;
        int lineNumber;
        int starsPerLine = 0;
        int backwardIterator = 0;

        System.out.println("Enter triangle height:");
        triangleHeight = scanner.nextInt();

        for (lineNumber = 1; lineNumber <= ((triangleHeight * 2) - 1);) {
            if (lineNumber <= triangleHeight) {
                if (starsPerLine < lineNumber) {
                    System.out.print("*");
                    starsPerLine++;
                    continue;
                }

                if (starsPerLine == lineNumber) {
                    System.out.println();
                    lineNumber++;
                    starsPerLine = 0;
                }

                if (lineNumber == triangleHeight) {
                    backwardIterator = lineNumber;
                    backwardIterator--;
                }
            } else {
                if (starsPerLine < backwardIterator) {
                    System.out.print("*");
                    starsPerLine++;
                    continue;
                }

                if (starsPerLine == backwardIterator) {
                    System.out.println();
                    lineNumber++;
                    backwardIterator--;
                    starsPerLine = 0;
                }
            }
        }
    }
}

Задание №2
С помощью цикла вывести на экран все простые числа от 1 до 100.
public class Main {
    public static void main(String[] args) {
        int max = 100;
        // create an array to store boolean information about number
        boolean primeNumbers[] = new boolean[max + 1];
        // fill created array with TRUE values as default
        for (int i = 0; i < max; i++) {
            primeNumbers[i] = true;
        }

        // find prime numbers and mark them as true in array
        // using eratosthenes algorithm
        for (int i = 2; i * i <= max; i++) {
            if (primeNumbers[i]) {
                for (int j = i * 2; j <= max; j += i) {
                    primeNumbers[j] = false;
                }
            }
        }
        // print all prime numbers by index with TRUE value
        for (int i = 2; i <= max; i++) {
            if (primeNumbers[i]) {
                System.out.println(i);
            }
        }
    }
}

Задание №3
Выведите на экран "песочные часы" максимальная ширина которых считывается с клавиатуры (число нечетное).
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int width;
        System.out.println("Enter hourglass width (odd):");
        width = scanner.nextInt();
        // check that number is not event
        if (width % 2 == 0) {
            System.err.println("Number must be odd");
            System.exit(1);
        }

        for (int i = 1; i <= width; i++) {
            for (int j = 1; j < i; j++) {
                System.out.print(" ");
            }

            for (int k = i; k <= width; k++) {
                System.out.print("*" + " ");
            }
            System.out.println();
        }

        for (int i = (width - 1); i >= 1; i--) {
            for (int j = 1; j < i; j++) {
                System.out.print(" ");
            }

            for (int k = i; k <= width; k++) {
                System.out.print("*" + " ");
            }
            System.out.println();
        }
    }
}

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 14797
    • Просмотр профиля
    • E-mail
Re: Java Start Online. Лекция №2: "Переменные"
« Ответ #9 : Апреля 13, 2021, 11:29:53 am »
J4ck50n
Решение верное

j4ck50n

  • Пользователи
  • *
  • Сообщений: 20
  • For mother UA!
    • Просмотр профиля
Re: Java Start Online. Лекция №2: "Переменные"
« Ответ #10 : Апреля 13, 2021, 11:52:13 pm »
Лекция №5. Массивы


Уровень 1

Задание №1
Дан массив: {0, 5, 2, 4, 7, 1, 3, 19}.
Написать программу для подсчета нечетных цифр в нем.
public class Main {
    public static void main(String[] args) {
        int array[] = new int[]{0, 5, 2, 4, 7, 1, 3, 19};
        int count = 0;

        for (int i : array) {
            if (i % 2 != 0) {
                count++;
            }
        }

        System.out.println("Total count of odd numbers: " + count);
    }
}


Задание №2
Написать код для возможности создания массива целых чисел (размер вводится с клавиатуры) и возможности заполнения каждого его элемента вручную.
Выведите этот массив на экран.
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int arraySize;
        System.out.println("Enter size of array you want to create:");
        arraySize = scanner.nextInt();
        int array[] = new int[arraySize];
        int tmp = 0;

        for (int i = 0; i < array.length; i++) {
            System.out.println("Enter value for " + i + " index:");
            tmp = scanner.nextInt();
            array[i] = tmp;
        }

        System.out.println("Your array: " + Arrays.toString(array));
    }
}


Задание №3
Создать массив случайных чисел (размером 15 элементов). Создайте второй массив в раза больше, первые 15 элементов должны быть равны элементам первого массива, а остальные элементы заполнить удвоенным значением начальных. Например: было - {1, 3, 6}, стало - {1, 3, 6, 2, 6, 12}
public class Main {
    public static void main(String[] args) {
        int max = 15;
        int array[] = new int[max];

        for (int i = 0; i < array.length; i++) {
            array[i] = (int) (Math.random() * max);
        }

        int arrayCopy[] = Arrays.copyOf(array, max * 2);
        for (int i = array.length; i < arrayCopy.length; i++) {
            arrayCopy[i] = (array[i - max] * 2);
        }

        System.out.println("Original array: " + Arrays.toString(array));
        System.out.println("Array copy with doubled data: " + Arrays.toString(arrayCopy));
    }
}


Задание №4
Введите строку текста с клавиатуры - реализуйте программу для возможности подсчета количества символов "b" в этой строке, с выводом результата на экран.
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str;
        int count = 0;
        char charToSearch = 'b';

        System.out.println("Enter your string to check for 'b' symbol:");
        str = scanner.nextLine();
        char array[] = str.toCharArray();

        for (char c : array) {
            if (c == charToSearch) {
                count++;
            }
        }

        System.out.println("Found " + count + " 'b' chars");
    }
}

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 14797
    • Просмотр профиля
    • E-mail
Re: Java Start Online. Лекция №2: "Переменные"
« Ответ #11 : Апреля 14, 2021, 11:49:26 am »
J4ck50n

Решение верное. Вы легко решаете задания основного уровня, может попробуете свои силы на заданиях продвинутого?

j4ck50n

  • Пользователи
  • *
  • Сообщений: 20
  • For mother UA!
    • Просмотр профиля
Re: Java Start Online. Лекция №2: "Переменные"
« Ответ #12 : Апреля 14, 2021, 01:07:19 pm »
В этой теме (массивы) я взялся уровень 2 решать, но как раз в этой теме не осилил, так как подзабыл матрицы с курса высшей математики  ::) ;D

j4ck50n

  • Пользователи
  • *
  • Сообщений: 20
  • For mother UA!
    • Просмотр профиля
Re: Java Start Online. Лекция №2: "Переменные"
« Ответ #13 : Апреля 14, 2021, 01:16:41 pm »
J4ck50n

Решение верное. Вы легко решаете задания основного уровня, может попробуете свои силы на заданиях продвинутого?
Можете посоветовать какую-то литературу по алгоритмам, чтобы "освежить" скажем так память?  :)

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 14797
    • Просмотр профиля
    • E-mail
Re: Java Start Online. Лекция №2: "Переменные"
« Ответ #14 : Апреля 14, 2021, 04:25:05 pm »
J4ck50n


Ну конечно классику в лице Дональда Кнута как по мне нужно хотя бы полистать.
Если в применение на Java то «Алгоритмы на Java» Р. Седжевика.

А если любите видео лекции то приглашаю, на свой канал я как раз таким и занимаюсь - https://www.youtube.com/channel/UCaRHxswm5Bzn3nCwXq4TzNQ

Отдельный плейлист по алгоритмам и по разработке на Java также присутствует :)