Pesquisar aqui

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.