Archive for outubro, 2009

Entendando o que é um “loop infinito”

O exemplo abaixo mostra de maneira clara como um programa de computador pode entrar em um loop infinito, apesar de ser apenas uma piada… isso acontece!

Piadex:

Para quem não conhece o conceito de loop, aqui fica claro o que
significa quando se diz que um programa de computador “entrou em
looping”:

O diretor disse à secretária:
- Vamos viajar para o exterior por uma semana, para um Seminário. Faça os preparativos da viagem!

A secretária faz uma chamada para o marido:
- Vou viajar para o exterior com o diretor por uma semana. Cuide-se, querido.

O marido liga para a amante:
- Minha mulher vai viajar para o exterior por uma semana, então nós vamos poder passar a semana juntos, meu docinho!

A amante liga para um menino a quem dá aulas particulares:
- Tenho muito trabalho, na próxima semana não precisa vir às aulas.

O menino liga para o seu avô:
- Vô, na próxima semana não tenho aulas, a minha professora estará ocupada. Vamos passar a semana juntos?!

O avô (que é o diretor desta história) liga para a secretária:
- Vou passar a próxima semana com o meu neto, então não vou participar daquele Seminário. Pode cancelar a viagem.

A secretária liga para o marido:
- O diretor da empresa mudou de idéia e acabou cancelando a viagem.

O marido liga para a amante:
- Não poderemos passar a próxima semana juntos, a viagem da minha mulher foi cancelada.

A amante liga para o menino das aulas particulares:
- Mudança de planos: esta semana vamos ter aulas como normalmente.

O menino liga para o avô:
- Vô, a minha professora disse que esta semana tenho aulas. Desculpe-me, não vai dar para fazer-lhe companhia.

O avô liga para a sua secretária:
- Meu neto acabou de dizer que não vai poder ficar comigo essa semana.
Continue com os preparativos da viagem ao seminário!

Dessa maneira fica mais fácil entender o que é um loop ;)

Dica enviada por Ricardo

VideoCast 01 – Ponteiros

Primeiro videocast, testando os equipamentos e conversando um pouco sobre ponteiros.

Veja o vídeo aonde eu programo um exemplo básico e introdutório sobre ponteiros!

Ponteiros em C from Carlos Eduardo Silva on Vimeo.

[Piada] Fluxograma da música “Brincadeira de Criança”

Vi esse fluxograma no Guanabara.info, muito bacana, fica ai pra vocês nerds!!!

Molejão-para-Nerds

Para os que não conhecem a música:

[e-books] Livros de programação Grátis

2516367469_0aedf352e2_o.jpg

Acabo de achar uma lista grande com diversos e-books, todos de Programação, em inglês, vale a visita!!!

Varias linguagens de programação, desde o mais simples, C e Bash até algumas coisas “estranhas” como Haskel, Objective-C (mac) e x86 assembly.

Alguns títulos interesantes:

Site: Stack Overflow – List of Freely avalable programming books

“Fica a dica ;)

Obs: Ganha um doce quem desvendar o que está escrito no Outdoor! ;)

Operadores

Em C existem diversos tipos de operadores, são eles:

  • Aritméticos
  • Unários
  • Atribuição
  • Relacionais
  • Lógicos

Aqui vai alguns exemplos básicos de 2 operadores em especifico, são eles ++ e (operadores unários).

Como é de se imaginar, o operador ++ faz o incremento unário em uma variável, já o faz o decremento. É importante notar que existe duas maneiras de utiliza-los, e a maneira influência no resultado da operação.

Se você utiliza-lo antes da variável, então ela será incrementada ou decrementada antes de ser utilizadas na expressão, se você utiliza-la após a variável, então ela será utilizada na expressão, e só depois será incrementada/decrementada.

Exemplificando:

#include <stdio.h>
int main (void)
{
   int iValor_01 = 10, iValor_02 = 5, iValor_03 = 8;
   int iResultado;

   iResultado = iValor_01++ + 9;         /* Retorna 10 para iValor_01
                                            iResultador = 10 + 9
                                            iValor_01 = iValor_01 + 1 */
   printf("Resultado 1 %d\n", iResultado);

   iResultado = --iValor_02 + 10;        /* iValor_02 = iValor_02 - 1
                                            iValor_02 fica com o valor 4
                                            iResultado = 4 + 10 */
   printf("Resultado 2 %d\n", iResultado);

   iResultado = ++iValor_03 * ++iValor_03; /* iValor_03 = iValor_03 + 1
                                              Retorna 9 para iValor_03
                                              iValor_03 = iValor_03 + 1
                                              Retorna 10 para iValor_03
                                              iResultado = 9 * 10 */
   printf("Resultado 3 %d\n", iResultado);

   iResultado = iValor_01++ * iValor_01++;   /* Retorna 11 para iValor_01
                                                iValor_01 = iValor_01 + 1
                                                Retorna 12 para iValor_01
                                                iResultado = 11 * 12
                                                iValor_01 = iValor_01 + 1 */
   printf("Resultado 4 %d\n", iResultado);

   return 0;
}

Abra seu compilador e teste o código acima, verifique, olhe linha linha e adicione essa “funcionalidade” a mais em suas habilidades ;)

+ Info no BR-C

Fluxogramas

Abaixo um pdf de fluxogramas, uma ferramenta poderosa para o aprendizado e a compreensão de como “as coisas” (programas) funcionam dentro da CPU do computador.

O livro abaixo é feito para se trabalhar com microcontroladores, ou seja, para o pessoal de eletrônica, porém a lógica e os fluxos são os mesmos, a leitura dessas páginas com certeza ajudaram a compreender melhor como os programas são executados.

[Livro] Algoritimos – Programação para Iniciantes

Aqui vai a indicação do livro do Gilvan Vilarim, futuramente criarei uma sessão com dicas de leitura, de momento, segue abaixo o livro Algoritmos – Programação para Iniciantes

Não tenho o livro em mãos, mais pelo que pesquisei na internet, são ótimos livros!

239193.jpg
link do submarino