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

Aprendendo a Programar na linguagem C 1 Introdução à Programação................................................................................................................. 4 1.1 Organização básica de um computador...................

Leia mais