Introdução da Linguagem C Valdir Gil Pillat 1 1. Introdução a
Transcrição
Introdução da Linguagem C Valdir Gil Pillat 1 1. Introdução a
Introdução da Linguagem C 1. Introdução a Linguagem C 1.1 História Entre 1969 e 1973, Dennis Ritchie inventou a linguagem C e foi o primeiro a implementá-la usando um computador DEC PDP-11, que utilizava o sistema operacional Unix. Essa linguagem é resultante de um processo evolutivo de linguagens. O marco inicial foi uma linguagem chamada BCPL, desenvolvida por Martin Richards, que teve forte influência em uma linguagem denominada B, inventada por Ken Thompson. Na década de 1970, B levou ao desenvolvimento de C. Em 1973, a linguagem C tinha se tornado suficientemente poderosa para que grande parte do núcleo do Unix, originalmente escrito na linguagem de programação PDP-11/20 Assembly, fosse reescrito em C. Durante alguns anos, o padrão da linguagem C foi aquele fornecido com a versão 5 do sistema operacional Unix. Em 1978, Ritchie e Kernighan publicaram a primeira edição do livro The C Programming Language. Esse livro conhecido pelos programadores de C como "K&R", serviu durante muitos anos como uma especificação informal da linguagem. Devido a popularização dos microcomputadores, várias implementações de C foram criadas, gerando, assim, muitas discrepâncias. Para resolver tal situação, o " American National Standards Institute" - ANSI estabeleceu, em 1983, um comitê para definir um padrão que guiasse todas as implementações da linguagem C. Esta versão da linguagem é referenciada como C ANSI. Em 1990, o padrão C ANSI, após sofrer modificações menores, foi adotado pela Organização Internacional de Padrões (ISO) como ISO/IEC 9899:1990. Um dos objetivos do processo de padronização C ANSI foi o de produzir um sobreconjunto do C K&R, incorporando muitas das características não oficiais subsequentemente introduzidas. Entretanto, muitos programas tinham sido escritos e que não compilavam em certas plataformas, ou com um certo compilador, devido ao uso de bibliotecas de funções não padrão e ao fato de alguns compiladores não aderirem ao C ANSI. A linguagem C++ é uma extensão da linguagem C. As instruções que fazem parte desta última representam um subconjunto da primeira. Os incrementos encontrados na linguagem C++ foram feitos para dar suporte à programação orientada a objetos. A sintaxe desta linguagem é basicamente a mesma da linguagem C. Valdir Gil Pillat 1 Introdução da Linguagem C 1.2 Conceitos básicos O objetivo desta seção é instruir o leitor na compreensão das principais estruturas, comandos e funções da linguagem C. Um programa em C tem a seguinte estrutura: //Inclusão das bibliotecas //Declaração de variáveis globais - opcional //Declaração de funções - opcional int main() //estrutura principal do programa dentro das suas chaves são chamadas todas as funções e variáveis utilizada no programa. { //declaração de variáveis //código } Outros conceitos interessantes { - indica início de um bloco de nível } – indica fim de um bloco de nível // - comentar uma linha /* - início do comentário de múltiplas linhas */ - final do comentário de múltiplas linhas ; - necessário no final de toda linha que represente: instrução, atribuição e declaração. Bibliotecas mais utilizadas stdio.h – contem os comandos básicos de entrada e saída do programa stdlib.h – contem os comandos básicos da linguagem C conio.h – geralmente é utilizada em programas básicos para utilizar a função “getch();” utilizado para colocar o programa em modo de espera da próxima ação do usuário, muito útil para visualizar os resultados de um programa. math.h – contem os comandos matemáticos mais avançados, por exemplo, cálculo de potências, pow(número, potência). Para inserir uma biblioteca no código C, basta inserir a seguinte linha: #include <nomebiblioteca.h> Por exemplo: #include <stdio.h> #include <conio.h> Declaração dos principais tipos de variáveis int – para variáveis numéricas (números inteiros). Ex.: int a,b,c; float – para variáveis numéricas (números flutuantes, ou seja, com casas decimais). Ex.: float a,b,c; double – para variáveis numéricas (números flutuantes, ou seja, com casas decimais), com uma precisão maior que o float. Ex.: double a,b,c; char – para variáveis do tipo caractere. Ex.: char nome; Valdir Gil Pillat 2 Introdução da Linguagem C Tipos de variáveis Tipo Faixa de valores char -128 a 127 unsigned char 0 a 255 int -32.768 a 32767 unsigned int 0 a 65.535 short int -32.768 a 32767 long -2.147.483.648 a 2.147.483.647 unsigned long 0 a 4.294.967.295 float 3.4 x 10-38 a 3.4 x 1038 double 1.7 x 10-308 a 1.7 x 10308 long double 3.4 x 10-4932 a 1.1 x 104932 Tamanho(aproximado) 8 bits 8 bits 16 bits 16 bits 16 bits 32 bits 32 bits 32 bits 64 bits 80 bits Comandos de entrada O comando de entrada é utilizado para receber dados digitados pelo usuário. Os dados recebidos são armazenados em variáveis. Os comandos de entrada mais utilizados na linguagem C são gets e scanf. Exemplo gets(a); scanf(“%t”, &a); Nota: este comando busca o endereço da variável por isto é necessário inserir o símbolo “&”. Obs.: para os comandos de entrada e saída são utilizadas as variáveis %t, sendo que "t" pode ser: inteiro: %d ou %i float: %f ou limitando o número de casas decimais %.2f double: %d char: %c ou %s para uma cadeia de caracteres Comandos de saída O comando de saída é utilizado para mostrar dados na tela ou na impressora. Os comando de saída mais utilizado é o printf. Exemplo printf(“Texto para o usuário %t”, a); Comandos utilizados na saída. \t - insere uma tabulação \n - insere uma quebra de linha Operadores e funções predefinidas em C Lógico Operador Exemplo && x>5 && x<10 || x>5 || x<10 ! !(x>5 || x<10) Comentário E Ou Não (negação) Valdir Gil Pillat 3 Introdução da Linguagem C Aritméticos Operador Exemplo = x=y + * / % x+y x-y x*y x/y x%y += -= *= /= %= ++ ++ ++ ---- x+=y x-=y x*=y x/=y x%=y x++ y=++x y=x++ x-y=--x y=x-- Comentário O conteúdo da variável y é atribuído à variável x. (Poder ser atribuído a uma variável o conteúdo de outra variável, uma constate, ou ainda o resultado de uma função. Soma o conteúdo de x e y Subtrai o conteúdo de x e y. Multiplica o conteúdo de x pelo conteúdo de y Obtém o quociente da divisão de x por y. Obtém o resto da divisão de x por y. (só pode ser utilizado com parâmetros do tipo inteiro. Equivale a x=x+y Equivale a x=x-y Equivale a x=x*y Equivale a x=x/y Equivale a x=x%y Equivale a x=x+1 Equivale a x=x+1 e depois y=x Equivale a y=x e depois x=x+1 Equivale a x=x-1 Equivale a x=x-1 e depois y=x Equivale a y=x e depois x=x-1 Funções matemáticas Função Exemplo abs abs(x) ceil ceil(x) cos cos(x) exp exp(x) floor floor(x) log log10 M_PI modf log(x) log10(x) M_PI z=modf(x,&y) pow sin pow(x,y) sin(x) sqrt tan sqrt(x) tan(x) Comentário Obtém o valor absoluto de x. Arredonda um número real para cima. Por exemplo, ceil(3.2) é 4. Calcula o cosseno de x (x de estar representado em radiano). Obtém o logaritmo natural e elevado à potência X. Arredonda um número real para baixo. Por exemplo, floor(3.2) é 3. Obtém o logaritmo natural de x. Obtém o logaritmo de base 10 de x. Retorna o valor de π Decompões o número armazenado em x em duas partes: y recebe a parte fracionária e z, a parte inteira do número. Calcula a potência de x elevado y. Calcula o seno de x (x de estar representado em radiano). Calcula a raiz quadrada de x. Calcula a tangente de x (x de estar representado em radiano). Valdir Gil Pillat 4 Introdução da Linguagem C Relacionais Operador Exemplo == x==y != x!=y <= x<=y >= x>=y < x<y > x>y Comentário O conteúdo de x é igual ao conteúdo de y. O conteúdo de x é diferente ao conteúdo de y. O conteúdo de x é menor ou igual ao conteúdo de y. O conteúdo de x é maior ou igual ao conteúdo de y. O conteúdo de x é menor que o conteúdo de y. O conteúdo de x é maior que o conteúdo de y. Estrutura condicional (seleção ou decisão) As estruturas condicionais são utilizadas quando existe a necessidade de verificar condições para a realização de uma instrução ou de uma sequência de instruções. Essas estruturas podem ser simples ou composta para transformar o exemplo abaixo em uma estrutura condicional simples remova a instrução else. if (nota<5) { printf(“Aluno Reprovado”); } else { printf(“Aluno Aprovado”); } Estruturas de repetição Uma estrutura de repetição é utilizada quando um trecho do algoritmo ou até mesmo o algoritmo inteiro precisa ser repetido. O número de repetições pode ser fixo ou estar atrelado a uma condição. Assim, existem estruturas para tais situações, descritas a seguir. for(i=0;i<=100;i=i+1) { printf(“Mostre o numero %d”, i); } do { if (n>m) { m=n; } }while(n!=0); while(n!=0) { if (n>m) Valdir Gil Pillat 5 Introdução da Linguagem C { m=n; } } 1.1 Trabalhando com vetores e matrizes Vetor também é conhecido como variável composta homogênea unidimensional. Isto quer dizer que se trata de um conjunto de variáveis de mesmo tipo, que possuem o mesmo identificador (nome) e são alocadas sequencialmente na memória. Como as variáveis têm o mesmo nome, o que as distingue é um índice que referencia sua localização. Matriz é uma variável composta homogênea multidimensional. Ela é formada por uma sequência de variáveis, todas do mesmo tipo, com o mesmo identificador (mesmo nome), e alocadas sequencialmente na memória. Uma vez que as variáveis têm o mesmo nome, o que as distingue são índices que referenciam sua localização dentro da estrutura. Uma variável do tipo matriz precisa de um índice para cada uma de suas dimensões. A utilização de vetores ou matrizes na linguagem C pode seguir estes passos: Declaração Neste exemplo é declarado um vetor com 10 posições: int vetorexemplo[9]; Obs.: Os vetores na linguagem C começam a contar do zero. Para declarar uma matriz de bidimensional com 4 linhas e 4 colunas: int matrizexemplo[3][3]; Atualizando valores de vetores/matrizes por atribuição vetorexemplo[0]=10; // atribui o valor 10 para a posição 0 do vetor vetorexemplo[1]=2; // atribui o valor 2 para a posição 1 do vetor Valores do vetorexemplo: 10,2,0,0,0,0,0,0,0,0. matrizexemplo[0][0]=1; // atribui o valor 1 para a linha 0 e coluna 0 da matriz matrizexemplo[1][1]=1; // atribui o valor 1 para a linha 1 e coluna 1 da matriz matrizexemplo[2][2]=1; // atribui o valor 1 para a linha 2 e coluna 2 da matriz matrizexemplo[3][3]=1; // atribui o valor 1 para a linha 3 e coluna 3 da matriz Valores da matrizexemplo: 1000 0100 0010 0001 Atualizando valores de vetores/matrizes utilizando o scanf scanf(“%d”,vetorexemplo[0]); //guarda valor digitado na posição 0 do vetor scanf(“%d”,matrizexemplo[0][0]); //guarda valor digitado na linha 0 e coluna 0 da matriz. Valdir Gil Pillat 6 Introdução da Linguagem C Obs.: Para mostrar os valores de vetores/matrizes na tela pode ser utilizado o comando printf. Por exemplo: Mostrando valores de vetores/matrizes utilizando printf printf(“O valor do vetor na posição %d eh %d”, i, vetorexemplo[i]); printf(“O valor da matriz na linha %d e coluna %d eh %d”, i, j, matrizexemplo[i][j]); Comandos para trabalhar com textos em C Na linguagem C para trabalhar com textos (strings) é necessário trabalhar com vetores de caracteres, como no exemplo a seguir: Declaração char letra; //permite armazenar um caractere char nome[20]; //permite armazenar um texto com até 20 caracteres char listanome[10][20]; //permite armazenar um vetor de 10 textos com até 20 caracteres cada. Atribuição letra = ‘a’ strcpy(nome,“Apostila C”); strcpy(listanome[0],“Primeiro Nome”); Comando de entrada scanf(“%c”, &letra); scanf(“%s”, &nome); scanf(“%s”, &listanome[0]); Comando de saída printf(“A letra digitada eh %c”, letra); printf(“O nome inserido eh %s”, nome); printf(“O nome na posição zero da lista eh %s”, listanome[0]); Comandos para manipular textos Para utilizar os comandos abaixo deve ser inserido a biblioteca “string.h”. Com o seguinte comando: #include <string.h> strcmp(texto1,texto2); //compara texto1 e texto 2, caso eles sejam iguais retorna o valor zero. strcat(texto1,texto2); //concatena o texto1 com o texto 2 strcpy(texto1,texto2);//copia texto2 para texto1. strlen(texto);//retorna o número de caracteres da variável texto *x=strtok(texto,”token”); //cria uma lista de palavras separadas pelo token. Conversão de texto em número (necessita da biblioteca stdlib.h) x=atoi(texto); //converte texto em inteiro x=atof(texto); //converte texto em float x=atol(texto); //converte texto em long Valdir Gil Pillat 7 Introdução da Linguagem C Bibliografia Ascencio, Ana Fernanda Gomes; de Campos, Edilene Aparecida Veneruchi. Fundamentos da programação de computadores: Algoritmos, Pascal, C/C++, e Java, 2 ed., Pearson, 2007 Barros, A.M.S. ANSI C para quem tem pressa. 2003. Disponível em: http://www.dei.isep.ipp.pt/~abarros/docs/ANSI_C.pdf Acessado em: 06/08/2012. Huss, E. The C Library Reference Guide, 1997. http://www.acm.uiuc.edu/webmonkeys/book/c_guide/ Disponível Acessado em: em: 06/08/2012. Puga, S.; Rissetti, G. Lógica de programação e estruturas de dados com aplicações em Java, 2 ed, Pearson, 2009. cplusplus.com Disponível em: http://www.cplusplus.com/reference/ Acessado em: 10/02/2014 Valdir Gil Pillat 8
Documentos relacionados
Aprendendo a Programar na linguagem C
1 Introdução à Programação................................................................................................................. 4 1.1 Organização básica de um computador...................
Leia mais