вторник, 17 января 2017 г.

level07.lesson06.task01

package com.javarush.test.level07.lesson06.task01;

import java.util.ArrayList;

/* 5 различных строчек в списке
1. Создай список строк.
2. Добавь в него 5 различных строчек.
3. Выведи его размер на экран.
4. Используя цикл выведи его содержимое на экран, каждое значение с новой строки.
*/
public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //напишите тут ваш код
        ArrayList list = new ArrayList();
        list.add("q1");
        list.add("q2");
        list.add("q3");
        list.add("q4");
        list.add("q5");
        System.out.println(list.size());
        for (int i=0; i < list.size();i++)
        {
            System.out.println(list.get(i));
        }

    }
}

level07.lesson04.task05

package com.javarush.test.level07.lesson04.task05;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/* Один большой массив и два маленьких
1. Создать массив на 20 чисел.
2. Ввести в него значения с клавиатуры.
3. Создать два массива на 10 чисел каждый.
4. Скопировать большой массив в два маленьких: половину чисел в первый маленький, вторую половину во второй маленький.
5. Вывести второй маленький массив на экран, каждое значение выводить с новой строки.
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //напишите тут ваш код
        int[] arraybig = new int[20];
        int[] array1 = new int[10];
        int[] array2 = new int[10];
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        for (int i=0; i < arraybig.length;i++)
        {
            arraybig[i] = Integer.parseInt(reader.readLine());
            if (i <10 br="">                array1[i] = arraybig[i];
            if (i > 9)
                array2[i-10] = arraybig[i];
        }
        for (int n=0; n < array2.length;n++)
        {
            System.out.println(array2[n]);
        }

    }
}

Объяснение : Для экономии времени и сокращения количества кода  заполнение всех массивов делается в одном цыкле.

level07.lesson04.task04

package com.javarush.test.level07.lesson04.task04;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.lang.reflect.Array;
import java.util.Collection;

/* Массив из чисел в обратном порядке
1. Создать массив на 10 чисел.
2. Ввести с клавиатуры 10 чисел и записать их в массив.
3. Расположить элементы массива в обратном порядке.
4. Вывести результат на экран, каждое значение выводить с новой строки.
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //напишите тут ваш код
        int[] array = new int[10];
        int[] array2 = new int[10];
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        for (int i =0; i < array.length;i++)
        {
            array[i] = Integer.parseInt(reader.readLine());
        }
        for (int n =array.length -1; n >=0;n--)
        {
            array2[array.length -1-n] = array[n];
        }
        array = array2;
        for (int k =0; k < array.length;k++)
        {
            System.out.println(array[k]);
        }

    }
}
Объяснение : расположить элементы в обратном порядке можно несколькими способами. Здесь это делается с помощью вспомогательного массива.

level07.lesson04.task03

package com.javarush.test.level07.lesson04.task03;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/* 2 массива
1. Создать массив на 10 строк.
2. Создать массив на 10 чисел.
3. Ввести с клавиатуры 10 строк, заполнить ими массив строк.
4. В каждую ячейку массива чисел записать длину строки из массива строк, индекс/номер ячейки которой совпадает с текущим индексом из массива чисел. Вывести содержимое массива чисел на экран, каждое значение выводить с новой строки.
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //напишите тут ваш код
        String[] array_str = new String[10];
        int[] array_int = new int[10];
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        for (int i=0; i < array_str.length;i++)
        {
            array_str[i] = reader.readLine();
            array_int[i] = array_str[i].length();
        }
        for (int n=0; n < array_str.length;n++)
        {
            System.out.println(array_int[n]);
        }

    }
}

level07.lesson04.task02

package com.javarush.test.level07.lesson04.task02;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/* Массив из строчек в обратном порядке
1. Создать массив на 10 строчек.
2. Ввести с клавиатуры 8 строчек и сохранить их в массив.
3. Вывести содержимое всего массива (10 элементов) на экран в обратном порядке. Каждый элемент - с новой строки.
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //напишите тут ваш код
        String[] array = new String[10];
        BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
        for (int i=0; i < 8;i++)
        {
            array[i] = buffer.readLine();
        }
        for (int n=array.length-1;n >=0;n--)
        {
           System.out.println(array[n]);
        }

    }
}

level07.lesson04.task01

package com.javarush.test.level07.lesson04.task01;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/* Максимальное среди массива на 20 чисел
1. В методе initializeArray():
1.1. Создайте массив на 20 чисел
1.2. Считайте с консоли 20 чисел и заполните ими массив
2. Метод max(int[] array) должен находить максимальное число из элементов массива
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        int[] array = initializeArray();
        int max = max(array);
        System.out.println(max);
    }
    public static int[] initializeArray() throws IOException {
        //Инициализируйте (создайте и заполните) массив тут
        int[] array = new int[20];
        BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
        for (int i=0; i        {
            array[i] = Integer.parseInt(buffer.readLine());
        }
        return array;
    }

    public static int max(int[] array) {
        //Найдите максимальное значение в этом методе
        int maximum = array[0];
        for (int i =1; i < array.length;i++)
        {
            if (maximum < array[i])
                maximum = array[i];
        }
        return maximum;
    }
}

Объяснение : Создаем сам массив на 20 элементов. Находим максимум среди всех. Внимательно смотрим и так же меняем возвращаемое значение в обоих методах. В первом массив и во втором максимум

понедельник, 16 января 2017 г.

level06.lesson11.bonus02

package com.javarush.test.level06.lesson11.bonus02;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/* Нужно добавить в программу новую функциональностьЗадача: У каждой кошки есть имя и кошка-мама. Создать класс, 
который бы описывал данную ситуацию. Создать два объекта: 
кошку-дочь и кошку-маму. Вывести их на экран.Новая задача: У каждой кошки есть имя, кошка-папа и кошка-мама. 
Изменить класс Cat так, чтобы он мог описать данную ситуацию.Создать 6 объектов: дедушку(папин папа), бабушку(мамина мама), 
папу, маму, сына, дочь.Вывести их всех на экран в порядке: дедушка, бабушка, папа, 
мама, сын, дочь.
Пример ввода:дедушка Васябабушка Муркапапа Котофеймама Василисасын Мурчикдочь Пушинка
Пример вывода:Cat name is дедушка Вася, no mother, no fatherCat name is бабушка Мурка, no mother, no fatherCat name is папа Котофей, no mother, father is дедушка ВасяCat name is мама Василиса, mother is бабушка Мурка, no fatherCat name is сын Мурчик, mother is мама Василиса, 
father is папа КотофейCat name is дочь Пушинка, mother is мама Василиса, 
father is папа Котофей*/
public class Solution
{
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        String grFatherName = reader.readLine();
        String grMotherName = reader.readLine();
        String fatherName = reader.readLine();
        String motherName = reader.readLine();
        String sonName = reader.readLine();
        String daughterName = reader.readLine();


        Cat catGrFather = new Cat(grFatherName);
        Cat catGrMother = new Cat(grMotherName);
        Cat catFather = new Cat(fatherName,catGrFather,null);
        Cat catMother = new Cat(motherName,null,catGrMother);
        Cat catSon = new Cat(sonName,catFather,catMother);
        Cat catDother = new Cat(daughterName,catFather,catMother);

        System.out.println(catGrFather);
        System.out.println(catGrMother);
        System.out.println(catFather);
        System.out.println(catMother);
        System.out.println(catSon);
        System.out.println(catDother);

    }

    public static class Cat
    {
        private String name;
        private Cat father;
        private Cat mother;

        Cat(String name)
        {
            this.name = name;
        }

        Cat(String name, Cat father, Cat mother)
        {
            this.name = name;
            this.father = father;
            this.mother = mother;
        }

        @Override        public String toString()
        {
            String fathername;
            String mothername;
            if (father == null)
                fathername = ", no father";
            else                fathername = ", father is " +father.name;
            if (mother == null)
                mothername = ", no mother";
            else                mothername = ", mother is " +mother.name;
                return "Cat name is " + name +  mothername+fathername;
        }
    }

Объяснение : В классе создания кота изменяем одного родителя на двух.
Создаем блок ввода с клавиатуры 6-ти котов. В задании немного путает 
упоминание дедушки и бабушки, этого всего в реализации не нужно.
В методе toString делаем обработку вводимых значений, можно делать
через множество if, мне удобнее и проще было сделать через 
дополнительные переменные.
}