Arquivo da categoria ‘Java’

Classes – Referência – Java e C#

Publicado: 8 de fevereiro de 2014 em C#, Java

Tipos Primitivos

Um tipo primitivo (também conhecido por nativo ou básico) é fornecido por uma linguagem de programação como um bloco de construção básico. Dependendo da implementação da linguagem, os tipos primitivos podem ou não possuir correspondência direta com objetos na memória.

Ex: int, long, double, boolean, char, short, byte, float.

Referência

Referência na ciência da computação é registro que aponta o local em que se encontram armazenados os dados que identificam outro dado.

Tipos são arrays e objetos, – String, int[], Classes, …

Variáveis são como canecas fixas e os primitivos são pequenos o suficiente para caber dentro da caneca. Os objetos são grandes para caber dentro de variáveis. Variáveis guardam números que localizam um objeto e a localização do objeto é chamada de referencia.

Exemplo:

Neste cenário temos um bebê recém nascido que precisa ser registrado no cartório, para isto vamos criar um objeto bebê e através de um método vamos cadastrar os dados do bebê referenciando o objeto ao nosso bebê.

JAVA

1 – Classe Referencia


public class Referencia
 {
 static void cartorio(int codigo, String[] cadastro, Bebe objeto )
 {
   objeto.codigo     = codigo;
   objeto.nome       = cadastro[0];
   objeto.sobreNome  = cadastro[1];
   objeto.nomeMae    = cadastro[2];
   objeto.nomePai    = cadastro[3];
   objeto.sexo       = cadastro[4];
 }
 public static void main(String[] args)
 {

    // Vamos instanciar um novo bebe
    Bebe Samanta = new Bebe();

    // Vamos solicitar a ficha de registro para o novo bebê
    int codigoCartorio = 1438275;
    String[] fichaRegistro = {"Samanta", "Amaral", "Roberto Amaral", "Marcia Amaral", "Feminino"};

    // Vamos preerncher a ficha do novo bebê
    cartorio(codigoCartorio, fichaRegistro, Samanta);

    // Imprime registro do bebê
    System.out.println("Registro de Nascimento:");
    System.out.println("");
    System.out.println("Código: "+ Samanta.codigo );
    System.out.println("Nome: " + Samanta.nome + " " + Samanta.sobreNome);
    System.out.println("Nome do Pai: " + Samanta.nomePai);
    System.out.println("Nome da Mãe: " + Samanta.nomeMae);
    System.out.println("");
    System.out.println("Registro efetuado com sucesso");
 }

}

JAVA
2- Classe Bebe

public class Bebe
 {
  public int codigo = 0;
  public String nome = null;
  public String sobreNome = null;
  public String nomePai = null;
  public String nomeMae = null;
  public String sexo = null;

  public Bebe()
    {
    }
 }

C#

Para C# basta trocar os seguintes comandos na classe Referencia:


// Trocar:

System.out.println

// por:

Console.WriteLine

Classes – Java e C#

Publicado: 6 de fevereiro de 2014 em C#, Java

Programação Orientada a objeto

Programação orientada a objetos representa o mundo real. Na programação orientada a objetos, implementa-se um conjunto de classes que definem os objetos presentes no sistema de software.

Classes

Em orientação a objetos, uma classe é uma estrutura que abstrai um conjunto de objetos com características similares. Uma classe define o comportamento de seus objetos através de métodos e os estados possíveis destes objetos através de atributos. Em outros termos, uma classe descreve os serviços providos por seus objetos e quais informações eles podem armazenar.

Representando o mundo real

Representando o mundo real temos um objeto bebê,  nosso bebê possui os seguintes atributos:

  • Nome
  • Peso
  • Sexo
  • Decibéis (choro)
  • Numero de cacas até agora

Nosso objeto bebê :


String nome
boolean genero
double peso
double decibeis
int numCaca

Porque Usar Classes?

No mundo real, muitas vezes você vai encontrar muitos objetos individuais todos da mesma espécie. Pode haver milhares de outros bebês na existência, todos parecidos. Cada bebê foi construído a partir do mesmo conjunto de projetos(DNA) e, portanto, contém os mesmos componentes. Em termos de orientação a objetos, dizemos que o seu bebê é uma instância da classe de objetos conhecidos como bebê. Uma classe é o modelo a partir do qual objetos individuais são criados. Criando a classe bebê teremos um objeto bebê com seus atributos definidos:

classe-bebe
A partir do objeto bebê podemos instanciar vários outros com as mesmas características:

classe-bebe2

Para cuidar dos bebês precisamos de enfermeiras e de um berçário, podemos também criar a classe enfermeiras e a classe berçário:

classe-bebe4

Na classe berçário podemos ter inúmeros bebês e varias enfermeiras para cuidar de cada bebê:

classe-bebe5

Podemos ir mais além e manipular varias classes a hospital, emergência, berçário, enfermeiras e bebê:

classe-bebe6

Criando Classes

Uma classe possui basicamente 3 partes distintas:

  • A Definição da classe .
  • Os membros da classe.
  • Construtor da classe.

Definição da classe: Nomes de classes são capitalizados , uma classe  é igual a um arquivo, ter um método principal (main) significa que a classe pode ser executada.


public class Bebe
{
}

Os membros da classe: Os membros da classe podem ser campos, propriedades, métodos e etc.


public class Bebe
{

String nome;
double peso= 5.0;
boolean genero;
int numCaca = 0;

}

Construtor: Nome do construtor é igual ao nome da classe, não possui retorno, nunca retorna nada, normalmente inicializa campos, todas as classes precisam de pelo menos um construtor, se você não escrever um, o padrão é Nomedaclasse() { }.


// Definição da classe
public class Bebe

{
     // membros da classe
     String nome;
     boolean eMasculino;

     // Construtor da Classe
     Baby (String meunome, boolean bebeMasculino)
     {
        nome = meunome;
        eMasculino = bebeMasculino;
     }
}

Instancias de Classes

Para criar uma instancia de uma classe use o comando new:

// Cria uma instancia
Bebe Daniel = new Bebe();

//para usar a instacia
Daniel.nome = "Daniel";

Exemplo: Neste cenário vamos criar duas classes bem simples e instanciar as classes na classe main (principal), utilizaremos apenas os princípios básicos de classes e veremos que ela funciona tanto em Java como em C#. Basicamente temos um hospital no qual seu berçário recebeu 3 novos bebês, assim que os bebês precisam de cuidados duas enfermeiras estão prontas para atende-los, seja trocando sua fralda ou prestando cuidados de enfermaria, deixando os bebê limpos e saudáveis novamente.

JAVA

Classe #1: Hospital Main Class.

public class Hospital {
	
// Esta classe funciona em Java e em C#
// Apenas troque as keyword:
// System.out.println  por
// Console.Writeln	
	
	public static void main(String[] args) {
		// Classe Hospital
		// Rescem nascidos

		Bebe Amanda = new Bebe();
		Bebe Julia = new Bebe();
		Bebe Rodrigo = new Bebe();

		// Bebê Amanda
		Amanda.nome = "Amanda";
		Amanda.tamanho = 30.4;
		Amanda.sexo = "feminino";

		// Bebê Julia
		Julia.nome = "Julia";
		Julia.tamanho = 28.7;
		Julia.sexo = "feminino";

		// Bebê Rodrigo
		Rodrigo.nome = "Rodrigo";
		Rodrigo.tamanho = 27.9;
		Rodrigo.sexo = "masculino";

		// Bebês
		System.out.println("Bebês no berçario do hospital: ");
		System.out.println("");
		System.out.println(Amanda.nome + " sexo: " + Amanda.sexo + " tamanho: "
				+ Amanda.tamanho);
		System.out.println(Julia.nome + " sexo: " + Julia.sexo + " tamanho: "
				+ Julia.tamanho);
		System.out.println(Rodrigo.nome + " sexo: " + Rodrigo.sexo
				+ " tamanho: " + Rodrigo.tamanho);

		// Bêbes que precisam de cuidados
		Amanda.setSaudavel(false);
		Rodrigo.setFezCoco(true);

		System.out.println("");
		System.out.println("Estes bebês precisam de uma enfermeira");
		if (Amanda.getSaudavel() == false) {
			System.out.println(Amanda.nome
					+ " está doente e precisa de cuidados");
		}
		if (Rodrigo.getFezCoco() == true) {
			System.out.println(Rodrigo.nome + " precisa trocar a fralda");
		}

		// Cria Enfermeiras
		Enfermeira Regina = new Enfermeira();
		Enfermeira Mara = new Enfermeira();
		Regina.nome = "Regina";
		Mara.nome = "Mara";

		// Enfermeiras trabalhando
		Amanda.setSaudavel(Regina.getEnfermaria());
		Rodrigo.setFezCoco(Mara.getTrocaFralda());

		// Bebês após cuidados
		System.out.println("");
		System.out.println(Regina.nome + " e " + Mara.nome
				+ " cuidaram dos bebês");
		if (Amanda.getSaudavel() == true) {
			System.out.println(Amanda.nome + " está saudavel novamente");
		}
		if (Rodrigo.getFezCoco() == false) {
			System.out.println(Rodrigo.nome + " esta com uma nova fralda");
		}
	}
}

Classe #2 – Classe Bebê.

public class Bebe {
	
	// Cria campos 
	public String nome = null;
	public Double tamanho = 0.0;
	public String sexo = null;
	private Boolean saudavel = true;
	private Boolean fezCoco = false;
	
    // Cria métodos Getter e Setter para a classe
	public Boolean getSaudavel() {
		return saudavel;
	}

	public void setSaudavel(Boolean saudavel) {
		this.saudavel = saudavel;
	}

	public Boolean getFezCoco() {
		return fezCoco;
	}

	public void setFezCoco(Boolean fezCoco) {
		this.fezCoco = fezCoco;
	}

    // Construtor da classe
	public Bebe() {
	}

}

Classe #3 – Classe Enfermeira.

public class Enfermeira {
	
	// Cria campos da classe
	public String nome = null;
	private Boolean enfermaria = true;
	private Boolean trocaFralda = false;

	// Construtor da classe
	public Enfermeira() {
	}

	// Métodos Getter e Setter
	public Boolean getEnfermaria() {
		enfermaria = true;
		return enfermaria;
	}

	public Boolean getTrocaFralda() {
		trocaFralda = false;
		return trocaFralda;
	}
}

C#

Para rodar estas classes em C# apenas crie um novo projeto e substitua a classe default pela classe hospital, no solution explorer clique com o botão direito no projeto, add, new item, class, renomeie a classe para Bebe.cs e colque a classe Bebe acima, faça o mesmo com a classe Enfermeira, as classes foram escritas para funcionar nas duas línguas e só é necessário substituir uma keyword:


// Em C# na classe Hospital a Void que inicializa o programa sua única diferença
// é a keyword String para Java e string para C#

public static void main(String[] args) // JAVA
static void Main(string[] args) // string minusculo C#

// Você pode substituir tudo de uma única vez no menu:
// Edit - Find and Replace - Quick Replace - botão para substituir todos
// Substitua na classe Hospital todos os comandos Java:

System.out.println // Java keywords

// por :

Console.WriteLine

Obs: A principal diferença destas 3 classe e o funcionamento do programa acima é que Java não necessita que o construtor das classes Bebe e Enfermeira sejam públicos, já em C# não seria possível instanciar as classe deste modo sem que o construtor tenha sido declarado publico. Experimente tirar a keyword public do construtor e compilar o programa.

Estilo de programação é um conjunto de regras ou orientações utilizadas ao escrever o código-fonte em um programa de computador. Afirma-se frequentemente que, após um estilo de programação especial, este irá ajudar os programadores a ler e compreender o código-fonte em conformidade com o estilo, e ajudar a evitar a introdução de erros.

A obra clássica sobre o assunto foi os elementos do estilo de programação, escrito na década de 1970, e ilustrado com exemplos do Fortran e PL/I línguas predominantes na época.

O modelo de programação usado em um programa em particular pode ser derivado a partir das convenções de codificação de uma empresa ou qualquer outra instituição de computação, bem como as preferências do autor do código. Estilos de programação muitas vezes são projetados para uma linguagem de programação específica (ou família de línguas): estilo considerado bom em código fonte C pode não ser apropriado para o código fonte BASIC, e assim por diante. No entanto, algumas regras são comumente aplicadas para muitas línguas.

Regra #1 – Usar bons nomes (significativos):


// Ruim - nomes não intuitivos
String a1;
int a2;
double b;

// Nomes intuitivos
// primeiro nome inicia em minúsculo
// segundo nome em maiúsculo

String primeiroNome;
String sobreNome;
int temperatura;

Regra #2 – Use Identação

public static void main (String[] arguments) {
    int x = 5
    x = x * x;
    if (x > 20) {
       System.out.println(x + "  é maior que 20.");
    }

    double y = 3.4;
}

Regra#3 – Use espaço em branco


// Difícil de ler a expressão

double cel=(fahr*42.0/(13.0-7.0));

// Coloque espaço em branco em expressões complexas
// fácil de ler a expressão

double cel = ( fahr * 42.0 / (13.0 -7.0) );

Regra#4 – Use linhas em branco


// Linhas em branco aumenta a legibilidade

public static void main (String[] arguments) {

    int x = 5
    x = x * x;

    if (x > 20) {
       System.out.println(x + " é maior que 20.");
    }

    double y = 3.4;
}

// Código sem legibilidade

public static void main (String[] arguments) {
int x = 5; x = x * x;
if (x > 20) {
System.out.println(x + " é maior que 20."); }
double y = 3.4;
}

Regra#5 – Não duplique testes (if)


// Teste duplicado
// se o pagamento base é menor que 8
// e as horas trabalhadas menor que 60
// o ultimo else if está duplicado

if (pagamentoBase < 8.0)
 { ... }
else if (horas > 60)
{ ... }
else if (pagamentoBase>= 8.0 && horas <= 60)
{ ... }

// Teste correto
if (pagamentoBase < 8.0)
 { ...}
 else if (horas > 60)
 {...}
 else
 { ...}

Mais informações sobre este assunto você pode encontrar neste PDF da universidade de Princeton:

Programming and Program Style (C):
http://www.cs.princeton.edu/courses/archive/spr11/cos217/lectures/07Style.pdf

A instrução return termina a execução do método em que aparece e devolve o controle para o método de chamada. Ele também pode retornar um valor opcional. Se o método é um tipo de vazio, a instrução de retorno pode ser omitido.

Em C++ e Python a terminologia correta é função em vez de método apesar de terem a mesma funcionalidade.

Java

public class metodos
 {
// Metodo para tipos de Frete
  public static String tipofrete (int frete)
  {
      String menssagem= "";
   if (frete == 0)  menssagem = "CIF - Frete a pago pelo fornecedor";
   if (frete == 1) menssagem = "Fob - frete a cargo do consumidor";
   return menssagem;
}

      public static void main(String[] args)
 {

// Executa o metodo
       System.out.println(tipofrete(0));
       System.out.println(tipofrete(1));

}

}

C++

#include "stdafx.h"
#include <iostream>
#include <string></pre>
using namespace std;

// Metodo para tipos de Frete
    string tipofrete(int frete)
 {
  string menssagem = "";
  if (frete == 0) menssagem = "CIF - Frete a pago pelo fornecedor";
  if (frete == 1) menssagem = "Fob - frete a cargo do consumidor";
  return menssagem;
 }

int _tmain(int argc, _TCHAR* argv[]) {

  // Executa o metodo
  cout << tipofrete(0)  <<"\n";
  cout << tipofrete(1) << "\n";
  system("pause");
return 0;

}

C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;</pre>
namespace ConsoleApplication35 {

class Program
     {
         // Metodo para tipos de Frete
         public static String tipofrete(int frete)
         {
             String menssagem = "";
             if (frete == 0) menssagem = "CIF - Frete a pago pelo fornecedor";
             if (frete == 1) menssagem = "Fob - frete a cargo do consumidor";
             return menssagem;
         }

          static void Main(string[] args)

          {
            // executa o metodo
             Console.WriteLine(tipofrete(0));
             Console.WriteLine(tipofrete(1));
             Console.ReadKey();
          }
     }
 }

Python (Linux)

#!/usr/bin/env python
# -*- coding: latin-1 -*-
# Desenvolvimento Aberto
# retorno.py

# Importa OS
import os

# Limpa a tela
os.system("clear")

# Cria função de frete
 def tipofrete(frete):
     menssagem= "";
     if (frete == 0):
         menssagem = "CIF - Frete a pago pelo fornecedor";
     if (frete == 1):
         menssagem = "Fob - frete a cargo do consumidor";
     return menssagem;

# Mostra tipo do frete
print tipofrete(0)
print tipofrete(1)

Metodo e Função – Java, C++, C# e Python

Publicado: 4 de fevereiro de 2014 em C#, C/C++, Java, Python

O método é um elemento que representa uma chamada de procedimento para um objeto. Sendo um elemento de uma classe, utilizado na programação orientada a objetos(Orientação a objetos). Métodos tem por finalidade realizar uma tarefa. Eles são análogos às funções em C, C++ e Python e sub-rotinas em pascal. Métodos geralmente correspondem à uma ação do objeto.

Exemplo:

Bidu é uma instância da classe Cachorro, portanto tem habilidade para latir, implementada através do método Latir(). Um método em uma classe é apenas uma definição. A ação só ocorre quando o método é invocado através do objeto, no caso Bidu. Dentro do programa, a utilização de um método deve afetar apenas um objeto em particular; Todos os cachorros podem latir, mas você quer que apenas o objeto Bidu dê o latido. Normalmente, uma classe possui diversos métodos, que no caso da classe Cachorro poderiam ser sente(), coma() e morda().

Em C++ e Python a terminologia correta é função em vez de método apesar de terem a mesma funcionalidade.

Java


public class metodos {

// Metodo para imprimir uma linha
  public static void novalinha()
  {
      // Cria uma linha vazia
      System.out.println("");
  }

   // Metodo para imprimir três linhas
  public static void treslinhas()
  {
      // Executa metodo para pular linha
     novalinha(); novalinha(); novalinha();
  }

public static void main(String[] args) {

       // Executa o metodo
       System.out.println("Linha numero 1");
       treslinhas();
       System.out.println("Linha numero 2");

   }
}

C++


#include "stdafx.h"
#include <iostream>

using namespace std;

  // Metodo para imprimir uma linha
  static void novalinha()
 {
   // Cria uma linha vazia
   cout << "\n";
 }

   // Metodo para imprimir três linhas
 static void treslinhas()
 {
    // Executa metodo para pular linha
    novalinha(); novalinha(); novalinha();
 }

 int _tmain(int argc, _TCHAR* argv[])
 {
    // Executa o metodo
    cout << "Linha numero 1\n";
    treslinhas();
    cout << "Linha numero 2\n";
    system("pause");
    return 0;
 }

C#


 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;

namespace ConsoleApplication35 {

class Program {

         // Metodo para imprimir uma linha
         public static void novalinha()
         {
            Console.WriteLine("");
         }

         // Metodo para imprimir três linhas
         public static void treslinhas()
         {
            novalinha(); novalinha(); novalinha();
         }

         static void Main(string[] args)
         {
            // executa o metodo
            Console.WriteLine("Linha numero 1");
            treslinhas();
            Console.WriteLine("Linha numero 2");
            Console.ReadKey();
           }
     }
 }

Python (Linux)


#!/usr/bin/env python
# -*- coding: latin-1 -*-
# Desenvolvimento Aberto
# metodos.py

# Importa OS
import os

# Limpa a tela
os.system("clear")

# Cria função para pular uma linha
def novalinha():
        print ""

# Cria Função para  pular tres linhas
def treslinhas():
    novalinha()
    novalinha()
    novalinha()

# executa a função para pular 3 linhas
print "Linha numero 1"
treslinhas()
print "Linha numero 2"

Como a Comentar Corretamente Seu Código

Publicado: 2 de fevereiro de 2014 em C#, C/C++, Java, Python

Imagine o seguinte cenário:

Uma fabrica de software que esta há vários anos no mercado e desenvolve aplicativos para Windows em 5 linguagens de programação  diferentes entre elas: C++, Java, C#, Delphi e Python. A fabrica conta com 5 equipes com 10 desenvolvedores cada. Acontece que ao longo dos anos cada sistema sempre teve sua própria autonomia de desenvolvimento havendo muitos códigos redundantes entre elas. O novo CEO da empresa resolveu  projetar um framework* único em C++  pretendendo poupar horas de programação de código entre as equipes.

O gerente de projeto responsável pelo framework* baixa no gerenciador de código fonte o seguinte código enviado pelo  líder da equipe de Python:

 cidade = raw_imput("Entre uma cidade")
 while cidade[-1]==" " :
         cidade = cidade[:-1]
 temp=raw_input("Entre uma temperatura in farenheit: ")
 temp = float (temp)
 temp = (temp - 32.0) * (100.0/180.0)
 temp = round(temp,3)
 temp = srt(temp)
 print "Na "+cidade+" é "+temp+ " graus celsius!"

Há um monte de problemas com este código fonte. Um rápido exame e nenhuma informação é revelada sobre qual dos nossos funcionários escreveu este código. Qual é o nome do arquivo? O que ele faz? À primeira vista, estamos perdidos. Este código iria receber uma nota 10?

O código fonte é devolvido e reformulado por uma desenvolvedora da equipe,  seguindo as melhores praticas de programação de software e retorna assim:

#Alicia P. Hacker
#Fah_para_Celsius.py

#coleta a cidade
cidade = raw_imput("Entre uma cidade")

#trunca espaços em branco
while cidade[-1]==" " :
cidade = cidade[:-1]

#coleta a temperatura
temp=raw_input("Entre uma temperatura in farenheit: ")

#converte string para float
temp = float (temp)

#Converte graus farenheith para graus celsius
temp = (temp - 32.0) * (100.0/180.0)

#Arredonda para três casas decimais
temp = round(temp,3)

#reconverte string para concatenação
temp = srt(temp)

#imprime o resultado
print "Na "+cidade+" são "+ temp + " graus celsius!"

Podemos ver claramente o nome de Alicia e o nome do seu arquivo. Além disso, ela comentou bem as linhas do seu programa. Este código iria receber uma nota 10.

Você deve ser como Alicia! Você deve comentar onde você puder colocar comentários que explicam o que está fazendo, e se você está fazendo algo complicado ou original não se esqueça de explicar bem.

Uma boa meta é ter um comentário a cada 1-4 linhas de código. Certifique-se de não só documentar o que o código está fazendo, mas, quando você começa a escrever um código mais avançado, você deve documentar o que foi deixado intencionalmente de fora, otimizado, testados e rejeitados, etc, basicamente, qualquer decisão de projeto que você faz.

Uma atividade simples que muitas fabricas de software ignoram  mas que possibilita o entendimento de códigos complicados com mais rapidez , encontrar facilmente os bugs, melhorar a comunicação entre equipes de desenvolvimento, facilidade de visualização além de embelezar o código(code beautifier).

* Framework é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica

Arrays – Java, C++ e C#

Publicado: 1 de fevereiro de 2014 em C#, C/C++, Java

Uma Array também conhecido como matriz é uma lista seqüencial de itens. O tipo de item que você pode armazenar na matriz são definidas pelo tipo de matriz na declaração. Arrays podem ser simples ou multi-dimensional, e cada dimensão pode ter diferentes comprimentos.

No exemplo a seguir complementando o post anterior sobre looping usaremos aqui o comando Continue. este comando força transferência de controle para a proxima expressão, ou seja continua a execução do looping ignorando o ponteiro atual usado nos comandos: do, for e while.

Imagine o seguinte cenário:

Em uma maratona temos 16 corredores homens e mulheres cada um com uma pulseira que envia um sinal para uma rede sem fio e ao cruzar a linha de chegada e automaticamente nos é dados nome e o tempo dos corredores o que fazemos é identificar nos dados quem fez o primeiro e segundo lugar:

Java

public class Looping {

public static void main(String[] args)

 {

      String[] nomes ={     "Elena", "Tomas", "amilton", "Susie", "Felipe", "Mateus", "Alex",     "Fabia", "Joao", "James", "Jane", "Emilia", "Daniel", "Leda",     "Ariana", "Kate"     };

        int[] tempos ={     341, 273, 278, 329, 445, 402, 388, 275, 243, 334, 412, 393, 299,     343, 317, 265     };

          int primeiro = 0;

     int segundo = 0;

     String ganhador = null ;

     String vice = null ;

               for (int i = 0; i < nomes.length; i++)

{

System.out.println(nomes[i]+ ":       " + tempos[i]);

                  if (tempos[i] > primeiro) {primeiro = tempos[i];

                                ganhador = nomes[i];

                               }

}

           System.out.println("Primeiro lugar: "+ ganhador + " com segundos: " + primeiro);

          for (int i = 0; i < nomes.length; i++)

{

if (tempos[i] == primeiro) {continue;}

if (tempos[i] > segundo) {segundo = tempos[i];

                                vice = nomes[i];

                               }

}

               System.out.println("Segundo lugar: "+ vice + " com segundos: " + segundo);   }

}

C++

#include "stdafx.h"

 #include <iostream>

 #include <string>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

const int itens = 16;

    string nomes[itens] = {   "Elena", "Tomas", "amilton", "Susie", "Felipe", "Mateus", "Alex",   "Fabia", "Joao", "James", "Jane", "Emilia", "Daniel", "Leda",   "Ariana", "Kate"  };

int tempos[itens] = {   341, 273, 278, 329, 445, 402, 388, 275, 243, 334, 412, 393, 299,   343, 317, 265  };

int primeiro = 0;

int segundo = 0;

string ganhador = "";

string vice = "";

for (int i = 0; i < itens ; i++)  {   cout <<  nomes[i] << ":         " << tempos[i] <<"\n";

if (tempos[i] > primeiro) {    primeiro = tempos[i];

    ganhador = nomes[i];

   }

  }

       cout  << "\nPrimeiro lugar: " << ganhador << " com segundos: " << primeiro << "\n";

for (int i = 0; i < itens; i++)

  {

if (tempos[i] == primeiro) { continue; }

   if (tempos[i] > segundo) {    segundo = tempos[i];    vice = nomes[i];   }

}

cout << "Segundo lugar: " << vice << " com segundos: " << segundo<< "\n\n";

  system("pause");

return 0;

}

C#

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ConsoleApplication33

{

class Program

{

static void Main(string[] args)

{

String[] nomes ={     "Elena", "Tomas", "amilton", "Susie", "Felipe", "Mateus", "Alex",     "Fabia", "Joao", "James", "Jane", "Emilia", "Daniel", "Leda",     "Ariana", "Kate"     };

int[] tempos ={     341, 273, 278, 329, 445, 402, 388, 275, 243, 334, 412, 393, 299,     343, 317, 265     };

int primeiro = 0;

int segundo = 0;

String ganhador = null ;

String vice = null ;

for (int i = 0; i < nomes.Length; i++)

{

Console.WriteLine(nomes[i]+ ":         " + tempos[i]);
                  if (tempos[i] > primeiro) {primeiro = tempos[i];
                                ganhador = nomes[i];

}

}

Console.WriteLine("Primeiro lugar: "+ ganhador + " com segundos: " + primeiro);

for (int i = 0; i < nomes.Length; i++)

{

if (tempos[i] == primeiro) {continue;}

if (tempos[i] > segundo) {segundo = tempos[i];

vice = nomes[i];

}

}

Console.WriteLine("Segundo lugar: " + vice + " com segundos: " + segundo);

Console.ReadKey();

}

}

}

Exercicios: Mostrar o tempo do terceiro ganhador e customizar o código fonte para que fique mais compacto.

Comando Do … While e Break – Java, C++, C#

Publicado: 1 de fevereiro de 2014 em C#, C/C++, Java

O comando Do While (faça… enquanto) executa um comando repetidamente até que a condição de término especificada retorne falso.

A instrução break termina a execução do laço mais próximo em que ela aparece.

A diferença entre o comando While visto no post anterior e o comando  Do…While é que neste a instrução ou  bloco  de instruções é executado uma vez, veja o exemplo abaixo:

No exemplo abaixo você pode ver que o Do While executa uma vez independe da condição falsa:

// Exemplo comando while
while (false)
{
printf("While imprime \n"); // C++
// System.out.println("While imprime"); // Java
// Console.WriteLine("While imprime"); // C#
}

// Exemplo de comando do while
do
{
printf("Do While iprime \n");
  // System.out.println("Do While imprime"); // Java
// Console.WriteLine(Do "While imprime"); // C#
}
while (false);

A seguir temos os resultados do exercício anterior.

Exibindo numero primos:

Java

import java.io.Console;
import java.util.*;

public class Cad {

public static void main(String[] args)

{

int  Nprimo = 2;
int  numeros = 1;
do
{
for (Nprimo = 2; Nprimo <= numeros - 1; Nprimo++)
{
if ((numeros % Nprimo) == 0)
{
break; // pula numeros nao primos
}
}
if (Nprimo == numeros)
System.out.print(numeros +  ", ");
numeros = numeros + 1;
} while (numeros <= 1000);

}
}

C++

// ConsoleApplication29.cpp : Defines the entry point for the console application. //

#include "stdafx.h"

#include <iostream>

using namespace std;

int main(void)

{

int  Nprimo = 2;

int  numeros = 1;

do  {   for (Nprimo = 2; Nprimo <= numeros - 1; Nprimo++)

{    if ((numeros % Nprimo) == 0)

{

break; // pula numeros nao primos

}

}

if (Nprimo == numeros)    cout << numeros << ", ";

numeros = numeros + 1;

}

while (numeros <= 1000);

cout << "\n";

system("PAUSE");

return 0;

}

C#


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ConsoleApplication27

{

class Program

{

static void Main(string[] args)

{

int Nprimo = 2;

int numeros = 1;

do

{

for (Nprimo = 2; Nprimo <= numeros - 1; Nprimo++)

{

if ((numeros % Nprimo) == 0)

{

break; // pula numeros nao primos

}

}

if (Nprimo == numeros)

Console.Write (Convert.ToString(numeros) + ", ");

numeros = numeros + 1;

} while (numeros <= 1000);

Console.ReadKey();

}

}

}

Comando While – Java, C++ e C#

Publicado: 1 de fevereiro de 2014 em C#, C/C++, Java

O comando while executa uma instrução ou um bloco de instruções até que uma expressão especificada seja avaliada como falsa.

No exemplo a seguir vamos criar uma lista de números pares e outra com números impares:

Java


import java.io.Console;
import java.util.*;

public class Cad {

public static void main(String[] args)

{

int Npar = 0;
int Nimpar =1;
while (Npar < 100)
{
System.out.println("Numeros pares: "+ Npar + " Numeros impares: " + Nimpar);
Npar = Npar + 2; // exclua esta linha para ver um looping infinito
Nimpar = Nimpar +2;
}
}
}

C++


#include "stdafx.h"

#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

int Npar = 0;

int Nimpar = 1;

while (Npar < 100)

{

cout << "Numeros pares: " << Npar<< " numeros impares: "<<Nimpar << "\n";

Npar = Npar + 2; //exclua esta linha para um looping infinito

Nimpar = Nimpar + 2;

}

system("pause");

return 0;

}

C#


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ConsoleApplication27

{

class Program

{

static void Main(string[] args)

{

int Npar = 0;

int Nimpar = 1;

while (Npar < 100)

{

Console.WriteLine("Numeros pares:" + Convert.ToString(Npar) +

" numeros impares: " + Convert.ToString(Nimpar));

Npar = Npar + 2; // exclua esta linha para ver um looping infinito

Nimpar = Nimpar +2;

}

Console.ReadKey();

}

}

}

Exercício:

Criar um lista de números primos menores do que 1000:

Lembrando que números primos são os números naturais que têm apenas dois divisores diferentes: o 1(um) e ele mesmo.

O resultado de ver ser uma lista numérica entre 2 e 997.

 

Comando FOR – Java, C++ e C#

Publicado: 30 de janeiro de 2014 em C#, C/C++, Java

Executa a declaração e expressão de laço repetidamente, até que a condição da expressão se torne falsa.

O FOR possui 3 parâmetros nem todos obrigatórios e escritos pela seguinte sintaxe:

FOR (parâmetro 1; parâmetro 2; parametro3)  {  conteúdo do laço; }

Sendo que:

Parâmetro1 = inicialização do laço, exemplo: int variável = 0;

Parâmetro2 = condição do laço, exemplo: variável < 100;

Parâmetro3 = incremento ou decremento do laço, exemplo: variável++; ou variável–;

Um erro muito comum é escrever comandos da categoria laços com uma condição infinita, um laço interminável não permite que o compilador termine o conteúdo do comando.

No exemplo a seguir vamos criar uma simples tabuada:

Java

import java.io.Console;
import java.util.*;

public class Cad {

public static void main(String[] args)

{

int numeros = 0;
for  (numeros=1; numeros<=10; numeros++)
{
System.out.println("Tabuada: 1 x "+ numeros + " = " + 1*numeros);
}
}
}

C++

#include "stdafx.h"
#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

int numeros = 0;

for (numeros = 1; numeros <= 10; numeros++)

{

cout << "Tabuada: 1 x " << numeros << " = " << 1 * numeros << "\n";

}

cout << "\n";

system("pause");

return 0; }

C#


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ConsoleApplication25 {

class Program

{

static void Main(string[] args)

{

int numeros = 0;

for (numeros =1; numeros <=10; numeros++)

{

Console.WriteLine("Tabauda: 1 x " + Convert.ToString(numeros)+ " = " +

Convert.ToString(numeros *1));

}

Console.ReadKey();

}

}

}

Exercício use o for para imprimir no console os seguintes desenhos usando o caractere “*”:

Desenho 1:
***********
**********
*********
********
*******
******
*****
****
***
**
*

Desenho 2:
*****
****
***
**
*
*
**
***
****
*****
Procure outros desenhos e saiba mais sobre ASCII art em:
http://pt.wikipedia.org/wiki/ASCII_art