Linguagem C

Uma parte do curso de Algoritmos e Técnicas de Programação trata de pragramação em Linguagem C, que trata dos seguintes tópicos.

    1. Ambiente de programação

    2. Programa completo

    3. Sintaxe da linguagem (constantes, variáveis, operadores, expressões)

    4. Estruturas de decisão (if, if..else, switch..case)

    5. Estruturas de repetição (for, while, do..while)

    6. Funções (parâmetros por valor e por referência)

    7. Vetores unidimensionais (vetores) e bidimensionais (matrizes)

    8. Tratamento de arquivos

Os cinco primeiros itens da lista foram trabalhados pelo Prof. Hidelberg, que disponibilizou o seguinte material didático.

Apresentamos a seguir material didático referente aos três últimos itens da lista.

Funções

Uma função é um bloco de código que pode ser usado diversas vezes em um programa. O uso de funções deixa o código mais legível e estruturado. Além disso, facilita a implementação de uma solução computacional, uma vez que permite subdividir um problema em problemas menores que podem ser tratados individualmente. Outra vantagem de seu uso é evitar redundância de código. Digamos que você tenha um bloco de código que se repete diversas vezes ao longo do programa. Sem funções você teria de copiar e colar o bloco diversas vezes. Caso você precise alterar algo neste bloco, precisa lembrar de alterar em todas as ocorrência, ou poderá incorrer em erros. A seguir apresentamos a sintaxe para declaração de uma função.

<tipo de retorno> <identificador>(<parâmetros>){

<corpo da função>

}

Para que você entenda melhor como utilizar, vamos apresentar um exemplo.

void imprimeMenu(){

printf("==== Calculadora ====\n");

printf("1 - Soma\n");

printf("2 - Subtração\n");

printf("3 - Multiplicação\n");

printf("4 - Divisão\n");

printf("5 - Sair\n");

printf("Opção: ");

}

Neste exemplo, declaramos a função imprimeMenu. Ela não tem parâmetros. Observe que abre e fecha parênteses sem declarar nada entre eles. A função tem como retorno void. Isso significa que não há retorno. Em seu corpo há um bloco que é composto por uma sequência de chamadas a função printf. Inicialmente imprime um título para contextualizar o usuário. Em seguida apresenta um menu com as opções disponíveis para o usuário e, por fim, indica para o usuário que está esperando por uma das opções. Para executar a função, invocar ou chamar a função são termos que utilizaremos comumente para indicar isso, basta que na função main, ou em qualquer outra você escreva.

imprimeMenu();

int opcao;

scanf("%d", &opcao);

A linha é composta apenas pelo identificador da função, um abre e fecha parênteses e um ponto-e-vírgula. Observe que invocamos desta maneira porque não há parâmetros ou retorno. Observe que, logo depois de invocar a função, temos uma entrada, que fará a leitura da opção desejada pelo usuário.

Podemos criar uma segunda implementação, onde a função agora imprime o menu e lê a opção desejada.

int imprimeMenuELeOpcao(){

int opcao;

printf("==== Calculadora ====\n");

printf("1 - Soma\n");

printf("2 - Subtração\n");

printf("3 - Multiplicação\n");

printf("4 - Divisão\n");

printf("5 - Sair\n");

printf("Opção: ");

scanf("%d", &opcao);

return opcao;

}

Observe que agora tivemos de declarar uma variável, realizar uma leitura e utilizar a instrução return para fazer com que a funções fosse concluída retornando um valor. Sempre que o retorno de uma função não for void, precisamos concluir a função com um return. Agora, no main faríamos o seguinte.

int opcao;

opcao = imprimeMenuELeOpcao;

Por fim, observemos esta terceira função.

int soma(int x, int y){

return x + y;

}

Vejam que agora temos dois parâmetros inteiros e um retorno também inteiro. Através dos parâmetros da função é possível passar valores para ela. De forma que, a cada execução da função, ela possa realizar suas operações utilizando valores distintos. Através do retorno a função passa um valor para quem a invocou. A seguir, apresentamos um exemplo de código onde a função é invocada.

int x, y;

Vetores e Strings

Tratamento de arquivos