bases da programação em c++marilde/graduacao/primeirosemestre/rerbd/... · c/c++ "...

35
Programação de Computadores 33 Bases da Programação em C++ ! Vamos começar olhando um programa em C++ bastante simples. Ele simplesmente imprime uma mensagem na tela. // primeiro programa (1) #include <iostream.h> (2) void main( ) (3) { (4) cout << “Bem vindos ao Mundo C++\n”; (5) cout << “Primeiros passos da primeira aula\n”; (6) } (7)

Upload: others

Post on 21-Feb-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 33

Bases da Programação em C++! Vamos começar olhando um programa em C++ bastante

simples. Ele simplesmente imprime uma mensagem na tela.// primeiro programa (1)#include <iostream.h> (2)void main( ) (3){ (4)

cout << “Bem vindos ao Mundo C++\n”; (5)cout << “Primeiros passos da primeira aula\n”; (6)

} (7)

Page 2: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 34

! Linha 1 " comentário. // comentário de 1 linha/* */ blocos de linhas. Todo programa deve iniciar com comentário que descreve o propósito do programa.

! Linha 2 " Diretiva de preprocessamento " linhas que começam com # . Os comandos do programa instruem o computador a fazer alguma coisa, como por exemplo, somar dois números.Uma diretiva de preprocessamento, é uma instrução para o compilador. Uma parte do compilador, chamado de preprocessador trabalha essas diretivas antes de começar de fato o processo de compilação. A diretiva de preprocessamento include diz ao compilador para inserir o conteúdo do arquivo iostream.h no arquivo fonte.Incluir o arquivo iostream.h " deve ser incluído em qualquer programa que faça E/S. (“Header file”)

Page 3: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 35

! Linha 3 " void main( ) " faz parte de todo programa em C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem independente de classes)

! Programas em C/C++ contem 1 ou mais funções, uma das quais deve ser necessariamente a função main. No nosso exemplo, só temos a função main. Os programas iniciam a execução pela main. Equivalente ao bloco begin ... end. do Pascal. void indica que a função não retorna nenhum valor

! Linhas 4 e 7 "{ inicia o corpo da função; } finaliza o corpo da função.

Page 4: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 36

! Linha 5 " faz com que seja escrito na tela a cadeia de caracteres que aparece entre aspas.cout,seguido do operador <<, seguido de uma cadeia, seguido de ; " comando. Todo comando termina com ;

! E/S em C++ é acompanhada de 1 fluxo de caracteres. Esse fluxo de caracteres é enviado para o objeto padrão de saída de fluxo " cout " normalmente conectado ao vídeo.Operador << " operador de inserção de fluxo. O valor a direita do operador é inserido no fluxo de saída. Os caracteres são impresso exatamente como estão dentro das aspas, menos o \n que não é impresso.\ " indica que um caractere especial deve ser escrito\n " new line

Page 5: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 37

! Outros:\t " tabulação;

\r " retorno (posiciona no início da linha corrente:não muda de linha);\a " soa um bip; \\ " imprime \ ;\” v imprime “;

! Linha 6 " impressão O que será impresso pelo seguinte programa:#include <iostream.h>void main( ){ cout<<“Bem vindo\n ao \n C++\n”;

cout<<“Primeiro exercício\n”;}

Page 6: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 38

Variáveis Inteiras! Variáveis são a parte mais fundamental de qualquer

linguagem. Tem um nome simbólico (que deve ter um significado) e a ela podemos atribuir valores.

! Ocupam locais específicos de memória.! Quando damos um valor a uma variável, esse valor

é colocado no espaço atribuído a ela.! Quase todas as linguagens tem os mesmos tipos

gerais como, inteiros, reais, caracteres (vocês já devem estar “carecas” de saber e usar variáveis)

Page 7: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 39

Definindo variáveis inteiras! Existem em diferentes tamanhos, o tipo mais usado

é o int! Quantidade de memória ocupada depende do

sistema.! Windows 98 => 4 bytes (32 bits) ! -2.147.483.648 até 2.147.483.647! No sistema MS-DOS e nas primeiras versões do

Windows um inteiro ocupava 2 bytes.

Page 8: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 40

#include <iostream.h>void main( ){ int var1; (1)

int var2; (2)var1 = 20; (3)var2 = var1 + 10; (4)cout<<“var1 + 10 é: ”; (5)cout<<var2<<endl; (6)

}

Page 9: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 41

! Linhas 1 e 2 => definem duas variáveis inteiras => declaração => pode aparecer em qualquer lugar no programa => diferente do Pascal => declarar todas as variáveis no início do.

! nome => distinção entre letras maiúsculas e minúsculas => var1 ≠ VAR1

! Linhas 3 e 4 => comando de atribuição => equivalente ao := do Pascal

Page 10: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 42

! linha 5 => mostra uma cadeia constante ( o que está entre “)

! linha 6 => mostra o valor da variável var2! saída do programa:

var1 + 10 é: 30! manipulador endl => faz com que um linefeed seja

inserido no fluxo => manipuladores são instruções para o fluxo de saída que modificam a saída de várias formas (veremos detalhes mais a frente)

Page 11: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 43

Outros tipos de inteiros! long e short => independem do sistema, tem

tamanhos fixos.! long ocupa 4 bytes! short ocupa 2 bytes (-32.768 até 32.767)

Page 12: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 44

Variáveis caracteres! O tipo char armazena inteiros que variam de –128

até 127. Ocupam 1 byte e são normalmente usado para armazenar caracteres ASCII.

! Constante caracteres são escritas usando aspas simples, como, ‘a’ => o compilador transforma no correspondente ASCII (‘a’ é 97)

Page 13: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 45

#include <iostream.h>void main( ){ char charvar1 = ‘A’;

char charvar2 = ‘\t’;cout<<charvar1;cout<<charvar2;charvar1 = ‘B’;cout<<charvar1;cout<<‘\n’;

}

Page 14: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 46

Entrada#include <iostream.h>void main( ){ int ftemp; // temperatura em fahrenheit

cout<<“Entre com a temperatura em fahrenheit:”;cin >> ftemp;int ctemp = (ftemp – 32) * 5 / 9;cout<<“Temperatura equivalente em graus Celsius:”

<<ctemp<<endl;}

Page 15: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 47

! cin >> ftemp faz com que o programa pare esperando que o usuário digite um valor

! O resultado é colocado na variável ftemp! cin é um objeto predefinido em C++ => fluxo

padrão de entrada (teclado)! >> operador de extração! declaração de variável somente quando vai ser

usada (ctemp)! Operador << em cascata! Expressão aritmética

Page 16: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 48

Números em Pt. Flutuante! 3 tipos: float, double e long double! float => armazena números no intervalo 3.4x10-38

até 3.4x1038 com precisão de 7 dígitos=> 4 bytes! double => 1.7x10-308 até 1.7x10308 com precisão de

15 dígitos => 8 bytes ! long double => 1.2x10-4932 até 1.7x104932 com

precisão de 19 dígitos => 10 bytes

Page 17: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 49

#include <iostream.h>void main( ){ float raio;const float PI = 3.14159;cout<<“Entre com o raio do circulo:”;cin>> raio;float area = PI * raio * raio;cout<< “A area é”: “<< area <<endl;

}

Page 18: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 50

Tipo bool! variáveis do tipo bool podem ter somente dois

valores: true ou false! Teoricamente pode ser representado por um bit,

mas na prática é armazenado como inteiro (acesso mais rápido do que extrair um bit individual)

! Nome bool vem de George Boole matemático inglês do século 19 que inventou o conceito do uso dos operadores lógicos com valores true/false(variáveis booleanas)

Page 19: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 51

Manipulador setw! Já mencionamos que manipuladores são

operadores usados com o operador << para modificar, ou manipular, os dados a serem mostrados.

! setw => usado para especificar o campo a ser ocupado (largura). Por padrão ele é ajustado de acordo com o valor a ser mostrado. Por exemplo, 234 irá ocupar um campo com largura 3, a string “aulas” ocupará um campo com largura 5.

Page 20: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 52

#include <iostream.h>#include <iomanip.h>void main( ){ long pop1= 2425785, pop2 = 47, pop3 = 9761;

cout<<setw(8)<<“Cidade”<<setw(12)<<“População”<<endl<< setw(8)<<“Campinas”<<setw(12)<< pop1 << endl <<setw(8)<<“Ibaté”<<setw(12)

<<pop2<<endl<<setw(8)<<“S.Carlos”<<setw(12)<<pop3<<endl;

}

Page 21: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 53

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

sanpmaC

tabI

i

raC.S

é

sol

2 4 2 5 7 8 5

74

1679

Page 22: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 54

char 1 byte -128, 127

short 2 bytes -32769, 32767

int = short em 16 bits e = Long em 32 bits

Long 4 bytes -2147483648, 2147483647

unsigned char 1 byte 0, 255

unsigned short 2 bytes 0, 65535

unsigned int ou unsigned

=unsigned short (16) e = unsigned Long (32)

unsigned Long 4 bytes 0, 4294967295

Resumo dos tipo de variáveis

Page 23: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 55

float 4 bytes 10-38, 1038 5 dígitos de precisão

double 8 bytes 10-308, 10308 15 dígitos de precisão

Long

double

10 bytes 10-4932,

104932

19 dígitos de precisão

Page 24: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 56

Conversão de tipos

#include <iostream.h>void main( ){ int cont = 7;

float peso = 155.5;double total = cont * peso;cout<<“peso total=“<<total<<endl;

}

Page 25: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 57

! Dois operandos de tipo diferentes numa mesma expressão, a variável de tipo “menor” é convertida para a de “maior” tipo de acordo com a tabela:

menorcharshortintlongfloatdouble

maiorlong doubleOrdemTipo de dado

Page 26: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 58

! conversões são feitas automaticamente.! valor inteiro de cont é convertido para float e

armazenado em uma variável temporária antes de ser multiplicado pela variável float peso. O resultado é convertido para double e então é atribuído a variável double total.

! na definição de novos tipos, temos que tomar cuidado com a conversão e criar rotinas para tanto.

Page 27: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 59

Conversão especificada pelo programador (“cast”)

! tipos: estático, dinâmico, reinterpretativo e constante.

! estático: int a = 47;char achar = (char) a; cout<<achar<<endl; //imprime /

! outros tipos serão vistos na ocasião apropriada

Page 28: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 60

Operadores aritméticos! +, -, *, / , % (resto da divisão)! se / é aplicado a inteiros o resultado é inteiro, se

aplicado a reais, resultado real.! % só pode ser aplicado a inteiros! Operador de atribuição aritmético:

total = total + item ; => total +=item ;! -= , *=, /=, %=

Page 29: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 61

#include <iostream.h>void main( ){ int idade= 27;

idade += 10; // mesmo que idade=idade+10cout<<idade<<“, “;idade -=7; //mesmo que idade=idade –7cout<<idade<<“,”;idade *=2; //mesmo que idade=idade*2cout<<idade<<“,”;idade /=3; //mesmo que idade=idade/3cout<<idade<<“,”;idade %= 3; //mesmo que idade=idade % 3cout<<idade<<endl;

}37,30,60,20,2

Page 30: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 62

Operadores de incremento! cont = cont + 1 => cont++;! duas formas : preincremento e posincremento

Preincrementopesototal = peso * ++cont ;

1)pesototal peso cont

155.5 7

2) 155.5 8 incremento

3) 1244.0 = 155.5 * 8 multiplica

Posincrementopesototal = peso * cont++ ;

pesototal peso cont1) 155.5 7

2) 1088.5 155.5 7= * multiplica

3) 1088.5 155.5 8 incremento

Page 31: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 63

#include <iostream.h>void main( ){ int cont = 10;

cout<<“cont=“<<cont<<endl;cout<<“cont=“<<++cont<<endl;cout<<“cont=“<<cont<<endl;cout<<“cont=“<<cont++<<endl;cout<<“cont=“<<cont<<endl;

}

Page 32: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 64

! Operador de decremento! Funcionamento semelhante ao de incremento! predecremento => --cont! posdecremento => cont--

#include <iostream.h>void main( ){ int cont = 10;cout<<“cont=“<<cont<<endl;cout<<“cont=“<< --cont<<endl;

cout<<“cont=“<<cont<<endl;cout<<“cont=“<<cont--<<endl;cout<<“cont=“<<cont<<endl;

}

Page 33: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 65

Biblioteca de funções! Muitas atividades em C++ são realizadas pelas

bibliotecas de funções => acesso a arquivos, cálculos matemáticos mais complexos e conversão de dados entre outras coisas.

! Não vamos nos aprofundar muito sobre esse assunto antes de conhecermos como escrever funções, só veremos o essencial para podermos usar a biblioteca.

Page 34: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 66

#include <iostream.h>#include <math.h>void main( ){ double numero, resposta;

cout<<“Entre com um número: “;cin>>número;resposta=sqrt(numero);cout<<“Raiz quadrada do número fornecido:”

<<resposta<<endl;}

Page 35: Bases da Programação em C++marilde/Graduacao/PrimeiroSemestre/RERBD/... · C/C++ " parêntesis indicam que main é um bloco de programa chamado função ( funções também existem

Programação de Computadores 67

! Os parâmetros das funções e seus valores de retorno devem ser dos tipos definidos pela mesma.

! Esses tipos podem ser encontrados na descrição da biblioteca de funções no “HELP” do compilador.

! Em particular para a função sqrt( ) os valores especificados são: tanto o argumento quanto o valor de retorno devem ser do tipo double.