Você está aqui: Cards de Engenharia Civil - Construção Civil |
||
|
||
|
|
||
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Python Básico |
Exercício Resolvido de Python - Como calcular o restante de um salário após o pagamento de duas contas com jurosQuantidade de visualizações: 1636 vezes |
|
Pergunta/Tarefa: Cintia acaba de receber seu salário mas precisa pagar duas contas atrasadas. Por causa do atraso, ela deverá pagar multa de 2% sobre cada conta. Faça um programa que leia o valor do salário e das duas contas e que calcule e mostre quanto restará do salário de Cintia. Sua saída deverá ser parecida com: Informe o salário: 1350 Valor da primeira conta: 140 Valor da segunda conta: 300 Total das contas sem juros: 440.0 Total dos juros: 8.8 Total das contas com juros: 448.8 Sobra do salário: 901.2 Veja a resolução comentada deste exercício usando Python:
# método principal
def main():
# vamos pedir que o usuário informe o valor do salário e das duas contas
salario = float(input("Informe o salário: "))
conta1 = float(input("Valor da primeira conta: "))
conta2 = float(input("Valor da segunda conta: "))
# total a ser pago nas duas contas sem os juros
total_contas = conta1 + conta2
# calcula os juros
total_juros = total_contas * 0.02
# total a ser pago com juros
total_contas_com_juros = total_contas + total_juros
# sobra do salário
sobra_salario = salario - total_contas_com_juros
# mostra os resultados
print("\nTotal das contas sem juros: {0}".format(total_contas))
print("Total dos juros: {0}".format(total_juros))
print("Total das contas com juros: {0}".format(total_contas_com_juros))
print("Sobra do salário: {0}".format(sobra_salario))
if __name__== "__main__":
main()
|
Java ::: Dicas & Truques ::: Data e Hora |
Como usar a classe Calendar do Java em suas aplicações - Java para iniciantesQuantidade de visualizações: 22115 vezes |
|
[Baseado na documentação Java] - A classe Calendar (pacote java.util) é uma classe abstrata (que não pode ser instanciada usando new) que fornece métodos para efetuar a conversão entre um momento específico no tempo e um conjunto de campos de calendário, tais como YEAR, MONTH, DAY_OF_MONTH, HOUR e assim por diante, e para manipular tais campos, por exemplo, obter a data da próxima semana. Um momento no tempo pode ser representado por um valor de milisegundos que é a diferença entre a data atual e a zero hora do dia 01/01/1970 (Epoch, January 1, 1970 00:00:00.000 GMT (Gregorian)). Veja a posição desta classe na hierarquia de classes Java: java.lang.Object java.util.Calendar Esta classe também fornece campos e métodos adicionais para a implementação de um sistema concreto de calendário fora do pacote java.util. Estes campos e métodos são definidos como protected. Assim como as demais classes sensitivas à localização (locale-sensitive), a classe Calendar fornece um método de classe chamado getInstance() que nos permite obter um objeto desta classe. Este método retorna um objeto Calendar cujos campos de calendário são inicializados com a data e hora atual. Veja:
import java.util.*;
public class Estudos{
public static void main(String args[]){
Calendar agora = Calendar.getInstance();
System.out.println(agora.toString());
}
}
Experimente executar este programa e terá um resultado parecido com: java.util.GregorianCalendar[time=1228937781807, areFieldsSet=true,areAllFieldsSet =true,lenient=true,zone=sun.util.calendar.ZoneInfo [id="America/Sao_Paulo",offset =-10800000,dstSavings=3600000,useDaylight=true, transitions=129,lastRule=java.uti l.SimpleTimeZone[id=America/Sao_Paulo,offset= -10800000,dstSavings=3600000,useDay light=true,startYear=0,startMode=3,startMonth=9, startDay=15,startDayOfWeek=1,sta rtTime=0,startTimeMode=0,endMode=3,endMonth=1, endDay=15,endDayOfWeek=1,endTime=0 ,endTimeMode=0]],firstDayOfWeek=2, minimalDaysInFirstWeek=1,ERA=1,YEAR=2008,MONTH =11,WEEK_OF_YEAR=50,WEEK_OF_MONTH=2,DAY_OF_MONTH= 10,DAY_OF_YEAR=345,DAY_OF_WEEK= 4,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=5,HOUR_OF_DAY =17,MINUTE=36,SECOND=21,MILLI SECOND=807,ZONE_OFFSET=-10800000,DST_OFFSET=3600000] Como podemos ver, todas as informações relativas à data e hora que poderemos precisar estão contidas neste resultado. Um objeto Calendar pode produzir todos os valores de todos os campos de calendário necessários para implementar a formatação de data e hora para uma determinada língua e estilo de calendário (por exemplo, Japanese-Gregorian, Japanese-Traditional). A classe Calendar define a faixa de valores retornados por determinados campos de calendário, assim como seus significados. Por exemplo, o primeiro mês do sistema de calendário tem o valor MONTH == JANUARY para todos os calendários. Outros valores são definidos por subclasses concretas, tais como ERA. |
Ruby ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como retornar o tamanho de um array em Ruby usando a função sizeQuantidade de visualizações: 7507 vezes |
|
Em algumas situações nós precisamos saber como retornar a quantidade de itens em um array Ruby. Para isso nós podemos usar a função size do objeto Array. Veja o exemplo:
# vamos declarar um array com 5 elementos
valores = [3, 6, 78, 32, 1]
# vamos obter o seu tamanho
tamanho = valores.size
# e mostramos o resultado
puts "O array contém #{tamanho} elementos"
Ao executar este código Ruby nós teremos o seguinte resultado: O array contém 5 elementos |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Java - Como rotacionar os elementos de um vetor de inteiros n vezes para a direita - Solução usando vetor temporárioQuantidade de visualizações: 824 vezes |
|
Pergunta/Tarefa: Dado o vetor:
// vamos criar um vetor de inteiros
int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
Importante: a solução que apresentamos usa um array adicional para resolver o desafio. Fique à vontade para usar força-bruta ou outra abordagem que achar mais conveniente. Sua saída deverá ser parecida com: Array na ordem original: 1 6 9 3 7 8 5 2 Rotação do vetor no passo 1 do primeiro laço: 8 0 0 0 0 0 0 0 Rotação do vetor no passo 2 do primeiro laço: 8 5 0 0 0 0 0 0 Rotação do vetor no passo 3 do primeiro laço: 8 5 2 0 0 0 0 0 Rotação do vetor no passo 1 do segundo laço: 8 5 2 1 0 0 0 0 Rotação do vetor no passo 2 do segundo laço: 8 5 2 1 6 0 0 0 Rotação do vetor no passo 3 do segundo laço: 8 5 2 1 6 9 0 0 Rotação do vetor no passo 4 do segundo laço: 8 5 2 1 6 9 3 0 Rotação do vetor no passo 5 do segundo laço: 8 5 2 1 6 9 3 7 Array depois de rotacionar 3 vezes: 8 5 2 1 6 9 3 7 Veja a resolução comentada deste exercício em Java:
package estudos;
public class Estudos {
public static void main(String[] args) {
// vamos criar um vetor de inteiros
int valores[] = {1, 6, 9, 3, 7, 8, 5, 2};
// mostramos o array na ordem original
System.out.println("Array na ordem original:");
exibirVetor(valores);
// vamos rotacionar o array 3 casas para a direita
valores = rotacionarArray(valores, 3);
// e mostramos o resultado
System.out.println("Array depois de rotacionar 3 vezes:");
exibirVetor(valores);
}
// método usado para exibir o array
public static void exibirVetor(int []vetor){
// percorremos cada elemento do vetor
for (int i = 0; i < vetor.length; i++) {
System.out.print(vetor[i] + " ");
}
System.out.println("\n");
}
// método que recebe um vetor de inteiros e o rotaciona um
// determinado número de vezes
public static int[] rotacionarArray(int[] vetor, int n) {
// vamos obter a quantidade de elementos no vetor
int quant = vetor.length;
// o número de rotações é maior que a quantidade de
// elementos no vetor? Se for nós ajustamos o número
// de rotações usando o operador de módulo
if(n > quant){
n = n % quant;
}
// criamos um vetor temporário
int[] resultado = new int[quant];
// o primeiro laço movimenta os elementos a partir
// do valor de n
for(int i = 0; i < n; i++){
resultado[i] = vetor[quant - n + i];
// mostramos o progresso
System.out.println("Rotação do vetor no passo " + (i + 1) +
" do primeiro laço:");
exibirVetor(resultado);
}
// ajustamos o índice para o primeiro elemento do vetor
int indice = 0;
for(int i = n; i < quant; i++){
resultado[i] = vetor[indice];
// mostramos o progresso
System.out.println("Rotação do vetor no passo " + (indice + 1) +
" do segundo laço:");
exibirVetor(resultado);
indice++; // incrementa o índice
}
// retorna o vetor rotacionado
return resultado;
}
}
A solução que apresentamos aqui usa um vetor temporário, isto é, um array adicional, para melhorar a perfomance. Em outras dicas do site nós apresentamos uma solução para este desafio usando força-bruta. A força-bruta não é a melhor abordagem, mas pode ser mais fácil de ser entendida por iniciantes em programação. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico |
Exercício Resolvido de C - Ler três números inteiros e indicar se eles estão em ordem crescente ou decrescenteQuantidade de visualizações: 1498 vezes |
|
Pergunta/Tarefa: Escreva um programa C que pede para o usuário informar três números inteiros e informa se eles estão em ordem crescente ou decrescente. Se os números estiverem em ordem crescente, escreva "Ordem Crescente". Se estiverem em ordem decrescente, escreva "Ordem Decrescente". Do contrário escreva "Sem ordem definida". Sua saída deverá ser parecida com: Primeiro número: 4 Segundo número: 8 Terceiro número: 11 Ordem Crescente Veja a resolução comentada deste exercício em C:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
// função principal do programa
int main(int argc, char *argv[]){
// variáveis usadas na resolução do exercício
int a, b, c;
setlocale(LC_ALL,""); // para acentos do português
// vamos pedir para o usuário informar três números
printf("Primeiro número: ");
scanf("%d", &a);
printf("Segundo número: ");
scanf("%d", &b);
printf("Terceiro número: ");
scanf("%d", &c);
// os números estão em ordem crescente?
if (a < b && b < c){
printf("Ordem Crescente");
}
// os números estão em ordem decrescente?
else if (a > b && b > c){
printf("Ordem Decrescente");
}
// sem ordem definida
else{
printf("Sem ordem definida");
}
printf("\n\n");
system("PAUSE");
return 0;
}
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
|
Java - Como calcular o coeficiente angular de uma reta em Java dados dois pontos no plano cartesiano |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






