Buscar

Introdução_a_linguagem_C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução à Linguagem C
1. Tipos de Dados em C
Na maioria das linguagens de programação, é necessário definir o tipo de valor que será armazenado
em cada espaço de memória. Isto é feito por meio de declarações das variáveis antes do seu uso.
O número de bytes tamanho necessário em cada caso depende da linguagem de programação e da
máquina.
A tabela 1 apresenta os tipos de dados que podem ser utilizados em C, o tamanho que ocupam na
memória, em bytes, e os intervalos de validade, ou seja, intervalo de valores que as variáveis podem
assumir.
Tipo Tamanho mais
comum( bytes)
Faixa de Valores
char 1 Letras e símbolos da Tabela ASCII : 'a', 'b', '*', etc.
int 2 ou 4 -32.768 a 32.767 ou -2.147.483.648 a 2.147.483.647
unsigned int 2 ou 4 0 a 65.535 ou 0 a 4.294.967.295
short 2 -32.768 a 32.767
Unsigned short 2 0 a 65.535
long int 4 -2.147.483.648 a 2.147.483.647
Unsigned long 4 0 a 4.294.967.295
float 4 1.2x10-38 a 3.4x1038(6 casas decimais de precisão)
double 8 2.3x10-308 a 1.7x10308(15 casas decimais de precisão)
long double 10 3.4x10-4932 a 1.1x10 4932 (19 casas decimais de precisão)
void Nenhum Nenhum
Obs: void é um tipo que serve para indicar que um resultado não tem um tipo definido. Uma das
aplicações deste tipo em C é criar um tipo vazio que pode posteriormente ser modificado para um dos
tipos anteriores. O tipo void declara explicitamente uma função que não retorna valor algum ou criar
ponteiros genéricos, como será visto mais adiante no curso.
Exemplos de declarações de variáveis em C:
int A, B, C;
float R, T;
long int L;
double x, y, z;
2. Operadores em C
2.1 Atribuição
A atribuição ( ← )em C é feita por meio do operador =
Ex: A = 15; // a variável A recebe o valor inteiro constante 15.
Em C pode-se fazer atribuição múltipla. Por ex: x = y = z = 0;
2.2 Aritméticos
Operação Símbolo Exemplo
Soma + A + B
Subtração - A - B
Multiplicação * A * B
Divisão / A / B
Resto da
divisão
inteira
(modulo)
% A % B
Negação - -A
Observações:
a) Na divisão (A/B), se ambos os operandos forem inteiros, o resultado será inteiro – divisão inteira.
Caso contrário, ou seja, se um dos operandos forem reais, o resultado será real.
b) Ao calcular A % B, que é o resto da divisão inteira de A por B, os operandos A e B devem ser
números inteiros.
c) O operador unário - A, conhecido como negação, inverte o sinal de A.
2.3 Aritméticos de Atribuição
Em C pode-se combinar os operadores aritméticos ( +, - , *, /, %) com o operador de atribuição:
m = m + 3; equivale a m += 3;
l = l – 5; equivale a l -= 5;
I = I * 4; equivale a I *=4;
x = x/2; equivale a x /= 2;
y = y % 4; equivale a y %= 4;
2.4 Operadores de Incremento e decremento
Em C tem-se os operadores:
++ : incrementa de 1 o seu operando
- - : decrementa de 1 o seu operandos
(a) Forma pré-fixada
++ a => soma 1 e depois retorna o valor de a.
Ex: Se a = 5 e n = ++a , como resultado tem-se que n vale 6 e a vale 6.
- - a => subtrai 1 e depois retorna o valor de a
Ex: Se a = 5 e n = - - a, como resultado tem-se que n vale 4 e a vale 4.
(b) Forma pós-fixada
a++ => retorna o valor de a e depois soma 1 em a.
Ex: se a = 5 e n = a++, como resultado tem-se que n vale 5 e a vale 6.
a - - => retorna o valor de a e depois subtrai 1 de a.
Ex: se a = 5 e n = a - -, como resultado tem-se que n vale 5 e a vale 4.
Obs: Fazer ++(a+b) ou (a+b)++ é ilegal!
2.5 Operadores Relacionais
2.6 Operadores Lógicos
A base dos conceitos dos operadores lógicos e relacionais é a ideia de verdadeiro e falso. Em C,
verdadeiro é qualquer valor diferente de zero e falso é zero. As expressões que usam operadores
relacionais ou lógicos devolvem 0 para falso e 1 para verdadeiro. A tabela verdade dos operadores
lógicos é apresentada a seguir, usando 0s e 1s:
2.7 Prioridades dos Operadores
Em geral, a precedência em linguagem de programação segue a ordem de precedência matemática
dos operadores. Isso é o padrão em C.
A precedência dos operadores aritméticos é a seguinte:
A tabela a seguir mostra a precedência dos operadores relacionais e lógicos:
Tanto no caso das expressões aritméticas como no caso das expressões lógicas, é possível usar
parênteses para alterar a ordem natural de avaliação de uma expressão aritmética, relacionai e/ou
lógica. No caso de operadores de igual precedência, a expressão é avaliada da esquerda para a direita.
Uma expressão matemática em C é qualquer combinação válida em C de variáveis, constantes,
operadores e funções matemáticas.
2.8 Funções Matemáticas sobre tipos numéricos
Em C as funções matemáticas estão definidas do arquivo math.h (#include math.h). A seguir é
apresentada uma tabela com as principais funções matemáticas em C.
Função Matemática Função Matemática em C Exemplo de uso em programa
Arcos x double acos(double x) Y = acos(x);
Arcsen x double asen(double x) Y = asen(x);
Arctg x double atan(double x) Y = atan(x);
Cos x double cos(double x) Y = cos(x);
Sen x double sin(double x) Y = sin(x);
Tg x double tan(double x) Y = tan(x);
| x| double fabs(double x) Y = fabs(x);
√ x double sqrt(double x) Y = sqrt(x);
ex double exp(double x) Y = exp(x);
ln( x) double log(double x) Y = log(x);
log(x ) double log10(double x) Y = log10(x);
Xy double pow(double x, double y) X1 = pow(x, y);
Menor inteiro maior
ou igual a x
double ceil(double x) Y = ceil (x); se x = 2.4 → Y = 3
Maior inteiro menor
ou igual a X
double floor(double x) Y = floor(x); se x = 2.4 → Y = 2
3 Declaração de Variáveis
Variável: nome simbólico usado para identificar posições de memória que contém informações.
Sintaxe em C:
Tipo_da_Variável Nome_da_Variável;
ou
Tipo_da_Variável Nome_variavel1, …, Nome_variavelN;
3.1 Regras para Nomes de Variáveis em C:
i. Uma variável deve conter combinações de letras, números e o caractere '_' (sublinhado) sem
espaços em branco. Existe distinção entre letras maiúsculas e minúsculas.
ii. Uma variável deve sempre começar com uma letra.
iii. Um nome de variável não pode ser uma palavra reservada da linguagem C, a qual possui um
significado específico dentro do programa. Ex: int, char, float, double, long, e outros que serão
vistos mais adiante.
Exemplos de declaração de variáveis em C:
int i, nome_dificil, var123;
float altura_x, teste2;
char C1, C_1;
Incorretos:
int 1cont, xa*num;
char alo;1, arm-1;
double %c1, alto-x;
3.2 Atribuição de valores a variáveis em C
Atribuir um valor a uma variável significa dizer que a posição de memória ocupada pela variável
receberá o valor especificado.
Sintaxe em C:
Var = valor_a_ser_atribuido;
Ex:
X = 35;
Var_A = X;
Total = Var_A + X * Var_A;
Não é válido:
7 = 7; // neste caso Var é uma constante
Var1 + Var2 = Var3; // Var é uma expressão
4. Definição de Constantes
Constante: refere-se a uma posição de memória que terá um valor fixo durante a execução do
programa e são inalteráveis.
Sintaxe em C:
#define a 0
#define b 20.0
#define PI 3.14159265
5. Uso de Biblioteca
Uma biblioteca em C é um conjunto de funções que já foram codificadas por outro programador.
Assim ao escrever um programa, o programador deve dizer ao compilador onde estão tudo o que será
utilizado dentro do programa por meio de uma diretiva de compilação.
Diretiva de Compilação:
➢ São mensagens ao compilador para que execute alguma tarefa no momento da compilação;
➢ São iniciadas pelo caractere # e cada diretiva deve estar em uma linha do programa.
(a) Diretiva define: vista anteriormente – uma macro para associar um valor constante a um nome.
Ou por meio do comando 
const:
const a = 0;
const b = 20.0;
#define True 1
#define False 0
(b) Diretiva include: especifica arquivo (biblioteca) de funções que serão usadas no programa.
Sintaxe:
#include “nome_da_biblioteca”
#include <nome_da_biblioteca>
sendo que
“ “ - busca o arquivo a partir do diretório de trabalho do usuário, passando pelos diretórios 
definidos pelo compilador, terminando com os diretórios padrões do sistema;
< > - busca o arquivo começandodiretamente nos diretórios especificados ao compilador
Exemplos de bibliotecas úteis e que serão bastante utilizadas:
stdio.h → deve estar presente em todo programa, pois contém as definições básicas e
entrada e saída de dados.
math.h → contém as funções matemáticas não elementares, tais como seno, cosseno, etc.
string.h → funções para manipular cadeia de caracteres.
stdlib.h → funções envolvendo alocação de memória, controle de processs, conversões,
etc.
6. Entrada de Dados
Em C a entrada de dados (Leitura) é feita por meio de vários comandos diferentes, tendo como principal
o scanf, que é uma função de entrada de uso geral, uma vez que pode ler todos os tipos de dados da
linguagem C.
Sintaxe: scanf (“%codigo, &nome_variavel);
onde
Código Significado
d Lê um valor inteiro decimal
i Lê um valor inteiro decimal
f Lê um número em ponto flutuante (real)
c Lê um caractere
s Lê uma cadeia de caracteres
lf Lê um double (ld lê um long int) – l (letra ele) é um modificador de acesso
Exemplos:
scanf(“%d”, &i); leitura de um valor inteiro e armazenado na variável i.
scanf(“%d %f”, &N, &x); leitura de um valor inteiro e um valor real, separados por um 
espaço em branco e armazenados, respectivamente,
nas variáveis N e x.
scanf(“%d,%f, &n, &x); idem ao anterior, só que os valores deverão estar separados
por uma vírgula. (Pode-se utilizar qualquer caractere como
separador).
7. Saída de Dados
Em C, existem várias funções que escrevem os dados na saída, sendo as principais: printf() e puts().
Sintaxe:
printf(“Descrição da formatação de saída”, dados_de saída);
puts(“Descrição da formatação de saída”);
Exemplos:
printf(“Valor = %d e Velocidade = %f \n”, val, vel); → escreve um inteiro e um real, em
conjunto com as mensagens especificadas => Valor = 10 e Velocidade = 20.222
\n – indica que o próximo printf iniciará a escrita na linha de baixo.
 puts(“Digite um valor inteiro e depois uma palavra”); → escreve a mensagem que está
entre aspas.
Caracteres de Formatação
\n Indica que se deve mudar para a linha seguinte
\t Indica que se deve fazer uma tabulação
\b Indica que se deve retroceder um caractere
\\ Indica que se deve imprimir a barra reversa \
\'' Indica que se deve imprimir aspas
\' Indica que se deve imprimir apóstrofo
8. Delimitadores e Comentários
São utilizados para facilitar a clareza e legibilidade de um código de programa escrito em C. Em geral,
utiliza-se algumas pequenas regras para que se obtenha um programa legível e de fácil entendimento.
Por exemplo:
• Uso de comentários – esclarecimentos sobre o que cada trecho de programa realiza;
Programas precisam ser entendidos não só por computadores, mas também (e principalmente por
seres humanos. Por isso, o leiaute (= layout) de um programa, ou seja, a disposição do programa na
folha de papel e na tela do monitor, é tão importante. Os dois elementos fundamentais do leiaute são
• a endentação, que é o recuo das linhas em relação à margem esquerda da página, e
os
• espaços entre as palavras (e outros símbolos) de uma linha.
O leiaute é, portanto, a administração dos espaços em branco no texto de um programa. Ele segue 
essencialmente os mesmos princípios que o leiaute de qualquer outro tipo de texto.
Caracteres de delimitação de comentário em C:
// comentário usado em comentários de apenas uma linha
/* comentário */ usado em comentários que ocupem uma ou mais linhas
Outros delimitadores importantes:
; Indica o final de um comando ou expressão
, Separa elementos em uma lista
( ) Usado para compor expressões ou funções
{ } Indicam o início e fim de uma sequência de comandos sequenciais, que tenham o 
mesmo nível hierárquico
10. Funções e a função main
Um programa em C é construído a partir de um conjunto de funções, que ao serem executadas 
permitem a realização de uma tarefa.
Todo programa em C deve ter uma função chamada main, que o compilador reconhece como sendo o 
ponto de partida do programa.
Sintaxe de uma função em C:
<tipo devolvido da função> NomeDaFunção(lista de parâmetros)
{ // indica o início da função
 // coloca-se aqui o corpo da função: variáveis locais e comandos
} // indica o final da função
Daremos ênfase, neste momento do curso, à função main e a estrutura de um programa em C. Mais 
adiante exploraremos com detalhes outras funções.
Estrutura de um programa em C:
# <diretivas para o compilador
Declarações Globais
<tipo devolvido> main() {
 // declarações das variáveis da função main
 // sequência de comandos do programa
}
Exemplo: Programa em C para ler 2 valores reais a e b e calcular e escrever a soma a + b
 printf(“a = %f \n”, a);
 printf(“b = %f \n”, b);
 printf(“soma = %f \n”, soma);
 system(“PAUSE”); // para manter a janela de saída no DevC
 Return 0;
}// fim main
#include <stdlib.h>
#include<stdio.h> 
int main(){
 float a, b, soma;
 printf("Digite o valor de a: ");
 scanf("%f", &a);
 printf("Digite o valor de b: ");
 scanf("%f", &b);
 Soma = a + b;
11. Tipos de Dados Caracteres
São utilizados para manipular e armazenar informação não numérica. Por exemplo: Nome de pessoas, 
endereços e outras.
Existem dois tipos básicos de dados caracteres:
• caracteres individuais: tratados como caracteres char
• caracteres reunidos em coleções ordenadas, formando palavras conhecidas como cadeia de 
caracteres ou strings.
11.1 Caracteres
São representados internamente por códigos numéricos. Ocupam 1 byte (8 bits) e podem representar 
256 caracteres possíveis. Códigos são associados em uma tabela de códigos. Por ex: a Tabela ASCII 
(American Standard Code for Information Interchange).
A declaração em c é
char c, x;
 x = 'a'; // atribuição de um valor para x
11.2 Cadeia de Caracteres
É uma coleção de caracteres armazenados lado a lado. Os caracteres podem ser acessados de forma 
coletiva ou de forma individual.
Declaração de cadeia de caracteres (strings) em C:
char Nome[11], cidade[20];
Exemplo de uma cadeia de caracteres: JAU\0 – o símbolo \0 é um finalizador da cadeia de caracteres.
11.3 Manipulação de caracteres e cadeia de caracteres
A manipulação de caracteres individuais é semelhante à manipulação de tipos numéricos.
Ex:
char letra;
letra = 'k'; // atribuição de forma direta, porém o caractere deve estar 
entre aspas simples (');
A manipulação de cadeia de caracteres exige que sejam utilizadas funções especiais para o seu 
tratamento.
Exemplos de algumas funções especiais para manipulação de strings:
Obs: usar a diretiva de compilação #include<string.h>
Sejam str1 e str2 variáveis do tipo cadeia de caracteres:
 char str1[10], str2[15];
• strcpy(str1, str2) – atribui a str1 o conteúdo de str2 (copia o valor de str2 em str1);
ex: strcpy(frase, “Bom Dia”);
• strcmp(str1, str2); - compara str1 e str2 e retorna:
◦ 0 – se str1 é igual a str2;
◦ valor negativo se str1 for lexicograficamente menor que str2;
◦ valor positivo se str1 for lexicograficamente maior que str2.
12. Conversão de Tipos (modelares ou casting)
Em um programa em c, nem sempre se opera com valores do mesmo tipo. Por exemplo:
int a = 16, b = 3;
float x;
⁞
x = a/b;
=> a/b = 16/3 = 5 (divisão inteira), como resultado obtém-se x = 5.0;
Porém, suponha que o programador gostaria de obter como resposta o valor 5.333.
A linguagem C possui o mecanismo de casting para resolver situações como esta.
Casting: converte uma expressão de um determinado tipo em outro tipo.
A forma geral para se fazer a conversão de tipo em C é:
nome_variavel = (nome_do_tipo) expressão;
Exemplo:
x = (float) a/b;
Os parênteses são obrigatórios na expressão acima.
Outro exemplo:
int main() {
 int fahr = 5;
float cels;
printf(“Valor = %f\n”, (float) fahr); // Valor = 5.000
cels = (float) 5/9 * (fahr -32); // cel = -15.00012
printf(“Celsius = %d\n”, (int) cels); // Celsius = -15
system(“pause”);
return 0;
}

Outros materiais