Você está na página 1de 75
Logo
Logo
Logo
Logo
Aula Aula 01 01 ● Tipos de Dados ● Saída de Dados ● Entrada de

AulaAula 0101

Aula Aula 01 01 ● Tipos de Dados ● Saída de Dados ● Entrada de Dados

Tipos de Dados

Saída de Dados

Entrada de Dados

Programação

sequencial

Aula Aula 01 01 ● Tipos de Dados ● Saída de Dados ● Entrada de Dados
Modelo Modelo de de código código para para C/C++ C/C++ • Um modelo de código

ModeloModelo dede códigocódigo parapara C/C++C/C++

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

#include <bits/stdc++.h> using namespace std; int main() { // corpo do programa return 0;

}

ao seguinte: #include <bits/stdc++.h> using namespace std; int main() { // corpo do programa return 0;
Modelo Modelo de de código código para para C/C++ C/C++ • No código anterior tem-se:

ModeloModelo dede códigocódigo parapara C/C++C/C++

No código anterior tem-se:

#include <bits/stdc++.h> • É a biblioteca que engloba todas as demais bibliotecas do C/C++

using namespace std;

• Declara que as classes e funções da

biblioteca

padrão

pode

ser

usado

diretamente no código.

using namespace std; • Declara que as classes e funções da biblioteca padrão pode ser usado
Modelo Modelo de de código código para para C/C++ C/C++ • Continuação: – int main()

ModeloModelo dede códigocódigo parapara C/C++C/C++

Continuação:

int main()

• É o função principal do programa, ela é obrigatório em todos os programas.

// corpo do programa

• // e / * */ é comentário do programa.

• // é utilizado para comentar uma única linha.

• /* e */ é utilizado para comentar mais de uma linha.

programa. • // é utilizado para comentar uma única linha. • /* e */ é utilizado
Modelo Modelo de de código código para para C/C++ C/C++ • Continuação: – return 0;

ModeloModelo dede códigocódigo parapara C/C++C/C++

Continuação:

return 0; • É o retorno que seu programa faz ao Sistema Operacional.

{

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

que seu programa faz ao Sistema Operacional. – { } • { e } são inicio
Compilando Compilando o o Programa Programa • O código pode ser compilado usando o seguinte

CompilandoCompilando oo ProgramaPrograma

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

g++ -O2 -Wall test.cpp -o test
g++ -O2 -Wall test.cpp -o test

Este comando produz um arquivo executável chamado “test”, gerado do código-fonte test.cpp. O compilador otimiza o código (-O2) e mostra avisos sobre possíveis erros (-Wall).

gerado do código-fonte test.cpp . O compilador otimiza o código (-O2) e mostra avisos sobre possíveis
Tipo Tipo de de Dados Dados - - Inteiro Inteiro • Tipo de dado representa

TipoTipo dede DadosDados -- InteiroInteiro

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;

a informação é ou não numérica; – Se numérica, qual é a sua menor e maior

TipoTipo dede DadosDados -- InteiroInteiro

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

C/C++ tem os tipos:

Tipo

Faixa de Valores

Tamanho

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

64

bits

9.223.372.036.854.775.807

 

unsigned long long int

0 a 18.446.744.073.709.551.615

64

bits

TipoTipo dede DadosDados -- RealReal

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

C/C++ tem os tipos:

Tipo

Faixa de Valores

Tamanho

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

TipoTipo dede DadosDados -- CaracterCaracter

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:

Tipo

Faixa de Valores

Tamanho

char

-127 a 127

8

bits

unsingned char

0 a 255

8

bits

Tipo Faixa de Valores Tamanho char -127 a 127 8 bits unsingned char 0 a 255

TipoTipo dede DadosDados -- CadeiaCadeia

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

C/C++ tem os tipos:

Tipo

Faixa de Valores

Tamanho

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

C++ tem o tipo:

Tipo

Faixa de Valores

Tamanho

string

n

*

(-127 a 127)

n

* 8 bits

TipoTipo dede DadosDados -- BooleanoBooleano

Define um valor que representa uma informação do tipo verdadeiro ou falso.

C++ tem os tipos:

Tipo

Faixa de Valores

Tamanho

bool

true ou false

? bits

verdadeiro ou falso. • C++ tem os tipos: Tipo Faixa de Valores Tamanho bool true ou
Variável Variável • Definição: – É o nome do local físico da memória onde a

VariávelVariável

Definição:

– É o nome do local físico da memória onde a informação é armazenada no computador.

Regras de nomes:

– Todo nome deve ser composto apenas por letras, números e sublinhado ( ‘_’ );

– Deve começar com uma letra;

– 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.

Programa Programa com com Variável Variável #include <bits/stdc++.h> using namespace std; int main() { //tipo
Programa Programa com com Variável Variável #include <bits/stdc++.h> using namespace std; int main() { //tipo

ProgramaPrograma comcom VariávelVariável

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

}

<bits/stdc++.h> using namespace std; int main() { //tipo nome_variavel; // corpo do programa return 0; }

DeclaraçãoDeclaração dada VariávelVariá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, …, nome variavel_n;

Pode separar as variáveis de mesmo 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 qualquer parte do programa, mas antes de utilizar a
Observação:
A declaração pode
ocorrer em qualquer
parte do programa,
mas antes de utilizar
a variável.

16

Exemplo Exemplo com com Tipo Tipo Inteiro Inteiro #include <bits/stdc++.h> using namespace std; int main()
Exemplo Exemplo com com Tipo Tipo Inteiro Inteiro #include <bits/stdc++.h> using namespace std; int main()

ExemploExemplo comcom TipoTipo InteiroInteiro

#include <bits/stdc++.h> using namespace std; int main() { int i, j, idade; int x, y; // corpo do programa return 0;

}

{ int i, j, idade; int x, y; // corpo do programa return 0; } Os

Os demais exemplos seguem essa mesmas característica.

{ int i, j, idade; int x, y; // corpo do programa return 0; } Os

17

AtribuiçãoAtribuição

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

Em linguagem C/C++ será:

variavelvariavel == valor;valor;

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

int x, y; x = 10; y = 10 * x;

double x, y; x = 3.14159; y = sin(x);

y; x = 10; y = 10 * x; double x, y; x = 3.14159; y

O tipo cadeia ou string só pode usado nessa atribuição se for declarado como “string”.

usado nessa atribuição se for declarado como “string”. char x, y; x = ‘r’; y =
usado nessa atribuição se for declarado como “string”. char x, y; x = ‘r’; y =

char x, y; x = ‘r’; y = 1 + x;

string x, y; x = “UNIFEI”; y = x + “palavra”;

18

AtribuiçãoAtribuição

No tipo cadeia ou string, em C, a atribuição usando o sinal = deve ser feita na declaração da variável

char x[10] = “Estudo Aqui”;

Se não tem que usar a função strcpy(a, b). Essa função serve para copiar o conteúdo de b em a.

b) . Essa função serve para copiar o conteúdo de b em a. char x[10], y[10];

char x[10], y[10]; strcpy(x, “Estudo Aqui”); strcpy(y, x);

ExercícioExercício

Declare as variáveis A, B, C, D, E, F, G do tipo inteiro:

Declare as variáveis A, B, C, D, E, F, G do tipo inteiro: – Atribua o

– Atribua o valor 10 a variável A;

– Atribua o valor 100 a variável B;

Some o valor da variável A com a B e atribua a C;

Subtraia o valor da variável A do valor da variável B e atribua a D;

– Multiplique o valor da variável A com a B e atribua a E;

– Divida o valor da variável A do valor da variável B e atribua a F;

– Atribua a variável G o valor da variável A;

– Atribua a variável A o valor da variável B;

– Atribua a variável B o valor da variável G;

Mostre as operações de atribuições e seus valores.

ExercícioExercício -- soluçãosolução

int A, B, C, D, E, F, G;

- - solução solução int A, B, C, D, E, F, G; Atribuição Valor da Atribuição

Atribuição

Valor da Atribuição

C = A + B;

C = 10 + 100 = 110

D = A – B;

D = 10 – 100 = -90

E = A * B;

E = 10 * 100 = 1000

F = A / B;

F = 10 / 100 = 0 *

G = A;

G

= 10 **

A = B;

A = 100 **

B = G;

B

= 10 **

* Cuidado com a divisão de número inteiro.

** O valor de A e B foi trocado, devido a variável auxiliar G.

21

SaídaSaída dede dadosdados

Definição:

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

– 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

C ou C++

– Em C ou C++ utiliza-se a função printf (const char* formato, variable);

C++

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

Definição:

PrintfPrintf

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

printf é a função no C a qual se usa para imprimir strings na tela.

Estrutura

– 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.

Após a virgula deve se colocar as variáveis, tomando o cuidado de colocar a mesma quantidade

Exemplo:

PrintfPrintf

printf("Meu primeiro programa.");

Printf – printf(" Meu primeiro programa." ); • Nesse caso imprimi na tela: meu primeiro programa.

• Nesse caso imprimi na tela: meu primeiro programa.

– Os formatos são precedidos do carácter %. A tabela a seguir apresenta os formatos existentes.

programa. – Os formatos são precedidos do carácter % . A tabela a seguir apresenta os

PrintfPrintf

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

%c

Um carácter (char)

%s

Uma string

PrintfPrintf

Código

Função do Formato

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

Mais informação, visite o site: http://www.cplusplus.com/reference/cstdio/printf/ ou
Mais informação, visite o site:
http://www.cplusplus.com/reference/cstdio/printf/
ou
https://www.geeksforgeeks.org/how-to-print-using-printf/

26

PrintfPrintf

Controle da Impressão:

Todas

as

linhas

de

saída

necessitam

do

impressão, conforme a tabela:

de saída necessitam do impressão, conforme a tabela: controle da Constante Significado \n Nova linha

controle

da

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

PrintfPrintf

Estes caracteres podem ser colocado:

No inicio do comando de saída;

No meio

No fim ;

No inicio do comando de saída; – No meio – No fim ; ● A colocação

A colocação do carácter de controle de saída ( \n ) 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;

Exemplo:

PrintfPrintf

• Exemplo: Printf Printf #include <bits/stdc++.h> using namespace std; int main() { printf ("Meu

#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;

}

Objeto cout:

CoutCout

• Objeto cout: Cout Cout – O objeto cout representa o stream de saída no C++

– 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 printf no lugar do cout.

que insere dados dentro do stream . – Isto não impossibilita de usar o printf no

CoutCout

<< Operador de Inserção – O operador << executa a saída (imprime na tela) com streams em C++. O objeto cout é 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.pdf http://umich.edu/~eecs381/handouts/formatting.pdf
http://umich.edu/~eecs381/handouts/formatting.pdf http://umich.edu/~eecs381/handouts/formatting.pdf

CoutCout

Controle de Impressão:

Cout Cout • Controle de Impressão: – O cout utiliza dos mesmo controle da impressão do

– O cout utiliza dos mesmo controle da impressão do printf. No entanto, ele também pode usar o comando ‘endl’ para fazer o mesmo que o ‘\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;

}

ComoComo descobrirdescobrir oo tamanhotamanho dodo tipo?tipo?

#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/
https://www.geeksforgeeks.org/data-type-ranges-and-their-macros-in-c/

ComoComo descobrirdescobrir oo tamanhotamanho dodo tipo?tipo?

cout << "short int

cout << "unsigned short int

cout << "int cout << "unsigned int cout << "long long int

cout << "unsigned long long int de: " << 0 << " to " << ULLONG_MAX << endl;

de: " << SHRT_MIN << " a " << SHRT_MAX << endl;

de: " << 0 << " a " << USHRT_MAX << endl;

de: " << INT_MIN << " a " << INT_MAX << endl; de: " << 0 << " a " << UINT_MAX << endl; de: " << LLONG_MIN << " a " << LLONG_MAX << endl;

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

ComoComo descobrirdescobrir oo tamanhotamanho dodo tipo?tipo?

}

cout << endl; cout << "float cout << "negative float cout << "double cout << "negative double cout << "long double

cout << "negative long double de: " << -LDBL_MIN << " a " << +LDBL_MAX << endl;

de: " << FLT_MIN << " a " << FLT_MAX << endl; de: " << -FLT_MIN << " a " << -FLT_MAX << endl; de: " << DBL_MIN << " a " << DBL_MAX << endl; de: " << -DBL_MIN << " a " << +DBL_MAX << endl; de: " << LDBL_MIN << " a " << LDBL_MAX << endl;

return 0;

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

SaídaSaída dede valoresvalores inteirosinteiros

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); cout << setw(5) << 123 << endl;

cout.width(5);

cout << 123 << "\n"; cout << "-----\n"; return 0;

"\n"; cout << "-----\n"; return 0; ----- 123 123 00123 123 123 ----- }

-----

123

123

00123

123

123

-----

}

36

SaídaSaída dede valoresvalores inteirosinteiros

Idem ao anterior usando variável inteira ‘x’:

• Idem ao anterior usando variável inteira ‘ x ’: #include <bits/stdc++.h> using namespace std; int

#include <bits/stdc++.h>

using namespace std; int main() {

setw(x) setw(x) formata formata a a quantidade quantidade x x de de dígitos dígitos do
setw(x) setw(x) formata formata a a
quantidade quantidade x x de de
dígitos dígitos do do número. número.

-----

123

123

123

123

-----

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;

}

37

SaídaSaída dede valoresvalores inteirosinteiros

Justificando a direita:

#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;

}

cout << 123 << "\n"; cout << "-----\n"; return 0; } ----- 123 123 123 123

-----

123

123

123

123

-----

38

SaídaSaída dede valoresvalores reaisreais

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;

}

printf(“%n.df”, variavel); printf(“%n.dlf”, variavel); n é a quantidade de dígitos contando o ponto decimal
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.

----------

3.141590

3

3.1

3.14

3.142

3.142

----------

39

SaídaSaída dede valoresvalores reaisreais

fixed fixa a quantidade de casas decimais. setprecision() ou precision() determina a quantidade de casas
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.

----------

3.14159

3

3.1

3.142

3.1416

----------

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;

}

40

SaídaSaída dede UMUM caráctercará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;

}

std; int main() { printf("%c\n", 'a'); cout << 'a' << endl; return 0; } a a
std; int main() { printf("%c\n", 'a'); cout << 'a' << endl; return 0; } a a

a

a

SaídaSaída dede stringstring ouou cadeiacadeia

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

----------

Programa

Programa

Programa

Pro

----------

A formatação de string. #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;

}

Saída Saída de de string string ou ou cadeia cadeia • A formatação de string

SaídaSaída dede stringstring ouou cadeiacadeia

A formatação de string. #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;

----------

Programa

Programa

Programa

----------

}

43

ExercíciosExercícios

– URI 2747 a 2756

Exercícios Exercícios • https://www.urionlinejudge.com.br/judge/en/login – URI 2747 a 2756 44

EntradaEntrada dede dadosdados

Definição:

Entrada Entrada de de dados dados • Definição: • Entrada de dados compreende a operação realizada

Entrada de dados compreende a operação realizada pelo usuário do programa de fornecer o conteúdo de uma informação ao computador e este armazenar esta informação na memória (variável).

C ou C++

– Em C ou C++ utiliza-se a função scanf (const char* formato, variable);

C++

– Em C++ utiliza-se, também, a função cin >> variable;

Definição:

scanf é a função no teclado ou arquivo.

Estrutura

– Sua em duas partes.

ScanfScanf

• Estrutura – Sua em duas partes. Scanf Scanf C a qual se usa para ler

C

a qual se usa para ler valores do

• 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.

Após a virgula deve se colocar as variáveis, tomando o cuidado de colocar a mesma quantidade

Exemplo:

ScanfScanf

scanf("A%d", &variavel);

Scanf Scanf – scanf("A%d ", & variavel ); • Nesse caso variavel é uma variável inteira.

• Nesse caso variavel é uma variável inteira. • E a string A deve ser ignorada quando você digitar, por exemplo, A10. • É obrigatório para todos os tipos, exceto cadeia ou string, a utilização do sinal & antes do nome da variável de entrada;

– Os formatos são precedidos do carácter vimos na tabela de formatação no printf.

%, conforme

EntradaEntrada dede valoresvalores inteirosinteiros

A leitura de valores inteiros #include <bits/stdc++.h> using namespace std; int main() { int i; long long int j; scanf("A[%d]", i); printf("X[%d]\n", i); scanf("%d", i); printf("%05d\n", i); scanf("%lld", j); printf("%lld\n", j); return 0;

}

A[10]

X[10]

10

00010

10

10

48

EntradaEntrada dede valoresvalores inteirosinteiros

A leitura de valores inteiros #include <bits/stdc++.h> using namespace std; int main() { int i; long long int j; cin >> i; cout << i << endl; cin >> j; cout << j << endl; return 0;

}

10

10

10

10

EntradaEntrada dede valoresvalores reaisreais

A leitura de números reais:

valores reais reais • A leitura de números reais: #include <bits/stdc++.h> using namespace std; int

#include <bits/stdc++.h> using namespace std; int main() { float x; double y; scanf("%f", &x); printf("%f\n", x); scanf("%lf", &y); printf("%lf\n", y); return 0;

343.235

343.234985

343.235

343.235000

}

EntradaEntrada dede valoresvalores reaisreais

A leitura de números reais:

valores reais reais • A leitura de números reais: #include <bits/stdc++.h> using namespace std; int

#include <bits/stdc++.h> using namespace std; int main() { float x; double y; cin >> x; cout << x << endl; cin >> y; cout << y << endl; return 0;

343.235

343.235

343.235

343.235

}

EntradaEntrada dede UMUM CarácterCarácter

CUIDADO Tem que colocar um espaço em branco antes do %c.
CUIDADO
Tem que colocar um espaço
em branco antes do %c.

a

a

a

a

A leitura de carácter:

#include <bits/stdc++.h> using namespace std; int main() { char ch; scanf (" %c", &ch); printf("%c\n", ch); cin >> ch; cout << ch << endl; return 0;

}

EntradaEntrada dede cadeiacadeia ouou stringstring

CUIDADO Lê até encontrar um espaço em branco ou o fim da linha.
CUIDADO
Lê até encontrar um espaço
em branco ou o fim da linha.

A leitura de cadeia ou string:

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

int main() { char st[40], st1[40]; scanf (" %s", st); printf("%s\n", st); scanf (" %[^\n]", st); printf("%s\n", st); scanf (" %[^-]-%[^\n]", st, st1); printf("%s %s\n", st, st1); return 0;

Roberto Roberto Roberto Affonso Roberto Affonso Roberto-Affonso Roberto Affonso

O %[^\n] serve somente no scanf().
O %[^\n] serve somente no
scanf().

}

53

EntradaEntrada dede cadeiacadeia ouou stringstring

A leitura de cadeia ou string:

#include <bits/stdc++.h> using namespace std; int main() { char st[40]; cin.getline(st, 40); cout << st << endl; cin >> st; cout << st << endl; return 0;

}

Roberto Affonso Roberto Affonso Roberto Affonso Roberto

CUIDADO Lê até encontrar um espaço em branco ou o fim da linha.
CUIDADO
Lê até encontrar um espaço
em branco ou o fim da linha.

54

EntradaEntrada dede cadeiacadeia ouou stringstring

Se usar uma variável de C++ declarada com o tipo string, deve usar somente cin e cout. #include <bits/stdc++.h> using namespace std; int main() {

}

Roberto Affonso Roberto Affonso Roberto Affonso Roberto

string st; getline(cin, st); cout << st << endl; cin >> st; cout << st << endl; return 0;

CUIDADO Lê até encontrar um espaço em branco ou o fim da linha.
CUIDADO
Lê até encontrar um espaço
em branco ou o fim da linha.

55

ExercíciosExercícios

– URI 1957, 1958, 2757 a 2766, menos o 2760 (está errado)

• https://www.urionlinejudge.com.br/judge/en/login – URI 1957, 1958, 2757 a 2766, menos o 2760 (está errado) 56

cin-coutcin-cout vsvs scanf-printfscanf-printf

Quando devemos usar cin-cout ou scanf-printf?

• Quando devemos usar cin-cout ou scanf-printf? – Quando você tiver domínio dos dois e achar

– Quando você tiver domínio dos dois e achar mais comodo.

– Se quiser ver uma boa comparação vá a página abaixo.

https://www.geeksforgeeks.org/cincout-vs-scanfprintf/https://www.geeksforgeeks.org/cincout-vs-scanfprintf/
https://www.geeksforgeeks.org/cincout-vs-scanfprintf/https://www.geeksforgeeks.org/cincout-vs-scanfprintf/
abaixo. https://www.geeksforgeeks.org/cincout-vs-scanfprintf/https://www.geeksforgeeks.org/cincout-vs-scanfprintf/ 57

EstruturaEstrutura sequenciaissequenciais

Uma estrutura sequencial realiza um conjunto predeterminado de comandos de forma sequencial, na ordem em que foram declarados no código fonte.

Ela é delimitada na linguagem C/C++ pelos caracteres { e } e contém basicamente comandos de atribuição, comandos de entrada e comandos de saída.

de atribuição, comandos de entrada e comandos de saída. #include <bits/stdc++.h> using namespace std; int

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

{

// corpo do programa return 0;

OperaçõesOperações MatemáticasMatemáticas

Operações matemáticas simples

– Soma

+

– Subtração

-

– Multiplicação *

– Divisão

/

– Resto da divisão

%

simples – Soma + – Subtração - – Multiplicação * – Divisão / – Resto da
simples – Soma + – Subtração - – Multiplicação * – Divisão / – Resto da

FunçõesFunções MatemáticasMatemáticas

Cosseno

cos(x)

Seno

sin(x)

Tangente

tan(x)

Arco cosseno

acos(x)

Arco seno

asin(x)

Arco tangente Ou atan2(x)

atan(x)

x está em radianos.

O valor de pi pode ser obtido

com as constante:

M_PI

Exponencial

Logaritmo log10(x)

Logaritmo neperiano log(x)

Raiz quadrada

Potenciação pow(x)

exp(x)

sqrt(x)

Teto alto

ceil(x)

Teto baixo

floor(x)

Valor absoluto inteiro abs(x)

Valor absoluto real

fabs(x)

http://www.cplusplus.com/reference/cmath/
http://www.cplusplus.com/reference/cmath/

URIURI 10011001

Resolvendo o problema 1001 do URI

#include <bits/stdc++.h> using namespace std; int main() { int A, B, X; scanf ("%d %d", &A, &B); X = A + B; printf("X = %d\n"); return 0;

}

int main() { int A, B, X; scanf ("%d %d", &A, &B); X = A +

URIURI 10021002

Resolvendo o problema 1002 do URI

#include <bits/stdc++.h> using namespace std; int main() { double area, raio, PI = 3.14159; scanf ("%lf", &raio); area = PI * pow(raio, 2);

printf("A=%.4lf\n");

return 0;

}

PI = 3.14159; scanf ("%lf", &raio); area = PI * pow(raio, 2); printf("A=%.4lf\n"); return 0; }

HierarquiaHierarquia dosdos OperadoresOperadores

A hierarquia dos operadores define a ordem em que uma expressão é calculada;

Segue-se

a

operadores:

seguinte

tabela

Parênteses

Multiplicação e divisão

Adição e subtração

( mais alta )

de

prioridade

para

os

Operadores com mesma prioridade, a ordem de resolução é da esquerda para a direita.

OperadoresOperadores InteirosInteiros

Operação constituídas de variáveis e constantes inteiras

Resultado é sempre inteiro

Exemplo:

AA expressão:expressão: 5 * 2 / 3 Resulta no valor 3
AA expressão:expressão:
5 * 2 / 3
Resulta no valor 3
AA expressão:expressão: 2 / 3 * 5 Resulta no valor 0
AA expressão:expressão:
2 / 3 * 5
Resulta no valor 0
3 AA expressão:expressão: 2 / 3 * 5 Resulta no valor 0 AA expressão:expressão: 3 /
AA expressão:expressão: 3 / 2 * 5 Resulta no valor 5
AA expressão:expressão:
3 / 2 * 5
Resulta no valor 5

66

OperadoresOperadores ReaisReais

Operação constituídas de variáveis e constantes reais

Resultado é sempre real

Exemplo:

AA expressão:expressão: 5.0 * 2.0 / 3.0 Resulta no valor 3.333333
AA expressão:expressão:
5.0 * 2.0 / 3.0
Resulta no valor 3.333333
AA expressão:expressão: 2.0 / 3.0 * 5.0 Resulta no valor 3.333333
AA expressão:expressão:
2.0 / 3.0 * 5.0
Resulta no valor 3.333333
2.0 / 3.0 * 5.0 Resulta no valor 3.333333 AA expressão:expressão: 3.0 / 2.0 * 5.0
AA expressão:expressão: 3.0 / 2.0 * 5.0 Resulta no valor 4.500000
AA expressão:expressão:
3.0 / 2.0 * 5.0
Resulta no valor 4.500000

67

OperadoresOperadores MistoMisto

Operação constituídas de variáveis e constantes inteiras e reais

Resultado é sempre real

Exemplo:

AA expressão:expressão: 5.0 * 2 / 3.0 Resulta no valor 3.333333
AA expressão:expressão:
5.0 * 2 / 3.0
Resulta no valor 3.333333
5.0 * 2 / 3.0 Resulta no valor 3.333333 AA expressão:expressão: 2 / 3 * 5.0
AA expressão:expressão: 2 / 3 * 5.0 Resulta no valor 0.000000
AA expressão:expressão:
2 / 3 * 5.0
Resulta no valor 0.000000
2 / 3 * 5.0 Resulta no valor 0.000000 AA expressão:expressão: 3.0 / 2.0 * 5
AA expressão:expressão: 3.0 / 2.0 * 5 Resulta no valor 4.500000
AA expressão:expressão:
3.0 / 2.0 * 5
Resulta no valor 4.500000

68

TypecastTypecast

Pode-se forçar temporariamente, a mudança do tipo de uma variável, através do casting do tipo, que consiste em se anteceder o nome da variável com o novo tipo, entre parênteses.

AA expressão:expressão: 2 / 3 * 5.0 Resulta no valor 0.000000
AA expressão:expressão:
2 / 3 * 5.0
Resulta no valor 0.000000
2 / 3 * 5.0 Resulta no valor 0.000000 AA expressão:expressão: (float) 2 / 3 *
AA expressão:expressão: (float) 2 / 3 * 5.0 Resulta no valor 3.333333
AA expressão:expressão:
(float) 2 / 3 * 5.0
Resulta no valor 3.333333

TypecastTypecast

Pode ser utilizado da seguinte forma:

Typecast • Pode ser utilizado da seguinte forma: #include <bits/stdc++.h> using namespace std; int

#include <bits/stdc++.h> using namespace std; int main() { int A, B; float C;

B = 2;

C = 7.0;

A = (int) (C / B);

printf("%d\n", A); return 0;

}

O resultado é: 3
O
resultado
é:
3

#include <bits/stdc++.h> using namespace std; int main() { int A, B; float C;

A = 7;

B = 2;

C = (float) (A / B);

printf("%d\n", C); return 0;

}

O resultado é: 3.000000
O resultado é: 3.000000

TypecastTypecast

Pode ser utilizado da seguinte forma:

#include <bits/stdc++.h> using namespace std; int main() { int A; A = 97; printf("%d - %c\n", A, (char) A); return 0;

namespace std; int main() { int A; A = 97; printf("%d - %c\n", A, (char) A);

}

O resultado é: 97 - a
O resultado é: 97 - a
namespace std; int main() { int A; A = 97; printf("%d - %c\n", A, (char) A);

TransformandoTransformando

Pode ser utilizado da seguinte forma:

Transformando • Pode ser utilizado da seguinte forma: #include <bits/stdc++.h> using namespace std; int

#include <bits/stdc++.h> using namespace std; int main() { int A, B; char C;

A = 5;

B = 'A' - A;

C = 'A' + A;

printf("%d - %c\n", B, C); return 0;

}

O resultado é: 60 - F
O resultado é: 60 - F
A = 5; B = 'A' - A; C = 'A' + A; printf("%d - %c\n",

TabelaTabela ASCIIASCII

Só funciona devido a tabela ASCII

Tabela Tabela ASCII ASCII • Só funciona devido a tabela ASCII 73

73

OperadoresOperadores EspeciaisEspeciais

A linguagem C/C++ tem alguns operadores especiais:

Operação

Operador

Significado

Soma

A ++;

Soma 1 unidade a variável A

 

A += n;

Soma n unidades a variável A

Subtração

A --;

Subtrai 1 unidade da variável A

 

A -- n;

Subtrai n unidades da variável A

Multiplicação

A *= n;

Multiplica a variável A por n

Divisão

A /= n;

Dividi a variável A por n

Resto da divisão

A %= n;

Tira o resto da divisão da variável A por n

n pode ser um número ou uma operação
n pode ser um número ou uma operação

ExercíciosExercícios

– URI 1003 a 1021, 1921, 1930, 1959, 1963, 2159, 2164,

2234.

Sugestão para o 1021, trate o número real como dois inteiros, basta usar o scanf("%d.%d", &n, &m);.

Sugestão para o 1021, trate o número real como dois inteiros, basta usar o scanf("%d.%d", &n,