![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
Ruby ::: Dicas & Truques ::: Data e Hora |
Como retornar o dia do mês em Ruby usando um objeto da classe Time e os métodos day e mdayQuantidade de visualizações: 6656 vezes |
|
Muitas vezes precisamos obter o dia do mês de uma determinada data. Para isso a classe Time do Ruby nos fornece os métodos day e mday. Estes método retornam um número inteiro na faixa 1..31. Veja uma demonstração destes métodos no trecho de código a seguir: # obtém o dia do mês usando o método day agora = Time.new dia = agora.day # exibe o resultado puts "Dia do mês usando a função day: " + dia.to_s # obtém o dia do mês usando o método mday agora = Time.new dia = agora.mday # exibe o resultado puts "Dia do mês usando a função mday: " + dia.to_s Ao executar este código Ruby nós teremos o seguinte resultado: Dia do mês usando a função day: 21 Dia do mês usando a função mday: 21 |
Angular ::: Dicas & Truques ::: Componentes Angular |
Angular para iniciantes - Como criar o seu primeiro componente Angular usando o Angular CLI - Comando ng generate componentQuantidade de visualizações: 3312 vezes |
|
Aplicações Angular são construidas em cima de componentes, e estes consistem de: a) Um template HTML que declara o que deve ser renderizado na página. b) Uma classe TypeScript que define o comportamento do componente. c) Um seletor CSS que define com o componente será usado em um template. d) Estilos CSS opcionais aplicados ao template. Todos esses aspectos acima são abordados em mais dicas dessa seção. O importante agora é entendermos como criar o componente e exibí-lo no navegador. Assim, se você ainda não o fez, crie uma nova aplicação Angular usando o Angular CLI. Você pode usar um comando parecido com: c:\estudos_angular>ng new estudos Este comando vai criar uma nova aplicação Angular com o nome estudos dentro da pasta "c:\estudos_angular". Aguarde alguns minutos e verá que o Angular CLI já criou toda a estrutura da aplicação. Para executá-la, dispare os comandos abaixo: c:\estudos_angular>cd estudos c:\estudos_angular\estudos>ng serve --open Quando a aplicação subir, veremos o seguinte resultado: ![]() Você obteve um resultado parecido? Então vamos continuar. Vá até o diretório "C:\estudos_angular\estudos\src\app" e você verá que o Angular CLI já criou para nós um componente com o nome AppComponent por meio dos arquivos app.component.css, app.component.html, app.component.spec.ts e app.component.ts. Agora vamos voltar nossa atenção para o arquivo app.module.ts. Abra ele no seu editor de texto favorito e você verá o seguinte código:
import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {AppComponent} from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Por ora não vamos analisar todo o conteúdo deste arquivo, apenas fique atento ao que vai acontecer com ele depois que criarmos nosso novo componente, o que faremos agora. Abra uma nova janela de terminal, navegue até o diretório raiz da aplicação e dispare o seguinte comando: c:\angular>cd estudos c:\angular\estudos>ng generate component noticia Nesse momento o Angular CLI criou uma pasta noticia com os seguintes arquivos: noticia.component.css noticia.component.html noticia.component.spec.ts noticia.component.ts Agora volte até o arquivo app.module.ts e veja que o Angular CLI o modificou, adicionando o novo componente NoticiaComponent. É importante entender bem o que acontece com este arquivo, pois é ele que indica qual componente será iniciado em primeiro lugar junto com a aplicação Angular. Agora abra o arquivo noticia.component.ts e altere o seu conteúdo para a versão abaixo:
import { Component } from '@angular/core';
@Component({
selector: 'app-noticia',
templateUrl: './noticia.component.html',
styleUrls: ['./noticia.component.css']
})
export class NoticiaComponent{
titulo = `Presidente afirma que o preço da gasolina
não sobe mais.`;
}
Agora vá em noticia.component.html e altere-o para o código abaixo:
<div>
<h2>Sou o componente Noticia</h2>
<h3>{{ titulo }}</h3>
</div>
Nosso componente está pronto. Vamos fazer uns ajustes no componente que o Angular CLI criou para nós automaticamente. Abra o arquivo app.component.ts e altere o seu conteúdo para:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
nome = 'AppComponent';
}
Agora vá até o arquivo app.component.html e modifique-o para o código abaixo:
<div>
<h1>Sou o componente que o Angular CLI criou</h1>
<h2>Meu nome é: {{ nome }}</h2>
</div>
<app-noticia></app-noticia>
Veja que coloquei o componente <app-noticia></app-noticia> dentro do componente principal. Agora, se você reiniciar a aplicação (é provável que as mudanças já estejam aparecendo no seu navegador) você verá o resultado abaixo: ![]() Obteve resultado parecido? Que maravilha! Agora, para terminar esta dica, abra o arquivo noticia.component.css e vamos adicionar os estilos CSS abaixo:
h2 {color: red}
div {border: 1px solid green; padding: 10px}
Veja a aplicação novamente e note como o componente Noticia já contém uma formatação diferente. Agora é só criar vários componentes, agrupá-los, aplicar formatações CSS, imagens, etc, e contruir uma aplicação realmente interessante. |
MySQL ::: Dicas & Truques ::: Chaves, Índices e Restrições de Integridade Referencial |
Como criar chaves estrangeiras no MySQL - Como criar Foreign Keys em tabelas do MySQLQuantidade de visualizações: 90644 vezes |
|
O que é chave estrangeira (foreign key)? O papel da chave estrangeira é manter uma referência a um registro presente em outra tabela. Imagine o seguinte cenário. Temos uma tabela livros e uma tabela autores. Neste cenário, um autor pode escrever vários livros e um livro pode ser escrito somente por um determinado autor. Aqui temos uma relação 1:N, ou seja, um para muitos: um autor pode escrever zero, um ou vários livros. Comece analisando a tabela autores: Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment nome varchar(45) NO - email varchar(45) NO - CREATE TABLE autores( id int(10) unsigned NOT NULL auto_increment, nome varchar(45) NOT NULL, email varchar(45) NOT NULL, PRIMARY KEY(id) )ENGINE=InnoDB; Analise agora a tabela livros: Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment titulo varchar(45) NO - paginas int(10) unsigned NO - id_autor int(10) unsigned NO - CREATE TABLE livros( id INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT, titulo VARCHAR(45) NOT NULL, paginas INTEGER UNSIGNED NOT NULL, id_autor INTEGER UNSIGNED NOT NULL, PRIMARY KEY(id) )ENGINE = InnoDB; O campo id é do tipo int, auto-incremento e foi marcado como chave primária. Dessa forma, o campo id identifica unicamente cada livro. O campo id_autor é do tipo int e sua função é guardar o id do autor que escreveu um determinado livro. Ao trazer o valor do campo id da tabela autores para o campo id_autor da tabela livros nós estamos relacionando as duas tabelas. O campo id_autor, neste cenário, é a chave estrangeira, pois seu valor sempre refletirá o valor do campo id da tabela autores (a única exceção é quando queremos deixar, temporariamente, um livro sem autor). Lembre-se, em uma relação 1:N, a chave estrangeira, em geral, ficará no lado N da relação. Integridade Referencial (Restrições de Chave Estrangeira) - Referential Integrity (Foreign Key Constraints) Imagine agora que você inseriu alguns registros na tabela autores e na tabela livros. Todas as vezes que o valor do campo id_autor na tabela livros for igual ao valor do campo id na tabela autores nós estaremos criando um relação autor-livro. É possível, a qualquer momento, listar um livro e saber de imediato o id do seu autor (isso permite fazer um join com a tabela autores para obter os dados do respectivo autor). Mas, o que acontecerá se excluirmos um registro na tabela autores e, mais tarde, descobrirmos que o campo id_autor da tabela livros guardava uma referência para o autor excluído? Teremos a quebra da integridade referencial. Para evitar tais situações, é responsabilidade do programador escrever códigos de verificações para prevenir estas ocorrências. Os bancos de dados, e principalmente o MySQL, possuem mecanismos para reforçar esta proteção: restrições de chave estrangeira. As restrições de chave estrangeira asseguram duas situações possíveis: 1) Não permitir que um autor seja excluído quando qualquer livro possuir uma referência a ele; 2) Se o autor for excluído, todos os livros que o referenciam também o serão. Definindo a chave estrangeira na tabela livros usando o atributo CONSTRAINT FOREIGN KEY REFERENCES Vamos agora reescrever o comando DDL CREATE TABLE para a tabela livros de forma a aplicar as restrições de chaves estrangeiras. Veja a nova versão: CREATE TABLE livros( id INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT, titulo VARCHAR(45) NOT NULL, paginas INTEGER UNSIGNED NOT NULL, id_autor INTEGER UNSIGNED NOT NULL, PRIMARY KEY(id), CONSTRAINT livros_autores FOREIGN KEY(id_autor) REFERENCES autores(id) )ENGINE = InnoDB; A estrutura da tabela livros será alterada para aquela mostrada abaixo: Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment titulo varchar(45) NO - paginas int(10) unsigned NO - id_autor int(10) unsigned NO MUL - ErrorNr. 1451: Cannot delete or update a parent row: a foreign key constraint fails (`estudos/livros`, CONSTRAINT `livros_autores` FOREIGN KEY (`id_autor`) REFERENCES `autores` (`id`)) Em mais dicas desta seção você aprenderá a usar as cláusulas ON DELETE e ON UPDATE e as ações RESTRICT, SET NULL, CASCADE e NO ACTION. Todas estas cláusulas e ações são usadas para reforçar a integridade referencial de suas bases de dados. |
VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: VisuAlg Básico |
Exercícios Resolvidos de VisuAlg - Uma loja está concedendo desconto de 20% para clientes do sexo feminino com idade entre 18 e 35 anos (ambas incluídas)Quantidade de visualizações: 697 vezes |
|
Exercícios Resolvidos de VisuAlg - Uma loja está concedendo desconto de 20% para clientes do sexo feminino com idade entre 18 e 35 anos (ambas incluídas) Pergunta/Tarefa: Uma loja está concedendo desconto de 20% para clientes do sexo feminino com idade entre 18 e 35 anos (ambas incluídas). Para os demais clientes o desconto é 5% apenas. Leia o valor do produto, o nome, sexo e a idade do cliente e aplique o desconto correspondente. Sua saída deverá ser parecida com: Informe o valor do produto: 520 Informe o nome do cliente: FABRICIA DE CASTRO Informe a idade: 23 Informe o sexo: F FABRICIA DE CASTRO, você ganhou o desconto de 20% Valor a pagar: 416.0 Informe o valor do produto: 830 Informe o nome do cliente: OSMAR SLVA Informe a idade: 38 Informe o sexo: M OSMAR SLVA, você ganhou apenas o desconto de 5% Valor a pagar: 788.5 Veja a resolução deste exercício em VisuAlg:
algoritmo "Ler o valor do produto, o valor do produto, o sexo..."
var
valor: real
nome, sexo: caractere
idade: inteiro
inicio
// vamos ler o valor do produto
escreva("Informe o valor do produto: ")
leia(valor)
// agora vamos ler o nome do cliente
escreva("Informe o nome do cliente: ")
leia(nome)
// agora vamos ler a idade
escreva("Informe a idade: ")
leia(idade)
// e finalmente vamos ler o sexo do cliente
escreva("Informe o sexo: ")
leia(sexo)
// vamos verificar se o cliente faz jus ao desconto
// de 20%
se ((idade >= 18) e (idade <= 35) e (sexo = "F")) entao
valor <- valor - (valor * (20 / 100))
escreval(nome, ", você ganhou o desconto de 20%")
escreval("Valor a pagar: ", valor)
senao
valor <- valor - (valor * (5 / 100))
escreval(nome, ", você ganhou apenas o desconto de 5%")
escreval("Valor a pagar: ", valor)
fimse
fimalgoritmo
|
Você também poderá gostar das dicas e truques de programação abaixo |
|
C# - Como testar se uma string é null ou vazia em C# usando a função IsNullOrEmpty() da classe String CSS - Como definir uma imagem de fundo para a página HTML em CSS usando a propriedade background-image |
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 |






