Introdução à linguagem de programação C++ Tulio Marcus R. Calixto Centro de Informática de Ribeirão Preto



Documentos relacionados
ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

Programando em C++ Histórico da Linguagem C

Algoritmos e Programação

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

INTRODUÇÃO À LINGUAGEM C++

Tipo de Dados em Linguagem C

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Introdução à linguagem C++

Algoritmos e Programação Estruturada

Conceito de classe em C++

Linguagem de Programação III

2. Constantes e Variáveis

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Variáveis e Comandos de Atribuição

Programação Aplicada à Engenharia

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Introdução à Programação com Classes em C++

LINGUAGEM C. Estrutura básica de um programa

Linguagem de Programação I

Programação científica C++

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

Programação: Tipos, Variáveis e Expressões

insfcanceof new public switch transient while byte continue extends for int null

Programação Estruturada I

Prof. Jhonatan Fernando

Linguagens de Programação

Algoritmos e Técnicas de

Programação por Objectos. Java

Curso Prático de C++

Componentes da linguagem C++

Slides_Java_1 !"$ % & $ ' ' Output: Run java. Compile javac. Name of program. Must be the same as name of file. Java source code.

Programação em C++: Introdução

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

A Linguagem Java. Alberto Costa Neto DComp - UFS

Princípios de programação em Linguagem C++

Meta-Programação com. Julia Lima. Agosto 2010

Programação de Computadores - I. Profª Beatriz Profº Israel

O COMPUTADOR. Introdução à Computação

Introdução à Programação

Programação: Estruturas de seleção

Computação II Orientação a Objetos

Java Como Programar, 8/E

Fundamentos de Programação II. Introdução à linguagem de programação C++

Algoritmo e Técnica de Programação - Linguagem C

Programação científica C++

Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

3 Classes e instanciação de objectos (em Java)

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

5 Apresentando a linguagem C

Estrutura de Dados Básica

Estrutura switch if-else switch switch switch if-else-if switch switch case default break switch switch break Observações: case

Estrutura Condicional em Java

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Instruções de controle: Parte by Pearson Education do Brasil

Fundamentos de Programação Linguagem C++ Entrada e saída com arquivos

Pilhas. Profa Morganna Diniz

2 Orientação a objetos na prática

Aula 8- Standard Template Library. Arthur Ribacki Gabriel Portal Leonardo Chatain Luiz Fernando Scheidegger Rosália Schneider

Desenvolvimento OO com Java Orientação a objetos básica

Programação Básica em Arduino Aula 2

INF 1007 Programação II

Resumo da Introdução de Prática de Programação com C. A Linguagem C

2 echo "PHP e outros.";

INFORMÁTICA E COMPUTAÇÃO CMP 1060 CONTROLE DE FLUXO ESTRUTURA CONDICIONAL 1

Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015. Visual Basic VBA

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

10/02/2015. Introdução. Podemos classificar os tipos de dados a serem processados em dados e instruções Dados: Algoritmos e Lógica de Programação

JSP - ORIENTADO A OBJETOS

Programação Orientada a Objetos C++

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Sumário. Parte I Filosofia e Modelagem Orientada a Objetos... 23

Noções sobre Objetos e Classes

Introdução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores

PHP (PHP Hypertext Preprocessor)

Sintaxe Básica de Java Parte 1

INF 1005 Programação I

Panorâmica geral sobre PHP. PHP é uma linguagem que permite fazer. um ficheiro em PHP contem código PHP misturado com HTML.

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

Introdução à Programação

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:

INF 1005 Programação I

Técnicas de Programação I

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

Conceitos básicos da linguagem C

14.1 Vetor - Problemas

String em C++ Verificando o tamanho da string

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++

História. Nasceu em 1993, numa discussão entre Yuhikiro Matsumoto e um colega.

JavaScript 2.0X X

DESENVOLVIMENTO DE SOFTWARE

Transcrição:

Introdução à linguagem de programação C++ Tulio Marcus R. Calixto Centro de Informática de Ribeirão Preto

Estrutura de um programa // my first program in C++ #include <iostream> using namespace std; int main () { cout << "Hello World!"; return 0; }

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.

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.

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.

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++

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++

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;

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; }

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;

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 palavra chave

Variáveis e tipos de dados Palavra chave: 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

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

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

Variáveis e tipos de dados // operating with variables #include <iostream> using namespace std; int main () { // declaring variables: int a, b; int result;

Variáveis e tipos de dados Name Description Size* Range* char Character or small integer. 1byte short int (short) Short Integer. 2bytes int I nteger. 4bytes long int (long) Long integer. 4bytes signed: -128 to 127 unsigned: 0 to 255 signed: -32768 to 32767 unsigned: 0 to 65535 signed: - 2147483648 to 2147483647 unsigned: 0 to 4294967295 signed: - 2147483648 to 2147483647 unsigned: 0 to 4294967295 Boolean value. It can take one of two bool 1byte true or false values: true or false. float Floating point number. 4bytes +/- 3.4e +/- 38 (~7 digits) double Double precision floating point number. 8bytes long double wchar_t Long double precision floating point number. Wide character. 8bytes 2 or 4 bytes +/- 1.7e +/- 308 (~15 digits) +/- 1.7e +/- 308 (~15 digits) 1 wide character

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; }

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

Variáveis e tipos de dados

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

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

Variáveis e tipos de dados a = a + 3; result = a b; cout << result; return 0; }

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>

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;

Variáveis e tipos de dados mystring = "This is a different string content"; cout << mystring << endl; return 0; }

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

Constantes // defined constants: calculate circumference #include <iostream> using namespace std; #define PI 3.14159 #define NEWLINE '\n' int main () {

Constantes double r=5.0; double circle; circle = 2 * PI * r; cout << circle; cout << NEWLINE; return 0; } // radius

Constantes \n Newline \r carriage return \t Tab \v vertical tab \b Backspace \f form feed (page feed) \a alert (beep) \a alert (beep) \' single quote (') \" double quote (") \? question mark (?) \\ backslash (\)

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;

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

Operadores b = 7; // a:4, b:7 cout << "a:"; cout << a; cout << " b:"; cout << b; return 0; }

Operadores Aritiméticos + addition - subtraction * multiplication / division % modulo

Operadores Operadores compostos: +=, =, *=, /=, %=, >>=, <<=, &=, ^=, = Realizam a operação seguida de atribuição

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; }

Operadores Incremento e Decremento (++, ) c++; c+=1; c=c+1;

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.

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

Operadores Operador && a b a && b true true true true false false false true false false false false

Operadores Operador a b a b true true true true false true false true true false false false

Operadores Operador condicional (? ) Ex: Retorna um valor se a expressão é verdadeira e outro valor se a expressão for falsa. Sintaxe: condition? result1 : result2 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.

// 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; } Operadores

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.

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.";

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;

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; }

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

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

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; }

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

Entrada e Saída básica Ex: // stringstreams #include <iostream> #include <string> #include <sstream> using namespace std; int main () {

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;

Entrada e Saída básica } cout << "Total price: " << price*quantity << endl; return 0;

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.

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 pode se otimir o {}

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.

Estruturas de Controle Exs. if (x == 100) cout << "x is 100"; if (x == 100){ cout << "x is "; cout << x; }

Estruturas de Controle Ex: 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 if (x == 100) cout << "x is 100"; else cout << "x is not 100";

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";

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

Estruturas de Controle // custom countdown using while #include <iostream> using namespace std; int main () { int n; cout << "Enter the starting number > "; cin >> n;

Estruturas de Controle while (n>0) { cout << n << ", "; n; } } cout << "FIRE!\n"; return 0;

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.

Estruturas de Controle Ex.: // number echoer #include <iostream> using namespace std; int main () { unsigned long n;

Estruturas de Controle do { cout << "Enter number (0 to end): "; cin >> n; cout << "You entered: " << n << "\n"; } while (n!= 0); return 0; }

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.

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 << ", "; }

Estruturas de Controle } cout << "FIRE!\n"; return 0;

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

Estruturas de Controle Ex.: // break loop example #include <iostream> using namespace std; int main () { int n;

Estruturas de Controle for (n=10; n>0; n ) { cout << n << ", "; if (n==3) { cout << "countdown aborted!"; break; } } return 0; }

Estruturas de Controle Continue Faz o programa ignorar o restante do loop atual e passa para a proxima iteração. Ex.:

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; }

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

Estruturas de Controle Ex.: // goto loop example #include <iostream> using namespace std; int main () { int n=10; loop:

Estruturas de Controle cout << n << ", "; n ; if (n>0) goto loop; cout << "FIRE!\n"; return 0; }

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:

Estruturas de Controle switch (expression){ case constant1: group of statements 1; break; case constant2: group of statements 2; break;... default: default group of statements }

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"; }

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 }

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

Funções Ex.: // function example #include <iostream> using namespace std; int addition (int a, int b){ int r; r=a+b; return (r); }

Funções int main () { int z; z = addition (5,3); cout << "The result is " << z; return 0; }

Funções Ex.2: // function example #include <iostream> using namespace std; int subtraction (int a, int b){ int r; r=a b; return (r); }

Funções int 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; }

Funções Funções sem tipo: void Função que exibe uma mensagem na tela Ex.:

Funções // void function example #include <iostream> using namespace std; void printmessage (){ cout << "I'm a function!"; } int main () { printmessage (); return 0; }

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

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

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; }

Funções int main () { int x=1, y=3, z=7; duplicate (x, y, z); cout << "x=" << x << ", y=" << y << ", z=" << z; return 0; }

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

Funções Ex.2: // more than one returning value #include <iostream> using namespace std; void prevnext (int x, int& prev, int& next){ prev = x 1; next = x+1; }

Funções int main () { int x=100, y, z; prevnext (x, y, z); cout << "Previous=" << y << ", Next=" << z; return 0; }

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

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); }

Funções int main () { cout << divide (12); cout << endl; cout << divide (20,4); return 0; }

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

Funções Ex.: // 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); }

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; }

Funções Recursividade Propriedade que as funções têm de chama se a si mesmo. Cálculo de fatorial Ordenação

Funções Ex.: // factorial calculator #include <iostream> using namespace std; long factorial (long a){ if (a > 1) return (a * factorial (a 1)); else return (1); }

Funções int main () { long number; cout << "Please type a number: "; cin >> number; cout << number << "! = " << factorial (number); return 0; }

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

Funções Ex.: // declaring functions prototypes #include <iostream> using namespace std; void odd (int a); void even (int a);

Funções int main (){ int i; do { cout << "Type a number (0 to exit): "; cin >> i; odd (i); } while (i!=0); return 0; }

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

Arrays Declarando arrays int billy [5]; Inicializando arrays int billy [5] = { 16, 2, 77, 40, 12071 }; Acessando elemento a = billy[2];

Arrays

Arrays Ex.: // arrays example #include <iostream> using namespace std; int billy [] = {16, 2, 77, 40, 12071}; int n, result=0;

Arrays int main () { for ( n=0 ; n<5 ; n++ ) { result += billy[n]; } cout << result; return 0; }

Arrays Arrays multidimensionais Declaração int jimmy [3][5];

Arrays Acessando elemento int a = jimmy [1][3];

Arrays Ex.: #define WIDTH 5 #define HEIGHT 3 int jimmy [HEIGHT][WIDTH]; int n,m;

Arrays int main (){ for (n=0;n<height;n++) for (m=0;m<width;m++) { jimmy[n][m]=(n+1)*(m+1); } return 0; }

Arrays Gerar números aleatórios: numero= rand() % valor_maximo; Precisa do arquivo de cabeçalho: #include <stdlib.h>

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

Arrays Dicas Diagonal Principal: linha = coluna Diagonal Secundária: (linha + coluna) = (dimensao 1) Para percorrer a matriz use: for (linha) for (coluna)

Classes e Objetos Classe Definem os atributos de um objeto Definem o que um objeto pode fazer Objetos É a realização da classe

Classes e Objetos Ex.: class CRectangle { int x, y; public: void set_values (int,int); int area (void); } ;

Classes e Objetos Modificadores de acesso Private: Acessivel somente por membros da classe. Public: Acessivel de qualquer lugar onde o objeto é visivel.

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);} };

Classes e Objetos void 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; }

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

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);} };

Classes e Objetos CRectangle::CRectangle () { width = 5; height = 5; } CRectangle::CRectangle (int a, int b) { width = a; height = b; }

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; }

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

Classes e Objetos Ex.:

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; }

Classes e Objetos class CRectangle: public CPolygon { public: int area (); }; int CRectangle::area(){ } return (width * height); class CTriangle: public CPolygon { public: int area (); };

Classes e Objetos int 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;

Classes e Objetos cout << "Informe a base do triangulo: "; cin >> c; cout << "Informe a altura do triangulo: "; cin >> d; CRectangle rect; CTriangle trgl;

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;