Documente Academic
Documente Profesional
Documente Cultură
Diego R. C. Silva
diego@ect.ufrn.br
15 de fevereiro de 2019
ECT2303 - Aula 02 1
Por que Aprender uma Linguagem de Programação?
ECT2303 - Aula 02 2
Por que Aprender uma Linguagem de Programação?
ECT2303 - Aula 02 3
Por que Aprender uma Linguagem de Programação?
ECT2303 - Aula 02 4
Por que Aprender uma Linguagem de Programação?
ECT2303 - Aula 02 5
Baixo Nível x Alto Nível
ECT2303 - Aula 02 6
Exemplo de Assembly
section .text
global _start ;must be declared for linker (ld)
_start: ;tells linker entry point
mov edx,len ;message length
mov ecx,msg ;message to write
mov ebx,1 ;file descriptor (stdout)
mov eax,4 ;system call number (sys_write)
int 0x80 ;call kernel
section .data
msg db ’Hello, world!’, 0xa ;our dear string
len equ $ - msg ;length of our dear string
ECT2303 - Aula 02 7
Exemplo de C++ (Programa Olá Mundo)
01 #include <iostream>
02
03 using namespace std;
04
05 int main()
06 {
07 cout << "Olá, mundo" << endl;
08 return 0;
09 }
ECT2303 - Aula 02 8
Vantagens da Linguagem de Alto Nível
ECT2303 - Aula 02 9
Forma de Programa em C++
ECT2303 - Aula 02 10
Exemplo de Programa em C++
01 #include <iostream>
02 using namespace std;
03
04 /* Nenhuma definição de tipo */
05
06 int x;
07 /* Protótipo de Função */
08 int somaValores (int v1, int v2);
09 //Funções
10 int main() {
11 {
12 cout << "Soma = " << somaValores(4, 5) << endl;
13 return 0;
14 }
15
16 int somaValores (int v1, int v2) {
17 return v1 + v2;
18 }
ECT2303 - Aula 02 11
A diretiva #include
ECT2303 - Aula 02 12
Espaço de Nomes
ECT2303 - Aula 02 13
Espaço de Nomes
ECT2303 - Aula 02 14
Espaço de Nomes
ECT2303 - Aula 02 15
A função main
ECT2303 - Aula 02 16
Saída de Dados: cout e endl
ECT2303 - Aula 02 17
Convenções
ECT2303 - Aula 02 18
Espaços
ECT2303 - Aula 02 19
Comentários
ECT2303 - Aula 02 20
Comentários
ECT2303 - Aula 02 21
Como o Programa Roda?
ECT2303 - Aula 02 22
Como o Programa Roda?
ECT2303 - Aula 02 23
Interpretador
ECT2303 - Aula 02 24
Compilador
ECT2303 - Aula 02 25
Processo de Compilação
ECT2303 - Aula 02 26
Variáveis
I Uma variável associa um nome (identificador) a um
espaço da memória do computador onde podemos
guardar informação.
I Devemos associar um tipo a uma variável de acordo com
a informação que desejamos guardar:
01 int main () {
02 int x; // Variável inteira
03 double y; // Variável de ponto flutuante
04
05 x = 3.14;
06 y = 3.14;
07
08 cout << "x = " << x << " e y = " << y << endl;
09 return 0;
10 }
ECT2303 - Aula 02 27
Tipos de Variáveis
ECT2303 - Aula 02 28
Qual tipo usar?
ECT2303 - Aula 02 29
Qual tipo usar?
ECT2303 - Aula 02 30
Até onde vai um tipo?
ECT2303 - Aula 02 31
Até onde vai um tipo?
ECT2303 - Aula 02 32
Um overflow pode sair caro
I Ariane 5:
https://www.youtube.com/watch?v=kYUrqdUyEpI
I Prejuízo de US$ 370 milhões!
ECT2303 - Aula 02 33
Outro exemplo curioso
I Quanto é 0, 1 + 0, 2?
01 int main () {
02 cout.precision(20);
03 cout.setf(ios::fixed, ios::floatfield);
04
05 cout << 0.1 + 0.2 << endl; //0.30000000000000004441
06 return 0;
07 }
I O tipo float representa valores que são uma aproximação
dos valores no conjunto R (o conjunto dos números reais)
ECT2303 - Aula 02 34
Tamanho dos Tipos de Variáveis em C++
ECT2303 - Aula 02 35
Exercício
ECT2303 - Aula 02 36