четверг, 2 февраля 2017 г.

level10.lesson11.bonus03

package com.javarush.test.level10.lesson11.bonus03;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;

/* Задача по алгоритмамЗадача: ввести с клавиатуры 30 чисел. 
Вывести 10-е и 11-е минимальные числа.
 Пояснение:Самое минимальное число – 1-е минимальное.
 Следующее минимальное после него – 2-е минимальное
 Пример:1 6 5  7  1  15   63   88 
Первое минимальное – 1 
Второе минимальное – 1
 Третье минимальное – 5 
Четвертое минимальное – 6*/
public class Solution
{
    public static void main(String[] args) throws Exception
    {
 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int[] array = new int[30];
        for (int i = 0; i < 30; i++)
        {
            array[i] = Integer.parseInt(reader.readLine());
        }

        sort(array);

        System.out.println(array[9]);
        System.out.println(array[10]);
    }

    public static void sort(int[] array)
    {
        //напишите тут ваш код        Arrays.sort(array);
    }
}

level10.lesson11.bonus02

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

import java.io.*;
import java.util.HashMap;
import java.util.Map;

/* Нужно добавить в программу новую функциональностьЗадача: 
Программа вводит с клавиатуры пару (число и строку) и выводит 
их на экран.Новая задача: Программа вводит с клавиатуры пары 
(число и строку), сохраняет их в HashMap.
 Пустая строка – конец ввода данных. Числа могу повторяться. 
Строки всегда уникальны. Введенные данные не должны потеряться! 
Затем программа выводит содержание HashMap на экран.
Пример ввода:1Мама2Рама1Мыла
Пример вывода:1 Мыла2 Рама1 Мама*/
public class Solution
{
    public static void main(String[] args) throws IOException
    {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        HashMap map = new HashMap();
        while (true)
        {
            String temp = reader.readLine();
            if (temp.isEmpty())
                break;
            int id = Integer.parseInt(temp);
            String name = reader.readLine();
            map.put(name,id);

        }
        for (Map.Entry pair : map.entrySet())
        {
            System.out.println(pair.getValue() +" " + pair.getKey());
        }
    }
}

level10.lesson11.bonus01

package com.javarush.test.level10.lesson11.bonus01;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

/* Нужно исправить программу, чтобы компилировалась и работала 
Задача: Программа демонстрирует работу HashMap: 
вводит с клавиатуры набор пар (номер и строку), 
помещает их в HashMap и выводит на экран содержимое HashMap.*/
public class Solution {
    HashMap map;
    Integer index;
    String name;

    public Solution() {
        this.map = new HashMap();
//        map.put(index, name);    }

    public static void main(String[] args) throws IOException {
        Solution solution = new Solution();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        for (int i = 0; i < 10; i++) {
            int index = Integer.parseInt(reader.readLine());
            String name = reader.readLine();
            solution.map.put(index, name);
        }

        for (Map.Entry pair : solution.map.entrySet()) {
            Integer index = pair.getKey();
            String name = pair.getValue();
            System.out.println("Id=" + index + " Name=" + name);
        }
    }
}

level10.lesson11.home10

 package com.javarush.test.level10.lesson11.home10;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

/* Безопасное извлечение из спискаСоздать список целых чисел. 
Ввести с клавиатуры 20 целых чисел. 
Создать метод по безопасному извлечению чисел из списка:
 int safeGetElement(ArrayList list, int index, int defaultValue)
 Метод должен возвращать элемент списка (list) 
по его индексу (index). 
Если в процессе получения элемента возникло исключение, 
его нужно перехватить, и метод должен вернуть defaultValue.*/
public class Solution
{
    public static void main(String[] args) throws Exception
    {
 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        ArrayList list = new ArrayList();
        for (int i = 0; i < 20; i++)
        {
            int x = Integer.parseInt(reader.readLine());
            list.add(x);
        }

        System.out.println(safeGetElement(list, 5, 1));
        System.out.println(safeGetElement(list, 20, 7));
        System.out.println(safeGetElement(list, -5, 9));
    }

    public static int safeGetElement(ArrayList list, int index, int defaultValue)
    {
      //напишите тут ваш код 
 try 
 {
            return list.get(index);
        }
        catch (Exception e)
        {
            return defaultValue;
        }
    }

}

level10.lesson11.home09

package com.javarush.test.level10.lesson11.home09;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

/* Одинаковые слова в спискеВвести с клавиатуры в список 20 слов.
 Нужно подсчитать количество одинаковых слов в списке.
 Результат нужно представить в виде словаря Map
где первый параметр – уникальная строка,а второй – число,
 сколько раз данная строка встречалась в списке.
 Вывести содержимое словаря на экран.В тестах регистр 
(большая/маленькая буква) влияет на результат.*/
public class Solution
{
    public static void main(String[] args) throws Exception
    {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        ArrayList words = new ArrayList();
        for (int i = 0; i < 20; i++)
        {
            words.add(reader.readLine());
        }

        Map map = countWords(words);

        for (Map.Entry pair : map.entrySet())
        {
           System.out.println(pair.getKey() + " " + pair.getValue());
        }
    }

    public static Map countWords(ArrayList list)
    {
        HashMap result = new HashMap();
        for (String element : list)
        {
            result.put(element,0);
        }
        for (String listElement : list)
        {
            if (result.containsKey(listElement))
            {
                int n = result.get(listElement);
                result.put(listElement,n+1);
            }
        }

        //напишите тут ваш код

        return result;
    }

}

level10.lesson11.home08

package com.javarush.test.level10.lesson11.home08;

import java.util.ArrayList;
import java.util.Arrays;

/* Массив списков строкСоздать массив, элементами которого будут 
списки строк. Заполнить массив любыми данными и 
вывести их на экран.*/
public class Solution
{
    public static void main(String[] args)
    {
        ArrayList[] arrayOfStringList =  createList();
        printList(arrayOfStringList);
    }

    public static ArrayList[] createList()
    {
        //напишите тут ваш код 
 ArrayList[] list = new ArrayList[3];
        list[0] = new ArrayList();
        list[0].add("a");
        list[0].add("b");
        list[0].add("c");
        list[1] = new ArrayList();
        list[1].add("aa");
        list[1].add("bb");
        list[1].add("cc");
        list[2] = new ArrayList();
        list[2].add("test");
        list[2].add("proba");
        list[2].add("pera");


        return list;
    }

    public static void printList(ArrayList[] arrayOfStringList)
    {
        for (ArrayList list: arrayOfStringList)
        {
            for (String s : list)
            {
                System.out.println(s);
            }
        }
    }
}

среда, 1 февраля 2017 г.

level10.lesson11.home07

package com.javarush.test.level10.lesson11.home07;

/* Расставьте минимум static-овРасставьте как можно 
меньше модификаторов static так, 
чтобы пример скомпилировался.*/
public class Solution
{
    public int A = 5;
    public static int B = 5;
    public static int C = 5;
    public static int D = 5;

    public static void main(String[] args)
    {
        Solution solution = new Solution();
        solution.A = 5;
        solution.B = 5 * B;
        solution.C = 5 * C * D;
        Solution.D = 5 * D * C;

        Solution.D = 5;
    }

    public int getA()
    {
        return A;
    }

}

level10.lesson11.home06

package com.javarush.test.level10.lesson11.home06;

/* Конструкторы класса HumanНапиши класс Human с 6 полями. 
Придумай и реализуй 10 различных конструкторов для него. 
Каждый конструктор должен иметь смысл.*/
public class Solution
{
    public static void main(String[] args)
    {

    }

    public static class Human
    {
        String name;
        String parrent;
        int age;
        int weight;
        boolean sex;
        int count;

    public Human()
    {
       this.name = "test";
    }

    public Human(String name)
    {
        this.name = name;
    }

    public Human(String name, String parrent)
    {
        this.name = name;
        this.parrent = parrent;
    }

    public Human(String name, boolean sex)
    {
        this.name = name;
        this.sex = sex;
    }


    public Human(String name, int age)
    {
        this.name = name;
        this.age = age;
    }

    public Human(String name, int age, int weight)
    {
        this.name = name;
        this.age = age;
        this.weight = weight;
    }

    public Human(String name, String parrent, int age)
    {
        this.name = name;
        this.parrent = parrent;
        this.age = age;
    }

    public Human(String name, String parrent, int age, int weight)
    {
        this.name = name;
        this.parrent = parrent;
        this.age = age;
        this.weight = weight;
    }
    public Human(String name, String parrent, int age, int weight, boolean sex)
    {
        this.name = name;
        this.parrent = parrent;
        this.age = age;
        this.weight = weight;
        this.sex = sex;
    }

public Human(String name, String parrent, int age, int weight, boolean sex, int count)
    {
        this.name = name;
        this.parrent = parrent;
        this.age = age;
        this.weight = weight;
        this.sex = sex;
        this.count = count;
    }

        //напишите тут ваши переменные и конструкторы    }
}

level10.lesson11.home05

package com.javarush.test.level10.lesson11.home05;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;

/* Количество буквВвести с клавиатуры 10 строчек и подсчитать 
в них количество различных букв (для 33 букв алфавита). 
Вывести результат на экран.Пример вывода:а 5б 8в 3г 7д 0я 9*/
public class Solution
{
    public static void main(String[] args)  throws Exception
    {
 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        //алфавит         
String abc = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
        char[] abcArray = abc.toCharArray();
        int[] abcint = new int[abcArray.length];
        abcint[0] = 0;

        ArrayList alphabet = new ArrayList();
        for (int i = 0; i < abcArray.length; i++)
        {
            alphabet.add(abcArray[i]);
        }

        //ввод строк        ArrayList list = new ArrayList();
        for (int i = 0; i < 10; i++)
        {
            String s = reader.readLine();
            list.add(s.toLowerCase());
        }
        for (String element : list)
        {
            char[] elementArray = element.toCharArray();
            for (int i=0; i < elementArray.length;i++)
            {
                if (alphabet.indexOf(elementArray[i]) >=0)
                {
                    int b = alphabet.indexOf(elementArray[i]);
                    abcint[b] = abcint[b] + 1;
                }
            }
        }
        for (int n=0; n < abcArray.length;n++)
        {
            System.out.println(abcArray[n]+" "+abcint[n]);
        }



        //напишите тут ваш код    }

}

level10.lesson11.home04

package com.javarush.test.level10.lesson11.home04;

/* Большая зарплатаВывести на экран надпись «Я не хочу изучать Java,
 я хочу большую зарплату» 40 раз по образцу. 
Образец:Я не хочу изучать Java, я хочу большую зарплату 
не хочу изучать Java, я хочу большую зарплатуне хочу изучать Java,
 я хочу большую зарплатуе хочу изучать Java, я хочу большую 
зарплату хочу изучать Java, я хочу большую зарплатухочу изучать Java,
 я хочу большую зарплату*/
public class Solution
{
    public static void main(String[] args)
    {
        String s = "Я не хочу изучать Java, я хочу большую зарплату";

        //напишите тут ваш код        for (int i=0; i < 40;i++)
        {
            System.out.println(s.substring(i));
        }
    }

}

level10.lesson11.home03

package com.javarush.test.level10.lesson11.home03;

/* Правильный ответ: d=1.0Добавить одну операцию по преобразованию 
типа, чтобы получался ответ: d=1.0.*/
public class Solution
{
    public static void main(String[] args)
    {
        int a = 257;
        int b = 4;
        int c = 3;
        int e = 2;
        double d = (byte)a + b/c/e;

        System.out.println(d);
    }
}

level10.lesson11.home02

package com.javarush.test.level10.lesson11.home02;

/* Правильный ответ: d=5.5Добавить одну операцию по преобразованию 
типа, чтобы получался ответ: d=5.5.*/
public class Solution
{
    public static void main(String[] args)
    {
        int a = 5;
        int b = 4;
        int c = 3;
        int e = 2;
        double d = a + b/c/(double)e;
        System.out.println(d);
    }
}

level10.lesson11.home01

package com.javarush.test.level10.lesson11.home01;

/* Правильный ответ: d=2.941Добавить одну операцию по преобразованию 
типа, чтобы получался ответ: 
d=2.941.Пример вывода: 2.9411764705882355*/
public class Solution
{
    public static void main(String[] args)
    {
        int a = 50;
        int b = 17;
        double d = (double) a / b;
        System.out.println(d);
    }
}

level10.lesson04.task05

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

/* Задача №5 на преобразование целых типов
Расставьте правильно операторы приведения типа, чтобы получился ответ: c=256
int a = (byte)44;
int b = (byte)300;
short c = (byte)(b - a);
*/

public class Solution
{
    public static void main(String[] args)
    {
        int a = (byte)44;
        int b = 300;
        short c = (short)(b - a);
        System.out.println(c);
    }
}

level10.lesson04.task04

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

/* Задача №4 на преобразование целых типов
Добавить одну операцию по преобразованию типа, чтобы получался ответ: nine=9
short number = 9;
char zero = '0';
int nine = (zero + number);
*/

public class Solution
{
    public static void main(String[] args)
    {
        short number = 9;
        char zero = '0';
        int nine = (zero + number);
        System.out.println((char)nine);
    }
}

// ASCII код '9' - 57

level10.lesson04.task03

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

/* Задача №3 на преобразование целых типов
Добавить одну операцию по преобразованию типа, чтобы получался ответ: b=0
float f = (float)128.50;
int i = (int)f;
int b = (int)(i + f);
*/

public class Solution
{
    public static void main(String[] args)
    {
        float f = (float)128.50;
        int i = (int)f;
        int b = (byte)(int)(i + f);
        System.out.println(b);
    }
}

level10.lesson04.task02

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

/* Задача №2 на преобразование целых типов
Расставьте правильно операторы приведения типа, чтобы получился ответ: d=3.765
int a = 15;
int b = 4;
float c = a / b;
double d = a * 1e-3 + c;
*/

public class Solution
{
    public static void main(String[] args)
    {
        int a = 15;
        int b = 4;
        float c =(float) a / b;
        double d = a * 1e-3 + c;

        System.out.println(d);
    }
}

level10.lesson04.task01

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

/* Задача №1 на преобразование целых типов
Расставьте правильно операторы приведения типа, чтобы получился ответ: d > 0
int a = 0;
int b = (byte) a + 46;
byte c = (byte) (a*b);
double f = (char) 1234.15;
long d = (short) (a + f / c + b);
*/

public class Solution
{
    public static void main(String[] args)
    {
        int a = 0;
        int b = (byte) a + 46;
        byte c = (byte) (a*b);
        double f = (char) 1234.15;
        long d = (char) (a + f / c + b);
        System.out.println(d);
    }
}

level09.lesson11.bonus03

package com.javarush.test.level09.lesson11.bonus03;

//import com.sun.deploy.util.ArrayUtil;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

/* Задача по алгоритмамЗадача: Пользователь вводит с клавиатуры 
список слов (и чисел). Слова вывести в возрастающем порядке, 
числа - в убывающем.Пример ввода:Вишня1Боб3Яблоко20Арбуз 
Пример вывода:Арбуз3Боб2Вишня10Яблоко*/
public class Solution
{
    public static void main(String[] args) throws Exception
    {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        ArrayList list = new ArrayList();
        while (true)
        {
            String s = reader.readLine();
            if (s.isEmpty()) break;
            list.add(s);
        }

        String[] array = list.toArray(new String[list.size()]);
        sort(array);

        for (String x : array)
        {
            System.out.println(x);
        }
    }

    public static void sort(String[] array)
    {
        //напишите тут ваш код 
 for(int i =0; i< array.length; i ++)
        {
            if(!isNumber(array[i]))
            {
                for(int j=0;jlength
;j++)
{
if(!isNumber(array[j]))
{
String temp= array[i];
if(!isGreaterThan(array[i],array[j])){array[i]=array[j];array[j]=temp;}
}
}
}else{
for(int j=0;jlength;j++)
{
if(isNumber(array[j]))
{
String temp= array[i];
int t1 = Integer.parseInt(array[i]);
int t2 = Integer.parseInt(array[j]);
if(t1 > t2){array[i]=array[j];array[j]=temp;}
}
}
}
}

}

//Метод для сравнения строк: 'а' больше чем 'b' public static boolean isGreaterThan(String a, String b)
{
return a.compareTo(b) > 0;
}


//строка - это на самом деле число? public static boolean isNumber(String s)
{
if (s.length() == 0) return false;

char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++)
{
char c = chars[i];
if ((i != 0 && c == '-')  
//есть '-' внутри строки || (!Character.isDigit(c) && c != '-') ) // не цифра и не начинается с '-' {
return false;
}
}
return true;
}
}