Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TField e Classes Derivadas |
Como usar a classe TField em seus programas DelphiQuantidade de visualizações: 12553 vezes |
A classe TField (na unit DB) é um ancestral comum de todos os componentes que representam os campos de uma tabela no banco de dados (ou um dataset cujos dados foram carregados de um arquivo do tipo texto, binário ou XML). Esta classe encapsula o comportamento comum a todos os demais componentes to tipo field (campo). Veja sua posição na hierarquia de classes do Delphi: System.TObject Classes.TPersistent Classes.TComponent DB.TField A classe TField apresenta propriedades, eventos e métodos que são usados para as seguintes tarefas: 1) Alterar o valor de um campo em um dataset; 2) Converter o valor de um campo de um tipo para outro tipo; 3) Efetuar validações nos dados informados pelos usuários para determinados campos; 4) Definir como as informações dos campos são mostradas em tempo de exibição ou para edição; 5) Calcular o valor de um campo a partir de código escrito no evento OnCalcFields do dataset; 6) Pesquisar o valor do campo a partir de outro dataset. Em geral não criamos instâncias da classe TField diretamente. Componentes que descendem de TField são criados automaticamente a cada vez que o dataset é ativado. Estes descendentes podem ser dinâmicos (o padrão) ou persistentes. Componentes campos dinâmicos refletem as colunas dos metadados da tabela a qual pertencem no momento que o dataset é aberto. Componentes campos persistentes são criados em tempo de design usando o editor Fields, que especifica os campos no dataset, suas propriedades e a ordem em que deverão estar. A criação de componentes de campos persistentes garante que todas as vezes que uma aplicação for executada, ela usará e exibirá as mesmas colunas, na mesma ordem, até mesmo se a estrutura física da base de dados mudar. Se uma coluna em uma tabela na qual um componente de campo persistente é baseado for excluída ou alterada, o IDE gera uma exceção em vez de permitir a abertura do dataset usando um coluna não existente ou incompatível. Se isso acontecer, devemos remover o camponente field para o campo não existente usando o editor Fields. Um campo (field) em um dataset é sempre tratado como uma das classes descendentes de TField abaixo: TADTField TDateField TReferenceField TAggregateField TDateTimeField TSmallIntField TArrayField TFloatField TSQLTimeStampField TAutoIncField TFMTBCDField TStringField TBCDField TGraphicField TTimeField TBinaryField TGuidField TVarBytesField TBlobField TIDispatchField TVariantField TBooleanField TIntegerField TWideStringField TBytesField TInterfaceField TWordField TCurrencyField TLargeintField TDataSetField TMemoField procedure TForm3.Button3Click(Sender: TObject); var campo: TField; begin // vamos obter o campo com o nome "titulo" do registro atual campo := ClientDataSet1.FieldByName('titulo'); // vamos mostrar o valor do campo ShowMessage('O valor do campo é: ' + campo.AsString); end; Ao executarmos este código teremos um resultado parecido com: "O valor do campo é: Programando em Java". Esta dica foi escrita e testada no Delphi 2009. |
Python ::: Tkinter GUI Toolkit ::: Formulários e Janelas |
Como definir a cor de fundo de uma janela do Tkinter do Python usando a função config()Quantidade de visualizações: 3294 vezes |
A cor de fundo de uma janela do Tkinter do Python pode ser definida por meio de uma chamada à função config() da classe Tk com o valor de uma cor para o parâmetro bg. Veja uma aplicação Tkinter completa no qual definimos o título da janela e, em seguida, sua cor de fundo: # vamos importar o módulo Tkinter import tkinter as tk # método principal def main(): # vamos criar a janela principal da aplicação janela = tk.Tk() # vamos definir o título da janela janela.title("Sistema de Biblioteca") # vamos definir a cor de fundo da janela janela.config(bg='#F2B33D') # entramos no loop de eventos janela.mainloop() if __name__== "__main__": main() |
Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como converter Coordenadas Cartesianas para Coordenadas Polares usando PythonQuantidade de visualizações: 5788 vezes |
Nesta nossa série de Python para Geometria Analítica e Álgebra Linear, mostrarei um código 100% funcional para fazer a conversão entre coordenadas cartesianas e coordenadas polares. Esta operação é muito frequente em computação gráfica e é parte integrante das disciplinas dos cursos de Engenharia (com maior ênfase na Engenharia Civil). Na matemática, principalmente em Geometria e Trigonometria, o sistema de Coordenadas no Plano Cartesiano, ou Espaço Cartesiano, é um sistema que define cada ponto em um plano associando-o, unicamente, a um conjuntos de pontos numéricos. Dessa forma, no plano cartesiano, um ponto é representado pelas coordenadas (x, y), com o x indicando o eixo horizontal (eixo das abscissas) e o y indicando o eixo vertical (eixo das ordenadas). Quando saímos do plano (espaço 2D ou R2) para o espaço (espaço 3D ou R3), temos a inclusão do eixo z (que indica profundidade). Já o sistema de Coordenadas Polares é um sistema de coordenadas em duas dimensões no qual cada ponto no plano é determinado por sua distância a partir de um ponto de referência conhecido como raio (r) e um ângulo a partir de uma direção de referência. Este ângulo é normalmente chamado de theta (__$\theta__$). Assim, um ponto em Coordenadas Polares é conhecido por sua posição (r, __$\theta__$). Antes de prosseguirmos, veja uma imagem demonstrando os dois sistemas de coordenadas: ![]() A fórmula para conversão de Coordenadas Cartesianas para Coordenadas Polares é: __$r = \sqrt{x^2+y2}__$ __$\theta = \\arctan\left(\frac{y}{x}\right)__$ E aqui está o código Python completo que recebe as coordenadas cartesianas (x, y) e retorna as coordenadas polares (r, __$\theta__$): # importamos a bibliteca NumPy import numpy as np import math as math def main(): # vamos ler as coordenadas cartesianas x = float(input("Valor de x: ")) y = float(input("Valor de y: ")) # vamos calcular o raio raio = math.sqrt(math.pow(x, 2) + math.pow(y, 2)) # agora calculamos o theta (ângulo) em radianos theta = np.arctan2(y, x) # queremos o ângulo em graus também angulo_graus = 180 * (theta / math.pi) # e exibimos o resultado print("As Coordenadas Polares são:") print("raio = %0.4f, theta = %0.4f, ângulo em graus = %0.2f" % (raio, theta, angulo_graus)) if __name__== "__main__": main() Ao executar este código nós teremos o seguinte resultado: Valor de x: -1 Valor de y: 1 As Coordenadas Polares são: raio = 1.4142, theta = 2.3562, ângulo em graus = 135.00 Veja que as coordenadas polares equivalentes são (__$\sqrt{2}__$, __$\frac{3\pi}{4}__$), com o theta em radianos. Sim, os professores das disciplinas de Geometria Analítica e Álgebra Linear, Física e outras gostam de escrever os resultados usando raízes e frações em vez de valores reais. |
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular juros simples e composto - Calculando juros simples e montante na linguagem JavaQuantidade de visualizações: 14415 vezes |
O regime de juros será simples quando o percentual de juros incidir apenas sobre o valor principal. Sobre os juros gerados a cada período não incidirão novos juros. Valor Principal, ou simplesmente principal, é o valor inicial emprestado ou aplicado, antes de somarmos os juros. Transformando em fórmula temos: J = P . i . n Onde: J = juros P = principal (capital) i = taxa de juros n = número de períodos Imaginemos uma dívida de R$ 2.000,00 que deverá ser paga com juros de 5% a.m. pelo regime de juros simples e o prazo para o pagamento é de 2 meses. O cálculo em Java pode ser feito assim: public class Estudos{ public static void main(String args[]){ double principal = 2000.00; double taxa = 0.08; int meses = 2; double juros = principal * taxa * meses; System.out.println("O total de juros a ser pago é: " + juros); System.exit(0); } } O montante da dívida pode ser obtido das seguintes formas: a) Montante = Principal + Juros b) Montante = Principal + (Principal x Taxa de juros x Número de períodos) M = P . (1 + (i . n)) Veja o código: public class Estudos{ public static void main(String args[]){ double principal = 2000.00; double taxa = 0.08; int meses = 2; double juros = principal * taxa * meses; double montante = principal * (1 + (taxa * meses)); System.out.println("O total de juros a ser pago é: " + juros); System.out.println("O montante a ser pago é: " + montante); System.exit(0); } } |
C# ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Tutorial C# - Como usar o laço while (enquanto) da linguagem C#Quantidade de visualizações: 13428 vezes |
O laço while (enquanto) é usado quando queremos repetir uma instrução ou bloco de instruções ENQUANTO uma condição for satisfatória. Veja um exemplo:static void Main(string[] args){ int valor = 1; while(valor <= 10){ Console.WriteLine("{0}", valor); valor++; } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } Este trecho de código conta de 1 até 10. Veja que antes de cada iteração do laço nós testamos se o valor da variável de controle é menor ou igual a 10. A iteração acontece somente se esta condição for satisfeita, o que nos mostra que um laço while pode nunca ser executado (o que aconteceria se a condição fosse falsa já na entrada). Note ainda que dentro de cada iteração nós incrementamos o valor da variável de controle. Isso é feito para que o laço não seja executado infinitamente. Veja um outro exemplo de laço while, desta vez simulando um menu de opções: static void Main(string[] args){ // variável que registra a opção do usuário int opcao; // lê a opção Console.Write("Informe a opção 1, 2 ou 3" + " (-1 para sair): "); // laço while que mostra as opções do menu enquanto // o valor -1 não for informado while((opcao = int.Parse(Console.ReadLine())) != -1){ switch(opcao){ case 1: Console.WriteLine("Executando a opção 1"); break; case 2: Console.WriteLine("Executando a opção 2"); break; case 3: Console.WriteLine("Executando a opção 3"); break; default: Console.WriteLine("Opção incorreta"); break; } // mostra o texto das opções novamente Console.Write("Informe a opção 1, 2 ou 3" + " (-1 para sair): "); } Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } Se você é realmente iniciante em C#, notará que este exemplo é um pouco mais elaborado. Desta forma, estude-o atentamente. É uma técnica muito útil quando estamos escrevendo programas console, uma vez que a maioria deles possui um menu de opções. |
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: 2822 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. |
MySQL ::: Dicas & Truques ::: Data e Hora |
Como adicionar horas ao valor de um campo DATETIME ou TIME usando a função ADDTIME() do MySQLQuantidade de visualizações: 13441 vezes |
A função ADDTIME() é usada quando queremos adicionar horas, minutos, segundos ou milisegundos ao valor de um campo DATETIME ou TIME. Suponhamos que você tenha um campo DATETIME chamado data_hora_compra com o valor 2008-03-30 02:30:15. Veja como adicionar 3 horas ao valor deste campo:SELECT ADDTIME(data_hora_compra, '3:00:00') FROM tabela_estudos O valor retornado será 2008-03-30 05:30:15. Veja agora a função aplicada a um campo TIME com o nome de hora_inicio e o valor 02:30:15. Agora vamos adicionar 20 minutos: SELECT ADDTIME(hora_inicio, '00:20:00') FROM tabela_estudos O valor retornado será 02:50:15. É possível ainda usar a função ADDTIME() para adicionar dias ao valor de um campo DATETIME. Por exemplo, se o valor do campo for 2008-03-30 02:30:15 e usarmos a query abaixo: SELECT ADDTIME(data_hora_compra, '5 00:00:00') FROM tabela_estudos O resultado será 2008-04-04 02:30:15. |
VB.NET ::: VB.NET para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular vetor unitário em VB.NET - VB.NET para Física e EngenhariaQuantidade de visualizações: 605 vezes |
Um vetor unitário ou versor num espaço vetorial normado é um vetor (mais comumente um vetor espacial) cujo comprimento ou magnitude é 1. Em geral um vetor unitário é representado por um "circunflexo", assim: __$\hat{i}__$. O vetor normalizado __$\hat{u}__$ de um vetor não zero __$\vec{u}__$ é o vetor unitário codirecional com __$\vec{u}__$. O termo vetor normalizado é algumas vezes utilizado simplesmente como sinônimo para vetor unitário. Dessa forma, o vetor unitário de um vetor __$\vec{u}__$ possui a mesma direção e sentido, mas magnitude 1. Por magnitude entendemos o módulo, a norma ou comprimento do vetor. Então, vejamos a fórmula para a obtenção do vetor unitário: \[\hat{u} = \dfrac{\vec{v}}{\left|\vec{v}\right|}\] Note que nós temos que dividir as componentes do vetor pelo seu módulo de forma a obter o seu vetor unitário. Por essa razão o vetor nulo não possui vetor unitário, pois o seu módulo é zero, e, como sabemos, uma divisão por zero não é possível. Veja agora o código VB.NET que pede as coordenadas x e y de um vetor 2D ou R2 e retorna o seu vetor unitário: Imports System Module Program Sub Main(args As String()) ' vamos ler os valores x e y Console.Write("Informe o valor de x: ") Dim x = Double.Parse(Console.ReadLine()) Console.Write("Informe o valor de y: ") Dim y = Double.Parse(Console.ReadLine()) ' o primeiro passo é calcular a norma do vetor Dim norma = Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2)) ' agora obtemos as componentes x e y do vetor unitário Dim u_x = x / norma Dim u_y = y / norma ' mostra o resultado Console.WriteLine("O vetor unitário é: (x = " & u_x & "; y = " & u_y) Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module Ao executar este código VB.NET nós teremos o seguinte resultado: Informe o valor de x: -4 Informe o valor de y: 6 O vetor unitário é: (x = -0.5547001962252291; y = 0.8320502943378437 Veja agora uma modificação deste código para retornarmos o vetor unitário de um vetor 3D ou R3, ou seja, um vetor no espaço: Imports System Module Program Sub Main(args As String()) ' vamos ler os valores x, y e z Console.Write("Informe o valor de x: ") Dim x = Double.Parse(Console.ReadLine()) Console.Write("Informe o valor de y: ") Dim y = Double.Parse(Console.ReadLine()) Console.Write("Informe o valor de z: ") Dim z = Double.Parse(Console.ReadLine()) ' o primeiro passo é calcular a norma do vetor Dim norma = Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2) + Math.Pow(z, 2)) ' agora obtemos as componentes x, y e z do vetor unitário Dim u_x = x / norma Dim u_y = y / norma Dim u_z = z / norma ' mostra o resultado Console.WriteLine("O vetor unitário é: (x = " & u_x & "; y = " & u_y & "; z = " & u_z) Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module Ao executarmos este novo código nós teremos o seguinte resultado: Informe o valor de x: 3 Informe o valor de y: 7 Informe o valor de z: 5 O vetor unitário é: (x = 0.329292779969071; y = 0.7683498199278324; z = 0.5488212999484517 |
Java ::: Classes e Componentes ::: JTable |
Java Swing - Como detectar qual linha ou coluna está selecionada em uma tabela JTableQuantidade de visualizações: 186 vezes |
Nesta dica mostrarei como podemos usar o método valueChanged() da interface ListSelectionListener para detectar qual linha ou coluna está selecionada em um objeto JTable. Essa técnica interessante, pois permite facilmente a construção de tabelas mestre-detalhe, na qual selecionamos um cliente em uma JTable e outra JTable é atualizada mostrando somente os pedidos para o cliente selecionado. Eis o resultado na imagem abaixo: ![]() Veja o código completo para o exemplo: package arquivodecodigos; import javax.swing.*; import java.awt.*; import javax.swing.event.*; public class Estudos extends JFrame{ private boolean ALLOW_COLUMN_SELECTION = false; private boolean ALLOW_ROW_SELECTION = true; public Estudos(){ super("Exemplo de uma tabela simples"); // colunas da tabela String[] colunas = {"Cidade", "Estado", "Habitantes"}; // conteúdo da tabela Object[][] conteudo = { {"Goiânia", "GO", "43.023.432"}, {"São Paulo", "SP", "5.343.234"}, {"Rio de Janeiro", "RJ", "6.434.212"}, {"Jussara", "GO", "87.454"}, {"Barra do Garças", "MT", "64.344"} }; // constrói a tabela final JTable tabela = new JTable(conteudo, colunas); tabela.setPreferredScrollableViewportSize(new Dimension(350, 50)); // permite selecionar apenas uma linha de cada vez tabela.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // detecta seleções de linha if(ALLOW_ROW_SELECTION){ // verdadeiro por padrão ListSelectionModel rowSM = tabela.getSelectionModel(); rowSM.addListSelectionListener(new ListSelectionListener(){ public void valueChanged(ListSelectionEvent e){ if(e.getValueIsAdjusting()) return; ListSelectionModel lsm = (ListSelectionModel)e.getSource(); if(lsm.isSelectionEmpty()){ System.out.println("Nenhuma linha selecionada."); } else{ int selectedRow = lsm.getMinSelectionIndex(); System.out.println("Linha " + selectedRow + " foi selecionada."); } } }); } else{ tabela.setRowSelectionAllowed(false); } if(ALLOW_COLUMN_SELECTION){ // falso por padrão if(ALLOW_ROW_SELECTION){ tabela.setCellSelectionEnabled(true); } tabela.setColumnSelectionAllowed(true); ListSelectionModel colSM = tabela.getColumnModel().getSelectionModel(); colSM.addListSelectionListener(new ListSelectionListener(){ public void valueChanged(ListSelectionEvent e){ if(e.getValueIsAdjusting()) return; ListSelectionModel lsm = (ListSelectionModel)e.getSource(); if(lsm.isSelectionEmpty()) { System.out.println("Nenhuma coluna selecionada."); } else{ int selectedCol = lsm.getMinSelectionIndex(); System.out.println("Coluna " + selectedCol + " está selecionada."); } } }); } Container c = getContentPane(); c.setLayout(new FlowLayout()); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); setSize(400, 300); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Java ::: Fundamentos da Linguagem ::: Tipos de Dados |
Como usar null em JavaQuantidade de visualizações: 31992 vezes |
O tipo de dados null é um tipo (ou valor) especial que indica que uma referência não está apontando para nenhum objeto, ou seja, aponta para uma posição de memória nula. Este tipo pode ser atribuído (ou testado) apenas a referências. Seu uso não é permitido com primitivos. Veja um trecho de código no qual definimos que uma variável do tipo String aponta para um objeto nulo: public class Estudos{ public static void main(String args[]){ String nome = null; System.out.println(nome.length()); System.exit(0); } } Este código compila normalmente. Porém, ao tentarmos executá-lo, temos uma exceção de tempo de execução NullPointerException: Exception in thread "main" java.lang.NullPointerException at Estudos.main(Estudos.java:5) Isso aconteceu porque estamos tentando executar um método de um objeto que não existe. Uma técnica muito valiosa é testar se uma referência não está apontando para um objeto nulo. Veja como isso é feito: public class Estudos{ public static void main(String args[]){ String nome = null; if(nome != null) System.out.println(nome.length()); else System.out.println("Objeto é nulo."); System.exit(0); } } Tenha em mente que, quando uma referência recebe o valor null, o objeto para o qual ela apontava fica imediatamente disponível para o coletor de lixo (Garbagge Colector), ou seja, a memória ocupada pelo objeto pode ser liberada a qualquer momento. Veja agora o que acontece quando tentamos atribuir o valor null a um primitivo: public class Estudos{ public static void main(String args[]){ int valor = null; System.exit(0); } } Eis a mensagem de erro de compilação: Estudos.java:3: incompatible types found : <nulltype> required: int int valor = null; ^ 1 error |
Nossas 20 dicas & truques de programação mais populares |
Delphi - Como retornar o caractere a partir de um determinado código ASCII em Delphi usando a função Chr() |
Você também poderá gostar das dicas e truques de programação abaixo |
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 |