Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Como converter de binário para decimal em Java usando o laço forQuantidade de visualizações: 6469 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que usa o laço for para converter um número binário (como uma String) em sua representação decimal (como um int). Peça ao usuário para informar um número binário e mostre o mesmo em decimal (como um int). Sua solução deve obrigatoriamente usar o laço for. Sua saída deverá ser parecida com: Informe um número binário: 1100 A representação decimal do valor binário 1100 é 12 Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos{
public static void main(String[] args) {
// vamos fazer a leitura usando a classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos ler o número binário (como uma String)
System.out.print("Informe um número binário: ");
String bin = entrada.nextLine();
int decimal = 0; // guarda a representação decimal
// vamos percorrer todos os dígitos do número binário começando do início
for(int i = 0, exp = bin.length() - 1; i < bin.length(); i++, exp--){
// converte o caractere atual para inteiro
int temp = Character.digit(bin.charAt(i), 10);
decimal = decimal + (temp * (int)Math.pow(2, exp));
}
System.out.println("A representação decimal do valor binário "
+ bin + " é " + decimal);
}
}
|
AutoCAD Civil 3D .NET C# ::: Dicas & Truques ::: Alinhamento - Alignment |
Como pedir para o usuário selecionar um alinhamento no Civil 3D usando a função GetEntity() do AutoCAD Civil 3D .NET C# APIQuantidade de visualizações: 1045 vezes |
|
Em várias situações nós precisamos pedir para o usuário selecionar um alinhamento e, após a seleção, obter o id do alinhamento selecionado para efetuarmos alguma operação nele. Para isso nós podemos usar a função GetEntity() do objeto Editor da AutoCAD Civil 3D .NET C# API. O primeiro passo é criar um objeto PromptEntityOptions passando a mensagem para o usuário selecionar o alinhamento. Se o usuário selecionar outro objeto que não seja um alinhamento, a mensagem definida em SetRejectMessage é exibida. Note o uso de AddAllowedClass para permitir a seleção apenas de objetos da classe Alignment ou derivadas dela. Depois de solicitar a seleção, nós obtemos um objeto ObjectId, que é retornado pela função GetEntity(). Veja o código AutoCAD Civil 3D .NET C# completo para o exemplo:
using System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.Civil.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.Civil.DatabaseServices;
namespace Estudos {
public class Class1 : IExtensionApplication {
[CommandMethod("Alinhamento")]
public void Alinhamento() {
// vamos obter uma referência ao documento atual do Civil 3D
CivilDocument doc = CivilApplication.ActiveDocument;
// obtemos o editor
Editor editor = Application.DocumentManager.MdiActiveDocument.Editor;
// vamos iniciar um nova transação
using (Transaction ts = Application.DocumentManager.MdiActiveDocument.
Database.TransactionManager.StartTransaction()) {
try {
// vamos pedir para o usuário selecionar o alinhamento
PromptEntityOptions opt = new PromptEntityOptions(
"\nSelecione um alinhamento");
opt.SetRejectMessage("\nO objeto precisa ser um alinhamento.\n");
opt.AddAllowedClass(typeof(Alignment), false);
// vamos obter o id do alinhamento selecionado
ObjectId id_alinhamento = editor.GetEntity(opt).ObjectId;
editor.WriteMessage("\nO id do alinhamento selecionado é: " +
id_alinhamento + '\n');
}
catch (System.Exception e) {
// vamos tratar o erro
editor.WriteMessage("Erro: {0}", e.Message);
}
}
}
public void Initialize() {
// pode deixar em branco
}
public void Terminate() {
// pode deixar em branco
}
}
}
Ao executar este código AutoCAD Civil 3D .NET C# nós teremos o seguinte resultado: O id do alinhamento selecionado é: (1455527762496) |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercício Resolvido de C - Um método recursivo que conta de 0 até 10Quantidade de visualizações: 1013 vezes |
|
Pergunta/Tarefa: Escreva um método recursivo que conta e exibe os valores de 0 até 10. Seu método deverá possuir a seguinte assinatura:
void contar_recursivamente(int n){
// sua implementação aqui
}
Sua saída deverá ser parecida com: 0 1 2 3 4 5 6 7 8 9 10 Veja a resolução comentada deste exercício usando C console:
#include <stdio.h>
#include <stdlib.h>
// método recursivo que conta de 0 até 10;
void contar_recursivamente(int n){
// vamos exibir o número atual
printf("%d ", n);
// devemos prosseguir com a recursividade?
if(n < 10){
// incrementa o valor de n
n++;
contar_recursivamente(n); // e faz uma nova chamada recursiva
}
}
// método principal do programa
int main(int argc, char *argv[]){
// efetua uma chamada ao método recursivo fornecendo o primeiro valor
contar_recursivamente(0);
printf("\n\n");
system("pause");
return 0;
}
|
C++ ::: Win32 API (Windows API) ::: Arquivos e Diretórios |
Como renomear arquivos e diretórios em C++ usando a função MoveFile() da API do WindowsQuantidade de visualizações: 8989 vezes |
A função MoveFile() da API do Windows pode ser usada quando precisamos renomear um arquivo ou diretório. Veja seu protótipo:BOOL WINAPI MoveFile( LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName ); Note que só precisamos fornecer o nome atual e o novo nome do arquivo ou diretório que queremos renomear. Se houver algum erro ao renomear o arquivo ou diretório, a função MoveFile() retornará o valor 0 (zero). Se a operação for efetuada com sucesso, um valor diferente de 0 (zero) será retornado. É sempre uma boa idéia usar a função GetLastError() para retornar o código do erro em caso de falha. Veja um trecho de código no qual renomeamos um arquivo:
#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;
int main(int argc, char *argv[]){
// nome atual do arquivo
CHAR nome_atual[] = "C:\\testes.txt";
// novo nome do arquivo
CHAR nome_novo[] = "C:\\novo.txt";
// vamos renomear o arquivo
if(MoveFile(nome_atual, nome_novo)){
cout << "Arquivo renomeado com sucesso." << endl;
}
else{
cout << "Erro ao renomear o arquivo: " <<
GetLastError() << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
Aqui nós estamos alterando o nome do arquivo testes.txt para novo.txt. Os possíveis erros nesta operação são: a) ERROR_FILE_NOT_FOUND - Ocorre quando o arquivo fornecido como primeiro argumento para a função MoveFile() não existe. O código para este erro é 2 e a mensagem em português é "O sistema não pode encontrar o arquivo especificado (The system cannot find the file specified)". b) ERROR_ALREADY_EXISTS - Ocorre quando o arquivo fornecido como segundo argumento para a função MoveFile() já existe. O código para este erro é 183 e a mensagem em português é "Não é possível criar um arquivo já existente (Cannot create a file when that file already exists)". Veja agora um trecho de código no qual renomeamos um diretório:
#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;
int main(int argc, char *argv[]){
// nome atual do diretório
CHAR nome_atual[] = "C:\\imagens";
// novo nome do diretório
CHAR nome_novo[] = "C:\\imagens2";
// vamos renomear o diretório
if(MoveFile(nome_atual, nome_novo)){
cout << "Diretório renomeado com sucesso." << endl;
}
else{
cout << "Erro ao renomear o diretório: " <<
GetLastError() << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
|
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
|
JavaScript - Como converter uma string em um valor de ponto-flutuante em JavaScript usando a função parseFloat() JavaScript - Como exibir apenas dois dígitos após o ponto decimal em JavaScript usando a função toFixed() do objeto Number Java - Como retornar a quantidade de mapeamentos (chave-valor) em um HashMap do Java usando o método size() JavaScript - Como retornar o tamanho de uma string em JavaScript usando a propriedade length do objeto String |
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 |




