40
Aula 03: Introduªo a C++ Introduªo a Programaªo Toelio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computaªo UFOP

Aula 03: Introdução a C++ - Introdução a Programação · Entendendo o Programa O programa primeiro.cpp, escrito em C++ é composto pelos seguintes componentes: Comentários:

  • Upload
    vuhanh

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Aula 03: Introdução a C++Introdução a Programação

Túlio Toffolo & Puca Huachihttp://www.toffolo.com.br

BCC201 – 2018/2Departamento de Computação – UFOP

Aula Anterior

O que é um computador

Organização de um computador

Linguagens de Programação

Linguagens de Máquina

Linguagens Assembly

Linguagens de Alto-nível

Noções de C++

2 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Aula de Hoje

1 Comandos de Entrada/Saída

2 Variáveis

3 Operadores aritméticos

4 Operadores relacionais

5 Operadores lógicos

6 Próximo Aula

2 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Aula de Hoje

1 Comandos de Entrada/Saída

2 Variáveis

3 Operadores aritméticos

4 Operadores relacionais

5 Operadores lógicos

6 Próximo Aula

2 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Introdução ao C++: Comandos de Saída

1 /* Meu primeiro programa: primeiro.cpp2 * Programa que imprime uma mensagem na tela3 */45 #include <iostream>67 // Função principal. Inicia a execução do programa8 int main()9 {

10 std::cout << "Hello world!" << std::endl;11 return 0; // indica que o programa terminou com sucesso12 }

Saída do programa:

1 Hello world!

3 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Entendendo o Programa

O programa primeiro.cpp, escrito em C++ é composto pelos seguintescomponentes:

Comentários: São ignorados pelo compilador e servem para auxiliar oprogramador a descrever o programa.

Uma linha: // ComentárioUma ou várias linhas: /* Comentário */

Todos os comandos terminam por “;” (ponto-e-vírgula).

As chaves “{ e “}” indicam, respectivamente, o início e o fim de umbloco de comandos.

Os comandos da linguagem são palavras reservadas (tambémchamados palavras-chave) e são escritos em letras minúsculas.

4 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Entendendo o Programa

A diretiva de compilação #include <iostream>, informa aocompilador que ele deve incluir a biblioteca iostream (Input/Outputstream) durante o processo de compilação.

int main(): declara a função principal main() do tipo int (númerointeiro).

O comando std::cout imprime o texto na saída padrão (tela).

O operador :: separa o namespace std do objeto cout.

Utiliza o operador << para inserir o texto no stream cout.

O comando endl (end line), também do namespace std pula parao início da próxima linha.

O comando “return” finaliza o programa retornando o valor 0.

5 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Aula de Hoje

1 Comandos de Entrada/Saída

2 Variáveis

3 Operadores aritméticos

4 Operadores relacionais

5 Operadores lógicos

6 Próximo Aula

5 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Introdução ao C++: Comandos de Saída

1 /* Meu primeiro programa: primeiro.cpp2 * Programa que imprime uma mensagem na tela3 */45 #include <iostream>67 // Função principal. Inicia a execução do programa8 int main()9 {

10 std::cout << "Hello world!" << std::endl;11 return 0; // indica que o programa terminou com sucesso12 }

Saída do programa:

1 Hello world!

6 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Introdução ao C++: Outro Exemplo

1 #include <iostream>23 int main()4 {5 int number1; // primeiro inteiro a adicionar6 int number2; // segundo inteiro a adicionar78 std::cout << "Digite o primeiro inteiro: ";9 std::cin >> number1;

1011 std::cout << "Digite o segundo inteiro: ";12 std::cin >> number2;1314 int sum = number1 + number2; // armazena a soma dos números em sum15 std::cout << "A soma de " << number1 << " e " << number216 << " é igual a " << sum << std::endl;1718 return 0; // indica que o programa terminou com sucesso19 }

7 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Declaração de Variáveis

int number1O identificador number1 é o nome da variável.

Toda variável tem um nome, um tipo e um valor.

Uma variável é uma locação na memória do computador ondepode-se armazenar um valor.

O tipo int especifica que o valor armazenado é do tipo inteiro(valor inteiro).

Se já existir um valor armazenado na variável e um novo valor éatribuído a está variável, esse valor sobrescreve o valor anteriornaquela locação.

Uma variável deve ser declarada com um nome e um tipo de dado,antes de ser usada no programa.Pode-se declarar várias variáveis em uma mesma linha:

int number1, number2, number3, number4;

8 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Declaração de Variáveis

Identificador

é o nome de uma variável, e não pode ser uma palavra-chave.

é formado por uma combinação de letras, dígitos e “ _ ” sublinhado(underline), começando com uma letra.

case sensitive: as letras maiúsculas e minúsculas são diferentes.

para assegurar a portabilidade use no máximo 31 caracteres.

escolha nomes significativos para aprimorar a documentação doprograma.

9 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Declaração de Variáveis

Tipos fundamentais

double – especifica os números reais; 3.4, -0.985, etc.

char – armazena um único caractere minúsculo ou maiúsculo, umdígito, ou um caractere especial ( $ * @ ).

int – armazena um número inteiro.

Os tipos fundamentais são palavras reservadas e são escritos emletras minúsculas.

10 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Declaração de Variáveis

Onde declarar?

variáveis podem ser declaradas em qualquer lugar de um programaC++, mas devem aparecer antes de serem usadas no programa.

Exemplo 1 Exemplo 2int x; int x;x = 80; int y;cout << x; x = 80;int y; y = 60;y = 60; cout << x;cout << y; cout << y;

11 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Declaração de Variáveis

As variáveis podem ocupar tamanhos diferentes na memória,dependo do tipo, exemplo:

Tipo Bytes Intervaloshort 2 −32.768 a 32.767int 4 -2.147.483.648 a 2.147.483.647long 4 -2.147.483.648 a 2.147.483.647float 4 1, 2× 10−38 a 3, 4× 10+38

double 8 2, 2× 10−308 a 1, 8× 10+308

12 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Entrada e saída de dados

Imprimindo e obtendo valores digitados pelo usuários:

std::cout << "Enter first integer: ";std::cout é usado para escrever uma mensagem na tela paraexplicar ao usuário o que ele deve digitar.

std::cin >> number1;std::cin em conjunto com o operador de extração ( >> ) dostream std::cin recebe um valor do teclado e armazena navariável number1.

13 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Operador de atribuição

sum = number1 + number2;O símbolo “=” é um operador de atribuição.

avalia-se a expressão matemática do lado direito do = eatribui-se o resultado à variável do lado esquerdo.

= e + são operadores binários; requerem dois operandos.

Obs.: coloque espaços em branco em ambos os lados de um operadorbinário, para facilitar a leitura do programa.

14 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Saída de dados

Exibindo o resultado:

std::cout << "Sum is " << sum << std::endl;std::endl manipulador de stream, “fim de linha” (similar ao \n).

Faz a saída de uma nova linha, e a seguir, “descarrega” o buffer desaída.

Em alguns sistemas a saída fica acumulada até que haja umaquantidade viável para ser exibida na tela; o endl força a saída.

15 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Exemplo de um programa C++

1 #include <iostream>2 #include <clocale> // Para a função setlocale3 using namespace std;45 int main()6 {7 setlocale(LC_ALL, "Portuguese"); // permite impressão de acentos89 int evento = 5; // inicializa evento com 5

10 char corrida = 'C'; // inicializa corrida com C11 float tempo = 27.24; // inicia tempo com 27.241213 cout << "\nO tempo vitorioso na eliminatória " << corrida14 << " da competição " << evento15 << " foi " << tempo << " minutos" << endl;1617 return 0;18 }

16 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Aula de Hoje

1 Comandos de Entrada/Saída

2 Variáveis

3 Operadores aritméticos

4 Operadores relacionais

5 Operadores lógicos

6 Próximo Aula

16 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Operadores aritméticos

Operador módulo % : resulta no resto da divisão inteira (somente usadocom operandos inteiros); Por exemplo: 7 % 4 é igual a 3

17 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Operadores aritméticos

Regras da Precedência de Operadores

São as mesma da álgebra:1 os operadores nas expressões entre parênteses são avaliados

primeiro; o parênteses também quebra a precedência de umoperador.

2 a seguir, aplicam-se as operações de multiplicação, divisão eoperações de módulo. Se uma expressão contém vários dessesoperadores, as operações são aplicadas da esquerda para a direita.

3 Por último aplicam-se a adição e a subtração. Também, se hávários + e – , a aplicação ocorre da esquerda para a direita.

18 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Operadores aritméticos

Regras da Precedência de Operadores

19 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Operadores aritméticos

Ordem de avaliação das expressões aritméticas

20 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Ordem de avaliação

21 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Aula de Hoje

1 Comandos de Entrada/Saída

2 Variáveis

3 Operadores aritméticos

4 Operadores relacionais

5 Operadores lógicos

6 Próximo Aula

21 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Tomada de decisões

Permite a um programa realizar uma ação alternativa, a partir de umresultado verdadeiro ou falso produzido por uma condição.

As condições são formadas utilizando-se os operadores de igualdadee os operadores relacionais.

Ambos operadores de igualdade têm o mesmo nível de precedência, oqual é inferior ao dos operadores relacionais, e associam-se daesquerda para a direita

22 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Operadores de igualdade e relacionais

23 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Erro Comum em Programação

Confundir o operador de igualdade ==

Com o operador de atribuição =

24 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Aula de Hoje

1 Comandos de Entrada/Saída

2 Variáveis

3 Operadores aritméticos

4 Operadores relacionais

5 Operadores lógicos

6 Próximo Aula

24 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Expressões booleanas

no século 18, George Boole, matemático e filósofo britânico,desenvolveu um sistema algébrico lógico, que passou a ser conhecidocomo Álgebra de Boole.

base para a lógica dos computadores digitais modernos.

nesse sistema, as expressões lógicas (expressões booleanas)possuem o valor true ou false.

em computação as expressões booleanas são também chamadas decondições.

para manter a compatibilidade com C, os inteiros também são usadoscomo valores booleanos: qualquer valor não nulo (1) representa true;e 0 representa false.

25 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Expressões booleanas compostas

na matemática, podemos restringir uma temperatura a um intervalofechado, 0 ≤ temp ≤ 100

em C++ não podemos representar essa expressão por:0 <= temp <= 100

embora ela seja uma expressão C++ válida!

por exemplo, suponha que temp = 150; (não está no intervalo definido,logo esperamos que o resultado da expressão seja falso).

26 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Expressões booleanas compostas

os operadores relacionais são associativos a esquerda. A expressãoserá processada da seguinte forma:

0 <= 150︸ ︷︷ ︸ <= 100

(a)

a expressão (a) resulta em true, que é representado em C++ pelointeiro 1.

Assim, na segunda etapa da avaliação, a expressão resulta em:

1 <= 100

que também é verdadeira e resulta em true.

Entretanto, a expressão original deveria resultar falso, como namatemática.

27 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Expressões booleanas compostas

Para solucionar esse problema, reescrevemos a desigualdade como:

(temp >= 0) && (temp <= 100)

onde, && é um operador lógico.

utilizamos os operadores lógicos para combinar as expressõesbooleanas, formando assim, as expressões booleanas compostas.

28 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Operadores lógicos

Operador Expressão Nome Descrição! !p NÃO !p é falso, se p é verd.;

(negação) !p é verd., se p é falso.&& p && q E p && q é verdadeiro,

(conjunção) se ambos, p e q são verd.;e falso, caso contrário.

|| p || q OU p || q é verdadeiro,(disjunção) se p, q ou ambos é verd.;

e falso, caso contrário.

29 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Operadores lógicos – Tabela verdade

30 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Operadores lógicos – Precedência

31 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Aula de Hoje

1 Comandos de Entrada/Saída

2 Variáveis

3 Operadores aritméticos

4 Operadores relacionais

5 Operadores lógicos

6 Próximo Aula

31 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

Próxima Aula

Aula prática (amanhã)

Comandos úteis no linux

Executando seu primeiro código C++

Primeiro exercício de programação

(o aluno de doutorado Rafael Gomes substituirá o Prof. PucaHuachi, que está em licença paternidade)

Aula teórica (quinta-feira)

Comando condicionais

if - thenif - then - else

32 / 32 Túlio Toffolo – Introdução a Programação – Aula 03: Introdução a C++

/ 12

Perguntas?