![]() |
|||||
|
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Um programa Java que gera um número randômico na faixa de 20 a 40 (valores inclusos) e exibe o seno, cosseno e tangenteQuantidade de visualizações: 541 vezes |
Pergunta/Tarefa: Escreva um programa Java que gera um número randômico na faixa de 20 a 40 (valores inclusos) e exibe o seno, cosseno e tangente do número aleatório gerado. Sua saída deve ser parecida com: O número gerado foi: 26 O seno do número gerado é: 0.7625584504796028 O cosseno do número gerado é: 0.6469193223286404 A tangente do número gerado é: 1.1787535542062797 O número gerado foi: 40 O seno do número gerado é: 0.7451131604793488 O cosseno do número gerado é: -0.6669380616522619 A tangente do número gerado é: -1.117214930923896 Veja a resolução comentada deste exercício usando Java: package estudos; import java.util.Random; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema int numero_rand; double seno, cosseno, tangente; // vamos gerar o número aleatório na faixa 20-40 Random rand = new Random(); numero_rand = rand.nextInt(21) + 20; System.out.println("O número gerado foi: " + numero_rand); // vamos gerar o seno do número sorteado seno = Math.sin(numero_rand); System.out.println("O seno do número gerado é: " + seno); // vamos gerar o cosseno do número sorteado cosseno = Math.cos(numero_rand); System.out.println("O cosseno do número gerado é: " + cosseno); // agora a tangente do número sorteado tangente = Math.tan(numero_rand); System.out.println("A tangente do número gerado é: " + tangente); } } |
VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de VisuAlg - Como verificar quantas vezes um valor é encontrado em um vetor - Como usar vetores e matrizes em VisuAlgQuantidade de visualizações: 384 vezes |
Pergunta/Tarefa: Escreva um programa VisuAlg que declara, constrói e inicializa um vetor de 10 inteiros. Em seguida peça para que o usuário informe um valor a ser pesquisado. Faça uma varredura no vetor e informe quantas vezes o valor pesquisado é encontrado: // declara um vetor de 10 inteiros valores: vetor[1..10] de inteiro Informe um valor: 4 O valor foi encontrado: 3 vezes Informe um valor: 8 O valor foi encontrado: 1 vezes Informe um valor: 3 O valor foi encontrado: 0 vezes Veja a resolução comentada deste exercício usando VisuAlg: algoritmo "Contar quantas vezes um elemento repete em um vetor" var // variáveis usadas na resolução do problema valores: vetor[1..10] de inteiro pesquisa, repeticoes, i: inteiro inicio // inicializa um vetor de 10 inteiros valores[1] <- 4 valores[2] <- 21 valores[3] <- 9 valores[4] <- 8 valores[5] <- 12 valores[6] <- 21 valores[7] <- 4 valores[8] <- 4 valores[9] <- 1 valores[10] <- 10 // vamos ler um valor inteiro escreva("Informe um valor: ") leia(pesquisa) // vamos verificar quantas vezes o valor informado está // contido no vetor repeticoes <- 0 para i de 1 ate 10 faca se valores[i] = pesquisa entao // encontrou? vamos contar esta ocorrência repeticoes <- repeticoes + 1 fimse fimpara // vamos mostrar o resultado escreva("O valor foi encontrado: ", repeticoes, " vezes") fimalgoritmo |
C++ ::: STL (Standard Template Library) ::: Vector C++ |
Como excluir todos os elementos de um vector C++ usando a função clear()Quantidade de visualizações: 17912 vezes |
Em algumas situações precisamos remover todos os elementos de um vector. Para isso podemos usar a função clear(). Esta função não requer nenhum argumento e possui retorno void. À medida que os elementos vão sendo removidos, seus destrutores são chamados (no caso de os elementos no vector serem referências e não tipos primitivos). Veja o código C++ completo para o exemplo: #include <iostream> #include <vector> using namespace std; int main(int argc, char *argv[]){ // um vector vazio que conterá inteiros vector<int> valores; // vamos inserir três elementos valores.push_back(54); valores.push_back(13); valores.push_back(87); // vamos obter a quantidade de elementos no vector cout << "Quantidade de elementos: " << valores.size() << endl; // vamos remover todos os elementos, ou seja, limpar o vector valores.clear(); // vamos obter a quantidade de elementos no vector novamente cout << "Quantidade de elementos: " << valores.size() << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: Quantidade de elementos: 3 Quantidade de elementos: 0 |
Portugol ::: Dicas & Truques ::: Laços de Repetição |
Como somar os dígitos de um número em Portugol usando o laço ENQUANTO - Solução para número inteiro de qualquer tamanhoQuantidade de visualizações: 442 vezes |
Em algumas situações nós precisamos obter e retornar a soma dos dígitos de um número inteiro positivo. Em nosso site você encontra alguns exemplos de como isso pode ser feito. No entanto, ao contrário das outras dicas, aqui eu mostro como somar os dígitos de um número informado pelo usuário sem fixar o seu tamanho, ou seja, não há limites para a quantidade de dígitos. Veja o código Portugol completo para o exemplo: // Como somar os dígitos de um número em Portugol programa { funcao inicio() { inteiro numero, soma // inicia a soma como zero soma = 0 // vamos pedir um número inteiro positivo escreva("Informe um número inteiro positivo: ") // lê o número informado leia(numero) // enquanto o número for diferente de 0 enquanto (numero != 0) { // adiciona à soma o resultado da divisão do número por 10 soma = soma + (numero % 10) // agora dividimos os número por 10 (divisão inteira) e continuamos numero = inteiro(numero / 10) } // e mostramos o resultado escreva("A soma dos dígitos é: ", soma) } } Ao executar este código Portugol Web Studio nós teremos o seguinte resultado: Informe um número inteiro positivo: 1273 A soma dos dígitos é: 13 |
C# ::: Dicas & Truques ::: Programação Orientada a Objetos |
C# para iniciantes - Programação orientada a objetos em C#: Classes, objetos, métodos e variáveis de instânciaQuantidade de visualizações: 30766 vezes |
A melhor forma de entender a programação orientada a objetos é começar com uma analogia simples. Suponha que você queira dirigir um carro e fazê-lo ir mais rápido pressionado o acelerador. O que deve acontecer antes que você seja capaz de fazer isso? Bem, antes que você possa dirigir um carro, alguém tem que projetá-lo. Um carro geralmente começa com desenhos feitos pelos engenheiros responsáveis por tal tarefa, tal qual a planta de uma casa. Tais desenhos incluem o projeto de um acelerador que possibilita ao carro ir mais rápido. O pedal do acelerador "oculta" os mecanismos complexos responsáveis por fazer o carro ir mais rápido, da mesma forma que o pedal de freio "oculta" os mecanismos que fazem o carro ir mais devagar e o volante "oculta" os mecanismos que fazem com que o carro possa virar para a direita ou esquerda. Isso permite que pessoas com pequeno ou nenhum conhecimento de motores possam facilmente dirigir um carro. Infelizmente, não é possível dirigir o projeto de um carro. Antes que possamos dirigí-lo, o carro deve ser construído a partir do projeto que o descreve. Um carro já finalizado tem um pedal de aceleração de verdade, que faz com que o carro vá mais rápido. Ainda assim, é preciso que o motorista pressione o pedal. O carro não acelerará por conta própria. Agora vamos usar nosso exemplo do carro para introduzir alguns conceitos de programação importantes à programação orientada a objetos. A execução de uma determinada tarefa em um programa exige um método. O método descreve os mecanismos que, na verdade, executam a tarefa. O método oculta tais mecanismos do usuário, da mesma forma que o pedal de aceleração de um carro oculta do motorista os mecanismos complexos que fazem com que um carro vá mais rápido. Em C#, começamos criando uma unidade de programa chamada classe para abrigar um método, da mesma forma que o projeto de um carro abriga o design do pedal de acelerador. Em uma classe fornecemos um ou mais métodos que são projetados para executar as tarefas da classe. Por exemplo, a classe que representa uma conta bancária poderia conter muitos métodos, incluindo um método para depositar dinheiro na conta, outro para retirar dinheiro, um terceiro para verificar o saldo, e assim por diante. Da mesma forma que não podemos dirigir o projeto de um carro, nós não podemos "dirigir" uma classe. Da mesma forma que alguém teve que construir um carro a partir de seu projeto antes que pudessémos dirigí-lo, devemos construir um objeto de uma classe antes de conseguirmos executar as tarefas descritas nela. Quando dirigimos um carro, o pressionamento do acelerador envia uma mensagem ao carro informando-o da tarefa a ser executada (neste caso informando-o de que queremos ir mais rápido). Da mesma forma, enviamos mensagens aos objetos de uma classe. Cada mensagem é uma chamada de método e informa ao objeto qual ou quais tarefas devem ser executadas. Até aqui nós usamos a analogia do carro para introduzir classes, objetos e métodos. Já é hora de saber que um carro possui atributos (propriedades) tais como cor, o número de portas, a quantidade de gasolina em seu tanque, a velocidade atual, etc. Tais atributos são representados como parte do projeto do carro. Quando o estamos dirigindo, estes atributos estão sempre associados ao carro que estamos usando, e cada carro construído a partir do projeto sofrerá variações nos valores destes atributos em um determinado momento. Da mesma forma, um objeto tem atributos associados a ele quando o usamos em um programa. Estes atributos são definidos na classe a partir da qual o objeto é instanciado (criado) e são chamados de variáveis de instância da classe. Veremos agora como definir uma classe em C# e usar um objeto desta classe em um programa. Se estiver usando o Visual C# 2005 ou 2008, a forma mais comum de adicionar uma classe ao seu projeto é clicando com o botão direito no namespace do projeto (o primeiro filho do solution explorer) e escolhendo a opção Add -> Class. Em seguida dê o nome "Cliente.cs" para a classe e clique o botão Add. Imediatamente o código inicial para a classe será exibido, contendo o namespace e alguns using padrões. Agora faça sua classe Cliente parecida com o código abaixo (não altere nada em relação ao namespace): class Cliente{ private String nome; // Um método que permite definir um valor // para a variável privada nome public void setNome(String nome){ this.nome = nome; } // Um método que permite obter o valor // da variável privada nome public String getNome(){ return this.nome; } } Agora vamos aprender a usar esta classe a partir da classe principal do programa (aquela que contém o método Main). Veja: static void Main(string[] args){ // Cria uma instância da classe Cliente Cliente c = new Cliente(); // Define um nome para o cliente c.setNome("Osmar J. Silva"); // Obtém o nome do cliente string nome = c.getNome(); Console.WriteLine(nome); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } |
Python ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em PythonQuantidade de visualizações: 2834 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 Python. 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 Python: # vamos importar o módulo Math import math as math def main(): c = 36.056 # medida da hipotenusa b = 30 # medida do cateto adjascente # agora vamos calcular o comprimento da cateto oposto a = math.sqrt(math.pow(c, 2) - math.pow(b, 2)) # e mostramos o resultado print("A medida do cateto oposto é: %f" % a) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: A medida do cateto oposto é: 20.000878 Como podemos ver, o resultado retornado com o código Python confere com os valores da imagem apresentada. |
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Como testar se um diretório existe em PHP usando a função file_exists()Quantidade de visualizações: 19022 vezes |
Em algumas situações nós precisamos verificar se um determinado diretório existe no sistema antes de efetuarmos alguma operação. Para isso nós podemos usar a função file_exists(). Esta função retorna um valor true se o diretório existir e false em caso contrário. Veja um código PHP completo demonstrando o seu uso: <?php $diretorio = "arquivo/imagens"; if(file_exists($diretorio)){ echo "O diretório já existe."; } else{ echo "O diretório não existe ainda."; } ?> |
C ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular desvio padrão em C - C para Matemática e EstatísticaQuantidade de visualizações: 6477 vezes |
Em Matemática e Estatística, o Desvio padrão (em inglês: Standard Deviation) é uma medida de dispersão, ou seja, é uma medida que indica o quanto um conjunto de dados é uniforme. Quando o desvio padrão é baixo, isso quer dizer que os dados do conjunto estão mais próximos da média. Como calcular o desvio padrão de um conjunto de dados? Vamos começar analisando a fórmula mais difundida na matemática e na estatística: \[\sigma = \sqrt{ \frac{\sum_{i=1}^N (x_i -\mu)^2}{N}}\] Onde: a) __$\sigma__$ é o desvio; b) __$x_i__$ é um valor qualquer no conjunto de dados na posição i; c) __$\mu__$ é a média aritmética dos valores do conjunto de dados; d) N é a quantidade de valores no conjunto. O somatório dentro da raiz quadrada nos diz que devemos somar todos os elementos do conjunto, desde a posição 1 até a posição n, subtrair cada valor pela média do conjunto e elevar ao quadrado. Obtida a soma, nós a dividimos pelo tamanho do conjunto. Veja o código C completo que obtém o desvio padrão a partir de um conjunto de dados contendo quatro valores: #include <stdio.h> #include <stdlib.h> #include <math.h> // função principal do programa int main(int argc, char *argv[]){ // conjunto dos dados float conjunto[] = {10, 30, 90, 30}; float soma = 0.0; // soma dos elementos float desvio_padrao = 0.0; // desvio padrão int tam = 4; // tamanho dos dados int i; float media; // vamos somar todos os elementos for(i = 0; i < tam; i++){ soma = soma + conjunto[i]; } // agora obtemos a média do conjunto de dados media = soma / tam; // e finalmente obtemos o desvio padrão for(i = 0; i < tam; i++){ desvio_padrao = desvio_padrao + pow(conjunto[i] - media, 2); } // mostramos o resultado printf("Desvio Padrão Populacional: %f\n", sqrt(desvio_padrao / tam)); printf("Desvio Padrão Amostral: %f", sqrt(desvio_padrao / (tam - 1))); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Desvio Padrão Populacional: 30.0 Desvio Padrão Amostral: 34.64101615137755 Veja que, para calcular o Desvio Padrão Populacional, nós dividimos o somatório pela quantidade de elementos no conjunto, enquanto, para calcular o Desvio Padrão Amostral, nós dividimos o somatório pela quantidade de elementos - 1 (cuidado com a divisão por zero no caso de um conjunto com apenas um elemento). |
PHP ::: Dicas & Truques ::: Data e Hora |
Como retornar o dia da semana em PHP na forma abreviada e em português usando a função gmstrftime() e o sinalizador "%a"Quantidade de visualizações: 237 vezes |
Como retornar o dia da semana em PHP na forma abreviada e em português usando a função gmstrftime() e o sinalizador "%a" Nesta dica mostrarei um código que retorna o nome do dia da semana de forma abreviada e em português usando a função gmstrftime() combinada com o sinalizador "%a". O resultado será agora como "seg", "ter", "qua", etc. Veja o código PHP completo para o exemplo: <?php // obtemos o locale padrão $locale_anterior = setlocale(LC_ALL, NULL); // ajustamos o locale para português brasileiro setlocale(LC_ALL, "pt_BR"); // obtemos o dia da semana $dia_semana = gmstrftime("%a", time()); // voltamos o locale anterior setlocale(LC_ALL, $locale_anterior); // e mostramos o resultado echo "O dia da semana é: " . $dia_semana; ?> Ao executar este código PHP nós teremos o seguinte resultado: O dia da semana é: dom |
Flutter ::: Material Library - Biblioteca Material ::: TextField |
Como habilitar ou desabilitar um botão ao digitar em um widget TextField do FlutterQuantidade de visualizações: 3781 vezes |
Nesta dica eu mostro como podemos habilitar ou desabilitar um botão ElevatedButton dependendo do conteúdo de um TextField. Para isso nós vamos usar a propriedade onChanged da classe TextField para desabilitar o botão quando a caixa de texto estiver vazia e habilitá-lo em caso contrário. O truque aqui é passar um valor null para a propriedade onPressed do ElevatedButton. Só isso já basta para que o botão fique desabilitado. Veja o código completo para o exemplo: import 'package:flutter/material.dart'; // método principal do Dart, que inicia a aplicação void main() { runApp(MeuApp()); } class MeuApp extends StatelessWidget { // Este widget é a raiz da aplicação Flutter @override Widget build(BuildContext context) { return MaterialApp( title: 'Controle TextField', theme: ThemeData( primarySwatch: Colors.blue, ), home: TelaInicial(), ); } } // Vamos construir a view e retornar para a raiz da aplicação class TelaInicial extends StatefulWidget { TelaInicial({Key key}) : super(key: key); @override _TelaInicialState createState() => _TelaInicialState(); } class _TelaInicialState extends State<TelaInicial> { bool btnDesabilitado = true; // vamos desabilitar o botão @override Widget build(BuildContext context) { // vamos criar uma caixa de texto chamada nomeTxt final nomeTxt = TextField( decoration: InputDecoration( border: OutlineInputBorder( borderRadius: BorderRadius.circular(10.0)), hintText: 'Digite seu nome' ), // Vamos detectar a mudança de conteúdo do TextField onChanged: (String value) async { // setState() força a atualização da janela if(value.isEmpty) { // o campo de texto não está vazio setState(() { btnDesabilitado = true; // desabilita o botão }); } else{ setState(() { btnDesabilitado = false; // habilita o botão }); } } ); final btnNome = ElevatedButton( onPressed: btnDesabilitado ? null : (){}, child: Text('Clique Aqui'), ); return Scaffold( appBar: AppBar( title: Text("O Widget TextField"), ), body: Center( child: Container( child: Padding( padding: const EdgeInsets.all(20.0), child: Column( children: <Widget>[ // a caixa de texto TextField vai aqui nomeTxt, // o botão vai aqui btnNome, ], ), ), ), ), ); } } |
Nossas 20 dicas & truques de programação mais populares |
Python - Como verificar se uma string contém apenas caracteres de espaços em Python usando a função isspace() AutoCAD Civil 3D .NET C# - Como retornar a quantidade de estacas de um alinhamento do Civil 3D usando a função GetStationSet() da classe Alignment da AutoCAD Civil 3D .NET API JavaScript - Como obter o código da tecla pressionada em um elemento HTML usando o evento onkeypress do JavaScript |
Você também poderá gostar das dicas e truques de programação abaixo |
JavaScript - Como testar se todos os elementos de um array satisfazem uma condição em JavaScript usando a função every() Revit C# - Como criar eixos no Revit via programação usando a função Create() da classe Grid da Revit C# API |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |