Merge pull request #13 from TiagoRG/dev-tiagorg

This commit is contained in:
Tiago Garcia 2023-02-18 14:11:58 +00:00 committed by GitHub
commit d2f426e7dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
55 changed files with 149 additions and 55 deletions

View File

@ -2,11 +2,21 @@
### Projetos + resoluções de exercícios organizados por aulas
### 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
| 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)

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

@ -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

@ -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

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

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;
public class KmToMiles {

View File

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

View File

@ -1,4 +1,4 @@
package aula01.src;
package aula01;
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.nio.file.Files;
import java.nio.file.Path;
@ -8,12 +8,11 @@ import java.nio.file.Paths;
public class ReadFileExample {
public static void main(String[] args) {
Path fich = Paths.get("major.txt");
Path fich = Paths.get("datafiles/aula01/major.txt");
try {
Files.readAllLines(fich).stream().forEach(System.out::println);
} catch (IOException e) {
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 static void main(String[] args) {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,3 +1,7 @@
package aula02;
import utils.UserInput;
import java.util.Scanner;
// Solução do exercício 1
@ -6,7 +10,7 @@ public class KmToMiles {
public static void main(String[] args) {
System.out.print("Km? ");
Scanner sin = new Scanner(System.in);
double km = sin.nextDouble();
double km = UserInput.getPositiveNumber(sin);
double miles = km / 1.609;
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;
// Solução do exercício 8
@ -7,15 +12,9 @@ public class PythagoreanTheorem {
Scanner sin = new Scanner(System.in);
System.out.println("Cateto A:");
double a;
do {
a = sin.nextDouble();
} while (a <= 0);
double a = UserInput.getPositiveNumber(sin);
System.out.println("Cateto B:");
double b;
do {
b = sin.nextDouble();
} while (b <= 0);
double b = UserInput.getPositiveNumber(sin);
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 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;
// Solução do exercício 10

View File

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

View File

@ -0,0 +1,7 @@
package utils;
public class MathTools {
public static double round(double n, int places) {
return (Math.round(n * Math.pow(10, places))) / Math.pow(10, places);
}
}

View File

@ -0,0 +1,21 @@
package utils;
import java.util.Scanner;
public class UserInput {
public static double getNumberBetween(Scanner sin, double min, double max) {
double input;
do {
input = sin.nextDouble();
} while (input > max || input < min);
return input;
}
public static double getPositiveNumber(Scanner sin) {
double input;
do {
input = sin.nextDouble();
} while (input <= 0);
return input;
}
}