Merge pull request #16 from TiagoRG/dev-tiagorg
This commit is contained in:
commit
731600595e
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.
|
@ -5,5 +5,14 @@
|
|||
* [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)
|
||||
|
||||
### Exercise List
|
||||
| Exercise Number | File Name | Exercise Number | File Name |
|
||||
|-----------------|----------------------------------------------------------------------------------------------------------------------------------------|-----------------|--------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| 1 | [KmToMiles.java](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/2semestre/poo/src/aula02/KmToMiles.java) | 6 | [SecsToHMS.java](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/2semestre/poo/src/aula02/SecsToHMS.java) |
|
||||
| 2 | [CelciusToFahrenheit.java](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/2semestre/poo/src/aula02/CelciusToFahrenheit.java) | 7 | [DistanceBetweenPoints.java](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/2semestre/poo/src/aula02/DistanceBetweenPoints.java) |
|
||||
| 3 | [EnergyToHeatWater.java](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/2semestre/poo/src/aula02/EnergyToHeatWater.java) | 8 | [PythagoreanTheorem.java](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/2semestre/poo/src/aula02/PythagoreanTheorem.java) |
|
||||
| 4 | [Investment.java](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/2semestre/poo/src/aula02/Investment.java) | 9 | [Countdown.java](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/2semestre/poo/src/aula02/Countdown.java) |
|
||||
| 5 | [AverageSpeed.java](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/2semestre/poo/src/aula02/AverageSpeed.java) | 10 | [RealNumbers.java](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/2semestre/poo/src/aula02/RealNumbers.java) |
|
||||
|
||||
---
|
||||
*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.
|
@ -0,0 +1,23 @@
|
|||
# Exercícios de Arrays
|
||||
|
||||
## Ex1
|
||||
```java
|
||||
final int LENGHT = 100;
|
||||
int[] a = new int[LENGHT];
|
||||
// Code for filling a ommited
|
||||
for (int = 99; i >= 0; i--)
|
||||
{
|
||||
System.out.print(a[i]);
|
||||
if (i > 0) { System.out.print(', '); }
|
||||
}
|
||||
```
|
||||
|
||||
## Ex2
|
||||
```java
|
||||
int[] numbers = new int[100];
|
||||
for (int k = 0; k < numbers.length; k++)
|
||||
{
|
||||
numbers[k] = k + 1;
|
||||
}
|
||||
```
|
||||
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,9 @@
|
|||
# Tabela Exercício 1 de Strings
|
||||
|
||||
| Question | Answer |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------|
|
||||
| What is the length of the string below?<br>String str = "Java Program" | 12 |
|
||||
| With str as defined above, give a call to the substring method that returns the substring "gram". | str.substring(8) |
|
||||
| Use the string concatenation operator to change the string variable str to contain the string "Java Programming". | str += "ming" |
|
||||
| What does the following statement sequence print?<br><br>String str = "Harry";<br>int n = str.length();<br>String mystery = str.substring(0, 1) + str.substring(n - 1, n);<br>System.out.println(mystery); | Hy |
|
||||
| Consider the following statement sequence. If the user provides the input John Q. Public, what is printed? If an error occurs, type error.<br><br>Scanner in = new Scanner(System.in);<br>String first = in.next();<br>String last = in.next();<br>System.out.println(last + ", " + first); | Q., John |
|
Binary file not shown.
Binary file not shown.
|
@ -18,6 +18,8 @@ public class AverageSpeed {
|
|||
double d2 = UserInput.getPositiveNumber(sin);
|
||||
|
||||
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: %.2fkm/h", vm);
|
||||
|
||||
sin.close();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,8 @@ public class CelciusToFahrenheit {
|
|||
Scanner sin = new Scanner(System.in);
|
||||
double celcius = sin.nextDouble();
|
||||
double fahrenheit = 1.8*celcius+32;
|
||||
System.out.printf("%fºC = %fºF", celcius, fahrenheit);
|
||||
System.out.printf("%.2fºC = %.2fºF", celcius, fahrenheit);
|
||||
|
||||
sin.close();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,11 @@ public class Countdown {
|
|||
System.out.print("N? ");
|
||||
int n = sin.nextInt();
|
||||
for (int i = n; i >= 0; i--) {
|
||||
// If the statement before '?' is true then the expression before the ':' is used, else the expression after the ':' is used.
|
||||
// In python: i + "\n" if i%10 == 0 else i + ","
|
||||
System.out.print(i%10 == 0 ? i + "\n" : i + ",");
|
||||
}
|
||||
|
||||
sin.close();
|
||||
}
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
package aula02;
|
||||
|
||||
import utils.UserInput;
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
// Solução do exercício 7
|
||||
|
@ -8,15 +10,15 @@ public class DistanceBetweenPoints {
|
|||
public static void main(String[] args){
|
||||
Scanner sin = new Scanner(System.in);
|
||||
|
||||
System.out.print("Coordenadas do ponto 1 (separadas por ','): ");
|
||||
String[] p1 = sin.next().split(",");
|
||||
System.out.print("Coordenadas do ponto 2 (separadas por ','): ");
|
||||
String[] p2 = sin.next().split(",");
|
||||
String[] p1 = UserInput.input(sin, "Coordenadas do ponto 1 (separadas por ','): ").split(",");
|
||||
String[] p2 = UserInput.input(sin, "Coordenadas do ponto 2 (separadas por ','): ").split(",");
|
||||
|
||||
double distance = Math.sqrt(
|
||||
Math.pow(Double.parseDouble(p1[0]) - Double.parseDouble(p2[0]), 2) +
|
||||
Math.pow(Double.parseDouble(p1[1]) - Double.parseDouble(p2[1]), 2));
|
||||
|
||||
System.out.printf("A distância entre os dois pontos é %f", distance);
|
||||
System.out.printf("A distância entre os dois pontos é %.3f", distance);
|
||||
|
||||
sin.close();
|
||||
}
|
||||
}
|
|
@ -16,6 +16,8 @@ public class EnergyToHeatWater {
|
|||
System.out.print("Temperatura final da água (ºC)? ");
|
||||
double finalTemperature = sin.nextDouble();
|
||||
double energy = kgOfWater * (finalTemperature - initialTemperature) * 4184;
|
||||
System.out.printf("Para aquecer %fkg de água de %fºC para %fºC, serão necessários %fJ de energia.", kgOfWater, initialTemperature, finalTemperature, energy);
|
||||
System.out.printf("Para aquecer %.3fkg de água de %.2fºC para %.2fºC, serão necessários %.3fJ de energia.", kgOfWater, initialTemperature, finalTemperature, energy);
|
||||
|
||||
sin.close();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,6 +14,8 @@ public class Investment {
|
|||
System.out.print("Taxa de juro mensal (%)? ");
|
||||
double tax = sin.nextDouble();
|
||||
double finalWallet = initialWallet * Math.pow(1 + tax/100, 3);
|
||||
System.out.printf("O saldo final será de %f euros", finalWallet);
|
||||
System.out.printf("O saldo final será de %.2f euros", finalWallet);
|
||||
|
||||
sin.close();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,8 @@ public class KmToMiles {
|
|||
Scanner sin = new Scanner(System.in);
|
||||
double km = UserInput.getPositiveNumber(sin);
|
||||
double miles = km / 1.609;
|
||||
System.out.printf("%fkm = %f miles", km, miles);
|
||||
System.out.printf("%.3fkm = %.3f miles", km, miles);
|
||||
|
||||
sin.close();
|
||||
}
|
||||
}
|
|
@ -17,11 +17,10 @@ public class PythagoreanTheorem {
|
|||
double b = UserInput.getPositiveNumber(sin);
|
||||
|
||||
double c = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2));
|
||||
double angDeg = Math.acos(a / c) * 180 / Math.PI;
|
||||
|
||||
double cossin = a / c;
|
||||
double angRad = Math.acos(cossin);
|
||||
double angDeg = angRad * 180 / Math.PI;
|
||||
System.out.printf("O comprimento da hipotenusa é %.2f e o valor do angulo entre o cateto A e a hipotenusa é %.2f°", c, angDeg);
|
||||
|
||||
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));
|
||||
sin.close();
|
||||
}
|
||||
}
|
|
@ -29,5 +29,7 @@ public class RealNumbers {
|
|||
}
|
||||
|
||||
System.out.printf("Valor máximo: %f\nValor mínimo: %f\nMédia: %f\nTotal: %f", max, min, (float) sum/readNumbers, sum);
|
||||
|
||||
sin.close();
|
||||
}
|
||||
}
|
|
@ -17,5 +17,7 @@ public class SecsToHMS {
|
|||
int hours = Math.round((float) (mins / 60));
|
||||
mins = mins % 60;
|
||||
System.out.printf("%d segundos no formato hh:mm:ss : %d:%d:%d", totalSecs, hours, mins, secs);
|
||||
|
||||
sin.close();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
# Programação Orientada a Objetos
|
||||
## Exercícios TP
|
||||
### Resoluções para exercícios sugeridos nas aulas Teórico-Práticas
|
||||
|
||||
---
|
||||
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)
|
|
@ -0,0 +1,59 @@
|
|||
package tp_codecheck.tp01;
|
||||
|
||||
// Solução do exercício 2
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
/**
|
||||
This program updates an account balance, according to the table below:
|
||||
Balance Interest Rate Charge
|
||||
> $100,000.00 2.75 % $ 0.00
|
||||
> $25,000.00 2.00 % $ 0.00
|
||||
> $10,000.00 1.00 % $ 0.00
|
||||
>= $0.00 0.00 % $ 0.00
|
||||
< $0.00 0.00 % $ 25.00
|
||||
and prints out the new balance.
|
||||
*/
|
||||
public class BankInterest
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
// Define constants
|
||||
final double HI_RATE = 2.75;
|
||||
final double MD_RATE = 2.00;
|
||||
final double LO_RATE = 1.00;
|
||||
final double ZERO_RATE = 0.00;
|
||||
final double DEB_CHG = -25.00;
|
||||
|
||||
final double HI_LIMIT = 100000.00;
|
||||
final double MD_LIMIT = 25000.00;
|
||||
final double LO_LIMIT = 10000.00;
|
||||
final double ZERO_LIMIT = 0.00;
|
||||
|
||||
// Print prompt to enter a current balence
|
||||
System.out.print("Enter current balance: ");
|
||||
|
||||
// Read balance
|
||||
Scanner in = new Scanner(System.in);
|
||||
double balance = in.nextDouble();
|
||||
|
||||
// Determine interest rate (or charge) based on current balance
|
||||
// to compute new balance
|
||||
|
||||
// Your work here
|
||||
|
||||
double newBalance;
|
||||
if (balance > HI_LIMIT)
|
||||
newBalance = balance*(1+HI_RATE/100);
|
||||
else if (balance > MD_LIMIT)
|
||||
newBalance = balance*(1+MD_RATE/100);
|
||||
else if (balance > LO_LIMIT)
|
||||
newBalance = balance*(1+LO_RATE/100);
|
||||
else if (balance < ZERO_LIMIT)
|
||||
newBalance = balance+DEB_CHG;
|
||||
else
|
||||
newBalance = balance;
|
||||
|
||||
System.out.printf("%.2f\n", newBalance);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package tp_codecheck.tp01;
|
||||
|
||||
// Solução do exercício 3
|
||||
|
||||
public class Table {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.printf("%s | %s | %s | %s\n", "n", "Hn", "log n", "Hn - log n");
|
||||
int n = 1;
|
||||
while (n <= 1000000) {
|
||||
double f1 = harmonic(n);
|
||||
double f2 = Math.log((double)n);
|
||||
System.out.printf("%d | %.3f | %.3f | %.9f\n", n, f1, f2, f1-f2);
|
||||
n *= 2;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Computes the Harmonic number Hn = 1 + 1/2 + 1/3 + ... + 1/n.
|
||||
*/
|
||||
private static double harmonic(int n) {
|
||||
double sum = 0;
|
||||
for (int i = 1; i <= n; i++) {
|
||||
sum += 1/(float)i;
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package tp_codecheck.tp01;
|
||||
|
||||
// Solução do exercício 1
|
||||
|
||||
/*
|
||||
This is a short Java program to convert
|
||||
a temperature from Celsius to Fahrenheit.
|
||||
*/
|
||||
|
||||
// You may want to import stuff here...
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Temperature {
|
||||
// Create a Scanner to parse standard input:
|
||||
private static Scanner sc = new Scanner(System.in);
|
||||
|
||||
public static void main(String[] args) {
|
||||
// Put your code here
|
||||
System.out.print("Celsius? ");
|
||||
double celcius = sc.nextDouble();
|
||||
double fahrenheit = 1.8*celcius+32;
|
||||
System.out.printf("%f C = %f F\n", celcius, fahrenheit);
|
||||
|
||||
System.out.println("THE END");
|
||||
}
|
||||
}
|
||||
|
||||
// JMR 2023
|
|
@ -0,0 +1,23 @@
|
|||
# Exercícios de Arrays
|
||||
|
||||
## Ex1
|
||||
```java
|
||||
final int LENGHT = 100;
|
||||
int[] a = new int[LENGHT];
|
||||
// Code for filling a ommited
|
||||
for (int = 99; i >= 0; i--)
|
||||
{
|
||||
System.out.print(a[i]);
|
||||
if (i > 0) { System.out.print(', '); }
|
||||
}
|
||||
```
|
||||
|
||||
## Ex2
|
||||
```java
|
||||
int[] numbers = new int[100];
|
||||
for (int k = 0; k < numbers.length; k++)
|
||||
{
|
||||
numbers[k] = k + 1;
|
||||
}
|
||||
```
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package tp_codecheck.tp02;
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
public class NumberOfDays {
|
||||
public static void main(String[] args)
|
||||
{
|
||||
// Declare and initialize daysOfMonth
|
||||
int[] daysOfMonth = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
|
||||
|
||||
Scanner in = new Scanner(System.in);
|
||||
System.out.print("Month (1 - 12): ");
|
||||
int month = in.nextInt();
|
||||
System.out.print("Year: ");
|
||||
int year = in.nextInt();
|
||||
|
||||
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
|
||||
// It's a leap year. Adjust the entry for February
|
||||
daysOfMonth[1]+=1;
|
||||
}
|
||||
|
||||
// Get the number of days in the given month
|
||||
int days = daysOfMonth[month-1];
|
||||
|
||||
System.out.println("Number of days: " + days);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package tp_codecheck.tp02;
|
||||
|
||||
public class Numbers {
|
||||
public static void main(String[] args) {
|
||||
// Different arrays will be substituted here.
|
||||
int[] values = { 3, 1, 4, 1, 5, 9 };
|
||||
int[] newValues = new int[values.length/2];
|
||||
|
||||
for (int x = 0; x < values.length; x+=2) {
|
||||
newValues[x/2] = values[x];
|
||||
}
|
||||
|
||||
for (int i = 0; i < newValues.length; i++) {
|
||||
System.out.println(newValues[i]);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
# Tabela Exercício 1 de Strings
|
||||
|
||||
| Question | Answer |
|
||||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------|
|
||||
| What is the length of the string below?<br>String str = "Java Program" | 12 |
|
||||
| With str as defined above, give a call to the substring method that returns the substring "gram". | str.substring(8) |
|
||||
| Use the string concatenation operator to change the string variable str to contain the string "Java Programming". | str += "ming" |
|
||||
| What does the following statement sequence print?<br><br>String str = "Harry";<br>int n = str.length();<br>String mystery = str.substring(0, 1) + str.substring(n - 1, n);<br>System.out.println(mystery); | Hy |
|
||||
| Consider the following statement sequence. If the user provides the input John Q. Public, what is printed? If an error occurs, type error.<br><br>Scanner in = new Scanner(System.in);<br>String first = in.next();<br>String last = in.next();<br>System.out.println(last + ", " + first); | Q., John |
|
|
@ -0,0 +1,12 @@
|
|||
package tp_codecheck.tp02;
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Words {
|
||||
public static void main(String[] args) {
|
||||
Scanner in = new Scanner(System.in);
|
||||
String word = in.next();
|
||||
word = word.charAt(word.length()-1) + word.substring(1, word.length()-1) + word.charAt(0);
|
||||
System.out.println(word);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue