Introdução

A linguagem de programação C foi concebida no início dos anos 1970 por Dennis M. Ritchie, um funcionário da Bell Labs (AT&T). Nos anos 1960 Ritchie trabalhou com vários outros funcionários da Bell Labs em um projeto chamado Multics. O objetivo do projeto era desenvolver um sistema operacional para um computador grande que pudesse ser usado por mil usuários. Em 1969 a Bell Labs retirou-se do projeto, porque não poderia produzir um sistema economicamente viável. Assim, os funcionários da Bell Labs tiveram que procurar outro projeto para trabalhar (principalmente Dennis e Thompson).Thompson começou a trabalhar no desenvolvimento de um novo sistema de arquivos. Ele descreveu uma versão do novo sistema para o DEC PDP-7, um computador produzido pela Digital Equipment Corporation, que custava na época 70 mil dólares, e tinha arquitetura de 18 bits, bastante poderoso para a época. Desenvolveu o sistema utilizando a linguagem assembler. Depois de algum tempo, começaram a fazer melhorias e adicionar expansões, que culminou no jogo Space Travel, bastante popular que exigia muito do processador para gerar gráficos e ilustração dos planetas.Depois do sistema completo a equipe chamou-o de UNIX (uma referência sarcástica do sistema fracassado Multics). Detalhe: o programa todo escrito em código assembly.Após alguns anos o UNIX contava com um “intérprete” para a linguagem B, linguagem criada por Martin Richards derivada do nome BCPL, Basic Combined Programming Language (Linguagem de Programação Básica Combinada). Antes da linguagem B, criar um código demandava muitas páginas, com a linguagem B o mesmo código poderia ser escrito em poucas linhas. Porém, ao programar utilizando a linguagem BCPL, ninguém conseguia representar dados, ou seja, isso incapacitava o uso de estruturas. Diante dessa necessidade Dennis M. Ritchie junto com sua equipe (em 1971-1973) transformaram a linguagem B em C, mantendo maior parte da sintaxe e adicionaram os tipos de dados, deixando a linguagem mais funcional.Na época, Dennis Ritchie viu o potencial da linguagem de programação C e junto com sua equipe reescreveram o sistema operacional UNIX em um DEC PDP-11. Mais tarde um livro sobre a linguagem de programação em C, clássico, chamado “The C Programming Language, 1st edition”. No livro se encontra o famoso programa “Hello, World”.Durante muitos anos, o livro de Dennis Ritchie (principal autor) era considerado padrão. Mas em 1983, um comitê foi formado pelo American National Standards Institute (ANSI), para desenvolver uma definição moderna para a linguagem de programação em C. Algumas modificações foram feitas, porém nada que afetasse os programas antigos. Em 1988 o comitê define a linguagem C. Posteriormente, a norma foi adotada pela International Standards Organization (ISO).

Estrutura de Controle

Uma estrutura de controle é um bloco de programação que analisa variáveis e escolhe uma direção para onde ir com base em determinados parâmetros. O termo controle de fluxo detalha a direção que o programa leva (de que maneira o controle do programa “flui”). O controle de fluxo determina como um computador responderá às condições e parâmetros.O fluxo de controle é dividido em três categorias:

Estrutura Sequencial

Como o nome sugere, essa estrutura basicamente realiza um conjunto predeterminado de instruções de comandos de cima para baixo, sequencialmente, como demonstrado na Figura 1, a seguir.

Figura 1 - Fluxograma de uma estrutura sequencial.

Figura 1 - Fluxograma de uma estrutura sequencial.

Estrutura Condicional

A estrutura condicional composta em C é uma construção fundamental que permite executar diferentes blocos de código com base em uma condição específica. A estrutura é composta principalmente pelo uso das palavras-chave if, else if e else. Veja o Fluxograma.Figura 2 - Estrutura de um fluxograma condicional

A estrutura condicional composta permite que você teste várias condições em sequência e execute o bloco de código correspondente à primeira condição verdadeira encontrada. Se nenhuma condição for verdadeira, o bloco de código após a instrução else será executado, se estiver presente.

Estruturas de Repetição

While permite a repetição de um conjunto de instruções de execução caso uma determinada expressão (condição) seja verdadeira. Quando a condição se torna falsa, a repetição termina quando a primeira instrução após a estrutura de repetição é executada. Observe que, como a condição é avaliada antes do comando ser executado, se for falsa o comando dentro da repetição não vai ser executado. Veja o Fluxograma a seguir:

Figura 3 - Estrutura de um fluxograma de repetição

É importante garantir que a condição do loop while se torne falsa em algum momento, ou o loop continuará indefinidamente, resultando em um loop infinito.