+ Curso de C/C++ Aula 7 Instrutor: Francisco Magalhães Material por: Allan Lima
Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima
-
Upload
gwenifer-allen -
Category
Documents
-
view
37 -
download
0
description
Transcript of Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima
![Page 1: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/1.jpg)
+
Curso de C/C++
Aula 1
Instrutor: Breno do Vale
Material por: Allan Lima
http://allanlima.wordpress.com/
![Page 2: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/2.jpg)
Você pode: copiar, distribuir, exibir e executar a obra criar obras derivadas fazer uso comercial da obra
Sob as seguintes condições: Atribuição. Você deve dar crédito ao autor original, da forma especificada
pelo autor ou licenciante. Compartilhamento pela mesma Licença. Se você alterar, transformar, ou
criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta.
Para cada novo uso ou distribuição, você deve deixar claro para outros os termos da licença desta obra.
Qualquer uma destas condições podem ser renunciadas, desde que Você obtenha permissão do autor.
Veja aqui a licença completa
![Page 3: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/3.jpg)
+Roteiro
O objetivo do curso
História da linguagem C
Características da linguagem C
Sistemas de tipos
Variáveis e operadores
Estruturas de controle
Funções
Entrada e Saída
![Page 4: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/4.jpg)
+O objetivo do curso
Aprender a programar em C e C++!
Será que só isso basta?
Não seria melhor também aprender a aprender C e C++???Entender bem o funcionamento do programa
na memória do computadorE principalmente, aprender onde e como
encontrar ajuda
![Page 5: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/5.jpg)
+História da Linguagem C
Surgiu no início dos anos 70
Criada inicialmente para o UNIX
Criadores:Dennis Ritchie (direita)Kenneth Thompson (esquerda)
Baseada na Linguagem B
Versão inicial bastante simples
www.viphostsystem.com
![Page 6: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/6.jpg)
+História da Linguagem C
Ampla popularização nos anos 80
Muitas arquiteturas e compiladores
Problemas com a incompatibilidade
Padronização de 82 a 89 (C ANSI)
Até hoje existem problemas entre os diversos compiladores e sistemas operacionais
![Page 7: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/7.jpg)
+Características
Paradigma Procedural
Flexível
Alta performance
Poucas restrições
Ótima iteração com:Sistemas OperacionaisDispositivos de HardwareOutras Linguagens
![Page 8: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/8.jpg)
+Palavras Reservadas
auto, break, case, char, const, continue,
default, do, double, else, enum, extern, float,
for, goto, if, int, long, register, return,
short, signed, sizeof, static, struct, switch,
typedef, union, unsigned, void, volatile, while
Obs.: C é case sensitive
![Page 9: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/9.jpg)
+Tipos
São as formas que utilizamos para representar dados
C possui 5 tipos básicos:char, int, float, double e void
E 4 modificadores básicos:signed, unsigned, long e shortOs 4 podem ser aplicados ao intlong pode ser aplicado ao doublesigned e unsigned aplicados ao char
![Page 10: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/10.jpg)
+Tipos
Modificadores de acesso: const: a variável não pode ter o seu valor alterado volatile: a variável pode ter o seu valor modificado
fora do controle do programa
Classes de Armazenamento: auto: indica que uma variável é local (opcional),
também é usada na declaração de nested functions extern: variável declarada em outro arquivo register: armazena, se possível, a variável em um
registrador na própria CPU.
![Page 11: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/11.jpg)
+Tipos
Classes de Armazenamento (Cont.):static: não permite que um módulo externo
possa alterar nem ver uma variável global, também é usado para manter o valor de uma variável local em uma função de uma chamada para outra.
![Page 12: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/12.jpg)
+Tipos
O tamanho do inteiro depende da arquitetura do sistema:Sistemas de 32 bits inteiro de 32 bitsSistemas de 64 bits inteiro de 64 bits
Restrições:short int e int devem ter pelo menos 16 bitslong int com no mínimo 32 bitsshort int <= int <= long int
![Page 13: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/13.jpg)
+Variáveis
Declaração:tipo nome = inicialização;
Escopo da variáveis:globais: podem ser usadas em qualquer lugar
do programa locais: podem ser usadas apenas na função
onde foi declarada
![Page 14: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/14.jpg)
+Exemplo
int a, b = 10; // Variáveis globais
void f(char c) {
double d = 10.0; // Variável local
int i = a; // Variável local
// ...
}
int main() {
int i = b; // Variável local
return 0;
}
![Page 15: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/15.jpg)
+Exemplos
exemploRegister.c
exemploStatic.c
exemploAuto.c
![Page 16: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/16.jpg)
+Variáveis
RestriçõesO nome das variáveis deve começar com uma
letra ou um sublinhado “_”Os demais caracteres podem ser letras,
números ou sublinhadoO nome da variável não pode ser igual a uma
palavra reservada e aos nomes das funçõesTamanho máximo para o nome de uma variável:
32 caracteres
![Page 17: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/17.jpg)
+Constantes
São valores que são mantidos fixos pelo compilador
Também podem ser:Octais - 0NUMERO_OCTALHexadecimais - 0xNUMERO_HEXADECIMAL
Exemplos:‘\n’ (caractere), “C++” (string), 10 (inteiro), 15.0 (float), 0xEF (239 em decimal), 03212 (1674 em decimal)
![Page 18: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/18.jpg)
+ Constantes de Barra Invertida
Código Significado
\b Retrocesso (backspace)
\f Alimentação de Formulário (form feed)
\t Tabulação Horizontal (tab)
\n Nova Linha
\” Aspas
\’ Apostrofo
\0 Nulo
\\ Barra Invertida
\a Sinal Sonoro (Beep)
\N Constante Octal (N é o valor da constante)
\xN Constante Hexadecimal (N é o valor da constante)
![Page 19: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/19.jpg)
+Operadores Aritméticos
Operador Ação
+ Soma
- Subtração ou troca de sinal
* Multiplicação
/ Divisão
% Resto da divisão inteira
++ Incremento
-- Decremento
![Page 20: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/20.jpg)
+ Exercícios
1) Qual o valor das variáveis x, y e z após o seguinte trecho de código:
int x, y, z;x = y = 10;z = ++x;x = -x;y++;x = x + y - (z--);
2) Utilize o DEVCPP para compilar e rodar código do exercício anterior.
![Page 21: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/21.jpg)
+Operadores Relacionais
Operador Relação
> Maior que
>= Maior que ou igual a
< Menor que
<= Menor que ou igual a
== Igual a
!= Diferente de
![Page 22: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/22.jpg)
+Operadores Lógicos
Operador Função
&& AND
|| OR
! NOT
![Page 23: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/23.jpg)
+Operadores Lógicos Bit a Bit
Operador Ação
& AND Lógico
| OR Lógico
^ XOR (OR exclusivo)
~ NOT
>> Shift Rigth
<< Shift Left
![Page 24: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/24.jpg)
+Exercícios
3) Qual o valor das variáveis a, b, c, d, e, f após a execução do seguinte trecho de código:
int x = 2, y = 4;int a, b, c, d, e, f;a = x & y;b = x | y;c = x ^ y;d = ~x;e = x << 3;f = x >> 1;
![Page 25: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/25.jpg)
+Tabela de Precedências
, =+=-=*=/=
? || && | ^ & ==!=
<<=>>=
<<>>
+-
*/%
!~++--.- *&
( )[ ]->
Precedência- +
![Page 26: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/26.jpg)
+Casts
Sintaxe:(tipo) expressão
Exemplo:
long a = 10, b = 4;
// f = 2.5
double f = (double) a/b;
![Page 27: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/27.jpg)
+Controladores de Fluxo
C possui 7 controladores de fluxo básicos:if?:switchforwhiledo-whilegoto
![Page 28: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/28.jpg)
+if
if (condição) { declaração }
if (condição) { declaração1 }
else { declaração2 }
if (condição1) { declaração1 }
else if (condição2) { declaração2 }
else { declaração3 }
![Page 29: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/29.jpg)
+Exemplo
int a = 2;
if (2) {
a = 4;
} else if (0) {
a = 0;
}
if (a) {
a = -a;
}
![Page 30: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/30.jpg)
+?:
condição ? expressão1 : exepressão2;
Equivalente a:
if (condição) { expressão1 } else { expressão2 }
O operador ? é restrito, mas pode simplificar expressões grandes
Uma expressão é diferente de uma declaração
![Page 31: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/31.jpg)
+ Exemplo
int a = 9, b = -4, c;
b = (a > b) ? a : b;
c = (a > b) ? b : a;
![Page 32: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/32.jpg)
+switch
switch (variável) {
case (constante1):
declaração1;
break; // O break é opcional
// ...
case (constanteN):
declaraçãoN;
break; // O break é opcional
default:
declaraçãoDefault;
![Page 33: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/33.jpg)
+Exemplo
switch (a) {
case (1):
// ...
break;
case (2):
// ...
break;
default:
// ...
}
![Page 34: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/34.jpg)
+for
for (comando; condição; comando) {
declaração;
}
Exemplo:
// o i não pode ser declarado no for
int i;
int a = 0;
for (i = 0; i < 100; i++) {
a = a + 14;
}
![Page 35: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/35.jpg)
+while
while (condição) {
declaração;
}
Executa a declaração zero ou mais vezes
Exemplo:
int i = 0;
int a = 0;
while (i < 100) {
a = a + 14;
i++;
}
![Page 36: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/36.jpg)
+do-while
do {
declaração;
} while (condição);
Executa a declaração pelo menos uma vez, já que a verificação da condição é feita apenas no final de cada iteração do loop
![Page 37: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/37.jpg)
+Exemplo
int i = 0;
int a = 0;
do {
a = a + 14;
i++;
} while (i < 0);
![Page 38: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/38.jpg)
+break e continue e goto
O break é usado para interromper o switch ou um loop
Exemplo:
while (1) {
a = a + 14;
i++;
if (i > 99) {
break;
}
}
![Page 39: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/39.jpg)
+continue
O continue é usado para fazer um loop pular para a próxima iteração
Exemplo:
while (1) {
i++;
if (i % 2 == 0) {
continue;
}
a = a + 14;
}
![Page 40: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/40.jpg)
+goto
O goto pode ser usado para dar um salto incondicional no fluxo do programa
Exemplo:
int a = 0;
inicio:
a++;
if (a < 10) {
goto inicio;
}
![Page 41: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/41.jpg)
+Funções
Sintaxe:
tipoDeRetorno nomeDaFunção(declaraçãoDosParâmetros)
{
corpoDaFunção;
}
declaraçãoDosParâmetros = tipo1 nome1,..., tipoN nomeN
Funções que não possuem retorno são void
O retorno de uma função é feito através do comando return
![Page 42: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/42.jpg)
+Exemplos
int dobro(int a) {
return 2 * a;
}
int main(int a) {
int c;
c = 8;
c = dobro(c);
return 0;
}
![Page 43: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/43.jpg)
+Entrada e Saída de Dados
A função scanf é utilizada para a leitura dados do dispositivo de entrada padrão
A função printf é utilizada para a escrita de dados do dispositivo de saída padrão
![Page 44: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/44.jpg)
+Exemplos
int a;
scanf(“%d”, &a); // lê a
printf(“%d”, a); // escreve a
char ch;
scanf(“%c”, &ch); // lê c
printf(“%c”, ch); // escreve c
float num;
scanf(“%f”, &num); // lê f
printf(“%f”, num); // escreve f Obs.: Cuidado para não esquecer do & no uso da função scanf
![Page 45: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/45.jpg)
+Tabela de Formato para E/S
Tipo Formato para escrita e leitura
[signed | unsigned] char %c
[signed] int %i ou %d
unsigned int %u
[signed] short int %hi
unsigned short int %hu
[signed] long int %li
unsigned long int %lu
float %f
double %lf
long double %Lf
![Page 46: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/46.jpg)
+Exercícios
4) Escreva um programa que lê um inteiro do teclado responde ‘sim’ se ele é um múltiplo de 3 e ‘não’ caso contrário
Tome como base a seguinte estrutura de programa:
#include <stdio.h>
int main() { return 0;}
5) Implemente um programa que lê 10 inteiros do teclado ou para quando dois inteiros consecutivos sejam digitados. Após a leitura o programa deverá imprimir o maior, o menor, a média e a soma dos números digitados.
6) Modifique a sua resposta para o exercício anterior trocando os loops (for, while, do-while) para goto
![Page 47: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/47.jpg)
+Referências
Matos, P. A. & Carvalho, G. H. P. - A Linguagem de Programação C
The C Programming Language http://www.engin.umd.umich.edu/CIS/course.des
/cis400/c/c.html Curso de C da UFMG
http://ead1.eee.ufmg.br/cursos/C/ Lammert Bies, ASCII character map
http://www.lammertbies.nl/comm/info/ascii-characters.html
Slides de Gustavo Henrique Porto do curso de C/C++
![Page 48: Curso de C/C++ Aula 1 Instrutor: Breno do Vale Material por: Allan Lima](https://reader035.fdocumentos.com/reader035/viewer/2022062411/56813595550346895d9d08c8/html5/thumbnails/48.jpg)
+Agradecimentos
Allan LimaPelo material cedido para o curso
Gustavo Henrique Porto Pelo material cedido para montagem da aula
Pedro Silva LeitePela revisão da aula