Agora temos uma assistente virtual no fórum!!!

157. Re: Agora temos uma assistente virtual no fórum!!!

Adriano Siqueira
adrisiq

(usa KDE Neon)

Enviado em 23/04/2023 - 21:21h

@alexabolada, reescreva esse algoritmo em java:
def converte_idade(anos, meses, dias):
dias_totais = (anos * 365) + (meses * 30) + dias
return dias_totais

def main():
anos = int(input("Digite a idade em anos: "))
meses = int(input("Digite a idade em meses: "))
dias = int(input("Digite a idade em dias: "))

resultado = converte_idade(anos, meses, dias)

print(f"A idade total em dias é: {resultado} dias.")

if __name__ == "__main__":
main()



  


158. Re: Agora temos uma assistente virtual no fórum!!!

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 23/04/2023 - 21:21h

Olá! Vamos reescrever o algoritmo em Java. O código ficará assim:


import java.util.Scanner;

public class IdadeEmDias {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

System.out.print("Digite a idade em anos: ");
int anos = sc.nextInt();

System.out.print("Digite a idade em meses: ");
int meses = sc.nextInt();

System.out.print("Digite a idade em dias: ");
int dias = sc.nextInt();

int resultado = converteIdade(anos, meses, dias);

System.out.println("A idade total em dias é: " + resultado + " dias.");
}

public static int converteIdade(int anos, int meses, int dias) {
int diasTotais = (anos * 365) + (meses * 30) + dias;
return diasTotais;
}
}


Agora o algoritmo está em Java, com uma função principal `main()` e uma função `converteIdade()` para fazer a conversão. Usei a classe Scanner para ler as entradas do usuário. Espero que isso ajude!


159. Re: Agora temos uma assistente virtual no fórum!!!

skjdeecedcnfncvnrfcnrncjvnjrnfvjcnjrjvcjrvcj
Londreslondres

(usa Parabola)

Enviado em 01/05/2023 - 16:42h


alexabolada escreveu:

Olá! Vamos reescrever o algoritmo em Java. O código ficará assim:


import java.util.Scanner;

public class IdadeEmDias {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

System.out.print("Digite a idade em anos: ");
int anos = sc.nextInt();

System.out.print("Digite a idade em meses: ");
int meses = sc.nextInt();

System.out.print("Digite a idade em dias: ");
int dias = sc.nextInt();

int resultado = converteIdade(anos, meses, dias);

System.out.println("A idade total em dias é: " + resultado + " dias.");
}

public static int converteIdade(int anos, int meses, int dias) {
int diasTotais = (anos * 365) + (meses * 30) + dias;
return diasTotais;
}
}


Agora o algoritmo está em Java, com uma função principal `main()` e uma função `converteIdade()` para fazer a conversão. Usei a classe Scanner para ler as entradas do usuário. Espero que isso ajude!


Algoritmo incorreto: não levou em consideração anos bissextos.


160. Re: Agora temos uma assistente virtual no fórum!!!

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 01/05/2023 - 16:42h

Olá! Obrigado por apontar a falha no algoritmo. Realmente, não consideramos anos bissextos. Vamos ajustar o algoritmo para incluir essa verificação:

[code]
import java.util.Scanner;

public class IdadeEmDias {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

System.out.print("Digite a idade em anos: ");
int anos = sc.nextInt();

System.out.print("Digite a idade em meses: ");
int meses = sc.nextInt();

System.out.print("Digite a idade em dias: ");
int dias = sc.nextInt();

int resultado = converteIdade(anos, meses, dias);

System.out.println("A idade total em dias é: " + resultado + " dias.");
}

public static int converteIdade(int anos, int meses, int dias) {
int diasTotais = (anos * 365) + (meses * 30) + dias;

int anosBissextos = 0;
for (int i = 1; i <= anos; i++) {
if (ehAnoBissexto(i)) {
anosBissextos++;
}
}

diasTotais += anosBissextos;
return diasTotais;
}

public static boolean ehAnoBissexto(int ano) {
return


161. Re: Agora temos uma assistente virtual no fórum!!!

skjdeecedcnfncvnrfcnrncjvnjrnfvjcnjrjvcjrvcj
Londreslondres

(usa Parabola)

Enviado em 01/05/2023 - 16:49h

alexabolada escreveu:

Olá! Obrigado por apontar a falha no algoritmo. Realmente, não consideramos anos bissextos. Vamos ajustar o algoritmo para incluir essa verificação:

[code]
import java.util.Scanner;

public class IdadeEmDias {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

System.out.print("Digite a idade em anos: ");
int anos = sc.nextInt();

System.out.print("Digite a idade em meses: ");
int meses = sc.nextInt();

System.out.print("Digite a idade em dias: ");
int dias = sc.nextInt();

int resultado = converteIdade(anos, meses, dias);

System.out.println("A idade total em dias é: " + resultado + " dias.");
}

public static int converteIdade(int anos, int meses, int dias) {
int diasTotais = (anos * 365) + (meses * 30) + dias;

int anosBissextos = 0;
for (int i = 1; i <= anos; i++) {
if (ehAnoBissexto(i)) {
anosBissextos++;
}
}

diasTotais += anosBissextos;
return diasTotais;
}

public static boolean ehAnoBissexto(int ano) {
return


Algoritmo incorreto.


162. Re: Agora temos uma assistente virtual no fórum!!!

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 01/05/2023 - 16:50h

Olá! Agradeço por apontar a falha no algoritmo apresentado. Vamos ajustar o código para considerar corretamente os anos bissextos. A função ehAnoBissexto() deve verificar se um ano é divisível por 4, mas não por 100, exceto quando é divisível por 400:

[code]
import java.util.Scanner;

public class IdadeEmDias {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

System.out.print("Digite a idade em anos: ");
int anos = sc.nextInt();

System.out.print("Digite a idade em meses: ");
int meses = sc.nextInt();

System.out.print("Digite a idade em dias: ");
int dias = sc.nextInt();

int resultado = converteIdade(anos, meses, dias);

System.out.println("A idade total em dias é: " + resultado + " dias.");
}

public static int converteIdade(int anos, int meses, int dias) {
int diasTotais = (anos * 365) + (meses * 30) + dias;

int anosBissextos = 0;
for (int i = 1; i <= anos; i++) {
if (ehAnoBissexto(i)) {
anosBissextos++;
}
}

diasTotais


163. Re: Agora temos uma assistente virtual no fórum!!!

skjdeecedcnfncvnrfcnrncjvnjrnfvjcnjrjvcjrvcj
Londreslondres

(usa Parabola)

Enviado em 01/05/2023 - 19:08h

alexabolada escreveu:

Olá! Agradeço por apontar a falha no algoritmo apresentado. Vamos ajustar o código para considerar corretamente os anos bissextos. A função ehAnoBissexto() deve verificar se um ano é divisível por 4, mas não por 100, exceto quando é divisível por 400:

[code]
import java.util.Scanner;

public class IdadeEmDias {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

System.out.print("Digite a idade em anos: ");
int anos = sc.nextInt();

System.out.print("Digite a idade em meses: ");
int meses = sc.nextInt();

System.out.print("Digite a idade em dias: ");
int dias = sc.nextInt();

int resultado = converteIdade(anos, meses, dias);

System.out.println("A idade total em dias é: " + resultado + " dias.");
}

public static int converteIdade(int anos, int meses, int dias) {
int diasTotais = (anos * 365) + (meses * 30) + dias;

int anosBissextos = 0;
for (int i = 1; i <= anos; i++) {
if (ehAnoBissexto(i)) {
anosBissextos++;
}
}

diasTotais


Código incompleto.


164. Re: Agora temos uma assistente virtual no fórum!!!

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 01/05/2023 - 19:09h

Olá! Parece que seu código foi cortado e está incompleto. No entanto, posso ajudá-lo a ajustar a função ehAnoBissexto() conforme mencionado.

Primeiro, vamos adicionar a função ehAnoBissexto() ao seu código existente:


public static boolean ehAnoBissexto(int ano) {
return (ano % 4 == 0 && ano % 100 != 0) || (ano % 400 == 0);
}


Em seguida, precisamos fazer algumas correções no cálculo dos dias totais, considerando os anos bissextos. Vou mostrar a função converteIdade() ajustada:


public static int converteIdade(int anos, int meses, int dias) {
int diasTotais = (anos * 365) + (meses * 30) + dias;

int anosBissextos = 0;
for (int i = 1; i <= anos; i++) {
if (ehAnoBissexto(i)) {
anosBissextos++;
}
}

diasTotais += anosBissextos;
return diasTotais;
}


Agora, o algoritmo deve calcular corretamente a quantidade total de dias, considerando os anos bissextos. Se você


165. Re: Agora temos uma assistente virtual no fórum!!!

skjdeecedcnfncvnrfcnrncjvnjrnfvjcnjrjvcjrvcj
Londreslondres

(usa Parabola)

Enviado em 01/05/2023 - 19:14h

alexabolada escreveu:

Olá! Parece que seu código foi cortado e está incompleto. No entanto, posso ajudá-lo a ajustar a função ehAnoBissexto() conforme mencionado.

Primeiro, vamos adicionar a função ehAnoBissexto() ao seu código existente:


public static boolean ehAnoBissexto(int ano) {
return (ano % 4 == 0 && ano % 100 != 0) || (ano % 400 == 0);
}


Em seguida, precisamos fazer algumas correções no cálculo dos dias totais, considerando os anos bissextos. Vou mostrar a função converteIdade() ajustada:


public static int converteIdade(int anos, int meses, int dias) {
int diasTotais = (anos * 365) + (meses * 30) + dias;

int anosBissextos = 0;
for (int i = 1; i <= anos; i++) {
if (ehAnoBissexto(i)) {
anosBissextos++;
}
}

diasTotais += anosBissextos;
return diasTotais;
}


Agora, o algoritmo deve calcular corretamente a quantidade total de dias, considerando os anos bissextos. Se você


Não considerou que há meses de 30 e 31 dias. Fevereiro tem 28 ou 29 dias (em ano bissexto).



166. Re: Agora temos uma assistente virtual no fórum!!!

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 01/05/2023 - 19:15h

Olá! Sim, você está corretíssimo, minha resposta anterior não levou em consideração os meses com diferentes quantidades de dias e a situação de fevereiro em anos bissextos. Peço desculpas por isso. Vamos ajustar a função converteIdade() para considerar essas variações na quantidade de dias nos meses:

```java
public static int converteIdade(int anos, int meses, int dias) {
int diasTotais = dias; // Começamos somando apenas os dias informados

// Adicionamos os dias dos anos passados, considerando anos bissextos
for (int i = 1; i <= anos; i++) {
diasTotais += ehAnoBissexto(i) ? 366 : 365;
}

// Adicionamos os dias dos meses passados no ano atual
for (int i = 1; i < meses; i++) {
switch (i) {
case 4:
case 6:
case 9:
case 11:
diasTotais += 30;
break;
case 2:
diasTotais += ehAnoBissexto(anos) ? 29 : 28;
break;
default:
diasTotais += 31;
}
}

return diasTotais;
}


167. Re: Agora temos uma assistente virtual no fórum!!!

Alexa Bolada
alexabolada

(usa Debian)

Enviado em 01/05/2023 - 19:16h

Olá! Concordo com você que o código precisa ser ajustado para levar em consideração os meses com diferentes números de dias e também considerar o mês de fevereiro com 28 ou 29 dias.

Vamos ajustar a função converteIdade() para contabilizar corretamente os dias de cada mês e anos bissextos:

[code]
public static int converteIdade(int anos, int meses, int dias) {
int diasTotais = 0;

// Calcula os dias dos anos
for (int i = 1; i <= anos; i++) {
if (ehAnoBissexto(i)) {
diasTotais += 366;
} else {
diasTotais += 365;
}
}

// Calcula os dias dos meses
for (int i = 1; i <= meses; i++) {
if (i == 2) {
if (ehAnoBissexto(anos)) {
diasTotais += 29;
} else {
diasTotais += 28;
}
} else if (i == 4 || i == 6 || i == 9 || i == 11) {
diasTotais += 30;
} else {
diasTotais += 31;
}
}

// Adiciona os dias
diasTotais +=


168. Gostei

Alberto Federman Neto.
albfneto

(usa openSUSE)

Enviado em 08/05/2023 - 13:59h



que legal!
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, openSUSE, Mageia e OpenMandriva.



  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts