Algorithm


Problem Name: 30 days of code - Day 4: Class vs. Instance

Problem Link: https://www.hackerrank.com/challenges/30-class-vs-instance/problem?isFullScreen=true

In this HackerRank in 30 Days of Code - Day 4: Class vs. Instance problem solution,

Objective
In this challenge, we're going to learn about the difference between a class and an instance; because this is an Object Oriented concept, it's only enabled in certain languages. Check out the Tutorial tab for learning materials and an instructional video!

Task:

Write a Person class with an instance variable, age, and a constructor that takes an integer, initialAge, as a parameter.

The constructor must assign initialAge to age after confirming the argument passed as initialAge is not negative;

if a negative argument is passed as initialAge, the constructor should set age to 0 and print Age is not valid, setting age to 0..

In addition, you must write the following instance methods:

  • yearPasses() should increase the age instance variable by 1.
  • amIOld() should perform the following conditional actions: 

If age <= 13, print You are young..

If age >= 13 and age < 18, print You are a teenager..

Otherwise, print You are old..

Input Format:

Input is handled for you by the stub code in the editor. The first line contains an integer, T (the number of test cases), and the T

subsequent lines each contain an integer denoting the age of a Person instance.

Constraints:

1 < T < 4

-5 < age < 30
 
Output Format:

Complete the method definitions provided in the editor so they meet the specifications outlined above;

the code to test your work is already in the editor.

If your methods are implemented correctly, each test case will print 2 or 3 lines (depending on whether or not a valid

initialAge was passed to the constructor).
 

Sample Input:

4

-1

10

16

18

Sample Output:

Age is not valid, setting age to 0.

You are young.

You are young.

You are young

You are a teenager.

You are a teenager.

You are old.

You are old.

You are old.

Explanation:

Test Case 0: initialAge = -1

Because initialAge < 0, our code must set age to 0 and print the "Age is not valid..." message followed by the young message. Three years pass and

age = 3, so we print the young message again.

Test Case 1:initialAge = 10

Because initialAge < 13, our code should print that the person is young. Three years pass and age = 13,

so we print that the person is now a teenager.

Test Case 2:initialAge = 16

Because 13 < initialAge < 18, our code should print that the person is a teenager. Three years pass and age = 19,

so we print that the person is old.

Test Case 3:initialAge = 18

Because initialAge >= 18 , our code should print that the person is old. Three years pass and the person is still old at age = 21,

so we print the old message again.

 

 

Code Examples

#1 Code Example with C++ Programming

Code - C++ Programming

#include <iostream>

using namespace std;

class Person {
public:
    int age;

    Person(int initialAge);

    void amIOld();

    void yearPasses();
};

Person::Person(int initialAge) {
    // Add some more code to run some checks on initialAge
    if (initialAge > 0) age = initialAge;
    else {
        cout << "Age is not valid, setting age to 0." << endl;
        age = 0;
    }
}

void Person::amIOld() {
    // Do some computations in here and print out the correct statement to the console
    if (age  <  13) cout << "You are young." << endl;
    else if (age  <  18) cout << "You are a teenager." << endl;
    else cout << "You are old." << endl;
}

void Person::yearPasses() {
    // Increment the age of the person in here
    age++;
}

int main() {
    int t;
    int age;
    cin >> t;
    for (int i = 0; i  <  t; i++) {
        cin >> age;
        Person p(age);
        p.amIOld();
        for (int j = 0; j  <  3; j++) {
            p.yearPasses();
        }
        p.amIOld();
        cout << '\n';
    }

    return 0;
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
4
-1
10
16
18

Output

x
+
cmd
Age is not valid, setting age to 0. You are young. You are young. You are young.
You are a teenager.

You are a teenager.
You are old.

You are old.
You are old.

#2 Code Example with Python Programming

Code - Python Programming

class Person:
    def __init__(self, initialAge):
        if initialAge > 0:
            self.age = initialAge
        else:
            print("Age is not valid, setting age to 0.")
            self.age = 0

    def amIOld(self):
        if self.age < 13:
            print("You are young.")
        elif self.age < 18:
            print("You are a teenager.")
        else:
            print("You are old.")

    def yearPasses(self):
        self.age += 1
Copy The Code & Try With Live Editor

#3 Code Example with Java Programming

Code - Java Programming

import java.util.Scanner;

public class Solution {
    static class Person {
        private int age;

        public Person(int initialAge) {
            // Add some more code to run some checks on initialAge
            if (initialAge > 0) {
                age = initialAge;
            } else {
                System.out.println("Age is not valid, setting age to 0.");
                age = 0;
            }
        }

        public void amIOld() {
            // Write code determining if this person's age is old and print the correct statement:
            if (age  <  13) System.out.println("You are young.");
            else if (age < 18) System.out.println("You are a teenager.");
            else System.out.println("You are old.");
        }

        public void yearPasses() {
            // Increment this person's age.
            age++;
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for (int i = 0; i  <  T; i++) {
            int age = sc.nextInt();
            Person p = new Person(age);
            p.amIOld();
            for (int j = 0; j  <  3; j++) {
                p.yearPasses();
            }
            p.amIOld();
            System.out.println();
        }
        sc.close();
    }
}
Copy The Code & Try With Live Editor

#4 Code Example with Javascript Programming

Code - Javascript Programming


function Person(initialAge) {
    // Add some more code to run some checks on initialAge
    if (initialAge < 0) {
        console.log("Age is not valid, setting age to 0.");
        this.age = 0;
    } else {
        this.age = initialAge;
    }
    this.amIOld = function () {
        // Do some computations in here and print out the correct statement to the console
        if (this.age  <  13) {
            console.log('You are young.');
        } else if (this.age >= 13 && this.age < 18) {
            console.log("You are a teenager.");
        } else {
            console.log('You are old.');
        }
    };
    this.yearPasses = function () {
        // Increment the age of the person in here
        this.age += 1;
    };
}
Copy The Code & Try With Live Editor
Advertisements

Demonstration


[Solved] Day 4 Class vs. Instance solution in Hackerrank - Hacerrank solution C, C++, C#, java, Js, PHP,  Python in 30 days of code

Previous
[Solved] Day 3: Intro to Conditional Statements solution in Hackerrank - Hacerrank solution C, C++, C#, java, Js, PHP, Python in 30 days of code
Next
[Solved] Day 5: Loops solution in Hackerrank - Hacerrank solution C, C++, C#, java, Js, PHP, Python in 30 days of code