wilma2202 Ответов: 2

Помощь с назначением курса кодирования


Я провожу онлайн-курс java и нахожу, что некоторые из данных заданий очень расплывчаты и недостаточно описаны для новичка..

Мне дали это почти без инструкций.. Я знаю, что это очень много, но я действительно хочу получить это, и я начинаю разочаровываться в этом курсе. Я думаю, что это какой-то тест, но у меня нет ни малейшего понятия о том, как создавать эти методы! Если бы кто-нибудь мог объяснить, как сделать эти методы, я был бы так благодарен!
import static java.lang.System.out;

/**
 * This assignment has you practice writing functions.  Test cases are provided
 * in code, so when you run the program, it will tell you if the functions
 * are working right.
 * 
 * Instructions
 * 
 * 1. Read all of the code all the way through.
 * 2. Figure out what should be in the ___ areas.  Fix them for all the methods, so the code will compile.
 * 3. Compile the code to check your work on data types and names.
 * 4. Figure out what code belongs in the // TODO areas.  Write that code, one function at a time.
 * 5. Compile and run frequently as you work, noting your progress through the test cases.
 * 6. Keep going until they're all written and the tests cases all pass.
 * 7. Celebrate!
 * 
 */
public class ManyFunctions
{
    /**
     * Takes two integer numbers as input and returns whichever number is smaller.
     */
    public static ___ minimum(_, __)
    {
        // TODO
    }

    /**
     * Takes two integer numbers as input and returns whichever number is larger.
     */
    public static ____ maximum(_, ___)
    {
        // TODO
    }

    /**
     * Returns true if the integer input is an odd number (1, 3, 5, 7...)
     */
    public static _____ isOddNumber(_____)
    {
        // TODO
    }

    /**
     * Returns true if the integer input is an even number (0, 2, 4, 6, 8...)
     */
    public static _____ isEvenNumber(_____)
    {
        // TODO
    }

    /**
     * Returns true if the letter is a vowel, or false otherwise.
     * You can assume only letters are being sent as input (not
     * spaces or punctuation marks or anything else).
     */
    public static _____ isVowel(_______)
    {
        // TODO
    }

    /**
     * Returns true if the letter is a consonant, or false otherwise.
     * You can assume only letters are being sent as input (not
     * spaces or punctuation marks or anything else).
     * 
     * This can be written in 1 short line of code without typing out
     * all the consonants in the alphabet.  Can you figure out how?
     */
    public static _____ isConsonant(_____)
    {
        // TODO
    }

    /**
     * Runs a series of test cases against the above methods.
     * 
     * * DO NOT!!!!! CHANGE THE CODE INSIDE main() { }
     * 
     * Just use this as an example of how the methods will be called, so 
     * you can figure out what they are supposed to do.
     * 
     */
    public static void main(String[] args)
    {
        out.println("Testing your functions.");
        int testFailures = 0;

        if (minimum(4, 3) != 3) {
            out.println("Error 1: Minimum failed test.  Expected 3, got " + minimum(4, 3));
            testFailures++;
        }
        if (minimum(4, 4) != 4) {
            out.println("Error 2: Minimum failed test.  Expected 4, got " + minimum(4, 4));
            testFailures++; 
        }
        if (minimum(3, 4) != 3) {
            out.println("Error 3: Minimum failed test.  Expected 3, got " + minimum(3, 4));
            testFailures++; 
        }
        if (minimum(5, 4) != 4) {
            out.println("Error 4: Minimum failed test.  Expected 4, got " + minimum(5, 4));
            testFailures++; 
        }

        if (maximum(4, 3) != 4) {
            out.println("Error 5: Maxmimum failed test.  Expected 4, got " + maximum(4, 3));
            testFailures++; 
        }
        if (maximum(3, 4) != 4) {
            out.println("Error 6: Maxmimum failed test.  Expected 4, got " + maximum(3, 4));
            testFailures++; 
        }
        if (maximum(4, 4) != 4) {
            out.println("Error 7: Maxmimum failed test.  Expected 4, got " + maximum(4, 4));
            testFailures++; 
        }
        if (maximum(-2, 10) != 10) {
            out.println("Error 8: Maxmimum failed test.  Expected 10, got " + maximum(-2, 10));
            testFailures++; 
        }

        if (isEvenNumber(3)) {
            out.println("Error 9: isEven failed test.  Expected isEven(3) to be false, but got true.");
            testFailures++; 
        }
        if (!isEvenNumber(2)) {
            out.println("Error 10: isEven failed test.  Expected isEven(2) to be true, but got false.");
            testFailures++; 
        }
        if (isOddNumber(0)) {
            out.println("Error 11: isOdd failed test.  Expected isOdd(0) to be false, but got true.");
            testFailures++; 
        }
        if (!isOddNumber(5)) {
            out.println("Error 12: isOdd failed test.  Expected isOdd(5) to be true, but got false.");
            testFailures++; 
        }
        if (isOddNumber(18)) {
            out.println("Error 13: isOdd failed test.  Expected isOdd(18) to be false, but got true.");
            testFailures++; 
        }

        if (!isVowel('a')) {
            out.println("Error 14: isVowel failed test.  Expected isVowel('a') to be true, but got false.");
            testFailures++; 
        }
        if (isVowel('x')) {
            out.println("Error 15: isVowel failed test.  Expected isVowel('x') to be false, but got true.");
            testFailures++; 
        }
        if (!isConsonant('z')) {
            out.println("Error 16: isConsonant failed test.  Expected isConsonant('z') to be true, but got false.");
            testFailures++; 
        }
        if (isConsonant('i')) {
            out.println("Error 17: isCononant failed test.  Expect isConsonant('i') to be false, but got true.");
            testFailures++; 
        }
        if (!isConsonant('b')) {
            out.println("Error 18: isConsonant failed test.  Expected isConsonant('b') to be true, but got false.");
            testFailures++; 
        }        
        if (!isConsonant('c')) {
            out.println("Error 19: isConsonant failed test.  Expected isConsonant('c') to be true, but got false.");
            testFailures++; 
        }        
        if (!isConsonant('d')) {
            out.println("Error 20: isConsonant failed test.  Expected isConsonant('d') to be true, but got false.");
            testFailures++; 
        }        
        if (!isConsonant('f')) {
            out.println("Error 21: isConsonant failed test.  Expected isConsonant('f') to be true, but got false.");
            testFailures++; 
        }        
        if (!isConsonant('g')) {
            out.println("Error 22: isConsonant failed test.  Expected isConsonant('g') to be true, but got false.");
            testFailures++; 
        }
        if (!isVowel('A')) {
            out.println("Error 23: isVowel failed test.  Expected isVowel('A') to be true, but got false.");
            testFailures++; 
        }
        if (isVowel('X')) {
            out.println("Error 24: isVowel failed test.  Expected isVowel('X') to be false, but got true.");
            testFailures++; 
        }
        if (!isConsonant('Z')) {
            out.println("Error 25: isConsonant failed test.  Expected isConsonant('Z') to be true, but got false.");
            testFailures++; 
        }
        if (isConsonant('I')) {
            out.println("Error 26: isCononant failed test.  Expect isConsonant('I') to be false, but got true.");
            testFailures++; 
        }

        if (testFailures == 0) {
            out.println("Success!  All test cases passed.");
        } else {
            out.println(testFailures + " tests failed.  Keep trying!");
        }
    }
}


Что я уже пробовал:

Раскачивание взад и вперед в позе эмбриона

Graeme_Grant

"Раскачивание взад-вперед в позе эмбриона"

Программирование действительно для вас?

2 Ответов

Рейтинг:
9

Jochen Arndt

С моей точки зрения, инструкции ясны. Однако они требуют базовых знаний о функциях (возвращаемое значение, аргументы).

Давайте посмотрим:

/**
* Takes two integer numbers as input and returns whichever number is smaller.
*/
public static ___ minimum(_, __)
{
    // TODO
}
Вам просто нужно заменить __ так что функция работает так, как описано. Таким образом, первый должен быть заменен типом возвращаемого значения, а остальные-типом и именем аргументов.

Затем реализуйте тело функции, используя имена переменных аргументов для выполнения запрошенной операции.

Для всего вышесказанного это может быть
/**
* Takes two integer numbers as input and returns whichever number is smaller.
*/
public static int minimum(int x, int y)
{
    if (x <= y)
        return x;
    else
        return y;
}

Сделайте то же самое для других функций:
Выведите тип возвращаемого значения и тип аргументов из описания функции, выберите имена аргументов и реализуйте тело функции так, чтобы оно выполняло ожидаемое. Скомпилируйте и запустите, чтобы узнать, правильно ли было реализовано тело.


wilma2202

Ладно, ничего себе..

Как обычно, я думаю, что предположил, что ответ был гораздо сложнее! Спасибо за это..

Однако я все еще застрял на методах isVowel и isConstanant..

Я предполагаю, что они возвращают логические значения и принимают 'char', но я не могу понять, как правильно построить синтаксис для такого метода.

Jochen Arndt

Логический тип возвращаемого значения и аргументов типа char являются правильными.

Читать комментарии. Они дают вам подсказки. Для гласной это говорит вам, что вы можете ожидать буквы. Это означает, что аргументы находятся в диапазонах a-z и A-Z.

Для согласного есть еще одна подсказка (1 короткая строка кода).
Мой намек: в чем разница между гласными и согласными?

wilma2202

если (a!= 'a' | / 'e' | / 'i' | / 'o' | / 'u')

Это то, что логически имеет смысл для меня, но это не будет работать, потому что его смешивание boolean и char
синтаксис

Jochen Arndt

Вы должны использовать несколько сравнений, где каждое из них приводит к логическому значению:
if ((a ! = 'a') | /(a ! = 'e')||...)

wilma2202

Спасибо!

Последний вопрос.. Я понял, что не правильно заполнил части isOdd isEven..

Я посмотрел, как это сделать, и большинство форумов предлагают использовать оператор модуля, но мне нужно знать, как это сделать, так как мне нужно будет использовать подобную логику в следующем задании..

Jochen Arndt

Вы можете использовать оператор модуля/остатка (значение % 2), но лучшим решением является побитовый оператор.

wilma2202

Ни тому, ни другому в моем курсе до сих пор не учили, и в следующем задании я должен написать программу для вывода, являются ли годы в списке високосными или нет, поэтому я полагаю, что эта программа будет использовать подобную логику, чтобы построить это..

Неужели нет другого способа сделать это?

Jochen Arndt

Ничего другого мне в голову не приходит.
Для определения високосного года необходимо использовать оператор по модулю. Это не что иное, как остаток операции деления, которая является основной математикой и должна быть известна.

wilma2202

Хорошо, большое вам спасибо за вашу помощь!!!

wilma2202

Видите ли, проблема в том, что я совсем не знаком с синтаксисом char и boolean. Для меня было просто выяснить вопросы о нечетных и четных числах, потому что это было похоже на эти типы переменных.

Рейтинг:
13

Richard MacCutchan

Проведите некоторое время с Учебные Пособия По Java™ [^], вы узнаете гораздо больше.


wilma2202

Спасибо, сделаю!