Pesquisar aqui

segunda-feira, 9 de dezembro de 2019

C++ - Operadores de igualdade (>, <, >=, <=)


Assim como os operadores == e !=, podemos comparar dois valores, gerando um valor lógico (true, false). Agora, relativamente a um ser maior que o outro (maior, menor, maior ou igual, menor ou igual), assim como na matemática.

Maior (>)
Se o valor da esquerda for maior que o da direita, é verdadeiro.
Caso contrário, falso.

bool value = 5 > 3;
value é true, porque 5 é maior que 3.

Maior ou igual (>=)
Se o valor da esquerda for maior ou igual ao da direita, é verdadeiro.
Caso contrário, falso.

bool value = 4 >= 4;
value é true, porque 4 é maior ou igual a 4 (neste caso, igual).

Menor (<)
Se o valor da esquerda for menor que o da direita, é verdadeiro.
Caso contrário, falso.

bool value = 8 < 6;
value é false, porque 8 não é menor que 6.

Menor ou igual (<=)
Se o valor da esquerda for menor ou igual ao da direita, é verdadeiro.
Caso contrário, falso.

bool value = 5 <= 5;
value é true, porque 5 é menor ou igual a 5 (neste caso, igual).

Referências - 3/12/2019

Python - Operadores lógicos e relacionais


 NO RAMO DA MATEMÁTICA DA LÓGICA, EXISTEM OPERADORES COMO 'E', 'OU', 'MAS', ENTRE OUTROS E OUTROS OPERADORES DE COMPARAÇÃO DE PROPOSIÇÕES COMO MAIOR, MENOR OU IGUAL, TAMBÉM EXISTEM EM PYTHON!

Assim como expressões aritméticas como por exemplo 2*4-9 são formadas por operadores aritméticos, já falados na publicação 'Python - Operadores Aritméticos', expressões lógicas ou booleanas são formadas por operadores lógicos e relacionais.


Como falei na publicação 'Python - Tipos de Dados', os valores booleanos True (verdadeiro) e False (falso)são bastante úteis para, por exemplo, comparações. Para realizar comparações entre variáveis, usamos os operadores relacionais que são os seguintes:

Assim o resultado de uma comparação entre um valor booleano com outro é um valor booleano.
Demonstrando exemplos de cada um deles:

1
2
3
4
5
6
7
8
9
a = 1
b = 3

print(a == b) #a é igual a b
print(a < b) #a é menor que b
print(a > b) #a é maior que b
print(a <= b) #a é menor ou igual a b
print(a >= b) #a é maior ou igual a b
print(a != b) #a é diferente de b

O output deste programa seria:


1
2
3
4
5
6
False
True
False
True
False
True

Nota: quando usamos o operador 'menor ou igual' (<=), se 'a' for igual a 'b' o valor é True, se 'a' for menor que 'b', o valor também é True, apenas se 'a' for maior que 'b' é que o valor é False, o mesmo acontece com o operador 'maior ou igual'(>=).


Ainda existem mais operadores de comparação e lógicos, mas por agora vou apenas falar do 'and', 'or' e 'not':
  • Operador And: traduzido para português para 'e', só é True quando os dois ou mais valores que estão a ser comparados são todos True:

  • Operador Or: traduzido para português como 'ou', só é False quando os dois ou mais valores que estão a ser comparados são todos True:
  • Operador Not: traduzido para português para 'não', muda o valor da variável, not True é False e not False é True.

Agora já aprendemos mais operadores de comparação de variáveis que nos poderão ser bastante úteis no futuro!

Referências:


domingo, 8 de dezembro de 2019

Robôs Autónomos

Robôs Autónomos

Resultado de imagem para roomba

Os Robôs Autónomos operam independentemente de operadores humanos, em ambientes que não são tão rigidamente controlados quanto os robôs pré-programados. Eles têm "autonomia" porque é ultimamente a responsabilidade da máquina de detectar mudanças no ambiente e adaptar-se a ele. Ao operar adequadamente, não é necessário que os humanos monitorem e manipulem constantemente o ambiente para acomodar com as limitações e capacidades do robô de lidar com diversos obstáculos. Robôs autónomos são usados ​​na indústria, como dispositivos de trabalho em casa, e estão até se tornando brinquedos populares. Um exemplo muito popular seria o robô Roomba, o famoso aspirador automático (como se pode ver na imagem a cima).

Arduino e Raspberry Pi: os deuses dos Makers

Primeiramente, quem são os tais de Makers? Este nome é associado às pessoas que têm um grande interesse em construir coisas e realizar projetos pessoais, normalmente tecnológicos. O papel dos Makers tem vindo a aumentar, pois cada vez mais Startups surgem a partir de projetos pessoais, tanto que alguns estudiosos e pesquisadores acreditam que o movimento Maker será responsável pela próxima revolução industrial.

O Arduino e o Raspberry Pi são por sua vez uma peça central da maioria dos projetos dos Makers, permitindo ter algum nível de complexidade. Porém eles não são a mesma coisa. Enquanto que o Rapberry Pi é um microprocessador ou SBC (single board computer), no fundo, um computador concentrado em apenas uma placa, com Wi-fi, sistema operativo, bluetooth, etc... o Arduino, por sua vez é um microcontrolador, que tal como o nome sugere, controla componentes eletrónicos. Outra grande diferença é que a a linguagem de programação nativa do Raspberry Pi é Python, enquanto que a do Arduino é C++.



Mas afinal qual é a relação disto com IoT? Estes dois dispositivos são uma das melhores maneiras de se entrar no mundo da IoT. Com o Arduino é possível capturar diversa informação com os diversos sensores que podem ser controlados pelo menos e transmiti-los à Cloud ou para o telemóvel ou rede pessoal através da utilização de um Shield (peça adicional que se coloca no Arduino para atribuir novas capacidade como a de ligar-se à internet), o inverso também é válido, utilizar dados descarregados da Cloud para executar tarefas, como abrir portas ou ligar luzes. Para além disso existe até uma Cloud denominada de "Arduino IoT Cloud" completamente grátis e fácil de utilizar. No caso do Raspberry Pi, também é possível utilizá-lo para vários projetos na IoT, vindo já com capacidade de ligação ao Wi-fi, para além disso é um dos dispositivos que suporta o sistema operativo "Windows 10 IoT Core", um SO desenvolvido com o propósito de proporcionar um ambiente mais fácil para os Makers criaram os seus projetos de IoT.


Para concluir, tanto o Arduino como o Raspberry Pi são extremamente úteis para quem se quiser aventurar na criação de projetos que envolvam a internet das coisas. A sua maior vantagem é sem dúvida a acessibilidade e o preço.


fontes:

imagens:

sábado, 7 de dezembro de 2019

Robôs Pre-Programados



Robôs Pré-programados 

Resultado de imagem para braco robotico carros

Os robôs pré-programados operam em um ambiente controlado, onde realizam tarefas simples e monótonas. Estes robôs são famosos na industria e na área de medicina. Um exemplo de um robô pré-programado seria um braço mecânico em uma linha de montagem automotora. O braço tem uma função - soldar uma porta, inserir uma determinada peça no carro, etc. - com o objectivo de executar essa tarefa mais rápido e com mais eficiência que um humano. Desta maneira os robôs pre-programados criam o que é hoje a automação robótica na industria.

iOS 4 - v 4.3.4



iOS 4.3.4


 Esta versão do iOS 4 foi lançado no dia 15 de junho de 2011 e esteve disponível para os seguintes aparelhos da empresa: iPhone 3GS, iPhone 4 modelo GSM, iPad, iPad 2 e para os iPod Touch de 3ª e 4ª geração. O problema resolvido nesta versão foi a vulnerabilidade de segurança que estava relacionada com a visualização de de arquivos mal-intencionados em formado PDF.










sexta-feira, 6 de dezembro de 2019

C++ - Math

O C++ tem várias funções matemáticas que permitem trabalhar com os números.


Max e min
O C++ tem naturalmente duas funções, max() e min() que permitem descobrir o máximo e mínimo entre dois números, respetivamente.
cout << max(5, 2) << endl;
cout << min(8, 290) << endl;

O output será
5
8

Biblioteca <cmath>
A biblioteca cmath contêm muitíssimas funções matemáticas. Também existe o math.h mas essa é a versão da linguagem C (que também funciona em C++), ou seja, não é a mais recomendada para C++.
#include <cmath>

sqrt() - Raíz quadrada (square root): 
cout << sqrt(4) << endl;
2

round() - Arrendondar um número:
cout << round(7.4) << endl;
cout << round(2.67) << endl;

7
3

log() - Função logaritmo natural:
cout << log(3) << endl;

1.09861

pow() - Potência (power):
cout << pow(3, 2) << endl;

9

Lista de outras funções de <cmath>:
  • abs(x) - Valor absoluto de x
  • acos(x) - Arco-cosseno de x
  • asin(x) - Arco-seno de x
  • atan(x) - Arco-tangente de x
  • cbrt(x) - Raíz cúbica (cube root) de x
  • ceil(x) - Valor de x arredondado para cima
  • cos(x) - Cosseno de x
  • cosh(x) - Cosseno hiperbólico de x
  • exp(x) - Valor de E elevado a x
  • expm1(x) - Valor de (E elevado a x),  menos 1
  • fabs(x) - Valor absoluto de um x flutuante (float)
  • fdim(x, y) - Diferença positiva entre x e y
  • floor(x) - Valor de x arredondado para baixo
  • hypot(x, y) - Raíz quadrada de (x2 +y2)(Hipotenusa)
  • fma(x, y, z) - x*y+z sem perder precisão.
  • fmax(x, y) - Máximo entre x e y flutuantes.
  • fmin(x, y) - Mínimo entre x e y flutuantes.
  • fmod(x, y) - O resto da divisão entre x e y flutuantes.
  • sin(x) - Seno de x
  • sinh(x) - Seno hiperbólico de x
  • tan(x) - Tangente de x
  • tanh(x) - Tangente hiperbólica de x

Referências - 30/11/2019

Python - Resolução de Exercícios

JÁ APRENDEMOS PYTHON SUFICIENTE PARA A RESOLUÇÃO DE DEZENAS DE EXERCÍCIOS DISTINTOS, AGORA TEMOS DE COLOCAR ISSO EM PRÁTICA!

Na publicação 'Python - Exercícios', que saiu dia 29, na semana passada, formulei 5 exercícios distintos com diversas soluções, agora vou mostrar como é que se resolve casa um deles:

     1.Escreva o seu primeiro programa (Python - Primeiro Programa):

1
print('Hello World!')

Este exercício é bastante simples, sendo o primeiro programa de qualquer iniciado!


     2. Escreva um programa que pergunte o nome ao utilizador e que diga 'olá' (Python - Interação com o Usuário; Python - Variáveis):


1
2
nome = input('Como se chama? ')
print('Olá {}!'.format(nome))

Este exercício também é muito simples, podendo se escrever de algumas maneiras diferentes; na minha opinião esta é a mais simples e menos confusa.


  3. Escreva um programa que pede para introduzir dois números inteiros para realizar a sua adição (Python - Operadores Aritméticos; Python - Tipos de Dados; Python - Interação com o Usuário; Python - Variáveis):


1
2
3
4
num1 = int(input('Primeiro número: '))
num2 = int(input('Segundo número: '))
soma = num1 + num2
print('O resultado da soma é:', soma)

Neste programa já utilizamos mais variáveis, criando 3 variáveis distintas bastante simples também!


  4. Escreva um programa que peça para inserir o comprimento de 2 catetos de um triângulo rectângulo e calcular o tamanho da hipotenusa (Operadores Aritméticos; Python - Tipos de Dados; Python - Interação com o Usuário; Python - Variáveis; Python - Biblioteca Math (Parte 1 e 2)):


1
2
3
4
5
6
7
import math

cat1 = int(input('Comprimento do cateto 1:'))
cat2 = int(input('Comprimento do cateto 2:'))
hipotenusa = math.sqrt(cat1**2 + cat2**2)

print('O comprimento da hipotenusa será:', hipotenusa)

Este programa já é um bocado mais complexo, criámos 3 variáveis, sendo que a variável hipotenusa foi criada com base no teorema de pitáguras; também importámos a biblioteca math para utilizarmos o comando 'sqrt' para calcular a raiz quadrada!


 5. Escreva um programa que peça para inserir 3 números inteiros e dizer se são todos iguais, 2 iguais e um diferente ou todos diferentes (Python - Variáveis; Python - Biblioteca Math (Parte 1 e 2); Python - Tipos de Dados; Python - Interação com o Usuário):


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
num1 = int(input('Número inteiro 1:'))
num2 = int(input('Número inteiro 2:'))
num3 = int(input('Número inteiro 3:'))

if num1 == num2 == num3:
    print('Os 3 números que introduziste são iguais!')

elif num1 == num2 or num3 == num2 or num1 == num3:
    print('Dois dos números que introduziste são iguais!')

else:
    print('Os 3 números que introduziste são diferentes!')

Pessoalmente gosto bastante de exercícios que envolvam condições, como este, onde explorámos 3 possibilidades diferentes e programámos uma resposta para cada uma delas!


Esta foi a resolução dos exercícios anteriormente indicados; exercícios mais complexos virão em publicações futuras!


Referências: