Merge pull request #13 from TiagoRG/dev-tiagorg
This commit is contained in:
commit
6db4282464
|
@ -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)
|
||||||
|
|
|
@ -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)
|
|
Binary file not shown.
|
@ -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
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -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)
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -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)
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -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)
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -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>
|
|
@ -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)
|
|
@ -1,4 +1,4 @@
|
||||||
package aula01.src;
|
package aula01;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
public class KmToMiles {
|
public class KmToMiles {
|
|
@ -1,4 +1,4 @@
|
||||||
package aula01.src;
|
package aula01;
|
||||||
|
|
||||||
public class MyFirstClass {
|
public class MyFirstClass {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package aula01.src;
|
package aula01;
|
||||||
|
|
||||||
public class PescadaDeRaboNaBoca {
|
public class PescadaDeRaboNaBoca {
|
||||||
|
|
|
@ -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)
|
|
@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -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) {
|
|
@ -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);
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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)? ");
|
|
@ -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);
|
|
@ -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);
|
||||||
}
|
}
|
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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)
|
|
@ -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
|
|
@ -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));
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue