MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à...
Transcript of MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à...
![Page 1: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/1.jpg)
MSc. Marcelo Torres – professortorres.com.br
![Page 2: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/2.jpg)
Linguagem de Programação
01 - Introdução à Linguagem C
MSc. Marcelo Torres – professortorres.com.br
![Page 3: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/3.jpg)
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.
![Page 4: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/4.jpg)
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.
![Page 5: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/5.jpg)
MSc. Marcelo Torres – professortorres.com.br
• Linguagem de Nível Médio
• Linguagem Imperativa
• Linguagem Estruturada
• Linguagem Compilada
![Page 6: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/6.jpg)
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++.
![Page 7: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/7.jpg)
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
![Page 8: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/8.jpg)
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
![Page 9: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/9.jpg)
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)
![Page 10: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/10.jpg)
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
![Page 11: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/11.jpg)
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
![Page 12: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/12.jpg)
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;
![Page 13: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/13.jpg)
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
![Page 14: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/14.jpg)
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--;
![Page 15: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/15.jpg)
MSc. Marcelo Torres – professortorres.com.br
Operadores Relacionais
• > maior que• >= maior ou igual a• < menor que• <= menor ou igual a• == igual a• != diferente de
![Page 16: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/16.jpg)
MSc. Marcelo Torres – professortorres.com.br
Operadores Lógicos
• && AND• || OR• ! NOT
C não possui um operador lógico exclusivo para XOR
![Page 17: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/17.jpg)
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
![Page 18: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/18.jpg)
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
![Page 19: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/19.jpg)
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
![Page 20: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/20.jpg)
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
![Page 21: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/21.jpg)
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
![Page 22: MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.](https://reader035.fdocumentos.tips/reader035/viewer/2022062418/552fc171497959413d8ee3bf/html5/thumbnails/22.jpg)
MSc. Marcelo Torres – professortorres.com.br