• Nenhum resultado encontrado

Introdução da Linguagem C

N/A
N/A
Protected

Academic year: 2021

Share "Introdução da Linguagem C"

Copied!
8
0
0

Texto

(1)

Valdir Gil Pillat

1 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.

(2)

Valdir Gil Pillat

2 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;

(3)

Valdir Gil Pillat

3 Tipos de variáveis

Tipo Faixa de valores Tamanho(aproximado)

char -128 a 127 8 bits

unsigned char 0 a 255 8 bits

int -32.768 a 32767 16 bits

unsigned int 0 a 65.535 16 bits

short int -32.768 a 32767 16 bits

long -2.147.483.648 a 2.147.483.647 32 bits unsigned long 0 a 4.294.967.295 32 bits float 3.4 x 10-38 a 3.4 x 1038 32 bits

double 1.7 x 10-308 a 1.7 x 10308 64 bits

long double 3.4 x 10-4932 a 1.1 x 104932 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 Comentário

&& x>5 && x<10 E

|| x>5 || x<10 Ou

(4)

Valdir Gil Pillat

4 Aritméticos

Operador Exemplo Comentário

= x = y 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.

+

- x+y x-y Soma o conteúdo de x e y Subtrai o conteúdo de x e y.

* x*y Multiplica o conteúdo de x pelo conteúdo de y / x/y Obtém o quociente da divisão de x por y.

% x%y Obtém o resto da divisão de x por y. (só pode ser utilizado com parâmetros do tipo inteiro.

+= x+=y Equivale a x=x+y

-= x-=y Equivale a x=x-y

*= x*=y Equivale a x=x*y

/= x/=y Equivale a x=x/y

%= x%=y Equivale a x=x%y

++ x++ Equivale a x=x+1

++ y=++x Equivale a x=x+1 e depois y=x ++ y=x++ Equivale a y=x e depois x=x+1

-- x-- Equivale a x=x-1

-- y=--x Equivale a x=x-1 e depois y=x -- y=x-- Equivale a y=x e depois x=x-1 Funções matemáticas

Função Exemplo Comentário

abs abs(x) Obtém o valor absoluto de x.

ceil ceil(x) Arredonda um número real para cima. Por exemplo, ceil(3.2) é 4.

cos cos(x) Calcula o cosseno de x (x de estar representado em radiano).

exp exp(x) Obtém o logaritmo natural e elevado à potência X.

floor floor(x) Arredonda um número real para baixo. Por exemplo, floor(3.2) é 3.

log log(x) Obtém o logaritmo natural de x. log10 log10(x) Obtém o logaritmo de base 10 de x. M_PI M_PI Retorna o valor de π

modf z=modf(x,&y) 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.

pow pow(x,y) Calcula a potência de x elevado y.

sin sin(x) Calcula o seno de x (x de estar representado em radiano).

sqrt sqrt(x) Calcula a raiz quadrada de x.

tan tan(x) Calcula a tangente de x (x de estar representado em radiano).

(5)

Valdir Gil Pillat

5 Relacionais

Operador Exemplo Comentário

== x==y O conteúdo de x é igual ao conteúdo de y. != x!=y O conteúdo de x é diferente ao conteúdo de y. <= x<=y O conteúdo de x é menor ou igual ao conteúdo de y. >= x>=y O conteúdo de x é maior ou igual ao conteúdo de y. < x<y O conteúdo de x é menor que o conteúdo de y. > x>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)

(6)

Valdir Gil Pillat 6 { 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:

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

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.

(7)

Valdir Gil Pillat

7 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

(8)

Valdir Gil Pillat

8 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. Disponível em: http://www.acm.uiuc.edu/webmonkeys/book/c_guide/ Acessado 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

Referências

Documentos relacionados

a) Comprovar a Conclusão do Ensino Fundamental ou Estudos Equivalentes;.. b) Ser classificado no Processo Seletivo PROEJA 2013; c) Ter, no mínimo, 18 anos de idade no ato

• Desenvolver estudos com o objetivo de desagregar os índices de confiabilidade preventiva de geração, de transmissão e composta, para indicar o grau de adequação de cada um

Entre 2022 e 2025 o impacto desfavorável do saldo primário inverte-se, contribuindo para o decréscimo do rácio (em -0,6 p.p. em média) continua a refletir a referida

Métodos de ionização.. Aplicaçôes MALDI-TOF Peptídeos Medidas de massa Confirmar síntese Sequenciamento Sequenciamento químico e enzimático MS/MS Análise Proteômica Utilizar

Mesmo os autistas com síndrome de Asperger demonstram certo corte nesse laço com o Outro, apesar de terem recursos mais elaborados promovidos pelo Outro de síntese aberto, de acordo

Sabendo que a utilização de um planejamento para um local é uma ferramenta de desenvolvimento estratégico, buscou-se uma base para a criação de uma proposta de

A Companhia apurou prejuízo no período de nove meses o montante de R$ 96.563, aumentando o prejuízo acumulado para R$ 845.724, patrimônio líquido (passivo a descoberto) no montante

A metodologia compreende a descrição dos métodos e procedimentos utilizados para levantamento das informações necessárias para compreender o problema ou a oportunidade ou o estágio