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:

quinta-feira, 5 de dezembro de 2019

iOS 4 - v 4.3.3


iOS 4.3.3


 Esta atualização foi lançada no dia 4 de maio de 2011 e esteve disponível para as seguintes plataformas: iPhone 3GS, iPhone 4 do modelo da GSM, iPad, iPad 2, iPod Touch de 3ª e 4ª geração. Esta também contém alterações para o cache do banco de dados de localização do iOS que é gerado com esses dados envidados de uma forma anónima e com criptografia, contém também a redução do tamanho do cache e o seu backup não é mais criado no iTunes.

quarta-feira, 4 de dezembro de 2019

C++ - String (Parte 2)


Já tinha falado anteriormente no tipo de dado string.
Agora vou falar mais detalhadamente, mostrando algumas propriedades e funções interessantes dela.

Length (tamanho)
Uma string tem um tamanho, como é óbvio, e podemos obter esse número a partir da função length()
Como string é um objeto (de uma classe, falarei só futuramente sobre isto), pode conter funções, length() é uma delas.

Assim como qualquer outro objeto, acessa-se uma função na string ao escrever um ponto '.' e chamando a função, neste caso, length().
string name = "Nyck";

cout << name.length() << endl;

Como "Nyck" tem 4 carácteres, o output vai ser
4

Acessar um carácter (elemento)
Como nas arrays, podemos acessar os elementos.
No caso da string, os seus elementos são carácteres.

Para acessar, é da mesma forma que numa array, o índice entre [ ].
string name = "Nyck";

cout << name[0] << endl;

Com output

N

Mudar o carácter (elemento)
Então, da mesma forma que na array, podemos mudar os carácteres da string e tratá-los como as suas próprias variáveis char, mudando-as o quanto quisermos.
string name = "Nyck";

name[0] = '8'

cout << name << endl;

Com output
8yckyck

Conversão para outro tipo de dado
Ao incluirmos a biblioteca string
#include <string>

São adicionadas funções que permitem a conversão de string para outros tipos de dados, como por exemplo stoi() que transforma em int.
string numberString = "616";

int number = stoi(numberString) + 50;

cout << number << endl;

Com output

666

Mais informação sobre estas conversões aqui.

Programa exemplo
#include <iostream>
using namespace std;

int main()
{
    string name;
    cout << "Enter your name: ";
    cin >> name;
    
    for(int i = 0; i < name.length(); i++){
        name[i] = '0';
    }
    cout << name << endl;
}

  • O programa pede um nome (string) ao utilizador para name,
  • Existe um for loop que muda todos os carácteres da string name para 0.
  • Muda todos os valores porque o i vai desde 0 (1º elemento) ao tamanho da string - 1 (último elemento). Ou seja, se o nome for "Joe", vai desde 0 a 2.
  • Faz-se print de name (todos os carácteres 

Se o nome for "Jesus" na consola vai estar:
Enter your name: Jesus
00000


Referências - 30/11/2019

Python - Listas (Parte 2)

ATÉ AGORA TRABALHÁMOS APENAS COM VARIÁVEIS SIMPLES, MAS VOU DEMONSTRAR QUAIS OS 3 TIPOS DE VARIÁVEIS COMPOSTAS EXISTEM E ESPECIFICAR UMA!

Esta publicação é a continuação da de segunda feira dia 2, por isso deve ver essa publicação primeiro que esta.

Para mais informações sobre listas: docs.python.org/3/tutorial/datastructures


Na publicação passada mostrei 3 métodos diferentes de manipular uma lista, nesta irei mostrar mais alguns que podem ser úteis.

  • Adicionar elementos: este método é semelhante a um que demonstrei na publicação passada, mas neste utilizados o comando 'append':
1
2
3
4
acompanhamentos = ['massa', 'batata', 'arroz', 'salada']

acompanhamentos.append('feijão')
print(acompanhamentos)

Assim, adicionámos o elemento 'feijão' à lista e o resultado seria:

1
['massa', 'batata', 'arroz', 'salada', 'feijão']

  • Extender a lista: neste método extendemos a lista através do comando 'extend':
1
2
3
4
acompanhamentos = ['massa', 'batata', 'arroz', 'salada']

acompanhamentos.extend('feijão')
print(acompanhamentos)

O output deste programa será:

1
['massa', 'batata', 'arroz', 'salada', 'f', 'e', 'i', 'j', 'ã', 'o']

  • Remover todos os elementos da lista: para esta função temos o comando 'clear', que como o nome indica, 'limpa' a lista:
1
2
3
4
acompanhamentos = ['massa', 'batata', 'arroz', 'salada']

acompanhamentos.clear()
print(acompanhamentos)

Aqui o resultado seria:

1
[]

  • Remover um item da lista: este comando permite nos remover o primeiro item da lista que tenha valor igual ao que está nos parêntesis, senão se encontrar na lista, irá dar erro, utilizamos 'remove':
1
2
3
4
acompanhamentos = ['massa', 'batata', 'arroz', 'salada']

acompanhamentos.remove('massa')
print(acompanhamentos)

O que resultaria se executasse-mos o programa seria:

1
2
3
4
['batata', 'arroz', 'salada']

acompanhamentos.remove('massa')
print(acompanhamentos)

  • 'Baralhar' a lista: este comando permite-nos misturar/baralhar os itens de uma lista, utilizamos 'sort':
1
2
3
4
acompanhamentos = ['massa', 'batata', 'arroz', 'salada']

acompanhamentos.sort()
print(acompanhamentos)

O output do programa acima será por exemplo:


1
['arroz', 'batata','massa', 'salada']


Ainda existem mais comandos que nos permitem manipular listas de várias maneiras, mas se os enumerasse a todos a publicação seria gigante, assim se quiser saber mais alguns comandos pode acessar ao link acima oficial ou aos links das referências abaixo.



Referências:






terça-feira, 3 de dezembro de 2019

Informação sobre as publicações

Informação sobre as minhas publicações

  As publicações que eu tenho vindo a por neste blog por vezes são um bocadinho diferentes umas das outras pois a quantidade de informação base para construir cada publicação por vezes não é encontrada. Desde já peço desculpa a quem pensa que sou eu que tenho feito as publicações com pouca informação, mas gostaria de ter a vossa compreensão.
  Obrigado, 
   Diogo  


segunda-feira, 2 de dezembro de 2019

C++ - Arrays



As arrays servem para armazenar dados do mesmo tipo, em sequência.
São parecidas com as listas de Python.

Declaração
Para criar uma array sem nenhuns valores iniciais (declarar), temos de especificar o seu tamanho.

int arr[5];
Onde arr é o nome da array.
Isto criou a array com 5 lugares vazios.

O tamanho especificado tem que ser uma constante, ou seja não é possível escrever
int arr[n];
onde n é uma variável.

O tamanho da array não pode ser mudado de forma fácil. Para isso, é melhor usar o vector, uma "array" mais potente, que falarei futuramente.

Inicialização
Podemos atribuir valores logo na declaração.
Para isso, à direita da declaração da array, colocamos um igual (=) e entre { } os elementos, separados por vírgulas.

int arr[5] = {2, 3, 6, 1, 9};

Se especificarmos o tamanho, temos de colocar o mesmo número ou menos elementos que o tamanho. Se colocarmos menos, o resto, quando é uma array de inteiros, vai ser 0.

Também podemos não especificar o tamanho, e o número de elementos que colocarmos vai ser o tamanho.
int arr[] = {2, 3, 6, 1};
Uma array de 4 elementos.

Acessar um elemento
O índice de cada elemento é 1 a menos que a sua posição.
Isto é, o primeiro elemento é o 0, segundo elemento é o 1 e o terceiro elemento é o 2.

Para acessar um elemento, escrevemos o nome da array e o índice entre [ ].
cout << arr[2] << endl;
Aqui fazemos print do terceiro elemento (o elemento de índice 2).

Ou seja, para mudar o valor de um elemento fazemos
arr[1] = 5;

E todas as outras operações que se podem fazer com uma variável int normal.

Porquê a array
Cada elemento funciona então como uma variável, aliás, ter uma array é essencialmente ter várias variáveis com o mesmo nome mas cada uma tem um número diferente.
Imaginem que temos várias notas de 0 a 20. Em vez de escrevermos
float nota1 = 12.5;
float nota2 = 18.9;
float nota3 = 14.6;

Escrevemos
float notas[3] {12.5, 18.9, 14.6};

Tanto poupamos tempo a inicializar, como também é mais fácil modificar e adicionar novos valores.
Claro que nesta não podemos adicionar mais valores durante o programa, mas se tivessemos inicializado com, digamos tamanho 100, podiamos adicionar mais ao longo do tempo, talvez com input do utilizador.
Sem a array, isto seria impossível.

Uso do for loop com a array
Costuma-se usar muito o for loop para fazer uma mesma operação com todos os elementos da array.
Digamos que se quer adicionar 1 a todos os elementos de uma array int.
int elements[5] = {1, 2, 3, 4, 5};

for(int i = 0; i < 5; i++){
    elements[i]++;
}

Programa exemplo
#include <iostream>
using namespace std;

int main()
{
    string finalName;
    string names[3];
    cout << "Enter 3 names:" << endl;
    
    for(int i = 0; i < 3; i++){
        cin >> names[i];
        finalName += names[i];
    }
    
    cout << finalName << endl;
}

Este programa pede um nome ao utilizador 3 vezes, depois faz print dos 3 nomes juntos.
Para isto, temos uma array vazia de nomes, e um for loop de 3 ciclos.
Dentro dele temos um "cin" que pede input em cada elemento, o de índice 0, 1, e 2 (1º, 2º, 3º).
Depois, como foi atribuído um valor aos elementos da array, adicionam-se à string finalName, a qual é feita print no final.

Se os nomes forem "Oh", "My" e "God" (escritos separados por espaço ou Enters), na consola vai estar:
Enter 3 names:
Oh My God
OhMyGod

Referências - 30/11/2019

Python - Listas (Parte 1)

ATÉ AGORA TRABALHÁMOS APENAS COM VARIÁVEIS SIMPLES, MAS VOU DEMONSTRAR QUAIS OS 3 TIPOS DE VARIÁVEIS COMPOSTAS EXISTEM E ESPECIFICAR UMA!

As variáveis compostas são constituídas por mais que um valor, ao contrário das variáveis simples, estas são sequências de valores. Existem 3 tipos de variáveis compostas: listas, tuplas e dicionários (todos traduzidos para português). Nesta publicação irei falar sobre listas!

Para mais informações sobre listas: docs.python.org/3/tutorial/datastructures


A lista é o datatype mais versátil em Python, sendo criado através de uma sequência de valores separados por vírgulas dentro de [ ]. Uma coisa importante sobre as listas, é que os seus valores não precisam de ser do mesmo tipo, podendo variar de valores numéricos ou strings:

1
2
3
lista1 = ['matematica', 'AIB', 1997, 2000]
lista2 = [1, 2, 3, 4, 5 ]
lista3 = ["a", "b", "c", "d"]

Como nos caracteres de uma string ou sequência, as listas também podem ser "fatiadas", ou seja, separar/seleccionar um dos seus elementos individualmente, sendo o primeiro elemento correspondente ao 0 e crescendo a partir daí, assim, na lista1, 'matematica' corresponde a 0, 'AIB' a 1, 1997 a 2 e 2000 a 3.

Para manipularmos listas podemos utilizar 3 funções:
  • Actualizar a lista;
  • Escolher um ou mais elementos da lista;
  • Excluir elementos da lista;
  • Outras operações básicas;


   1. Escolher elementos da lista: como já referi acima, a cada elemento da lista está correspondido um valor numérico, assim podemos seleccionar apenas um elemento da lista ou mais elementos da lista, tendo em conta do que precisarmos:

1
2
3
4
5
6
lista1 = ['matematica', 'AIB', 1997, 2000]
lista2 = [1, 2, 3, 4, 5 ]
lista3 = ["a", "b", "c", "d"]

print (lista1[0])
print (lista2[1:5])

O output deste programa será:

1
2
matematica
[2, 3, 4, 5]

Assim, podemos escolher elementos da lista individualmente, não utilizando a lista completa.


   2. Actualizar a lista: é muito fácil atualizar listas ou seja, adicionar elementos ou alterar completamente a lista:

1
2
3
4
5
lista = ['matematica', 'AIB', 1997, 2000]
print (lista[2])

lista[2] = 2001
print (lista[2])

Neste exemplo, alterei o terceiro elemento da lista a partir da linha 4 de código; executando o programa o resultado seria:

1
2
1997
2001

   3. Excluir elementos da lista: este método é tão simples como os outros que demonstrei anteriormente:

1
2
3
4
5
lista = ['matematica', 'AIB', 1997, 2000]
print (lista)

del lista[2]
print (lista)

Neste exemplo, apaguei o terceiro elemento desta lista, ficando apenas composta por 3 elementos; assim, o output seria:


1
2
[matematica, AIB, 1997, 2000]
[matematica, AIB, 2000]

Como este é um tema importante e deve ser explicado detalhadamente, terei de o separar em duas partes, sendo esta a parte 1 e a parte 2 será na publicação de quarta feira dia 4!


Referências:






domingo, 1 de dezembro de 2019

iOS 4 - v 4.3.2

  

iOS 4.3.2




   Esta atualização do sistema operativo foi lançada a 14 de abril de 2011 e esteve disponível para as seguintes plataformas: iPhone 3GS e posterior, iPod Touch de 3ª geração e posterior e para o iPad. As melhorias que vieram com esta atualização foram algumas  correções para chamadas que congelavam no FaceTime e alguns problemas de conecção nos modelos que dão para por o cartão SIM do iPad.

iOS 4 - v 4.3.1





iOS 4.3.1




  Esta versão 4.3.1 foi lançada em 2011 no dia 25 de março, tendo como as suas melhorias  uma correção para falhas ecrã do iPod Touch, além de outras na estabilidade da conectividade do telemóvel nos modelos do iPhone.

Mensagem em destaque

IoT está a transformar o mundo dos videojogos

Os videojogos ou games evoluíram muito desde o "pong", tornando-se uma das formas mais populares de entretenimento, gerando recei...