Поступила я на курсы с большими амбициями и с ощущением наличия у меня кое-каких знаний. но первое же практическое занятие в EPAM разубедило меня полностью в том что я хоть что-то знаю. в общем, учиться, учиться и еще раз, учиться.
с консолью никогда не работала, с переводом систем счисления никогда даже не имела дела, даже не пыталась, а стоило бы. с пакетами столкнулась впервые. 5 задача работает у меня малех на костылях, о стройности решения тут и речи не идет. мною руководила одна мысль - лишь бы написать и оно заработало.
Выкладываю частично интересные задания:
с консолью никогда не работала, с переводом систем счисления никогда даже не имела дела, даже не пыталась, а стоило бы. с пакетами столкнулась впервые. 5 задача работает у меня малех на костылях, о стройности решения тут и речи не идет. мною руководила одна мысль - лишь бы написать и оно заработало.
Выкладываю частично интересные задания:
- Написать класс, который реализует функциональность вывода в консоль строки "Hello, World". Написать командный файл (bat файл Windows или shell скрипт Linux), который компилирует и запускает данное приложение из консоли. Командный файл сохранить в каталоге src Eclipse-проекта.
- Написать класс, который реализует функциональность сложения двух чисел, переданных в приложение как параметры командной строки.
- Написать класс, который реализует функциональность определения наибольшего общего делителя двух целых положительных чисел, переданных в приложение как параметры командной строки.
- Написать класс, который реализует функциональность определения суммы цифры целого положительного числа, переданного в приложение как параметр командной строки.
- Как правило колонки электронных таблиц (например, 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; ...].
- метод определения порядкового номера колонки по ее буквенному номеру
Дополнительно в корневой пакет положить класс 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));
}
}
Спс за код кое в чем помог! Жалко только что bat файл не выкинули.
ОтветитьУдалитьТам в 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);
}
да, действительно, как верно подмечено выше в тексте в методе ошибка
ОтветитьУдалить