К основному контенту

Java Web Programming в EPAM

Поступила я на курсы с большими амбициями и с ощущением наличия у меня кое-каких знаний. но первое же практическое занятие в EPAM разубедило меня полностью в том что я хоть что-то знаю. в общем, учиться, учиться и еще раз, учиться.
с консолью никогда не работала, с переводом систем счисления никогда даже не имела дела, даже не пыталась, а стоило бы. с пакетами столкнулась впервые. 5 задача работает у меня малех на костылях, о стройности решения тут и речи не идет. мною руководила одна мысль - лишь бы написать и оно заработало. 
Выкладываю частично интересные задания:

  1. Написать класс, который реализует функциональность вывода в консоль строки "Hello, World". Написать командный файл (bat файл Windows или shell скрипт Linux), который компилирует и запускает данное приложение из консоли. Командный файл сохранить в каталоге src Eclipse-проекта.
  2. Написать класс, который реализует функциональность сложения двух чисел, переданных в приложение как параметры командной строки.
  3. Написать класс, который реализует функциональность определения наибольшего общего делителя двух целых положительных чисел, переданных в приложение как параметры командной строки.
  4. Написать класс, который реализует функциональность определения суммы цифры целого положительного числа, переданного в приложение как параметр командной строки.
  5. Как правило колонки электронных таблиц (например, Excel) имеют буквенную нумерацию в виде больших букв латинского алфавита (последовательно, слева направо): A, B, ..., Y, Z, AA, AB, ..., AY, AZ, BA, BB, ... и т.д. В то же время каждая колонка имеет порядковый номер: A - 1; B - 2; ... ; Y - 25; Z - 26; AA - 27; AB - 28; ... и т.д. Написать класс, который содержит следующие три метода (названия не обязательно должны быть такими, какими они приведены ниже):
    1. метод определения порядкового номера колонки по ее буквенному номеру
      public static int chars2digits(String number): A => 1; B => 2; ...; Z => 26; AA => 27; AB => 28; ... ];
    2. метод определения буквенного номера колонки по ее порядковому номеру
       [ public static String digits2chars(int number): 1 => A; 2 => B; ...; 26 => Z; 27 ==> AA; 28 ==> AB; ... ];
    3. метод определения по буквенному номеру колонки номер колонки, которая находится справа от данной
       [ public static String rightColumn(String number): A => B; B => C; ...; Y => Z; Z => AA; AA => AB; ...].
Дополнительно в корневой пакет положить класс Demo, который демонстрирует работу всех 5 подзадач. 

package ua.nure.sakhno.Practice1;

public class Demo {
public static void main(String[] args) {
Part1.main(new String[] {});
System.out.println("*********************");
Part2.main(new String[] {"2", "3"});
System.out.println("**********************");
Part3.main(new String[] {"2", "3"});
System.out.println("**********************");
Part4.main(new String[] {"55555"});
System.out.println("**********************");
Part5.main(new String[] {"28", "AA", "ZZZ"});
}

}

/*
 * Написать класс, который реализует функциональность вывода в консоль строки "Hello, World". 
 * Написать командный файл (bat файл Windows или shell скрипт Linux), 
 * который компилирует и запускает данное приложение из консоли. Командный файл сохранить в каталоге src Eclipse-проекта.
 */
package ua.nure.sakhno.Practice1;

public class Part1 {
public static void main(String[] args) {
System.out.println("Hello, World");
}

}
/*
 * Написать класс, который реализует функциональность сложения двух чисел, переданных в приложение как параметры командной строки.
 */
package ua.nure.sakhno.Practice1;

public class Part2 {

public static void main(String[] args) {
int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);
System.out.println("x + y = " + x + y);
}

}
/*
 * Написать класс, который реализует функциональность определения наибольшего общего делителя двух целых 
 * положительных чисел, переданных в приложение как параметры командной строки.
 */
package ua.nure.sakhno.Practice1;

public class Part3 {

public static void main(String[] args) {
int x = Integer.parseInt(args[0]);
int y = Integer.parseInt(args[1]);
System.out.print("NOD " + x + " and " + y + " = ");
while (y != 0) {
int tmp = x % y;
x = y;
y = tmp;
}
System.out.println(x);
}

}
/*
 * Написать класс, который реализует функциональность определения суммы цифры целого положительного числа, 
 * переданного в приложение как параметр командной строки.
 */
package ua.nure.sakhno.Practice1;

public class Part4 {
public static void main(String[] args) {
int x = Integer.parseInt(args[0]);
int sum = 0;
System.out.println("Number:" + x);
while (x != 0) {
sum += x % 10;
x /= 10;
}
System.out.println(sum);
}
}
/*
 * Как правило колонки электронных таблиц (например, Excel) имеют буквенную нумерацию в виде больших букв 
 * латинского алфавита (последовательно, слева направо): A, B, ..., Y, Z, AA, AB, ..., AY, AZ, BA, BB, ... 
 * и т.д. В то же время каждая колонка имеет порядковый номер: A - 1; B - 2; ... ; Y - 25; Z - 26; AA - 27;
 *  AB - 28; ... и т.д. Написать класс, который содержит следующие три метода (названия не обязательно 
 *  должны быть такими, какими они приведены ниже):
метод определения порядкового номера колонки по ее буквенному номеру
[ public static int chars2digits(String number): A => 1; B => 2; ...; Z => 26; AA => 27; AB => 28; ... ];
метод определения буквенного номера колонки по ее порядковому номеру
 [ public static String digits2chars(int number): 1 => A; 2 => B; ...; 26 => Z; 27 ==> AA; 28 ==> AB; ... ];
метод определения по буквенному номеру колонки номер колонки, которая находится справа от данной
 [ public static String rightColumn(String number): A => B; B => C; ...; Y => Z; Z => AA; AA => AB; ...].
 */
package ua.nure.sakhno.Practice1;

public class Part5 {

public static int chars2digits(String number) {
int digit = 0;
for (int i = number.length(); i > 0; i--) {
digit += (int) (number.charAt(number.length() - i) - 64)
* Math.pow(26, number.length() - i);
}
return digit;
}

public static String digits2chars(int number) {
String chars = "";
String charsMirror = "";
int modul;
int divident = number;
while (divident != 0) {
modul = divident % 26;
if (modul == 0) {
chars += "Z";
divident = (divident - 1) / 26;
} else {
chars += (char) (modul + 64);
divident = (divident - modul) / 26;
}
}
for (int i = 0; i < chars.length(); i++)
charsMirror += chars.charAt(chars.length() - i - 1);
return charsMirror;

}

public static String rightColumn(String number) {
String chars = "";
int num;
num = chars2digits(number);
num++;
chars = digits2chars(num);
return chars;
}

public static void main(String[] args) {
int digit1 = Integer.parseInt(args[0]);
String char1 = String.valueOf(args[1]);
String char2 = String.valueOf(args[2]);
System.out.println(char1 + " --> " + Part5.chars2digits(char1));
System.out.println(digit1 + " --> " + Part5.digits2chars(digit1));
System.out.println(char2 + " --> " + Part5.rightColumn(char2));
}

}


Комментарии

  1. Спс за код кое в чем помог! Жалко только что bat файл не выкинули.

    ОтветитьУдалить
  2. Там в 5 задании, неправильно работает первый метод(точнее цикл)
    for(int i = 1, j = number.length(); j > 0; i++,j--){

    count += (int)(number.charAt(number.length() - i) -64) * Math.pow(26,number.length() - j);

    }

    ОтветитьУдалить
  3. да, действительно, как верно подмечено выше в тексте в методе ошибка

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

ВОПРОС К ЧИТАТЕЛЯМ

Уважаемые читатели моего блога и просто проходящие мимо! У меня появилась идея заняться созданием уроков по интересующим вас темам. Предпочтительно на C++, но не ограничиваясь ими, я хочу поделиться своими знаниями не только в виде готового кода но и подробными объяснениями что к чему. Прошу вас, если вы имеете идею и хотели бы разобраться в какой-то теме - отпишитесь в комментариях, что было бы вам интересно. Постараюсь помочь. 

7 глава, Лафоре Р

*1. Напишите функцию reversit(), которая переворачивает строку (массив типа char). Используйте цикл for, который меняет местами первый и последний символы, затем следующие и т. д. до предпоследнего. Строка должна пере- даваться в функцию reversit() как аргумент. Напишите программу для выполнения функции reversit(). Программа долж- на принимать строку от пользователя, вызывать функцию reversit(), а за- тем выводить полученный результат. Используйте метод ввода, который позволяет использовать внутренние пробелы. Протестируйте программу на примере фразы «Аргентина манит негра».

6 глава, Лафоре Р

*1. Создайте класс Int, имитирующий стандартный тип int. Единственное поле этого класса должно иметь тип int. Создайте методы, которые будут устанавливать значение поля, равным нулю, инициализировать его целым значением, выводить значение поля на экран и складывать два значения типа Int. Напишите программу, в которой будут созданы три объекта класса Int, два из которых будут инициализированы. Сложите два инициализирован- ных объекта, присвойте результат третьему, а затем отобразите результат на экране.