POO reorganization

This commit is contained in:
TiagoRG 2023-02-18 14:09:11 +00:00
parent 4a56d525b6
commit 1c772f058b
Signed by untrusted user who does not match committer: TiagoRG
GPG Key ID: DFCD48E3F420DB42
41 changed files with 86 additions and 55 deletions

View File

@ -2,11 +2,21 @@
### Projetos + resoluções de exercícios organizados por aulas ### Projetos + resoluções de exercícios organizados por aulas
### Linguagem usada: [Java](https://www.java.com/en/) ### Linguagem usada: [Java](https://www.java.com/en/)
---
## Organização do diretório
* [src](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/poo/src) • Código fonte das aulas/projetos
* [out](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/poo/out) • Output da compilação da [src](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/poo/src)
* [guides](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/poo/guides) • Guiões das aulas práticas
* [slides](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/poo/slides) • Slides das aulas teóricas
* [datafiles](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/poo/datafiles) • Ficheiros extra com texto/dados
--- ---
## Índice ## Índice
| Aula nº | Tópicos | | Aula nº | Tópicos |
|-------------------------------------------------------------------------------------|----------------------------------------| |-----------------------------------------------------------------------------------------|----------------------|
| [01](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/poo/aula01) | Introduction, Basics | | [01](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/poo/src/aula01) | Introduction, Basics |
| [02](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/poo/src/aula02) | Flux Control |
--- ---
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new) *Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)

View File

@ -1,6 +0,0 @@
# Programação Orientada a Objetos
## Aula 01
### Tópico principal da aula: Introduction, Basics
---
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)

View File

@ -1,6 +0,0 @@
# Programação Orientada a Objetos
## Aula 01
### Tópico principal da aula: Introduction, Basics
---
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,6 @@
# Programação Orientada a Objetos
## Código fonte para as diversas aulas de POO
### Métodos extra no diretório [*utils*](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/poo/src/utils)
---
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)

View File

@ -1,4 +1,4 @@
package aula01.src; package aula01;
import java.util.Scanner; import java.util.Scanner;
public class KmToMiles { public class KmToMiles {

View File

@ -1,4 +1,4 @@
package aula01.src; package aula01;
public class MyFirstClass { public class MyFirstClass {

View File

@ -1,4 +1,4 @@
package aula01.src; package aula01;
public class PescadaDeRaboNaBoca { public class PescadaDeRaboNaBoca {

View File

@ -0,0 +1,9 @@
# Programação Orientada a Objetos
## Aula 01
### Tópico principal da aula: Introduction, Basics
* [Guião](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/poo/guides/POO-2021-aula01.pdf)
* [Slides](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/poo/slides/POO_01_Introdução.pdf)
---
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)

View File

@ -1,4 +1,4 @@
package aula01.src; package aula01;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
@ -8,12 +8,11 @@ import java.nio.file.Paths;
public class ReadFileExample { public class ReadFileExample {
public static void main(String[] args) { public static void main(String[] args) {
Path fich = Paths.get("major.txt"); Path fich = Paths.get("datafiles/aula01/major.txt");
try { try {
Files.readAllLines(fich).stream().forEach(System.out::println); Files.readAllLines(fich).stream().forEach(System.out::println);
} catch (IOException e) { } catch (IOException e) {
System.out.println("Certifique-se que o ficheiro \"major.txt\" está na raiz da pasta do projeto"); System.out.println("Certifique-se que o ficheiro \"major.txt\" está na raiz da pasta do projeto");
} }
} }
} }

View File

@ -1,4 +1,4 @@
package aula01.src; package aula01;
public class StringExample { public class StringExample {
public static void main(String[] args) { public static void main(String[] args) {

View File

@ -1,4 +1,7 @@
package aula02;
import java.util.Scanner; import java.util.Scanner;
import utils.UserInput;
// Solução do exercício 5 // Solução do exercício 5
@ -6,25 +9,13 @@ public class AverageSpeed {
public static void main(String[] args) { public static void main(String[] args) {
Scanner sin = new Scanner(System.in); Scanner sin = new Scanner(System.in);
System.out.println("v1? "); System.out.println("v1? ");
double v1; double v1 = UserInput.getPositiveNumber(sin);
do {
v1 = sin.nextDouble();
} while (v1 <= 0);
System.out.println("d1? "); System.out.println("d1? ");
double d1; double d1 = UserInput.getPositiveNumber(sin);
do {
d1 = sin.nextDouble();
} while (d1 <= 0);
System.out.println("v2? "); System.out.println("v2? ");
double v2; double v2 = UserInput.getPositiveNumber(sin);
do {
v2 = sin.nextDouble();
} while (v2 <= 0);
System.out.println("d2? "); System.out.println("d2? ");
double d2; double d2 = UserInput.getPositiveNumber(sin);
do {
d2 = sin.nextDouble();
} while (d2 <= 0);
double vm = (d1 + d2) / ((d1 / v1) + (d2 / v2)); double vm = (d1 + d2) / ((d1 / v1) + (d2 / v2));
System.out.printf("Velocidade final da viagem: %fkm/h", vm); System.out.printf("Velocidade final da viagem: %fkm/h", vm);

View File

@ -1,3 +1,5 @@
package aula02;
import java.util.Scanner; import java.util.Scanner;
// Solução do exercício 2 // Solução do exercício 2

View File

@ -1,3 +1,5 @@
package aula02;
import java.util.Scanner; import java.util.Scanner;
// Solução do exercício 9 // Solução do exercício 9

View File

@ -1,3 +1,5 @@
package aula02;
import java.util.Scanner; import java.util.Scanner;
// Solução do exercício 7 // Solução do exercício 7

View File

@ -1,3 +1,7 @@
package aula02;
import utils.UserInput;
import java.util.Scanner; import java.util.Scanner;
// Solução do exercício 3 // Solução do exercício 3
@ -6,7 +10,7 @@ public class EnergyToHeatWater {
public static void main(String[] args) { public static void main(String[] args) {
Scanner sin = new Scanner(System.in); Scanner sin = new Scanner(System.in);
System.out.print("Kg de água? "); System.out.print("Kg de água? ");
double kgOfWater = sin.nextDouble(); double kgOfWater = UserInput.getPositiveNumber(sin);
System.out.print("Temperatura inicial da água (ºC)? "); System.out.print("Temperatura inicial da água (ºC)? ");
double initialTemperature = sin.nextDouble(); double initialTemperature = sin.nextDouble();
System.out.print("Temperatura final da água (ºC)? "); System.out.print("Temperatura final da água (ºC)? ");

View File

@ -1,3 +1,7 @@
package aula02;
import utils.UserInput;
import java.util.Scanner; import java.util.Scanner;
// Solução do exercício 4 // Solução do exercício 4
@ -6,7 +10,7 @@ public class Investment {
public static void main(String[] args) { public static void main(String[] args) {
Scanner sin = new Scanner(System.in); Scanner sin = new Scanner(System.in);
System.out.print("Saldo inicial (Euros)? "); System.out.print("Saldo inicial (Euros)? ");
double initialWallet = sin.nextDouble(); double initialWallet = UserInput.getPositiveNumber(sin);
System.out.print("Taxa de juro mensal (%)? "); System.out.print("Taxa de juro mensal (%)? ");
double tax = sin.nextDouble(); double tax = sin.nextDouble();
double finalWallet = initialWallet * Math.pow(1 + tax/100, 3); double finalWallet = initialWallet * Math.pow(1 + tax/100, 3);

View File

@ -1,3 +1,7 @@
package aula02;
import utils.UserInput;
import java.util.Scanner; import java.util.Scanner;
// Solução do exercício 1 // Solução do exercício 1
@ -6,7 +10,7 @@ public class KmToMiles {
public static void main(String[] args) { public static void main(String[] args) {
System.out.print("Km? "); System.out.print("Km? ");
Scanner sin = new Scanner(System.in); Scanner sin = new Scanner(System.in);
double km = sin.nextDouble(); double km = UserInput.getPositiveNumber(sin);
double miles = km / 1.609; double miles = km / 1.609;
System.out.printf("%fkm = %f miles", km, miles); System.out.printf("%fkm = %f miles", km, miles);
} }

View File

@ -1,3 +1,8 @@
package aula02;
import utils.MathTools;
import utils.UserInput;
import java.util.Scanner; import java.util.Scanner;
// Solução do exercício 8 // Solução do exercício 8
@ -7,15 +12,9 @@ public class PythagoreanTheorem {
Scanner sin = new Scanner(System.in); Scanner sin = new Scanner(System.in);
System.out.println("Cateto A:"); System.out.println("Cateto A:");
double a; double a = UserInput.getPositiveNumber(sin);
do {
a = sin.nextDouble();
} while (a <= 0);
System.out.println("Cateto B:"); System.out.println("Cateto B:");
double b; double b = UserInput.getPositiveNumber(sin);
do {
b = sin.nextDouble();
} while (b <= 0);
double c = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2)); double c = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2));
@ -23,6 +22,6 @@ public class PythagoreanTheorem {
double angRad = Math.acos(cossin); double angRad = Math.acos(cossin);
double angDeg = angRad * 180 / Math.PI; double angDeg = angRad * 180 / Math.PI;
System.out.printf("O comprimento da hipotenusa é %f e o valor do angulo entre o cateto A e a hipotenusa é %f°", (float) (Math.round(c * 100) / 100), (float) (Math.round(angDeg * 100) / 100)); System.out.printf("O comprimento da hipotenusa é %f e o valor do angulo entre o cateto A e a hipotenusa é %f°", MathTools.round(c, 2), MathTools.round(angDeg, 2));
} }
} }

View File

@ -0,0 +1,9 @@
# Programação Orientada a Objetos
## Aula 02
### Tópico principal da aula: Flux Control
* [Guião](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/poo/guides/POO-2021-aula02.pdf)
* [Slides](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/poo/slides/POO_02_ControloFluxo.pdf)
---
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)

View File

@ -1,3 +1,5 @@
package aula02;
import java.util.Scanner; import java.util.Scanner;
// Solução do exercício 10 // Solução do exercício 10

View File

@ -1,3 +1,7 @@
package aula02;
import utils.UserInput;
import java.util.Scanner; import java.util.Scanner;
// Solução do exercício 6 // Solução do exercício 6
@ -7,10 +11,7 @@ public class SecsToHMS {
Scanner sin = new Scanner(System.in); Scanner sin = new Scanner(System.in);
System.out.println("Introduza os segundos totais: "); System.out.println("Introduza os segundos totais: ");
int totalSecs; int totalSecs = (int) UserInput.getPositiveNumber(sin);
do {
totalSecs = sin.nextInt();
} while (totalSecs <= 0);
int secs = totalSecs % 60; int secs = totalSecs % 60;
int mins = Math.round((float) (totalSecs / 60)); int mins = Math.round((float) (totalSecs / 60));
int hours = Math.round((float) (mins / 60)); int hours = Math.round((float) (mins / 60));