Morre Dennis Ritchie, criador da linguagem C


A linguagem C foi criada no Bell Labs, da AT&T, entre 1969 e 1973. No dia 08 de outubro de 2011,  quase 40 anos depois, morreu o criador da linguagem, Dennis Ritchie. Além ter criado o C, ele também desenvolveu o sistema operacional UNIX, junto com Ken Thompson, Brian Kernighan, Douglas McIlroy, e Joe Ossanna. Dennis Ritchie era detentor do conceituado Prêmio Turing, além de ter recebido as medalhas Richard W. Hamming, do IEEE, e a National Medal of Technology, do governo americano. 

Código em C++: Codificação Run-length

Este exemplo implementa a idéia básica da codificação run-length (Wikipédia e Wikipedia). Basicamente, este algoritmo pretende encurtar sequências (isto é, representar uma sequência com menos caracteres do que ela possui inicialmente) procurando padrões. Por exemplo, a sequência


wwwhhhggfffddddgbbbbb

pode ser representada como

{w, 3} {h, 3} {g, 2} {f, 3} {d, 4} {g, 1} {b, 5}

Ou seja, a sequência wwwhhhggfffddddgbbbbb pode ser representada com três letras w, depois três letras h, depois duas letras g, e assim por diante. Dependendo da sequência de entrada, a sequência de saída poderá possuir menos caracteres do que a de entrada. Esta representação é ingênua, pois ainda existem uma série de considerações a serem feitas.

O código abaixo implementa a codificação run-length.

Código em C++: Fatorial, Coeficiente Binomial e Triângulo de Pascal

No código a seguir, são demonstrados diversos usos para o cálculo do fatorial de um número. O fatorial é definido como:


Por exemplo, 5! = 1*2*3*4*5. E por definição, temos: 0! = 1.

21 - C++: Exceções

Exceções são maneiras de lidar com situações excepcionais, tais como má alocação de memória e erros de run-time. Para trabalharmos com exceções, devemos incluir a biblioteca exception no começo do código, e utilizar os comandos try{...} catch(...){...}, como no código abaixo:

20 - C++: Polimorfismo

A herança de classes faz com que certas classes possuam certas funções e variáveis em comum com outras classes, e que outras funções e variáveis sejam exclusivas. Por exemplo, podemos criar uma classe chamada esportista, com as variáveis-membro nome, idade e velocidade_maxima. Em seguida, podemos criar a classe nadador, que herde os dados da classe esportista e acrescente a variável-membro folego. Objetos da classe esportista não podem acessar nenhuma variável-membro chamada folego, pois esta só pertence à classe nadador.

O polimorfismo em C++ permite que criemos ponteiros de uma classe (por exemplo, esportista) e que os apontemos para objetos de outra classe (por exemplo, nadador), e ainda que este ponteiro acesse variáveis-membro desta segunda classe. Os três códigos a seguir ilustram com mais detalhe o uso de polimorfismo em C++.

19 - C++: Herança de classes

A linguagem C++ permite que classes sejam criadas a partir de outras classes já existentes, copiando funções e variáveis-membro. Com este conceito, conhecido como herança de classes, é possível estruturar o código de forma hierárquica e reaproveitar código já existente. Os códigos a seguir ilustram a herança simples e múltipla de classes.

18 - C++: Funções e classes amigas

Em classes, utilizamos os termos public e protected para definir o acesso às variáveis-membro da classe. Podemos permitir que certas classes e certas funções acessem variáveis protegidas (protected) utilizando a palavra reservada friend, como ilustram os códigos abaixo: