Ybadoo - Soluções em Software Livre
Tutoriais
Programação Orientada a Objetos

Slides

Desenvolva uma classe chamada Triangle para representar um triângulo equilátero, ou seja, um trilátero regular com três lados de mesmo comprimento. A classe possui um único atributo denominado side, do tipo double, que representa o lado do triângulo equilátero. O construtor da classe recebe como parâmetro o lado do triângulo equilátero, cujo valor deve ser maior ou igual a zero. O lado do triângulo equilátero pode ser obtido pelo usuário por meio do método getSide(). A classe também apresenta os métodos area() e perimeter(), que retornam a área e o perímetro do triângulo equilátero, respectivamente. A área de um triângulo equilátero de lado l é obtida pela fórmula √3 / 4 * l2. O perímetro de um triângulo equilátero de lado l é obtido pela fórmula 3 * l.
Desenvolva uma classe chamada Square para representar um quadrado, ou seja, um quadrilátero regular com quatro lados de mesmo comprimento. A classe possui um único atributo denominado side, do tipo double, que representa o lado do quadrado. O construtor da classe recebe como parâmetro o lado do quadrado, cujo valor deve ser maior ou igual a zero. O lado do quadrado pode ser obtido pelo usuário por meio do método getSide(). A classe também apresenta os métodos area(), diagonal() e perimeter(), que retornam a área, a diagonal e o perímetro do quadrado, respectivamente. A área de um quadrado de lado l é obtida pela fórmula l2. A diagonal de um quadrado de lado l é obtida pela fórmula √2 * l. O perímetro de um quadrado de lado l é obtido pela fórmula 4 * l.
Desenvolva uma classe chamada Pentagon para representar um pentágono, ou seja, um polígono regular com cinco lados de mesmo comprimento. A classe possui um único atributo denominado side, do tipo double, que representa o lado do pentágono. O construtor da classe recebe como parâmetro o lado do pentágono, cujo valor deve ser maior ou igual a zero. O lado do pentágono pode ser obtido pelo usuário por meio do método getSide(). A classe também apresenta os métodos area() e perimeter(), que retornam a área e o perímetro do pentágono, respectivamente. A área de um pentágono de lado l é obtida pela fórmula √(25 + 10 * √5) / 4 * l2. O perímetro de um pentágono de lado l é obtido pela fórmula 5 * l.
Desenvolva uma classe chamada Hexagon para representar um hexágono, ou seja, um polígono regular com seis lados de mesmo comprimento. A classe possui um único atributo denominado side, do tipo double, que representa o lado do hexágono. O construtor da classe recebe como parâmetro o lado do hexágono, cujo valor deve ser maior ou igual a zero. O lado do hexágono pode ser obtido pelo usuário por meio do método getSide(). A classe também apresenta os métodos area() e perimeter(), que retornam a área e o perímetro do hexágono, respectivamente. A área de um hexágono de lado l é obtida pela fórmula 3 / 2 * √3 * l2. O perímetro de um hexágono de lado l é obtido pela fórmula 6 * l.
Desenvolva uma classe chamada Octagon para representar um octógono, ou seja, um polígono regular com oito lados de mesmo comprimento. A classe possui um único atributo denominado side, do tipo double, que representa o lado do octógono. O construtor da classe recebe como parâmetro o lado do octógono, cujo valor deve ser maior ou igual a zero. O lado do octógono pode ser obtido pelo usuário por meio do método getSide(). A classe também apresenta os métodos area() e perimeter(), que retornam a área e o perímetro do octógono, respectivamente. A área de um octógono de lado l é obtida pela fórmula 2 * (√2 + 1) * l2. O perímetro de um octógono de lado l é obtido pela fórmula 8 * l.
Desenvolva uma classe chamada Decagon para representar um decágono, ou seja, um polígono regular com dez lados de mesmo comprimento. A classe possui um único atributo denominado side, do tipo double, que representa o lado do decágono. O construtor da classe recebe como parâmetro o lado do decágono, cujo valor deve ser maior ou igual a zero. O lado do decágono pode ser obtido pelo usuário por meio do método getSide(). A classe também apresenta os métodos area() e perimeter(), que retornam a área e o perímetro do decágono, respectivamente. A área de um decágono de lado l é obtida pela fórmula 5 / 2 * (√5 + 2 * √5) * l2. O perímetro de um decágono de lado l é obtido pela fórmula 10 * l.
Desenvolva uma classe chamada Dodecagon para representar um dodecágono, ou seja, um polígono regular com doze lados de mesmo comprimento. A classe possui um único atributo denominado side, do tipo double, que representa o lado do dodecágono. O construtor da classe recebe como parâmetro o lado do dodecágono, cujo valor deve ser maior ou igual a zero. O lado do dodecágono pode ser obtido pelo usuário por meio do método getSide(). A classe também apresenta os métodos area() e perimeter(), que retornam a área e o perímetro do dodecágono, respectivamente. A área de um dodecágono de lado l é obtida pela fórmula (6 + 3 * √3) * l2. O perímetro de um dodecágono de lado l é obtido pela fórmula 12 * l.
Desenvolva uma classe chamada Hexadecagon para representar um hexadecágono, ou seja, um polígono regular com dezesseis lados de mesmo comprimento. A classe possui um único atributo denominado side, do tipo double, que representa o lado do hexadecágono. O construtor da classe recebe como parâmetro o lado do hexadecágono, cujo valor deve ser maior ou igual a zero. O lado do hexadecágono pode ser obtido pelo usuário por meio do método getSide(). A classe também apresenta os métodos area() e perimeter(), que retornam a área e o perímetro do hexadecágono, respectivamente. A área de um hexadecágono de lado l é obtida pela fórmula 4 * (1 + √2 + √(2 * (2 + √2))) * l2. O perímetro de um hexadecágono de lado l é obtido pela fórmula 16 * l.
Desenvolva uma classe chamada Icosagon para representar um icoságono, ou seja, um polígono regular com vinte lados de mesmo comprimento. A classe possui um único atributo denominado side, do tipo double, que representa o lado do icoságono. O construtor da classe recebe como parâmetro o lado do icoságono, cujo valor deve ser maior ou igual a zero. O lado do icoságono pode ser obtido pelo usuário por meio do método getSide(). A classe também apresenta os métodos area() e perimeter(), que retornam a área e o perímetro do icoságono, respectivamente. A área de um icoságono de lado l é obtida pela fórmula 5 * (1 + √5 + √(5 + 2 * √5)) * l2. O perímetro de um icoságono de lado l é obtido pela fórmula 20 * l.
Desenvolva uma classe chamada Tetrahedron para representar um tetraedro, ou seja, um poliedro regular de quatro faces, considerado um dos cinco Sólidos Platônicos. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do tetraedro. O construtor da classe recebe como parâmetro a aresta do tetraedro, cujo valor deve ser maior ou igual a zero. A aresta do tetraedro pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do tetraedro, respectivamente. A área de um tetraedro de aresta a é obtida pela fórmula √3 * a2. O volume de um tetraedro de aresta a é obtido pela fórmula √2 / 12 * a3.
Desenvolva uma classe chamada Hexahedron para representar um hexaedro, ou seja, um poliedro regular de seis faces, considerado um dos cinco Sólidos Platônicos. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do hexaedro. O construtor da classe recebe como parâmetro a aresta do hexaedro, cujo valor deve ser maior ou igual a zero. A aresta do hexaedro pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do hexaedro, respectivamente. A área de um hexaedro de aresta a é obtida pela fórmula 6 * a2. O volume de um hexaedro de aresta a é obtido pela fórmula a3.
Desenvolva uma classe chamada Octahedron para representar um octaedro, ou seja, um poliedro regular de oito faces, considerado um dos cinco Sólidos Platônicos. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do octaedro. O construtor da classe recebe como parâmetro a aresta do octaedro, cujo valor deve ser maior ou igual a zero. A aresta do octaedro pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do octaedro, respectivamente. A área de um octaedro de aresta a é obtida pela fórmula 2 * √3 * a2. O volume de um octaedro de aresta a é obtido pela fórmula √2 / 3 * a3.
Desenvolva uma classe chamada Dodecahedron para representar um dodecaedro, ou seja, um poliedro regular de doze faces, considerado um dos cinco Sólidos Platônicos. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do dodecaedro. O construtor da classe recebe como parâmetro a aresta do dodecaedro, cujo valor deve ser maior ou igual a zero. A aresta do dodecaedro pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do dodecaedro, respectivamente. A área de um dodecaedro de aresta a é obtida pela fórmula 3 * √(25 + 10 * √5) * a2. O volume de um dodecaedro de aresta a é obtido pela fórmula 1 / 4 * (15 + 7 * √5) * a3.
Desenvolva uma classe chamada Icosahedron para representar um icosaedro, ou seja, um poliedro regular de vinte faces, considerado um dos cinco Sólidos Platônicos. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do icosaedro. O construtor da classe recebe como parâmetro a aresta do icosaedro, cujo valor deve ser maior ou igual a zero. A aresta do icosaedro pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do icosaedro, respectivamente. A área de um icosaedro de aresta a é obtida pela fórmula 5 * √3 * a2. O volume de um icosaedro de aresta a é obtido pela fórmula 5 / 12 * (3 + √5) * a3.
Desenvolva uma classe chamada TruncatedTetrahedron para representar um tetraedro truncado, ou seja, um poliedro semi-regular composto por quatro hexágonos regulares e quatro triângulos equiláteros, considerado um dos treze Sólidos de Arquimedes. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do tetraedro truncado. O construtor da classe recebe como parâmetro a aresta do tetraedro truncado, cujo valor deve ser maior ou igual a zero. A aresta do tetraedro truncado pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do tetraedro truncado, respectivamente. A área de um tetraedro truncado de aresta a é obtida pela fórmula 7 * √3 * a2. O volume de um tetraedro truncado de aresta a é obtido pela fórmula 23 / 12 * √2 * a3.
Desenvolva uma classe chamada Cuboctahedron para representar um cuboctaedro, ou seja, um poliedro semi-regular composto por oito faces triangulares e seis faces quadradas, considerado um dos treze Sólidos de Arquimedes. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do cuboctaedro. O construtor da classe recebe como parâmetro a aresta do cuboctaedro, cujo valor deve ser maior ou igual a zero. A aresta do cuboctaedro pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do cuboctaedro, respectivamente. A área de um cuboctaedro de aresta a é obtida pela fórmula (6 + 2 * √3) * a2. O volume de um cuboctaedro de aresta a é obtido pela fórmula 5 / 3 * √2 * a3.
Desenvolva uma classe chamada TruncatedCube para representar um cubo truncado, ou seja, um poliedro semi-regular composto por seis faces octogonais regulares e oito faces triangulares regulares, considerado um dos treze Sólidos de Arquimedes. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do cubo truncado. O construtor da classe recebe como parâmetro a aresta do cubo truncado, cujo valor deve ser maior ou igual a zero. A aresta do cubo truncado pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do cubo truncado, respectivamente. A área de um cubo truncado de aresta a é obtida pela fórmula 2 * (6 + 6 * √2 + √3) * a2. O volume de um cubo truncado de aresta a é obtido pela fórmula 1 / 3 * (21 + 14 * √2) * a3.
Desenvolva uma classe chamada TruncatedOctahedron para representar um octaedro truncado, ou seja, um poliedro semi-regular composto por oito faces hexagonais regulares e seis faces quadradas, considerado um dos treze Sólidos de Arquimedes. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do octaedro truncado. O construtor da classe recebe como parâmetro a aresta do octaedro truncado, cujo valor deve ser maior ou igual a zero. A aresta do octaedro truncado pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do octaedro truncado, respectivamente. A área de um octaedro truncado de aresta a é obtida pela fórmula (6 + 12 * √3) * a2. O volume de um octaedro truncado de aresta a é obtido pela fórmula 8 * √2 * a3.
Desenvolva uma classe chamada Rhombicuboctahedron para representar um rombicuboctaedro, ou seja, um poliedro semi-regular composto por oito triângulos equiláteros e dezoito quadrados, considerado um dos treze Sólidos de Arquimedes. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do rombicuboctaedro. O construtor da classe recebe como parâmetro a aresta do rombicuboctaedro, cujo valor deve ser maior ou igual a zero. A aresta do rombicuboctaedro pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do rombicuboctaedro, respectivamente. A área de um rombicuboctaedro de aresta a é obtida pela fórmula (18 + 2 * √3) * a2. O volume de um rombicuboctaedro de aresta a é obtido pela fórmula 1 / 3 * (12 + 10 * √2) * a3.
Desenvolva uma classe chamada TruncatedCuboctahedron para representar um cuboctaedro truncado, ou seja, um poliedro semi-regular composto por doze quadrados, oito hexágonos e seis octógonos, considerado um dos treze Sólidos de Arquimedes. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do cuboctaedro truncado. O construtor da classe recebe como parâmetro a aresta do cuboctaedro truncado, cujo valor deve ser maior ou igual a zero. A aresta do cuboctaedro truncado pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do cuboctaedro truncado, respectivamente. A área de um cuboctaedro truncado de aresta a é obtida pela fórmula 12 * (2 + √2 + √3) * a2. O volume de um cuboctaedro truncado de aresta a é obtido pela fórmula (22 + 14 * √2) * a3.
Desenvolva uma classe chamada Icosidodecahedron para representar um icosidodecaedro, ou seja, um poliedro semi-regular composto por vinte faces triangulares regulares e doze faces pentagonais regulares, considerado um dos treze Sólidos de Arquimedes. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do icosidodecaedro. O construtor da classe recebe como parâmetro a aresta do icosidodecaedro, cujo valor deve ser maior ou igual a zero. A aresta do icosidodecaedro pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do icosidodecaedro, respectivamente. A área de um icosidodecaedro de aresta a é obtida pela fórmula (5 * √3 + 3 * √(25 + 10 * √5)) * a2. O volume de um icosidodecaedro de aresta a é obtido pela fórmula 1 / 6 * (45 + 17 * √5) * a3.
Desenvolva uma classe chamada TruncatedDodecahedron para representar um dodecaedro truncado, ou seja, um poliedro semi-regular composto por doze faces decagonais regulares e vinte triangulares regulares, considerado um dos treze Sólidos de Arquimedes. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do dodecaedro truncado. O construtor da classe recebe como parâmetro a aresta do dodecaedro truncado, cujo valor deve ser maior ou igual a zero. A aresta do dodecaedro truncado pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do dodecaedro truncado, respectivamente. A área de um dodecaedro truncado de aresta a é obtida pela fórmula 5 * (√3 + 6 * √(5 + 2 * √5)) * a2. O volume de um dodecaedro truncado de aresta a é obtido pela fórmula 5 / 12 * (99 + 47 * √5) * a3.
Desenvolva uma classe chamada TruncatedIcosahedron para representar um icosaedro truncado, ou seja, um poliedro semi-regular composto por doze faces pentagonais regulares e vinte hexagonais regulares, considerado um dos treze Sólidos de Arquimedes. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do icosaedro truncado. O construtor da classe recebe como parâmetro a aresta do icosaedro truncado, cujo valor deve ser maior ou igual a zero. A aresta do icosaedro truncado pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do icosaedro truncado, respectivamente. A área de um icosaedro truncado de aresta a é obtida pela fórmula 3 * (10 * √3 + √5 * √(5 + 2 * √5)) * a2. O volume de um icosaedro truncado de aresta a é obtido pela fórmula 1 / 4 * (125 + 43 * √5) * a3.
Desenvolva uma classe chamada Rhombicosidodecahedron para representar um rombicosidodecaedro, ou seja, um poliedro semi-regular composto por vinte faces triangulares regulares, trinta quadradas e doze pentagonais regulares, considerado um dos treze Sólidos de Arquimedes. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do rombicosidodecaedro. O construtor da classe recebe como parâmetro a aresta do rombicosidodecaedro, cujo valor deve ser maior ou igual a zero. A aresta do rombicosidodecaedro pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do rombicosidodecaedro, respectivamente. A área de um rombicosidodecaedro de aresta a é obtida pela fórmula (30 + √(30 * (10 + 3 * √5 + √(15 * (2 + 2 * √5))))) * a2. O volume de um rombicosidodecaedro de aresta a é obtido pela fórmula 1 / 3 * (60 + 29 * √5) * a3.
Desenvolva uma classe chamada TruncatedIcosidodecahedron para representar um icosidodecaedro truncado, ou seja, um poliedro semi-regular composto por trinta quadrados, vinte hexágonos e doze decágonos, considerado um dos treze Sólidos de Arquimedes. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do icosidodecaedro truncado. O construtor da classe recebe como parâmetro a aresta do icosidodecaedro truncado, cujo valor deve ser maior ou igual a zero. A aresta do icosidodecaedro truncado pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do icosidodecaedro truncado, respectivamente. A área de um icosidodecaedro truncado de aresta a é obtida pela fórmula 30 * (1 + √3 + √(5 + 2 * √5)) * a2. O volume de um icosidodecaedro truncado de aresta a é obtido pela fórmula (95 + 50 * √5) * a3.
Desenvolva uma classe chamada SnubCube para representar um cubo snub, ou seja, um poliedro semi-regular composto por seis quadrados e trinta e dois triângulos equiláteros, considerado um dos treze Sólidos de Arquimedes. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do cubo snub. O construtor da classe recebe como parâmetro a aresta do cubo snub, cujo valor deve ser maior ou igual a zero. A aresta do cubo snub pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do cubo snub, respectivamente. A área de um cubo snub de aresta a é obtida pela fórmula (6 + 8 * √3) * a2. O volume de um cubo snub de aresta a é obtido pela fórmula √((613 * t + 203) / (9 * (35 * t - 62))) * a3, sendo t obtido pela fórmula 1 / 3 * (1 + 3√(19 - 3 * √33) + 3√(19 + 3 * √33)).
Desenvolva uma classe chamada SnubDodecahedron para representar um dodecaedro snub, ou seja, um poliedro semi-regular composto por doze pentágonos regulares e oitenta triângulos equiláteros, considerado um dos treze Sólidos de Arquimedes. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do dodecaedro snub. O construtor da classe recebe como parâmetro a aresta do dodecaedro snub, cujo valor deve ser maior ou igual a zero. A aresta do dodecaedro snub pode ser obtida pelo usuário por meio do método getEdge(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do dodecaedro snub, respectivamente. A área de um dodecaedro snub de aresta a é obtida pela fórmula (20 * √3 + 3 * √(25 + 10 * √5)) * a2. O volume de um dodecaedro snub de aresta a é obtido pela fórmula (12 * ξ2 * (3 * τ + 1) - ξ * (36 * τ + 7) - (53 * τ + 6)) / (6 * (√(3 - ξ2))3) * a3, sendo ξ obtido pela fórmula 3√(τ / 2 + 1 / 2 * √(τ - 5 / 27)) + 3√(τ / 2 - 1 / 2 * √(τ - 5 / 27)) e τ pela fórmula (1 + √5) / 2.
Desenvolva uma classe chamada Sphere para representar uma esfera. A classe possui um único atributo denominado radius, do tipo double, que representa o raio da esfera. O construtor da classe recebe como parâmetro o raio da esfera, cujo valor deve ser maior ou igual a zero. O raio da esfera pode ser obtido pelo usuário por meio do método getRadius(). A classe também apresenta os métodos area() e volume(), que retornam a área e o volume da esfera, respectivamente. A área de uma esfera de raio r é obtida pela fórmula 4 * π * r2. O volume de uma esfera de raio r é obtido pela fórmula 4 / 3 * π * r3.
Desenvolva uma classe chamada Cylinder para representar um cilindro. A classe possui dois atributos denominados height e radius, ambos do tipo double, que representam a altura e o raio do cilindro, respectivamente. O construtor da classe recebe como parâmetro a altura e o raio do cilindro, cujos valores devem ser maiores ou iguais a zero. A altura e o raio do cilindro podem ser obtidos pelo usuário por meio dos métodos getHeight() e getRadius(), respectivamente. A classe também apresenta os métodos baseArea(), lateralArea(), surfaceArea() e volume(), que retornam a área da base, a área lateral, a área total e o volume do cilindro, respectivamente. A área da base de um cilindro de raio r é obtida pela fórmula π * r2. A área lateral de um cilindro de altura h e de raio r é obtida pela fórmula 2 * π * h * r. A área total de um cilindro de altura h e de raio r é obtida pela fórmula 2 * π * (h + r) * r. O volume de um cilindro de altura h e de raio r é obtido pela fórmula π * h * r2.