Lab C++

Codificação Eficiente

Não basta conhecer a sintaxe, é preciso conhecer a linguagem, saber a melhor forma de fazer.

Categoria: Esclarecendo Dúvidas

Trocar Valor de Variáveis

Esse exercício é muito interessante, apesar de ser pouco usual, pessoalmente nunca vi um caso em que isso realmente necessário.

A proposta do exercício é trocar o valor de duas variáveis int, ou derivadas, sem utilizar uma terceira variável. Como a maioria dos exercícios mal elaborados existe a forma esperada e a forma inesperada, mas que entrega o mesmo resultado.

(mais…)

Trocar Dígitos de Um Número

Já vi essa questão em uma entrevista de emprego. E confesso que pra desapontamento do entrevistador eu resolvi primeiro do jeito que ele não esperava e depois do jeito que ele esperava. A questão é a seguinte: Dado um número natural troque todas as ocorrências de um dado dígito, por um outra dado dígito. Ou seja, dado o int 1234138, troque os dígitos 3 por dígitos 5, resultando no int 1254158. Uma função assim:

int replace(int original, int from, int to);
(mais…)

Variáveis Globais em Múltiplas Instâncias do Programa

Mais um que veio do Reddit. Um usuário fez uma pergunta sobre a influência em variáveis globais e estáticas entre múltiplas instâncias. Considerando a forma com que a instanciação de programas funciona na grande maioria dos sistemas operacionais, não há nenhum tipo de possibilidade de haver influência entre as variáveis de cada instância.

Vamos fazer dois programas pra comprovar essa afirmação:

(mais…)

Combinatória Recursiva em C

Recentemente encontrei um usuário no Reddit pedindo pra resolver uma questão sobre análise combinatória em C utilizando recursão. O exercício pedia que fosse feito um programa em C que exibisse no terminal todas as combinações possíveis de três caracteres, utilizando as letras a, b e c.

É um exercício clássico de recursividade, mas é muito bom pra ir além de calcular o fatorial.

(mais…)

Solução: Imprimir o Meio da String

Há alguns meses apareceu na lista cppbrasil uma dúvida, como retornar o(s) caracteres do meio de uma string. Por exemplo:

  • AMARELO -> R
  • VERMELHO -> ME
  • AZUL -> ZU
  • VERDE -> R
(mais…)

Solução: Abertura e Fechamento de Parênteses

Hoje uma nova seção no Lab C++. As sextas-feiras serão reservadas para solução de exercícios e problemas encontrados em provas, cursos técnicos, superior, concursos, entrevistas de emprego, etc. Esta seção é voltada para tirar dúvidas dos leitores, portanto envie suas dúvidas, suas sugestões. Todas vão entrar na fila, serão resolvidas e publicadas na sequência.

A solução de hoje um problema ao qual fui submetido recentemente. Um avaliador pediu pra eu fazer um programa que validasse a abertura e fechamento de parênteses, colchetes e chaves.

(mais…)

Calculadora RPN em C

Recentemente orientei um participante da lista ccppbrasil com um exercício que ele estava tentando fazer. E dentre as soluções que eu sugeri tinha a opção dele criar uma calculadora RPN utilizando C. Pra quem não sabe como funciona uma calculadora RPN (Notação Polonesa Reversa), pode dar uma olhada neste link.

Na verdade o rapaz queria fazer parse de álgebra direta, eu orientei fazer uma RPN com uma pilha de 2 variáveis, x e y. E agora eu desenvolvi a solução e decidi disponibilizar. Vamos a primeira opção:

(mais…)