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: 31100 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();
}
|
C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de C++ - Escreva uma função C++ que recebe três números inteiros e retorna o menor delesQuantidade de visualizações: 650 vezes |
|
Pergunta/Tarefa: Escreva um programa C++ que contenha uma função, método ou procedimento que recebe três números inteiros e retorne o menor deles como um inteiro. Seu método não deve produzir nenhuma saída, apenas retornar o menor número entre os três argumentos fornecidos. Sua saída deverá ser parecida com: Informe o primeiro número: 8 Informe o segundo número: 10 Informe o terceiro número: 7 O menor número é: 7 Veja a resolução comentada deste exercício em C++:
#include <iostream>
#include <algorithm>
using namespace std;
// função que recebe três números e retorna o menor deles
int menor(int a, int b, int c){
return min(min(a, b), c);
}
// função principal do programa
int main(int argc, char *argv[]){
int n1, n2, n3, menor_numero;
// vamos pedir para o usuário informar três
// números inteiros
cout << "Informe o primeiro número: ";
cin >> n1;
cout << "Informe o segundo número: ";
cin >> n2;
cout << "Informe o terceiro número: ";
cin >> n3;
// agora vamos calcular o menor número
menor_numero = menor(n1, n2, n3);
// e mostramos o resultado
cout << "O menor numero é: " << menor_numero << endl;
cout << "\n" << endl;
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
|
JavaScript ::: DOM (Document Object Model) ::: Navegação e Pesquisa de Nós (Nodes) |
Como obter o tipo de um nó no DOM (Document Object Model) usando a propriedade nodeType a partir de seus códigos JavaScriptQuantidade de visualizações: 8611 vezes |
|
Como obter o tipo de um nó no DOM (Document Object Model) usando a propriedade nodeType a partir de seus códigos JavaScript A propriedade nodeType, definida no World Wide Web Consortium (W3C) Document Object Model (DOM) Level 1, pode ser usada quando precisamos obter o tipo de um determinado nó (node) na hierarquia de elementos HTML no DOM (Document Object Model). Esta propriedade retorna um valor inteiro indicando o tipo de nó sendo testado. Os valores mais comuns são 1 (nó elemento) e 3 (nó texto). Veja uma página HTML na qual temos um parágrafo e um elemento span. Na primeira vez nós vamos obter uma referência ao parágrafo e testar o tipo do nó. Na segunda vez nós obtemos uma referência ao primeiro nó filho do elemento span, o que resultará em seu conteúdo sendo testado. Veja:
<html>
<head>
<title>Estudos JavaScript</title>
<script type="text/javascript">
function obterNodeType(){
// vamos obter uma referência ao parágrafo com o id "paragrafo"
var elem = document.getElementById("paragrafo");
// vamos obter o tipo de nó deste elemento
var tipo = elem.nodeType;
// vamos mostrar o resultado
window.alert("O tipo deste elemento é: " + tipo);
// vamos obter uma referência ao span com o id "frase"
elem = document.getElementById("frase");
// vamos obter o tipo de nó do primeiro filho deste elemento
tipo = elem.firstChild.nodeType;
// vamos mostrar o resultado
window.alert("O tipo deste elemento é: " + tipo);
}
</script>
</head>
<body>
<p id="paragrafo">Sou um parágrafo</p>
<span id="frase">Veja esta frase</span>
<br><button onclick="obterNodeType()">Obter tipo do nó (nodeType)</button>
</body>
</html>
Note que esta propriedade é somente-leitura, ou seja, não podemos modificar seu valor em tempo de execução. A propriedade nodeType pode ser obtida a partir dos seguintes elementos: a, abbr, acronym, address, applet, area, b, base, basefont, bdo, bgsound, big, blink, blockquote, body, br, button, caption, center, cite, code, col, colgroup, comment, dd, del, dfn, dir, div, dl, dt, em, embed, fieldset, font, form, frame, frameset, h1, h2, h3, h4, h5, h6, head, hr, html, i, iframe, img, input:button, input:checkbox, input:file, input:hidden, input:image, input:password, input:radio, input:range, input:reset, input:search, input:submit, input:text, ins, isindex, kbd, keygen, label, legend, li, link, listing, map, marquee, menu, meta, nobr, noframes, noscript, object, ol, optgroup, option, p, param, plaintext, pre, q, rt, ruby, s, samp, script, select, small, span, strike, strong, style, sub, sup, table, tbody, td, textarea, tfoot, th, thead, title, tr, tt, u, ul, var, wbr, xml e xmp. Esta dica foi escrita e testada no Internet Explorer 8 e Firefox 3.6. |
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: 757 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 |
Nossas 20 dicas & truques de programação mais populares |
|
Delphi - Como calcular o cateto adjascente dadas as medidas da hipotenusa e do cateto oposto em Delphi JavaScript - Como testar se um ponto está dentro de um círculo em JavaScript - Desenvolvimento de Games com JavaScript |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Python - Como inserir uma determinada quantidade de espaços à esquerda de um valor numérico usando Python C# - Como retornar a quantidade de itens em uma ListBox do C# Windows Forms usando a propriedade Count |
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 |




