• Nenhum resultado encontrado

T T ó ó picos picos

N/A
N/A
Protected

Academic year: 2023

Share "T T ó ó picos picos"

Copied!
54
0
0

Texto

(1)

INTRODUÇÃO AO C++

SISTEMAS DE INFORMAÇÃO

DR. EDNALDO B. PIZZOLATO

(2)

Programação Orientada a Objetos

T T ó ó picos picos

•• Estrutura BEstrutura Báásica de Programas C e sica de Programas C e C++ C++

•• Tipos de Dados Tipos de Dados

•• VariVariááveis veis

•• StringsStrings

•• Entrada e SaEntrada e Saíída de Dados no C e C++ da de Dados no C e C++

(3)

Programação Orientada a Objetos

INTRODU

INTRODUÇÇÃOÃO

O C++ aceita a sintaxe C, acrescentando O C++ aceita a sintaxe C, acrescentando melhoramentos, ampliando o escopo de melhoramentos, ampliando o escopo de

aplica

aplicaçções, ões, e e possibilitando possibilitando o o desenvolvimento de programas baseados desenvolvimento de programas baseados

no paradigma da Orienta

no paradigma da Orientaçção a Objetos;ão a Objetos;

(4)

Programação Orientada a Objetos

INTRODU

INTRODUÇÇÃOÃO

O C++ mant

O C++ mantéém m àà caractercaracteríística do C de stica do C de ser uma linguagem de pequeno tamanho!

ser uma linguagem de pequeno tamanho!

C++ possui apenas 62 palavras reservadas C++ possui apenas 62 palavras reservadas

(32 delas comuns ao C);

(32 delas comuns ao C);

(5)

Programação Orientada a Objetos

INTRODU

INTRODUÇÇÃOÃO

A diferen

A diferençça maior se da maior se dáá nas unidades de nas unidades de programa

programação: no C são as função: no C são as funçções ões enquanto que no C++ são as classes (que enquanto que no C++ são as classes (que

instanciam objetos e cont

instanciam objetos e contéém funm funçções ões chamadas de m

chamadas de méétodos).todos).

(6)

Programação Orientada a Objetos

PALAVRAS RESERVADAS EM C E C++

while volatile

void unsigned

union typedef

switch

struct static

sizeof signed

short

return register

long int

if

goto for

float extern

enum

else double

do default

continue

const char

case break

auto

(7)

Programação Orientada a Objetos

PALAVRAS RESERVADAS EM C E C++

class virtual

namespace

friend throw

typename using

operator catch

const_cast template

private try

static_cast typeid

false protected

this reinterpret_cast

inline

true public

asm dynamic_cast

delete

bool explicit

mutable wchar_t

new

(8)

Programação Orientada a Objetos

Modelo

// Diretivas do Processador

#include <iostream.h>

void main() {

cout << “Meu primeiro programa” << endl;

}

(9)

Programação Orientada a Objetos

Modelo

// Diretivas do Processador

#include <iostream.h>

int main() {

cout << “Meu primeiro programa” << endl;

return 0;

}

(10)

Programação Orientada a Objetos

Modelo (compilador ISO98 v1.0)

// Diretivas do Processador

#include <iostream.h>

int main() {

std::cout << “Meu primeiro programa” << endl;

return 0;

}

(11)

Programação Orientada a Objetos

Modelo (compilador ISO98 v1.1)

// Diretivas do Processador

#include <iostream.h>

using std::cout;

int main() {

cout << “Meu primeiro programa” << endl;

return 0;

}

(12)

Programação Orientada a Objetos

Modelo (compilador ISO98 v1.2)

// Diretivas do Processador

#include <iostream.h>

using namespace std;

int main() {

cout << “Meu primeiro programa” << endl;

return 0;

}

/* Namespace – faz parte do que se chama Ambiente de Nomes no C++, que é um mecanismo para expressar agrupamentos lógicos.*/

(13)

Programação Orientada a Objetos

Algumas palavras sobre comentários

Documentam programas

Melhoram a leitura de programas São ignorados pelo compilador

(14)

Programação Orientada a Objetos

Algumas palavras sobre diretivas de pré- processamento

Começam com #

Processadas por pré-processador antes da compilação

(15)

Programação Orientada a Objetos

TIPOS DO C++

- void

unsigned char

literal

long float

double real

unsigned, short, long int

inteiro

bool lógico

modificadores NOME

TIPO

(16)

Programação Orientada a Objetos

TIPOS DO C++

0 a 4.29 109 32 4

unsigned long

-2.14 109 a 2.14 109 32 4

long int

-32768 a 32767 16 2

short int

16/32 2

unsigned int

16/32 2/4

int

0 a 255 8 1

unsigned char

-128 a 127 8 1

char

faixa bytes

bits declaração

(17)

Programação Orientada a Objetos

DECLARAÇÃO DAS VARIÁVEIS

Sintaxe de declaração de variáveis em C e C++ é semelhante.

tipo_de_dado lista_variáveis;

Exemplos :

int x, y, z;

float f;

(18)

Programação Orientada a Objetos

REGRAS PARA NOMES DAS VARIÁVEIS

-São reconhecidos pelo C os 32 primeiros caracteres de uma variável;

-Só se pode iniciar um nome com um caractere do alfabeto ou pelo caractere underscore ‘_’;

(19)

Programação Orientada a Objetos

REGRAS PARA NOMES DAS VARIÁVEIS

-Os demais caracteres podem ser alfabeto, underscore ou caracteres numéricos;

- O C e o C++ consideram diferentes nomes com letras maiúsculas e minúsculas.

Portanto as seguintes variáveis são diferentes : int maior, MAIOR, Maior, mAiOr;

(20)

Programação Orientada a Objetos

LOCAL DAS DECLARAÇÕES DE VARIÁVEIS

Em C, só se pode declarar uma variável dentro de função, antes das instruções ou entre funções (sendo, neste caso, global a partir de sua declaração).

(21)

Programação Orientada a Objetos

LOCAL DAS DECLARAÇÕES DE VARIÁVEIS

Em C++, além destas formas, pode-se declarar uma variável em qualquer ponto de um programa - entre instruções ou mesmo dentro de instruções.

(22)

Programação Orientada a Objetos

ESCOPO DE VARIÁVEIS

As regras de escopo referem-se à visibilidade da variável. Há 3 escopos possíveis para uma variável: local, arquivo e classe.

(23)

Programação Orientada a Objetos

ESCOPO DE VARIÁVEIS

LOCAL: são acessadas única e exclusivamente pelo bloco no qual foram declaradas.

Um bloco é definido por {....}

(24)

Programação Orientada a Objetos

ESCOPO DE VARIÁVEIS

GLOBAL: são acessíveis em todo o arquivo.

(25)

Programação Orientada a Objetos

ESCOPO DE VARIÁVEIS

GLOBAL: blocos com variáveis locais homô- nimas a variáveis glo- bais perdem o acesso às últimas.

(26)

Programação Orientada a Objetos

ESCOPO DE VARIÁVEIS

O C++ diferencia variáveis locais e globais homônimas com o Operador de Resolução de Escopo :: (também chamado Qualificação de Escopo), que colocado em frente à variável, faz com que o programa acesse a global.

Um erro será apontado, caso não exista a variável global.

(27)

Programação Orientada a Objetos

ESCOPO DE VARIÁVEIS

#include <iostream.h>

int x = 2;

main ()

{ int x = 0;

cout << "local “ << dob( x );

cout <<"global”<< dob(::x);

}

int dob (int v) {

return 2*v;

}

Resultado : local = 0 global = 4

(28)

Programação Orientada a Objetos

CLASSES DE ARMAZENAMENTO

As classes de armazenamento referem-se ao tempo de vida das variáveis.

C++ não acrescenta novas definições ao C.

(29)

Programação Orientada a Objetos

CLASSES DE ARMAZENAMENTO

Os especificadores auto e register significam tempo de vida local, ou seja, são liberados da memória quando o programa encerra seu escopo de declaração.

(30)

Programação Orientada a Objetos

CLASSES DE ARMAZENAMENTO

Vale lembrar que todas as variáveis locais normalmente declaradas em C e C++ são automáticas, ou seja, do tipo auto.

(31)

Programação Orientada a Objetos

CLASSES DE ARMAZENAMENTO

Usa-se register para otimizar o acesso, solicitando a alocação da variável em algum registrador disponível. Somente variáveis dos tipos char e int e suas variantes (signed, unsigned, long, etc) podem ser declaradas como register.

(32)

Programação Orientada a Objetos

CLASSES DE ARMAZENAMENTO

Os especificadores static e extern possuem tempos de vida globais, ou seja, permanecem alocados em memória guardando seu último valor mesmo após o encerramento de seu escopo.

(33)

Programação Orientada a Objetos

CLASSES DE ARMAZENAMENTO

Usa-se extern para se especificar que a definição da variável ocorre uma única vez, em qualquer um dos arquivos fontes que compõem o programa.

(34)

Programação Orientada a Objetos

CLASSES DE ARMAZENAMENTO

Em C, o especificador extern foi idealizado para auxiliar a compilação em separado de arquivos. Em C++, porém, qualquer variável ou função não declarada explicitamente como static será, do tipo extern.

(35)

Programação Orientada a Objetos

CLASSES DE

ARMAZENAMENTO A declaração static faz com que a variável perma- neça existindo em memória enquan- to o programa es- tiver rodando.

int dobro (int x) {

static int cont=0;

cont++;

printf(“%d \n”,cont);// não fazer isso

return 2*x;

}

(36)

Programação Orientada a Objetos

CLASSES DE ARMAZENAMENTO

A abrangência da variável não se altera com a declaração static.

Por exemplo, cont continua sendo uma variável local da função dobro().

(37)

Programação Orientada a Objetos

CLASSES DE ARMAZENAMENTO

Quando a declaração static é usada em variáveis globais, o escopo da variável é modificado única e exclusivamente no arquivo fonte onde ela se encontra.

(38)

Programação Orientada a Objetos

CONVERSÃO DE TIPOS

Alternativamente à conversão de cast do C, C++ propõe uma conversão explícita de tipo, onde se pode converter um dado tanto para tipos pré-definidos da linguagem como para tipos definidos pelo programador.

(39)

Programação Orientada a Objetos

CONVERSÃO DE TIPOS Exemplo :

char letra = 'a';

int var = letra; // var vale ASCII de 'a‘

(40)

Programação Orientada a Objetos

CONVERSÃO DE TIPOS Exemplo :

float fReal = 45.60;

int iInteiro, iOutro;

char cCaracter = ‘W‘;

iOutro = (int) cCaracter;

cCaracter = char(fReal);

iInteiro = (int) fReal;

(41)

Programação Orientada a Objetos

CADEIAS DE CARACTERES Exemplo :

char cadeia[20];

string x; // conteiner – incluir <string.h>

x = “Objetos";

cout << “x : " << x << endl;

(42)

Programação Orientada a Objetos

ENTRADA E SAÍDA DE DADOS Bibliotecas Stream

entrada de dados pelo teclado cin (scanf no C)

saída de dados para tela cout (printf no C)

é necessária a inclusão da biblioteca iostream.h

#include <iostream.h> // no C stdio.h

(43)

Programação Orientada a Objetos

ENTRADA E SAÍDA DE DADOS Exemplos :

Variáveis C++ C

int x; cin >> x; scanf("%d",&x);

float f,g; cin >> f >> g; scanf("%f%f",&f,&g);

(44)

Programação Orientada a Objetos

ENTRADA E SAÍDA DE DADOS Exemplos :

Variáveis C++ C

int x; cout << “x = “ << x; printf("x=%d",x);

(45)

Programação Orientada a Objetos

ENTRADA E SAÍDA DE DADOS Atenção :

É possível imprimir mais de uma variável ao mesmo tempo!

cout << x << “ e “ << y << endl;

(46)

Programação Orientada a Objetos

MACROS OU DIRETIVAS #DEFINE Sintaxe :

#define frase1 frase2

Durante a compilação ao se encontrar a ocorrência de frase1, o compilador

substituirá por frase2.

(47)

Programação Orientada a Objetos

MACROS OU DIRETIVAS #DEFINE Exemplo :

#define PI 3.141596 ...

area = PI * raio*raio; (no código) area = 3.141596 *raio*raio; (código compilado)

(48)

Programação Orientada a Objetos

ESPECIFICADOR CONST

Surgiu como alternativa ao #define na primeira versão do C++ e mais tarde foi incorporado ao padrão ANSI C;

Para se declarar um valor constante, usa-se a palavra const seguida do tipo e do valor da constante;

Em C++, é possível tornar constantes:

valores, ponteiros, conteúdo de ponteiros e parâmetros de função.

(49)

Programação Orientada a Objetos

ESPECIFICADOR CONST Sintaxe :

const tipo tVar = valor;

Depois de definido o valor não se pode mais alterá-lo.

Não ocorre substituições como com define!

Exemplo:

const float PI = 3.141596;

(50)

Programação Orientada a Objetos

DEFINIÇÃO DE TIPOS

Pode-se definir tipos próprios de variáveis, combinando tipos já existentes;

Para isto utiliza-se a palavra reservada:

typedef Exemplo:

typedef int MEU_INT;

(51)

Programação Orientada a Objetos

Conclusões:

C++ é uma linguagem muito parecida com C.

Quem aprendeu C não terá dificuldades em entender a linguagem C++. Aliás, C, C++, C# e Java são muito parecidas.

(52)

Programação Orientada a Objetos

Conclusões:

Vimos que C++ incluiu tipos novos (bool, por exemplo) e, agora, permite definir uma constante utilizando const.

Também permite utilizar os valores lógicos true e false.

(53)

Programação Orientada a Objetos

Conclusões:

Para quem tinha dores de cabeça com os comandos de entrada e saída (scanf e printf) uma boa nova:

cin E

cout

(54)

Programação Orientada a Objetos

FIM

Referências

Documentos relacionados

Fonk ’Quer um instituto moderno, não porém modernista’ (Franca apud Arquivo da Província dos Jesuítas no Brasil, 1920, grifo nosso). É possível percebermos o combate

Dessa forma, este grupo de economistas argumenta que essas condições propícias ao desenvolvimento do comércio não irão persistir indefinidamente e que, portanto, toda essa

O project finance é uma forma de financiamento de ativos em que o emprestador leva em consideração o fluxo de caixa gerado pelo próprio projeto, como fonte primária de recursos

No entanto, a dosimetria termoluminescente é baseada no tempo de vida dos picos e, como a previsão desse tempo se baseia nos parâmetros cinéticos energia de ativação (E t

• Uma provisão para riscos gerais de crédito, de 1% sobre o valor do saldo vivo de cada garantia, líquido da contragarantia do Fundo de Contragarantia Mútuo, nos termos do Aviso

- Recomenda-se que o sacramento da Confirmação seja celebrado na Igreja e dentro da Missa; por causa justa e razoável, pode ser celebrado fora da Missa e em outro lugar digno (CDC

Fazendo parte da Cresol Confederação, que abrange 17 estados e mais de 630 mil cooperados, a Cresol trabalha com foco no atendimento personalizado, fornecendo soluções

Ainda, indica-se que o presente relatório é elaborado a partir dos seguintes documentos que seguem anexos: 1) Questionário elaborado pela Administração Judicial contendo as