CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5....

144
CCO 016 – Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá Universidade Federal de Itajubá

Transcript of CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5....

Page 1: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

CCO 016 – Fundamentos de Programação

Prof. Roberto Affonso da Costa JuniorProf. Roberto Affonso da Costa Junior

Universidade Federal de ItajubáUniversidade Federal de Itajubá

Page 2: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Aula 04Aula 04

● Linguagem de programação C/C++ (Python)● Variáveis em C/C++ (Python)● Tipo de dados em C/C++ (Python)● Saída de dados

– Imprima– printf ou cout– print

Page 3: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Histórico da Linguagem C/C++Histórico da Linguagem C/C++

● 19721972 – primeira versão de C criada por Dennis Ritchie nos laboratórios Bell.

● 19601960 – surgimento da linguagem ALGOL 60, que gerou a linguagem C.

● 19671967 – surgiu CPL (Combined Programming Language) nas universidades de Londres e Cambridge com o objetivo, segundo a equipe do projeto, de "trazer ALGOL à terra", ou "manter contato com a realidade de um computador real".

● Ainda em 19671967, em Cambridge, Martin Richards criou o BCPL (Basic CPL), uma simplificação do CPL, tentando manter apenas as "boas coisas do CPL".

Page 4: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Histórico da Linguagem C/C++Histórico da Linguagem C/C++

● 19701970 – Ken Thompson, chefe da equipe que projetou o UNIX para o PDP11 do Bell Labs, implementou um compilador para uma versão mais reduzida do CPL. Batizou a linguagem de B.

● Tanto BCPL quanto B mostravam-se muito limitadas, prestando-se apenas para certas classes de problemas.

● Por muitos anos (aproximadamente 10) a sintaxe (formato) tida como padrão da linguagem C foi aquela fornecida com o UNIX versão 5.0 do Bell Labs.

● Em 19851985, ANSI (American National Standards Institute) estabeleceu um padrão oficial de C o chamado "C ANSI".

Page 5: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Características daCaracterísticas da Linguagem C/C++ Linguagem C/C++

● Portalibilade● Modularidade● Recursos de baixo nível● Geração de código eficiente● Simplicidade● Facilidade de uso● Pode ser usada para os mais variados propósitos● Indicada para escrever compiladores, editores de

textos, bancos de dados, etc.

Page 6: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Etapas de Geração deEtapas de Geração deum Programa em C/C++um Programa em C/C++

● Escrita do módulo fonte C ou C++ através de um editor de texto: vi, emacs, pico, gedit, bloco de notas, vi, emacs, pico, gedit, bloco de notas, codeblock, etc.codeblock, etc.

● Os programas devem sempre ter a extensão .c ou .cppextensão .c ou .cpp● Pré-processamento (fonte expandido)● Compilador (gera objeto)● Lincagem (gera executável)

● SUGESTÃO:SUGESTÃO: No curso salve o seu arquivo com o nome_arquivo.cpp (não use acentuação e nem caracteres especiais).

Page 7: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Programa Principal em CPrograma Principal em C

● Um modelo de código para C é semelhante ao seguinte:

#include <stdio.h>

int main ( ) { // saida do programa printf ("Fiz meu primeiro programa em C\n"); return 0;}

Page 8: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Programa Principal em C++Programa Principal em C++

● Um modelo de código para C/C++ é semelhante ao seguinte:

#include <bits/stdc++.h>using namespace std;int main ( ) { // saida do programa printf ("Fiz meu primeiro programa em C++\n"); return 0;}

Page 9: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Detalhes a serem observadosDetalhes a serem observados

● includes:includes: É a biblioteca que usa no programa, no segundo caso a include engloba todas as demais bibliotecas do C/C++.

● using namespace std;using namespace std;– Declara que as classes e funções da biblioteca

padrão pode ser usado diretamente no código. É só usada em C++ usada em C++.

Page 10: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Detalhes a serem observadosDetalhes a serem observados

● int main()int main()– É a função principal do programa, ela é

obrigatório em todos os programas.

● // corpo do programa// corpo do programa– // e / * */ é comentário do programa. – // é utilizado para comentar uma única linha.– /* e */ é utilizado para comentar mais de uma

linha.

Page 11: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Detalhes a serem observadosDetalhes a serem observados

● return 0;return 0;– É o retorno que seu programa faz ao Sistema

Operacional.● { }{ }

– { e } são inicio e fim do bloco da função principal.

● ;

– Fim das instruções tem que colocar ponto e virgula.

Page 12: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Compilando os Programas em CCompilando os Programas em C

● O código pode ser compilado usando o seguinte comando:

● Este comando produz um arquivo executável chamado “nome_arquivo”, gerado do código-fonte nome_arquivo.cpp. O compilador otimiza o código (-O2) e mostra avisos sobre possíveis erros (-Wall). Se não colocar o objeto (-o nome_arquivo), ele cria o executável “a.out”.

gcc -O2 -Wall nome_arquivo.c -o nome_arquivo

Page 13: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Compilando os Programas em C++Compilando os Programas em C++

● O código pode ser compilado usando o seguinte comando:

● Este comando produz um arquivo executável chamado “nome_arquivo”, gerado do código-fonte nome_arquivo.cpp. O compilador otimiza o código (-O2) e mostra avisos sobre possíveis erros (-Wall). Se não colocar o objeto (-o nome_arquivo), ele cria o executável “a.out”.

g++ -O2 -Wall nome_arquivo.c -o nome_arquivo

Page 14: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Etapas de Geração deEtapas de Geração deum Programa em Pythonum Programa em Python

● Escrita do módulo fonte Python através de um editor de texto: vi, emacs, pico, gedit, bloco de notas, vi, emacs, pico, gedit, bloco de notas, codeblock, etc.codeblock, etc.

● Os programas devem sempre ter a extensão .pyextensão .py● Compilar● Interpretar (pyton nome_arquivo.py)

Page 15: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Programa Principal em PythonPrograma Principal em Python

● Um modelo de código para Python é semelhante ao seguinte:

print("Fiz meu primeiro programa em Python\n")

Page 16: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Compilando os Programas em Compilando os Programas em PythonPython

● O código pode ser compilado usando o seguinte comando:

● Este comando já executa o conteúdo do arquivo “nome_arquivo.pynome_arquivo.py”.

python nome_arquivo.py

Page 17: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Tipos de dados em C/C++Tipos de dados em C/C++

● Tipo de dado representa como a informação é armazenada na memória do computador.

● Isto significa:– quanto da memória é utilizada pela informação;– se a informação é ou não numérica;– se numérica, qual é a sua menor e maior

representatividade numérica;

Page 18: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Tipo de Dados - InteiroTipo de Dados - Inteiro

● Define um valor que representa uma informação do Define um valor que representa uma informação do tipo numérica inteira (sem ponto decimal);tipo numérica inteira (sem ponto decimal);

● C/C++ tem os tipos: C/C++ tem os tipos:

TipoTipo Faixa de ValoresFaixa de Valores TamanhoTamanho

short int -32.768 a 32.767 16 bits

unsigned short int 0 a 65.535 16 bits

int -2.147.483.647 a 2.147.483.647 32 bits

unsigned int 0 a 4.294.967.295 32 bits

long long int -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807

64 bits

unsigned long long int 0 a 18.446.744.073.709.551.615 64 bits

Page 19: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Tipo de Dados - RealTipo de Dados - Real

● Define um valor que representa uma informação do Define um valor que representa uma informação do tipo numérica não inteira (com ponto decimal);tipo numérica não inteira (com ponto decimal);

● C/C++ tem os tipos: C/C++ tem os tipos: TipoTipo Faixa de ValoresFaixa de Valores TamanhoTamanho

float -1.17549e-38 a 3.40282e+38 32 bits

double -2.22507e-308 a 1.79769e+308 64 bits

positive float 1.17549e-38 a 3.40282e+38 32 bits

negative float -1.17549e-38 a -3.40282e+38 32 bits

positive double 2.22507e-308 a 1.79769e+308 64 bits

negative double -2.22507e-308 a 1.79769e+308 64 bits

positive long double 3.3621e-4932 a 1.18973e+4932 80 bits

negative long double -3.3621e-4932 a 1.18973e+4932 80 bits

Page 20: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Tipo de Dados – CaracterTipo de Dados – Caracter

● Define um valor que representa uma informação do tipo não numérica constituída de apenas um único caractere.

● C/C++ tem os tipos: C/C++ tem os tipos:

TipoTipo Faixa de ValoresFaixa de Valores TamanhoTamanho

char -127 a 127 8 bits

unsingned char 0 a 255 8 bits

Page 21: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Tipo de Dados - CadeiaTipo de Dados - Cadeia

● Define um valor que representa uma informação do Define um valor que representa uma informação do tipo não numérica constituída de vários caracteres.tipo não numérica constituída de vários caracteres.

● C/C++ tem os tipos: C/C++ tem os tipos:

● C++ tem o tipo: C++ tem o tipo:

TipoTipo Faixa de ValoresFaixa de Valores TamanhoTamanho

char nome_variavel[n] n * (-127 a 127) n * 8 bits

unsingned char nome_variavel[n]

n * (0 a 255) n * 8 bits

signed char nome_variavel[n]

n * (-127 a 127) n * 8 bits

TipoTipo Faixa de ValoresFaixa de Valores TamanhoTamanho

string n * (-127 a 127) n * 8 bits

Page 22: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Tipo de Dados - BooleanaTipo de Dados - Booleana

● Na linguagem C++ tem o tipo de dados booleano, que define um valor que representa uma informação do tipo verdadeiro ou falso.

● C++ tem o tipo:C++ tem o tipo:

TipoTipo Faixa de ValoresFaixa de Valores TamanhoTamanho

bool true ou false ? bits

Page 23: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

VariávelVariável

● Definição:Definição:– É o nome do local físico da memória onde a

informação é armazenada no computador.● Regras de nomes:Regras de nomes:

– Deve começar com uma letra;– Todo nome deve ser composto apenas por letras,

números e sublinhado ( ‘_’ );– Não pode ser igual a nenhuma palavra reservada,

ou seja, palavras que já possuam um significado próprio para a linguagem como por exemplo, true, var ou if.

Page 24: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Programa com VariávelPrograma com Variável

#include <bits/stdc++.h>using namespace std;int main() { //tipo nome_variavel;

// corpo do programareturn 0;

}

Page 25: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Declaração da VariávelDeclaração da Variável

● Ao avaliar o problema, o programador deve definir quais tipos de variáveis vai utilizar e declarar o nome da variável na forma.

tipo_variavel nome_variavel_1, nome_variavel_2, …, tipo_variavel nome_variavel_1, nome_variavel_2, …, nome variavel_n;nome variavel_n;

● Pode separar as variáveis de mesmomesmo tipo por virgula, ou colocar uma abaixo da outra. Como exemplo:

● Ao avaliar o problema, o programador deve definir quais tipos de variáveis vai utilizar e declarar o nome da variável na forma.

tipo_variavel nome_variavel_1, nome_variavel_2, …, tipo_variavel nome_variavel_1, nome_variavel_2, …, nome variavel_n;nome variavel_n;

● Pode separar as variáveis de mesmomesmo tipo por virgula, ou colocar uma abaixo da outra. Como exemplo:

int x, idade, y10;float a, pi, graus;

char x, ch, st[100];string st1;

Observação:A declaração pode

ocorrer em qualquerparte do programa,

mas antes de utilizara variável.

Page 26: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Tipo Inteiro em C/C++Tipo Inteiro em C/C++#include <bits/stdc++.h>using namespace std;int main ( ){ // definicao das variaveis int x, soma_valores; long long int a, soma; return 0;}

Os demais exemplosseguem essa mesmas

característica.

Page 27: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Tipo Real em C/C++Tipo Real em C/C++

#include <bits/stdc++.h>using namespace std;

int main () { // definicao das variaveis float x, soma_valores; double y, media; return 0;}

Page 28: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Tipo Caracter em C/C++Tipo Caracter em C/C++

#include <bits/stdc++.h>using namespace std;

int main () { // definicao das variaveis char x, primeira_letra; return 0;}

Page 29: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Tipo Cadeia em C/C++Tipo Cadeia em C/C++

#include <bits/stdc++.h>using namespace std;

int main () { // definicao das variaveis char x[10], nome_pessoa[30]; string st; return 0;}

Page 30: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Tipo Booleano em C++Tipo Booleano em C++

#include <bits/stdc++.h>using namespace std;

int main () { // definicao das variaveis bool flag; return 0;}

Page 31: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

VariávelVariável

● Definição:Definição:– Para criar uma variável em PythonPython, tudo o que

você precisa fazer é especificar o nome da variável e, em seguida, atribuir um valor a ela.

● Regras de nomes:Regras de nomes:– Deve começar com uma letra;– Todo nome deve ser composto apenas por letras,

números e sublinhado ( ‘_’ );– Não pode ser igual a nenhuma palavra reservada,

ou seja, palavras que já possuam um significado próprio para a linguagem como por exemplo, true, var ou if.

Page 32: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Tipo de DadosTipo de Dados● O PythonPython não trabalha com tipo primitivos

diretamente, deve-se ao fato de que em PythonPython, tudo são objetosobjetos. Dessa forma, o que chamaríamos de primitivo é, em PythonPython, um objeto propriamente dito. A lista dos principais tipos built-insbuilt-ins da linguagem PythonPython:

– intint - para números inteiros– strstr - para conjunto de caracteres– boolbool - armazena True ou False– listlist - para agrupar um conjunto de elementos– tuplatupla - semelhante ao tipo list, porém, imutável– dicdic - para agrupar elementos que serão

recuperados por uma chave

Page 33: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Variável em PythonVariável em Python

● A função type() pode mostrar o tipo da variável.● Geralmente os tipos são:

– Cadeia;– Carácter;– Número inteiro;– Número real;– Booleano;– Número Complexo.

Page 34: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Atribuição de variáveis em C/C++Atribuição de variáveis em C/C++

● Atribuir significa dar um valor significativo a uma variável.

● Em linguagem C/C++C/C++ será:

variavel = valor;variavel = valor;

● Isto significa que um dado valor está sendo atribuído, ou seja está sendo armazenado numa variável.

Page 35: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Exemplo de Atribuição de InteiroExemplo de Atribuição de Inteiro

#include <bits/stdc++.h>using namespace std;

int main ( ){ // definicao das variaveis int x; // atribuicao dos dados x = 569; return 0;}

Page 36: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Exemplo de Atribuição de RealExemplo de Atribuição de Real

#include <bits/stdc++.h>using namespace std;

int main ( ){ // definicao das variaveis float pi; // atribuicao dos dados pi = 3.14159; return 0;}

Page 37: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Exemplo de Atribuição de CaracterExemplo de Atribuição de Caracter

#include <bits/stdc++.h>using namespace std;

int main ( ){ // definicao das variaveis char ch; // atribuicao dos dados ch = 'g'; return 0;}

Page 38: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Exemplo de Atribuição de CadeiaExemplo de Atribuição de Cadeia

● Diferentemente dos outros tipos, o tipo cadeia não pode ter atribuição direta;

● Esta atribuição somente poderá ser realizada através de funções da biblioteca da linguagem C. Na linguagem C++ essa biblioteca não é necessária;

● Todas as vezes que esta biblioteca é usada, a seguinte declaração é necessária:

#include <string.h>#include <string.h>

Page 39: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Função de Cópia da string.hFunção de Cópia da string.h

● A seguir a função que copia o tipo cadeia:

● strcpy ( a, b )strcpy ( a, b )– copia a cadeia b na cadeia a

IMPORTANTEIMPORTANTE

Page 40: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Função de Cadeia em CFunção de Cadeia em C

#include <stdio.h>#include <string.h>

int main (){ // definicao das variaveis char x[10], y[6]; // atribuicao dos dados strcpy ( x, "Maria"); strcpy ( y, x); return 0;}

Page 41: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Função de Cadeia em C++Função de Cadeia em C++

#include <bits/stdc++.h>using namespace std;int main (){ // definicao das variaveis char x[10]; string st; // atribuicao dos dados strcpy ( x, "Maria"); st = "UNIFEI"; return 0;}

Page 42: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Função de Booleana em C++Função de Booleana em C++

#include <bits/stdc++.h>using namespace std;int main (){ // definicao das variaveis bool b1, b2; // atribuicao dos dados b1 = false; b2 = true; return 0;}

Page 43: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Atribuição em PythonAtribuição em Python

● Para fazer uma atribuição em Python, basta colocar o nome da variável, o sinal igual e o valor a ser atribuido a variável.

nome_da_variavel = 'valor da variável'

● Para fazer uma atribuição em Python, basta colocar o nome da variável, o sinal igual e o valor a ser atribuido a variável.

Page 44: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Exemplo de Atribuição de InteiroExemplo de Atribuição de Inteiro

x = 569

Page 45: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Exemplo de Atribuição de Ponto Exemplo de Atribuição de Ponto FlutuanteFlutuante

pi = 3.14159

Page 46: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Exemplo de Atribuição de Cadeia ou Exemplo de Atribuição de Cadeia ou CaracterCaracter

name = ‘UNIFEI’ch = ‘a’

Ambos são a mesma coisa, não

tem diferença.

Page 47: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Exemplo de Atribuição de BooleanaExemplo de Atribuição de Booleana

b = true

Page 48: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Exemplo de Atribuição de Tipo NuloExemplo de Atribuição de Tipo Nulo

x = None

Page 49: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de DadosSaída de Dados

● Saída de dados compreende a operação de externar uma informação, ou seja, mostrar ao usuário o conteúdo de uma ou mais variáveis num programa.

● Os dispositivos disponíveis para a execução desta tarefa são: o monitor de vídeo, a impressora, um o monitor de vídeo, a impressora, um arquivoarquivo.

Page 50: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de DadosSaída de Dados

● Em linguagem algorítmica tem-se:

imprimaimprima (informaçãoinformação)

● Esta informaçãoinformação pode ser o conteúdo de uma variável, uma variável, um texto, um caractere ou um valor numéricoum texto, um caractere ou um valor numérico.

Page 51: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Exemplo de Saída de Dados InteiroExemplo de Saída de Dados Inteiro

inteirointeiro soma_valor, media_idades

soma_valor ← 45media_idades ← 92

● mostrando o resultado numa única linha de saída:

imprimaimprima (soma_valor, media_idades)

Page 52: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Visualização da SaídaVisualização da Saída

● O computador mostrará no monitor de vídeo as seguintes informações:

45924592

Page 53: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Exemplo de Saída de Dados InteiroExemplo de Saída de Dados Inteiro

inteirointeiro soma_valor, media_idades

soma_valor ← 45media_idades ← 92

● adicionando um separador aos números

imprimaimprima (soma_valor, " ", media_idades)

Page 54: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Visualização da SaídaVisualização da Saída

● O computador mostrará no monitor de vídeo as seguintes informações:

45 9245 92

Page 55: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Exemplo de Saída de Dados InteiroExemplo de Saída de Dados Inteiro

inteirointeiro soma_valor, media_idades

soma_valor ← 45media_idades ← 92

● colocando em duas linhas

imprimaimprima (soma_valor)imprimaimprima (media_idades)

Page 56: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Visualização da SaídaVisualização da Saída

● O computador mostrará no monitor de vídeo as seguintes informações:

45459292

● Observação:Observação: Aqui o imprimaimprima serve para pular linha também.

Page 57: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Exemplo de Saída de Dados InteiroExemplo de Saída de Dados Inteiro

inteirointeiro soma_valor, media_idades

soma_valor ← 45media_idades ← 92

● Ou ainda, identificando os valores mostrados:

imprimaimprima ("soma do valor: ", soma_valor)imprimaimprima ("media das idades = ", media_idades)

Page 58: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Visualização da SaídaVisualização da Saída

● O computador mostrará no monitor de vídeo as seguintes informações:

soma do valor: 45soma do valor: 45media das idades = 92media das idades = 92

Page 59: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída na Linguagem C/C++Saída na Linguagem C/C++

● Definição:Definição:– Saída de dados compreende a operação de

externar uma informação, ou seja, mostrar ao usuário o conteúdo de uma ou mais variáveis num programa

● A saída de dados em algoritmo era:

imprima()imprima()● Para a linguagem C/C++ usaremos a função printfprintf() ()

ou coutou cout. Essa é uma função da linguagem e para utilizá-la precisamos da biblioteca stdio.hstdio.h em C ou a própria bits/stdc++.hbits/stdc++.h em C++.

Page 60: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída na Linguagem C/C++Saída na Linguagem C/C++

● C ou C++C ou C++– Em C ou C++ utiliza-se a função printf (const char* printf (const char*

formato, variable);formato, variable);

● C++

– Em C++ utiliza-se, também, a função cout << string cout << string ou variable;ou variable;

Page 61: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

PrintfPrintf

● Definição:Definição:– printf é a função no C a qual se usa para imprimir

strings na tela.

● EstruturaEstrutura– Sua em duas partes.– Entre aspas (" ") ficam as strings e os formatos.– Após a virgula deve se colocar as variáveis,

tomando o cuidado de colocar a mesma quantidade de variáveis e formato.

Page 62: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

PrintfPrintf

● Exemplo:– printf("Meu primeiro programa.");printf("Meu primeiro programa.");

● Nesse caso imprimi na tela: meu primeiro programa.meu primeiro programa.

● Contudo, se tivesse que formatar a saída ou imprimir o valor de uma variável, teria que utilizar o carácter %%.

Page 63: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Formato dos dadosFormato dos dados

● Tanto para saída quanto para a entrada de dados, é necessário definir-se a forma como os dados serão manuseados;

● Isto é feito utilizando-se a declaração de formato dos dados;

● Em linguagem C/C++ esta formatação deve estar inclusa nas declarações de entrada e de saída dos dados;

Page 64: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Códigos de FormatosCódigos de Formatos

● Para cada variável do programa é necessário que se defina o formato correspondente ao tipo definido para ela;

● Este formato das variáveis é definido com os códigos códigos de formatode formato

Page 65: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Códigos de FormatosCódigos de Formatos

● Tipo inteiro: Tipo inteiro: %[n]%[n]dd ou %[n] ou %[n]lldlld– n significa o tamanho do campo, ou seja, quantos

dígitos tem o numero incluindo o sinal (positivo ou negativo);

– se o sinal for negativo o número está justificando a direita;

– se colocar o zero antes do número n, preencherá as casas vazias com zeros;

– o sinal [ ] significa que a informação é opcional.

Page 66: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Códigos de FormatosCódigos de Formatos

● Tipo flutuante:Tipo flutuante: %[n.t]%[n.t]ff ou ou %[n.t]%[n.t]lflf– t significa o tamanho do campo decimal– n significa o tamanho do campo, ou seja, quantos

dígitos tem o numero incluindo o ponto decimal , o campo t e o sinal do numero

● Tipo caracter:Tipo caracter: %%cc

● Tipo cadeia :Tipo cadeia : %%ss

Page 67: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Tabela de Códigos (%)Tabela de Códigos (%)

Código Função do Formato%d ou %i Um número inteiro decimal (int)

% lld Um número inteiro decimal (long long int)%u Um decimal sem sinal (unsigned)%f Um número real de simples precisão (float)%lf Um número real de dupla precisão (double)

%e ou %E Um número em notação científica com o "e" minúsculo ou "E" maiúsculo

%g ou %G Escolhe automaticamente o melhor entre %f e %e ou %E

Page 68: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Tabela de Códigos (%)Tabela de Códigos (%)

Código Função do Formato

%c Um carácter (char)%s Uma string%o Um número inteiro octal

%x ou %X Um número inteiro hexadecimal com as letras minusculas ou maiúsculas

%p Um ponteiro (endereço de memória)

%% O carácter %

Page 69: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Tabela de Códigos (%)Tabela de Códigos (%)

Mais informação, visite o site:http://www.cplusplus.com/reference/cstdio/printf/

ou https://www.geeksforgeeks.org/how-to-print-using-printf/

Page 70: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Controle da impressãoControle da impressão

● Todas as linhas de saídalinhas de saída necessitam do controle da impressão;

● Isto é feito utilizando-se o caractere especial:

\n\n

● Observar que isto só é válido para a impressão de Observar que isto só é válido para a impressão de dados e não para a entrada.dados e não para a entrada.

Page 71: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Controle da impressãoControle da impressão

● Este caractere pode ser colocado:– No inicio do comando de saída;– No meio – No fim ;

● A colocação do caractere de controle de saída na instrução de impressão indica que a informação será impressa e em seguida o computador fica disponível para imprimir nova informação na linha seguinte à que acabou de ser impressa;

Page 72: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Controle da impressãoControle da impressão

● A não colocação do caractere de controle de impressão na instrução de saída indica que a próxima informação será impressa na mesma linha da impressão anterior;

● Numa instrução de saída, pode-se colocar quantos \n\n forem necessários;

Page 73: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Controle da impressãoControle da impressão

● Quando colocado no inicio da instrução de saída, cada \n\n indica uma linha em branco, antes da impressão da informação;

● Quando colocado no fim da instrução de saída, cada \n\n indica uma linha em branco, após a impressão da informação;

● Quando colocado no meio da instrução de saída, [q] \n\n indica (q – 1) linhas em branco, entre as informações impressas;

Page 74: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Controle da impressãoControle da impressão

Constante Significado

\n Nova linha

\" Coloca aspas no texto de saída

\' Coloca apóstrofo no texto de saída

\0 Nulo (0 decimal)

\\ Barra invertida

\t Tabulação horizontal <tab>

\b Retorno do curso

Page 75: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Controle da impressãoControle da impressão

#include <bits/stdc++.h>using namespace std;int main() { printf("Meu primeiro programa.\n"); printf("\"Meu primeiro programa.\"\n"); printf("\'Meu primeiro programa.\'\n"); printf("\\Meu primeiro programa.\\\n"); printf("\tMeu primeiro programa.\\\n"); return 0;}

● Exemplo de programa com controle de impressão:

Page 76: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Controle da impressãoControle da impressão

● A saída do programa seria:

Meu primeiro programa."Meu primeiro programa."'Meu primeiro programa.'\Meu primeiro programa.\

Meu primeiro programa.\

Page 77: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Formatação com Inteiro - 1Formatação com Inteiro - 1

#include <bits/stdc++.h>using namespace std;int main(){ int x; x = 569; printf("Programa 1\n"); printf ("%d\n", x); return 0;}

Page 78: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Formatação com Inteiro - 2Formatação com Inteiro - 2

#include <bits/stdc++.h>using namespace std;int main(){ int x; x = 569; printf("Programa 2\n"); printf ("x = %d\n", x); return 0;}

Page 79: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Formatação com Inteiro - 3Formatação com Inteiro - 3

#include <bits/stdc++.h>using namespace std;int main(){ int x; x = 569; printf("Programa 3\n"); printf ("%d", x); return 0;}

Page 80: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Formatação com InteiroFormatação com Inteiro

● Você prestou atenção na saída dos problemas?Programa 1569

Process returned 0 (0x0) execution time : 0.002 sPress ENTER to continue.

Programa 2x = 569

Process returned 0 (0x0) execution time : 0.002 sPress ENTER to continue.

Programa 3569Process returned 0 (0x0) execution time : 0.002 sPress ENTER to continue.

Page 81: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Formatação com InteiroFormatação com Inteiro

#include <bits/stdc++.h>using namespace std;int main(){ int x; x = 569; printf("=========\n"); printf ("x = %d\n", x); return 0;}

Page 82: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Formatação com InteiroFormatação com Inteiro

● A saída terá a seguinte aparência:

=========x = 569

Page 83: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

CoutCout

● Objeto cout:Objeto cout:– O objeto cout representa o stream de saída

no C++. Este stream é uma espécie de sequência de dados a serem impressos na tela. Para realizar a impressão, usa-se o “operador de inserção” que insere dados dentro do stream.

● Isto não impossibilita de usar o printfprintf no lugar do cout.

Page 84: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

CoutCout

● << Operador de Inserção<< Operador de Inserção– O operador <<<< executa a saída (imprime na tela)

com streamsstreams em C++. O objeto coutcout é usado em conjunto com ele para a impressão de dados.

#include <bits/stdc++.h>using namespace std;int main() { cout << "Meu primeiro programa."; return 0;}

http://umich.edu/~eecs381/handouts/formatting.pdfhttp://umich.edu/~eecs381/handouts/formatting.pdf

Page 85: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

CoutCout

● Saída do programaSaída do programa

Meu primeiro programa.Process returned 0 (0x0) execution time : 0.002 sPress ENTER to continue.

Page 86: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

CoutCout

● Controle de Impressão:Controle de Impressão:– O coutcout utiliza dos mesmo controle da impressão do

printfprintf. No entanto, ele também pode usar o comando ‘endlendl’ para fazer o mesmo que o ‘\n\n’.

#include <bits/stdc++.h>using namespace std;int main() { cout << "Meu primeiro programa." << endl; cout << "Meu primeiro programa.\n" ; cout << "Meu primeiro programa." << "\n"; return 0;}

Page 87: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

CoutCout

● Saída do programaSaída do programa

Meu primeiro programa.Meu primeiro programa.Meu primeiro programa.

Process returned 0 (0x0) execution time : 0.002 sPress ENTER to continue.

Page 88: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Cout - formataçãoCout - formatação

● A modificação do estado de formato pode ser efetivada pelos "manipuladoresmanipuladores" ou pelos "sinalizadores de formatosinalizadores de formato" do C++.

● No caso dos "sinalizadoressinalizadores", ou flagsflags, o programador pode manipular o estado de formato (definindo a base e precisão) através da utilização das funções setf()setf() e unsetf()unsetf(). Para evitar a preocupação com as posições dos bitsbits individuais, cada flagflag é distinguido através de uma constante iosios. A tabela a seguir lista e descreve sucintamente as constantes iosios.

Page 89: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Cout - formataçãoCout - formatação

SignificadoSignificado DescriçãoDescrição

ios::skipws Caracteres de espaço em branco iniciais (espaços, tabulações, novas linhas) são descartados ao efetuar a entrada

ios::left Saída ajustada à esquerda

ios::right Saída ajustada à direita

ios::internal Preenchimento após indicador de sinal ou base

ios::dec Conversão em decimal

ios::oct Conversão em octal

ios::hex Conversão em hexadecimal

Page 90: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Cout - formataçãoCout - formatação

SignificadoSignificado DescriçãoDescrição

ios::showbase Mostra indicador de base na saída

ios::showpos Mostra o sinal "+" em inteiros positivos

ios::uppercase Saída hexadecimal maiúscula

ios::showpoint Mostra ponto decimal - saída em ponto flutuante

ios::fixed Usa notação normal para exibir valores numérico sem ponto flutuante

ios::scientific Valores em ponto flutuante são exibidos usando-se notação científica

Page 91: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Cout - formataçãoCout - formatação

SignificadoSignificado DescriçãoDescrição

ios::unitbuf Libera – flush – todas as streams depois da inserção

ios::stdio Libera – flush – stdout, stderr depois da inserção

ios::boolalpha Valores booleanos podem ser recebidos ou mostrados

Page 92: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Cout - formataçãoCout - formatação

● A biblioteca iostream fornece as funções fill()fill(), flags()lags(), precision()precision() e width()width() para acessar componentes de formatação. Estas funções são declaradas em iosios, herdadas por todas as outras classes streamstream, tais como istreamistream e ostreamostream, e são usadas de maneiras muito similares. Se elas são chamadas sem argumentos, elas retornam os componentes do formato corrente, sem alterá-lo. Assim, os seguintes comandos salvam os componentes de formato em variáveis:

Page 93: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Cout - formataçãoCout - formatação

● char c = cout.fill()char c = cout.fill()● long f = cout.flags()long f = cout.flags()● int p = cout.precision()int p = cout.precision()● int w = cout.width()int w = cout.width()

● Se um argumento é fornecido, a função retorna o valor corrente e altera o componente para o novo valor especificado como argumento.

Page 94: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Cout - formataçãoCout - formatação

● A sintaxe para usar esses sinalizadoressinalizadores, exemplificados no próximo programa, é a seguinte:

cout.setf (ios::sinalizador); // para ligarcout.setf (ios::sinalizador); // para ligar

cout.unsetf (ios::sinalizador); // para desligar cout.unsetf (ios::sinalizador); // para desligar

Page 95: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Como descobrir o tamanho do tipo?Como descobrir o tamanho do tipo?

● Curiosidade:Curiosidade:

#include <bits/stdc++.h>using namespace std;int main(){

cout << "char de: " << CHAR_MIN << " a " << CHAR_MAX << endl;cout << "short char de: " << SCHAR_MIN << " a " << SCHAR_MAX << endl;cout << "unsigned char de: " << 0 << " a " << UCHAR_MAX << endl;cout << endl;

https://www.geeksforgeeks.org/data-type-ranges-and-their-macros-in-c/

http://en.cppreference.com/w/c/types/limits

Page 96: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Como descobrir o tamanho do tipo?Como descobrir o tamanho do tipo?

● Curiosidade:Curiosidade:

cout << "short int de: " << SHRT_MIN << " a " << SHRT_MAX << endl;cout << "unsigned short int de: " << 0 << " a " << USHRT_MAX << endl;cout << "int de: " << INT_MIN << " a " << INT_MAX << endl;cout << "unsigned int de: " << 0 << " a " << UINT_MAX << endl;cout << "long long int de: " << LLONG_MIN << " a " << LLONG_MAX << endl;cout << "unsigned long long int de: " << 0 << " to " << ULLONG_MAX << endl;

Page 97: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Como descobrir o tamanho do tipo?Como descobrir o tamanho do tipo?

● Curiosidade:Curiosidade:

cout << endl;cout << "float de: " << FLT_MIN << " a " << FLT_MAX << endl;cout << "negative float de: " << -FLT_MIN << " a " << -FLT_MAX << endl;cout << "double de: " << DBL_MIN << " a " << DBL_MAX << endl;cout << "negative double de: " << -DBL_MIN << " a " << +DBL_MAX << endl;cout << "long double de: " << LDBL_MIN << " a " << LDBL_MAX << endl;cout << "negative long double de: " << -LDBL_MIN << " a " << +LDBL_MAX << endl;return 0;

}

Page 98: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteiros Saída de valores inteiros formatadosformatados

● A saída de valores pode ser formatada conforme a quantidade de dígitosdígitos desejadas. Para isso, o printfprintf tem a forma:

printf (“%nd\n”, variavel_tipo_inteiro);printf (“%nd\n”, variavel_tipo_inteiro);● Onde ‘nn’ é a quantidade de dígitos que você deseja

colocar. Se nn for maior que a quantidade de dígitos da variável ele coloca espaço em brancos antes.

● Exemplo:printf("%5d\n", 123);printf("%5d\n", 123);

● A saída fica:----- 123-----

Page 99: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteiros Saída de valores inteiros formatadosformatados

● Repare que tem cinco espaço, mas só 3 formam preenchidos.

● Se nn for menor que a quantidade de dígitos da variável, ele simplesmente vai preencher a quantidade de dígitos.

printf("%3d\n", 12345);printf("%3d\n", 12345);

● A saída fica:

---12345---

Page 100: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteiros Saída de valores inteiros formatadosformatados

● O printfprintf tem variações como, colocar zero antes ou alinhamento a direita (o alinhamento anterior ficou a esquerda).

● Colocando zero antes ficaria:

printf("%05d\n", 123);printf("%05d\n", 123);

● A saída fica:

-----00123-----

Page 101: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteiros Saída de valores inteiros formatadosformatados

● Alinhando a direita seria:

printf("%-5d\n", 123);printf("%-5d\n", 123);

● A saída fica:

-----123-----

Page 102: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteiros Saída de valores inteiros formatadosformatados

● Carácter *: O carácter * é usado para formatar a quantidade de espaço desejado. Se for um número fixo, como o exemplo, ele fica igual ao usado anteriormente, mas se for uma variável inteira, ele coloca a quantidade do valor da variável.

printf("%*d", 5, 123);printf("%*d", 5, 123);● A saída fica:

----- 123-----

Page 103: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteiros Saída de valores inteiros formatadosformatados

● A mesma formatação pode ser feita com o coutcout.● O coutcout tem duas possibilidades, ou usa-se a função setw(n)setw(n)

ou a forma cout.width(n);cout.width(n);, onde ‘nn’ é a quantidade de dígitos.

● O uso seria:cout << setw(5) << x << endl;cout << setw(5) << x << endl;

oucout.width(5);cout.width(5);

cout << x << endl;cout << x << endl;● A saída fica:

-----123-----

Page 104: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteirosSaída de valores inteiros

● A formatação de números inteiros. Podem ser:A formatação de números inteiros. Podem ser: #include <bits/stdc++.h>using namespace std;int main() { printf("-----\n"); printf("%*d\n", 5, 123); printf("%5d\n", 123); printf("%05d\n", 123); printf("%-5d\n", 123); printf("-----\n"); return 0;}

----- 123 12300123123-----

Page 105: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteirosSaída de valores inteiros

● A formatação de números inteiros. Podem ser:A formatação de números inteiros. Podem ser:

#include <bits/stdc++.h>using namespace std;int main() { cout << "-----\n"; cout << setw(5) << 123 << endl; cout.width(5); cout.fill('0'); cout << 123 << "\n"; cout << left << 123 << "\n"; cout << "-----\n"; return 0;}

----- 123 12300123123-----

http://umich.edu/~eecs381/handouts/formatting.pdfhttp://umich.edu/~eecs381/handouts/formatting.pdf

Page 106: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteirosSaída de valores inteiros

● Usando variável inteira ‘Usando variável inteira ‘xx’:’:

#include <bits/stdc++.h>using namespace std;int main() { int x = 5; printf("-----\n"); printf("%*d\n", x, 123); printf("%5d\n", 123); cout << setw(x) << 123 << endl; cout.width(x); cout << 123 << "\n"; cout << "-----\n"; return 0;}

----- 123 123 123 123-----

Page 107: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteirosSaída de valores inteiros

● Transformando o resultado da saída para Hexadecimal Transformando o resultado da saída para Hexadecimal e octal.e octal.

#include <bits/stdc++.h>using namespace std;int main() { int i; i = 12; printf("%X\n", i); printf("%x\n", i); printf("%o\n", i); printf("%d\n", i); return 0;}

Cc1412

Page 108: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteirosSaída de valores inteiros

● Transformando o resultado da saída para Hexadecimal Transformando o resultado da saída para Hexadecimal e octal.e octal.

#include <bits/stdc++.h>using namespace std;int main() { int i; i = 12; cout << uppercase << hex << i << endl; cout << hex << i << endl; cout << oct << i << endl; cout << setbase(10) << i << endl; return 0;}

Cc1412

Page 109: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores reaisSaída de valores reais

● A formatação de números reais:A formatação de números reais:

#include <bits/stdc++.h>using namespace std;int main() { printf("----------\n"); printf("%f\n", 3.14159); printf("%.0f\n", 3.14159); printf("%.1f\n", 3.14159); printf("%.2f\n", 3.14159); printf("%.3f\n", 3.14159); printf("%10.3f\n", 3.14159); printf("----------\n"); return 0;}

----------3.14159033.13.143.142 3.142----------

printf(“%n.df”, variavel);printf(“%n.dlf”, variavel);n é a quantidade de dígitos

contando o ponto decimal ‘.’.d é a quantidade de casas

decimais do número.

Page 110: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores reaisSaída de valores reais

● A formatação de números reais:A formatação de números reais:#include <bits/stdc++.h>using namespace std;int main() { printf("----------\n"); cout << 3.14159 << endl; cout << fixed << setprecision(0); cout << 3.14159 << "\n"; cout << fixed << setprecision(1); cout << 3.14159 << "\n"; cout << setw(10) << setprecision(3); cout << 3.14159 << "\n"; cout.precision(4); cout << 3.14159 << "\n"; cout << "----------\n"; return 0;}

----------3.1415933.1 3.1423.1416----------

fixed fixa a quantidade de casas decimais.

setprecision() ou precision() determina a quantidade de casas

decimais.setw() pode ser usado para

determinar a quantidade de dígitos.

Page 111: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores de UM caracterSaída de valores de UM caracter

● A formatação de carácter:A formatação de carácter:

#include <bits/stdc++.h>using namespace std;int main() { printf("%c\n", 'a'); cout << 'a' << endl; return 0;}

aa

Page 112: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores cadeia ou stringSaída de valores cadeia ou string

● A formatação de A formatação de stringstring..

#include <bits/stdc++.h>using namespace std;int main() { printf("----------\n"); printf("%s\n", "Programa"); printf("%10s\n", "Programa"); printf("%-10s\n", "Programa"); printf("%10.3s\n", "Programa"); printf("----------\n"); return 0;}

----------Programa ProgramaPrograma Pro----------

printf(“%n.ds”, variavel);n é a quantidade de caracteres

da string.d é a de caracteres que vai

aparecer da string.

Page 113: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores cadeia ou stringSaída de valores cadeia ou string

● A formatação de A formatação de stringstring..

#include <bits/stdc++.h>using namespace std;int main() { char str[30] = "Programa"; printf("----------\n"); printf("%s\n", str); printf("%10s\n", str); printf("%-10s\n", str); printf("%10.3s\n", str); printf("----------\n"); return 0;}

----------Programa ProgramaPrograma Pro----------

Page 114: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores cadeia ou stringSaída de valores cadeia ou string

● A formatação de A formatação de stringstring..

#include <bits/stdc++.h>using namespace std;int main() { char str[30]; strcpy(str, "Programa"); printf("----------\n"); printf("%s\n", str); printf("%10s\n", str); printf("%-10s\n", str); printf("%10.3s\n", str); printf("----------\n"); return 0;}

----------Programa ProgramaPrograma Pro----------

Page 115: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores cadeia ou stringSaída de valores cadeia ou string

● A formatação de A formatação de stringstring..

#include <bits/stdc++.h>using namespace std;int main() { printf("----------\n"); printf("%s\n", "Programa"); printf("%10s\n", "Programa"); printf("%-10s\n", "Programa"); printf("%10.3s\n", "Programa"); printf("----------\n"); return 0;}

----------Programa ProgramaPrograma Pro----------

printf(“%n.ds”, variavel);n é a quantidade de caracteres

da string.d é a de caracteres que vai

aparecer da string.

Page 116: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores cadeia ou stringSaída de valores cadeia ou string

● A formatação de A formatação de stringstring..

#include <bits/stdc++.h>using namespace std;int main() { printf("----------\n"); cout << "Programa" << endl; cout << setw(10) << left; cout << "Programa" << "\n"; cout << setw(10) << right; cout << "Programa" << "\n"; cout << "----------\n"; return 0;}

----------ProgramaPrograma Programa----------

http://faculty.cs.niu.edu/~mcmahon/CS241/c241man/node83.htmlhttp://faculty.cs.niu.edu/~mcmahon/CS241/c241man/node83.html

Page 117: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída em PythonSaída em Python

● Em PythonPython, os dados podem ser impressos em formato na tela ou gravados em um arquivo. Às vezes, o usuário geralmente quer controlar melhor a formatação da saída do que simplesmente imprimir valores separados por espaço. Existem várias maneiras de formatar a saída.

– Para usar literais de sequência formatada, inicie uma sequência com ff ou F antes das aspas de abertura ou das aspas triplas.

– O método método str.formatstr.format()() de strings ajuda o usuário a obter uma saída mais sofisticada.

Page 118: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída em PythonSaída em Python

– O usuário pode fazer todo o tratamento de strings usando operações e concatenação de strings para criar qualquer layout que o usuário desejar. O tipo de sequência possui alguns métodos que executam operações úteis para preenchimento de seqüências de caracteres para uma determinada largura de coluna.

– Segue a maioria das colocações do printfprintf da linguagem Clinguagem C.

Page 119: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída em PythonSaída em Python

● Formatação de saída usando o operador String Formatação de saída usando o operador String modulo (%):modulo (%):

– O operador %operador % também pode ser usado para formatação de string. Ele interpreta o argumento esquerdo como uma string de formato no estilo printf ()printf () a ser aplicada ao argumento correto. No PythonPython, não há função printf ()printf (), mas a funcionalidade do printf antigo está contida no PythonPython. Para esse propósito, o operador de módulo %módulo % é sobrecarregado pela classe de sequência para executar a formatação da sequência.

Page 120: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

PrintPrint

● Controle de Impressão:Controle de Impressão:● O printprint imprimi uma vez por linha.

print ("Meu primeiro programa.")

Page 121: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

PrintPrint

● A saída do programa seria:

Meu primeiro programa.

Page 122: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Controle de ImpressãoControle de Impressão

Constante Significado

\n Nova linha

\" Coloca aspas no texto de saída

\' Coloca apóstrofo no texto de saída

\0 Nulo (0 decimal)

\\ Barra invertida

\t Tabulação horizontal <tab>

\b Retorno do curso

Page 123: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Controle de impressãoControle de impressão

print ("Meu primeiro programa.")print ("Meu primeiro programa.\n")print ("\"Meu primeiro programa.\"")print ("\'Meu primeiro programa.\'")print ("\\Meu primeiro programa.\\")print ("\tMeu primeiro programa.\n")

Page 124: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Controle da impressãoControle da impressão

● A saída do programa seria:

Meu primeiro programa.Meu primeiro programa.

"Meu primeiro programa."'Meu primeiro programa.'\Meu primeiro programa.\

Meu primeiro programa.

Page 125: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Formatação com Inteiro - 1Formatação com Inteiro - 1

x = 569print ("Programa 1")print ("%d\n" %x)

Page 126: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Formatação com Inteiro - 2Formatação com Inteiro - 2

x = 569print ("Programa 2")print ("x = %d" %x)

Page 127: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Formatação com Inteiro - 3Formatação com Inteiro - 3

x = 569print ("Programa 3")print ("%d" %x)

Page 128: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Formatação com InteiroFormatação com Inteiro

● Você prestou atenção na saída dos problemas?[root@localhost CCO016_Arquivos_Originais]# python teste.py Programa 1569

[root@localhost CCO016_Arquivos_Originais]# python teste.py Programa 2X = 569

[root@localhost CCO016_Arquivos_Originais]# python teste.py Programa 3569

Page 129: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteiros Saída de valores inteiros formatadosformatados

● A saída de valores pode ser formatada conforme a quantidade de dígitosdígitos desejadas. Para isso, o printprint tem a forma:

printf ("%nd" % (variavel_tipo_inteiro))printf ("%nd" % (variavel_tipo_inteiro))● Onde ‘nn’ é a quantidade de dígitos que você deseja

colocar. Se nn for maior que a quantidade de dígitos da variável ele coloca espaço em brancos antes.

● Exemplo:print("%5d\n" % (123))print("%5d\n" % (123))

● A saída fica:----- 123-----

Page 130: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteiros Saída de valores inteiros formatadosformatados

● Em vez de usar aspas ("), você pode usar apostrofe (').● A forma mais atual de se formatar é usar:

printf ("{:nd}".format(variavel_tipo_inteiro))printf ("{:nd}".format(variavel_tipo_inteiro))● Onde ‘nn’ é a quantidade de dígitos que você deseja

colocar. Se nn for maior que a quantidade de dígitos da variável ele coloca espaço em brancos antes.

● Exemplo:print("{:5d}".format(123))print("{:5d}".format(123))

● A saída fica:

----- 123-----

Page 131: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteiros Saída de valores inteiros formatadosformatados

● Repare que tem cinco espaço, mas só 3 formam preenchidos.

● Se nn for menor que a quantidade de dígitos da variável, ele simplesmente vai preencher a quantidade de dígitos.

● print(print("{:3d}".format(12345))"{:3d}".format(12345))

● A saída fica:

---12345---

Page 132: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteiros Saída de valores inteiros formatadosformatados

● O printprint tem variações como, colocar zero antes ou alinhamento a direita (o alinhamento anterior ficou a esquerda).

● Colocando zero antes ficaria:print("%05d" % (123))print("%05d" % (123))

ououprint(print("{:05d}".format(123))"{:05d}".format(123))

● A saída fica:

-----00123-----

Page 133: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteiros Saída de valores inteiros formatadosformatados

● Alinhando a direita seria:print("%-5d" % (123))print("%-5d" % (123))

ououprint(print("{:<5d}".format(123))"{:<5d}".format(123))

● A saída fica:

-----123-----

Repare que ao usar oformatformat tem que colocar

o sinal de “<<”.

Page 134: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteiros Saída de valores inteiros formatadosformatados

● Carácter *: O carácter * é usado para formatar a quantidade de espaço desejado. Se for um número fixo, como o exemplo, ele fica igual ao usado anteriormente, mas se for uma variável inteira, ele coloca a quantidade do valor da variável.

print("%*5d" % (5, 123))print("%*5d" % (5, 123))● A saída fica:

----- 123-----

Page 135: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteiros Saída de valores inteiros formatadosformatados

● Para mais informação vá no link:

https://pyformat.info/#number

Page 136: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteirosSaída de valores inteiros

● A formatação de números inteiros. Podem ser:A formatação de números inteiros. Podem ser:

print("-----")print("%*d" % (5, 123))print("%5d" % (123))print("%05d" % (123))print("%-5d" % (123))print("-----")

----- 123 12300123123-----

Page 137: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores inteirosSaída de valores inteiros

● Transformando o resultado da saída para Hexadecimal Transformando o resultado da saída para Hexadecimal e octal.e octal.

ouou

i = 12print("%X" % (i))print("%x" % (i))print("%o" % (i))print("%d" % (i))

Cc1412

i = 12print("{:X}".format(i))print("{:x}".format(i))print("{:o}".format(i))print("{:d}".format(i))

Page 138: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores reaisSaída de valores reais

● A formatação de números reais pode ser feita com simples precisão ( ff ) ou dupla precisão ( lf lf ), ou com notação cientifica ( ee ou EE ) ou com ambos ( gg ). Segue a ideia da linguagem C/C++.

print(“%n.df” % (variavel))print(“%n.df”.format(variavel))

n é a quantidade de dígitos contando o ponto decimal ‘.’.d é a quantidade de casas decimais do número.

Page 139: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores reaisSaída de valores reais

● A formatação de números reais:A formatação de números reais:

print("----------");print("%f" % (3.14159));print("%.0f" % (3.14159));print("%.1f" % (3.14159));print("%.2f" % (3.14159));print("%.3f" % (3.14159));print("%10.3f" % (3.14159));print("----------")

----------3.14159033.13.143.142 3.142----------

Page 140: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores de UM caracterSaída de valores de UM caracter● A formatação de carácter:A formatação de carácter:

print("----------");print("%c" % ('a'));print("----------")

a

Page 141: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores cadeia ou stringSaída de valores cadeia ou string

● A formatação de A formatação de stringstring..

print("----------")print("%s" % ("Programa"))print("%10s" % ("Programa"))print("%-10s" % ("Programa"))print("%10.3s" % ("Programa"))print("----------")

----------Programa ProgramaPrograma Pro----------

printf(“%n.ds”, variavel);n é a quantidade de caracteres da string.

d é a de caracteres que vai aparecer da string.

Page 142: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

Saída de valores cadeia ou stringSaída de valores cadeia ou string

● A formatação de A formatação de stringstring..

st = "Programa"print("----------")print("%s" % (st))print("%10s" % (st))print("%-10s" % (st))print("%10.3s" % (st))print("----------")

----------Programa ProgramaPrograma Pro----------

Page 143: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

EstudarEstudar

● Seu trabalho agora é estudar e aprender a formatar as saídas de dados.

● Faça os exercícios a seguir e tire duvidas com o monitor ou o professor.

Page 144: CCO 016 – Fundamentos de Programaçãorcosta62br.unifei.edu.br/com110/aula_04.pdf · 2020. 5. 12. · Tipo de Dados - Inteiro Define um valor que representa uma informação do

ExercíciosExercícios

● https://www.urionlinejudge.com.br/judge/en/loginhttps://www.urionlinejudge.com.br/judge/en/loginURI 2747 a 2756URI 2747 a 2756

● https://open.kattis.com/problems?order=problem_difficulthttps://open.kattis.com/problems?order=problem_difficulty&dir=ascy&dir=asc

Hello World!, Multi-Class Binary Neural Network for Hello World!, Multi-Class Binary Neural Network for Handwritten DigitsHandwritten Digits

● https://neps.academy/https://neps.academy/

Olá Neps Academy, Olá CodCad!Olá Neps Academy, Olá CodCad!