Você está na página 1de 47

Algoritmos e Programação I

Linguagem de programação C
Sumário
 História.  Inicializando variáveis.
 Características básicas.  Tipos de variáveis.
 Tipos de dados.  Palavras-Chaves em C.
  Operadores.
Um programa em C.
 Aritméticos.
 Criando um programa em C.  Relacionais.
 IDEs  Lógicos.
para criação, montagem e compilação.  Bit a Bit.
 Compilando com o GCC no terminal.  Precedência.
 Constantes e Variáveis.  Instruções em C: Entrada e Saída de dados.
 Constantes.  printf()
 scanf()
 Constantes: Tipos especiais.
 getchar()
 Constantes: Exemplo.  putchar()
 Variáveis.  getche() e getch()
 Declaração de variáveis.  Resumo das funções de E/S
 Criando nomes de variáveis.  Referências.

Professor Paulo Nunes 2 05/07/2023


História

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

Professor Paulo Nunes 3 05/07/2023


Características básicas
 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.

Professor Paulo Nunes 4 05/07/2023


Tipos de dados em C
 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
Professor Paulo Nunes 5 05/07/2023
Tipos de dados em C
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 Tabela ANSI
double 64 dez dígitos de precisão
long double 80 dez dígitos de precisão

Professor Paulo Nunes 6 05/07/2023


Programas em C
 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:

Chave de abertura do
Programa de bloco de comandos
uma única
função main(). 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.

Professor Paulo Nunes 7 05/07/2023


Programas em C - Características
 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.
Professor Paulo Nunes 8 05/07/2023
Programas em C
 O programa anterior, que não executava instrução nenhuma,
agora com uma instrução que exibe uma mensagem na tela:

A instrução printf(), dentro das chaves,


imprime a mensagem entre as aspas

Professor Paulo Nunes 9 05/07/2023


Criando um programa em C
 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:

Código executável
Código Fonte (.c) Código Objeto (.obj)
(.exe)

Professor Paulo Nunes 10 05/07/2023


Criando um programa em C: IDE’s
 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++
Professor Paulo Nunes 11 05/07/2023
Compilando com o GCC direto do
prompt
 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:

Professor Paulo Nunes 12 05/07/2023


Compilando com o GCC direto do
prompt
 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...

Professor Paulo Nunes 13 05/07/2023


Constantes e Variáveis
Como declarar e utilizar Constantes e Variáveis na
linguagem C
Constantes
 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:

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

Professor Paulo Nunes 15 05/07/2023


Constantes: Tipos especiais
 Caractere de Barra invertida (\): utilizado para inserção de
caracteres 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)

Professor Paulo Nunes 16 05/07/2023


Constantes: Exemplo
 Exemplo:

Saída em tela.

Professor Paulo Nunes 17 05/07/2023


Variáveis
 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).
Professor Paulo Nunes 18 05/07/2023
Variáveis: Declaração
 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!

Professor Paulo Nunes 19 05/07/2023


Variáveis: Criando nomes
 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:
Válidos Inválidos
Peso 1peso
a10 $10
teste12 teste!de mesa
salario_minimo salário..mínimo

Professor Paulo Nunes 20 05/07/2023


Variáveis: Inicializando
 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;

Professor Paulo Nunes 21 05/07/2023


Variáveis: Tipos
 O tipo informa a quantidade de memória, em bytes, que será
ocupada e a forma de armazenamento do conteúdo:

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

Professor Paulo Nunes 22 05/07/2023


Palavras-chave em C
 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.
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

Professor Paulo Nunes 23 05/07/2023


Operadores

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

Professor Paulo Nunes 24 05/07/2023


Operadores Aritméticos

Precedência

Operador Função Mais alta ++ --

- Subtração; unário - (menos unário)

+ Adição */%

* Multiplicação Mais baixa +-

/ Divisão
% Módulo da divisão (resto)
-- Decremento
++ Incremento

Professor Paulo Nunes 25 05/07/2023


Operadores Relacionais

Operador Função
> Maior que
>= Maior que ou igual
< Menor que
<= Menor que ou igual
== Igual
!= Diferente

Professor Paulo Nunes 26 05/07/2023


Operadores Lógicos

Operador Função
&& AND
!! OR
Precedência
! NOT
Maior !

> >= < <=

== !=

&&

Menor ||

Professor Paulo Nunes 27 05/07/2023


Tabela verdade para Relacionais e
Lógicos

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

Professor Paulo Nunes 28 05/07/2023


Operadores Bit a Bit
 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.
Operador Função
& AND
! OR
^ OR exclusivo (XOR)
~ Complemento de um
>> Deslocamento à esquerda
<< Deslocamento à direita

Professor Paulo Nunes 29 05/07/2023


Precedência de Todos os operadores

Maior () [] ->
! ~ ++ -- - (tipo) * & sizeof
*/%
+-
<< >>
< <= > >=
== !=
&
^
!
&&
!!
?:
= += -= *= /= etc.
Menor ,

Professor Paulo Nunes 30 05/07/2023


Instruções em C
Utilizando os comandos básicos da linguagem C
Instruções em C
Comandos para Entrada e Saída de dados.
Instruções em C: printf()
 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.

Professor Paulo Nunes 33 05/07/2023


printf(): Caracteres de formatação
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 %

Professor Paulo Nunes 34 05/07/2023


printf(): Caracteres de formatação -
Exemplo

Saída na tela.

Professor Paulo Nunes 35 05/07/2023


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.

Professor Paulo Nunes 36 05/07/2023


Instruções em C: scanf()
 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.

Professor Paulo Nunes 37 05/07/2023


Scanf(): Especificadores de formato

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

Professor Paulo Nunes 38 05/07/2023


Scanf(): Exemplo

Entrar com o valorResultado


via teclado.

Professor Paulo Nunes 39 05/07/2023


Scanf(): Exemplo 02

Caractere
Saída em vídeo
digitado
Professor Paulo Nunes 40 05/07/2023
Instruções em C: getchar()
 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();

Professor Paulo Nunes 41 05/07/2023


Instruções em C: putchar()
 Biblioteca STDIO.H
 Função de entrada/saída;
 Retorna o caractere escrito em getchar();
 Sintaxe:
putchar(<variável>);
putchar(getchar())

Professor Paulo Nunes 42 05/07/2023


getchar() e putchar(): Exemplo

Lendo o texto
com getchar()

Saída em vídeo: texto em


Exibindo o texto
minúsculas transformado
com putchar()
em maiúsculas.

Professor Paulo Nunes 43 05/07/2023


Instruções em C: getche() e getch()
 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();

Professor Paulo Nunes 44 05/07/2023


getch() e getche(): Exemplo

Recebendo a tecla
digitada.

Durante a execução, a tecla será exibida na


entrada. Use getch() para suprimir essa exibição.

Professor Paulo Nunes 45 05/07/2023


Resumo das funções de E/S simples

Função Descrição

getchar() Lê um caractere do teclado; aguarda a tecla [ENTER]

Lê um caractere e exibe o mesmo; não aguarda a tecla


getche() [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.

Professor Paulo Nunes 46 05/07/2023


Referências
 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.

Professor Paulo Nunes 47 05/07/2023

Você também pode gostar