Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Universidade Federal Rural do Semi-Árido Versão Departamento de Ciências Exatas e Naturais 30/11/2012 Professor: Bruno Monteiro Introdução à Linguagem de Programação C Introdução Linguagens de alto nível, tais como C, C++, Java e PHP, possuem estruturas e palavras reservadas que são mais próximas da linguagem humana, facilitando a escrita e a leitura de programas. A linguagem C é uma linguagem de programação compilada, de propósito geral, estruturada, imperativa e procedural, criada em 1972, por Dennis Ritchie, no AT&T Labs, para desenvolver o sistema operacional Unix, base para o posterior Linux. Vale salientar que C ainda é uma das linguagens de programação mais populares, e tem influenciado muitas outras linguagens de programação, inclusive C++ (que originalmente começou como uma extensão para C), e Java (que possui uma sintaxe bastante semelhante a C). Atenção: embora C e C++ sejam semelhantes em alguns aspectos, elas são linguagens diferentes. A linguagem C++ tem como principal diferencial o fato de ser Orientada a Objetos 1 . Ambiente de desenvolvimento Para desenvolver um programa, na linguagem C, bastaria apenas um editor de texto e um compilador 2 da linguagem C, por exemplo, o GCC 3 . Entretanto, para auxiliar o programador, normalmente faz-se uso de ferramentas do tipo IDE (Integrated Development Environment ou Ambiente de Desenvolvimento Integrado), que reúne funcionalidades de apoio ao desenvolvimento de software com o objetivo de agilizar este processo. Exemplos de IDEs para a linguagem C: Dev-Cpp 4 , CodeBlocks 5 , Eclipse 6 . Alô Mundo Este costuma ser o nome dado ao primeiro programa desenvolvido quando se aprende uma nova linguagem de programação. Seu objetivo é simplesmente exibir na tela a frase “Alo mundo”, porém, não o subestime, este programa tem sua importância ao explicitar a estrutura básica da linguagem, ou seja, ele é a base para todos os programas da linguagem. #include <stdio.h> /* Biblioteca com funções de entrada e saída */ #include <stdlib.h> /* Biblioteca com funções de propósito geral */ int main() /* Função principal e obrigatória */ { printf("Alo Mundo"); /* Escreve na tela a mensagem “Alo Mundo” */ system("pause"); /* Evita que a janela do programa seja fechada */ return 0; /* Encerra a função main */ } Variáveis Variáveis são espaços reservados na memória principal para armazenar os dados utilizados pelos softwares. Para ilustrar: como uma “caixa” que serve para armazenar algum objeto, uma variável serve para armazenar algum dado. Identificadores Em C, um identificador (nome de uma variável ou nome de uma função) deve ser constituído apenas de letra (sem acento), dígito e sublinha, porém não se pode começar com dígito, nem pode ter mais de 31 caracteres. A linguagem C também faz distinção entre letras maiúsculas e minúsculas, por exemplo, minhaVar e MinhaVar são consideradas duas variáveis diferentes. Existem algumas palavras (palavras reservadas) que já são utilizados pela própria linguagem C, portanto, não podem ser utilizados como identificadores pelo programador. auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 1 http://pt.wikipedia.org/wiki/Orientação_a_objetos 2 Compilador é um tipo de software que traduz um arquivo escrito em uma linguagem de programação de alto nível (arquivo fonte), compreensível pelo ser humano, para a linguagem de máquina (arquivo executável), compreensível pelo computador. 3 http://pt.wikipedia.org/wiki/GCC 4 http://www.bloodshed.net/dev/devcpp.html 5 http://www.codeblocks.org 6 http://www.eclipse.org/downloads 2 Tipos de Dados Tipo Natureza Exemplos Bits Bytes Menor valor Maior valor char Caractere (tabela ASCII) „b‟ „3‟ „A‟ „%‟ 8 1 -127 127 short Inteiro -9282 50 -58 32188 16 2 -32.768 32.767 int Inteiro -9754282 50 -58 32188556 32 4 -2.147.483.648 2.147.483.647 float Real (ponto flutuante) -465476 3.14 -0.045 893963.0 32 4 -3,4 x 10 +38 3,4 x 10 +38 double Real (ponto flutuante) -465476 3.14 -0.045 893963.0 64 8 -1,7 x 10 +308 1,7 x 10 +308 Outros tipos de dados Valores lógicos: C não possui um tipo de dados para valores lógicos (verdadeiro ou falso), entretanto, considera zero como falso e qualquer valor diferente de zero como verdadeiro. Valores literais: para utilizar valores literais (string), deve-se utilizar uma cadeia de caracteres (char), exemplo: char nome[30]; void: utiliza-se esta palavra-reservada quando não é necessário especificar o tipo de dado, por exemplo, costuma ser utilizada na definição de funções que não retornam nenhum valor. Declarações de Variáveis A memória de um computador pode ser vista simplesmente como um grande agrupamento de bits que podem ser reservados para armazenar algum conteúdo. Uma variável, em programação, representa uma ou mais destes espaços endereçáveis de memória. Portanto, fique atento, em C, toda variável precisa ser declarada antes de ser usada, para que um espaço de memória seja reservado. Exemplos: int contador; float nota1, nota2, nota3, media; Atribuição Uma atribuição serve para preencher a variável (espaço na memória) com um conteúdo determinado. Não se esqueça que para poder atribuir um conteúdo a uma variável, ela já deve ter sido declarada. Exemplo: int nPlanetas; . : nPlanetas = 8; Inicialização Às vezes é desejável que uma variável assuma um certo valor logo no início do bloco de instruções. Esta inicialização pode ser feita combinando a declaração da variável com a atribuição do valor desejado. Exemplo: int nPlanetas = 8; Operadores Operadores Aritméticos Adição + Subtração - Multiplicação * Quociente da Divisão / Resto da Divisão % Operadores Relacionais Maior > Menor < Maior ou Igual >= Menor ou Igual <= Igual == Diferente != Operadores Lógicos E && OU || NÃO ! Tabela Verdade X Y X && Y X || Y !X 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 Operadores de Incremento e de Decremento Os operadores de incremento (++) e de decremento (--) são operadores unários que adicionam ou subtraem 1, respectivamente. Eles são bastante úteis em estruturas de repetição, onde normalmente uma variável de controle precisa ser incrementada ou decrementada. Forma tradicional Equivalente utilizando ++ e -- cont = cont + 1; cont++; cont = cont - 1; cont--; 3 Funções Função em C é o nome genérico dado a procedimentos, ou rotinas em outras linguagens de programação. Pode-se definir uma função como um conjunto de operações que executam uma tarefa específica, composta por um conjunto de instruções. Portanto, ao criar uma função, evita-se que um conjunto de instruções apareça mais de uma vez num programa, pois ela precisa ser definida apenas uma vez, mas pode ser utilizada várias vezes. Para criar uma função, deve-se obedecer a seguinte estrutura: tipo de retorno nome da função ( declaração de argumentos ) { bloco de instruções } Exemplo sem utilizar função Exemplo de função com retorno Exemplo defunção sem retorno #include <stdio.h> int main() { int r; r = 3 + 5; printf("Resultado=%d", r); return 0; } #include <stdio.h> int soma(int n1, int n2) { int valor; valor = n1+n2; return valor; } int main() { int r; r = soma(3 , 5); printf("Resultado=%d", r); return 0; } #include <stdio.h> void soma(int n1, int n2) { int valor; valor = n1+n2; printf("Resultado=%d", valor); } int main() { soma(3 , 5); return 0; } Em todos os exemplos, será exibido na tela Resultado=8 Atenção: observe que a função main é obrigatória em todo programa C, pois é a primeira função chamada pelo Sistema Operacional. Escopo das variáveis Exemplo Variável Local: uma variável declarada dentro de uma função possui escopo local, ou seja, é visível apenas dentro da função que a criou. Por exemplo, as variáveis varArgum e varLocal só podem ser utilizadas dentro da função minhaFuncao. Variável Global: quando uma variável é declarada fora de uma função (no início do código-fonte) ela é dita global, ou seja, ela se torna visível para todas as funções do programa. Por exemplo, a variável varGlobal pode ser utilizada tanto pela função minhaFuncao quanto pela função main. #include <stdio.h> int varGlobal = 5; void minhaFuncao(int varArgum) { int varLocal = 20; printf("varGlobal=%d \n", varGlobal); printf("varLocal=%d \n", varLocal); printf("varArgum=%d \n", varArgum); } int main() { minhaFuncao(40); return 0; } O que será exibido na tela? varGlobal=5 varLocal=20 varArgum=40 4 Códigos de formatação Estes códigos são utilizados nas funções de entrada (scanf) e saída (printf) para informar o tipo da variável que está sendo tratada: %c Caracteres simples %d Inteiros decimais %f Ponto flutuante (Notação tradicional) 0.00316 %e Ponto flutuante (Notação cientifica) 3.16e-3 %s Cadeia de caracteres Função de Entrada scanf Funcionamento: os valores informados pelo usuário, através dos dispositivos de entrada (normalmente o teclado), serão atribuídos a variável utilizada na função scanf. Para utilizar a função scanf, deve-se obedecer a seguinte estrutura: scanf( “código de formatação”, &nome da variável ); Exemplo: scanf("%d", &numero); Função de Saída printf Funcionamento: os valores informados na função escreva serão exibidos para o usuário, através dos dispositivos de saída (normalmente o monitor). Exemplos: printf(“Bom dia prezado estudante!”); printf(“Sua media foi %f”, media); Exibirá na tela Sua media foi 7.500000 printf(“Sua media foi %.2f”, media); Exibirá na tela Sua media foi 7.50 Códigos especiais: \n produz uma linha em branco no meio de saída. \t produz uma tabulação horizontal no meio de saída. \a produz um sinal sonoro. 5 Estruturas Condicionais Também conhecidas como Estruturas de Decisão, permitem que uma instrução, ou bloco de instruções, sejam ou não executadas, dependendo de determinadas condições, representadas por expressões lógicas ou relacionais. Em outras palavras, oferecem os meios de escolher entre dois ou mais caminhos de execução em um programa. if Estrutura Fluxograma Exemplo if(condição) { instruções executadas quando a condição for verdadeira } else { instruções executadas quando a condição for falsa } #include <stdio.h> int main() { int numero; printf("Digite um numero: \n"); scanf("%d", &numero); if(numero % 2 == 0) { printf("PAR"); } else { printf("IMPAR"); } return 0; } switch case Estrutura Fluxograma Exemplo switch(variavel) { case valor1 : instruções executadas quando o conteúdo da variável for valor1 case valor2 : instruções executadas quando o conteúdo da variável for valor2 case valor3 : instruções executadas quando o conteúdo da variável for valor3 default : instruções executadas quando não há valor previsto } ATENÇÃO: observe que a instrução break evita que o fluxo de um case “vaze” para o case de baixo. #include <stdio.h> int main() { int numero; printf("Digite um numero: \n"); scanf("%d", &numero); switch(numero) { case 2 : printf("dois"); break; case 3 : printf("tres"); break; case 4 : printf("quatro"); break; default: printf("invalido"); break; } return 0; } 6 Estruturas de Repetição Estas estruturas permitem que alguns trechos do código sejam repetidos enquanto uma condição for satisfeita. while Estrutura Fluxograma Exemplo while( condição ) { instruções executadas enquanto a condição for verdadeira } Observe que o teste da condição é feito no início. #include <stdio.h> int main() { int numero; int cont = 0; printf("Digite um numero: \n"); scanf("%d", &numero); while( cont <= numero ) { printf(" %d ", cont); cont++; } return 0; } do while Estrutura Fluxograma Exemplo do { instruções executadas uma primeira vez e enquanto a condição for verdadeira } while( condição ); Observe que o teste da condição é feito no final. #include <stdio.h> int main() { int numero; int cont = 0; printf("Digite um numero: \n"); scanf("%d", &numero); do { printf(" %d ", cont); cont++; } while( cont <= numero ); return 0; } for Estrutura Fluxograma Exemplo for(inicialização; condição; incremento) { instruções executadas enquanto a condição for verdadeira } #include <stdio.h> int main() { int numero, cont; printf("Digite um numero: \n"); scanf("%d", &numero); for(cont=0; cont <= numero; cont++) { printf(" %d ", cont); } return 0; }
Compartilhar