Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Escreva um programa (algorítmo) Java que usa o laço do...while para ler um número indeterminado de idades. A condição de parada do laço é o valor da idade igual a 0Quantidade de visualizações: 9527 vezes |
|
Pergunta/Tarefa: Escreva um programa (algorítmo) Java que usa o laço do...while para ler um número indeterminado de idades de algumas pessoas. A condição de parada do laço é o valor da idade igual a 0. Calcule a escreva a idade média deste grupo de pessoas. Sua saída deverá ser parecida com: Informe a idade: 19 Informe a idade: 30 Informe a idade: 21 Informe a idade: 45 Informe a idade: 0 A idade média é: 28.75 Veja a resolução comentada deste exercício usando Java console:
package exercicios;
import java.util.Scanner;
public class Exercicios {
public static void main(String[] args) {
// vamos efetuar a leitura usando a classe Scanner
Scanner entrada = new Scanner(System.in);
int idade; // guarda a idade lida de cada indivíduo
double idade_media; // a idade média calculada
int soma = 0; // a soma das idades de cada indivíduo
int contador = 0; // conta as idades lidas
// laço do...while que repetirá até que o valor da idade seja 0
do{
System.out.print("Informe a idade: ");
idade = Integer.parseInt(entrada.nextLine());
// a idade lida é diferente de 0?
if(idade != 0){
soma = soma + idade; // soma mais esta idade
contador++; // aumenta a quantidade de idades lidas
}
}while(idade != 0);
// calcula a idade média
// note que forcei contador para o tipo double antes da divisão
// isso faz com que o resultado seja do tipo double
idade_media = soma / (contador * 1.0);
// finalmente mostramos o resultado
System.out.println("A idade média é: " + idade_media);
}
}
|
Java ::: Fundamentos da Linguagem ::: Tipos de Dados |
Java para iniciantes - Como usar o tipo de dados long da linguagem JavaQuantidade de visualizações: 15101 vezes |
O tipo de dados long pode ser usado quando queremos armazenar valores inteiros na faixa -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. Veja um exemplo:
public class Estudos{
static long valor = 545L;
public static void main(String args[]){
System.out.println("O valor da variável é: "
+ valor);
System.exit(0);
}
}
Observe o uso do caractere "L" após o valor literal que atribuímos à variável. Isso é feito para que o compilador trate o literal como long e não como int. Você pode usar o "L" minúsculo, mas este se parece muito com o número um, o que torna seu uso pouco recomendável. O tipo de dados long pode ser convertido (sem a necessidade de cast) para os seguintes tipos: long -> float -> double Se precisarmos converter o tipo int para os tipos char, byte, short ou int, teremos que lançar mão de uma coerção (cast). Veja: byte valor2 = (byte)(valor); |
C++ ::: Win32 API (Windows API) ::: Aplicativos e Outros |
C++ Windows API GUI - Como criar sua primeira aplicação de interface gráfica usando C++ e WinAPIQuantidade de visualizações: 48245 vezes |
|
Esta dica mostra o código completo para uma aplicação de interface gráfica usando C++ e a Win32 (WinAPI - Windows Programming Interface). Trata-se de uma janela simples, mas com todas as características presentes em todas as janelas das aplicações Windows: uma barra de títulos, o ícone e os botões de maximizar, minimizar e fechar. Antes de executar o exemplo observe que este código contém o ponto inicial para a criação de qualquer aplicação gráfica em C++/WinAPI, a saber: A função de entrada WinMain, o laço de mensagens Message Loop, a função de callback Window Procedure e as técnicas de registrar e criar a janela. Neste momento não discutimos os detalhes do código. Em outras dicas você encontrará análises mais aprofundadas de cada parte. Este código foi escrito e testado no Dev-C++, mas, deve funcionar sem problemas em outros compiladores C++ para Windows. Assim, abra o Dev-C++, vá em File -> New -> Projec. Na aba Basic, selecione Console Application, dê um nome ao projeto e deixe a opção C++ Project marcada. Salve o projeto e inclua o código abaixo no arquivo .cpp principal:
#include <windows.h>
// define o nome da classe de janela
const char nomeJanela[] = "aCodigos";
// esta é a Window Procedure
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM
wParam, LPARAM lParam){
switch(msg){
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam,
lParam);
}
return 0;
}
// função de entrada da aplicação
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE
hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
WNDCLASSEX wc;
HWND hwnd;
MSG Msg;
// vamos registrar a Window Class
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wc.lpszMenuName = NULL;
wc.lpszClassName = nomeJanela;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if(!RegisterClassEx(&wc)){
MessageBox(NULL, "Erro ao registrar a janela!",
"Erro!", MB_ICONEXCLAMATION | MB_OK);
return 0;
}
// cria a janela
hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, nomeJanela,
"Minha primeira aplicação Win32",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
350, 200, NULL, NULL, hInstance, NULL);
if(hwnd == NULL){
MessageBox(NULL, "Erro ao criar a janela!",
"Erro!", MB_ICONEXCLAMATION | MB_OK);
return 0;
}
// mostra a janela
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
// Este é o laço de mensagens (Message Loop)
while(GetMessage(&Msg, NULL, 0, 0) > 0){
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
Pronto! Só compilar (geralmente F9 no Dev-C++), observar o resultado e estudar o código atentamente. |
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação orientada a objetos em Java - Como criar e usar interfaces em seus programas JavaQuantidade de visualizações: 12281 vezes |
|
Muitos estudantes de Java torcem o nariz quando nós, professores e instrutores, tocamos no assunto de interfaces. Definitivamente este não é um tópico fácil de entender ao primeiro contato. Comecemos com uma analogia simples. É sabido que é cada vez maior o número de softwares sendo desenvolvidos em equipes, ou seja, o projeto do software é desmembrado e suas funcionalidades são implementadas por grupos diferentes de programadores. Quando estamos desenvolvendo software em grupos de programadores, é comum desenvolvermos partes que dependem do trabalho de um outro grupo. E, nem sempre podemos esperar que uma parte da qual dependemos fique pronta para só então progredirmos. Para isso, um contrato entre os grupos de programadores é firmado. E este contrato é o que chamamos de interface. Suponhamos que em um determinado momento meu grupo está desenvolvendo código que depende da parte de impressão, sendo desenvolvida por outro grupo. Todos se reúnem e decidimos quais funcionalidades a classe de impressão terá e quais métodos públicos serão disponibilizados. Feito isso, uma interface contendo a assinatura destes métodos é disponibilizada para todos e o desenvolvimento continua. Mais tarde, quando a classe de impressão estiver sendo desenvolvida, ela poderá implementar a interface anteriormente disponibilizada e tudo está resolvido. Sendo assim, uma interface na linguagem de programação Java é um tipo referência, similar a uma classe. A diferença é que uma interface pode conter apenas constantes e assinaturas e métodos. Não há a implementação dos corpos dos métodos. Além disso, interfaces não podem ser instanciadas usando new. Veja o que acontece quando tentamos fazer isso (lembre-se de que List é interface):
import java.util.*;
public class Estudos{
public static void main(String args[]){
// cria um objeto da interface List
List lista = new List();
}
}
Ao tentarmos compilar este código teremos a seguinte mensagem de erro:
Estudos.java:6: java.util.List is abstract;
cannot be instantiated
List lista = new List();
^
1 error
Interfaces devem ser implementadas por classes ou extendidas por outras interfaces. Agora, um detalhe interessante. Se você verificar a API do Java, verá que a interface List é implementada pelas classes AbstractList, ArrayList, LinkedList e Vector. Desta forma, o código anterior pode ser modificado para:
import java.util.*;
public class Estudos{
public static void main(String args[]){
// cria um objeto da interface List
List lista = new ArrayList();
}
}
Este código compila normalmente e fortalece nossa discussão a respeito da interface de impressão. O sistema inteiro pode fazer referências a uma interface e, para que ele funcione da forma esperada, só precisamos fornecer a classe que implementa a interface no momento de instanciar os objetos. Isso demonstra que o nome de uma interface pode ser usado em qualquer lugar no qual um tipo da classe que a implementa seja necessário. Vamos ver agora como criar uma interface chamada Pessoa. Veja:
public interface Pessoa{
public void setNome(String nome);
public String getNome();
}
Salve esta interface como Pessoa.java e a compile. Pronto! Esta interface já pode ser usada no sistema, contanto que todos do grupo tenham concordado com as assinaturas dos métodos. Agora observe uma classe Cliente que implementa esta interface:
public class Cliente implements Pessoa{
private String nome;
private int idade;
public void setNome(String nome){
this.nome = nome;
}
public String getNome(){
return this.nome;
}
}
Salve este código como Cliente.java e o compile. O primeiro detalhe a observar é o uso da palavra-chave implements para mostrar que a classe implementa a interface Pessoa. Note também que a classe fornece implementação para todos os métodos da interface. Não seguir esta regra geraria o seguinte erro de compilação:
Cliente.java:1: Cliente is not abstract and
does not override abstract method getNome() in
Pessoa
public class Cliente implements Pessoa{
^
1 error
Em resumo, uma interface define um protocolo de comunicação entre dois objetos e pode conter, além das assinaturas dos métodos, constantes. Neste caso todas estas constantes serão implicitamente public, static e final. Mesmo que estes modificadores sejam omitidos. |
Nossas 20 dicas & truques de programação mais populares |
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 |





