Continuando a série sobre algoritmos de ordenação, hoje falarei sobre o Selection Sort.
O Selection Sort funciona
de forma semelhante ao Bubble Sort. A principal diferença é durante a
análise de qual número vai naquela casa, não é feito a troca
imediatamente, mas sim guardado a referência para aquela posição (no pseudo-código abaixo, essa referência é guardada na variável “menor”).
Blog onde registro todas as minhas pesquisas e compartilhando as mesmas para quem esteja interessado.
quinta-feira, 29 de novembro de 2012
segunda-feira, 19 de novembro de 2012
Algoritmo: Bubble Sort
Vou iniciar uma série sobre algoritmos de ordenação, começando hoje pelo Bubble Sort, também conhecido como o método da bolha. Para facilitar, vamos pegar o seguinte caso: tenho um vetor de inteiros chamado vet com os seguintes valores: {55, 76, 26, 64, 26, 80, 71, 46} e temos que organizar os números desse vetor em ordem crescente.
Vamos para o pseudocódigo:
01. var x,y,aux : INTEIRO
02. PARA x=0 ATE vet.tamanho PASSO 1
03. PARA y=x+1 ATE vet.tamanho PASSO 1
04. SE(vet[x] > vet[y]) ENTAO
05. var aux = vet[x]
06. vet[x] = vet[y]
07. vet[y] = aux
08. FIMSE
09. FIMPARA
10. FIMPARA
Vamos para a explicação:
Vamos para o pseudocódigo:
01. var x,y,aux : INTEIRO
02. PARA x=0 ATE vet.tamanho PASSO 1
03. PARA y=x+1 ATE vet.tamanho PASSO 1
04. SE(vet[x] > vet[y]) ENTAO
05. var aux = vet[x]
06. vet[x] = vet[y]
07. vet[y] = aux
08. FIMSE
09. FIMPARA
10. FIMPARA
Vamos para a explicação:
quinta-feira, 1 de novembro de 2012
Javascript: Criação de Objetos
Para
criar um objeto em Javascript, é necessário apenas declarar o seu
construtor, que não é nada mais que uma função. Os métodos e atributos
do objeto são todos declarados dentro do construtor. No exemplo a
seguir, mostra a criação de um objeto Compromisso, junto com as seus
atributos:
//Construtor de um compromisso de uma agenda (Compromisso)
function Compromisso(nome,inicio,fim){
//Declaração dos atributos
this.nome = nome;
this.dtInicio = inicio;
this.dtFim = fim;
}
//Construtor de um compromisso de uma agenda (Compromisso)
function Compromisso(nome,inicio,fim){
//Declaração dos atributos
this.nome = nome;
this.dtInicio = inicio;
this.dtFim = fim;
}
segunda-feira, 29 de outubro de 2012
PHP: Manipulação de Arquivos
1. Abrindo um Arquivo
Esse tutorial irá ensinar como manipular arquivos, utilizando o PHP. A primeira coisa que deve ser feita quando for manipular um arquivo é abrí-lo. Para abrir utiliza-se a função fopen() para abrir. O protótipo da função é a seguinte:
resource fopen ( string $filename, string $mode [, int $use_include_path [, resource $context]] )
onde:
- $filename: Nome do arquivo a ser aberto;
- $mode: é o modo de acesso do arquivo;
- $ use_include_path (opcional): indica se o arquivo deve ser procurado nos diretórios especificados no include_path do php.ini ;
- $context (opcional): permite a definição de um contexto, que é um conjunto de parâmetros que modificam o comportamento do arquivo.
quinta-feira, 26 de julho de 2012
.NET e C♯: Criando e Usando um Assembly
Essa é uma das postagens que se originou nas minhas pesquisas para montar aulas para um curso de .NET que eu aceitei fazer. Precisava reciclar, pois eu aprendi a usar .NET no tempo do ensino técnico, que faz uns 7 anos que me formei. Uma das coisas que percebi é a carência de material decente para .NET, sendo que o melhor é uma apostila de quando o .NET foi recém criada, ou seja, muita coisa mudou e estou me batendo muito para reciclar.
Uma das coisas que quero trabalhar são os diferenciais do .NET, afinal, não acho que vale a pena falar de um framework que faz a mesma coisa que os outros. E uma das coisas que o .NET faz bem é fazer com que programas de diversas linguagens de programação se comuniquem como se fosse a mesma linguagem. Tudo isso graças ao Assembly, que não é nada mais do que o programa em uma linguagem intermediária própria do .NET.
Nas minhas aulas, eu utilizo o C♯ em conjunto com .NET, uma vez que a linguagem foi criada com o propósito de ser trabalhada com o .NET, mas pode ser utilizada em qualquer outra linguagem que seja compatível com o .NET.
Uma das coisas que quero trabalhar são os diferenciais do .NET, afinal, não acho que vale a pena falar de um framework que faz a mesma coisa que os outros. E uma das coisas que o .NET faz bem é fazer com que programas de diversas linguagens de programação se comuniquem como se fosse a mesma linguagem. Tudo isso graças ao Assembly, que não é nada mais do que o programa em uma linguagem intermediária própria do .NET.
Nas minhas aulas, eu utilizo o C♯ em conjunto com .NET, uma vez que a linguagem foi criada com o propósito de ser trabalhada com o .NET, mas pode ser utilizada em qualquer outra linguagem que seja compatível com o .NET.
quinta-feira, 28 de junho de 2012
iOS: Cuidando do erro "object file format invalid or unsuitable" e outros problemas com Certificado Digital da Apple
Um dos problemas mais terríveis que já passei desenvolvendo para iOS foi esse: no Emulador tudo certinho, mas quando tento rodar no aparelho: Compilação OK, assinando o aplicativo FAIL: "/usr/bin/codesign failed with exit code 1". Clico para ver mais detalhes e aparece a seguinte mensagem: "object file format invalid or unsuitable".
terça-feira, 5 de junho de 2012
iOS: Aplicativos em Tela Cheia (Full Screen)
No iOS, é simples de configurar com que o aplicativo fique totalmente em tela cheia, ou seja, sem a barra de status na parte de cima. Para configurar a tela cheia:
- Abra o arquivo Info.plist do projeto;
- Procure o campo "UIStatusBarHidden" se tiver usando um Xcode antigo, ou "Status bar is initially hidden" nos mais atuais;
- Caso o campo ainda não foi definido, crie mais uma linha contendo o campo;
- Esse campo vai ter uma caixa checkbox. Assinale ela para fazer com que o programa entre no modo Tela cheia.
![]() |
| Campo do info.plist que vai ser alterado |
Marcadores:
cheia,
Fullscreen,
iOS,
NIB,
plist,
tela,
tela cheia,
XIB
Assinar:
Postagens (Atom)
