msc. marcelo torres – professortorres.com.br. linguagem de programação 01 - introdução à...
TRANSCRIPT
MSc. Marcelo Torres – professortorres.com.br
Linguagem de Programação
01 - Introdução à Linguagem C
MSc. Marcelo Torres – professortorres.com.br
MSc. Marcelo Torres – professortorres.com.br
Bibliografia
• Schildt, Herbert – C Completo e Total. São Paulo: Pearson, 1997
• ASCENCIO, A, F. G.; DE CAMPOS, E. A. V. Fundamentos da programação de computadores. São Paulo: Pearson, 2008.
• DAMAS, L. M. D. Linguagem C. Rio de Janeiro: LTC, 2007.
• LOPES, A; GARCIA, G. Introdução à programação - 500 algoritmos. Rio de Janeiro: Campus, 2002.
MSc. Marcelo Torres – professortorres.com.br
Introdução
• Desenvolvida por Dennis Ritchie em 1972, em um PDP-11 para recriar módulos do Unix (desenvolvido em assembly).
• Em 1983 a ANSI (American National Standards Institute) estabeleceu um padrão para linguagem C.
MSc. Marcelo Torres – professortorres.com.br
• Linguagem de Nível Médio
• Linguagem Imperativa
• Linguagem Estruturada
• Linguagem Compilada
MSc. Marcelo Torres – professortorres.com.br
C x C++
• C++ é uma versão estendida e melhorada de C., projetada para suportar programação orientada a objetos.
• Como C++ é derivado de C, não é possível programar em C++ sem recorrer a linguagem C.
Esta disciplina abordará conceitos referentes à linguagem C++.
MSc. Marcelo Torres – professortorres.com.br
Os 5 tipos básicos de dados
• char um caracter (1 byte)• int número inteiro de 2 bytes (de -32.767 a 32.767)• float número real de 4 bytes, com 6 casas de precisão• double número real de 8 bytes, com 10 casas de
precisão• void declara explicitamente que uma função não
retorna valor
MSc. Marcelo Torres – professortorres.com.br
Modificadores de Tipo Básico
Exceto void, todos os demais tipos de dados podem ser modificados pelos modificadores a seguir:•signed é o padrão dos inteiros e reais, permitindo atribuir valores menores e maiores que zero (e o próprio zero)•unsigned modifica os inteiros e reais para permitir somente números maiores ou iguais a zero
MSc. Marcelo Torres – professortorres.com.br
• long duplica a capacidade de um tipo básico de dado
– long double (16 bytes)
• short reduz pela metade a capacidade de um tipo básico de dado
– Short float (2 bytes)
MSc. Marcelo Torres – professortorres.com.br
Declaração de Variáveis
Em C, uma variável é declarada em qualquer ponto do código, colocando o tipo de dado seguido no nome da variável.
•int contador – double msg – char ativo
MSc. Marcelo Torres – professortorres.com.br
• Uma variável pode ser LOCAL, quando declarada dentro de um bloco { } de código ou GLOBAL quando declarada no escopo principal do programa.
• Duas ou mais variáveis LOCAIS podem ter o mesmo nome, sem que isto cause erros no programa.
• Uma variável LOCAL não pode ter o mesmo nome de uma variável GLOBAL
MSc. Marcelo Torres – professortorres.com.br
Modificadores de Tipo de Acesso
• const define valores que não podem ser modificados ao longo do programa – constantes.
– const double pi = 3.141592;• volatile define que uma variável poderá ter seu valor
alterado sem que haja uma atribuição explícita (mudanças de valores em ponteiros)
– const volatile unsigned int *porta = 0x30;
MSc. Marcelo Torres – professortorres.com.br
Operadores
• = atribuição• - subtração• + adição• * multiplicação• / divisão• % módulo (resto da divisão)• -- decremento• ++ incremento
MSc. Marcelo Torres – professortorres.com.br
Incremento e Decremento
Em C é possível utilizar um atalho para operações de incremento e decremento.
•X = X + 1; pode ser convertido em X++;
•Y = Y – 1; pode ser convertido em Y--;
MSc. Marcelo Torres – professortorres.com.br
Operadores Relacionais
• > maior que• >= maior ou igual a• < menor que• <= menor ou igual a• == igual a• != diferente de
MSc. Marcelo Torres – professortorres.com.br
Operadores Lógicos
• && AND• || OR• ! NOT
C não possui um operador lógico exclusivo para XOR
MSc. Marcelo Torres – professortorres.com.br
Operador Ternário
O Operador ternário substitui certas cláusulas IF-ELSE•EXP ? IF : ELSE
– x = 10– y = x > 9 ? 100 : 200
MSc. Marcelo Torres – professortorres.com.br
Operadores de Ponteiro
Um ponteiro é um endereço de memória de uma variável.•& devolve o endereço na memória de seu operando
– m = &cont; põe o endereço de cont em m•* devolve o valor da variável localizado no endereço referido
– q = *m; põe o valor de cont em q
MSc. Marcelo Torres – professortorres.com.br
Parênteses, Colchetes e Chaves
• ( ) Define a precedência de operações• [ ] Define o tamanho de um vetor• { } Define o escopo de um bloco de código
MSc. Marcelo Torres – professortorres.com.br
Type Cast
É possível forçar o tipo de dados de uma expressão através do TYPE CAST•(tipo) expressão
– (int) x/2
MSc. Marcelo Torres – professortorres.com.br
C Reduzido
Existe uma variante de atribuição que reduz a quantidade de código•x = x + 10 x += 10•y = y * 3 y *= 3
MSc. Marcelo Torres – professortorres.com.br