![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
|
Python ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como embaralhar os elementos de um array em Python usando random.shuffle()Quantidade de visualizações: 1243 vezes |
Nesta dica mostrarei como podemos embaralhar a ordem dos elementos de uma lista do Python. Para isso usaremos o método shuffle() do módulo random. Este método muda a ordem dos elementos no vetor original. Veja o código completo para o exemplo: # vamos importar o módulo random import random # função principal do programa def main(): # vamos criar uma lista de números inteiros numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # vamos mostrar o vetor original print("Ordem original: {0}".format(numeros)) # agora vamos embaralhar a ordem dos elementos da lista random.shuffle(numeros) # e mostramos o resultado print("Após o embaralhamento: {0}".format(numeros)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Ordem original: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Após o embaralhamento: [3, 10, 6, 8, 9, 5, 7, 4, 1, 2] |
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: 30800 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(); } |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como verificar se uma substring está contida no final de uma string usando a função AnsiEndsStr() do DelphiQuantidade de visualizações: 11464 vezes |
Em algumas situações precisamos verificar se uma substring está contida no final de uma string, ou seja, se a string termina com um determinado sufixo. Em Delphi isso pode ser feito com o auxílio da função AnsiEndsStr(). Esta função requer a substring a ser pesquisada e a string alvo da pesquisa. O retorno será true se a substring estiver contida no final da string. Do contrário o retorno será false. Veja o exemplo:procedure TForm1.Button1Click(Sender: TObject); var frase: string; begin frase := 'Gosto muito de Delphi e Java'; // vamos verificar se a string termina com "Java" if AnsiEndsStr('Java', frase) then ShowMessage('A frase termina com a substring indicada') else ShowMessage('A frase NÃO termina com a substring indicada') end; Não se esqueça de adicionar a unit StrUtils no uses do seu formulário. Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
JavaScript ::: Dicas & Truques ::: Strings e Caracteres |
Como adicionar zeros ou outro caractere ao final de uma string em JavaScript usando a função padEnd() do objeto StringQuantidade de visualizações: 1580 vezes |
O método padEnd(), adicionado ao objeto String no ES2017 (ECMAScript 8) é usado quando queremos preencher o final de uma string com zeros ou qualquer outro caractere até alcançarmos um comprimento determinado. Veja, por exemplo, como adicionar asteríscos (*) no final de uma string para alcançar o tamanho de dez caracteres: <script type="text/javascript"> var valor = 17; // vamos mostrar o valor com o tamanho de dez caracteres document.write("O valor é: " + valor.toString().padEnd(10, "*")); </script> Ao executar o exemplo você verá o valor "17********" ser exibido. Porém, como o método padEnd() foi adicionado no ES2017, pode ser que você encontre navegadores que ainda não o suportem. Assim, é sempre uma idéia testar a sua existência. Veja: <script type="text/javascript"> if(String.prototype.padEnd){ window.alert("Seu browser já suporta a função padEnd()."); } else{ window.alert("Seu browser NÃO suporta a função padEnd()."); } </script> Se o navegador não oferecer suporte a este método, você poderá usar um Polyfill, de terceiros ou uma solução que você mesmo poderá desenvolver. |
C ::: Dicas & Truques ::: Arquivos e Diretórios |
Como ler o conteúdo de um arquivo uma linha de cada vez usando a função fgets() da linguagem CQuantidade de visualizações: 29014 vezes |
A função fgets(), disponível no header cstdio ou stdio.h, é usada para ler caracteres de um arquivo e armazená-los em um vetor de caracteres. Esta função recebe três argumentos. Veja:char *fgets(char *buffer, int num, FILE *file); No exemplo abaixo usamos um laço while() para ler o conteúdo até que o final de arquivo EOF seja encontrado. Desta forma, como sabemos que cada linha no arquivo termina com um marcador de fim de linha, fica fácil ler cada linha. É claro que se a linha sendo lida for maior que o tamanho do buffer, o efeito não será conseguido. Observe ainda que cada linha lida contém o caractere de fim de linha anexado a ela: #include <stdio.h> #include <stdlib.h> const int TAM_BUFFER = 255; // quantidade de caracteres // a serem lidos no buffer de cada vez int main(int argc, char *argv[]) { FILE *arquivo = fopen("c:\\testes.txt", "r"); char buffer[TAM_BUFFER]; // testa se o arquivo foi aberto com sucesso if(arquivo != NULL){ // vamos usar um laço para ler o conteúdo do arquivo // e armazenar no buffer while(fgets(buffer, TAM_BUFFER, arquivo)){ printf("%s\n", buffer); } fclose(arquivo); // libera o ponteiro para o arquivo } else{ printf("Nao foi possivel abrir o arquivo."); } printf("\n\n"); system("PAUSE"); return 0; } |
C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico |
Exercício Resolvido de C - Como ler um número inteiro e imprimir seu sucessor e seu antecessor em CQuantidade de visualizações: 1572 vezes |
Pergunta/Tarefa: Escreva um programa C para ler um número inteiro e imprimir seu sucessor e seu antecessor. O usuário poderá informar um valor positivo ou negativo. Sua saída deverá ser parecida com: Informe um número inteiro: 16 O número informado foi: 16 O antecessor é 15 O sucessor é: 17 Veja a resolução comentada deste exercício usando 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 problema int numero, sucessor, antecessor; setlocale(LC_ALL,""); // para acentos do português // vamos pedir para o usuário informar um número inteiro printf("Informe um número inteiro: "); scanf("%d", &numero); // vamos calcular o sucessor do número informado sucessor = numero + 1; // vamos calcular o antecessor do número informado antecessor = numero - 1; // e agora mostramos os resultados printf("O número informado foi: %d\n", numero); printf("O antecessor é %d\n", antecessor); printf("O sucessor é: %d", sucessor); printf("\n\n"); system("PAUSE"); return 0; } |
Android Java ::: androidx.appcompat.app ::: AppCompatActivity |
Como usar o método startActivity() da classe Activity ou AppCompatActivity do Android para mudar de telasQuantidade de visualizações: 2084 vezes |
Por mais simples que nossas aplicações Android sejam, elas serão compostas de duas ou mais telas, ou seja, duas ou mais Activity ou AppCompatActivity. Nesta dica mostrarei como usar o método startActivity() dessas duas classes para levar o usuário da primeira tela para a segunda. Lembre-se de que AppCompatActivity herda de Activity e, nos dias atuais, é a classe preferida para representar as telas individuais das aplicações Android. Comece criando um novo projeto no Android Studio. Escolha Empty Activity e dê o nome "App Duas Telas" ao projeto. Observe que o Android Studio já criou uma Activity ou AppCompatActivity com o nome MainActivity.java. Vamos nos certificar de que esta Activity é de fato a tela principal da aplicação. Abra o arquivo AndroidManifest.xml e veja se seu elemento <activity> se parece com o que temos abaixo: <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> Se tudo estiver Ok, vamos agora criar a segunda tela. Clique com o botão direito em cima do pacote "com.example.appduastelas" e escolha New -> Activity -> Empty Activity. Dê o nome "SegundaTela", desmarque a opção Launcher Activity e clique o botão Finish. Se você observar o arquivo AndroidManifest.xml novamente, você verá que a segunda tela já foi adicionada lá. Agora vamos examinar o arquivo XML de layout para a primeira tela (layout\activity_main.xml): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" android:orientation="vertical" tools:context="com.example.appduastelas.MainActivity"> <Button android:id="@+id/abrir_tela" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:onClick="abrirSegundaTela" android:text="@string/abrir_tela" /> </LinearLayout> Note que temos um elemento <LinearLayout> e, dentro dele, um elemento <Button>. No botão nós declaramos o método abrirSegundaTela para seu atributo onClick. Não esqueça de atualizar o arquivo strings.xml para refletir o texto do botão "@string/abrir_tela". Pronto. Agora vamos ver o arquivo XML de layout para a segunda tela (layout\activity_segunda_tela.xml): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" android:orientation="vertical" tools:context="com.example.appduastelas.SegundaTela"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Sou a segunda tela."/> </LinearLayout> Nesse layout nós temos um elemento <LinearLayout> e, dentro dele, um elemento <TextView>, que serve apenas para exibir um texto qualquer na segunda tela. Para finalizar, só precisamos escrever o método abrirSegundaTela() na MainActivity.java. Veja o código completo: package com.example.appduastelas; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // método usado para abrir a segunda tela public void abrirSegundaTela(View view) { Intent intent = new Intent(this, SegundaTela.class); startActivity(intent); } } Veja que dentro do método abrirSegundaTela(), que recebe uma View com parâmetro, nós criamos um novo objeto da classe Intent e fornecemos o nome da segunda tela. Em seguida fazemos uma chamada ao método startActivity() passando o Intent recém-criado como argumento. Pronto! É só isso. Execute a aplicação, clique no botão e veja a segunda tela ser exibida. Pressione o botão Voltar e repita quantas vezes quiser. Agora é só criar mais telas e desenvolver vários e vários apps Android. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística |
Exercício Resolvido de Java - Como simplificar frações em JavaQuantidade de visualizações: 779 vezes |
Pergunta/Tarefa: Simplificar uma fração consiste em reduzir o numerador e o denominador por meio da divisão pelo máximo divisor comum aos dois números. Uma fração está totalmente simplificada quando verificamos que seus termos estão totalmente reduzidos a números que não possuem termos divisíveis entre si. Uma fração simplificada sofre alteração do numerador e do denominador, mas seu valor matemático não é alterado, pois a fração, quando tem seus termos reduzidos, torna-se uma fração equivalente. Escreva um programa Java que pede para o usuário informar o numerador e o denominador de uma fração e mostre a fração simplificada. Use uma classe Fracao para a operação de simplificação. Em outras seções do nosso site você encontra o cálculo do MDC para encontrar o Máximo Divisor Comum. Sua saída deverá ser parecida com: Informe o numerador: 32 Informe o denominador: 40 A fração gerada foi: 32/40 A fração simplificada é: 4/5 Veja a resolução comentada deste exercício em Java: package estudos; import java.util.Scanner; public class Estudos{ public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar o numerador System.out.print("Informe o numerador: "); int numerador = Integer.parseInt(entrada.nextLine()); // vamos pedir para o usuário informar o denominador System.out.print("Informe o denominador: "); int denominador = Integer.parseInt(entrada.nextLine()); // vamos criar um objeto da classe Fracao Fracao f = new Fracao(numerador, denominador); // vamos mostrar a fração gerada System.out.println("A fração gerada foi: " + f.toString()); // agora vamos simplificar esta fração System.out.println("A fração simplificada é: " + f.simplificar().toString()); } } // classe usada para representar uma Fração class Fracao{ int numerador; int denominador; // construtor da classe public Fracao(int numerador, int denominador) { this.numerador = numerador; this.denominador = denominador; } // método que simplifica a fração atual e retorna o // resultado como uma fração public Fracao simplificar(){ // cria uma fração temporária Fracao temp = new Fracao(this.numerador, this.denominador); // descobrimos que é maior, o numerador ou o // denominador int n = temp.numerador, d = temp.denominador, maior; // o numerador é menor que 0? if (temp.numerador < 0) { n = -temp.numerador; } // descobrimos o maior if (n > d) { maior = n; } else { maior = d; } // encontramos o maior número que divide o numerador e o // denominador int mdc = 0; for (int i = maior; i >= 2; i--) { if ((temp.numerador % i == 0) && (temp.denominador % i == 0)) { mdc = i; break; } } // agora dividimos tanto o numerador quanto o denominador // pelo mdc encontrado if (mdc != 0) { temp.numerador = temp.numerador / mdc; temp.denominador = temp.denominador / mdc; } // retorna a fração temporária return temp; } // retorna uma representação textual dessa fração @Override public String toString() { return this.numerador + "/" + this.denominador; } } |
Java ::: Classes e Componentes ::: JComboBox |
Tutorial Java Swing - Como remover todos os itens de um JComboBox (Caixa de Combinação) em tempo de execuçãoQuantidade de visualizações: 12535 vezes |
Nesta dica mostrarei como é possível usar o método removeAllItems() da classe JComboBox para remover todos os seus itens. Note que criei a aplicação Java Swing na mão mesmo, sem usar nenhum editor visual de GUI, como o que está disponível no IDE Netbeans. Esta abordagem pode não ser produtiva, mas é excelente para entender como o Java Swing funciona. Veja o código completo para o exemplo: package arquivodecodigos; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Estudos extends JFrame{ JComboBox combo; public Estudos(){ super("A classe JComboBox"); Container c = getContentPane(); c.setLayout(new FlowLayout(FlowLayout.LEFT)); // Cria os itens da lista String nomes[] = {"Carlos", "Marcelo", "Fabiana", "Carolina", "Osmar"}; // Cria o JComboBox combo = new JComboBox(nomes); // Um botão que permite limpar o JComboBox JButton btn = new JButton("Limpar"); btn.addActionListener( new ActionListener(){ @Override public void actionPerformed(ActionEvent e){ // remove todos os itens do JComboBox combo.removeAllItems(); } } ); // Adiciona o JComboBox à janela c.add(combo); // Adiciona o botão à janela c.add(btn); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Aqui os itens do JComboBox foram inseridos a partir de um vetor de String. |
Java ::: Dicas & Truques ::: Formulários e Janelas |
Java Swing para iniciantes - Como criar seu primeiro aplicativo de interface gráfica em Java SwingQuantidade de visualizações: 80490 vezes |
Um aplicativo de interface gráfica em Java é criado usando-se a classe JFrame, do Java Swing. Objetos desta classe servem como containeres para outros componentes e são as janelas principais dos aplicativos, com título e botões para redimensionar, minimizar, maximizar e fechar. Veja um exemplo de um simples aplicativo de interface gráfica em Java Swing: package arquivodecodigos; import javax.swing.*; public class Estudos extends JFrame{ public Estudos() { super("Minha primeira aplicação GUI"); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Este código gera uma janela principal de um aplicativo com 350 pixels de largura e 250 pixels de altura. O título da janela é: "Minha primeira aplicação GUI". Veja o resultado na figura abaixo: ![]() |
Nossas 20 dicas & truques de programação mais populares |
Java - Programação Orientada a Objetos em Java - Como usar o modificador static em suas aplicações Java |
Você também poderá gostar das dicas e truques de programação abaixo |
Java - Como listar todo o conteúdo de um diretório usando a função listFiles() da classe File do Java |
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 |