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++
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++