A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Atenção! As aulas não cobrem toda a matéria! Há que ler as folhas teóricas!

Apresentações semelhantes


Apresentação em tema: "Atenção! As aulas não cobrem toda a matéria! Há que ler as folhas teóricas!"— Transcrição da apresentação:

1 Atenção! As aulas não cobrem toda a matéria! Há que ler as folhas teóricas!

2 Aula 2 Conceitos básicos de programação

3 2003/2004 Introdução à Programação 3 Variáveis bool encontrado = false; int número_de_alunos = 39; float taxa_de_conversão = f; char caractere = A; Nomes de pedaços de memória Interpretação dada pelo tipo Tipo: booleano, ou seja, só pode tomar os valores falso e verdadeiro Nome Valor inicial

4 2003/2004 Introdução à Programação 4 Memória do computador (I) encontrado : bool falso … … número_de_alunos : int 39 Taxa_de_conversão : float 200,482 caractere : char A

5 2003/2004 Introdução à Programação 5 Memória do computador (II) Uma sequência de bits 768 Mbyte = byte = bit Aproximadamente 1 bit por habitante da Terra

6 2003/2004 Introdução à Programação 6 Caracteres Tipo: char Número de bits: 8 Número de padrões: 2 8 = 256 Código: e.g. ISO-Latin-9 (ISO ) A a

7 2003/2004 Introdução à Programação 7 Interpretação dos caracteres A..... ( ) 2 = (65) 10 a..... ( ) 2 = (97) ( ) 2 = (48) 10 char caractere = A char caractere = char(65);

8 2003/2004 Introdução à Programação 8 Inteiros Tipo: int Número de bits: 32 (normalmente) Para simplificar, vamos assumir que têm apenas 4 bits Número de valores diferentes: 2 4 = 16 Se não representarem valores negativos: 0 a

9 2003/2004 Introdução à Programação 9 Manipulando inteiros não negativos = ? = ? O bit mais significativo não cabe num inteiro de 4 bits

10 2003/2004 Introdução à Programação 10 Representação de inteiros não negativos

11 2003/2004 Introdução à Programação 11 Inteiros com sinal Qual o padrão de bits mais adequado a representar (-1) 10 ? (1111) 2 E o (-2) 10 ? (1110) 2

12 2003/2004 Introdução à Programação 12 Inteiros com sinal: quando parar? Em (-8) 10 : Aproximadamente mesmo número de positivos e negativos Negativos identificados pelo bit mais significativo

13 2003/2004 Introdução à Programação 13 Representação de inteiros em complemento para dois Gama de valores representáveis com 4 bits: -8 a 7 Representação binária de -5: Gama de valores representáveis com n bits: -2 n-1 a 2 n-1 -1 Gama de valores representáveis com 32 bits: a

14 2003/2004 Introdução à Programação 14 Caracteres como inteiros A..... ( ) 2 = (65) 10 char caractere = 'A'; int código = int(caractere); cout << código << endl; char caractere = 'A'; int código = int(caractere) + 1; cout << código << endl; char caractere = 'A'; cout << caractere << endl; ++caractere; cout << caractere << endl; 6566ABAB

15 2003/2004 Introdução à Programação 15 Valores em vírgula flutuante Tipo: float Número de bits: 32 Valores: s m 2 e s0s0 m -1...m -23 e7e7...e0e0 1, Sinal Mantissa Expoente

16 2003/2004 Introdução à Programação 16 Tipos básicos TipoTamanho/Formato típicoValores literais (números inteiros) short 16 bits/complemento para dois int 32 bits/complemento para dois 176,... long 64 bits/complemento para dois 8374L,... (números decimais) float 32-bit IEEE f, F,... double 64-bit IEEE , 1.8e1, 18.0,... long double 96-bit IEEE L, 1.8e1L, 18.0L,... (outros tipos) char 8 bits A,.,,... bool 1 byte = 8 bits false e true Têm versão unsigned

17 2003/2004 Introdução à Programação 17 Estrutura de um programa em C++ // Inclusão de ficheiros de interface de bibliotecas e módulos (a // explicar mais tarde): #include // Directiva de utilização do espaço nominativo std (a explicar mais // tarde): using namespace std; int main() {... // Aqui é onde se escreve o programa. } Todas as frases precedidas de // ou entre /* e */ são comentários, sendo ignoradas pelo compilador

18 2003/2004 Introdução à Programação 18 Instruções Uma instrução em C++ pode ser da forma expressão; Ocorrendo nesta Operadores Variáveis Valores literais...

19 2003/2004 Introdução à Programação 19 Operação de atribuição Afecta o estado do programa: altera o valor de uma variável variável = expressão; O estado do programa é definido pelo valor das suas variáveis

20 2003/2004 Introdução à Programação 20 Operadores aritméticos (I) +, -, *, / e % A divisão ( / ) é a divisão inteira se os seus operandos forem inteiros int x = 1 / 2; cout << x << endl; 0

21 2003/2004 Introdução à Programação 21 Operadores aritméticos (II) % significa resto da divisão ou módulo: int x = 15 % 6; cout << x << endl; 3

22 2003/2004 Introdução à Programação 22 Operadores aritméticos (III) Se os operandos forem de tipos diferentes, o operando de um tipo menos potente é convertido para o tipo mais potente antes do cálculo: cout << << endl; 2.5

23 2003/2004 Introdução à Programação 23 Operadores relacionais e de igualdade e diferença Operadores relacionais: >, >=, <, <= Operador de igualdade: == Operador de diferença: != O resultado é um bool

24 2003/2004 Introdução à Programação 24 Precedência e associatividade (I) Regras comuns respeitadas: cout << * 3 << endl; cout << 16 / 2 / 2 << endl; 164

25 2003/2004 Introdução à Programação 25 Precedência e associatividade (II) Excepção: atribuição int i = 1, j = 2; i = j = 0; cout << i << << j << endl; Valor da atribuição é o valor da variável atribuída int x = 0; double f = 0.0; f = x = 1.3; cout << f << << x << endl;

26 2003/2004 Introdução à Programação 26 Operadores especiais de atribuição +=, -=, *=, /=, %= Expressões do tipo x = x + 10; São abreviadas para x += 10;

27 2003/2004 Introdução à Programação 27 Operadores de incrementação e decrementação (I) ++ e -- prefixos e sufixos Expressões do tipo x = x + 1; São abreviadas para ++ x; // operador prefixo ou x++; // operador sufixo Preferível!

28 2003/2004 Introdução à Programação 28 Operadores de incrementação e decrementação (II) Operador prefixo: int i = 0; int j = ++i; cout << i << << j << endl; Operador sufixo int i = 0; int j = i++; cout << i << << j << endl; 1 1 0

29 2003/2004 Introdução à Programação 29 Aula 2: Sumário Conceito de memória Variáveis como forma estruturada de usar a memória Tipos básicos em C++ Noções sobre a representação física dos tipos Noções de representação de inteiros em complemento para dois Noções de representação de valores em vírgula flutuante Noções sobre códigos de caracteres Interpretação de valores do tipo char como inteiros Valores literais Computadores como máquinas finitas Expressões e operações Precedência e associatividade Operação de atribuição: alteração do estado da memória


Carregar ppt "Atenção! As aulas não cobrem toda a matéria! Há que ler as folhas teóricas!"

Apresentações semelhantes


Anúncios Google