![]() |
|
||||
|
|||||
Você está aqui: Cards de Engenharia Civil - Estruturas de Aço e Madeira |
||
|
||
|
|
||
C++ ::: Dicas & Truques ::: Matemática e Estatística |
Como testar se um número é par ou ímpar em C++Quantidade de visualizações: 1005 vezes |
|
Muitas vezes precisamos saber se um determinado número é par ou ímpar. Isso pode ser feito em C++ usando-se o operador de módulo "%", que retorna o resto de uma divisão por inteiros. Veja o exemplo a seguir:
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
// variáveis usadas para resolver o problema
int num;
// vamos ler um número inteiro
cout << "Informe um valor inteiro: ";
cin >> num;
// vamos testar se o número é par
if(num % 2 == 0){
cout << "Você informou um número par" << endl;
}
// é ímpar
else{
cout << "Você informou um número ímpar" << endl;
}
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este programa C++ nós teremos o seguinte resultado: Informe um valor inteiro: 8 Você informou um numero par |
Node.js ::: Dicas & Truques ::: Arquivos e Diretórios |
Como obter o diretório de instalação do Node.js - O diretório de trabalho do Node.jsQuantidade de visualizações: 2323 vezes |
|
Em algumas situações nós gostaríamos de obter o diretório de instalação, ou diretório de trabalho do Node.js. Isso pode ser feito por meio da variável __dirname ou da função cwd() do objeto process. Tanto a variável quanto a função process.cwd() fazem parte do core do Node.js e não precisam ser importados. Veja abaixo um exemplo de um aplicação funcional que mostra o nome do diretório de trabalho:
// importamos o módulo HTTP
var http = require("http");
http.createServer(function(request, response){
// Aqui nós enviamos o cabeçalho HTTP, com a resposta
// 200 (OK) e o content type text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// Vamos obter e mostrar o diretório de trabalho do Node.js
var diretorio = __dirname;
// poderíamos também usar
// var diretorio = process.cwd();
response.write('O diretório de trabalho é: ' + diretorio + '\n');
// fechamos a resposta HTTP
response.end();
}).listen(8081); // o HTTP server vai ouvir na posta 8081
// Que tal uma mensagem no console?
console.log('O servidor está ouvindo em http://127.0.0.1:8081/');
Depois de executar o servidor, abra seu navegador no endereço http://127.0.0.1:8081 e você terá o seguinte resultado: O diretório de trabalho é: c:\estudos_nodejs |
Flutter ::: Material Library - Biblioteca Material ::: TextField |
Como usar a propriedade onChanged da classe TextField do Flutter para detectar mudança em seu conteúdo e exibí-lo como título da janelaQuantidade de visualizações: 2002 vezes |
|
A propriedade onChanged da classe TextField nos permite detectar quando o conteúdo da caixa de texto sofre alterações (quando o usuário digita mais conteúdo ou deleta o conteúdo já existente. Nesta dica eu mostro como tirar proveito dessa propriedade para atualizar o título da AppBar com o mesmo texto da caixa de texto à medida que o usuário digita.
import 'package:flutter/material.dart';
// método principal do Dart, que inicia a aplicação
void main() {
runApp(MeuApp());
}
class MeuApp extends StatelessWidget {
// Este widget é a raiz da aplicação Flutter
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Controle TextField',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: TelaInicial(),
);
}
}
// Vamos construir a view e retornar para a raiz da aplicação
class TelaInicial extends StatefulWidget {
TelaInicial({Key key}) : super(key: key);
@override
_TelaInicialState createState() => _TelaInicialState();
}
class _TelaInicialState extends State<TelaInicial> {
String tituloJanela = "Título da Janela";
@override
Widget build(BuildContext context) {
// vamos criar uma caixa de texto chamada nomeTxt
final nomeTxt = TextField(
decoration: InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10.0)),
hintText: 'Digite seu nome'
),
// Vamos detectar a mudança de conteúdo do TextField
onChanged: (String value) async {
// setState() força a atualização da janela
setState(() {
tituloJanela = value;
});
}
);
return Scaffold(
appBar: AppBar(
title: Text(tituloJanela),
),
body: Center(
child: Container(
child: Padding(
padding: const EdgeInsets.all(20.0),
child: Column(
children: <Widget>[
// a caixa de texto TextField vai aqui
nomeTxt,
],
),
),
),
),
);
}
}
|
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: 9024 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;
}
|
Java ::: Dicas & Truques ::: Fuso Horários |
Como representar fuso horário em Java usando a classe TimeZoneQuantidade de visualizações: 13366 vezes |
A classe abstrata TimeZone (do pacote java.util) representa um determinado fuso horário e também identifica o horário de verão (daylight savings) de um determinado país ou região. Veja sua posição na hierarquia de classes Java:java.lang.Object java.util.TimeZone A melhor forma de entender o fuso horário, é consultando suas configurações regionais no Painel de Controle de seu sistema. É comum, em máquinas brasileiras encontrarmos o fuso horário "GMT -03:00 - Brasilia". Isso quer dizer que a hora oficial do Brasil é -3 horas em relação ao horário de Greenwich, Londres. Não podemos nos esquecer do horário de verão, que reduz esta diferença para -2 horas na maior parte do país. Por padrão, A JVM detecta e trabalha com o fuso horário da máquina na qual está sendo executada. Veja um trecho de código que obtém este TimeZone padrão:
import java.util.*;
public class Estudos{
public static void main(String args[]){
TimeZone timeZone = TimeZone.getDefault();
System.out.println(timeZone.getDisplayName());
System.out.println(timeZone.getID());
}
}
Ao executar este código você terá um resultado semelhante à: Brasilia Time America/Sao_Paulo Aqui nós usamos o método estático getDefault() para retornar o TimeZone padrão e os métodos de instância getDisplayName() e getID() para obter as informações sobre o fuso horário. |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






