Programação Competitiva

Algoritmo resolvidos e explicados da OBI e Maratona de Programação

  • Clipping de notícias
  • Dicas
    • Atribuição para várias variáveis com o mesmo valor
    • Entrada de vários conjuntos de teste até zeros [linguagem C]
    • Muitas saídas para serem mostradas
    • Saída com testes sequenciais [linguagem C]
    • Otimizações para o código
      • Melhorando o desempenho da entrada e saída [C++]
  • Solução Computacional x Matemática
    • Importância de pensar os elementos de uma estrutura for
  • Sobre competições de programação
    • Sobre a maratona de programação
    • Sobre a OBI
    • Links para materiais da maratona
    • Links para materiais da OBI
      • Material introdutório para crianças
        • 1. Bem vindo ao maravilhoso mundo da programação
        • Aprendendo lógica com o Angry Birds
        • Blockly

Atribuição para várias variáveis com o mesmo valor

Muitas vezes é necessário iniciar várias variáveis com um mesmo valor e acabamos fazendo isso várias vezes. Abaixo trago códigos equivalentes em C e Python para ilustrar essa questão.

//código em linguagem C
int main() {
    int x, y;
    
    x = 10;
    y = 10;
    
    printf("%d %d", x, y);

    return 0;
}
#código em linguagem Python
x = 10;
y = 10;
print(x, y)

Logicamente, no código em C eu poderia alterar as linhas de 3 até a 6 para int x = 10, y = 10; e simplificar um pouco a escrita (não fiz isso para deixar o código em C e em Python parecidos).

A dica que trago nesse post é que posso fazer a atribuição de um valor para várias variáveis na mesma instrução. Basta encadear as variáveis utilizando o símbolo de atribuição, conforme ilustrado nos códigos abaixo (que terão resultado equivalentes dos códigos mostrados anteriormente).

int main() {
    int x, y;

    x = y = 10;

    printf("%d %d", x, y);

    return 0;
}

#código em linguagem Python
x = y = 10;
print(x, y)

Nessa forma de atribuição, a variável y recebe o valor 10 e depois a variável x recebe o valor de y (que possui o valor 10). Com isso, ao final do código, ambas as variáveis terão o valor 10.

Embora não represente uma grande simplificação na escrita, o código ganho um pouco de legibilidade com essa forma de atribuição.

  • Sobre o blog

    Nesse blog estão reunidas explicações preparatórias para a Olimpíada Brasileira de Informática (OBI) e a Maratona de Programação.

    São trazidos problemas e resoluções comentadas.
  • Compartilhe

    Share
  • Categorias

    • Competição (32)
      • Maratona de Programação (11)
      • OBI (21)
    • Linguagem (31)
      • C/C++ (30)
      • Python (8)
Proudly powered by WordPress Theme: Parament by Automattic.