![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
C# ::: Dicas & Truques ::: Recursão (Recursividade) |
Como escrever uma função recursiva para calcular a potência de um número em C# - Curso de C# para iniciantesQuantidade de visualizações: 4745 vezes |
Chamamos de potenciação a operação de se elevar um número (uma base) a um determinado expoente e obter sua potência. Veja a figura a seguir:![]() Veja que aqui o valor 5 foi elevado ao cubo, ou seja, ao expoente 3 e obtemos como resultado sua potência: 125. O código abaixo mostra como você pode escrever uma função recursiva em C# que permite calcular a potência de um número inteiro: using System; namespace Estudos{ class Program{ // função recursiva que calcula a potência de // um inteiro static int potencia(int mbase, int expoente) { if (expoente == 0) { return 1; } else { return mbase * potencia(mbase, expoente - 1); } } static void Main(string[] args) { int mbase = 3; // base int expoente = 4; Console.WriteLine(mbase + " elevado a " + expoente + " = " + potencia(mbase, expoente)); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: 3 elevado a 4 = 81 |
Delphi ::: Dicas & Truques ::: Data e Hora |
Como obter a diferença de dias entre duas datas em Delphi usando a função DaysBetween()Quantidade de visualizações: 24250 vezes |
Em algumas situações nós precisamos saber a diferença de dias entre duas datas. Para isso podemos usar a função DaysBetween(), presente na unit DateUtil. Esta função recebe dois objetos TDateTime e retorna um inteiro contendo a quantidade de dias entre as duas datas. Observe, no entanto, que a função DaysBetween() retorna apenas a quantidade de dias completos, ou seja, as horas, minutos, segundos e milisegundos são incluídos no cálculo dos dias. Se faltar apenas um segundo para completar um dia, tal dia não será incluído na contagem. Veja um exemplo de seu uso:procedure TForm1.Button1Click(Sender: TObject); var data1, data2: TDateTime; quant_dias: Integer; begin // vamos criar as duas datas, observe que as horas // também foram definidas // primeira data: 12/01/2010 às 09:10:15 data1 := EncodeDateTime(2010, 1, 12, 9, 10, 15, 0); // segunda data: 15/01/2010 às 19:10:15 data2 := EncodeDateTime(2010, 1, 15, 19, 10, 15, 0); // vamos obter a quantidade de dias entre as duas datas quant_dias := DaysBetween(data1, data2); // mostra o resultado ShowMessage('A diferença de dias é: ' + IntToStr(quant_dias)); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
C# ::: Dicas & Truques ::: Strings e Caracteres |
Como embaralhar os caracteres de uma string em C# usando um objeto da classe RandomQuantidade de visualizações: 11076 vezes |
Nesta dica mostrarei como podemos embaralhar os caracteres de uma palavra, frase ou texto na linguagem C#. Para isso nós faremos uso do método ToCharArray() da classe String para extrair os caracteres da string como um vetor de chars. Em seguida usaremos um objeto da classe Random para gerar números randômicos que serão usados para auxiliar na troca dos caracteres contidos no vetor. Veja o código completo para o exemplo: using System; namespace Estudos { class Principal { static void Main(string[] args) { string palavra = "ARQUIVO"; // converte em uma matriz de caracteres char[] letras = palavra.ToCharArray(); // mostramos a palavra original Console.WriteLine("Palavra original: " + palavra); // vamos embaralhar 5 vezes embaralhar(ref letras, 5); // junta as partes da string novamente string nova_palavra = new String(letras); // exibe o resultado Console.WriteLine("Palavra embaralhada: " + nova_palavra); Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } static void embaralhar(ref char[] array, int vezes) { Random rand = new Random(DateTime.Now.Millisecond); for (int i = 1; i <= vezes; i++) { for (int x = 1; x <= array.Length; x++) { trocar(ref array[rand.Next(0, array.Length)], ref array[rand.Next(0, array.Length)]); } } } static void trocar(ref char arg1, ref char arg2) { char strTemp = arg1; arg1 = arg2; arg2 = strTemp; } } } Ao executar este código C# nós teremos o seguinte resultado: Palavra original: ARQUIVO Palavra embaralhada: UVIARQO |
Java ::: Estruturas de Dados ::: Lista Ligada Simples |
Estruturas de dados em Java - Como criar uma lista singularmente ligada, inserindo e exibindo os valores contidos em cada nóQuantidade de visualizações: 12180 vezes |
Em dicas posteriores você aprendeu sobre listas singularmente e duplamente ligadas. Nesta dica você aprenderá a criar uma lista singularmente ligada (com referências apenas para o próximo nó), inserir alguns nós (sempre no final da lista) e usará um laço while para visitar todos os nós e exibir seus valores. A classe usada para representar cada nó é a seguinte (No.java): // classe No public class No{ public int valor; public No proximo; } // fim da classe No Note que cada nó contém apenas um valor inteiro e uma referência para o próximo nó. Ao analisar o código você perceberá que tanto a inserção quanto a exibição dos nós são feitas usando métodos. Isso permitirá o reaproveitamento deste código em suas próprias implementações. Veja o código para a lista ligada (Lista.java): public class Lista{ No inicio; // início da lista // função que permite exibir os valores de // todos os nós da lista public void exibir(){ if(inicio != null){ do{ System.out.println(inicio.valor); inicio = inicio.proximo; }while(inicio != null); } else System.out.println("A lista esta vazia\n\n"); } // função que permite inserir nós na lista. // veja que a função recebe o valor a ser // armazenado em cada nó public void inserir(int v){ No temp; // verifica se a lista está vazia if(inicio == null){ // reserva memória para o novo nó inicio = new No(); inicio.valor = v; // é o primeiro nó...não deve apontar para // lugar nenhum inicio.proximo = null; } else{ // não está vazia....vamos inserir o nó no final temp = inicio; // vamos varrer a lista até encontrar o último nó while(temp.proximo != null) temp = temp.proximo; // estamos no último nó...vamos criar um novo nó agora temp.proximo = new No(); // atribui o valor do nó temp.proximo.valor = v; // define o campo proximo do nó como null temp.proximo.proximo = null; } } } Compile as classes No.java e Lista.java e vamos fazer o teste (TesteJava.java): public class TesteLista{ public static void main(String args[]){ // vamos criar uma nova lista Lista lista = new Lista(); // vamos inserir quatro valores na lista lista.inserir(45); lista.inserir(3); lista.inserir(98); lista.inserir(17); // exibe os valores na lista lista.exibir(); System.exit(0); } } |
JavaScript ::: Dicas & Truques ::: Strings e Caracteres |
Como converter uma string em um valor inteiro em JavaScript usando a função parseInt()Quantidade de visualizações: 26745 vezes |
Nesta dica mostrarei como podemos usar a função parseInt() do JavaScript para transformar uma string em um valor inteiro. Esse procedimento é necessário quando estamos efetuando cálculos com valores vindos de campos de formulários. Veja a página HTML completa para o exemplo: <!doctype html> <html> <head> <title>Strings em JavaScript</title> </head> <body> <script type="text/javascript"> var string1 = "110"; var string2 = "Arquivo"; var string3 = "65,54"; document.write(parseInt(string1) + "<br>"); document.write(parseInt(string2) + "<br>"); document.write(parseInt(string3)); </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: 110 NaN 65 |
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: 7388 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() |
JavaScript ::: Desafios e Lista de Exercícios Resolvidos ::: JavaScript Básico |
Exercício Resolvido de JavaScript - Como somar dois números em JavaScript - O operador de adição da linguagem JavaScriptQuantidade de visualizações: 1920 vezes |
Pergunta/Tarefa: Escreva um programa JavaScript para somar dois números, ou seja, dois valores numéricos inteiros. O usuário deverá informar os dois valores. Para efetuar a leitura dos números você pode usar a função window.prompt() e, para exibir o resultado, use a função window.alert(). Sua saída deverá ser parecida com: Informe o primeiro número: 7 Informe o segundo número: 3 A soma dos números é: 10 Veja a resolução comentada deste exercício em JavaScript: <!doctype html> <html> <head> <title>Exercícios de JavaScript</title> </head> <body> <script type="text/javascript"> // vamos ler dois números do usuário var num1 = Number.parseInt(window.prompt( "Informe o primeiro número:")); var num2 = Number.parseInt(window.prompt( "Informe o segundo número:")); // agora vamos somar os dois números var soma = num1 + num2; // e mostramos o resultado window.alert("A soma dos números é: " + soma); </script> </body> </html> |
C# ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C# - Como verificar quantas vezes um valor é encontrado em um vetor - Como usar vetores e matrizes em C#Quantidade de visualizações: 443 vezes |
Pergunta/Tarefa: Escreva um programa C# 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, constrói e inicializa um vetor de 10 inteiros int[] valores = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10}; 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 C#: using System; namespace Estudos { class Principal { // função principal do programa C# static void Main(string[] args) { // declara, constrói e inicializa um vetor de 10 inteiros int[] valores = { 4, 21, 9, 8, 12, 21, 4, 4, 1, 10 }; // vamos ler um valor inteiro Console.Write("Informe um valor: "); int pesquisa = Int32.Parse(Console.ReadLine()); // vamos verificar quantas vezes o valor informado está // contido no vetor int repeticoes = 0; for (int i = 0; i < valores.Length; i++) { if (valores[i] == pesquisa) { repeticoes++; // encontrou? vamos contar esta ocorrência } } // vamos mostrar o resultado Console.WriteLine("O valor foi encontrado: " + repeticoes + " vezes"); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } |
Angular ::: Dicas & Truques ::: Componentes Angular |
Angular para iniciantes - Como criar o seu primeiro componente Angular usando o Angular CLI - Comando ng generate componentQuantidade de visualizações: 2870 vezes |
Aplicações Angular são construidas em cima de componentes, e estes consistem de: a) Um template HTML que declara o que deve ser renderizado na página. b) Uma classe TypeScript que define o comportamento do componente. c) Um seletor CSS que define com o componente será usado em um template. d) Estilos CSS opcionais aplicados ao template. Todos esses aspectos acima são abordados em mais dicas dessa seção. O importante agora é entendermos como criar o componente e exibí-lo no navegador. Assim, se você ainda não o fez, crie uma nova aplicação Angular usando o Angular CLI. Você pode usar um comando parecido com: c:\estudos_angular>ng new estudos Este comando vai criar uma nova aplicação Angular com o nome estudos dentro da pasta "c:\estudos_angular". Aguarde alguns minutos e verá que o Angular CLI já criou toda a estrutura da aplicação. Para executá-la, dispare os comandos abaixo: c:\estudos_angular>cd estudos c:\estudos_angular\estudos>ng serve --open Quando a aplicação subir, veremos o seguinte resultado: ![]() Você obteve um resultado parecido? Então vamos continuar. Vá até o diretório "C:\estudos_angular\estudos\src\app" e você verá que o Angular CLI já criou para nós um componente com o nome AppComponent por meio dos arquivos app.component.css, app.component.html, app.component.spec.ts e app.component.ts. Agora vamos voltar nossa atenção para o arquivo app.module.ts. Abra ele no seu editor de texto favorito e você verá o seguinte código: import {NgModule} from '@angular/core'; import {BrowserModule} from '@angular/platform-browser'; import {AppComponent} from './app.component'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { } Por ora não vamos analisar todo o conteúdo deste arquivo, apenas fique atento ao que vai acontecer com ele depois que criarmos nosso novo componente, o que faremos agora. Abra uma nova janela de terminal, navegue até o diretório raiz da aplicação e dispare o seguinte comando: c:\angular>cd estudos c:\angular\estudos>ng generate component noticia Nesse momento o Angular CLI criou uma pasta noticia com os seguintes arquivos: noticia.component.css noticia.component.html noticia.component.spec.ts noticia.component.ts Agora volte até o arquivo app.module.ts e veja que o Angular CLI o modificou, adicionando o novo componente NoticiaComponent. É importante entender bem o que acontece com este arquivo, pois é ele que indica qual componente será iniciado em primeiro lugar junto com a aplicação Angular. Agora abra o arquivo noticia.component.ts e altere o seu conteúdo para a versão abaixo: import { Component } from '@angular/core'; @Component({ selector: 'app-noticia', templateUrl: './noticia.component.html', styleUrls: ['./noticia.component.css'] }) export class NoticiaComponent{ titulo = `Presidente afirma que o preço da gasolina não sobe mais.`; } Agora vá em noticia.component.html e altere-o para o código abaixo: <div> <h2>Sou o componente Noticia</h2> <h3>{{ titulo }}</h3> </div> Nosso componente está pronto. Vamos fazer uns ajustes no componente que o Angular CLI criou para nós automaticamente. Abra o arquivo app.component.ts e altere o seu conteúdo para: import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { nome = 'AppComponent'; } Agora vá até o arquivo app.component.html e modifique-o para o código abaixo: <div> <h1>Sou o componente que o Angular CLI criou</h1> <h2>Meu nome é: {{ nome }}</h2> </div> <app-noticia></app-noticia> Veja que coloquei o componente <app-noticia></app-noticia> dentro do componente principal. Agora, se você reiniciar a aplicação (é provável que as mudanças já estejam aparecendo no seu navegador) você verá o resultado abaixo: ![]() Obteve resultado parecido? Que maravilha! Agora, para terminar esta dica, abra o arquivo noticia.component.css e vamos adicionar os estilos CSS abaixo: h2 {color: red} div {border: 1px solid green; padding: 10px} Veja a aplicação novamente e note como o componente Noticia já contém uma formatação diferente. Agora é só criar vários componentes, agrupá-los, aplicar formatações CSS, imagens, etc, e contruir uma aplicação realmente interessante. |
Delphi ::: VCL - Visual Component Library ::: TComboBox |
Como usar a propriedade Items da classe TComboBox do DelphiQuantidade de visualizações: 13295 vezes |
A propriedade Items da classe TComboBox representa um objeto da classe TStrings, a classe base para objetos que representam uma lista de strings. Isso quer dizer que podemos acessar a propriedade Items e usar todos os métodos e propriedades da classe TStrings, tais como Add(), Clear(), Delete(), Exchange(), etc. Veja, por exemplo, como usar o método Add() para adicionar um novo item no ComboBox: procedure TForm1.Button1Click(Sender: TObject); begin // vamos adicionar um novo item ao ComboBox comboBox1.Items.Add('Arquivo de Códigos'); end; É possível obter um referência à propriedade Items para manipular os itens do ComboBox indiretamente. Veja: procedure TForm1.Button1Click(Sender: TObject); var lista: TStrings; begin // vamos obter a lista de itens do ComboBox lista := comboBox1.Items; // vamos adicionar um novo item à lista lista.Add('Arquivo de Códigos'); end; Esta técnica é útil quando queremos inserir itens em um TComboBox a partir de uma função ou procedure. Veja: // procedure personalizada para inserir itens em um TComboBox procedure inserirItensComboBox(lista: TStrings); begin lista.Add('Arquivo de Códigos'); lista.Add('Osmar J. Silva'); end; procedure TForm1.Button1Click(Sender: TObject); begin // vamos chamar a procedure que adiciona os itens no ComboBox inserirItensComboBox(ComboBox1.Items); end; Para finalizar, veja como escrever uma função personalizada que constrói e retorna uma lista de strings. Note como usamos o objeto TStrings retornado para preencher o ComboBox: // função personalizada que constrói e retorna uma lista // de strings function obterLista: TStrings; var lista: TStringList; begin lista := TStringList.Create; lista.Add('Arquivo de Códigos'); lista.Add('Osmar J. Silva'); Result := lista; end; procedure TForm1.Button1Click(Sender: TObject); begin // vamos obter a lista de strings ComboBox1.Items := obterLista; end; Observe que, embora o retorno seja TStrings, no corpo da função nós construímos um objeto da classe TStringList. Isso acontece porque TStrings é uma classe abstrata e, portanto, não podemos chamar seu construtor. Como TStringList herda de TStrings e é uma classe concreta, esta é a escolha mais óbvia. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como remover os espaços no final de uma string em JavaScript usando uma função trim_final() personalizada |
Você também poderá gostar das dicas e truques de programação abaixo |
VB.NET - Como comparar strings em VB.NET usando o método Equals() da classe String do .NET Framework JavaScript - JavaScript para iniciantes - Como converter uma string em um valor numérico usando o método Number() do JavaScript |
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 |