![]() |
|
||||
Código-Fonte Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesTenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
|||||
Você está aqui: Cards de Engenharia Civil - Estruturas de Concreto Armado |
||
|
||
|
|
||
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercício Resolvido de Java - Um programa Java que calcula qual o menor número possível de notas de 100, 50, 10, 5 e 1 em que o valor a ser sacado pode ser decompostoQuantidade de visualizações: 16500 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que lê um valor inteiro e simule o comportamento de um caixa eletrônico, ou seja, calcule qual o menor número possível de notas de 100, 50, 10, 5 e 1 em que o valor a ser sacado pode ser decomposto. Seu programa deverá exibir uma saída parecida com: Informe o valor do saque (valor inteiro): 139 O valor do saque pode ser expresso em: 1 notas de 100 0 notas de 50 3 notas de 10 1 notas de 5 4 notas de 1 Resposta/Solução: Veja a resolução comentada deste exercício usando Java console (lendo a entrada do usuário por meio do uso da classe Scanner):
public static void main(String[] args){
// não se esqueça de adicionar um import para a classe Scanner
// import java.util.Scanner;
// vamos criar um objeto da classe Scanner
Scanner entrada = new Scanner(System.in);
// variáveis que vão guardar a quantidade de notas de 100, 50, 10, 5 e 1;
int cem = 0, cinquenta = 0, dez = 0, cinco = 0, um = 0;
int valor; // guarda o valor lido
int temp; // variável auxiliar
// vamos solicitar o valor a ser sacado
System.out.print("Informe o valor do saque (valor inteiro): ");
// vamos ler o valor do saque
valor = Integer.parseInt(entrada.nextLine());
// inicializa a variável temporária
temp = valor;
// quantas notas de 100?
if(temp >= 100){
cem = valor / 100;
temp = valor % 100;
}
// quantas notas de 50?
if(temp >= 50){
cinquenta = temp / 50;
temp = temp % 50;
}
// quantas notas de 10?
if(temp >= 10){
dez = temp / 10;
temp = temp % 10;
}
// quantas notas de 5?
if(temp >= 5){
cinco = temp / 5;
temp = temp % 5;
}
// quantas notas de 1?
if(temp >= 1){
um = temp / 1;
}
// vamos exibir o resultado
System.out.println("O valor do saque pode ser expresso em:");
System.out.printf("%d notas de 100\n", cem);
System.out.printf("%d notas de 50\n", cinquenta);
System.out.printf("%d notas de 10\n", dez);
System.out.printf("%d notas de 5\n", cinco);
System.out.printf("%d notas de 1\n", um);
}
|
Java ::: Dicas & Truques ::: Strings e Caracteres |
Apostila Java para iniciantes - Como substituir um caractere em uma string usando o método setCharAt() da classe StringBuffer do JavaQuantidade de visualizações: 1 vezes |
|
Nesta dica mostrarei como podemos usar o método setCharAt() da classe StringBuffer da linguagem Java para substituir caracteres individuais em uma palavra, frase ou texto. Veja um código completo, no qual trocamos a letra "j" por "J":
package arquivodecodigos;
public class Estudos{
public static void main(String[] args){
StringBuffer frase = new StringBuffer("Programar em java.");
System.out.println(frase);
frase.setCharAt(13, 'J'); // troca 'j' por 'J'
System.out.println(frase);
System.exit(0);
}
}
Ao executarmos este código nós teremos o seguinte resultado: Programar em java. Programar em Java. |
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Como renomear um diretório em PHP usando a função rename()Quantidade de visualizações: 12037 vezes |
|
Diretórios podem ser renomeados usando a função rename() da linguagem PHP. Esta função recebe o nome atual do diretório e o novo nome e retorna um valor boolean (true ou false) informando o sucesso ou não da operação. Antes de usar esta função verifique se você possui as permissões adequadas para renomear o diretório. Veja um trecho de código no qual renomeamos um diretório no diretório public_html:
<?php
// renomeia o diretório "recentes" para "atuais"
$diretorio_antigo = "/site/public_html/recentes";
$diretorio_novo = "/site/public_html/atuais";
if(rename($diretorio_antigo, $diretorio_novo)){
echo "Diretório renomeado com sucesso.";
}
else{
echo "Não foi possível renomear o diretório.";
}
?>
Ao executar este código nós teremos o seguinte resultado: Diretório renomeado com sucesso. Seja cuidadoso. Se você não tiver as permissões adequadas para renomear um diretório, a seguinte mensagem de erro será exibida: Warning: rename(imagens,imagens_novas) [function.rename]: Permission denied in /site/public_html/testes.php on line 9 Não foi possível renomear o diretório. |
MySQL ::: Dicas & Truques ::: Tipos de Dados |
Como usar o tipo de dados TINYINT do MySQLQuantidade de visualizações: 21520 vezes |
|
O tipo de dados TINYINT do MySQL é usado quando precisamos armazenar valores inteiros que se encaixem na faixa de -128 a 127. Este tipo ocupa 1 byte de espaço (8 bits). Veja um trecho de código no qual criamos uma tabela MySQL chamada produtos contendo três campos: CREATE TABLE produtos( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, categoria TINYINT UNSIGNED NOT NULL, nome` VARCHAR(45) NOT NULL, PRIMARY KEY(id) ) ENGINE = InnoDB; Aqui nós usamos o tipo TINYINT para a categoria do produto. Isso quer dizer que poderemos ter no máximo 127 categorias diferentes no sistema. Mas, note o uso do modificador UNSIGNED após o nome do tipo de dados. Este modificador faz com que o valor seja somente positivo, o que altera a faixa de valores positivos para 0 até 255. Valores negativos não serão permitidos. Veja agora uma instrução SQL INSERT que insere um novo produto na tabela recém-criada: INSERT INTO produtos VALUES(null, 23, 'CAMISETA REGATA AX'); Se o valor fornecido para a categoria estiver fora da faixa permitida para um TINYINT você verá a seguinte mensagem de erro: Out of range value adjusted for column 'categoria' at row 1 (Erro: 1264) Vamos verificar o comportamento deste tipo de dados em uma função MySQL? Veja o código que cria uma função somar(): DELIMITER $$ DROP FUNCTION IF EXISTS somar $$ CREATE FUNCTION somar(a TINYINT, b TINYINT) RETURNS TINYINT BEGIN RETURN a + b; END $$ DELIMITER ; Veja que os parâmetros e o retorno da função são do tipo TINYINT. Eis uma demonstração de como chamá-la: SELECT somar(4, 3) AS soma; Experimente fornecer valores que, quando somados, excedam a capacidade de um TINYINT e observe o comportamento da função. Para finalizar, note que é comum informarmos o tipo TINYINT com um valor inteiro em parênteses, por exemplo, TINYINT(2). Este número nos parênteses não interfere em nada nos valores a serem armazenados. Ele é usado para controlar a largura do campo na exibição do valor nos resultados de uma query SELECT ou como um lembrete da quantidade de dígitos a serem usados no campo. |
Python ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Python Insertion Sort - Como ordenar um vetor de inteiros usando a ordenação Insertion Sort (Ordenação por Inserção)Quantidade de visualizações: 4322 vezes |
|
Nesta dica veremos como implementar a ordenação Insertion Sort, Insertion-Sort, ou Ordenação por Inserção na linguagem Python. A ordenação Insertion Sort, Insertion-Sort, ou Ordenação por Inserção, possui uma complexidade de tempo de execução igual à ordenação Bubble Sort (Ordenação da Bolha), ou seja, O(n2). Embora mais rápido que o Bubble Sort, e ser um algorítmo de ordenação quadrática, a ordenação Insertion Sort é bastante eficiente para problemas com pequenas entradas, sendo o mais eficiente entre os algoritmos desta ordem de classificação, porém, nunca recomendada para um grande conjunto de dados. A forma mais comum para o entendimento da ordenação Insertion Sort é compará-la com a forma pela qual algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando cartas. Você está com as cartas na mão e elas estão ordenadas. Você recebe uma nova carta e deve colocá-la na posição correta da sua mão de cartas, de forma que as cartas obedeçam à ordenação. A cada nova carta adicionada à sua mão de cartas, a nova carta pode ser menor que algumas das cartas que você já tem na mão ou maior, e assim, você começa a comparar a nova carta com todas as cartas na sua mão até encontrar sua posição correta. Você insere a nova carta na posição correta, e, novamente, a sua mão é composta de cartas totalmente ordenadas. Então, você recebe outra carta e repete o mesmo procedimento. Então outra carta, e outra, e assim por diante, até não receber mais cartas. Esta é a ideia por trás da ordenação por inserção. Percorra as posições do vetor (array), começando com o índice 1 (um). Cada nova posição é como a nova carta que você recebeu, e você precisa inseri-la no lugar correto no sub-vetor ordenado à esquerda daquela posição. Vamos ver a implementação na linguagem Python agora? Observe o seguinte código, no qual temos um vetor de inteiros com os elementos {4, 6, 2, 8, 1, 9, 3, 0, 11}:
# método que permite ordenar o vetor de inteiros
# usando a ordenação Insertion Sort
def insertionSort(vetor):
# percorre todos os elementos do vetor começando
# pelo segundo elemento
for i in range(len(vetor)):
atual = vetor[i] # o valor atual a ser inserido
# começa a comparar com a célula à esquerda de i
j = i - 1
# enquanto vetor[j] estiver fora de ordem em relação
# a atual
while((j >= 0) and (vetor[j] > atual)):
# movemos vetor[j] para a direita e decrementamos j
vetor[j + 1] = vetor[j]
j = j - 1
# colocamos atual em seu devido lugar
vetor[j + 1] = atual
# função principal do programa
def main():
# cria uma lista de inteiros
valores = [4, 6, 2, 8, 1, 9, 3, 0, 11]
# exibimos o vetor na ordem original
print("Ordem original:\n")
for i in range(len(valores)):
print(valores[i], end = " ")
# vamos ordenar o vetor agora
insertionSort(valores)
# exibimos o vetor ordenado
print("\n\nOrdenado:\n")
for i in range(len(valores)):
print(valores[i], end = " ")
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Sem ordenação: 4 6 2 8 1 9 3 0 11 Ordenada usando Insertion Sort: 0 1 2 3 4 6 8 9 11 |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
|
AutoCAD .NET API C# - Como selecionar uma linha no AutoCAD e mostrar a equação da reta correspondente usando AutoCAD .NET C# API |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





