Você está na página 1de 44

FACULADES ANGLO-AMERICANO DE CAXIAS DO SUL ʹ FAACS

CIÊNCIAS DA COMPUTAÇÃO

| 

  

Alunos:
Fagner Maciel
Guilherme
Professor:Thiago da Silva Weingartner

1
O que é a linguagem C
È    
  
 


   


 
    


 

 
     

 
 

È    
   ! 
 "

!  #
È ë
   
   
 
$
   !
 
        

      

ü
   % 

È     

&  $ %  
'()*  
    +
|


È 

    
 


    
       


   ,
È    '()-      



 
 
 
   
 
È 
   '(.-
 

 
 
  !  
/
 
    
  

´
Ëisão geral de um programa C
È Editor (módulo fonte em C)

È Pré-processador (novo fonte expandido)

È Compilador (arquivo objeto)

È Lincador (executável)

4
Palavras reservadas
Èm  È
Èm  È

È m  È 

È m È 
È 
 È 

È 

 È 
Èm  È 

È È 
È   È m 
È  È  
È
 È  
È
 È
È m È


È È


È È
È  È m 
l
Sintaxe
È A sintaxe são regras detalhadas para cada
construção válida na linguagem C.
È As regas estão relacionadas com os ï   
       
È  
Definem as propriedades dos dados
manipulados em um programa.

6
Sintaxe
È ð


Expressam as partes do programa, podendo dar
significado para:
 ï  

 
 

ð  ï  

ð  

7
Sintaxe
È
 
È Especificam as ações que um programa deve
seguir em execução,definir e alterar valores, e
a chamada de funções de I/O são definidas
nas 
È As funções são entidades de operação básica
nos programas C.
È Existem funções básicas definidas em
bibliotecas.
8
Sintaxe
È Pode também serem definidas novas funções
nos programas desenvolvidos,nesse caso o
programador é quem vai definir se é
necessário implantar códigos específicos.
È Para um programa c obrigatório que a função

exista, ou seja todo programa c deve
começar com essa função.

9
Sintaxe
È Para que se possa construir uma função é
necessário saber que Os comentários são
feitos dessa forma /*Comentário*/ e não são
considerados na compilação.
È Cada instrução encerra com  ï



10
Sintaxe
È Estes são exemplos de programas com
funções simples:
Exemplo 1: Exemplo ü:
#include <stdio.h>/*Declaração da biblioteca que #include <stdio.h>
define printf*/ #include <conio.h>/*Biblioteca que define getche e getch*/
main() /*Função obrigatória*/
main() /*Função obrigatória*/ {
{ char carac /*Declaração de uma variável do tipo
int n = ü /*Declaração de uma variável do tipo Char(caracter)*/
int(inteiro)*/ printf(͞Digite um caracter: ͟) ) /*função printf*/
carac = getche() /*Função getche*/
printf(͞Endereco: %u, Ëalor: %d͟, n, &n) /*função printf(͞\n A tecla pressionada foi: %c͟, carac) ) /*função
printf*/ printf*/
} }

Exemplo 4:
Exemplo ´:
#include <stdio.h>
#include <stdio.h>
main()
main()
{
{
float anos, dias
char ch
printf(͞Informe sua idade em anos: ͟)
printf(͞Digite um caracter: ͟)
scanf(͞%f͟, &anos)
ch = getchar()
dias = anos*´6l
putchar(ch)
printf(͞Sua idade em dias e͛: %.0f \n͟, dias)
} 11
}
Sintaxe
È Um endereço na memória é visto como um
número inteiro sem sinal, por isso de
utilizarmos €no exemplo 01.
e mple
ne o e m l
e no o en
pon o l ne
o n e oo l
e e ee
e m l em n l
x ex e m l
l n e o lon o


Sintaxe
È  ï  

È São nomes usados para se fazer referência a
variáveis, funções, rótulos e vários outros
objetos definidos pelo usuário.
ï    ï



Sintaxe
È Quando você declara um  ï  
 

 ï !ï   
podem ser
colocados dentro da classe do tipo de objeto
de dado.
È Tipos inteiros:
r 2 si ne ro nsi ne r se ne ti o
si ne r 2 2 nteiro e its
nsi ne r 25 es o e si ne r se ne ti os
s ort 2 52 5 nteiro e its
nsi ne sort 2 es ot n o e s ort se ne ti os
int 2 52 5 nteiro e its;
nsi ne int 2 es ot n o e int se ne ti os
on 2 3 2 3 nteiro e enos 32 its;
nsi ne o 2 +3 es o e si ne r se ne ti os

4
Sintaxe
È Tipos de ponto flutuante:
float [ ] d itos de p e is o de i al
dou le d itos de i ais e p e is o aio ue do float
lon dou le d itos de i ais e p e is o aio ue do dou le

l
Sintaxe
È Operadores:
!
 
ï  "}=͞
 ïï *, /, e -
!
 
"  
 ï  ï,--
  
 -- mais alta,* / %, - mais baixa
!

ï
!
 

16
Estruturas de controle de fluxo
È Podemos dividir em três categorias.
È A primeira consiste em instruções condicionais
if e switch.
È A segunda são os comandos de controle de
loop o while, for e o do-while.
È A terceira contém instruções de desvio
incondicional goto.

17
Matrizes
È A matriz é um tipo de dado usado para
representar uma quantidade de variáveis que
são referenciadas pelo mesmo nome.
È !
ï    

È !
ï ! ï   

È !
ï ïï 


18
Manipular Strings
È Em C não existe um tipo de dado string, no seu
lugar é utilizado uma matriz de caracteres.
È Para manipular isto pode-se utilizar de algumas
funções pré definidas:
È
 "ï
È
 "ï
È
 "ï
È
 "ï
ï
È
 "ï

19
Ponteiros
È É uma variável que contém o endereço de
outra variável. Os ponteiros são utilizados para
alocação dinâmica, podendo substituir
matrizes com mais eficiência.
È Fornecem a maneira pelas quais funções
podem modificar os argumentos chamados.

ü0
Estruturas
È Ao manusearmos termos, informações que não são fáceis de
armazenar em variáveis escalares como são os tipos inteiros e
pontos flutuantes.
È Então estes são compostos com vários dos tipos básicos do C.
È As estruturas permitem uma organização dos dados e dividida
em campos e registros.
main(){
Ex1: int i
struct casaco { struct casaco p 0
int cor p 0 .cor=͚A͛
char fabricante p 0 .fabricante='F'
int preco p 0 .Preco=48ü
} printf(͞CorFabricante Preco\n})
for(i=0 i<1 i )
printf(}%d\t%c\t\t%d\n},p i .cor,p i .fabricante,p i .preco)
}
ü1
O que é a linguagem C 
È A história do C   começa com C.
È A razão para isso é fácil de entender: C   é construída
sobre a fundação da C.
È Assim, C   é um superconjunto de C. C   expandida e
melhorada a linguagem C para suportar programação
orientada a objetos.
È C   também adicionou várias outras melhorias para a
linguagem C, incluindo um conjunto alargado de rotinas de
biblioteca.
È No entanto, muito do espírito e do sabor do C   é
diretamente herdado de C. Portanto, para compreender e
apreciar C  , você precisa entender o }como e porquê}
por trás C.

üü
   % 

È C   foi inventada por Bjarne Stroustrup em 1979, na Bell
Laboratories em Murray Hill, New Jersey. Ele inicialmente
defendeu a nova linguagem }C com classes.} Entretanto,
em 198´ o nome foi mudado para C  .
È Stroustrup construído C   sobre a fundação de C,
incluindo todas as funcionalidades do C, atributos e
benefícios.
È Ele também aderiu à filosofia subjacente C do que o
programador, não a línguagem, está no comando.
È Neste ponto, é fundamental compreender que Stroustrup
não criou uma nova linguagem de programação. Em vez
disso, ele reforçou o idoma já bem sucedido.

ü´
Palavras reservadas

ad ase
a d_e a
as ar
a lass
ad l
r s
l s _ as
reak e
ü4
Sintaxe
È No c vamos perceber que irá mudar pouco
para a linguagem C,observe o exemplo abaixo:
Exemplo1:
#include <iostream> //Declaração da biblioteca que define cout
using namespace std //O programa inicia no Main()
int main() {
cout << }C é uma programação poderosa.}
return 0
}

ül
Usando operadores
È  Adição -Subtração *Multiplicação /Divisão
Exemplo ü:
#include <iostream>
using namespace std

int main(
){
int comprimento
int largura
int area
Comprimento=7
Largura=l
Area=comprimento*largura
Cout<<area
Return 0
}

ü6
Lendo entrada do teclado
È Para habilitar o usuário para inserir dados em um
programa a partir do teclado, você vai usar o
operador>>. Este é o C   operador de entrada. Para
ler a partir do teclado, use esta formula geral:
È cin >> var
È Aqui, cin é um identificador predefinido.
È Fica para o console de entrada e é fornecida
automaticamente pelo C  .
È Por padrão, o CIN é ligado ao teclado, embora possa
ser redirecionada para outros dispositivos.
È A variável que recebe a entrada é especificado pela
var.
ü7
Tipo de dados
þ   

 
   

O   
 
 
 
   
  

   

  
 
   
 

   




  
 
    
   

þ
 
 
  
   
  !  "#  
 !$    %    & þ'
 $(    
)    
      %  *+  ! 

   

 , % )  


   

 
   , % )  

 
   

 
  
    ,  % )  

*
  - 
  
.
  
þ#'/.  $(   
  

  /þ0,,þ     

  ï  

0
 

) 1 
+     
)



 
 
    +  
 
 
þ#'/.  $(   
  
UO  
/þ0,,þ     

  
 

) 

  
ü8
Operadores
È Operadores aritmeticos:
 Adição - Subtração * Multiplicãçãp / Divisão %
Modulo  Incremento -- Decremento
È Operadores lógicos e relacionais:
==Igual a
!= Diferente de
> Maior que
< Menor que
>=Maior ou igual a
<=Menor ou igual a
!(E), &&(AND), ||(OR) (Lógicos).
ü9
Classes e objetos
È A forma geral de uma classe:
A classe é criada através do uso da classe de palavras-
chave. A forma geral de uma declaração de classe é
uma classe simples conforme Ex1:
Ex1:
class-nome {
private dados e funcoes
public:
public dados e funcoes
}
Lista-objeto

´0
Classes e objetos
È Definindo uma classe e a criação de objetos:
Class veiculo{
Public:
Int passageiros //número de passageiros
Int Qtdcombus //Capacidade de combustivel em Litros
Int consumo //consumo por litro
}
- Ëariáveis de instância definidas pelo veículo ilustra a forma
que as variáveis de instância são declaradas em geral.
-A forma geral para declarar uma variável de instância é
mostrado aqui:
ï 
 

´1
Classes e objetos
A classe demonstrada acima será
implementada de maneira entendermos de
que forma iremos cria os objetos,pois ela
somente define três variáveis de instância:
passageiros ,Qtdcombus e consumo, ou seja
somente uma classe de dados. Ëeja o Exü:
//Exü:Este programa cria dois objetos veiculos
#include <iostream>
Using namespace std
´ü
Classes e objetos
//declarar a classe veiculo
Class veiculo{
Public:
Int passageiros //número de passageiros
Int qtdcombus //Capacidade de combustivel em Litros
Int consumo //consumo por litro
}
Int main(){
Ëeiculo moto //Criado objeto veiculo
Ëeiculo carro // Criado outro objeto veiculo
Int intervalo1,intervaloü
//atribuir valores para os campos em moto
moto.passageiros=ü
moto. qtdcombu=7
moto.consumo=l0
//Atribuir valores aos campos em carro
carro.passageiros=l
carro. Qtdcombu=ll
carro.consumo=1ü
´´
//Calculando o intervalo percorrido com um tanque cheio.
intervalo1=moto.qtdcombustivel*moto.consumo
Intervaloü=carro.qtdcombustivel*carro.consumo
Cout<<͞Moto pode levar͟<<moto.passageiros<<
͞por ͞<<intervalo1<<͞de tempo͟\n͟
Cout<<͞Carro pode levar͟<<carro.passageiros<<
͞por ͞<<intervaloü<<͞de tempo͟\n͟
return 0
}
Este exemplo demonstrou a criação de dois
objetos, sendo eles moto e carro, onde cada
um possui a copia das variáveis instanciadas
em veiculo podendo acessa-las sempre que
necessário

´4
Função de algumas bibliotecas C
È As bibliotecas de C são diferentes das bibliotecas de C. Apesar de
muitos compiladores de C suportarem as bibliotecas de C,
nenhum compilador exclusivamente de C suporta bibliotecas de
C.
È #include <stdio.h>
È Biblioteca bem básica para quem já programa
È Essa biblioteca é responsável pela entrada e saída }Standard
In/Out}, ou melhor, entrada e saída padrão. Nela encontramos
funções para esse tipo de coisa, o que pode ser a leitura do teclado,
escrita formatada (ou não) na tela e operações com arquivos.

È Algumas funções dessa biblioteca: fprintf, printf, fscanf, scanf,


getchar, putc, getc, fopen e fclose.

´l
Função de algumas bibliotecas C
È #include <ctype.h>
È Esta biblioteca serve para testar caracteres

È Testar caracteres, ou seja testar se é maiúsculo,


testar se é minúsculo, testar se é espaço, testar
dígito decimal... Além disso essa biblioteca
permite converter maiúscula em minúscula e
vice-versa.
È Algumas funções dela: isupper, islower, isspace,
isdigit, toupper e tolower.

´6
Função de algumas bibliotecas C
È #include <string.h>
È A biblioteca string é responsável por disponibilizar funções
para trabalhar com conjuntos de caracteres, isto é,
}strings}. Este }header} possui dois grupos de comandos,
os que começam com str e os que começam com mem.

È O primeiro grupo permite, por exemplo: copiar, concatenar,


comparar e ver o tamanho de uma string. As funções
referentes a isso são: strcpy, strcat, strcmp e strlen. As
funções do segundo grupo fazem coisas semelhantes como:
copiar, mover e comparar: memcpy, memmove, memcmp.

´7
Função de algumas bibliotecas C
È #include <math.h>
È Está biblioteca declara funções matemáticas que podem
servir para: achar a raiz quadrada, achar o seno, co-seno,
tangente, logaritmo na base 10. As funções referentes a isso
são: sqrt, sin, cos, tan, log10.

È Fora isso, um outro uso para declaração desta biblioteca é a


possibilidade de arredondar um número! Para isso usamos a
função que retorna o valor absoluto: fabs.

´8
Função de algumas bibliotecas C
È #include <stdlib.h>
È Ela é responsável pela conversões de números, as
alocações na memórias e outras funções. Com ela podemos
converter um }char} em um }double}, converter um }char}
para }long}, criar um número randômico, alocar na
memória, realocar na memória, desalocar da memória,
execução de comandos do sistema operacional
respectivamente. As funções citadas são: atof, atol, rand,
malloc, realloc, free e system.

È Também não podia deixar de falar que ela retorna o valor


absoluto de um número inteiro usando abs.

´9
Função de algumas bibliotecas C
È #include <time.h>
È Esta biblioteca declara funções para
manipularmos a data e hora. Podemos usar
esta biblioteca para pegar o horário do
processador, pegar o horário do sistema,
fazermos a diferença entre dois horários. As
funções referentes são: cloc , time e difftime.

40
Função de algumas bibliotecas C
2 ï

È  01    

"   



   
 02  
  
 
 3
È 01        
È  01        
È   01     "     

 2    #%4
3
È 01     55
È 01     "
È 601     |5
È 
01    

"

41
Função de algumas bibliotecas C
   ï




È <fstream> - manipulação de fluxo de dados em arquivo


È <ios> - declaração mais geral de fluxo de dados
È <iostream> - manipulação de fluxo de dados padrão do sistema
(entrada padrão, saída padrão e saída de erros padrão)
È <iosfwd> - declaração dos fluxos de dados presentes na linguagem
È <iomanip> - manipulação da apresentação e do processamento de
fluxos de dados
È <istream> - manipulação de entrada de dados
È <ostream> - manipulação de saída de dados
È <sstream> - manipulação de fluxo de dados em cadeia de caracteres
È <streambuf> - manipulação de buffers de fluxo de dados


Função de algumas bibliotecas C

  

  

È <complex> - manipulação de número complexo
È <numeric> - operações com conjuntos numéricos
È <valarray> - arranjo de valores mutáveis
ï# 
2
È <exception> - manipulação de exceção
È <limits> - manipulação de limites numéricos dos tipos
embutidos na linguagem
È <new> - manipulação de alocação e desalocação de
memória
È <typeinfo> - auxílio para o RTTIdo C


IDE para C e C
È ! ï$ 
ï 
http://www.microsoft.com/express/Downloads/
È Dev-C  .-http://bloodshed-dev-c.en.softonic.com/
È A
2 http://www.brothersoft.com/borland-c-
builder-118ü49.html
È þï

http://netbeans.org/features/cpp/index pt BR.html
È ¢  UUU   
È 2
http://www.inf.pucrs.br/~flash/cbp/instala tc/instala tc.ht
ml
È 2 A -http://www.codebloc s.org/

44