SlideShare uma empresa Scribd logo
3
Mais lidos
7
Mais lidos
8
Mais lidos
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Palestra: Introdu¸c˜ao ao C++
Lucas Santana Lellis
lellis@unifesp.br
PESL - Programa de Educa¸c˜ao em Software livre
Universidade Federal de S˜ao Paulo
20 de Setembro de 2013
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
1 Introdu¸c˜ao
Recursos
C e C++
2 Conceitos B´asicos
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
3 Objetos e Classes
Objetos
Classes
4 Recursos interessantes
Containers, Templates e Operators
5 Bibliografia e Conclus˜ao
Bibliografia
O que vem pela frente?
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Recursos
C e C++
Introdu¸c˜ao
Foi desenvolvido por Bjarne Stroustrub em 1983, com o nome
”C with classes”
Considerada uma linguagem de m´edio n´ıvel, pois combina
caracter´ısticas de linguagens de alto e baixo n´ıveis.
Possibilita um aprendizado gradual, vocˆe vai aprendendo
conforme as necessidades dos seus projetos.
Surgiu a partir da linguagem C. Apesar disso, a sua forma de
programar ´e muito diferente.
Caracter´ısticas emprestadas das linguagens: Simula 67,
ALGOL 68, Ada, CLU e ML.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Recursos
C e C++
Recursos
´E uma C melhor
Suporta abstra¸c˜ao de dados
Suporte `a orienta¸c˜ao a objetos
Heran¸ca m´ultipla
Programa¸c˜ao gen´erica (Templates)
Fun¸c˜oes virtuais
Sobrecarga de operadores
Tratamento de exce¸c˜oes
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Recursos
C e C++
C e C++
Os c´odigos em C podem ser reaproveitados normalmente em
C++, assim, torna-se desnecess´aria a reescritura dos c´odigos.
Muitas fun¸c˜oes da biblioteca do C podem ser utilizadas em
c´odigos de C++, tornando mais f´acil a adapta¸c˜ao dos
desenvolvedores e de seus projetos.
Sugest˜oes para programadores C:
Declare uma vari´avel somente quando for utiliz´a-la de fato,
inclusive dentro de la¸cos de repeti¸c˜ao (for)
N˜ao use Malloc(), o operador new faz melhor a mesma tarefa.
E, em vez de realloc(), tente vector.
Minimize a utiliza¸c˜ao de arrays primitivos e strings ao estilo de
C. As classes string e vector da biblioteca padr˜ao do C++ s˜ao
mais completas e vers´ateis.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Conceitos B´asicos
Nesse trecho vamos aprender alguns conceitos b´asicos do C++:
A estrutura de um programa;
Os tipos de dados b´asicos e operadores;
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
A estrutura de um programa
Provavelmente, a melhor forma de aprender uma linguagem de
programa¸c˜ao ´e escrevendo um programa, vamos come¸car
lembrando como seria uma implementa¸c˜ao em C do famoso
programa ”Hello World”:
Exemplo 01 - Hello World em C
//Exemplo do programa em C
#include <stdio.h>
#include <stdlib.h>
int main ()
{
printf("Hello World!");
return 0;
}
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Vejamos agora, o mesmo programa escrito em C++:
Exemplo 02 - Hello World em C++
//Nosso primeiro programa em C++
#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World!";
return 0;
}
A estrutura do programa em C++ ´e muito semelhante `a da
linguagem C. A declara¸c˜ao de vari´aveis e fun¸c˜oes, os coment´arios,
os agrupamentos e os la¸cos de repeti¸c˜ao permanecem os mesmos.
Percebe-se a utiliza¸c˜ao de novos operadores e fun¸c˜oes diferentes
para entrada e sa´ıda do console. A fun¸c˜ao cout imprime uma
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Vari´aveis, tipos de dados e operadores
Em C++, assim como era em C, ´e necess´ario declarar uma vari´avel
em um tipo de dados antes de poder utiliz´a-la, ela deve ser
declarada com um tipo e um nome. Por exemplo:
Exemplo 03: Declara¸c˜ao de vari´aveis em C++
int main () {
int a = 2, b(3), soma; /*Podemos declarar as valores
iniciais para as variaveis de duas formas diferentes*/
soma = a + b + 2;
return 0;
}
Cuidado ao nomear suas vari´aveis, elas n˜ao podem sobrescrever os
identificadores, que s˜ao palavras reservadas pela linguagem, nem
sobrescrever outras vari´aveis com o mesmo nome.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Podemos citar alguns tipos de dados fundamentais:
Tipos fundamentais
bool Booleano*, poss´ıveis valores s˜ao true ou false.
char Caract´ere, exemplo: ’a’, ’z’ e ’9’.
int N´umero inteiro, como 1, 12545 e 0.
short N´umero inteiro pequeno
long N´umero inteiro grande
float N´umero ponto flutuante.
double N´umero ponto flutuante com dupla precis˜ao.
ng double N´umero p. f. longo com dupla precis˜ao.
*O tipo bool ´e o ´unico que ainda n˜ao existia na linguagem C.
Obs. : Ao adicionar ”unsigned” antes de qualquer um desses tipos
retira-se a possibilidade de existirem numeros negativos.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Para qualquer um deles, podemos utilizar os seguintes operadores:
Operadores aritm´eticos
+ soma
- subtra¸c˜ao
* multiplica¸c˜ao
/ divis˜ao
% resto da divis˜ao
Operadores de compara¸c˜ao
== igual
!= diferente
< menor
> maior
<= menor ou igual
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
strings
O C++ oferece um suporte mais completo `as strings, agora
definidas pela classe ”string”. Manipul´a-las se tornou uma tarefa
muito mais simples. Veja o exemplo abaixo:
Exemplo 04 - Manipula¸c˜ao de strings
int main (){
string nome = "Bjarne";
string sobrenome("Stroustrup");
string completo = nome + ’ ’ + sobrenome;
cout << "Seu nome completo eh: " << completo << endl;
return 0;
}
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Um detalhe da linguagem C++, ´e que, para declarar um vetor, ou
matriz primitivos com um tamanho x, n˜ao ´e mais necess´ario
realizar a aloca¸c˜ao dinˆamica, exemplo:
Declara¸c˜ao de vetor de tamanho x
int main (){
int tamanho;
cin >> tamanho;
int[tamanho] vetor; //Isso nao e possivel em C
}
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
A estrutura de um programa
Vari´aveis, tipos de dados e operadores
Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores
Em alguns casos n˜ao ´e poss´ıvel declarar um vetor, ou matriz
diretamente, a aloca¸c˜ao dinˆamica de vari´aveis agora ´e feita atrav´es
do operador new:
Aloca¸c˜ao dinˆamica de uma matriz
int main (){
int lin, col;
cin >> lin >> col;
int** mat = new int* [lin]; //Alocando um vetor de
ponteiros
for(int i = 0; i < lin; i++){
mat[ i ] = new int [ col ];
}
}
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Objetos
Classes
Objetos
O Mundo Real ´e formado por objetos que interagem entre si (casa,
carro, aluno, professor, etc)
O que ´e um objeto?
Qualquer coisa, real ou abstrata, com limites e significados bem
definidos para a aplica¸c˜ao. Possuem um estado (valores de
atributos) e oferecem opera¸c˜oes (comportamentos) para examinar
ou alterar este estado.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Objetos
Classes
Podemos representar um objeto como uma entidade individual, que
possui seus atributos e suas fun¸c˜oes.
Em C++, os atributos seriam as vari´aveis que guardam suas
informa¸c˜oes. E as fun¸c˜oes, ou ( m´etodos ), s˜ao fun¸c˜oes usadas
para interagir com esse objeto, como uma fun¸c˜ao usada para
mudar algum atributo, por exemplo.
Pera a´ı!
S´o um detalhe, n´os n˜ao programamos objetos diretamente!!
Temos que criar uma CLASSE de objetos antes.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Objetos
Classes
Classes
O que ´e uma classe?
´E uma forma de CLASSIFICAR um tipo de objetos.. Ou seja,
quando dois objetos possuem o mesmo tipo de atributos e as
mesmas fun¸c˜oes, eles pertencem a uma mesma classe.
Assim que criamos uma classe, podemos INSTANCIAR um objeto,
com seus respectivos atributos, que s˜ao individuais para cada
objeto.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Objetos
Classes
Classes em C++
Declarando uma classe.
class nome_da_classe {
//Atributos
int X, Y;
public:
//Metodos
int funcao ( int val ) {
return ( X*val + Y );
}
};
Podemos decidir ”o quˆe” e ”como” as outras classes interagem
com a nossa classe. Por meio do ”encapsulamento”, que ser´a
melhor trabalhado nas pr´oximas palestras.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Containers, Templates e Operators
Recursos interessantes
Nessa parte, ser˜ao apresentados alguns recursos interessantes do
C++, que ser˜ao trabalhados individualmente nas pr´oximas
palestras. Fique atento `as atualiza¸c˜oes da p´agina oficial do PESL!
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Containers, Templates e Operators
Containers, Templates e Operators
O que s˜ao Containers?
Containers s˜ao classes especiais usadas para armazenar qualquer
tipo de objeto ou vari´avel. Muitas estruturas de dados conhecidas
j´a est˜ao implementadas na forma de container, como vetor, fila e
pilha, e o melhor, eles podem ser aplicados para qualquer objeto ou
vari´avel, basta passar o tipo de dados ( ou a classe ) como
parˆametro, ou seja, elas s˜ao classes ”Template”.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Containers, Templates e Operators
Template? Nunca ouvi falar..
Templates s˜ao classes que recebem um tipo de dados, ou at´e outra
classe como parˆametro, ´e uma caracter´ıstica muito favor´avel `a
programa¸c˜ao gen´erica, permitindo que as mesmas linhas de c´odigo
sejam aplicadas em outras partes do programa, ou at´e em outros
projetos. Esse recurso ´e muito ´util no desenvolvimento de
bibliotecas de c´odigo aberto, j´a que os usu´arios podem ter mais
flexibilidade ao usar seus recursos.
Vocˆes ainda v˜ao precisar de um tempo para aprender a usar classes,
e um pouco mais de experiˆencia em C++ para usar e explorar bem
esses recursos. Nas pr´oximas palestras vamos apresentar cada um
desses recursos com muito mais cuidado, mostrando exemplos de
c´odigos, e fazendo exerc´ıcios durante a oficina.
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Bibliografia
O que vem pela frente?
Referˆencias Bibliogr´aficas
Livros e Sites interessantes
1 Bjarne Stroustrup - A linguagem de programa¸c˜ao C++
2 Scott Meyers - Effective C++, Effective STL e More Effective
C++
3 http://www.cplusplus.com/
4 http://www.cplusplus.com/doc/tutorial/
5 http://punchlet.wordpress.com/
6 http://stackoverflow.com/
7 http://www.parashift.com/c++-faq-lite/index.html
Lucas Lellis Introdu¸c˜ao ao C++
Introdu¸c˜ao
Conceitos B´asicos
Objetos e Classes
Recursos interessantes
Bibliografia e Conclus˜ao
Bibliografia
O que vem pela frente?
O que vem pela frente?
Teremos, em breve, um ciclo de palestras, para podermos explorar
essa linguagem ao m´aximo.. Fique de olho no nosso portal e na
p´agina oficial do facebook. Todos as apresenta¸c˜oes desse ciclo de
palestras ser˜ao colocadas no moodle do PESL!
Nossos canais de comunica¸c˜ao
1 MOODLE do PESL - Curso de C++ :
http://pinguim.pro.br/moodle/course/view.php?id=6
2 Portal do Programa de Educa¸c˜ao em Software Livre
http://pinguim.pro.br/
3 Facebook: https://www.facebook.com/PESL.PInguim
4 Youtube: http://www.youtube.com/user/pinguimvideos/
Lucas Lellis Introdu¸c˜ao ao C++

Mais conteúdo relacionado

PDF
Lógica de programação em ppt
PPTX
Algoritmos - Formas de Representação de Algoritmos
PDF
Descritiva Narrativa (Lógica de Programação)
PPTX
Estrutura de Dados - Conceitos fundamentais
PDF
Fluxograma (Lógica de Programação)
PDF
Python - Introdução
PPT
Excel Básico
PDF
Lógica de Programação e Algoritmos
Lógica de programação em ppt
Algoritmos - Formas de Representação de Algoritmos
Descritiva Narrativa (Lógica de Programação)
Estrutura de Dados - Conceitos fundamentais
Fluxograma (Lógica de Programação)
Python - Introdução
Excel Básico
Lógica de Programação e Algoritmos

Mais procurados (20)

PPTX
Introdução a linguagem C# (CSharp)
PDF
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
ODP
Aula01 - Logica de Programação
PDF
Estrutura de Dados - Aula 01 - Apresentação
TXT
Exercicios resolvidos visuAlg
PDF
Introdução a Linguagem de Programação C
PDF
Aula 1 - Introdução a POO
PDF
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
PDF
1.Introdução Banco de Dados
PDF
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
PDF
PHP - Introdução
PDF
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
PDF
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
PDF
Pacote office
PDF
Aula I - Word
PPTX
Lógica de programação { para iniciantes }
PDF
Programação Web com HTML e CSS
PDF
Introdução à Programação
PDF
Algoritmos e lp parte 4-vetores matrizes e registros
PPTX
JAVA - Herança
Introdução a linguagem C# (CSharp)
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Aula01 - Logica de Programação
Estrutura de Dados - Aula 01 - Apresentação
Exercicios resolvidos visuAlg
Introdução a Linguagem de Programação C
Aula 1 - Introdução a POO
Paradigmas de Programação - Imperativo, Orientado a Objetos e Funcional
1.Introdução Banco de Dados
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
PHP - Introdução
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Pacote office
Aula I - Word
Lógica de programação { para iniciantes }
Programação Web com HTML e CSS
Introdução à Programação
Algoritmos e lp parte 4-vetores matrizes e registros
JAVA - Herança
Anúncio

Destaque (14)

PPTX
SubProgramas
PPTX
Presentation on C++ Programming Language
PDF
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
PDF
599026
PDF
Aula 12 - Exercícios vetores unidimensionais
PDF
Apresentação c++ UFC-Quixadá
PDF
Aula 02 - Classes em C++ ( Parte 1 )
ODP
Aula c++ estruturas de dados
PPTX
TRABALHO PARADIGMAS - C++
PDF
Aula 13 - Matrizes
PPT
Aula1 c++ builder
PPTX
C++ Funções
PPTX
C++ Presentation
PPT
C++ programming
SubProgramas
Presentation on C++ Programming Language
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
599026
Aula 12 - Exercícios vetores unidimensionais
Apresentação c++ UFC-Quixadá
Aula 02 - Classes em C++ ( Parte 1 )
Aula c++ estruturas de dados
TRABALHO PARADIGMAS - C++
Aula 13 - Matrizes
Aula1 c++ builder
C++ Funções
C++ Presentation
C++ programming
Anúncio

Semelhante a Aula 01 - Introdução ao C++ (20)

PDF
Aula02
PDF
Aula03
PDF
Aula 03 - Classes em C++ ( Parte 2 )
PDF
PDF
ebook-completo c# o melhor para começar no c#
PPTX
Introdução ao LINQ
PDF
Introducao ao python - Luciana Mota
PDF
Aula 04 - Templates e Operators
PDF
Aula04
PPTX
Java - Visão geral e Exercícios
PDF
Tutorial aed iii 009 - algoritmo de ordenação heapsort
PDF
Semanaupecaruaru2013 c++para iniciantes
PPTX
Introducao basica-linguagem-java
PPTX
Java5, conceitos sobre a linguagem mais usada
PDF
Slide_Python.pdf
PPTX
Palestra: LINQ via C#
PDF
Apostila - Desenvolvimento Web com ASP.NET
PDF
apostila-desenvolvimento-asp-net
PDF
Tutorial aed iii 003 - algoritmo de ordenação shellsort
PPT
Linguagens Poo
Aula02
Aula03
Aula 03 - Classes em C++ ( Parte 2 )
ebook-completo c# o melhor para começar no c#
Introdução ao LINQ
Introducao ao python - Luciana Mota
Aula 04 - Templates e Operators
Aula04
Java - Visão geral e Exercícios
Tutorial aed iii 009 - algoritmo de ordenação heapsort
Semanaupecaruaru2013 c++para iniciantes
Introducao basica-linguagem-java
Java5, conceitos sobre a linguagem mais usada
Slide_Python.pdf
Palestra: LINQ via C#
Apostila - Desenvolvimento Web com ASP.NET
apostila-desenvolvimento-asp-net
Tutorial aed iii 003 - algoritmo de ordenação shellsort
Linguagens Poo

Mais de PeslPinguim (20)

PDF
Introdução ao Arduino
PPTX
Aula 4 redes Inclusão Digital
PPTX
Aula 3 parte 2 software Inclusão Digital
PPTX
Aula 3 software Inclusão Digital
PPTX
Aula 2 parte 2 hardware Inclusão Digital
PPTX
Aula 2 hardware Inclusão Digital
PPTX
Apresentação1
PPT
Aula 1 apresentacao
PPTX
Aula 5 internet Inclusão Digital
PPTX
Apresentação1_
PPTX
Curso Básico de Java - Aula 10
PPTX
Curso Básico de Java - Aula 5
PPTX
Curso Básico de Java - Aula 4
PPTX
Curso Básico de Java - Aula 1
PPTX
Curso Básico de Java - Aula 7
PPTX
Curso Básico de Java - Aula 3
PPTX
Curso Básico de Java - Aula 2
PPTX
Curso Básico de Java - Aula 9
PPTX
Curso Básico de Java - Aula 8
PDF
Eletrônica aplicada - interruptor sonoro
Introdução ao Arduino
Aula 4 redes Inclusão Digital
Aula 3 parte 2 software Inclusão Digital
Aula 3 software Inclusão Digital
Aula 2 parte 2 hardware Inclusão Digital
Aula 2 hardware Inclusão Digital
Apresentação1
Aula 1 apresentacao
Aula 5 internet Inclusão Digital
Apresentação1_
Curso Básico de Java - Aula 10
Curso Básico de Java - Aula 5
Curso Básico de Java - Aula 4
Curso Básico de Java - Aula 1
Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 3
Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 9
Curso Básico de Java - Aula 8
Eletrônica aplicada - interruptor sonoro

Último (20)

PPTX
A História da Europa na Baixa Idade Média.pptx
PPTX
disciplulado curso preparatorio para novos
DOCX
Mapa das Américas Colonial Completo.docx
PPTX
Realismo e Naturalismo: Aluísio Azevedo.
PPTX
Revolução Industrial - Aula Expositiva - 3U4.pptx
PDF
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
PDF
A Revolução Francesa de 1789 slides história
PDF
A provisão de jojuador (ramadã) islamismo
PDF
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
PDF
DAQUISIÇÃO E DESENVOLVIMENTO DA FALA 12 A 24 MESES
PPTX
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
DOCX
Mapa da América Central Colonial - Metrópoles e Colônias.docx
PDF
embriologia_animal_aula_share_2026_semestre
PPTX
Aula 13 - Tópico Frasal - Argumentação.pptx
PDF
saeb_documentos_de_referencia_versao_1.0.pdf
PPTX
Slides 1 - Intertextualidade_ paródia, citação e paráfrase (1).pptx
PDF
PPC-Letras-Português_Licenciatura_CCHE.pdf
PDF
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
PPTX
Ciências da Natureza e suas áreas de desenvolvimento
PDF
Cantores.pdf-Deslandes, Tinoco e Zambujo
A História da Europa na Baixa Idade Média.pptx
disciplulado curso preparatorio para novos
Mapa das Américas Colonial Completo.docx
Realismo e Naturalismo: Aluísio Azevedo.
Revolução Industrial - Aula Expositiva - 3U4.pptx
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
A Revolução Francesa de 1789 slides história
A provisão de jojuador (ramadã) islamismo
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
DAQUISIÇÃO E DESENVOLVIMENTO DA FALA 12 A 24 MESES
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
Mapa da América Central Colonial - Metrópoles e Colônias.docx
embriologia_animal_aula_share_2026_semestre
Aula 13 - Tópico Frasal - Argumentação.pptx
saeb_documentos_de_referencia_versao_1.0.pdf
Slides 1 - Intertextualidade_ paródia, citação e paráfrase (1).pptx
PPC-Letras-Português_Licenciatura_CCHE.pdf
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
Ciências da Natureza e suas áreas de desenvolvimento
Cantores.pdf-Deslandes, Tinoco e Zambujo

Aula 01 - Introdução ao C++

  • 1. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Palestra: Introdu¸c˜ao ao C++ Lucas Santana Lellis lellis@unifesp.br PESL - Programa de Educa¸c˜ao em Software livre Universidade Federal de S˜ao Paulo 20 de Setembro de 2013 Lucas Lellis Introdu¸c˜ao ao C++
  • 2. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao 1 Introdu¸c˜ao Recursos C e C++ 2 Conceitos B´asicos A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores 3 Objetos e Classes Objetos Classes 4 Recursos interessantes Containers, Templates e Operators 5 Bibliografia e Conclus˜ao Bibliografia O que vem pela frente? Lucas Lellis Introdu¸c˜ao ao C++
  • 3. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Recursos C e C++ Introdu¸c˜ao Foi desenvolvido por Bjarne Stroustrub em 1983, com o nome ”C with classes” Considerada uma linguagem de m´edio n´ıvel, pois combina caracter´ısticas de linguagens de alto e baixo n´ıveis. Possibilita um aprendizado gradual, vocˆe vai aprendendo conforme as necessidades dos seus projetos. Surgiu a partir da linguagem C. Apesar disso, a sua forma de programar ´e muito diferente. Caracter´ısticas emprestadas das linguagens: Simula 67, ALGOL 68, Ada, CLU e ML. Lucas Lellis Introdu¸c˜ao ao C++
  • 4. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Recursos C e C++ Recursos ´E uma C melhor Suporta abstra¸c˜ao de dados Suporte `a orienta¸c˜ao a objetos Heran¸ca m´ultipla Programa¸c˜ao gen´erica (Templates) Fun¸c˜oes virtuais Sobrecarga de operadores Tratamento de exce¸c˜oes Lucas Lellis Introdu¸c˜ao ao C++
  • 5. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Recursos C e C++ C e C++ Os c´odigos em C podem ser reaproveitados normalmente em C++, assim, torna-se desnecess´aria a reescritura dos c´odigos. Muitas fun¸c˜oes da biblioteca do C podem ser utilizadas em c´odigos de C++, tornando mais f´acil a adapta¸c˜ao dos desenvolvedores e de seus projetos. Sugest˜oes para programadores C: Declare uma vari´avel somente quando for utiliz´a-la de fato, inclusive dentro de la¸cos de repeti¸c˜ao (for) N˜ao use Malloc(), o operador new faz melhor a mesma tarefa. E, em vez de realloc(), tente vector. Minimize a utiliza¸c˜ao de arrays primitivos e strings ao estilo de C. As classes string e vector da biblioteca padr˜ao do C++ s˜ao mais completas e vers´ateis. Lucas Lellis Introdu¸c˜ao ao C++
  • 6. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Conceitos B´asicos Nesse trecho vamos aprender alguns conceitos b´asicos do C++: A estrutura de um programa; Os tipos de dados b´asicos e operadores; Lucas Lellis Introdu¸c˜ao ao C++
  • 7. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores A estrutura de um programa Provavelmente, a melhor forma de aprender uma linguagem de programa¸c˜ao ´e escrevendo um programa, vamos come¸car lembrando como seria uma implementa¸c˜ao em C do famoso programa ”Hello World”: Exemplo 01 - Hello World em C //Exemplo do programa em C #include <stdio.h> #include <stdlib.h> int main () { printf("Hello World!"); return 0; } Lucas Lellis Introdu¸c˜ao ao C++
  • 8. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Vejamos agora, o mesmo programa escrito em C++: Exemplo 02 - Hello World em C++ //Nosso primeiro programa em C++ #include <iostream> using namespace std; int main () { cout << "Hello World!"; return 0; } A estrutura do programa em C++ ´e muito semelhante `a da linguagem C. A declara¸c˜ao de vari´aveis e fun¸c˜oes, os coment´arios, os agrupamentos e os la¸cos de repeti¸c˜ao permanecem os mesmos. Percebe-se a utiliza¸c˜ao de novos operadores e fun¸c˜oes diferentes para entrada e sa´ıda do console. A fun¸c˜ao cout imprime uma Lucas Lellis Introdu¸c˜ao ao C++
  • 9. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Vari´aveis, tipos de dados e operadores Em C++, assim como era em C, ´e necess´ario declarar uma vari´avel em um tipo de dados antes de poder utiliz´a-la, ela deve ser declarada com um tipo e um nome. Por exemplo: Exemplo 03: Declara¸c˜ao de vari´aveis em C++ int main () { int a = 2, b(3), soma; /*Podemos declarar as valores iniciais para as variaveis de duas formas diferentes*/ soma = a + b + 2; return 0; } Cuidado ao nomear suas vari´aveis, elas n˜ao podem sobrescrever os identificadores, que s˜ao palavras reservadas pela linguagem, nem sobrescrever outras vari´aveis com o mesmo nome. Lucas Lellis Introdu¸c˜ao ao C++
  • 10. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Podemos citar alguns tipos de dados fundamentais: Tipos fundamentais bool Booleano*, poss´ıveis valores s˜ao true ou false. char Caract´ere, exemplo: ’a’, ’z’ e ’9’. int N´umero inteiro, como 1, 12545 e 0. short N´umero inteiro pequeno long N´umero inteiro grande float N´umero ponto flutuante. double N´umero ponto flutuante com dupla precis˜ao. ng double N´umero p. f. longo com dupla precis˜ao. *O tipo bool ´e o ´unico que ainda n˜ao existia na linguagem C. Obs. : Ao adicionar ”unsigned” antes de qualquer um desses tipos retira-se a possibilidade de existirem numeros negativos. Lucas Lellis Introdu¸c˜ao ao C++
  • 11. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Para qualquer um deles, podemos utilizar os seguintes operadores: Operadores aritm´eticos + soma - subtra¸c˜ao * multiplica¸c˜ao / divis˜ao % resto da divis˜ao Operadores de compara¸c˜ao == igual != diferente < menor > maior <= menor ou igual Lucas Lellis Introdu¸c˜ao ao C++
  • 12. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores strings O C++ oferece um suporte mais completo `as strings, agora definidas pela classe ”string”. Manipul´a-las se tornou uma tarefa muito mais simples. Veja o exemplo abaixo: Exemplo 04 - Manipula¸c˜ao de strings int main (){ string nome = "Bjarne"; string sobrenome("Stroustrup"); string completo = nome + ’ ’ + sobrenome; cout << "Seu nome completo eh: " << completo << endl; return 0; } Lucas Lellis Introdu¸c˜ao ao C++
  • 13. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Um detalhe da linguagem C++, ´e que, para declarar um vetor, ou matriz primitivos com um tamanho x, n˜ao ´e mais necess´ario realizar a aloca¸c˜ao dinˆamica, exemplo: Declara¸c˜ao de vetor de tamanho x int main (){ int tamanho; cin >> tamanho; int[tamanho] vetor; //Isso nao e possivel em C } Lucas Lellis Introdu¸c˜ao ao C++
  • 14. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao A estrutura de um programa Vari´aveis, tipos de dados e operadores Declara¸c˜ao e aloca¸c˜ao dinˆamica de vetores Em alguns casos n˜ao ´e poss´ıvel declarar um vetor, ou matriz diretamente, a aloca¸c˜ao dinˆamica de vari´aveis agora ´e feita atrav´es do operador new: Aloca¸c˜ao dinˆamica de uma matriz int main (){ int lin, col; cin >> lin >> col; int** mat = new int* [lin]; //Alocando um vetor de ponteiros for(int i = 0; i < lin; i++){ mat[ i ] = new int [ col ]; } } Lucas Lellis Introdu¸c˜ao ao C++
  • 15. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Objetos Classes Objetos O Mundo Real ´e formado por objetos que interagem entre si (casa, carro, aluno, professor, etc) O que ´e um objeto? Qualquer coisa, real ou abstrata, com limites e significados bem definidos para a aplica¸c˜ao. Possuem um estado (valores de atributos) e oferecem opera¸c˜oes (comportamentos) para examinar ou alterar este estado. Lucas Lellis Introdu¸c˜ao ao C++
  • 16. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Objetos Classes Podemos representar um objeto como uma entidade individual, que possui seus atributos e suas fun¸c˜oes. Em C++, os atributos seriam as vari´aveis que guardam suas informa¸c˜oes. E as fun¸c˜oes, ou ( m´etodos ), s˜ao fun¸c˜oes usadas para interagir com esse objeto, como uma fun¸c˜ao usada para mudar algum atributo, por exemplo. Pera a´ı! S´o um detalhe, n´os n˜ao programamos objetos diretamente!! Temos que criar uma CLASSE de objetos antes. Lucas Lellis Introdu¸c˜ao ao C++
  • 17. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Objetos Classes Classes O que ´e uma classe? ´E uma forma de CLASSIFICAR um tipo de objetos.. Ou seja, quando dois objetos possuem o mesmo tipo de atributos e as mesmas fun¸c˜oes, eles pertencem a uma mesma classe. Assim que criamos uma classe, podemos INSTANCIAR um objeto, com seus respectivos atributos, que s˜ao individuais para cada objeto. Lucas Lellis Introdu¸c˜ao ao C++
  • 18. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Objetos Classes Classes em C++ Declarando uma classe. class nome_da_classe { //Atributos int X, Y; public: //Metodos int funcao ( int val ) { return ( X*val + Y ); } }; Podemos decidir ”o quˆe” e ”como” as outras classes interagem com a nossa classe. Por meio do ”encapsulamento”, que ser´a melhor trabalhado nas pr´oximas palestras. Lucas Lellis Introdu¸c˜ao ao C++
  • 19. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Containers, Templates e Operators Recursos interessantes Nessa parte, ser˜ao apresentados alguns recursos interessantes do C++, que ser˜ao trabalhados individualmente nas pr´oximas palestras. Fique atento `as atualiza¸c˜oes da p´agina oficial do PESL! Lucas Lellis Introdu¸c˜ao ao C++
  • 20. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Containers, Templates e Operators Containers, Templates e Operators O que s˜ao Containers? Containers s˜ao classes especiais usadas para armazenar qualquer tipo de objeto ou vari´avel. Muitas estruturas de dados conhecidas j´a est˜ao implementadas na forma de container, como vetor, fila e pilha, e o melhor, eles podem ser aplicados para qualquer objeto ou vari´avel, basta passar o tipo de dados ( ou a classe ) como parˆametro, ou seja, elas s˜ao classes ”Template”. Lucas Lellis Introdu¸c˜ao ao C++
  • 21. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Containers, Templates e Operators Template? Nunca ouvi falar.. Templates s˜ao classes que recebem um tipo de dados, ou at´e outra classe como parˆametro, ´e uma caracter´ıstica muito favor´avel `a programa¸c˜ao gen´erica, permitindo que as mesmas linhas de c´odigo sejam aplicadas em outras partes do programa, ou at´e em outros projetos. Esse recurso ´e muito ´util no desenvolvimento de bibliotecas de c´odigo aberto, j´a que os usu´arios podem ter mais flexibilidade ao usar seus recursos. Vocˆes ainda v˜ao precisar de um tempo para aprender a usar classes, e um pouco mais de experiˆencia em C++ para usar e explorar bem esses recursos. Nas pr´oximas palestras vamos apresentar cada um desses recursos com muito mais cuidado, mostrando exemplos de c´odigos, e fazendo exerc´ıcios durante a oficina. Lucas Lellis Introdu¸c˜ao ao C++
  • 22. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Bibliografia O que vem pela frente? Referˆencias Bibliogr´aficas Livros e Sites interessantes 1 Bjarne Stroustrup - A linguagem de programa¸c˜ao C++ 2 Scott Meyers - Effective C++, Effective STL e More Effective C++ 3 http://www.cplusplus.com/ 4 http://www.cplusplus.com/doc/tutorial/ 5 http://punchlet.wordpress.com/ 6 http://stackoverflow.com/ 7 http://www.parashift.com/c++-faq-lite/index.html Lucas Lellis Introdu¸c˜ao ao C++
  • 23. Introdu¸c˜ao Conceitos B´asicos Objetos e Classes Recursos interessantes Bibliografia e Conclus˜ao Bibliografia O que vem pela frente? O que vem pela frente? Teremos, em breve, um ciclo de palestras, para podermos explorar essa linguagem ao m´aximo.. Fique de olho no nosso portal e na p´agina oficial do facebook. Todos as apresenta¸c˜oes desse ciclo de palestras ser˜ao colocadas no moodle do PESL! Nossos canais de comunica¸c˜ao 1 MOODLE do PESL - Curso de C++ : http://pinguim.pro.br/moodle/course/view.php?id=6 2 Portal do Programa de Educa¸c˜ao em Software Livre http://pinguim.pro.br/ 3 Facebook: https://www.facebook.com/PESL.PInguim 4 Youtube: http://www.youtube.com/user/pinguimvideos/ Lucas Lellis Introdu¸c˜ao ao C++