![Page 1: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/1.jpg)
Introdução à linguagem de programação C++
Tulio Marcus R. CalixtoCentro de Informática de Ribeirão Preto
![Page 2: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/2.jpg)
Estrutura de um programa
// my first program in C++
#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World!";
return 0;
}
![Page 3: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/3.jpg)
Estrutura de um programa
// my first program in C++
Comentário de linha;● Todas as linhas começando com 2 barras (//)
serão comentários e não terão nenhum efeito no comportamento do programa;
● O programador pode usar para incluir pequenas observações ou explicações dentro do código.
![Page 4: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/4.jpg)
Estrutura de um programa
#include <iostream>● Linhas começando com # são directivas para o
préprocessador;● Diz para o préprocessador incluir o arquivo
iostream;● Biblioteca em C++ para entrada e saída básica.
Suas funções serão usadas no decorrer do programa.
![Page 5: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/5.jpg)
Estrutura de um programa
using namespace std;
● Todos os elementos de bibliotecas padrão C++ são declaradas dentro de um namespace chamado std;
● Para acessar suas funcionalidades nós a declaramos com esta expressão.
![Page 6: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/6.jpg)
Estrutura de um programa
int main ()
● Inicio da função principal;● É sempre a primeira função a ser executada;● A função principal é o ponto de partida para
execução de todos os programas C++
![Page 7: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/7.jpg)
Estrutura de um programa
cout << "Hello World!";
● cout representa o fluxo de saída padrão em C++;● cout é declarado dentro de iostream dentro do
namespace std;● ; indica o fim de uma instrução C++
![Page 8: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/8.jpg)
Estrutura de um programa
return 0;
● Indica que a função terminou;● O código de retorno 0 indica que o programa
trabalhou como esperado – sem erros;
![Page 9: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/9.jpg)
Estrutura de um programa
/* my second program in C++ with more comments */
#include <iostream>using namespace std;int main (){ cout << "Hello World! "; // prints Hello World! cout << "I'm a C++ program"; // prints I'm a C++
program return 0;}
![Page 10: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/10.jpg)
Variáveis e tipos de dados
● Variáveis: Uma parte da memória para armazenar um determinado valor;
● O computador pode armazenar milhões de variáveis e executar cálculos sofisticados com elas;
● Cada variável precisa de um identificador que distingue uma de outra;
![Page 11: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/11.jpg)
Variáveis e tipos de dados
Identificadores:● Um identificador válido é uma sequência de uma
ou mais letras, números ou underscore ( _ ) ;● Não pode haver espaços, símbolos ou caracteres
de pontuação;● Precisam sempre começar com uma letra;● Não pode ser uma palavrachave
![Page 12: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/12.jpg)
Variáveis e tipos de dados
● Palavrachave: Palavras reservadas da linguagem C++
asm, auto, bool, break, case, catch, char, class, const, const_cast, continue, default, delete, do, double, dynamic_cast, else, enum, explicit, export, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, operator, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static, static_cast, struct, switch, template, this, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t, while
![Page 13: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/13.jpg)
Variáveis e tipos de dados
● C++ é case sensitive: faz distinção entre letras maiúsculas e minúsculas;
● Para usar uma variável em C++ nós precisamos primeiro especificar o tipo de dado que a variável irá possuir seguida de um identicador de variável válido;
Ex.: int a
float mynumber
![Page 14: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/14.jpg)
Variáveis e tipos de dados
● Se desejamos declarar várias variáveis de um mesmo tipo, podemos fazer tudo numa mesma linha.
Ex.: int a, b, c
![Page 15: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/15.jpg)
Variáveis e tipos de dados
// operating with variables
#include <iostream>
using namespace std;
int main ()
{
// declaring variables:
int a, b;
int result;
![Page 16: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/16.jpg)
Variáveis e tipos de dadosName Description Size* Range*
char Character or small integer. 1bytesigned: -128 to 127unsigned: 0 to 255
short int(short)
Short Integer. 2bytessigned: -32768 to 32767unsigned: 0 to 65535
int Integer. 4bytes
signed: -2147483648 to2147483647unsigned: 0 to4294967295
long int(long)
Long integer. 4bytes
signed: -2147483648 to2147483647unsigned: 0 to4294967295
bool Boolean value. I t can take one of twovalues: true or false.
1byte true or false
float Floating point number. 4bytes +/- 3.4e +/- 38 (~7 digits)
double Double precision floating point number. 8bytes+/- 1.7e +/- 308 (~15digits)
long double Long double precision floating pointnumber.
8bytes+/- 1.7e +/- 308 (~15digits)
wchar_t Wide character.2 or 4bytes
1 wide character
![Page 17: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/17.jpg)
Variáveis e tipos de dados
// process: a = 5; b = 2; a = a + 1; result = a b; // print out the result: cout << result; // terminate the program: return 0;}
![Page 18: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/18.jpg)
Variáveis e tipos de dados
● Escopo de variáveis: Local onde a variável pode ser vista.
● Variável global: São variáveis declaradas no corpo principal do código for a de todas as funções
● Variável local: É declarada dentro do corpo de uma função ou bloco
![Page 19: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/19.jpg)
Variáveis e tipos de dados
![Page 20: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/20.jpg)
Variáveis e tipos de dados
● Inicialização de variáveis: Quando declaramos uma variável seu valor default é indeterminado.
● Se quisermos que a variável armazene algum valor concreto, nós devemos inicializar a variável.
Ex.: int a = 0;
int a (0);
![Page 21: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/21.jpg)
Variáveis e tipos de dados
// initialization of variables
#include <iostream>
using namespace std;
int main ()
{
int a=5; // initial value = 5
int b(2); // initial value = 2
int result; // initial value undetermined
![Page 22: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/22.jpg)
Variáveis e tipos de dados
a = a + 3;
result = a b;
cout << result;
return 0;
}
![Page 23: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/23.jpg)
Variáveis e tipos de dados
● Strings: sequencia de caracteres.● C++ prove suporte para strings através da classe
string.● Para declarar um tipo de dado string nós devemos
incluir uma informação adicional no arquivo de cabeçalho: <string>
![Page 24: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/24.jpg)
Variáveis e tipos de dados
// my first string#include <iostream>#include <string>using namespace std;int main (){ string mystring; mystring = "This is the initial string content"; cout << mystring << endl;
![Page 25: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/25.jpg)
Variáveis e tipos de dados
mystring = "This is a different string content";
cout << mystring << endl;
return 0;
}
![Page 26: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/26.jpg)
Constantes
● Constantes são expressões com um valor fixo;
Ex.: #define PI 3.141592625
#define NEWLINE '\n'
Directiva do préprocessador
const int x = 100;
const char tabulator = '\t';
Directiva da linguagem
![Page 27: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/27.jpg)
Constantes
// defined constants: calculate circumference
#include <iostream>
using namespace std;
#define PI 3.14159
#define NEWLINE '\n'
int main ()
{
![Page 28: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/28.jpg)
Constantes
double r=5.0; // radius
double circle;
circle = 2 * PI * r;
cout << circle;
cout << NEWLINE;
return 0;
}
![Page 29: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/29.jpg)
Constantes\nNewline\r carriage return\tTab\vvertical tab\bBackspace\f form feed (page feed)\aalert (beep)\aalert (beep)\' single quote (')
\"double quote (")
\?question mark (?)
\\backslash (\)
![Page 30: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/30.jpg)
Operadores
● A partir do momento que possuimos variáveis nós podemos realizar operações com elas.
● Operador de atribuição– a = 5;
– c = 90;
![Page 31: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/31.jpg)
Operadores
// assignment operator#include <iostream>using namespace std;int main (){ int a, b; // a:?, b:? a = 10; // a:10, b:? b = 4; // a:10, b:4 a = b; // a:4, b:4
![Page 32: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/32.jpg)
Operadores
b = 7; // a:4, b:7
cout << "a:";
cout << a;
cout << " b:";
cout << b;
return 0;
}
![Page 33: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/33.jpg)
Operadores
● Aritiméticos
+ addition- subtraction* multiplication/ division% modulo
![Page 34: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/34.jpg)
Operadores
● Operadores compostos:
+=, =, *=, /=, %=, >>=, <<=, &=, ^=, |=
● Realizam a operação seguida de atribuição
![Page 35: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/35.jpg)
Operadores// compound assignment operators#include <iostream>using namespace std;int main (){ int a, b=3; a = b; a+=2; // equivalent to a=a+2 cout << a; return 0;}
![Page 36: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/36.jpg)
Operadores
● Incremento e Decremento (++, )
c++;
c+=1;
c=c+1;
![Page 37: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/37.jpg)
Operadores
● Operadores de igualdade
==, !=, >, <, >=, <=
Ex:
(7 == 5) // evaluates to false.
(5 > 4) // evaluates to true.
(3 != 2) // evaluates to true.
(6 >= 6) // evaluates to true.
(5 < 5) // evaluates to false.
![Page 38: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/38.jpg)
Operadores
● Operadores lógicos
!, &&, ||
Ex:
!(5 == 5) // evaluates to false because the expression at its right (5 == 5) is true.
!(6 <= 4) // evaluates to true because (6 <= 4) would be false.
!true // evaluates to false
!false // evaluates to true
![Page 39: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/39.jpg)
Operadores
● Operador &&
a b a && b
true true true
true false false
false true false
false false false
![Page 40: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/40.jpg)
Operadores
● Operador ||
a b a || b
true true true
true false true
false true true
false false false
![Page 41: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/41.jpg)
Operadores
● Operador condicional ( ? )● Retorna um valor se a expressão é verdadeira e
outro valor se a expressão for falsa.● Sintaxe: condition ? result1 : result2
Ex:
7==5 ? 4 : 3 // returns 3, since 7 is not equal to 5.
7==5+2 ? 4 : 3 // returns 4, since 7 is equal to 5+2.
![Page 42: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/42.jpg)
Operadores// conditional operator#include <iostream>using namespace std;int main (){ int a,b,c; a=2; b=7; c = (a>b) ? a : b; cout << c; return 0;}
![Page 43: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/43.jpg)
Entrada e Saída básica
● Permite o usuário interagir com o sistema.● C++ usa streams para realizar entrada e saida
básica de forma sequencial, como no teclado, por exemplo.
● stream é um objeto onde o programa pode inserir ou extrair caracteres.
● O arquivo de cabeçalho IOSTREAM contem os objetos de entrada e saida padrão.
![Page 44: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/44.jpg)
Entrada e Saída básica
● Saída padrão > monitor● Objeto stream definido para acessar a saída: cout
Ex:
cout << "First sentence.\n ";
cout << "Second sentence.\nThird sentence.";
![Page 45: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/45.jpg)
Entrada e Saída básica
● Entrada padrão: teclado● Objeto stream definido: cin● Precisa ser seguido de uma variável
Ex:
int age;
cin >> age;
![Page 46: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/46.jpg)
Entrada e Saída básica// i/o example
#include <iostream>
using namespace std;
int main (){
int i;
cout << "Please enter an integer value: ";
cin >> i;
cout << "The value you entered is " << i;
cout << " and its double is " << i*2 << ".\n";
return 0; }
![Page 47: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/47.jpg)
Entrada e Saída básica
● cin e strings● cin pára quando encontra um espaço em branco● Só é possi entrar palavra por palavra● Solução: getline
![Page 48: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/48.jpg)
Entrada e Saída básica
// cin with strings
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string mystr;
cout << "What's your name? ";
getline (cin, mystr);
![Page 49: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/49.jpg)
Entrada e Saída básica
cout << "Hello " << mystr << ".\n";
cout << "What is your favorite team? ";
getline (cin, mystr);
cout << "I like " << mystr << " too!\n";
return 0;
}
![Page 50: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/50.jpg)
Entrada e Saída básica
● stringstream.● O arquivo de cabeçalho <sstream> define uma
classe chamada stringstream.● Permite tratar objetos strings como streams.● Pode ser utilizado para converter strings em int e
double
![Page 51: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/51.jpg)
Entrada e Saída básica
Ex:
// stringstreams
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main ()
{
![Page 52: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/52.jpg)
Entrada e Saída básica
string mystr;
float price=0;
int quantity=0;
cout << "Enter price: ";
getline (cin,mystr);
stringstream(mystr) >> price;
cout << "Enter quantity: ";
getline (cin,mystr);
stringstream(mystr) >> quantity;
![Page 53: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/53.jpg)
Entrada e Saída básica
cout << "Total price: " << price*quantity << endl;
return 0;
}
![Page 54: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/54.jpg)
Estruturas de Controle
● Um programa não é limitado a uma sequencia linear de instuções.
● Pode haver bifurcações, repetição de código e tomada de decisão.
● Especificam como o programa deve reagir em determinadas circunstâncias.
![Page 55: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/55.jpg)
Estruturas de Controle
● Com a adição de estruturas de controle segue um novo conceito: bloco.
● Bloco: Conjunto de instruções agrupadadas e deliminadas por colchetes {}
● Se o bloco for de apenas uma instrução podese otimir o {}
![Page 56: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/56.jpg)
Estruturas de Controle
● if / else● If (condição) bloco de instruções● Se a condição é verdadeira o bloco de instruções
é executado.● Se a condição é falsa o bloco é ignorado e o
programa continua após o bloco condicional.
![Page 57: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/57.jpg)
Estruturas de Controle
Exs.
if (x == 100)
cout << "x is 100";
if (x == 100){
cout << "x is ";
cout << x;
}
![Page 58: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/58.jpg)
Estruturas de Controle
● Nós podemos especificar o que nós queremos que aconteça caso a condição não seja satisfeita. Para tal utilizamos a palavra reservada: else
Ex:
if (x == 100)
cout << "x is 100";
else
cout << "x is not 100";
![Page 59: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/59.jpg)
Estruturas de Controle
● Concatenando instruções if + else
Ex:
if (x > 0)
cout << "x is positive";
else if (x < 0)
cout << "x is negative";
else
cout << "x is 0";
![Page 60: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/60.jpg)
Estruturas de Controle
● Loops: tem o propósito de repetir o bloco de instruções um certo número de vezes ou enquanto uma condição não for estabelecida.
● Loop while● Sintaxe: while (condição) bloco de instruções
![Page 61: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/61.jpg)
Estruturas de Controle
// custom countdown using while
#include <iostream>
using namespace std;
int main ()
{
int n;
cout << "Enter the starting number > ";
cin >> n;
![Page 62: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/62.jpg)
Estruturas de Controle
while (n>0) {
cout << n << ", ";
n;
}
cout << "FIRE!\n";
return 0;
}
![Page 63: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/63.jpg)
Estruturas de Controle
● Loop: do .. while● Semelhante ao loop while, exceto que a condição
é testada depois da execução do bloco.● Garante que o bloco seja executado pelo menos
uma vez.
![Page 64: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/64.jpg)
Estruturas de Controle
Ex.:
// number echoer
#include <iostream>
using namespace std;
int main ()
{
unsigned long n;
![Page 65: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/65.jpg)
Estruturas de Controle
do {
cout << "Enter number (0 to end): ";
cin >> n;
cout << "You entered: " << n << "\n";
} while (n != 0);
return 0;
}
![Page 66: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/66.jpg)
Estruturas de Controle
● Loop: for● Sintaxe:
– for (inicialização; condição; incremento) bloco;
● Realização uma ação repetitiva com um contador que é inicializado e incrementado em cada iteração.
![Page 67: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/67.jpg)
Estruturas de Controle
Ex.:
// countdown using a for loop
#include <iostream>
using namespace std;
int main (){
for (int n=10; n>0; n) {
cout << n << ", ";
}
![Page 68: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/68.jpg)
Estruturas de Controle
cout << "FIRE!\n";
return 0;
}
![Page 69: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/69.jpg)
Estruturas de Controle
● Saltos de blocos● Break● Usando o break podemos deixar o loop for, se a
condição do mesmo não é satisfeita;● Podemos usar para terminar um loop infinito;● Forçar o fim antes do fim natural
![Page 70: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/70.jpg)
Estruturas de Controle
Ex.:
// break loop example
#include <iostream>
using namespace std;
int main ()
{
int n;
![Page 71: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/71.jpg)
Estruturas de Controle for (n=10; n>0; n) {
cout << n << ", ";
if (n==3)
{
cout << "countdown aborted!";
break;
}
}
return 0;
}
![Page 72: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/72.jpg)
Estruturas de Controle
● Continue● Faz o programa ignorar o restante do loop atual e
passa para a proxima iteração.● Ex.:
![Page 73: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/73.jpg)
Estruturas de Controle// continue loop example#include <iostream>using namespace std;int main (){ for (int n=10; n>0; n) { if (n==5) continue; cout << n << ", "; } cout << "FIRE!\n"; return 0; }
![Page 74: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/74.jpg)
Estruturas de Controle
● Goto● Permite fazer um salto para um outro ponto do
programa.● O destino do salto precisa ter um identificador
que é utilizado como argumento para o comando goto.
● O identificador válido é seguido por dois pontos (:).
![Page 75: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/75.jpg)
Estruturas de Controle
Ex.:
// goto loop example
#include <iostream>
using namespace std;
int main ()
{
int n=10;
loop:
![Page 76: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/76.jpg)
Estruturas de Controle
cout << n << ", ";
n;
if (n>0) goto loop;
cout << "FIRE!\n";
return 0;
}
![Page 77: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/77.jpg)
Estruturas de Controle
● Switch● Tem a função de checar muitas opções para poder
tomar uma decisão;● Pode ser usado no lugar de vários if else● Sintaxe:
![Page 78: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/78.jpg)
Estruturas de Controleswitch (expression){
case constant1:
group of statements 1;
break;
case constant2:
group of statements 2;
break;
. . .
default:
default group of statements
}
![Page 79: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/79.jpg)
Estruturas de Controle
switch (x) { case 1: cout << "x is 1"; break; case 2: cout << "x is 2"; break; default: cout << "value of x unknown"; }
if (x == 1) { cout << "x is 1"; }else if (x == 2) { cout << "x is 2"; }else { cout << "value of x unknown"; }
![Page 80: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/80.jpg)
Funções
● Utilizando funções podemos estruturar nosso programa de forma mais modular.
● Função é um grupo de instruções que são executadas quando chamadas em algum ponto do programa.
● Sintaxe:– tipo nome ( parametro1, parametro2, ...)
{ instruções }
![Page 81: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/81.jpg)
Funções
● Onde:– Tipo: Tipo de dado retornado pela função
– Nome: Identificador pelo qual será possivel chamar a função
– Parametros: Cada parametro consiste em um tipo de dado específico seguido por um identificador
– Instruções: Formam o corpo da função
![Page 82: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/82.jpg)
Funções
Ex.:
// function example
#include <iostream>
using namespace std;
int addition (int a, int b){
int r;
r=a+b;
return (r);
}
![Page 83: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/83.jpg)
Funções
int main ()
{
int z;
z = addition (5,3);
cout << "The result is " << z;
return 0;
}
![Page 84: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/84.jpg)
FunçõesEx.2:
// function example
#include <iostream>
using namespace std;
int subtraction (int a, int b){
int r;
r=ab;
return (r);
}
![Page 85: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/85.jpg)
Funçõesint main (){
int x=5, y=3, z;
z = subtraction (7,2);
cout << "The first result is " << z << '\n';
cout << "The second result is " << subtraction (7,2) << '\n';
cout << "The third result is " << subtraction (x,y) << '\n';
z= 4 + subtraction (x,y);
cout << "The fourth result is " << z << '\n';
return 0;
}
![Page 86: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/86.jpg)
Funções
● Funções sem tipo: void● Função que exibe uma mensagem na tela● Ex.:
![Page 87: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/87.jpg)
Funções
// void function example#include <iostream>using namespace std;void printmessage (){ cout << "I'm a function!";}int main (){ printmessage (); return 0;}
![Page 88: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/88.jpg)
Funções
● Argumentos podem ser passador por valor ou por referência
● Até agora os argumentos foram passados por valor
int x=5, y=3, z;
z = addition ( x , y );
![Page 89: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/89.jpg)
Funções
● Passamos os valores de x e y (5, 3) e não as variáveis x e y
● Os valores das variáveis a e b passam a ser 5 e 3● Modificações nos valores de a e b não modificam
os valores de x e y, pois apenas cópias dos valores foram passados para a função.
● Se quisermos que os valores de x e y sejam modificados precisamos passar os dados por referência
![Page 90: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/90.jpg)
Funções
// passing parameters by reference
#include <iostream>
using namespace std;
void duplicate (int& a, int& b, int& c){
a = a * 2;
b = b * 2;
c = c * 2;
}
![Page 91: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/91.jpg)
Funções
int main ()
{
int x=1, y=3, z=7;
duplicate (x, y, z);
cout << "x=" << x << ", y=" << y << ", z=" << z;
return 0;
}
![Page 92: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/92.jpg)
Funções
● Na declaração da função os tipos de dados de cada parametro são seguidos por um sinal &
● & indica que os paramentros são passados por referência
![Page 93: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/93.jpg)
Funções
Ex.2:
// more than one returning value
#include <iostream>
using namespace std;
void prevnext (int x, int& prev, int& next){
prev = x1;
next = x+1;
}
![Page 94: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/94.jpg)
Funções
int main ()
{
int x=100, y, z;
prevnext (x, y, z);
cout << "Previous=" << y << ", Next=" << z;
return 0;
}
![Page 95: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/95.jpg)
Funções
● Valores padrões em paramentros● Quando declaramos uma função podemos usar
valores default para os parametros● O valor default será usado se o argumento
correspondente for deixado em branco quando a função é chamada.
● Se os valores forem passados para a função, os valores default serão ignorados
![Page 96: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/96.jpg)
Funções
// default values in functions
#include <iostream>
using namespace std;
int divide (int a, int b=2){
int r;
r=a/b;
return (r);
}
![Page 97: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/97.jpg)
Funções
int main ()
{
cout << divide (12);
cout << endl;
cout << divide (20,4);
return 0;
}
![Page 98: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/98.jpg)
Funções
● Sobrecarga de funções ● Em C++ duas funções podem ter o mesmo nome,
se:– Possuírem tipo e ou número de parametros diferentes
![Page 99: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/99.jpg)
FunçõesEx.:
// overloaded function
#include <iostream>
using namespace std;
int operate (int a, int b){
return (a*b);
}
float operate (float a, float b){
return (a/b);
}
![Page 100: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/100.jpg)
Funções
int main (){
int x=5,y=2;
float n=5.0,m=2.0;
cout << operate (x,y);
cout << "\n";
cout << operate (n,m);
cout << "\n";
return 0;
}
![Page 101: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/101.jpg)
Funções
● Recursividade● Propriedade que as funções têm de chamase a si
mesmo.● Cálculo de fatorial● Ordenação
![Page 102: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/102.jpg)
FunçõesEx.:
// factorial calculator
#include <iostream>
using namespace std;
long factorial (long a){
if (a > 1)
return (a * factorial (a1));
else
return (1);
}
![Page 103: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/103.jpg)
Funções
int main ()
{
long number;
cout << "Please type a number: ";
cin >> number;
cout << number << "! = " << factorial (number);
return 0;
}
![Page 104: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/104.jpg)
Funções
● Declarando funções● Funções precisam ser declaradas antes de serem
chamadas● Até agora a função main era construído depois de
todas as outras funções● Solução: declarar as funções
![Page 105: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/105.jpg)
Funções
Ex.:
// declaring functions prototypes
#include <iostream>
using namespace std;
void odd (int a);
void even (int a);
![Page 106: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/106.jpg)
Funçõesint main (){
int i;
do {
cout << "Type a number (0 to exit): ";
cin >> i;
odd (i);
} while (i!=0);
return 0;
}
![Page 107: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/107.jpg)
Arrays
● Conjunto de elementos do mesmo tipo de dado● Localizados em regiões de memória contígua● Podem ser referenciados individualmente através
de um identificador
![Page 108: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/108.jpg)
Arrays
● Declarando arrays– int billy [5];
● Inicializando arrays– int billy [5] = { 16, 2, 77, 40, 12071 };
● Acessando elemento– a = billy[2];
![Page 109: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/109.jpg)
Arrays
![Page 110: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/110.jpg)
Arrays
Ex.:
// arrays example
#include <iostream>
using namespace std;
int billy [] = {16, 2, 77, 40, 12071};
int n, result=0;
![Page 111: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/111.jpg)
Arraysint main ()
{
for ( n=0 ; n<5 ; n++ )
{
result += billy[n];
}
cout << result;
return 0;
}
![Page 112: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/112.jpg)
Arrays
● Arrays multidimensionais● Declaração
– int jimmy [3][5];
![Page 113: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/113.jpg)
Arrays
● Acessando elemento– int a = jimmy [1][3];
![Page 114: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/114.jpg)
Arrays
Ex.:
#define WIDTH 5
#define HEIGHT 3
int jimmy [HEIGHT][WIDTH];
int n,m;
![Page 115: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/115.jpg)
Arrays
int main (){
for (n=0;n<HEIGHT;n++)
for (m=0;m<WIDTH;m++)
{
jimmy[n][m]=(n+1)*(m+1);
}
return 0;
}
![Page 116: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/116.jpg)
Arrays
● Gerar números aleatórios:– numero= rand() % valor_maximo;
● Precisa do arquivo de cabeçalho:– #include <stdlib.h>
![Page 117: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/117.jpg)
Arrays
● Exercício:● Crie uma matriz quadrada 10x10● Insira todos os elementos randomicamente● Exiba o resultado da multiplicação dos elementos
da diagonal principal MENOS a multiplicação dos elementos da diagonal secundária da matriz
![Page 118: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/118.jpg)
Arrays
● Dicas● Diagonal Principal: linha = coluna● Diagonal Secundária: (linha + coluna) =
(dimensao – 1)● Para percorrer a matriz use:
for (linha)
for (coluna)
![Page 119: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/119.jpg)
Classes e Objetos
● Classe– Definem os atributos de um objeto
– Definem o que um objeto pode fazer
● Objetos– É a realização da classe
![Page 120: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/120.jpg)
Classes e Objetos
Ex.:
class CRectangle {
int x, y;
public:
void set_values (int,int);
int area (void);
} ;
![Page 121: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/121.jpg)
Classes e Objetos
● Modificadores de acesso● Private: Acessivel somente por membros da
classe.● Public: Acessivel de qualquer lugar onde o objeto
é visivel.
![Page 122: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/122.jpg)
Classes e Objetos
// classes example#include <iostream>using namespace std;
class CRectangle { int x, y; public: void set_values (int,int); int area () {return (x*y);}};
![Page 123: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/123.jpg)
Classes e Objetosvoid CRectangle::set_values (int a, int b) { x = a; y = b;}
int main () { CRectangle rect; rect.set_values (3,4); cout << "area: " << rect.area(); return 0;}
![Page 124: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/124.jpg)
Classes e Objetos
● Construtor● Metodo utilizado para inicializar as variaveis de
um objeto● É chamado automaticamente quando o objeto é
criado● Precisa ter o mesmo nome da classe e não deve
ter nenhum dado de retorno
![Page 125: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/125.jpg)
Classes e Objetos● Sobre carga de construtores// overloading class constructors#include <iostream>using namespace std;
class CRectangle { int width, height; public: CRectangle (); CRectangle (int,int); int area (void) {return (width*height);}};
![Page 126: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/126.jpg)
Classes e ObjetosCRectangle::CRectangle () {
width = 5;
height = 5;
}
CRectangle::CRectangle (int a, int b) {
width = a;
height = b;
}
![Page 127: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/127.jpg)
Classes e Objetos
int main () {
CRectangle rect (3,4);
CRectangle rectb;
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
return 0;
}
![Page 128: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/128.jpg)
Classes e Objetos
● Herança● Permite criar classes que são derivadas de outras
classes● Inclui todas as caracteristicas da classe pai + suas
próprias● Para indicar herença utilizamos ( : )
– class CRectangle: public CPolygon
![Page 129: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/129.jpg)
Classes e Objetos
● Ex.:
![Page 130: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/130.jpg)
Classes e Objetos// derived classes#include <iostream>using namespace std;class CPolygon { protected: int width, height; public: void set_values (int a, int b); };void CPolygon::set_values (int a, int b){ width=a; height=b;}
![Page 131: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/131.jpg)
Classes e Objetosclass CRectangle: public CPolygon { public: int area (); };
int CRectangle::area(){ return (width * height); }
class CTriangle: public CPolygon { public: int area (); };
![Page 132: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/132.jpg)
Classes e Objetosint CTriangle::area(){
return (width * height / 2);
}
int main () {
int a, b, c, d;
cout << "Informe a base do retangulo: ";
cin >> a;
cout << "Informe a altura do retangulo: ";
cin >> b;
![Page 133: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/133.jpg)
Classes e Objetos
cout << "Informe a base do triangulo: ";
cin >> c;
cout << "Informe a altura do triangulo: ";
cin >> d;
CRectangle rect;
CTriangle trgl;
![Page 134: Introdução à linguagem de programação C++glu.fcfrp.usp.br/tulio/materiais/c++.pdf · Pode haver bifurcações, repetição de código e](https://reader033.vdocuments.pub/reader033/viewer/2022051507/5a739f9c7f8b9a4b538b62c9/html5/thumbnails/134.jpg)
Classes e Objetos
rect.set_values (a, b);
trgl.set_values (c, d);
cout << "Area do retangulo: " << rect.area() << endl;
cout << "Area do triangulo: " << trgl.area() << endl;
return 0;
}