O documento apresenta um resumo sobre a linguagem de programação C, abordando tópicos como sua história, características, tipos de dados, variáveis, constantes, operadores e instruções de entrada e saída.
2. Sumário
05/07/2023
Professor Paulo Nunes 2
História.
Características básicas.
Tipos de dados.
Um programa em C.
Criando um programa em C.
IDEs para criação, montagem e
compilação.
Compilando com o GCC no terminal.
Constantes e Variáveis.
Constantes.
Constantes: Tipos especiais.
Constantes: Exemplo.
Variáveis.
Declaração de variáveis.
Criando nomes de variáveis.
Inicializando variáveis.
Tipos de variáveis.
Palavras-Chaves em C.
Operadores.
Aritméticos.
Relacionais.
Lógicos.
Bit a Bit.
Precedência.
Instruções em C: Entrada e Saída de
dados.
printf()
scanf()
getchar()
putchar()
getche() e getch()
Resumo das funções de E/S
Referências.
3. História
05/07/2023
Professor Paulo Nunes 3
Criada entre 1968 e 1973, no AT&T Bell
Labs, por Dennis M. Ritchie e Ken
Thompson;
Baseada na linguagem “B”, evolução da
linguagem “BCPL”, veio para eliminar as
dificuldades de programação em
Assembly e as limitações da linguagem
“B”;
Ferramenta para programação em
qualquer tipo de sistema, prima pela
padronização dos compiladores,
flexibilidade de uso, portabilidade e por
apresentar programas compactos e
rápidos.
4. Linguagem de nível médio;
Combina elementos das linguagens de alto nível com a
funcionalidade do Assembly.
Linguagem estruturada;
As funções são o principal componente estrutural de C.
Linguagem para programadores;
Criada, influenciada e testada por programadores profissionais,
dá ao programador o que ele quer: poucas restrições, estruturas
de bloco, funções isoladas e conjunto compacto de palavras-
chaves.
05/07/2023
Professor Paulo Nunes 4
Características básicas
5. Existem cinco tipos básicos em C:
Caractere (char);
Inteiro (int);
Ponto flutuante (float);
Ponto flutuante de precisão dupla (double);
Sem valor (void).
Todos os outros tipos são baseados nesses cinco principais;
O tamanho e faixa varia de acordo com o processador e
implementação do compilador C;
O padrão ANSI estipula a faixa mínima de cada tipo, não seu
tamanho em bytes
05/07/2023
Professor Paulo Nunes 5
Tipos de dados em C
6. Tipo Tam. Aproximado em bits Faixa mínima
char 8 -127 a 127
unsigned char 8 0 a 255
signed char 8 -127 a 127
int 16 -32.767 a 32.767
unsigned int 16 0 a 65.535
signed int 16 mesmo que int
short int 16 mesmo que int
unsigned short int 16 0 a 65.535
signed short int 16 mesmo que short int
long int 32 -2.147.483.647 a 2.147.483.647
signed long int 32 mesmo que long int
unsigned long int 32 0 a 4.294.967.295
float 32 seis dígitos de precisão
double 64 dez dígitos de precisão
long double 80 dez dígitos de precisão
05/07/2023
Professor Paulo Nunes 6
Tipos de dados em C
Tabela ANSI
7. Os nomes “programa” e “função” podem se confundir em C;
Um programa em C é formado de uma ou mais “funções”
O menor programa em C seria então:
05/07/2023
Professor Paulo Nunes 7
Programas em C
Programa de
uma única
função main().
Chave de abertura do
bloco de comandos
Chave de fechamento do
bloco de comandos
O nome da função, os parênteses e as chaves são os únicos elementos
obrigatórios.
8. Os parêntese após a função indicam que se trata de uma função;
O nome de uma função C pode ser qualquer um com exceção de
“main”, reservado para a função que inicia a execução do programa;
Podem haver espaços, tabulação e saltar linhas a vontade, o
compilador ignora estes caracteres;
A função main() deve existir em algum lugar em seu programa, ela
marca o início da execução do programa;
Todas as instruções devem vir dentro das chaves, sendo executadas
na ordem em que são escritas;
As instruções em C são finalizadas por um ponto-e-vírgula (;), ele faz
parte da instrução.
05/07/2023
Professor Paulo Nunes 8
Programas em C - Características
9. O programa anterior, que não executava instrução nenhuma,
agora com uma instrução que exibe uma mensagem na tela:
05/07/2023
Professor Paulo Nunes 9
Programas em C
A instrução printf(), dentro das chaves,
imprime a mensagem entre as aspas
10. Três passos para compilar um programa em C:
1. Criar um programa (digitar em editor qualquer);
2. Compilar o programa (usar um compilador adequado);
3. Linkeditar o programa com as funções de biblioteca.
Os programas fonte em C possuem a extensão .c;
O compilador mais utilizado é o GNU GCC, GNU Compiler
Collection, ou simplesmente, GCC;
Processo de compilação segue a seguinte sequência:
05/07/2023
Professor Paulo Nunes 10
Criando um programa em C
Código Fonte (.c) Código Objeto (.obj)
Código executável
(.exe)
11. Existem vários Front Ends para compilação de programas em
C, alguns deles são:
Code:Blocks;
Bloodshed Dev C++;
Eclipse e;
Netbeans.
A maioria deles já traz embutidas todas as ferramentas
necessárias para a criação dos programas em C.
Um bom editor de textos para criação de programas fonte em
C é o:
Notepad++
05/07/2023
Professor Paulo Nunes 11
Criando um programa em C: IDE’s
12. Uma boa forma de se compilar programas em C é utilizar o
GCC diretamente de um terminal DOS (prompt de
comandos). Dessa forma é mais fácil a passagem de
parâmetros necessários para a compilação.
No menu “iniciar” do Windows, digite “cmd” para ativar uma
janela de terminal:
05/07/2023
Professor Paulo Nunes 12
Compilando com o GCC direto do
prompt
13. Digite então o seguinte comando:
>gcc programa-fonte.c –o programa-executavel
onde:
programa-fonte.c é o programa em C
programa-executavel é o programa em código de máquina
-o é o parâmetro utilizado para montar o seu programa
Para apenas “compilar” o programa, utilize a opção –c
>gcc –c programa-fonte.c
Será gerado um arquivo objeto (.o) com o mesmo nome
Para montar vários arquivos objeto em um só executável:
>gcc –o programa_executavel programa-objeto1 programa-objeto2...
05/07/2023
Professor Paulo Nunes 13
Compilando com o GCC direto do
prompt
15. Possui valor fixo e inalterável;
Podem ser de qualquer um dos cinco tipos de dados básicos;
Sua representação depende de seu tipo.
Exemplos:
05/07/2023
Professor Paulo Nunes 15
Constantes
Tipo de constante/dado Representação
Char ‘a’
String (cadeia de caracteres) “Este é um exemplo de constante”
Inteira 10 e -7
Ponto flutuante (float e double) 12.123
16. Caractere de Barra invertida (): utilizado para inserção de
caracteres especiais.
05/07/2023
Professor Paulo Nunes 16
Constantes: Tipos especiais
Código Função
b Retrocesso (backspace)
f Alimentação de formulário (Form feed)
n Nova linha (Line feed)
r Retorno de carro (Carriage return)
t Tabulação horizontal (Horizontal tab)
” Aspas duplas
’ Aspas simples’
0 Nulo
Barra invertida
v Tabulação vertical
a Alerta (beep)
N Constante octal (N é uma constante octal)
xN Constante hexadecimal (N é uma constante hexadecimal)
18. Espaço de memória reservado para armazenar um certo tipo
de dado, tendo um nome identificador para referenciar o seu
conteúdo. [Victorine Viviane, 1990];
Posição nomeada de memória, que é usada para guardar um
valor que pode ser modificado pelo programa. [Schildt, 1997].
O espaço de memória de uma variável pode ser compartilhado
por diferentes valores segundo certas circunstâncias, ou seja:
pode conter, a cada tempo, valores diferentes.
Onde são declaradas? Existem três locais básicos:
Dentro das funções (locais);
Na definição de parâmetros das funções (formais) e;
Fora de todas as funções (globais).
05/07/2023
Professor Paulo Nunes 18
Variáveis
19. Declaração de variável em C:
As variáveis em C devem ser OBRIGATÓRIAMENTE declaradas antes de serem
utilizadas;
A forma geral para declaração é:
tipo nome_variável1, nome_variável2,..., nome_variáveln;
Onde:
tipo deve ser um tipo de dado válido em C;
nome_variável é um nome identificador criado para representar a variável, não tem
relação com o tipo.
Porque devem ser declaradas?
Facilita a quem lê o programa entender o que ele faz;
Uma seção de declarações de variáveis melhora o planejamento do programa,
determinando o que será passado ao programa e o que ele retornará como
resultado;
Ajuda a prevenir erros;
O C NÃO TRABALHA SE AS VARIÁVEIS NÃO FOREM DECLARADAS!
05/07/2023
Professor Paulo Nunes 19
Variáveis: Declaração
20. Os nomes de variáveis, funções, rótulos e outros objetos
definidos pelo usuário em C são chamados de identificadores.
Devem iniciar por uma letra ou sublinhado (_);
São “case sensitive”;
Não podem ter o mesmo nome de uma palavra reservada ou
função escrita ou própria da linguagem;
Exemplos:
05/07/2023
Professor Paulo Nunes 20
Variáveis: Criando nomes
Válidos Inválidos
Peso 1peso
a10 $10
teste12 teste!de mesa
salario_minimo salário..mínimo
21. Para inicializar uma variável a sintaxe é a seguinte:
tipo nome_identificador = constante;
ou
tipo nome_identificador1, nome_identificador2,...,
nome_identificadorn = constante;
O identificador de atribuição (=) é utilizado para atribuir um
valor constante ou expressão a uma variável.
Exemplos:
int a = 2;
int x,y = 3 + 6;
05/07/2023
Professor Paulo Nunes 21
Variáveis: Inicializando
22. O tipo informa a quantidade de memória, em bytes, que será
ocupada e a forma de armazenamento do conteúdo:
05/07/2023
Professor Paulo Nunes 22
Variáveis: Tipos
Tipo BIT Bytes Limite
char 8 1 -128 a 127
int 16 2 -32768 a 32767
float 32 4 3.4E-38 a 3.4E+38
double 64 8 1.7E-308 a 1.7E+308
void 0 0 sem valor
23. A tabela a seguir exibe as 32 palavras-chave (reservadas da
linguagem) que, combinadas com a sintaxe formal de C,
formam a linguagem de programação C.
05/07/2023
Professor Paulo Nunes 23
Palavras-chave em C
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
24. C possui diversos operadores internos, dando muito mais
ênfase a eles que a maioria das linguagens de programação.
São definidas quatro classes deles:
Aritméticos;
Relacionais;
Lógicos e;
Bit a Bit.
05/07/2023
Professor Paulo Nunes 24
Operadores
25. Operador Função
- Subtração; unário
+ Adição
* Multiplicação
/ Divisão
% Módulo da divisão (resto)
-- Decremento
++ Incremento
05/07/2023
Professor Paulo Nunes 25
Operadores Aritméticos
Precedência
Mais alta ++ --
- (menos unário)
* / %
Mais baixa + -
26. 05/07/2023
Professor Paulo Nunes 26
Operadores Relacionais
Operador Função
> Maior que
>= Maior que ou igual
< Menor que
<= Menor que ou igual
== Igual
!= Diferente
27. 05/07/2023
Professor Paulo Nunes 27
Operadores Lógicos
Operador Função
&& AND
!! OR
! NOT
Precedência
Maior !
> >= < <=
== !=
&&
Menor ||
28. p q p&&q p||q !p
0 0 0 0 1
0 1 0 1 1
1 1 1 1 0
1 0 0 1 0
05/07/2023
Professor Paulo Nunes 28
Tabela verdade para Relacionais e
Lógicos
29. Utilizados para testar, atribuir ou deslocar os bits efetivos em
um byte ou palavra. Correspondem aos tipos de dados char e
int, bem como suas variações em C.
Não podem ser utilizados em: float, double, long double, void
ou tipos mais complexos.
05/07/2023
Professor Paulo Nunes 29
Operadores Bit a Bit
Operador Função
& AND
! OR
^ OR exclusivo (XOR)
~ Complemento de um
>> Deslocamento à esquerda
<< Deslocamento à direita
30. Maior () [] ->
! ~ ++ -- - (tipo) * & sizeof
* / %
+ -
<< >>
< <= > >=
== !=
&
^
!
&&
!!
?:
= += -= *= /= etc.
Menor ,
05/07/2023
Professor Paulo Nunes 30
Precedência de Todos os operadores
33. Biblioteca STDIO.H
Função de entrada/saída;
Exibe informações na tela;
Sintaxe:
printf(“const char %controle” , ...);
Onde:
const char é o que será impresso na tela. São duas as
informações impressas:
o primeiro é a mensagem propriamente dita
o segundo é um comando de formatação para os argumentos
subsequentes serão mostrados. Inicia-se com o símbolo de
percentual (%), seguido pelo código do formato.
05/07/2023
Professor Paulo Nunes 33
Instruções em C: printf()
34. Código Formato
%c Caractere
%d Inteiros decimais com sinal
%i Inteiros decimais com sinal
%e Notação científica (e minúsculo)
%E Notação científica (E maiúsculo)
%f Ponto flutuante decimal
%g Usa %e ou %f, o que for mais curto
%G Usa %E ou %F, o que for mais curto
%o Octal sem sinal
%s String de caracteres
%u Inteiros decimais sem sinal
%x Hexadecimal sem sinal (letras minúsculas)
%X Hexadecimal sem sinal (letras maiúsculas)
%p Apresenta um ponteiro
%n O argumento é um ponteiro para inteiro no qual o número de caracteres escritos até esse ponto é colocado
%% Escreve o símbolo %
05/07/2023
Professor Paulo Nunes 34
printf(): Caracteres de formatação
36. 05/07/2023
Professor Paulo Nunes 36
printf(): Caracteres de formatação -
Exemplo
No primeiro exemplo a letra ‘j’ é delimitada por aspas simples
enquanto que “jota” utiliza aspas duplas. Isso é utilizado pelo
compilador para diferenciar um caractere simples de uma
cadeia de caracteres.
No segundo exemplo, temos n como caractere para “salto de
linha”, o que corresponderia a tecla [ENTER] para quebra de
linha.
37. Biblioteca STDIO.H
Função de entrada/saída;
Recebe entradas via teclado;
Complemento de printf(), sendo que a principal diferença está na
lista de argumentos: os de scanf() são endereços de variáveis;
Sintaxe:
scanf(“const char %controle” , ...);
Onde:
const char %controle consiste em três classificações de caracteres:
Especificadores de formato;
Espaço em branco;
Espaço não-branco.
Os especificadores de formato de entrada são precedidos por % e
informam que tipo de dado deve ser lido imediatamente após.
05/07/2023
Professor Paulo Nunes 37
Instruções em C: scanf()
38. Código Significado
%c Lê um único caractere
%d Lê um inteiro decimal
%i Lê um inteiro decimal
%e Lê um número em ponto flutuante
%f Lê um número em ponto flutuante
%g Lê um número em ponto flutuante
%o Lê um número octal
%s Lê uma string
%x Lê um número hexadecimal
%p Lê um ponteiro
%n Recebe um inteiro igual ao número de caracteres lidos até então
%u Lê um inteiro sem sinal
%[] Busca por um conjunto de caracteres
05/07/2023
Professor Paulo Nunes 38
Scanf(): Especificadores de formato
41. Biblioteca STDIO.H
Função de entrada/saída;
Lê um caractere via teclado;
Lê o próximo caractere até que a tecla [ENTER] seja
pressionada;
Pode ser atribuída a uma variável.
Sintaxe:
<variável> = getchar();
05/07/2023
Professor Paulo Nunes 41
Instruções em C: getchar()
42. Biblioteca STDIO.H
Função de entrada/saída;
Retorna o caractere escrito em getchar();
Sintaxe:
putchar(<variável>);
putchar(getchar())
05/07/2023
Professor Paulo Nunes 42
Instruções em C: putchar()
43. getchar() e putchar(): Exemplo
05/07/2023
Professor Paulo Nunes 43
Lendo o texto
com getchar()
Exibindo o texto
com putchar()
Saída em vídeo: texto em
minúsculas transformado
em maiúsculas.
44. Biblioteca CONIO.H
Função de entrada/saída;
Leem um caractere no instante em que é digitado via
teclado;
São iguais, porém getche() exibe a tecla digitada;
Podem ser atribuídas a uma variável.
Sintaxe:
<variável> = getche();
<variável> = getch();
05/07/2023
Professor Paulo Nunes 44
Instruções em C: getche() e getch()
45. getch() e getche(): Exemplo
05/07/2023
Professor Paulo Nunes 45
Recebendo a tecla
digitada.
Durante a execução, a tecla será exibida na
entrada. Use getch() para suprimir essa exibição.
46. Função Descrição
getchar() Lê um caractere do teclado; aguarda a tecla [ENTER]
getche()
Lê um caractere e exibe o mesmo; não aguarda a tecla
[ENTER]
getch()
Lê um caractere mas não o exibe; não aguarda a tecla
[ENTER]
putchar() Escreve um caractere na tela.
gets() Lê uma string via teclado.
puts() Escreve uma string na tela.
05/07/2023
Professor Paulo Nunes 46
Resumo das funções de E/S simples
47. Mizrahi, Victorine Viviane. Treinamento em linguagem C –
Módulo 1.São Paulo: McGraw-Hill, 1990.
Schildt, Herbert. C, Completo e Total – 3ª Ed. Revista e
Atualizada. São Paulo: Pearson Education do Brasil, 1997.
05/07/2023
Professor Paulo Nunes 47
Referências