Você está aqui: C# ::: Desafios e Lista de Exercícios Resolvidos ::: C# Básico |
Um programa C# que lê dois números e mostra a soma, subtração, multiplicação e a divisão dos números lidos - Desafio de Programação Resolvido em C#Quantidade de visualizações: 300 vezes |
Pergunta/Tarefa: Faça um programa em C# que receba dois números e no final mostre a soma, subtração, multiplicação e a divisão dos números lidos. Os números deverão ser informados pelo usuário. Sua saída deverá ser parecida com: Informe o primeiro número: 9 Informe o segundo numero: 4 A soma é: 13 A subtração é: 5 A multiplicação é: 36 A divisão é: 2.25 Veja a resolução completa para o exercício em C#, comentada linha a linha: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- using System; // Algoritmo C# para somar, subtrair, multiplicar e dividir // dois números informados pelo usuário namespace Estudos { class Principal { static void Main(string[] args) { // vamos ler o primeiro número Console.Write("Informe o primeiro número: "); int n1 = int.Parse(Console.ReadLine()); // vamos ler o segundo número Console.Write("Informe o segundo número: "); int n2 = int.Parse(Console.ReadLine()); // primeiro vamos somar os dois números int soma = n1 + n2; Console.WriteLine("A soma é: " + soma); // agora vamos subtrair int subtracao = n1 - n2; Console.WriteLine("A subtração é: " + subtracao); // agora a multiplicação int multiplicacao = n1 * n2; Console.WriteLine("A multiplicação é: " + multiplicacao); // e finalmente a divisão. Note o truque para não arredondar // a divisão double divisao = (n1 * 1.0) / n2; Console.WriteLine("A divisão é: " + divisao); Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em JavaQuantidade de visualizações: 1767 vezes |
Todos estamos acostumados com o Teorema de Pitágoras, que diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos". Baseado nessa informação, fica fácil retornar a medida do cateto oposto quando temos as medidas da hipotenusa e do cateto adjascente. Isso, claro, via programação em linguagem Java. Comece observando a imagem a seguir: Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. A medida da hipotenusa é, sem arredondamentos, 36.056 metros. Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras): \[c^2 = a^2 + b^2\] Tudo que temos que fazer é mudar a fórmula para: \[a^2 = c^2 - b^2\] Veja que agora o quadrado do cateto oposto é igual ao quadrado da hipotenusa menos o quadrado do cateto adjascente. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo. Veja agora como esse cálculo é feito em linguagem Java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String args[]){ double c = 36.056; // medida da hipotenusa double b = 30; // medida do cateto adjascente // agora vamos calcular a medida da cateto oposto double a = Math.sqrt(Math.pow(c, 2) - Math.pow(b, 2)); // e mostramos o resultado System.out.println("A medida do cateto oposto é: " + a); } } Ao executar este código Java nós teremos o seguinte resultado: A medida do cateto oposto é: 20.00087838071118 Como podemos ver, o resultado retornado com o código Java confere com os valores da imagem apresentada. |
R ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o coeficiente angular de uma reta em R dados dois pontos no plano cartesianoQuantidade de visualizações: 1044 vezes |
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x. Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano: Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é: \[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \] Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente. Veja agora o trecho de código na linguagem R que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # x e y do primeiro ponto x1 <- readline("Coordenada x do primeiro ponto: ") y1 <- readline("Coordenada y do primeiro ponto: ") x1 <- as.numeric(x1) y1 <- as.numeric(y1) # x e y do segundo ponto x2 <- readline("Coordenada x do segundo ponto: ") y2 <- readline("Coordenada y do segundo ponto: ") x2 <- as.numeric(x2) y2 <- as.numeric(y2) # agora vamos calcular o coeficiente angular m <- (y2 - y1) / (x2 - x1) # mostramos o resultado paste("O coeficiente angular é:", m) Ao executar este código em linguagem R nós teremos o seguinte resultado: [1] "O coeficiente angular é: 0.666666666666667" Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # x e y do primeiro ponto x1 <- readline("Coordenada x do primeiro ponto: ") y1 <- readline("Coordenada y do primeiro ponto: ") x1 <- as.numeric(x1) y1 <- as.numeric(y1) # x e y do segundo ponto x2 <- readline("Coordenada x do segundo ponto: ") y2 <- readline("Coordenada y do segundo ponto: ") x2 <- as.numeric(x2) y2 <- as.numeric(y2) # vamos obter o comprimento do cateto oposto cateto_oposto <- y2 - y1 # e agora o cateto adjascente cateto_adjascente <- x2 - x1 # vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa # (em radianos, não se esqueça) tetha <- atan2(cateto_oposto, cateto_adjascente) # e finalmente usamos a tangente desse ângulo para calcular # o coeficiente angular tangente <- tan(tetha) # mostramos o resultado paste("O coeficiente angular é:", tangente) Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta: 1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0; 2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0; 3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0). 4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe. |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como converter todo o conteúdo de uma string para letras maiúsculas em Delphi usando a função AnsiUpperCase()Quantidade de visualizações: 16830 vezes |
Algumas vezes precisamos converter todo o conteúdo de uma string para letras maiúsculas. Em Delphi isso pode ser feito com o auxílio da função AnsiUpperCase(). Esta função recebe uma string e retorna outra string com todos os caracteres maiúsculos. Veja o exemplo:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); var nome: string; begin nome := 'Osmar'; // vamos converter a string para letras maiúsculas nome := AnsiUpperCase(nome); // exibe o resultado ShowMessage(nome); end; Note que esta função suporta caracteres de mais de um byte e com acentuações. Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
HTML5 ::: Aplicativos Completos ::: Programas de desenho, edição e visualização de imagens e fotos |
Como criar um programa de desenho simples usando o objeto Canvas do HTML5Quantidade de visualizações: 5157 vezes |
Revisando alguns códigos que desenvolvi para clientes ao longo desses anos, encontrei um exemplo de um programa de desenho bem simples demonstrando as possibilidades gráficas do elemento Canvas do HTML. Este código foi escrito há uns dois anos e resolvi compartilhar com todos, para que vocês possam aprimorá-lo e acrescentar novas idéias, afinal, o HTML5 está mais atual do que nunca. Veja o resultado no navegador: Eu o escrevi de forma bem simples, sem usar jQuery ou qualquer outro framework, apenas JavaScript raiz mesmo, de forma que até os estudantes mais iniciantes não terão dificuldade de entender. Veja a listagem completa e com comentários: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <html> <head> <title>Desenhando no canvas do HTML5</title> </head> <body style="padding: 15px"> <b>Clique e arraste para desenhar</b><br><br> <canvas id="quadro" style="border: 1px solid #666" width="600" height="350"></canvas> <br><br><button onClick="limpar()">Limpar</button> <script type="text/javascript"> // obtém uma referência ao canvas var quadro = document.getElementById('quadro'); // vamos obter o contexto de desenho var areaDesenho = quadro.getContext("2d"); // podemos desenhar? var podeDesenhar = false; // ainda não // vetores para guardar as posições x, y, e se o mouse está sendo // movimentado pressionado var vetorX = new Array(); var vetorY = new Array(); var vetorArrastar = new Array(); // agora vamos adicionar na área de desenho um "ouvidor" de // eventos mousedown, ou seja, vamos detectar quando o usuário // pressionar o botão do mouse (sem soltar) quadro.addEventListener('mousedown', function(e){ // podemos iniciar o desenho podeDesenhar = true; registrarClique(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, false); desenhar(); // faça o desenho, moço }); // o "ouvidor" de evento que detecta se o mouse está sendo arrastado // pressionado quadro.addEventListener('mousemove', function(e){ if(podeDesenhar){ registrarClique(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, true); desenhar(); // faça o desenho, moço } }); // o "ouvidor" de evento que detecta se o mouse foi liberado // e interrompe o desenho quadro.addEventListener('mouseup', function(e){ podeDesenhar = false; }); // o mouse saiu da área de desenho? quadro.addEventListener('mouseleave', function(e){ podeDesenhar = false; }); function registrarClique(x, y, arrastar){ // aqui nós guardamos em vetores as posições x, y do clique ou // o movimento do mouse pressionado. vetorX.push(x); vetorY.push(y); vetorArrastar.push(arrastar); } // é aqui que a mágica ocorre function desenhar(){ // primeiro vamos limpar o quadro de desenho areaDesenho.clearRect(0, 0, areaDesenho.canvas.width, areaDesenho.canvas.height); areaDesenho.strokeStyle = "#5c5cd6"; // cor areaDesenho.lineJoin = "round"; // formato da junção de linha areaDesenho.lineWidth = 5; // largura da linha // percorremos os vetores, usando como base o vetor de coordenadas x for(var i = 0; i < vetorX.length; i++){ areaDesenho.beginPath(); // inicia o caminho // o mouse foi arrastado neste evento? if((vetorArrastar[i] == true && i > 0)){ areaDesenho.moveTo(vetorX[i - 1], vetorY[i - 1]); } else{ // é o início do desenho areaDesenho.moveTo(vetorX[i] - 1, vetorY[i]); } // desenha a linha do ponto X ao ponto Y areaDesenho.lineTo(vetorX[i], vetorY[i]); // fecha o caminho areaDesenho.closePath(); // conclui de fato o desenho areaDesenho.stroke(); } } // e aqui nós limpamos a área de desenho e esvaziamos os vetores function limpar(){ areaDesenho.clearRect(0, 0, areaDesenho.canvas.width, areaDesenho.canvas.height); vetorX = []; vetorY = []; vetorArrastar = []; } </script> </body> </html> Salve o código como "desenho.html" (cuidado para não salvar como "desenho.html.txt") e abra-o no seu navegador, remoto ou localmente. Você pode começar suas modificações alterando a cor do desenho, a largura da linha, etc. Você pode também deixar figuras pré-configuradas e até permitir que o usuário inclua fotos no Canvas. Para os estudantes que já sabem Node.js, saiba que é possível enviar os três vetores via sockets em um ambiente real time para que outros usuários na rede vejam o seu desenho em tempo real. Bons estudos. |
PHP ::: Design Patterns (Padrões de Projeto) ::: Singleton Pattern |
Como usar o padrão de projeto Singleton em suas aplicações PHPQuantidade de visualizações: 8731 vezes |
O padrão de projeto Singleton (ou Singleton Pattern) é um dos padrões de projeto mais conhecidos e implementados extensivamente nas linguagens Java e C#. Como o PHP, a partir de sua versão 5, suporta praticamente todos os recursos da programação orientada a objetos, este padrão pode ser implementado também nesta linguagem sem muitas dificuldades. Uma das situações nas quais usamos o padrão Singleton é quando queremos que somente uma instância de uma determinada classe seja criada e que esta esteja disponível para todas as demais classes do sistema. Um exemplo disso é uma classe responsável por registrar logs do sistema, uma classe responsável por obter conexões com o banco de dados, ou ainda uma classe que concentra dados de configuração da aplicação. Assim, a chave do padrão Singleton é um método estático, geralmente chamado de getInstance(), que retorna uma nova instância da classe se esta ainda não foi instanciada. Se a classe já tiver sido instanciada, o método getInstance() retorna a instância já existente. Vamos ver um exemplo deste padrão em PHP. Observe o código a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <? // Uma classe Singleton responsável por gravar // logs no sistema class Logger{ // variável estática e privada que guarda a instância // atual da classe private static $instancia = NULL; // Método estático que retorna uma instância já existente, ou // cria uma nova instância public static function getInstance(){ if(self::$instancia == NULL){ self::$instancia = new Logger(); } return self::$instancia; } // Construtor privado para evitar que instâncias sejam // criadas usando new private function __construct(){ // não precisamos fazer nada aqui } // Método clone() também privado para evitar a criação // de clones desta classe private function __clone(){ // não precisamos fazer nada aqui } public function registrarLog($dados){ echo "Vou registrar o log: " . $dados; } } // vamos registrar um novo log usando a classe Singleton Logger::getInstance()->registrarLog("Novo usuário cadastrado."); ?> Ao executar este código teremos o seguinte resultado: Vou registrar o log: Novo usuário cadastrado. |
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
Dicas e truques de outras linguagens |
Python - Como calcular o limite de uma função usando Python e a biblioteca Sympy - Python para Engenharia wxWidgets - Como baixar, compilar a biblioteca e criar um projeto C++ wxWidgets usando o Visual Studio 2017 |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha 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 |
Linguagens Mais Populares |
1º lugar: Java |