Linguagens de programação C-C++

44
Linguagens de programação C / C++ Alunos: Fagner Maciel Guilherme Professor:Thiago da Silva Weingartner FACULADES ANGLO-AMERICANO DE CAXIAS DO SUL – FAACS CIÊNCIAS DA COMPUTAÇÃO 1

Transcript of Linguagens de programação C-C++

Page 1: Linguagens de programação C-C++

1

Linguagens de programaçãoC / C++

Alunos:Fagner Maciel

GuilhermeProfessor:Thiago da Silva Weingartner

FACULADES ANGLO-AMERICANO DE CAXIAS DO SUL – FAACSCIÊNCIAS DA COMPUTAÇÃO

Page 2: Linguagens de programação C-C++

2

O que é a linguagem C

• O C é uma linguagem de propósito geral, sendo adequada à programação estruturada. Porem é mais utilizada para escrever compiladores, analisadores léxicos,bancos de dados, editores de texto, entre outros.

• A linguagem C pertence a uma família de linguagens cujas características são:

• Portabilidade, Modularidade, Compilação separada, Recursos de baixo nível, Geração

de código eficiente, Confiabilidade, Regularidade, simplicidade e Facilidade de uso.

Page 3: Linguagens de programação C-C++

3

Um pouco de história

• A linguagem C foi criada por Dennis Ritchie, em 1972, no centro de Pesquisas da Bell Laboratories.

• Sua primeira utilização importante foi a reescrita do Sistema Operacional UNIX, que até então era escrito em assembly.

• Na década de 1970 o UNIX saiu do laboratório para ser liberado para as universidades.

• Por volta de 1980,varias empresas desenvolveram plataformas compatíveis com vários outros sistemas operacionais.

Page 4: Linguagens de programação C-C++

4

Visão geral de um programa C

• Editor (módulo fonte em C)

• Pré-processador (novo fonte expandido)

• Compilador (arquivo objeto)

• Lincador (executável)

Page 5: Linguagens de programação C-C++

5

Palavras reservadas•auto •if

•break •int

•case •long

•char •register

•const •return

•continue •short

•default •signed

•do •sizeof

•double •static

•else •struct

•enum •switch

•extern •typedef

•float •union

•for •unsigned

•goto •void

•while •volatile

Page 6: Linguagens de programação C-C++

6

Sintaxe

• A sintaxe são regras detalhadas para cada construção válida na linguagem C.

• As regas estão relacionadas com os tipos, as declarações, as funções e as expressões.

• Tipos:Definem as propriedades dos dados

manipulados em um programa.

Page 7: Linguagens de programação C-C++

7

Sintaxe

• Declarações:Expressam as partes do programa, podendo dar

significado para:Identificador;

Alocar memória; Definir conteúdo inicial;

Definir funções;

Page 8: Linguagens de programação C-C++

8

Sintaxe

• Funções:• 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 expressões.

• As funções são entidades de operação básica nos programas C.

• Existem funções básicas definidas em bibliotecas.

Page 9: Linguagens de programação C-C++

9

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 main() exista, ou seja todo programa c deve começar com essa função.

Page 10: Linguagens de programação C-C++

10

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 ; (Ponto e virgula).

Page 11: Linguagens de programação C-C++

11

Sintaxe

Exemplo 1:#include <stdio.h>/*Declaração da biblioteca que define

printf*/main() /*Função obrigatória*/{int n = 2;/*Declaração de uma variável do tipo int(inteiro)*/printf(“Endereco: %u, Valor: %d”, n, &n);/*função printf*/

}

• Estes são exemplos de programas com funções simples:

Exemplo 2:#include <stdio.h>#include <conio.h>/*Biblioteca que define getche e getch*/main() /*Função obrigatória*/{char carac; ;/*Declaração de uma variável do tipo Char(caracter)*/printf(“Digite um caracter: ”); );/*função printf*/carac = getche();/*Função getche*/printf(“\n A tecla pressionada foi: %c”, carac); );/*função printf*/}

Exemplo 3:#include <stdio.h>main(){char ch;printf(“Digite um caracter: ”);ch = getchar();putchar(ch);}

Exemplo 4:#include <stdio.h>main(){float anos, dias;printf(“Informe sua idade em anos: ”);scanf(“%f”, &anos);dias = anos*365;printf(“Sua idade em dias e’: %.0f \n”, dias);}

Page 12: Linguagens de programação C-C++

12

Sintaxe• Um endereço na memória é visto como um

número inteiro sem sinal, por isso de utilizarmos %u no exemplo 01.

%c caracter simples%d inteiro decimal

%e notação científica%f ponto flutuante

%o inteiro octal %s cadeia de caracteres

%u decimal sem sinal%x hexadecimal%l inteiro longo

Page 13: Linguagens de programação C-C++

13

Sintaxe

• Identificadores:• 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.

int f; /*é != de int F;*/

Page 14: Linguagens de programação C-C++

14

Sintaxe• Quando você declara um identificador dá a

ele um tipo. Os tipos principais podem ser colocados dentro da classe do tipo de objeto de dado.

• Tipos inteiros:char 0,128

signed char (-128,128)unsigned char 0,256

short (2-E15,2E15)unsigned sort -0,216

int 2E-15,2E15unsigned int -0,216

long (2-E31,2E31)unsigned log (-2E+31)

Mesmo tamanho que int sem negativosInteiro de menos 32 bits;

Mesmo que signed char sem negativos

Igual a signed char ou unsigned char sem negativoInteiro de 8 bits

Mesmo que signed char sem negativosInteiro de 16 bits

Mesmo tamanho que short sem negativos Inteiro de 16 bits;

Page 15: Linguagens de programação C-C++

15

Sintaxe

• Tipos de ponto flutuante:float [3.4E-38, 3.4E+38]double (1.7-308,1.7+308)long double (1.7-308,1.7+308) 10 dígitos decimais e precisão maior que do double

6 dígitos de precisão decimal10 dígitos decimais e precisão maior que do float

Page 16: Linguagens de programação C-C++

16

Sintaxe

• Operadores:Operador de atribuição "=“;Aritméticos *, /, + e -;Operadores de relação e lógicos;Incremento e decremento ++,--;Precedência ++ -- mais alta,* / %,+ - mais baixa;Operador cast;Operador sizeof;

Page 17: Linguagens de programação C-C++

17

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.

Page 18: Linguagens de programação C-C++

18

Matrizes

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

• Matriz unidimensional;• Matriz Multidimensional;• Matrizes estáticas;

Page 19: Linguagens de programação C-C++

19

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:

• Função gets()• Função puts()• Função strcpy()• Função strcat()• Função strcmp()

Page 20: Linguagens de programação C-C++

20

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.

Page 21: Linguagens de programação C-C++

21

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.Ex1:struct casaco { int cor;char fabricante;int preco;};;

main(){int i;struct casaco p[0];p[0].cor=‘A’;p[0].fabricante='F';p[0].Preco=482;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);}

Page 22: Linguagens de programação C-C++

22

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.

Page 23: Linguagens de programação C-C++

23

Um pouco de história

• 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 1983 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.

Page 24: Linguagens de programação C-C++

24

Palavras reservadas

and case and_eq catch asm char auto class bitand compl bitor const bool const_cast break continue

Page 25: Linguagens de programação C-C++

25

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 coutusing namespace std; //O programa inicia no Main() int main() { cout << "C++ é uma programação poderosa."; return 0; }

Page 26: Linguagens de programação C-C++

26

Usando operadores• + Adição;-Subtração;*Multiplicação;/Divisão;Exemplo 2:#include <iostream>using namespace std;

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

Page 27: Linguagens de programação C-C++

27

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.

Page 28: Linguagens de programação C-C++

28

Tipo de dadosNome Bytes* Descrição Intervalo*

char 1 caractere ou número inteiro com tamanho de 8 bits.

signed: -128 até 127

unsigned: 0 até 255

short 2 número inteiro com tamanho de 16 bits.

signed: -32768 até 32767

unsigned: 0 até 65535

long 4 número inteiro com tamanho de 32 bits.

signed:-2147483648 até 2147483647

unsigned: 0 até 4294967295

int *

Número inteiro. Seu tamanho tradicionalmente depende no tamanho do tipo Word do sistema, assim no MSDOS possui 16 bits,

enquanto em sistemas de 32 bits (como Windows 9x/2000/NT e sistemas que funcionam sob modo protegido em sistemas x86)

possui 32 bits (4 bytes). Veja short, long

float 4 número real. 3.4e + / - 38 (7 digitos)

double 8 número real com dupla precisão. 1.7e + / - 308 (15 digitos)

long double 10 número real comprido com dupla precisão. 1.2e + / - 4932 (19 digitos)

bool 1

Valor boleano. Pode assumir um dos dois valores: true ou false NOTA: esse é um tipo que foi adicionado recentemente pelo padrão

ANSI-C++. Nem todos os compiladores suportam-no. true ou false

wchar_t 2

Caractere largo. Foi projetado como um tipo para guardar caracteres internacionais de um conjunto de caracteres de dois

bytes. NOTA: esse é um tipo que foi adicionado recentemente pelo padrão ANSI-C++. Nem todos os compiladores suportam-no. caracteres largos

Void Sem valor

Page 29: Linguagens de programação C-C++

29

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

Page 30: Linguagens de programação C-C++

30

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 funcoespublic: public dados e funcoes}Lista-objeto;

Page 31: Linguagens de programação C-C++

31

Classes e objetos• Definindo uma classe e a criação de objetos:Class veiculo{Public:Int passageiros;//número de passageirosInt Qtdcombus;//Capacidade de combustivel em LitrosInt consumo;//consumo por litro };- Variá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:type var-nome;

Page 32: Linguagens de programação C-C++

32

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. Veja o Ex2:

//Ex2:Este programa cria dois objetos veiculos;#include <iostream>Using namespace std;

Page 33: Linguagens de programação C-C++

33

Classes e objetos//declarar a classe veiculoClass veiculo{Public:Int passageiros;//número de passageirosInt qtdcombus;//Capacidade de combustivel em LitrosInt consumo;//consumo por litro };Int main(){Veiculo moto;//Criado objeto veiculoVeiculo carro;// Criado outro objeto veiculoInt intervalo1,intervalo2;//atribuir valores para os campos em motomoto.passageiros=2;moto. qtdcombu=7;moto.consumo=50;//Atribuir valores aos campos em carrocarro.passageiros=5;carro. Qtdcombu=55;carro.consumo=12;

Page 34: Linguagens de programação C-C++

34

//Calculando o intervalo percorrido com um tanque cheio.intervalo1=moto.qtdcombustivel*moto.consumo;Intervalo2=carro.qtdcombustivel*carro.consumo;Cout<<“Moto pode levar”<<moto.passageiros<<

“por “<<intervalo1<<“de tempo”\n”;Cout<<“Carro pode levar”<<carro.passageiros<<

“por “<<intervalo2<<“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

Page 35: Linguagens de programação C-C++

35

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.

Page 36: Linguagens de programação C-C++

36

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.

Page 37: Linguagens de programação C-C++

37

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.

Page 38: Linguagens de programação C-C++

38

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.

Page 39: Linguagens de programação C-C++

39

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.

Page 40: Linguagens de programação C-C++

40

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: clock, time e difftime.

Page 41: Linguagens de programação C-C++

41

Containers• <bitset> - manipulação de arranjo de bits, algo parecido com

vector<bool> (que é uma construção não recomendada)• <deque> - manipulação de lista duplamente ligada• <list> - manipulação de lista simplesmente ligada• <map> - manipulação de conjunto associativo ordenado

(associação: chave → valor)• <queue> - manipulação de lista FIFO• <set> - manipulação de conjunto• <stack> - manipulação de lista LIFO• <vector> - manipulação de arranjo

Função de algumas bibliotecas C++

Page 42: Linguagens de programação C-C++

42

Streams e entrada/saída• <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++

Page 43: Linguagens de programação C-C++

43

Funcionalidades numéricas• <complex> - manipulação de número complexo• <numeric> - operações com conjuntos numéricos• <valarray> - arranjo de valores mutáveis

Suporte à linguagem C++• <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++

Função de algumas bibliotecas C++

Page 44: Linguagens de programação C-C++

44

IDE para C e C++

• Microsoft Visual Studio http://www.microsoft.com/express/Downloads/

• Dev-C + +.-http://bloodshed-dev-c.en.softonic.com/• Borland C++.-http://www.brothersoft.com/borland-c++-

builder-118249.html• Netbeans-http://netbeans.org/features/cpp/

index_pt_BR.html• Eclipse.- www.eclipse.org/• Turbo C.-

http://www.inf.pucrs.br/~flash/cbp/instala_tc/instala_tc.html• Code::Blocks-http://www.codeblocks.org/