Baixe o app para aproveitar ainda mais
Prévia do material em texto
Conceitos Básicos Introdução a Programação Pitágoras Roteiro • Tipos Básicos ▫ Modificacores • Variáveis ▫ Escopo ▫ Modificadores • Constantes ▫ Inteiras ▫ Ponto flutuante ▫ Caractere ▫ Cadeia de caracteres • Operadores ▫ Atribuição ▫ Aritméticos ▫ Relacionais ▫ Lógicos ▫ Bit a bit ▫ Especiais Laboratório de Programação I - Glaudiney Mendonça 2 • Os demais tipos são baseados nesses Tipos Básicos Laboratório de Programação I - Glaudiney Mendonça 3 Tipo Palavra-chave Caractere char Inteiro int Ponto flutuante float precisão dupla double Sem valor void Tipo bits Valor Mínimo Valor Máximo char 8 -27 (-128) 27-1 (127) int 32 -231 - 2.147.483.648 231-1 2.147.483.647 float 32 Seis dígitos de precisão double 64 Dez dígitos de precisão Tipos Básicos Informações 4 Laboratório de Programação I - Glaudiney Mendonça • Precede os tipos • Altera o significado de um tipo Tipos Básicos Modificadores Laboratório de Programação I - Glaudiney Mendonça 5 Modificador Palavra-chave Sinal Com signed Sem unsigned Tamanho Longo long Curto short Tipo bits Valor Mínimo Valor Máximo char 8 -128 127 signed unsigned 0 255 Tipos Básicos Modificadores para char Laboratório de Programação I - Glaudiney Mendonça 6 Tipo bits Valor Mínimo Valor Máximo int 32 - 2.147.483.648 2.147.483.647 signed unsigned 0 4.294.967.295 short 16 -215 (-32.768) 215-1 (32.767) signed short unsigned short 0 65.535 long 32 mesmo que int signed long unsigned long mesmo que unsigned int long long 64 -263 (-9,2x1018) 263-1(9,2x1018) Tipos Básicos Modificadores para int Laboratório de Programação I - Glaudiney Mendonça 7 Tipo bits Precisão double 64 Dez dígitos long 80 Tipos Básicos Modificadores para double Laboratório de Programação I - Glaudiney Mendonça 8 Observações long float Mesmo que double e não é padronizado signed int Redundante pois o tipo padrão já o é unsigned double Não recomendado por não ser 100% portável Tipos Básicos Modificadores Laboratório de Programação I - Glaudiney Mendonça 9 • Nomes de variáveis, funções, constantes, etc. ▫ Primeiro caractere Letra (a-z|A-Z) ou sublinhado (_) Evitar usar acentos e ç ▫ Demais caracteres Letras, números ou sublinhados • Podem ter qualquer tamanho ▫ C99 define 63 caracteres ▫ Porem_nomes_muito_grandes_podem_ser_inco modos_de_visualizar_e_de_ler Identificadores Laboratório de Programação I - Glaudiney Mendonça 10 • Respeitar maiúsculas e minúsculas ▫ Casa CASA casa cAsa... • Não podem ser iguais a uma palavra-chave ▫ Erro • Não devem ser iguais a funções da biblioteca C ▫ Não será possível usar a função do C Identificadores Laboratório de Programação I - Glaudiney Mendonça 11 • Posição nomeada de memória • Guarda um valor que pode ser modificado pelo programa • Definição ▫ Podem ser definidas em qualquer parte do código Porém devem ser definidas antes de serem usadas ▫ Aloca memória para a variável Variáveis Laboratório de Programação I - Glaudiney Mendonça 12 • Utilize nomes que identifiquem o propósito da variável ▫ media, saldo... • Utilize letras maiúsculas no caso de variáveis compostas de mais de um nome ▫ somaDasNotas • Evite l (letra ele) e o (letra o) ▫ Por parecer 1 (número um) e 0 (número zero) Variáveis Recomendações Laboratório de Programação I - Glaudiney Mendonça 13 • Declaração Variáveis Laboratório de Programação I - Glaudiney Mendonça 14 Exemplos int i, j, k; short int si; unsigned int ui; double balance, profit, loss; modificadores tipo lista_de_variaveis; modificadores Qualquer quantidade tipo Tipo válido lista_de_variáveis Nomes das variáveis separados por vírgula (,) • Onde uma variável é definida • Determina qual a região em que ela pode ser utilizada • Tipos ▫ Local ▫ Parâmetro Formal ▫ Global Variáveis Escopo Laboratório de Programação I - Glaudiney Mendonça 15 • Definida dentro de um bloco (função) ▫ Só podem ser utilizadas dentro do bloco que foram definidas ▫ Criada no início do bloco e “destruída” no final ▫ A memória só será alocada quando necessária ▫ Evita problemas em outras partes do código Variáveis Escopo Local Laboratório de Programação I - Glaudiney Mendonça 16 Exemplo void func1() { int x; x = 10; } void func2() { int x; x = -199; } • Como qualquer variável local ▫ Valores que serão passados para uma função ▫ Definidas depois o nome da função e entre parênteses Variáveis Escopo de Parâmetro Formal Laboratório de Programação I - Glaudiney Mendonça 17 Exemplo is_in(char* s, char c) { while(*s) if (*s == c) return 1; else s++; } • Reconhecidas no código inteiro • Podem ser usadas em qualquer lugar do código ▫ Guardam os valores durante toda a execução do programa • Declara fora de qualquer função ▫ Nas declarações globais • Alocadas quando o programa inicia e “destruídas” quando o programa termina Variáveis Escopo Global Laboratório de Programação I - Glaudiney Mendonça 18 • Existem modificadores que alteram variáveis Variáveis Modificadores Laboratório de Programação I - Glaudiney Mendonça 19 Tipo Significado Exemplo const Tratada como constante const int pi = 3.1415; static Não perde o valor ao sair do escopo static int a; • Pode inserir um valor a uma variável no momento de sua criação Variáveis Inicialização Laboratório de Programação I - Glaudiney Mendonça 20 Exemplos char ch = ‘a’; int first = 0; float balance = 123.23; tipo variavel = valor; tipo Tipo válido variavel Nome da variável valor Valor inicial • Valores que não podem ser alterados • Inteiras Constantes Laboratório de Programação I - Glaudiney Mendonça 21 Tipo Início Dígitos Exemplos Decimal 0 a 9 1, 0, 123, 21000 Octal 0 (zero) 0 a 7 01, 044533, 042, 077 Hexadecimal 0x ou 0X (zero xis) 0 a 9 A a F 0x34AF, 0XFBC, 0x3FD • Ponto flutuante • Cadeia de caracteres Constantes Ponto Flutuante Laboratório de Programação I - Glaudiney Mendonça 22 Tipo Composição Exemplos Parte inteira separada da fracionária por ponto (.) 123.12333, -0.9876 Notação Científica Apresentada depois 4.34e-3 Composição Exemplo Delimitada por aspas (“) "Este e um exemplo de cadeia" Constantes Caractere Laboratório de Programação I - Glaudiney Mendonça 23 Tipo Composição Exemplos Delimitado por apóstrofo (‘) 'A', 'a', '1' Número Número da tabela ASCII 65, 97, 49 Especial Precedido de barra invertida (\) \b Retrocesso \n Quebra de linha \t Tabulação horizontal \” Aspas \’ Apóstrofo \\ Barra invertida \0 Caractere nulo \a Alerta • Operações elementares de uma linguagem • Aplicados a um ou mais valores ▫ Operandos • Aridade ▫ Unários ▫ Binários ▫ Ternários Operadores Laboratório de Programação I - Glaudiney Mendonça 24 • Utilização • Múltiplas atribuições ▫ x = y = z = 12; • Conversão de tipos Operadores Atribuição Laboratório de Programação I - Glaudiney Mendonça 25 nome_da_variavel = expressao; nome_da_variavel Variável que irá receber o valor expressao Expressão matemática que será calculada Automática Realizada pelo C int x = 5.3; x igual a 5 Explícita (Casting) Altera o resultado final de uma expressão float x = (int)(3.5 + 5.2); x igual a 8.0 Dest. Expressão Perdido Exemplo char unsigned char Se>127, negativo chara = 129; a igual a -127 int Primeiros 24 bits a = 33000; a igual a -24 int float Parte fracionário int x = 5.3; x igual a 5 float double Precisão float y = 5.0123456789; y igual a 5.012346 Operadores Atribuição - Conversão 26 Laboratório de Programação I - Glaudiney Mendonça Operador Ação Aritméticos - Subtração e menos unário + Adição * Multiplicação / Divisão % Módulo da divisão (resto) -- Decremento ++ Incremento Operadores 27 Laboratório de Programação I - Glaudiney Mendonça • Divisão (/ ) ▫ Se aplicado a inteiros, o resto é truncado 5 / 2 == 2 ▫ Caso se deseje o valor fracionário deve-se transformar pelo menos um dos números em ponto flutuante 5 / 2.0 == 2.5 ▫ Caso sejam variáveis inteiras, usa-se o casting Operadores Aritméticos - Observações Laboratório de Programação I - Glaudiney Mendonça 28 Exemplo float x; int y = 5, z = 2; x = y / (float) z; • Resto (% ) ▫ Não pode ser utilizado em ponto flutuante • Incremento (++) e decremento (-- ) ▫ Em expressões, podem ser utilizados de duas formas Operadores Aritméticos - Observações Laboratório de Programação I - Glaudiney Mendonça 29 Forma O que ocorre Exemplo x y z x = 10; 10 ? ? Prefixo Altera variável antes de utilizar valor y = ++x; 11 11 ? Sufixo Altera variável depois de usar valor z = x++; 12 11 11 Precedência ++ -- - (unário) * / % + - Operadores Aritméticos 30 Laboratório de Programação I - Glaudiney Mendonça Operador Ação Relacionais > Maior que >= Maior que ou igual < Menor que <= Menor que ou igual == Igual != Diferente Lógicos ! Não && E || OU Operadores 31 Laboratório de Programação I - Glaudiney Mendonça Operadores Relacionais e Lógicos - Observações 32 Laboratório de Programação I - Glaudiney Mendonça • Resultam em um valor inteiro • Podem ser utilizados em expressões ▫ 7 + (5 > 3) == 8 • Operandos são números ▫ 0 || 34 == 1 0 Falso 0 (1) Verdadeiro Operadores Relacionais e Lógicos – Tabela verdade 33 Laboratório de Programação I - Glaudiney Mendonça X Y !X X && Y X || Y 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 1 Operadores Relacionais e Lógicos 34 Laboratório de Programação I - Glaudiney Mendonça Precedência ! ++ -- - * / % + - > >= < <= == != && || Operador Ação Bit a bit & E | OU ^ OU Exclusivo ~ Complemento de um >> Deslocamento à direita << à esquerda Operadores Bit a bit 35 Laboratório de Programação I - Glaudiney Mendonça • Não podem ser usados com ponto flutuante • Usos interessantes ▫ Observação 7 == 00111 -8 == 11000 Operadores Bit a bit - Observações Laboratório de Programação I - Glaudiney Mendonça 36 Uso O que ocorre Exemplo x y Deslocamento de 1 bit Multiplica (<<1) ou divide (>>1) o número por 2 int x = 7 << 1; int y = 7 >> 1; 14 3 Complemento de um Inverte os valores dos bits int x = ~7; -8 Operador Significado (tipo) expr Casting +=, -=, *=, /=, %=... Atribuição aritmética Simplifica o uso da atribuição com outro operador x = x+3 x += 3 ? : Substituir condicional & Manipular endereço de memória * Acessar conteúdo de memória Operadores Especiais Laboratório de Programação I - Glaudiney Mendonça 37 Operador Significado sizeof Retornar o tamanho de uma estrutura (em bytes) . (ponto) Referenciar elementos em estruturas -> (seta) , (vírgula) Encadeia expressões x =(y=3,y+1); ( ) Aumenta a precedência [ ] Indexa vetores e matrizes Operadores Especiais Laboratório de Programação I - Glaudiney Mendonça 38 Precedência Geral ( ) [ ] -> . ! ~ ++ -- - (tipo) * & sizeof * / % + - << >> < <= > >= == != & ^ | && || ?: = += -= *= /= %= <<= >>= &= |= ^= , Operadores Laboratório de Programação I - Glaudiney Mendonça 39
Compartilhar