Você está aqui: Cards de Mecânica dos Fluidos e Hidráulica |
||
|
||
![]() |
||
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Valor da diária, valor médio arrecadado com e sem promoção e o lucro ou prejuízo mensal de uma promoção em um hotelQuantidade de visualizações: 14635 vezes |
Pergunta/Tarefa: Escreva um programa Java para resolver o seguinte problema: Um hotel com 42 apartamentos resolveu fazer promoções para os fins de semana fora da alta temporada, isto é, nos meses de abril, maio, junho, agosto, setembro, outubro e novembro. A taxa da promoção é de 22% da diária normal. A ocupação média do hotel sem promoção é de 40%. A expectativa é aumentar a taxa de ocupação para 70%. Supondo que as expectativas se confirmem, escrever um algoritmo que lê a diária normal, que calcule e escreva as seguintes informações: (a) O valor da diária no período da promoção. (b) O valor médio arrecadado sem a promoção, durante um mês. (c) O valor médio arrecadado com a promoção, durante um mês. (d) O lucro ou prejuízo mensal com a promoção. Seu código Java deverá apresentar uma saída parecida com: Informe o valor da diária normal: 120 Diária no período de promoção: 26,40 Média arrecadada sem a promoção durante um mês: 8064,00 Média arrecadada com a promoção durante um mês: 3104,64 Prejuízo mensal com a promoção: 4959,36 Veja a resolução comentada deste exercício usando Java console (lendo a entrada do usuário por meio do uso da classe Scanner): package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // vamos criar um objeto da classe Scanner Scanner entrada = new Scanner(System.in); // valor da diária em período normal double valor_diaria_normal; // valor da diária no período de promoção double valor_diaria_promocao; // vamos obter o valor da diária no período normal System.out.print("Informe o valor da diária normal: "); valor_diaria_normal = Double.parseDouble(entrada.nextLine()); // vamos obter o valor da diária no período promocional valor_diaria_promocao = valor_diaria_normal * (22.0 / 100.0); // vamos calcular o valor médio arrecadado sem a promoção, durante um mês // estamos assumindo 4 finais de semana por mês double media_arrecado_sem_promocao = (valor_diaria_normal * (42 * (40.0 / 100.0)) * 4); // vamos calcular o valor médio arrecadado com a promoção, durante um mês // estamos assumindo 4 finais de semana por mês double media_arrecado_com_promocao = (valor_diaria_promocao * (42 * (70.0 / 100.0)) * 4); System.out.printf("Diária no período de promoção: %.2f\n", valor_diaria_promocao); System.out.printf("Média arrecadada sem a promoção durante um mês: %.2f\n", media_arrecado_sem_promocao); System.out.printf("Média arrecadada com a promoção durante um mês: %.2f\n", media_arrecado_com_promocao); // houve lucro ou prejuízo? if (media_arrecado_sem_promocao < media_arrecado_com_promocao) { System.out.printf("Lucro mensal com a promoção: %.2f\n", media_arrecado_com_promocao - media_arrecado_sem_promocao); } else { System.out.printf("Prejuízo mensal com a promoção: %.2f\n", media_arrecado_sem_promocao - media_arrecado_com_promocao); } } } |
Java ::: Pacote java.lang ::: String |
Como retornar os caracteres de uma string como um vetor de char usando o método getChars() da classe String do JavaQuantidade de visualizações: 8287 vezes |
O método getChars() da classe String pode ser usado quando queremos retornar todos ou parte dos caracteres de uma string como uma matriz de char. Veja sua assinatura:public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) O parâmetro srcBegin indica o índice do primeiro caractere a ser copiado. O parâmetro srcEnd indica o índice APÓS o último caractere a ser copiado. O parâmetro dst é uma matriz de char para a qual os caracteres serão copiados e dstBegin indica o offset (ponto inicial) da matriz a ser preenchida. Veja um trecho de código no qual copiamos os 5 primeiros caracteres de uma string para uma matriz de char chamada letras: public class Main { public static void main(String[] args) { // vamos declarar e inicializar uma string String frase = "Cuiabá é muito quente"; // declara uma matriz de 5 chars char letras[] = new char[5]; // vamos copiar os 5 primeiros caracteres da frase anterior // e guardá-los nas primeiras posições da matriz frase.getChars(0, 5, letras, 0); // vamos percorrer a matriz letras for (int i = 0; i < letras.length; i++) { System.out.print(letras[i] + " "); } } } Ao executarmos este código teremos o seguinte resultado: C u i a b O método getChars() pode atirar uma exceção do tipo IndexOutOfBoundsException se valores inválidos forem fornecidos aos seus parâmetros. |
Python ::: wxPython ::: Janelas, Diálogos, Formulários e Painéis do wxPython |
Como definir o ícone para uma janela wx.Frame do wxPythonQuantidade de visualizações: 7332 vezes |
Nesta dica mostrarei como usar a função SetIcon() da classe wx.TopLevelWindow para definir o ícone da janela de nossa aplicação wxPython. Observe que, se o ícone não for encontrado, uma mensagem de erro será exibida. Veja o código completo para o exemplo: # vamos importar a biblioteca Wx import wx # vamos criar uma classe que herda de wxFrame class MinhaJanela(wx.Frame): def __init__(self): # chamamos o construtor da super classe wx.Frame.__init__(self, None, -1, "Cadastro de Clientes", size=(350, 200)) # Define o ícone para a janela self.SetIcon(wx.Icon("icone.ico", wx.BITMAP_TYPE_ICO)) if __name__ == "__main__": app = wx.App() janela = MinhaJanela() janela.Show(True) app.MainLoop() |
C# ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar a instrução de salto incondicional goto da linguagem C#Quantidade de visualizações: 17977 vezes |
A instrução goto na linguagem C# é uma instrução de salto incondicional. Quando esta instrução é encontrada, o fluxo de execução de código salta imediatamente para a localização definida pelo goto. Embora não muito usada, esta instrução, ás vezes, tem sua utilidade. A instrução goto exige um rótulo (label), que é um identificador C# válido seguido por dois pontos. Além disso, este rótulo deve estar dentro do mesmo método no qual a instrução goto estará contida. Isso quer dizer que não é possível usar goto para saltar de um método para outro. Veja um trecho de código no qual usamos goto para contar de 0 até 10: using System; namespace Estudos{ class Program{ static void Main(string[] args){ int valor = 0; // define o rótulo para o goto inicio: // exibe os números de 0 até 10 if (valor <= 10){ Console.WriteLine("{0}", valor); valor++; goto inicio; } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código nós teremos o seguinte resultado: 0 1 2 3 4 5 6 7 8 9 10 Pressione uma tecla para sair... É claro que este código, ainda que seja um bom exemplo do uso de goto, pode e deve ser substituído por um laço for ou while. Lembre-se: goto é usado somente em casos nos quais nenhuma outra instrução ou construção esteja disponível. Veja, por exemplo, como podemos usar goto para saltar entre as cláusulas case de uma instrução switch: using System; namespace Estudos{ class Program{ static void Main(string[] args) { for (int i = 1; i < 3; i++) { switch (i) { case 1: Console.WriteLine("Estou na cláusula 1."); goto case 3; case 2: Console.WriteLine("Estou na cláusula 2."); goto case 1; case 3: Console.WriteLine("Estou na cláusula 3."); goto default; default: Console.WriteLine("Estou na cláusula padrão."); break; } } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código nós teremos o seguinte resultado: Estou na cláusula 1. Estou na cláusula 3. Estou na cláusula padrão. Estou na cláusula 2. Estou na cláusula 1. Estou na cláusula 3. Estou na cláusula padrão. Outro uso útil da instrução goto é quando precisamos sair de um laço profundamente aninhado (três ou quatro níveis já é uma tarefa complicada). Veja: using System; namespace Estudos{ class Program{ static void Main(string[] args) { int i = 0, j = 0, k = 0; for (i = 0; i < 10; i++) { for (j = 0; j < 10; j++) { for (k = 0; k < 10; k++) { Console.WriteLine("i, j, k: " + i + " " + j + " " + k); if (k == 3) goto parada; } } } // rótulo de parada parada: Console.WriteLine("Parei! i, j, k: " + i + " " + j + " " + k); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este exemplo nós teremos o seguinte resultado: i, j, k: 0 0 0 i, j, k: 0 0 1 i, j, k: 0 0 2 i, j, k: 0 0 3 Parei! i, j, k: 0 0 3 Para finalizar, tenha em mente que goto é usado para sair de um bloco de instruções. Tentar usar esta instrução para saltar para dentro de um bloco de instruções é um erro de síntaxe e o seu código não compilará. |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Java para iniciantes - Como substituir caracteres em uma string usando o método replace() da classe StringQuantidade de visualizações: 268 vezes |
Em algumas ocasiões nós precisamos substituir caracteres, ou seja, letras, números e símbolos em palavras, frases ou textos. Para isso nós podemos usar o método replace() da classe String da linguagem Java. Veja como isso pode ser feito no código completo a seguir: package arquivodecodigos; public class Estudos{ public static void main(String[] args){ String frase = "Programar em Java é bom"; System.out.println("Original: " + frase); // substitui todas as ocorrências de "a" por "e" String frase2 = frase.replace('a', 'e'); System.out.println("Com substituições: " + frase2); System.exit(0); } } Ao executar este código nós teremos o seguinte resultado: Original: Programar em Java é bom Com substituições: Progremer em Jeve é bom |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |