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 e cujo valor deve ser maior ou igual a zero e menor ou igual a vinte. A classe possui dois construtores: o primeiro configura o lado do triângulo equilátero com o valor padrão 1.0
, e o segundo recebe como parâmetro o lado do triângulo equilátero. O lado do triângulo equilátero pode ser obtido e alterado pelo usuário por meio dos métodos getSide()
e setSide()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a vinte. A classe possui dois construtores: o primeiro configura o lado do quadrado com o valor padrão 1.0
, e o segundo recebe como parâmetro o lado do quadrado. O lado do quadrado pode ser obtido e alterado pelo usuário por meio dos métodos getSide()
e setSide()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a vinte. A classe possui dois construtores: o primeiro configura o lado do pentágono com o valor padrão 1.0
, e o segundo recebe como parâmetro o lado do pentágono. O lado do pentágono pode ser obtido e alterado pelo usuário por meio dos métodos getSide()
e setSide()
, respectivamente. 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 (l2 * √(25 + 10 * √5)) / 4. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a vinte. A classe possui dois construtores: o primeiro configura o lado do hexágono com o valor padrão 1.0
, e o segundo recebe como parâmetro o lado do hexágono. O lado do hexágono pode ser obtido e alterado pelo usuário por meio dos métodos getSide()
e setSide()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a vinte. A classe possui dois construtores: o primeiro configura o lado do octógono com o valor padrão 1.0
, e o segundo recebe como parâmetro o lado do octógono. O lado do octógono pode ser obtido e alterado pelo usuário por meio dos métodos getSide()
e setSide()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a vinte. A classe possui dois construtores: o primeiro configura o lado do decágono com o valor padrão 1.0
, e o segundo recebe como parâmetro o lado do decágono. O lado do decágono pode ser obtido e alterado pelo usuário por meio dos métodos getSide()
e setSide()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a vinte. A classe possui dois construtores: o primeiro configura o lado do dodecágono com o valor padrão 1.0
, e o segundo recebe como parâmetro o lado do dodecágono. O lado do dodecágono pode ser obtido e alterado pelo usuário por meio dos métodos getSide()
e setSide()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a vinte. A classe possui dois construtores: o primeiro configura o lado do hexadecágono com o valor padrão 1.0
, e o segundo recebe como parâmetro o lado do hexadecágono. O lado do hexadecágono pode ser obtido e alterado pelo usuário por meio dos métodos getSide()
e setSide()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a vinte. A classe possui dois construtores: o primeiro configura o lado do icoságono com o valor padrão 1.0
, e o segundo recebe como parâmetro o lado do icoságono. O lado do icoságono pode ser obtido e alterado pelo usuário por meio dos métodos getSide()
e setSide()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a trinta. A classe possui dois construtores: o primeiro configura a aresta do tetraedro com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do tetraedro. A aresta do tetraedro pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a trinta. A classe possui dois construtores: o primeiro configura a aresta do hexaedro com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do hexaedro. A aresta do hexaedro pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a trinta. A classe possui dois construtores: o primeiro configura a aresta do octaedro com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do octaedro. A aresta do octaedro pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a trinta. A classe possui dois construtores: o primeiro configura a aresta do dodecaedro com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do dodecaedro. A aresta do dodecaedro pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a trinta. A classe possui dois construtores: o primeiro configura a aresta do icosaedro com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do icosaedro. A aresta do icosaedro pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a quarenta. A classe possui dois construtores: o primeiro configura a aresta do tetraedro truncado com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do tetraedro truncado. A aresta do tetraedro truncado pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a quarenta. A classe possui dois construtores: o primeiro configura a aresta do cuboctaedro com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do cuboctaedro. A aresta do cuboctaedro pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a quarenta. A classe possui dois construtores: o primeiro configura a aresta do cubo truncado com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do cubo truncado. A aresta do cubo truncado pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a quarenta. A classe possui dois construtores: o primeiro configura a aresta do octaedro truncado com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do octaedro truncado. A aresta do octaedro truncado pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a quarenta. A classe possui dois construtores: o primeiro configura a aresta do rombicuboctaedro com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do rombicuboctaedro. A aresta do rombicuboctaedro pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a quarenta. A classe possui dois construtores: o primeiro configura a aresta do cuboctaedro truncado com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do cuboctaedro truncado. A aresta do cuboctaedro truncado pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a quarenta. A classe possui dois construtores: o primeiro configura a aresta do icosidodecaedro com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do icosidodecaedro. A aresta do icosidodecaedro pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a quarenta. A classe possui dois construtores: o primeiro configura a aresta do dodecaedro truncado com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do dodecaedro truncado. A aresta do dodecaedro truncado pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a quarenta. A classe possui dois construtores: o primeiro configura a aresta do icosaedro truncado com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do icosaedro truncado. A aresta do icosaedro truncado pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a quarenta. A classe possui dois construtores: o primeiro configura a aresta do rombicosidodecaedro com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do rombicosidodecaedro. A aresta do rombicosidodecaedro pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a quarenta. A classe possui dois construtores: o primeiro configura a aresta do icosidodecaedro truncado com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do icosidodecaedro truncado. A aresta do icosidodecaedro truncado pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a quarenta. A classe possui dois construtores: o primeiro configura a aresta do cubo snub com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do cubo snub. A aresta do cubo snub pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a quarenta. A classe possui dois construtores: o primeiro configura a aresta do dodecaedro snub com o valor padrão 1.0
, e o segundo recebe como parâmetro a aresta do dodecaedro snub. A aresta do dodecaedro snub pode ser obtida e alterada pelo usuário por meio dos métodos getEdge()
e setEdge()
, respectivamente. 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 e cujo valor deve ser maior ou igual a zero e menor ou igual a sessenta. A classe possui dois construtores: o primeiro configura o raio da esfera com o valor padrão 1.0
, e o segundo recebe como parâmetro o raio da esfera. O raio da esfera pode ser obtido e alterado pelo usuário por meio dos métodos getRadius()
e setRadius()
, respectivamente. 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
, que representam a altura e o raio do cilindro, respectivamente, ambos do tipo double
e cujos valores devem ser maiores ou igual a zero e menores ou igual a setenta. A classe possui dois construtores: o primeiro configura a altura e o raio do cilindro com o valor padrão 1.0
, e o segundo recebe como parâmetro a altura e o raio do cilindro. A altura do cilindro pode ser obtida e alterada pelo usuário por meio dos métodos getHeight()
e setHeight()
, respectivamente. O raio do cilindro pode ser obtido e alterado pelo usuário por meio dos métodos getRadius()
e setRadius()
, 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.
(Deitel, 2003) Desenvolva uma classe chamada
Complex
para realizar aritmética com números complexos. Os números complexos têm a forma
realPart +
imaginaryPart *
i, onde
i é √-1. Utilize variáveis de ponto flutuante para representar os dados
private
da classe. Forneça um método construtor que permita que um objeto dessa classe seja inicializado quando ele for declarado. Forneça um construtor sem argumentos com valores
default caso nenhum inicializador seja fornecido. Forneça métodos
public
para cada um dos itens a seguir:
- somar dois números
Complex
, as partes reais são somadas de um lado e as partes imaginárias são somadas de outro; - subtrair dois números
Complex
, a parte real do operando direito é subtraída da parte real do operando esquerdo e a parte imaginária do operando direito é subtraída da parte imaginária do operando esquerdo; - imprimir os números
Complex
na forma (a, b), onde a é a parte real e b é a parte imaginária.
(Deitel, 2003) Desenvolva uma classe chamada
Rational
para realizar aritmética com frações. Utilize variáveis do tipo inteiro para representar as variáveis de instância
private
da classe - o
numerator
e o
denominator
. Forneça um método construtor que permita que um objeto dessa classe seja inicializado quando ele for declarado. O construtor deve armazenar a fração na forma reduzida (isto é, a fração 2/4 seria armazenada no objeto como 1 no
numerator
e 2 no
denominator
). Forneça um construtor sem argumentos com valores
default caso nenhum inicializador seja fornecido. Forneça métodos
public
para cada um dos itens a seguir:
- adição de dois números
Rational
, o resultado da adição deve ser armazenado na forma reduzida; - subtração de dois números
Rational
, o resultado da subtração deve ser armazenado na forma reduzida; - multiplicação de dois números
Rational
, o resultado da multiplicação deve ser armazenado na forma reduzida; - divisão de dois números
Rational
, o resultado da divisão deve ser armazenado na forma reduzida; - impressão de números
Rational
na forma a/b, onde a é o numerator
e b é o denominator
; - impressão de números
Rational
em formato de ponto flutuante (considere a possibilidade de fornecer facilidades de formatação que permitam que o usuário da classe especifique o número de dígitos de precisão à direita do ponto de fração decimal).
(Goodrich, 2007) Desenvolva uma classe chamada
Stack
para representar o tipo abstrato de dados pilha. Uma pilha é uma estrutura de dados baseada no princípio
LIFO, no qual o último elemento inserido é o primeiro elemento retirado. A classe utiliza um arranjo de inteiros para o armazenamento dos elementos e possui os seguintes atributos:
capacity
- capacidade máxima de elementos armazenados na pilha.data
- arranjo de inteiros para o armazenamento dos elementos na pilha.top
- índice para o elemento armazenado no topo da pilha.
A classe possui dois construtores: o primeiro configura a capacidade máxima de elementos armazenados na pilha com o valor padrão
100
, e o segundo recebe como parâmetro a capacidade máxima de elementos armazenados na pilha. Os métodos especificados para o tipo abstrato de dados pilha são:
empty
- verifica se a pilha está vazia.peek
- recupera o elemento do topo da pilha, ou retorna zero caso a pilha esteja vazia.pop
- recupera e remove o elemento do topo da pilha, ou retorna zero caso a pilha esteja vazia.push
- insere um novo elemento no topo da pilha, retornando true
caso o novo elemento seja inserido no topo da pilha, ou false
caso a pilha esteja cheia.size
- retorna a quantidade de elementos armazenados na pilha.
(Goodrich, 2007) Desenvolva uma classe chamada
Stack
para representar o tipo abstrato de dados pilha. Uma pilha é uma estrutura de dados baseada no princípio
LIFO, no qual o último elemento inserido é o primeiro elemento retirado. A classe utiliza uma lista simplesmente encadeada de inteiros para o armazenamento dos elementos. Uma lista simplesmente encadeada (
Singly Linked List) é uma coleção de nodos (
Node
) que juntos formam uma ordem linear, no qual cada nodo é um objeto que armazena um elemento e uma referência, chamada
next
, para o próximo nodo. A classe possui um único atributo denominado
header
, que representa a referência para o nodo armazenado no topo da pilha. Os métodos especificados para o tipo abstrato de dados pilha são:
empty
- verifica se a pilha está vazia.peek
- recupera o elemento do topo da pilha, ou retorna zero caso a pilha esteja vazia.pop
- recupera e remove o elemento do topo da pilha, ou retorna zero caso a pilha esteja vazia.push
- insere um novo elemento no topo da pilha.size
- retorna a quantidade de elementos armazenados na pilha.
(Goodrich, 2007) Desenvolva uma classe chamada
Stack
para representar o tipo abstrato de dados pilha. Uma pilha é uma estrutura de dados baseada no princípio
LIFO, no qual o último elemento inserido é o primeiro elemento retirado. A classe utiliza uma lista simplesmente encadeada de inteiros para o armazenamento dos elementos. Uma lista simplesmente encadeada (
Singly Linked List) é uma coleção de nodos (
Node
) que juntos formam uma ordem linear, no qual cada nodo é um objeto que armazena um elemento e uma referência, chamada
next
, para o próximo nodo. A classe possui os seguintes atributos:
capacity
- capacidade máxima de elementos armazenados na pilha.header
- referência para o nodo armazenado no topo da pilha.
A classe possui dois construtores: o primeiro configura a capacidade máxima de elementos armazenados na pilha com o valor padrão
100
, e o segundo recebe como parâmetro a capacidade máxima de elementos armazenados na pilha. Os métodos especificados para o tipo abstrato de dados pilha são:
empty
- verifica se a pilha está vazia.peek
- recupera o elemento do topo da pilha, ou retorna zero caso a pilha esteja vazia.pop
- recupera e remove o elemento do topo da pilha, ou retorna zero caso a pilha esteja vazia.push
- insere um novo elemento no topo da pilha, retornando true
caso o novo elemento seja inserido no topo da pilha, ou false
caso a pilha esteja cheia.size
- retorna a quantidade de elementos armazenados na pilha.
(Goodrich, 2007) Desenvolva uma classe chamada
Stack
para representar o tipo abstrato de dados pilha. Uma pilha é uma estrutura de dados baseada no princípio
LIFO, no qual o último elemento inserido é o primeiro elemento retirado. A classe utiliza uma lista duplamente encadeada de inteiros para o armazenamento dos elementos. Uma lista duplamente encadeada (
Doubly Linked List) é uma coleção de nodos (
Node
) que juntos formam uma ordem linear, no qual cada nodo é um objeto que armazena um elemento e duas referências, chamadas
previous
e
next
, para o nodo anterior e posterior ao presente nodo, respectivamente. A classe possui um único atributo denominado
header
, que representa a referência para o nodo armazenado no topo da pilha. Os métodos especificados para o tipo abstrato de dados pilha são:
empty
- verifica se a pilha está vazia.peek
- recupera o elemento do topo da pilha, ou retorna zero caso a pilha esteja vazia.pop
- recupera e remove o elemento do topo da pilha, ou retorna zero caso a pilha esteja vazia.push
- insere um novo elemento no topo da pilha.size
- retorna a quantidade de elementos armazenados na pilha.
(Goodrich, 2007) Desenvolva uma classe chamada
Stack
para representar o tipo abstrato de dados pilha. Uma pilha é uma estrutura de dados baseada no princípio
LIFO, no qual o último elemento inserido é o primeiro elemento retirado. A classe utiliza uma lista duplamente encadeada de inteiros para o armazenamento dos elementos. Uma lista duplamente encadeada (
Doubly Linked List) é uma coleção de nodos (
Node
) que juntos formam uma ordem linear, no qual cada nodo é um objeto que armazena um elemento e duas referências, chamadas
previous
e
next
, para o nodo anterior e posterior ao presente nodo, respectivamente. A classe possui os seguintes atributos:
capacity
- capacidade máxima de elementos armazenados na pilha.header
- referência para o nodo armazenado no topo da pilha.
A classe possui dois construtores: o primeiro configura a capacidade máxima de elementos armazenados na pilha com o valor padrão
100
, e o segundo recebe como parâmetro a capacidade máxima de elementos armazenados na pilha. Os métodos especificados para o tipo abstrato de dados pilha são:
empty
- verifica se a pilha está vazia.peek
- recupera o elemento do topo da pilha, ou retorna zero caso a pilha esteja vazia.pop
- recupera e remove o elemento do topo da pilha, ou retorna zero caso a pilha esteja vazia.push
- insere um novo elemento no topo da pilha, retornando true
caso o novo elemento seja inserido no topo da pilha, ou false
caso a pilha esteja cheia.size
- retorna a quantidade de elementos armazenados na pilha.
(Goodrich, 2007) Desenvolva uma classe chamada
Queue
para representar o tipo abstrato de dados fila. Uma fila é uma estrutura de dados baseada no princípio
FIFO, no qual o primeiro elemento inserido é o primeiro elemento retirado. A classe utiliza um arranjo circular de inteiros para o armazenamento dos elementos e possui os seguintes atributos:
capacity
- capacidade máxima de elementos armazenados na fila.data
- arranjo circular de inteiros para o armazenamento dos elementos na fila.first
- índice para o elemento armazenado no início da fila.last
- índice para o elemento armazenado no fim da fila.
A classe possui dois construtores: o primeiro configura a capacidade máxima de elementos armazenados na fila com o valor padrão
100
, e o segundo recebe como parâmetro a capacidade máxima de elementos armazenados na fila. Os métodos especificados para o tipo abstrato de dados fila são:
empty
- verifica se a fila está vazia.offer
- insere um novo elemento no fim da fila, retornando true
caso o novo elemento seja inserido no fim da fila, ou false
caso a fila esteja cheia.peek
- recupera o elemento do início da fila, ou retorna zero caso a fila esteja vazia.poll
- recupera e remove o elemento do início da fila, ou retorna zero caso a fila esteja vazia.size
- retorna a quantidade de elementos armazenados na fila.
(Goodrich, 2007) Desenvolva uma classe chamada
Queue
para representar o tipo abstrato de dados fila. Uma fila é uma estrutura de dados baseada no princípio
FIFO, no qual o primeiro elemento inserido é o primeiro elemento retirado. A classe utiliza uma lista simplesmente encadeada de inteiros para o armazenamento dos elementos. Uma lista simplesmente encadeada (
Singly Linked List) é uma coleção de nodos (
Node
) que juntos formam uma ordem linear, no qual cada nodo é um objeto que armazena um elemento e uma referência, chamada
next
, para o próximo nodo. A classe possui um único atributo denominado
header
, que representa a referência para o nodo armazenado no início da fila. Os métodos especificados para o tipo abstrato de dados fila são:
empty
- verifica se a fila está vazia.offer
- insere um novo elemento no fim da fila.peek
- recupera o elemento do início da fila, ou retorna zero caso a fila esteja vazia.poll
- recupera e remove o elemento do início da fila, ou retorna zero caso a fila esteja vazia.size
- retorna a quantidade de elementos armazenados na fila.
(Goodrich, 2007) Desenvolva uma classe chamada
Queue
para representar o tipo abstrato de dados fila. Uma fila é uma estrutura de dados baseada no princípio
FIFO, no qual o primeiro elemento inserido é o primeiro elemento retirado. A classe utiliza uma lista simplesmente encadeada de inteiros para o armazenamento dos elementos. Uma lista simplesmente encadeada (
Singly Linked List) é uma coleção de nodos (
Node
) que juntos formam uma ordem linear, no qual cada nodo é um objeto que armazena um elemento e uma referência, chamada
next
, para o próximo nodo. A classe possui os seguintes atributos:
header
- referência para o nodo armazenado no início da fila.tailer
- referência para o nodo armazenado no fim da fila.
Os métodos especificados para o tipo abstrato de dados fila são:
empty
- verifica se a fila está vazia.offer
- insere um novo elemento no fim da fila.peek
- recupera o elemento do início da fila, ou retorna zero caso a fila esteja vazia.poll
- recupera e remove o elemento do início da fila, ou retorna zero caso a fila esteja vazia.size
- retorna a quantidade de elementos armazenados na fila.
(Goodrich, 2007) Desenvolva uma classe chamada
Queue
para representar o tipo abstrato de dados fila. Uma fila é uma estrutura de dados baseada no princípio
FIFO, no qual o primeiro elemento inserido é o primeiro elemento retirado. A classe utiliza uma lista simplesmente encadeada de inteiros para o armazenamento dos elementos. Uma lista simplesmente encadeada (
Singly Linked List) é uma coleção de nodos (
Node
) que juntos formam uma ordem linear, no qual cada nodo é um objeto que armazena um elemento e uma referência, chamada
next
, para o próximo nodo. A classe possui os seguintes atributos:
capacity
- capacidade máxima de elementos armazenados na fila.header
- referência para o nodo armazenado no início da fila.
A classe possui dois construtores: o primeiro configura a capacidade máxima de elementos armazenados na fila com o valor padrão
100
, e o segundo recebe como parâmetro a capacidade máxima de elementos armazenados na fila. Os métodos especificados para o tipo abstrato de dados fila são:
empty
- verifica se a fila está vazia.offer
- insere um novo elemento no fim da fila, retornando true
caso o novo elemento seja inserido no fim da fila, ou false
caso a fila esteja cheia.peek
- recupera o elemento do início da fila, ou retorna zero caso a fila esteja vazia.poll
- recupera e remove o elemento do início da fila, ou retorna zero caso a fila esteja vazia.size
- retorna a quantidade de elementos armazenados na fila.
(Goodrich, 2007) Desenvolva uma classe chamada
Queue
para representar o tipo abstrato de dados fila. Uma fila é uma estrutura de dados baseada no princípio
FIFO, no qual o primeiro elemento inserido é o primeiro elemento retirado. A classe utiliza uma lista simplesmente encadeada de inteiros para o armazenamento dos elementos. Uma lista simplesmente encadeada (
Singly Linked List) é uma coleção de nodos (
Node
) que juntos formam uma ordem linear, no qual cada nodo é um objeto que armazena um elemento e uma referência, chamada
next
, para o próximo nodo. A classe possui os seguintes atributos:
capacity
- capacidade máxima de elementos armazenados na fila.header
- referência para o nodo armazenado no início da fila.tailer
- referência para o nodo armazenado no fim da fila.
A classe possui dois construtores: o primeiro configura a capacidade máxima de elementos armazenados na fila com o valor padrão
100
, e o segundo recebe como parâmetro a capacidade máxima de elementos armazenados na fila. Os métodos especificados para o tipo abstrato de dados fila são:
empty
- verifica se a fila está vazia.offer
- insere um novo elemento no fim da fila, retornando true
caso o novo elemento seja inserido no fim da fila, ou false
caso a fila esteja cheia.peek
- recupera o elemento do início da fila, ou retorna zero caso a fila esteja vazia.poll
- recupera e remove o elemento do início da fila, ou retorna zero caso a fila esteja vazia.size
- retorna a quantidade de elementos armazenados na fila.
(Goodrich, 2007) Desenvolva uma classe chamada
Queue
para representar o tipo abstrato de dados fila. Uma fila é uma estrutura de dados baseada no princípio
FIFO, no qual o primeiro elemento inserido é o primeiro elemento retirado. A classe utiliza uma lista duplamente encadeada de inteiros para o armazenamento dos elementos. Uma lista duplamente encadeada (
Doubly Linked List) é uma coleção de nodos (
Node
) que juntos formam uma ordem linear, no qual cada nodo é um objeto que armazena um elemento e duas referências, chamadas
previous
e
next
, para o nodo anterior e posterior ao presente nodo, respectivamente. A classe possui um único atributo denominado
header
, que representa a referência para o nodo armazenado no início da fila. Os métodos especificados para o tipo abstrato de dados fila são:
empty
- verifica se a fila está vazia.offer
- insere um novo elemento no fim da fila.peek
- recupera o elemento do início da fila, ou retorna zero caso a fila esteja vazia.poll
- recupera e remove o elemento do início da fila, ou retorna zero caso a fila esteja vazia.size
- retorna a quantidade de elementos armazenados na fila.
(Goodrich, 2007) Desenvolva uma classe chamada
Queue
para representar o tipo abstrato de dados fila. Uma fila é uma estrutura de dados baseada no princípio
FIFO, no qual o primeiro elemento inserido é o primeiro elemento retirado. A classe utiliza uma lista duplamente encadeada de inteiros para o armazenamento dos elementos. Uma lista duplamente encadeada (
Doubly Linked List) é uma coleção de nodos (
Node
) que juntos formam uma ordem linear, no qual cada nodo é um objeto que armazena um elemento e duas referências, chamadas
previous
e
next
, para o nodo anterior e posterior ao presente nodo, respectivamente. A classe possui os seguintes atributos:
header
- referência para o nodo armazenado no início da fila.tailer
- referência para o nodo armazenado no fim da fila.
Os métodos especificados para o tipo abstrato de dados fila são:
empty
- verifica se a fila está vazia.offer
- insere um novo elemento no fim da fila.peek
- recupera o elemento do início da fila, ou retorna zero caso a fila esteja vazia.poll
- recupera e remove o elemento do início da fila, ou retorna zero caso a fila esteja vazia.size
- retorna a quantidade de elementos armazenados na fila.
(Goodrich, 2007) Desenvolva uma classe chamada
Queue
para representar o tipo abstrato de dados fila. Uma fila é uma estrutura de dados baseada no princípio
FIFO, no qual o primeiro elemento inserido é o primeiro elemento retirado. A classe utiliza uma lista duplamente encadeada de inteiros para o armazenamento dos elementos. Uma lista duplamente encadeada (
Doubly Linked List) é uma coleção de nodos (
Node
) que juntos formam uma ordem linear, no qual cada nodo é um objeto que armazena um elemento e duas referências, chamadas
previous
e
next
, para o nodo anterior e posterior ao presente nodo, respectivamente. A classe possui os seguintes atributos:
capacity
- capacidade máxima de elementos armazenados na fila.header
- referência para o nodo armazenado no início da fila.
A classe possui dois construtores: o primeiro configura a capacidade máxima de elementos armazenados na fila com o valor padrão
100
, e o segundo recebe como parâmetro a capacidade máxima de elementos armazenados na fila. Os métodos especificados para o tipo abstrato de dados fila são:
empty
- verifica se a fila está vazia.offer
- insere um novo elemento no fim da fila, retornando true
caso o novo elemento seja inserido no fim da fila, ou false
caso a fila esteja cheia.peek
- recupera o elemento do início da fila, ou retorna zero caso a fila esteja vazia.poll
- recupera e remove o elemento do início da fila, ou retorna zero caso a fila esteja vazia.size
- retorna a quantidade de elementos armazenados na fila.
(Goodrich, 2007) Desenvolva uma classe chamada
Queue
para representar o tipo abstrato de dados fila. Uma fila é uma estrutura de dados baseada no princípio
FIFO, no qual o primeiro elemento inserido é o primeiro elemento retirado. A classe utiliza uma lista duplamente encadeada de inteiros para o armazenamento dos elementos. Uma lista duplamente encadeada (
Doubly Linked List) é uma coleção de nodos (
Node
) que juntos formam uma ordem linear, no qual cada nodo é um objeto que armazena um elemento e duas referências, chamadas
previous
e
next
, para o nodo anterior e posterior ao presente nodo, respectivamente. A classe possui os seguintes atributos:
capacity
- capacidade máxima de elementos armazenados na fila.header
- referência para o nodo armazenado no início da fila.tailer
- referência para o nodo armazenado no fim da fila.
A classe possui dois construtores: o primeiro configura a capacidade máxima de elementos armazenados na fila com o valor padrão
100
, e o segundo recebe como parâmetro a capacidade máxima de elementos armazenados na fila. Os métodos especificados para o tipo abstrato de dados fila são:
empty
- verifica se a fila está vazia.offer
- insere um novo elemento no fim da fila, retornando true
caso o novo elemento seja inserido no fim da fila, ou false
caso a fila esteja cheia.peek
- recupera o elemento do início da fila, ou retorna zero caso a fila esteja vazia.poll
- recupera e remove o elemento do início da fila, ou retorna zero caso a fila esteja vazia.size
- retorna a quantidade de elementos armazenados na fila.
Deitel, H. M. (2003).
Java, como programar. 4ª edição. Porto Alegre: Bookman. 1.386 páginas.
Goodrich, Michael. (2007).
Estrutura de Dados e Algoritmos em Java. 4ª edição. Porto Alegre: Bookman. 600 páginas.