Você está na página 1de 56
Logo
Logo
Logo
Logo
Aula Aula 01 01 ● Programação Condicional ● Programação repetitiva 2

AulaAula 0101

Programação

Condicional

Programação repetitiva

Aula Aula 01 01 ● Programação Condicional ● Programação repetitiva 2
Programação Programação Condicional Condicional • Uma programação condicional, como o próprio nome já diz,

ProgramaçãoProgramação CondicionalCondicional

Uma programação condicional, como o próprio nome já diz, permite que determinadas instruções sejam executadas ou não, dependendo do resultado de uma condição (teste), ou seja, o programa vai tomar decisão de um processo (leitura, processo e impressão) a ser realizado.

Isto é, são testados parâmetros e, dependendo de seus valores, tomamos um caminho ou outro. As condições que são testadas num programa são do tipo lógica (booleano), portanto podem ter somente dois resultados: Verdadeiro ou Falso. Assim, a seleção de ações pode seguir, no máximo, duas alternativas: uma se a condição for verdadeira e outra se a condição testada for falsa.

seguir, no máximo, duas alternativas: uma se a condição for verdadeira e outra se a condição
Operadores Operadores Lógicos Lógicos • Os operadores lógicos são utilizados na confecção

OperadoresOperadores LógicosLógicos

Os

operadores

lógicos

são

utilizados

na

confecção das condições (verdadeira ou falsa).

Esses operadores são:

 

Significado

Maior que

Menor que

Maior ou igual a

Menor ou igual a

Diferente de

Igual a

Operador em C/C++

>

<

>=

<=

!=

= =

ou igual a Diferente de Igual a Operador em C/C++ > < >= <= != =
Valores Valores Booleanos Booleanos • Os operadores lógicos na linguagem irão servir para comparar duas

ValoresValores BooleanosBooleanos

Os operadores lógicos na linguagem irão servir para comparar duas variáveis ou uma variável e uma contante ou simplesmente uma constante. Em C e C++ o valorvalor ‘0’‘0’ tem o significado de falso e qualquerqualquer valorvalor diferentediferente dede ‘0’‘0’ o significado de verdadeiro.

No entanto, em C++ tem o tipo booleano:

bool b1, b2;

Esse tipo aceita só dois valores, true ou false.

No entanto, em C++ tem o tipo booleano : bool b1, b2; • Esse tipo aceita
Pontos Pontos importantes importantes do do tipo tipo bool bool • Por default o valor

PontosPontos importantesimportantes dodo tipotipo boolbool

Por default o valor true é igual a 1 e o valor false igual a 0.

Pode-se usar variável do tipo bool ou valores true e false em expressão matemáticas. Por exemplo:

int x = false + true + 6; é uma operação valida e o resultado de x é igual a 7, com false = 0 e true = 1.

É também possível converter valores inteiros ou reais para o tipo bool. bool x = 0; // false bool y = 100; // true bool z = 15.75; // true bool w = 0.0; // false

ou reais para o tipo bool. bool x = 0; // false bool y = 100;

6

Utilizando Utilizando operadores operadores lógicos lógicos • Pode-se usar os operadores lógicos conforme o

UtilizandoUtilizando operadoresoperadores lógicoslógicos

Pode-se usar os operadores lógicos conforme o programa:

#include <bits/stdc++.h> using namespace std; int main() { int A = 10, B = 7, C = 5, D = 3; bool b1; b1 = A > 10; cout << b1 << endl; b1 = B < A; cout << b1 << endl; b1 = C >= D; cout << b1 << endl;

}

b1 = B <= 2; cout << b1 << endl; b1 = A != 10; cout << b1 << endl; b1 = D == 3; cout << b1 << endl; b1 = C; cout << b1 << endl; return 0;

Resultado: 0 1 1 0 0 1 1
Resultado:
0
1
1
0
0
1
1
<< b1 << endl; b1 = C; cout << b1 << endl; return 0; Resultado: 0
Operadores Operadores Relacionais Relacionais • que ser complementados, pois não podemos comparar mais de duas

OperadoresOperadores RelacionaisRelacionais

que ser

complementados, pois não podemos comparar mais de duas variáveis, como por exemplo na matemática: A = B = C. Não se pode fazer assim na linguagem de programação C/C++. Para isso usamos os operadores relacionais: não, e e ou, conforme a tabela.

Os

operadores

lógicos

tem

Significado

Operador em C/C++

não

!

e

&&

ou

||

a tabela. Os operadores lógicos tem Significado Operador em C/C++ não ! e && ou ||
Tabela Tabela dos dos Operadores Operadores Relacionais Relacionais • Para relacionar os operadores tem-se as

TabelaTabela dosdos OperadoresOperadores RelacionaisRelacionais

Para relacionar os operadores tem-se as tabelas:

A

! A

V

F

F

V

A

B

A || B

V

V

V

V

F

V

F

V

V

F

F

F

A

B

A && B

V

V

V

V

F

F

F

V

F

F

F

F

O e e ou aqui estão representados para duas variáveis, mas poderiam ser para mais.

F V F F F F O e e ou aqui estão representados para duas variáveis,

• Utilizando Utilizando os os Operadores Operadores Relacionais Relacionais Pode-se usar os operadores lógicos

UtilizandoUtilizando osos OperadoresOperadores RelacionaisRelacionais

Pode-se usar os operadores lógicos conforme o programa:

#include <bits/stdc++.h> using namespace std; int main() { int A = 10, B = 7, C = 5, D = 3; bool b1; b1 = !(A > 10); cout << b1 << endl; b1 = ((B < A) && (C < D)); cout << b1 << endl; b1 = ((A >= D) || (B <= C)); cout << b1 << endl; b1 = (!(A >= D) || (B <= C)); cout << b1 << endl; b1 = ((B < A) && !(C < D)); cout << b1 << endl; return 0;

}

Resultado: 1 0 1 0 1
Resultado:
1
0
1
0
1
b1 = ((B < A) && !(C < D)); cout << b1 << endl; return 0;
Seleção Seleção Simples Simples • A seleção mais simples a ser realizada é aquela que

SeleçãoSeleção SimplesSimples

A seleção mais simples a ser realizada é aquela que a situação da <condição> é verdadeira. Não existe a opção falsa, ou não é necessário realizar nada neste tipo de opção. É o que chamamos de opção “default.

Na linguagem C/C++ fica:

if (<condição>)

{

blocos de comandos;

} Vale observar que as chaves ({ e }) só são necessárias, quando se tem
}
Vale observar que as chaves ({ e }) só são
necessárias, quando se tem mais de um bloco de
comando. Se tiver um só bloco de comando, não
precisa colocá-las.

11

Exemplo Exemplo de de Seleção Seleção Simples Simples • Faça um programa que leia um

ExemploExemplo dede SeleçãoSeleção SimplesSimples

Faça um programa que leia um número e diga se ele é “maior que 10”.

#include <bits/stdc++.h> using namespace std; int main() { float N; scanf ("%f",&N); if (N > 10)

{

Para N = 3.45: Para N = 10.45: 10.4 maior que 10
Para N = 3.45:
Para N = 10.45:
10.4 maior que 10

printf ("%.1f maior que 10\n",N);

}

return 0;

}

> 10) { Para N = 3.45: Para N = 10.45: 10.4 maior que 10 printf
Seleção Seleção Completa Completa • A seleção completa é dada por if (<condição>) for verdadeira

SeleçãoSeleção CompletaCompleta

A seleção completa é dada por if (<condição>)

for

verdadeira é realizado o primeiro { e dentro

dele os blocos de comandos 1, se for falsa, é

realizado o segundo { de comandos 2.

}

e dentro dele os blocos

{…}

else

{

}

onde

<condição>

}

se

a

Na linguagem C/C++ fica:

if (<condição>)

{

blocos de comandos 1; } else { blocos de comandos 2;

}

se a • Na linguagem C/C++ fica: if (<condição>) { blocos de comandos 1; } else
Exemplo Exemplo de de Seleção Seleção Completa Completa • Faça um programa que leia um

ExemploExemplo dede SeleçãoSeleção CompletaCompleta

Faça um programa que leia um número natural e diga se ele é par ou impar.

#include <bits/stdc++.h> using namespace std; int main() { int N; scanf ("%d",&N); if ((N % 2) == 0)

{

Para N = 8: 8 é par. Para N = 7: 7 é impar.
Para N = 8:
8 é par.
Para N = 7:
7 é impar.

printf ( "%d é par.\n", N); } else { printf ( "%d é impar.\n",N);

}

return 0;

}

N = 7: 7 é impar. printf ( "%d é par.\n", N); } else { printf

14

• Operador Operador de de Seleção Seleção Completa Completa O operador de seleção completa é dados

OperadorOperador dede SeleçãoSeleção CompletaCompleta

O operador de seleção completa é dados por EXP1 ? EXP2 : EXP3;

onde EXP1 é uma expressão condicional, e EXP2

e EXP3 é um único bloco de comando para o verdadeiro e falso, respectivamente.

expressão condicional, e EXP2 e EXP3 é um único bloco de comando para o verdadeiro e
expressão condicional, e EXP2 e EXP3 é um único bloco de comando para o verdadeiro e
Exemplo Exemplo de de Operador Operador de de Seleção Seleção Completa Completa • Faça um

ExemploExemplo dede OperadorOperador dede SeleçãoSeleção CompletaCompleta

Faça um programa que leia um número natural e diga se ele é par ou impar.

#include <bits/stdc++.h> using namespace std; int main() { int N; scanf ("%d",&N); ((N % 2) == 0) ? printf ( "%d é par.\n", N) : printf ( "%d é impar.\n",N); return 0;

}

Para N = 8: 8 é par. Para N = 7: 7 é impar.
Para N = 8:
8 é par.
Para N = 7:
7 é impar.
é par.\n", N) : printf ( "%d é impar.\n",N); return 0; } Para N = 8:

16

Exemplo Exemplo de de Operador Operador de de Seleção Seleção Completa Completa • Faça um

ExemploExemplo dede OperadorOperador dede SeleçãoSeleção CompletaCompleta

Faça um programa que leia um número natural e se for par mostre 0 e se for impar mostre 1.

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

}

Para N = 8: 0 Para N = 7: 1
Para N = 8:
0
Para N = 7:
1
X = ((N % 2) == 0) ? 0 : 1; printf("%d\n", X); return 0; }

17

Seleção Seleção Composta Composta • A estrutura de seleção composta também é designada como seleção

SeleçãoSeleção CompostaComposta

A estrutura de seleção composta também é designada como seleção aninhada e é utilizada quando estivermos fazendo várias comparações (testes) sempre com a mesma variável. Esta estrutura é chamada de aninhada porque na sua representação fica uma seleção dentro de outra seleção.

Esta estrutura é chamada de aninhada porque na sua representação fica uma seleção dentro de outra
Esta estrutura é chamada de aninhada porque na sua representação fica uma seleção dentro de outra
Seleção Seleção Composta Composta • Na linguagem C/C++ é: if ( <condição 1> ) {

SeleçãoSeleção CompostaComposta

Na linguagem C/C++ é:

if ( <condição 1> )

{

if ( <condição 2> )

{

bloco de comandos 11; } else { bloco de comandos 12;

}

bloco de comandos 1;

} else {

if ( <condição 3> )

{

bloco de comandos 21; } else { bloco de comandos 22;

}

bloco de comandos 2;

}

{ if ( <condição 3> ) { bloco de comandos 21; } else { bloco de
Exemplo Exemplo de de Seleção Seleção Composta Composta • Faça um programa que leia três

ExemploExemplo dede SeleçãoSeleção CompostaComposta

Faça um programa que leia três medidas e determine se essas medidas formam um triângulo, se formam que tipo de triângulo ele é (isósceles, escaleno ou equilátero).

se essas medidas formam um triângulo, se formam que tipo de triângulo ele é (isósceles, escaleno
se essas medidas formam um triângulo, se formam que tipo de triângulo ele é (isósceles, escaleno
Exemplo Exemplo de de Seleção Seleção Composta Composta #include <bits/stdc++.h> using namespace std; int

ExemploExemplo dede SeleçãoSeleção CompostaComposta

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

int main() { float A, B, C; scanf ("%f %f %f", &A, &B, &C); if ((A < B + C) && (B < A + C) && (C < A + B))

{

if ((A == B) && (B == C))

{

printf("Triângulo Equilátero\n"); } else { if ((A == B) || (A == C) || (B == C))

{

printf ("Triângulo Isósceles\n"); } else { printf ("Triângulo escaleno\n");

}

}

Para 3 3 3: Triângulo Equilátero Para 3 3 4: Triângulo Isósceles Para 3 4
Para 3 3 3:
Triângulo Equilátero
Para 3 3 4:
Triângulo Isósceles
Para 3 4 5:
Triângulo escaleno
Para 10 3 4:
As medidas não formam um triângulo

} else { printf ("As medidas não formam um triângulo\n");

}

return 0;

}

As medidas não formam um triângulo } else { printf ("As medidas não formam um triângulo\n");

21

Seleção Seleção Multipla Multipla • Pode-se criar com as seleções aninhadas múltiplas seleções, mas existe

SeleçãoSeleção MultiplaMultipla

Pode-se criar com as seleções aninhadas múltiplas seleções, mas existe um comando ao qual as seleções múltiplas são melhor representadas. E com isto, podemos escolher mais opções que somente verdadeira e falsa.

múltiplas são melhor representadas. E com isto, podemos escolher mais opções que somente verdadeira e falsa.
múltiplas são melhor representadas. E com isto, podemos escolher mais opções que somente verdadeira e falsa.
Seleção Seleção Composta Composta • Na linguagem C/C++ é: switch ( variavel ) { case

SeleçãoSeleção CompostaComposta

Na linguagem C/C++ é:

switch ( variavel ) { case <valor_variável 1> : Comandos de bloco 1; break; case <valor_variável 2> : Comandos de bloco 2; break;

case <valor_variável n> : Comandos de bloco n; break; default: Comandos de bloco F (opcional)

}

O comando break serve para retirar de dentro do comando.

bloco n; break; default: Comandos de bloco F ( opcional ) } O comando break serve
Exemplo Exemplo de de Seleção Seleção Multipla Multipla • Faça um programa que escolha a

ExemploExemplo dede SeleçãoSeleção MultiplaMultipla

Faça

um

programa que escolha a letra que

começa o nome de uma fruta, conforme a lista abaixo:

a)Abacaxi

 

b)Banana

c)Caju

d)Damasco

Caso o usuário digite outra letra, imprima que está errado.

  b)Banana c)Caju d)Damasco • Caso o usuário digite outra letra, imprima que está errado. 24
Exemplo Exemplo de de Seleção Seleção Multipla Multipla #include <bits/stdc++.h> using namespace std; int

ExemploExemplo dede SeleçãoSeleção MultiplaMultipla

#include <bits/stdc++.h> using namespace std; int main() { char opcao; printf("Escolha a primeira letra de uma fruta:\n"); printf("a) abacaxi\n"); printf("b) banana\n"); printf("c) caju\n"); printf("d) damasco\n"); scanf("%d",&opcao);

banana\n"); printf("c) caju\n"); printf("d) damasco\n"); scanf("%d",&opcao); 25
Exemplo Exemplo de de Seleção Seleção Multipla Multipla switch(opcao) { case 'a':

ExemploExemplo dede SeleçãoSeleção MultiplaMultipla

switch(opcao) { case 'a':

printf("abacaxi\n"); break; case 'b':

printf("banana\n"); break; case 'c':

printf("caju\n"); break; case 'd':

printf("damasco\n");

break;

default:

printf("Opcao errada\n");

}

return 0;

}

Para a: abacaxi Para b: banana Para c: caju Para d: damasco Para e: Opcao
Para a:
abacaxi
Para b:
banana
Para c:
caju
Para d:
damasco
Para e:
Opcao errada
26

ExercíciosExercícios

– URI 1035 a 1038, 1040 a 1052, 1061, 1828, 1837, 1847, 1929, 1933, 1960, 2057, 2059, 2235, 2313, 2670, 2717.

– URI 1035 a 1038, 1040 a 1052, 1061, 1828, 1837, 1847, 1929, 1933, 1960, 2057,
Repetição Repetição • Esta estrutura é utilizada quando determinada parte do programa precisa ser repetida;

RepetiçãoRepetição

Esta estrutura é utilizada quando determinada parte do programa precisa ser repetida;

Existem 2 tipos de repetição:

– Repetições não definidas

– Repetições definidas.

ser repetida; • Existem 2 tipos de repetição: – Repetições não definidas – Repetições definidas. 28
Repetição Repetição Definida Definida • Este tipo de repetição é utilizado quando sabe-se à priori

RepetiçãoRepetição DefinidaDefinida

Este tipo de repetição é utilizado quando sabe-se à priori quantas vezes uma determinada ação vai ser repetida no programa.

Exemplos:

– Dê 5 voltas no campo de futebol afim de se exercitar;

– Leia 10 números inteiros;

no programa. • Exemplos: – Dê 5 voltas no campo de futebol afim de se exercitar;
Repetição Repetição Não Não Definida Definida • Neste tipo de repetição, a quantidade de vezes

RepetiçãoRepetição NãoNão DefinidaDefinida

Neste tipo de repetição, a quantidade de vezes que a ação é repetida, não é conhecida à priori;

Exemplo:

– Dê voltas no campo

de futebol

afim

de

se

exercitar, mas quando se cansar, pare;

– Leia números inteiros até achar o número -1.

campo de futebol afim de se exercitar, mas quando se cansar, pare; – Leia números inteiros
Repetição Repetição • Repetição definida: – for ( <valor inicial> ; <condição> ;

RepetiçãoRepetição

Repetição definida:

for (<valor inicial>; <condição>; <passos>)

Repetição não definida:

while(<condição>)

do {

} while (<condição>)

) • Repetição não definida: – while( <condição> ) – do { } while ( <condição>
While While • Na estrutura while as instruções a serem repetidas podem não ser executadas

WhileWhile

Na estrutura while as instruções a serem repetidas podem não ser executadas nenhuma vez, pois o teste fica no início da repetição, então a execução das instruções (que estão "dentro" da repetição) depende do teste. Nesta estrutura, a repetição é finalizada quando o teste é Falso (F), ou seja, enquanto o teste for Verdadeiro (V) as instruções serão executadas e, quando for Falso, o laço é finalizado.

while ( <condição> ) { blocos de comando;

}

executadas e, quando for Falso , o laço é finalizado. while ( <condição> ) { blocos
Exemplo Exemplo com com while while • Faça um programa que leia e imprima vários

ExemploExemplo comcom whilewhile

Faça um programa que leia e imprima vários números inteiros até que se digita 999.

e imprima vários números inteiros até que se digita 999. Esse programa não tem Laço definido
e imprima vários números inteiros até que se digita 999. Esse programa não tem Laço definido

Esse programa não tem Laço definido

que se digita 999. Esse programa não tem Laço definido #include <bits/stdc++.h> using namespace std; int
que se digita 999. Esse programa não tem Laço definido #include <bits/stdc++.h> using namespace std; int
que se digita 999. Esse programa não tem Laço definido #include <bits/stdc++.h> using namespace std; int
#include <bits/stdc++.h> using namespace std; int main() {
#include <bits/stdc++.h>
using namespace std;
int main()
{

int a; scanf("%d", &a); while (a != 999) { printf ( "a = %d\n" , a); scanf("%d", &a);

}

return 0;

10 a = 10 -5 a = -5 20 a = 20 999
10
a = 10
-5
a = -5
20
a = 20
999

}

{ printf ( "a = %d\n" , a); scanf("%d", &a); } return 0; 10 a =

33

O O que que é é flag flag • Flag é uma variável que permite

OO queque éé flagflag

Flag é uma variável que permite você assumir o verdadeiro ou falso de uma condição.

No caso o flag do programa anterior é quando a variável ‘a’ recebe o valor 999.

de uma condição. • No caso o flag do programa anterior é quando a variável ‘
de uma condição. • No caso o flag do programa anterior é quando a variável ‘
Exemplo Exemplo com com while while • Faça um programa que imprima os números inteiros

ExemploExemplo comcom whilewhile

Faça um programa que imprima os números inteiros de 10 a 15.

um programa que imprima os números inteiros de 10 a 15. Esse programa tem um laço
um programa que imprima os números inteiros de 10 a 15. Esse programa tem um laço

Esse programa tem um laço definido

inteiros de 10 a 15. Esse programa tem um laço definido #include <bits/stdc++.h> using namespace std;
inteiros de 10 a 15. Esse programa tem um laço definido #include <bits/stdc++.h> using namespace std;
inteiros de 10 a 15. Esse programa tem um laço definido #include <bits/stdc++.h> using namespace std;

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

{
{

int a; a = 10; while (a < 15) { printf ( "a = %d\n" , a); a++;

a = 10 a = 11 a = 12 a = 13 a = 14
a = 10
a = 11
a = 12
a = 13
a = 14

}

return 0;

}

= 10; while (a < 15) { printf ( "a = %d\n" , a); a++; a

35

Exemplo Exemplo com com while while • No exemplo anterior, tem-se: – Variável de controle

ExemploExemplo comcom whilewhile

No exemplo anterior, tem-se:

– Variável de controle da repetição: a

– Valor inicial da variável de controle: 10

– Variação da variável de controle: a = a + 1 (++(++ emem C/C++)C/C++)

– Condição de término da repetição: a ≥ 15

variável de controle: a = a + 1 (++ (++ em em C/C++) C/C++) – Condição
Do Do While While • Na estrutura do-while as instruções a serem repetidas são executadas

DoDo WhileWhile

Na estrutura do-while as instruções a serem repetidas são executadas pelo menos uma vez, pois o teste fica no fim da repetição, então a execução das instruções (que estão "dentro" da repetição) não depende do primeiro teste. Nesta estrutura, a repetição é finalizada quando o teste é Falso (F), ou seja, enquanto o teste for Verdadeiro (V) as instruções serão executadas e, quando for Falso, o laço é finalizado. Cuidado com o ponto e virgula após a condição.

do { blocos de comando; } while ( <condição> );

Cuidado com o ponto e virgula após a condição. do { blocos de comando; } while
Exemplo Exemplo com com while while • Faça um programa que leia e imprima vários

ExemploExemplo comcom whilewhile

Faça um programa que leia e imprima vários números inteiros até que se digita 999.

e imprima vários números inteiros até que se digita 999. Esse programa não tem Laço definido
e imprima vários números inteiros até que se digita 999. Esse programa não tem Laço definido

Esse programa não tem Laço definido

que se digita 999. Esse programa não tem Laço definido #include <bits/stdc++.h> using namespace std; int
que se digita 999. Esse programa não tem Laço definido #include <bits/stdc++.h> using namespace std; int
que se digita 999. Esse programa não tem Laço definido #include <bits/stdc++.h> using namespace std; int
#include <bits/stdc++.h> using namespace std; int main() {
#include <bits/stdc++.h>
using namespace std;
int main()
{

int a; do { scanf("%d", &a); printf ( "a = %d\n" , a); } while (a != 999); return 0;

}

10 a = 10 -5 a = -5 20 a = 20 999 a =
10
a = 10
-5
a = -5
20
a = 20
999
a = 999
printf ( "a = %d\n" , a); } while (a != 999); return 0; } 10

38

Exemplo Exemplo com com while while • Faça um programa que imprima os números inteiros

ExemploExemplo comcom whilewhile

Faça um programa que imprima os números inteiros de 10 a 15.

um programa que imprima os números inteiros de 10 a 15. Esse programa tem um laço
um programa que imprima os números inteiros de 10 a 15. Esse programa tem um laço

Esse programa tem um laço definido

inteiros de 10 a 15. Esse programa tem um laço definido #include <bits/stdc++.h> using namespace std;
inteiros de 10 a 15. Esse programa tem um laço definido #include <bits/stdc++.h> using namespace std;
inteiros de 10 a 15. Esse programa tem um laço definido #include <bits/stdc++.h> using namespace std;
inteiros de 10 a 15. Esse programa tem um laço definido #include <bits/stdc++.h> using namespace std;

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

{

 

int a;

a

= 10;

do { printf ( "a = %d\n" , a); a++;

while (a < 15); return 0;

}

}

a = 10 a = 11 a = 12 a = 13 a = 14
a = 10
a = 11
a = 12
a = 13
a = 14
( "a = %d\n" , a); a++; while (a < 15); return 0; } } a

39

For For • Na estrutura for as instruções começam com um valor da inicial para

ForFor

Na estrutura for as instruções começam com um valor da inicial para a variável, e encerra quando a condição for Falso (F). Isso é possível, pois coloca-se o passo que será dado apos ser verificada a condição.

for (<variavel> = condição inicial; <condição> ; <passo>) { blocos de comando;

}

for ( <variavel> = condição inicial ; <condição> ; <passo> ) { blocos de comando; }
Exemplo Exemplo com com while while • Faça um programa que leia e imprima vários

ExemploExemplo comcom whilewhile

Faça um programa que leia e imprima vários números inteiros até que se digita 999.

CUIDADO!!!CUIDADO!!! Pode-se usar o for como sendo o while #include <bits/stdc++.h> using namespace std; int
CUIDADO!!!CUIDADO!!!
Pode-se usar o for
como sendo o
while
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a;
scanf("%d", &a);
for ( ;a != 999; ) {
printf ( "a = %d\n" , a);
scanf("%d", &a);

}

return 0;

10 a = 10 -5 a = -5 20 a = 20 999
10
a = 10
-5
a = -5
20
a = 20
999

}

printf ( "a = %d\n" , a); scanf("%d", &a); } return 0; 10 a = 10
Exemplo Exemplo com com while while • Faça um programa que imprima os números inteiros

ExemploExemplo comcom whilewhile

Faça um programa que imprima os números inteiros de 10 a 15.

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

{

SimplificouSimplificou
SimplificouSimplificou

}

int a; for (a = 10; a < 15; a++) { printf ( "a = %d\n" , a);

}

return 0;

a = 10 a = 11 a = 12 a = 13 a = 14
a = 10
a = 11
a = 12
a = 13
a = 14
a; for (a = 10; a < 15; a++) { printf ( "a = %d\n" ,
Laços Laços infinito infinito #include <bits/stdc++.h> using namespace std; int main() { int a; a
Laços Laços infinito infinito #include <bits/stdc++.h> using namespace std; int main() { int a; a

LaçosLaços infinitoinfinito

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

{

int a; a = 0; while (1) { printf ( "a = %d\n" , a); a++;

}

return 0;

}

Não para o laço.
Não
para o
laço.
std; int main() { int a; a = 0; while (1) { printf ( "a =
Imprimindo Imprimindo números números impares impares #include <bits/stdc++.h> using namespace std; int main()

ImprimindoImprimindo númerosnúmeros imparesimpares

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

{

 

int i, n, m; scanf("%d %d", &n, &m); if (n % 2 == 0) n++; for (i = n; i <= m; i+=2) { printf("%d\n", i);

}

return 0;

}

23 32 23 25 27 29 31
23 32
23
25
27
29
31
24 33 25 27 29 31 33
24 33
25
27
29
31
33
m; i+=2) { printf("%d\n", i); } return 0; } 23 32 23 25 27 29 31
Contador Contador #include <bits/stdc++.h> using namespace std; int main() { int i, n, m, cont;

ContadorContador

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

{

int i, n, m, cont; scanf("%d %d", &n, &m); cont = 0; for (i = n; i <= m; i++) { cont++;

}

23 43 Entre 23 e 43 tem 21 numeros
23 43
Entre 23 e 43 tem 21 numeros

printf("Entre %d e %d tem %d numeros\n", n, m, cont);

return 0;

}

cont++; } 23 43 Entre 23 e 43 tem 21 numeros printf("Entre %d e %d tem
Somador Somador #include <bits/stdc++.h> using namespace std; int main() { 23 32 A soma de
Somador Somador #include <bits/stdc++.h> using namespace std; int main() { 23 32 A soma de

SomadorSomador

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

{

23 32 A soma de todos entre 23 e 32 da: 275
23 32
A soma de todos entre 23 e 32 da: 275

int i, n, m, soma; scanf("%d %d", &n, &m); soma = 0; for (i = n; i <= m; i++) { soma += i;

}

printf("A soma de todos "); printf("entre %d e %d da: %d\n", n, m, soma); return 0;

}

{ soma += i; } printf("A soma de todos "); printf("entre %d e %d da: %d\n",
Produtor Produtor ou ou Fatorial Fatorial #include <bits/stdc++.h> using namespace std; int main() { 12
Produtor Produtor ou ou Fatorial Fatorial #include <bits/stdc++.h> using namespace std; int main() { 12

ProdutorProdutor ouou FatorialFatorial

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

{

12 15 O produto de todos entre 12 e 15 da: 32760
12 15
O produto de todos entre 12 e 15 da: 32760

int i, n, m, fat; scanf("%d %d", &n, &m); fat = 1; for (i = n; i <= m; i++) { fat *= i;

}

printf("O produto de todos "); printf("entre %d e %d da: %d\n", n, m, fat); return 0;

}

{ fat *= i; } printf("O produto de todos "); printf("entre %d e %d da: %d\n",
Freopen Freopen • Alguns problemas nos faz ler os valores direto de arquivos e podem

FreopenFreopen

Alguns problemas nos faz ler os valores direto de arquivos e podem ser para entrada e saída. Uma solução fácil para isso é escrever o código normalmente usando fluxos padrão, mas adicionando o comando freopen, como a seguir:

freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout);

, como a seguir: freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); 48
Freopen Freopen • Alguns problemas nos faz ler os valores direto de arquivos e podem

FreopenFreopen

Alguns problemas nos faz ler os valores direto de arquivos e podem ser para entrada e saída. Uma solução fácil para isso é escrever o código normalmente usando fluxos padrão, mas adicionando o comando freopen, como a seguir:

freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout);

, como a seguir: freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); 49
Lendo Lendo dados dados do do arquivo arquivo #include <bits/stdc++.h> using namespace std; int main()

LendoLendo dadosdados dodo arquivoarquivo

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

{

int i, x; freopen("entrada.txt", "r", stdin); i = 0; while (scanf("%d", &x) != EOF)

{

printf("x = %d\n", x); i++;

}

Arquivo “entrada.txt” 12 5 7 8 16
Arquivo “entrada.txt”
12
5
7
8
16
x = 12 x = 5 x = 7 x = 8 x = 16
x
= 12
x
= 5
x
= 7
x
= 8
x
= 16
Foram impressos: 5 numero(s)

printf("Foram impressos: %d numero(s)\n", i); return 0;

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

LendoLendo dadosdados dodo arquivoarquivo

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

{

int i, x; freopen("entrada.txt", "r", stdin); i = 0; while (cin >> x)

{

printf("x = %d\n", x); i++;

}

Arquivo “entrada.txt” 12 5 7 8 16
Arquivo “entrada.txt”
12
5
7
8
16
x = 12 x = 5 x = 7 x = 8 x = 16
x
= 12
x
= 5
x
= 7
x
= 8
x
= 16
Foram impressos: 5 numero(s)

printf("Foram impressos: %d numero(s)\n", i); return 0;

Lendo Lendo dados dados do do arquivo arquivo Até Até um um valor valor de

LendoLendo dadosdados dodo arquivoarquivo AtéAté umum valorvalor dede paradaparada

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

{

int i, x; freopen("entrada.txt", "r", stdin); i = 0; while (scanf("%d", &x) != EOF)

{

if (x == 0) break; printf("x = %d\n", x); i++;

Arquivo “entrada.txt” 12 5 7 0
Arquivo “entrada.txt”
12
5
7
0
x = 12 x = 5 x = 7 Foram impressos: 3 numero(s)
x
= 12
x
= 5
x
= 7
Foram impressos: 3 numero(s)

}

printf("Foram impressos: %d numero(s)\n", i); return 0;

}

= 12 x = 5 x = 7 Foram impressos: 3 numero(s) } printf("Foram impressos: %d

52

Lendo Lendo dados dados do do arquivo arquivo Até Até um um valor valor de

LendoLendo dadosdados dodo arquivoarquivo AtéAté umum valorvalor dede paradaparada

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

{

int i, x; freopen("entrada.txt", "r", stdin); i = 0; while (cin >> x)

{

if (x == 0) break; printf("x = %d\n", x); i++;

Arquivo “entrada.txt” 12 5 7 0
Arquivo “entrada.txt”
12
5
7
0
x = 12 x = 5 x = 7 Foram impressos: 3 numero(s)
x
= 12
x
= 5
x
= 7
Foram impressos: 3 numero(s)

}

printf("Foram impressos: %d numero(s)\n", i); return 0;

}

= 12 x = 5 x = 7 Foram impressos: 3 numero(s) } printf("Foram impressos: %d

53

Obtendo Obtendo o o maior maior valor valor de de um um conjunto conjunto #include

ObtendoObtendo oo maiormaior valorvalor dede umum

conjuntoconjunto

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

{

const int INF = -0x3f3f3f3f; int i, x, n, maior;

freopen("entrada.txt", "r", stdin); scanf("%d", &n); maior = INF; for (i = 1; i <= n; i++)

{

scanf("%d", &x); if (maior < x) maior = x;

Arquivo “entrada.txt” 5 1 2 8 7 5
Arquivo “entrada.txt”
5
1 2 8 7 5
O maior valor eh: 8
O maior valor eh: 8

}

printf("O maior valor eh: %d\n", maior);

return 0;

Obtendo Obtendo o o menor menor valor valor de de um um conjunto conjunto #include

ObtendoObtendo oo menormenor valorvalor dede umum

conjuntoconjunto

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

{

const int INF = 0x3f3f3f3f; int i, x, n, menor;

freopen("entrada.txt", "r", stdin); scanf("%d", &n); menor = INF; for (i = 1; i <= n; i++)

{

scanf("%d", &x); if (menor > x) menor = x;

Arquivo “entrada.txt” 5 1 2 8 7 5
Arquivo “entrada.txt”
5
1 2 8 7 5
O menor valor eh: 1
O menor valor eh: 1

}

printf("O menor valor eh: %d\n", menor);

return 0;

ExercíciosExercícios

– URI 1059 a 1061, 1064 a 1067, 1070 a 1075, 1078 a 1080, 1094 a 1099, 1101, 1113 a 1118, 1131 a 1134, 1142 a 1146, 1149 a 1151, 1153 a 1160, 1164 a 1165, 1541, 1564, 1589, 1759, 1789, 1828, 1858, 1866, 1961, 1962, 1985, 2003, 2006, 2028, 2029, 2060, 2143, 2146, 2152, 2161, 2166, 2334, 2483, 2486, 2691.

1828, 1858, 1866, 1961, 1962, 1985, 2003, 2006, 2028, 2029, 2060, 2143, 2146, 2152, 2161, 2166,