Pesquisar aqui

quarta-feira, 22 de janeiro de 2020

C++ - Funções - Parâmetros padrão


Quando uma função tem um parâmetro, esse pode já ser definido de uma forma padrão. Isto é, quando a função for chamada, não é necessário colocar nada como argumento porque a própria função já tem um parâmetro padrão.

void printX(int x = 3){
    cout << x << endl;
}

int main(){
    printX();
}
O parâmetro padrão é x = 3. Então quando a função for chamada e não lhe dermos um argumento, a função vai funcionar com x = 3.

Ou seja, terá output
3

Se não forem todos padrão, apenas alguns, apenas os últimos parâmetros (a partir direita) podem ser padrão, porque não há forma de o compiler saber qual é qual.

Isto é, esta função é válida:
int function(int x, int y, int z = 0){
    //código
}
Porque é possível chamá-la com dois argumentos, assim, por exemplo:
function(2, 3);
Onde z = 0.

Mas esta função não é válida:
int function(int x = 0, int y, int z){
    //código
}
Porque se fôssemos chamá-la da mesma forma, estaríamos a atribuir um valor a x, a y, mas não a z.

Então só é válido se só os parâmetros mais à direita forem padrões. Ou seja, à esquerda de um normal não pode haver um padrão. Todos padrões também é válido.

Referências

Python - Algoritmia (Parte 2)

NA PUBLICAÇÃO PASSADA FALEI DE ALGUMAS BASES DE ALGORITMIA, NESTA IREI DAR UM EXEMPLO DO USO DOS DOIS TIPOS DE REPRESENTAÇÃO QUE FALEI PARA MELHOR EXPLICAR E MOSTRAR A SUA CORRETA UTILIZAÇÃO!

Problema: Dados dois números, inteiros, inseridos pelo utilizador, dizer qual é o maior, ou então se são iguais.

Fluxograma:

Vamos resolver o problema anterior segundo o algoritmo tradicional: análise caso-a-caso:

- Se num1 é maior que num2, mostra num1…
- Caso contrário, se num2 é que é maior que num1, então mostra num2…
- Por fim, se num1 não é o maior e num2 também o não é, conclui-se que só podem ser iguais.

Um fluxograma respeita uma norma geral que pode ser adaptada por cada pessoa. A imagem seguinte mostra o algoritmo de resolução do problema que eu proponho seguindo a norma geral dos fluxogramas. No canto superior direito da imagem está uma pequena legenda, que inclui símbolos não incluídos no esquema, mas que podem ser utilizados em problemas mais avançados:

Pseudo-código:


Início Programa
    Ler num1
    Ler num2
    Se (num1>num2) Então
       Escrever "O maior é: " & num1
    Senão
       Se (num1<num2) Então
          Escrever "O maior é: " & num2
       Senão
          Escrever "São iguais."
       Fim Se   
    Fim Se
 Fim Programa

No pseudo-código demonstrado acima é esquematizado o problema de uma maneira muito simples em forma de linhas em cascata, ou seja, as linhas de código que começam mais para a direita, ocorrem apenas se as linhas acima que comecem mais à esquerda ocorram, assim como o código em programação em Python por exemplo com condições.

Assim demonstrei os dois tipos e representação de algoritmos, ambos podem ser bastante úteis, mas pessoalmente prefiro pseudo-código por que fluxogramas pode tornar-se bastante confuso em alguns programas.



Referências:



terça-feira, 21 de janeiro de 2020

Avanços no Cinema

Avanços no Cinema


Estamos em 2020, o primeiro vídeo alguma vez gravado foi em 1888, ou seja já lá vão 132 anos de gravação de vídeo e truques que fomos inventando para tornar os nossos vídeos mais agradáveis.
Ultimamente todas estas técnicas têm vindo a aumentar e a tornar-se mais acessíveis devido ao avanço da tecnologia que possuímos.
Nas próximas publicações irei abordar este tema dividido em vários sub temas sendo eles:

.Gimballs;
.Efeitos Especiais (dividido em duas partes);
.Movimentos de câmara;
.Vídeo FPS;
.Drones;
Câmaras Robôs.

Quero apenas dizer que as publicações não serão feitas nesta exata ordem...
Até Quinta!

segunda-feira, 20 de janeiro de 2020

Melhor tech com IoT da CES 2020 (PARTE 4)

Esta é a quarta parte de uma série de posts que irão cobrir a melhor tecnologia apresentada na CES 2020 que utiliza (nem que seja um pouco) o conceito de internet of things.

Oral-B io smart tooth brush:
Este dispositivo é, como o nome indica, uma escova de dentes elétrica e inteligente. Tem a particularidade de se conectar com o smartphone via uma app, monitorando a qualidade da lavagem em cada zona da boca, a força e o tempo. Tem capacidade de se conectar com o apple health kit e um display integrado na própria escova onde é possível escolher o tipo de lavagem que queremos efetuar. Após o término da lavagem a escova dá um feedback baseado na qualidade da mesma. Para carregar é apenas necessário colocá-la em cima de uma espécie de doc magnético. Como já era de se esperar, vem equipada com a "ground brush head", que é a cabeça de escova mais emblemática da Oral-B, que a marca clama ser, juntamente com a vibração da escova, a forma mais eficaz de limpeza dentária.



Withings scanwatch:

A withings é conhecida por combinar relógios analógicos com um ecrã digital, resultando num relógio simples e bonito que consegue ao mesmo ser tradicional e moderno. O display funciona quase como o da mi band 3, em que mostra os passos, as chamadas que estamos a receber, notificações,...   Possui também um botão lateral que é utilizada para controlar a parte inteligente do relógio (um pouco como o apple watch). Porém, o que torna este smartwacth especial são as suas qualidades no âmbito da deteção de problemas de saúde. Conseguindo detetar batimentos cardíacos irregulares, apneia do sono, comportamento corporal durante exercício físico e até possui a capacidade de realizar um electrocardiograma. Por todas estas funções a marca apelida-o do mais avançado wearable focado em saúde já feito. Toda esta informação pode ser consultada no aplicativo próprio disponível para smartwatches, sendo possível partilhar os dados com o seu médico. A marca prevê estar disponível no mercado no final deste ano, porém, ainda tem que ser aprovado pela entidade reguladora da saúde dos Estados Unidos da América.



imagens:

  • URL1
  • URL2
  • consultadas no dia 12/01/2020


fontes:

C++ - Funções - Múltiplos parâmetros


As funções não são limitadas a ter apenas um parâmetro, podem ter infinitos parâmetros.

Programa exemplo
#include <iostream>
using namespace std;

void print_coordinates(int x, int y){
    cout << "X: " << x << endl;
    cout << "Y: " << y << endl;
}

int main()
{
    print_coordinates(420, 69);
}

Neste programa, a função print_coordinates() tem dois parâmetros x e y (aceita dois argumentos).
Então, quando chamada, neste caso com os argumentos 420 e 69, os dois serão atribuídos a cada parâmetro, de modo a fazer o output:

X: 420
Y: 69

Python - Algoritmia (Parte 1)

EM PYTHON, COMO EM TODAS AS LINGUAGENS DE PROGRAMAÇÃO, É NECESSÁRIO RECORRER A ALGORITMOS NA RESOLUÇÃO DE PROBLEMAS E PROGRAMAS DE MAIOR COMPLEXIDADE!

A imagem acima pode ser espanhola mas dá para perceber perfeitamente os conceitos de algoritmia lá apresentados: primeiro analisamos o problema em questão, depois fazer um desenho, ou esquema ou texto com o que pretendemos fazer, o algoritmo, a seguir programa-mos de acordo com o algoritmo e testamos o programa para verificar a existência de erros!

Definição:
Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, cada uma das quais pode ser executada mecanicamente num período de tempo finito e com uma quantidade de esforço finita. Ou seja, um algoritmo é um caminho bem definido para se resolver um determinado problema.

Representação:
Um algoritmo tem uma representação para que possa ser facilmente interpretado. Antes de se programar, os problemas devem ser estudados para se chegar a um algoritmo-solução. Este será representado num esquema, chamada Fluxograma, ou então escrito na linguagem-mãe (no nosso caso, Português) ou numa mistura desta com a linguagem de programação a que nos propomos resolver o dito problema, a isso chamamos Pseudo-código.

Na próxima publicação irei falar sobre os dois tipos de representação de algoritmos e irei dar um exemplo utilizando ambas as maneiras! Até lá, boa programação!


Referências:


domingo, 19 de janeiro de 2020

iPhone SE 2 (Parte 2)

Preço do iPhone SE 2

Tentar determinar o preço do iPhone SE 2, pode ser difícil, mas considerando o facto de a Apple usar a sigla SE para manter o preço baixo, há uma grande hipótese que seja dos mais baratos da empresa. 
O iPhone mais barato da Apple (iPhone 8) custa 449$ (549€) e o primeiro iPhone SE saiu a 399$ (499€), daí ser possível a Apple manter o preço da linha dos SE. Hipótese a qual foi apoiada por o analista Ming Chi Kuo.

Design e ecrã do iPhone SE 2

De acordo com a página iGeeksBlog e Ming Chi Kuo, este novo iPhone será quase idêntico ao iPhone 8, mantendo assim a tela de 4,7 polegadas, isto quererá dizer que a Apple irá manter aqueles gigantes bezels (bordas) a volta do ecrã.



Contudo, tem havido outros analistas que dizem que o novo iPhone irá ter um design parecido com o do iPhone X, mas com as laterais quadradas em metal como o iPhone 4 ou o SE original. Este aspeto foi baseado num vídeo que foi colocado no youtube (https://www.youtube.com/watch?v=PDr1CJpTV20 ). Apesar de esta segunda hipótese ter muito melhor ar, não condiz com as outras previsões. Contudo, a Apple ainda não confirmou o plano de design, por isso ainda não sabemos que versão é mais provável de sair.


Na próxima parte irei falar das especificações, do ecrã e do nome deste novo iPhone

Melhores Robôs de 2019 (parte 4)





6. NAO

Resultado de imagem para Nao robot

Originalmente lançado em 2008 e tendo sido desenvolvido continuamente por mais de 10 anos, o Nao é um dos robôs mais icônicos atualmente no mundo. Este robô tem de ser ágil e dinâmico pois é o robô modelo que representa o RoboCup, a competição de robótica anual com o objetivo de desenvolver uma equipa de robôs humanoides totalmente autônomos capazes de derrotar a equipa mundial de futebol (humana). O Nao tem a capacidade de interagir com as pessoas, mas de forma mais significativa pois é capaz de trabalhar com crianças autistas e realizar sessões de exercícios em casas de descanso. Nao tem vários usos diversificados e realiza um trabalho valioso nas comunidades locais.


7. ROMEO

Resultado de imagem para ROMEO robot

O Romeo é outro robô criado pela Softbank Robotics, lançado em 2009. O robô Romeo foi criado como um companheiro robô com a capacidade de apoiar idosos e deficientes. Após o seu lançamento, Romeo poderá melhorar o bem-estar das pessoas a sua volta. Ele será capaz de ajudar nas tarefas diárias, ajudar quando as pessoas caírem, conversar e até jogar jogos.

Para a semana falarei dos melhores robôs sociais não humanóides, até a próxima!