Você está na página 1de 135

Curso de

Linguagem C

1
Em Construção

2
SOBRE MIM

Ensino online desde 2009.


Mais de 30 cursos produzidos, 250 mil alunos em 141 países.
Sistemas de Informação (UTFPR) e Técnico em Informática (TECPUC).
Co-fundador do Games Parati e Code How.
Fundador da One Day Code.
Autor do livro “Bem-vindo ao Game Design”
Trabalhei com Banco de Dados na HQS+, Sistemas Web e Aplicativos na
Agência PUC (Hotmilk).
Aplicativos lançados: Vestfoco, Save My Night, Hoby Box e Equilibrium.

3
COMPROMISSO DO ALUNO

1. Proatividade na hora de buscar por


soluções (Vou te desafiar!)
2. Aprender a aceitar alguns termos
ensinados para não cair num looping
infinito de conhecimento e perder o foco
do curso que é aprender programação.
3. Fazer exercícios e buscar exercícios na
internet, não ficar apenas observando.

4
LINGUAGEM C

1. A mais usada academicamente: em


qualquer faculdade grande ao redor do
mundo.
2. Grande otimização de memória: você
tem acesso a tudo em “baixo nível”,
próximo a linguagem da máquina.
3. Mãe das linguagens: a maioria das
grandes linguagens usadas atualmente
são filhas do C, como Java, C++ e C#.
5
Ambiente de
Desenvolvimento

6
IDE

“Ambiente de Desenvolvimento Integrado”


O programa de computador usado para escrever códigos.
Sugestões: Dev C++, Online GDB, Codeblocks, Visual Studio.
7
CODEBLOCKS

Se for trabalhar com o Codeblocks,


baixe a versão mingw-setup.exe que já vem
com o tudo que é necessário.
8
ONLINE GDB

Fuciona totalmente online e armazena seus arquivos na nuvem.


Muito bom para iniciantes ou quem está tendo problema com a instalação
e configuração da IDE no computador.
9
VISUAL STUDIO

É o mais pesado, porém o mais completo.


Na versão Comunidade, ele é gratuito.

10
IDE EXECUTÁVEL

programa
arquivo.c .exe

COMPILADOR

Traduz o código escrito na IDE por nós humanos, de uma forma que
a máquina e seus circuitos elétricos compreendam as instruções
e façam os cálculos necessários.
11
IDE COMPILADOR EXECUTÁVEL

programa
arquivo.c 010101010 .exe

CÓDIGO BÁSICO PARA TESTE


#include <stdio.h>
int main(){
printf("Oi mundo!");
return 0;
} 12
O que é
Computação?

13
COMPUTAÇÃO

Computar = Calcular segundo determinadas regras (Algoritmo).


Inputs = Valores de Entrada
Outputs = Valores de Saída
A partir de determinadas inputs, os dados são computados e geram outputs.
14
A B RESULTADO

10 + 20 = 30

EXEMPLO

Computar = juntar dois valores e retornar a soma deles.


Inputs: a=10 e b=20
Outputs: resultado=30
resultado = a + b; (resultado recebe a soma de a + b)
15
A B RESULTADO

10 + 20 = 30

ALGORITMO SOMA

Sequência de comandos executados em ordem para resolver um problema.


a = 10
b = 20
resultado = a + b
16
A B RESULTADO

10 + 20 = 30

VARIÁVEIS

Para que os valores sejam armazenados pelo computador


usamos as variáveis, que são pedaços da memória responsáveis
por guardar números, letras e palavras, como se fossem “caixas”.
No algoritmo de soma, as variáveis seriam a, b e resultado.
17
A B RESULTADO

10 + 20 = 30

TIPOS DE VARIÁVEIS
É preciso informar ao computador qual tipo de informação será armazenada nessas variáveis e
indicar onde o comando termina com “;” No exemplo são valores inteiros, então em C ficaria:
int a = 10;
int b = 20;
int resultado = a + b; 18
A B RESULTADO

10 + 20 = 30

TIPOS DE VARIÁVEIS

int inteiros
float números quebrados.
char letra
bool verdadeiro(1) ou falso(0).
19
A B RESULTADO

10 + 20 = 30

OPERAÇÕES MATEMÁTICAS

+ soma
- subtração
* multiplicação
/ divisão
20
A B RESULTADO

10 + 20 = 30

FUNÇÕES E BIBLIOTECAS
Conjunto de comandos para realizar uma função no código.
A função padrão do C que faz a IDE identificar por onde o código deve começar é a int main().
Outras funções padrões da linguagem como imprimir, ler valores e alocar memória ficam em
determinadas bibliotecas (Conjunto de Funções), que são incluídas no código com os
comandos: #include <stdio.h> e #include <stdlib.h> 21
Mão na Massa
Primeiro Código

22
FUNCIONAMENTO
Primeiramente foram adicionadas às
bibliotecas básicas do C com os
#includes.

Depois iniciamos a função int main()


E tudo que estiver dentro das {} será
executado.

As variáveis receberam valores, mas


nada foi impresso na tela ainda.
23
A B RESULTADO

10 + 20 = 30

IMPRIMIR DADOS NA TELA


Para imprimir dados na tela usamos a função printf()
Imprimir um texto: printf(“Oi”);
Imprimir um inteiro: printf(“%d”, nomeDaVariavel);
Imprimir um texto e uma variável: printf(“O valor: %d”, nomeDaVariavel);
Imprimir variáveis e textos: printf(“Os valores: %d e o outro %d”,nome1,nome2); 24
FUNCIONAMENTO
Agora a variável resultado que
contém a soma de a e b, será
impressa na tela, juntamente com a
palavra “Resultado:”.

25
A B RESULTADO

10 + 20 = 30

COMENTÁRIOS
Também é possível inserir comentários no código para lembrarmos o que cada linha faz.
Para isso, basta adicionar // e tudo que vier após, será ignorado pelo compilador.
Para comentar mais de uma linha, basta estar entre /* e */

26
FUNCIONAMENTO
Agora o resultado será impresso na
tela, juntamente com a palavra
“Resultado:”.

E os comentários ficam de outra cor,


apenas para melhorar a clareza para
quem estiver lendo seu código.

27
REVISÃO

Computar Calcular seguindo determinadas regras

Algoritmo Conjunto de comandos a serem seguidos em determinada ordem

IDE O programa de computador usado para escrever códigos.

Compilador Responsável por transformar o código escrito por humanos em 010101

Variável Parte reservada na memória do computador para armazenar valores

Input Um valor que entra no programa

Output Um valor que é retornado pelo programa

Função Um conjunto de comandos com determinada “função”

Biblioteca Conjunto de funções

28
Exercícios:
Operações
Matemáticas

29
SUA VEZ

FAÇA UM PROGRAMA QUE SOME 3 VALORES E MOSTRE O


RESULTADO NA TELA (RESPOSTA NO PRÓXIMO SLIDE).

30
FUNCIONAMENTO
Adicionei uma variável inteira c com
o valor 30 e depois adicionei ela na
soma da variável resultado.

31
SUA VEZ

FAÇA UM PROGRAMA QUE MOSTRE O RESULTADO DA DIVISÃO


ENTRE DOIS NÚMEROS INTEIROS
(RESPOSTA NO PRÓXIMO SLIDE).

32
FUNCIONAMENTO
Mudei o sinal de + pelo sinal de /
para fazer a operação de divisão.

33
SUA VEZ

FAÇA UM PROGRAMA QUE MOSTRE O RESULTADO DA


MULTIPLICAÇÃO ENTRE DOIS NÚMEROS QUEBRADOS
(DICA: PARA IMPRIMIR NÚMEROS QUEBRADOS USAMOS %f).

34
FUNCIONAMENTO
Mudei o tipo das variáveis para float,
atribuindo valores quebrados com o
ponto.

E o símbolo para multiplicação é o *.

35
SUA VEZ

FAÇA UM PROGRAMA QUE MOSTRE O RESULTADO DA DIVISÃO


ENTRE DOIS NÚMEROS QUEBRADOS
E MOSTRE APENAS 2 CASAS APÓS A VÍRGULA (PESQUISA)

36
FUNCIONAMENTO
Primeiro defino duas variáveis do
tipo float e depois uso a variável
resultado para armazenar o
resultado da divisão.

Ao imprimir, adicionei o %.2f o que


limita a quantidade de casas
decimais para 2 após a vírgula.

37
Como Ler
Valores

38
A B RESULTADO

? + ? = ?

LER VALORES

Os valores em um programa não precisam sempre ser definidos no código,


eles podem ser inseridos pelos usuários durante a execução do programa.

39
A B RESULTADO

? + ? = ?

LER VALORES
Para ler valores, precisamos definir variáveis e depois usar a função scanf(), usando o símbolo
& para indicar para a IDE que estamos falando de um endereço na memória do PC.

Lendo inteiros: Lendo números quebrados: Lendo uma letra:


int a; float a; char a;
scanf(“%d”, &a); scanf(“%f”, &a); scanf(“%c”, &a); 40
FUNCIONAMENTO
Primeiro defino duas variáveis.

Depois leio elas usando o comando


scanf() não esquecendo do & antes
do nome da variável.

Depois faço a soma e imprimo o


resultado na tela.

41
Exercícios:
Leitura de
Valores

42
SUA VEZ

FAÇA UM PROGRAMA QUE LEIA DOIS NÚMEROS INTEIROS


E IMPRIMA NA TELA O RESULTADO DA DIVISÃO DELES.

43
FUNCIONAMENTO
Para definir a e b usei o tipo int, pois
assim posso usar números inteiros.

Para dividir, usei o símbolo /.

44
SUA VEZ

FAÇA UM PROGRAMA QUE LEIA DOIS NÚMEROS QUEBRADOS


E IMPRIMA NA TELA O RESULTADO DA MULTIPLICAÇÃO DELES.

45
FUNCIONAMENTO
Para definir a e b usei o tipo float, pois
assim posso usar números quebrados.

No scanf() tive que usar %f por se tratar


de números do tipo float e para
representar a vírgula, usamos ponto,
como em: 5.0 e 2.5

Para multiplicar em vez de somar, usei o


símbolo *.
46
SUA VEZ

FAÇA UM PROGRAMA QUE LEIA DUAS LETRAS E IMPRIMA ELAS


NA TELA, UMA AO LADO DA OUTRA, DICA: IRÁ PRECISAR
LIMPAR O LEITOR COM O COMANDO fflush(stdin); NO
WINDOWS OU __fpurge(stdin); NO LINUX
APÓS LER O PRIMEIRO VALOR

47
FUNCIONAMENTO
Para definir a e b usei o tipo char, pois
assim posso usar letras.

Precisei limpar o buffer (memória


temporária usada para armazenar
valores) com o comando fflush(stdin);

Ao exibir os valores, basta colocar os %c


onde vão aparecer e depois usar
vírgulas entre as variáveis.
48
Condicionais
Simples

49
CONDICIONAIS

É muito comum que ao criar programas, dependendo da situação das variáveis,


o programa vá para um lugar ou então para outro a partir de uma condição.
Para criar essas condições, usamos o comando if(){}
Dentro dos parênteses temos uma condição e das chaves o código executado.
50
EXEMPLOS

Se idadeDeAlguem for maior que 18 anos, então é maior de idade.


se(idadeDeAlguem > 17), então é maior de idade
if (idadeDeAlguem > 17){
printf(“Maior de idade”);
} 51
EXEMPLOS
Também podemos executar outro código caso a condição analisada não seja cumprida
if (idadeDeAlguem > 17){
printf(“Maior de idade”);
}else{
printf(“Menor de idade”);
52
}
OPERADORES
== igual a
> maior que
< menor que
>= maior ou igual
<= menor ou igual 53
FUNCIONAMENTO
Defino uma variável idade para ser
lida pelo usuário.

Usando um if, analiso se a idade é


maior que 17 (Números iguais ou
maiores que 18), senão mostro que
é menor de idade.

*Também poderia ser if(idade >=18).

54
FUNCIONAMENTO
Também é possível adicionar outras
condições específicas, utilizando o
“else if”, e por último caso não entre
em nenhuma das condições,
podemos usar o “else” sozinho.

55
Exercícios:
Condicionais

56
SUA VEZ

FAÇA UM PROGRAMA QUE LEIA DOIS NÚMEROS INTEIROS


E IMPRIMA NA TELA SE A SOMA DELES É:
MAIOR/IGUAL A 10 OU MENOR QUE 10

57
FUNCIONAMENTO
Leio dois valores e adiciono-os numa
variável SOMA.

Então faço as comparações


diretamente com essa variável que é
resultado da soma.

Se é maior ou igual a 10 é o IF
Senão é o ELSE

58
SUA VEZ

FAÇA UM PROGRAMA QUE LEIA DOIS NÚMEROS INTEIROS


E IMPRIMA NA TELA QUAL É O MAIOR DELES OU SE SÃO IGUAIS

59
FUNCIONAMENTO
Se a > b, A é maior que B
Senão, se a < b, A é menor que B

Se não for nenhum dos casos, só


resta que os dois números são iguais.

60
SUA VEZ

FAÇA UM PROGRAMA QUE LEIA UM NÚMERO INTEIRO


E INFORME SE ELE É PAR OU NÃO
(PESQUISE SOBRE A OPERAÇÃO RESTO DE DIVISÃO QUE É O %)

61
FUNCIONAMENTO
Leio um valor e depois verifico numa
condicional.

Se o A dividido por 2 tiver resto 0,


quer dizer que o número é PAR.

Senão, o número será ÍMPAR.

62
Conectivos
Lógicos

63
CONECTIVOS LÓGICOS

Existem situações em que precisamos que mais de uma condição


seja satisfeita ao mesmo tempo, para algo acontecer.
Como por exemplo:
se condição 1 E condição 2 forem verdadeiras, então…
se condição 1 OU condição 2 forem verdadeiras, então... 64
CONECTIVOS LÓGICOS

Primeiro vamos entender o funcionamento do conectivo E, que em C é o &&


Ele é usado quando preciso que TODAS as condições dentro do IF sejam verdadeiras,
e só assim, o código será executado.
Se UMA das condições for FALSA, o código NÃO SERÁ EXECUTADO.
65
SE(PESSOA1 > 17 && PESSOA2 > 17)
OK
PESSOA1 PESSOA2

? ? PROBLEMA

EXEMPLO CONECTIVO E &&


Numa balada, se pessoa1 e pessoa2 forem maiores de idade,
então está tudo OK, senão, teremos problemas.

Neste caso, tanto pessoa1 quanto pessoa2 precisam ser maiores de idade.
Se qualquer uma delas não for maior de idade, TEREMOS PROBLEMAS. 66
SE(PESSOA1 > 17 && PESSOA2 > 17)
OK
PESSOA1 PESSOA2

? ? PROBLEMA

TABELA DA VERDADE -> E


PESSOA1 PESSOA2 RESULTADO PESSOA1 PESSOA2 RESULTADO
18 20 OK V V V
18 17 PROBLEMA V F F
17 17 PROBLEMA F F F
67
FUNCIONAMENTO
Só entra no bloco do IF se todas as
comparações forem verdadeiras.

PESSOA1 PESSOA2 RESULTADO


18 20 OK
18 17 PROBLEMA
17 17 PROBLEMA

68
CONECTIVOS LÓGICOS

Primeiro vamos entender o funcionamento do conectivo OU, que em C é o ||


Ele é usado quando preciso que PELO MENOS UMA das condições
dentro do IF sejam verdadeiras, e só assim, o código será executado.
O código NÃO SERÁ EXECUTADO apenas se
TODAS AS CONDIÇÕES FOREM FALSAS. 69
SE(PESSOA1 > 17 || PESSOA2 > 17)
OK
PESSOA1 PESSOA2

? ? PROBLEMA

EXEMPLO CONECTIVO OU ||
Num cinema, se pessoa1 OU pessoa2 for maior de idade,
então está tudo OK, senão, teremos problemas.

Neste caso, se pessoa1 OU pessoa2 tiver mais que 18 anos, uma será responsável
pela outra, então tudo OK, mas se nenhuma for TEREMOS PROBLEMAS. 70
SE(PESSOA1 > 17 || PESSOA2 > 17)
OK
PESSOA1 PESSOA2

? ? PROBLEMA

TABELA DA VERDADE -> OU


PESSOA1 PESSOA2 RESULTADO PESSOA1 PESSOA2 RESULTADO
18 20 OK V V V
18 17 OK V F V
17 17 PROBLEMA F F F
71
FUNCIONAMENTO
Entra no bloco do IF se pelo menos uma
das comparações forem verdadeiras.

PESSOA1 PESSOA2 RESULTADO


18 20 OK
18 17 OK
17 17 PROBLEMA

72
Exercícios:
Conectivo Lógico
&&

73
SUA VEZ

FAÇA UM PROGRAMA QUE LEIA UM NÚMERO INTEIRO


E IMPRIMA NA TELA SE ELE ESTÁ ENTRE 0 E 10

74
FUNCIONAMENTO
Leio um valor.

Se for maior que 0 e menor que 10, está


entre 0 e 10.

1,2,3,4,5,6,7,8 e 9.

75
SUA VEZ

FAÇA UM PROGRAMA QUE LEIA 3 NÚMEROS INTEIROS


E IMPRIMA NA TELA SE OS 3 SÃO MAIORES QUE 10

76
FUNCIONAMENTO
Leio 3 valores (neste exemplo li todos na
mesma linha).

Se todos forem maiores que 10, imprimo


a mensagem.

Se ao menos um for menor que 10, o if já


não executará, e sim o else.

77
Exercícios:
Conectivo Lógico
||

78
SUA VEZ

FAÇA UM PROGRAMA QUE LEIA 2 NÚMEROS INTEIROS


E IMPRIMA NA TELA SE ALGUM DELES FOR MAIOR QUE 10

79
FUNCIONAMENTO
Leio 2 valores.

Se ao menos um for maior que 10, o if já


será executado.

Se todos forem menores que 10, o else é


executado.

80
SUA VEZ
FAÇA UM PROGRAMA QUE LEIA 2 NÚMEROS INTEIROS
E IMPRIMA NA TELA SE ALGUM FOR PAR.
DICA: PARA SEPARAR OPERAÇÕES DE
COMPARAÇÃO, USE PARÊNTESES.

81
FUNCIONAMENTO
Leio 2 valores.

Separo as comparações de número par


usando parênteses e uso o || no meio.

82
Exercícios:
Conectivo Lógico
&& e ||

83
SUA VEZ

FAÇA UM PROGRAMA QUE LEIA 2 NÚMEROS INTEIROS


E IMPRIMA NA TELA SE A SOMA DELES ESTIVER ENTRE 0 E 10
OU SE A SOMA FOR PAR

84
TABELA DA VERDADE E TABELA DA VERDADE OU
PESSOA1 PESSOA2 RESULTADO PESSOA1 PESSOA2 RESULTADO
V V V V V V
V F F V F V
F V F F V V
F F F F F F

85
FUNCIONAMENTO
Leio 2 valores.

Usando a mesma lógica de separação


dos parênteses, separei a comparação do
número par.

86
Condicional
Switch Case

87
SWITCH CASE

Existem situações em que sempre será selecionada apenas uma condição, sendo impossível
duas acontecerem ao mesmo tempo.
Nesta situação que se assemelha a escolher uma opção de um “Menu”, é recomendado utilizar a
condicional SWITCH.
88
FUNCIONAMENTO
Apresento o menu e cada número de
opção dará um resultado diferente.

Leio a opção escolhida na variável


opcao.

Faço um switch() da variável opcao e


imprimo uma mensagem diferente para
cada um dos case.

O código será executado de acordo com


a opção, até o comando break;
89
FUNCIONAMENTO
Também podemos adicionar a opção
default: para casos em que nenhuma
das opções previstas em case sejam
selecionadas.

90
FUNCIONAMENTO
Também podemos adicionar a opção
default: para casos em que nenhuma
das opções previstas em case sejam
selecionadas.

91
FUNCIONAMENTO
Caso vá analisar variáveis do tipo char,
então será preciso usar aspas simples
para separar as opções possíveis de
letras.

92
Exercícios:
Switch Case

93
SUA VEZ

FAÇA UM PROGRAMA DE CALCULADORA, QUE LEIA DOIS


VALORES E MOSTRE AS OPÇÕES DE SOMAR OU SUBTRAIR.
APÓS SELECIONAR A OPÇÃO, O RESULTADO SERÁ MOSTRADO
NA TELA, BASEADO EM UM SWITCH.

94
FUNCIONAMENTO
Primeiro defino das variáveis que irei
utilizar: a, b, opcao e resultado.

Apresento o menu com as opções e leio


qual operação o usuário deseja fazer.

De acordo com a opção, dentro do


switch eu atualizo o resultado de acordo
com a operação escolhida.

Por fim, imprimo o resultado final

95
Gerar Número
Aleatório

96
GERAR NÚMERO ALEATÓRIO

Para gerar um número aleatório, é preciso usar duas bibliotecas específicas do C:


#include <stdlib.h>
#include <time.h>

97
FUNCIONAMENTO
Primeiro adicionamos as bibliotecas
corretas.

Para que um número seja sempre


“aleatório” é preciso primeiramente
iniciar uma semente baseada no tempo
atual do computador em milissegundos.

Para gerar um aleatório, usamos a


função rand() e extraímos o resto da
divisão daquele número por algum
valor.
98
FUNCIONAMENTO
Exemplos:
1000 / 10 = 100 (Resto 0)
1005 / 10 = 100 (Resto 5)
1009 / 10 = 100 (Resto 9)

O maior resto de divisão possível de


qualquer número dividido por 10 vai
ser 9 e o menor são os próprios
múltiplos de 10, ou seja resto 0.

Logo, os valores ficarão entre 0 e 9

99
FUNCIONAMENTO
Seguindo a lógica de que ao usar
rand() % ALGUMVALOR gera valores
entre 0 e (ALGUMVALOR-1), podemos
trabalhar com intervalos específicos ao
adicionar algum valor na operação ao
final dela.

Desta forma, o valor mínimo da


operação vai ser esse último valor(valor
mínimo), pois ele irá receber uma soma
de um valor aleatório gerado.

100
FUNCIONAMENTO
Também podemos simplificar a
nomenclatura para não confundirmos,
usando uma variável para
VALOR_MAXIMO e uma para
VALOR_MINIMO aplicando da seguinte
forma:

(rand() % (MAXIMO -MINIMO + 1)) + MINIMO

101
Exercícios:
Aleatório

102
SUA VEZ

FAÇA UM PROGRAMA QUE JOGA 3 DADOS (DE SEIS LADOS)


ALEATÓRIOS E EXIBE O RESULTADO DA SOMA DOS 3 VALORES
GERADOS NA TELA

103
FUNCIONAMENTO
Para gerar números de 1 a 7 uso o
código: (rand() % 6) + 1;
Pois será o resto da divisão do número
aleatório gerado por 7 (Gerando algo
entre 0 e 5.

Se adicionar 1 em qualquer resultado


entre 0 e 5, ficamos com o intervalo entre
1 e 6.

104
Laços de
Repetição (While)

10
LAÇO DE REPETIÇÃO WHILE

É muito comum que em programação existem situações em que precisamos repetir alguma
funcionalidade várias vezes seguidas.
Para evitar de ter que ficar reescrevendo um código ou fazendo tudo manualmente, podemos
utilizar um LAÇO DE REPETIÇÃO.
106
LAÇO DE REPETIÇÃO WHILE

Vamos começar estudando o laço de repetição ENQUANTO, que em C é chamado de WHILE.


Ele funciona da seguinte forma:
ENQUANTO(DETERMINADA COMPARAÇÃO FOR VERDADEIRA) EXECUTE{
FAÇA ALGUMA COISA;
} 107
FUNCIONAMENTO
Para imprimir valores de 0 a 10, inicializo
uma variável, que por padrão
chamamos de i (Iterador) com 0.

Enquanto ela for menor ou igual a 10, eu


imprimo o valor na tela e pulo uma linha.

Após, eu faço um incremento,


adicionando 1 ao valor atual de i.

Depois executo tudo novamente até que i


não seja mais <= a 10.
108
FUNCIONAMENTO
Também é possível resumir a operação de
incremento que era:

i = i + 1;

em

i += 1;

109
FUNCIONAMENTO
Também é possível resumir fazer
operações de incremento com quaisquer
outros valores, como por exemplo de 3
em 3.

Assim como adicionar qualquer outro tipo


de código como condicionais, operações
matemáticas ou menus dentro de um
while.

110
Laços de Repetição
While - Parte 2

111
FUNCIONAMENTO
Também é possível fazer operações de
decremento , fazendo o número diminuir
ao longo do código

i = i - 1;

ou

i -= 1;

112
FUNCIONAMENTO
Uma das maiores utilidades do while é
para executar comandos até que um
valor específico seja digitado, para
continuar com o programa.

Por exemplo um programa que lê valores,


até que o valor informado seja 10.

Isso é chamado de validação de dados.

113
FUNCIONAMENTO
Uma das maiores utilidades do while é
para executar comandos até que um valor
específico seja digitado, para continuar
com o programa.

Por exemplo um programa que lê valores,


até que o valor informado seja maior
que 10.

Isso é chamado de validação de dados.

114
FUNCIONAMENTO
Também é possível fazer validação de
dados com mais de 1 valor.

No caso os dois valores precisam ser


maiores que 10.

115
FUNCIONAMENTO
Outra forma de fazer o while é usando a
comparação no final.

A diferença, é que neste caso o código


sempre será executado ao menos uma
vez.

Só depois, é feita a comparação e


verificar se precisará ser executado
novamente.

116
Exercícios:
While

117
SUA VEZ

FAÇA UM PROGRAMA QUE IMPRIMA


DE 50 ATÉ 0, DIMINUINDO DE 6 EM 6

118
FUNCIONAMENTO
Inicio a variável com 50 e reduzo de 6 em 6
com o decremento do i.

119
SUA VEZ

FAÇA UM PROGRAMA QUE IMPRIMA


OS NÚMEROS PARES DE 10 ATÉ UM NÚMERO
INFORMADO PELO USUÁRIO

120
FUNCIONAMENTO
Inicio a variável i com 10 e leio o valor
máximo que o usuário digita.

Depois no while faço a comparação de i


com esse valor máximo.

Dentro do while comparo se o valor atual


de i é par, se for imprimo, senão continua
o código.

121
SUA VEZ

FAÇA UM PROGRAMA QUE MOSTRE A SOMA DE


DOIS NÚMEROS ENTRE 5 E 10, APENAS QUANDO OS
DOIS NÚMEROS DIGITADOS ESTIVEREM NO INTERVALO.

122
FUNCIONAMENTO
Neste caso tive que verificar o contrário de
estar entre 5 e 10 para entrar no while,
pois senão, o programa não executaria na
primeira vez.

Enquanto(NÃO(a estiver entre 5 e 10) OU


NÃO(b estiver entre 5 e 10))

Ou seja, enquanto UM DOS VALORES NÃO


ESTIVER ENTRE 5 E 10, peço para digitar
de novo.

123
Laços de
Repetição (For)

12
LAÇO DE REPETIÇÃO FOR

Outra forma de fazer laços de repetição é através do laço FOR, em que temos controle de uma
variável contadora (geralmente chamada de i) e de quantos em quantos passos ela aumenta ou
diminui, tudo diretamente em uma linha apenas.

125
LAÇO DE REPETIÇÃO FOR

Fazer um laço de repetição rodar 10 vezes:

PARA(i = 0; i MENOR QUE 10; AUMENTA 1 i POR REPETIÇÃO){}


for(i = 0; i < 10; i++){}
126
FUNCIONAMENTO
Para imprimir valores de 0 a 10, inicializo
uma variável, que por padrão
chamamos de i (Iterador) com 0.

Enquanto ela for menor ou igual a 10, eu


imprimo o valor na tela e pulo uma linha.

Após, eu faço um incremento,


adicionando 1 ao valor atual de i.

Depois executo tudo novamente até que i


não seja mais <= a 10.
127
FUNCIONAMENTO
Também posso inicializar a variável i
com qualquer outro valor.

Posso fazer qualquer comparação do i


com outro valor (igual fazemos com o
while ou com o if).

Também posso usar qualquer tipo de


incremento de i, caso queira modificar o
i++.

128
Exercícios:
For

129
SUA VEZ

FAÇA UM PROGRAMA QUE MOSTRE A SOMA DE


TODOS OS NÚMEROS DE 0 A 10, ADICIONANDO O VALOR ATUAL
DE I NUMA VARIÁVEL SOMA, A CADA REPETIÇÃO DO LAÇO FOR

130
FUNCIONAMENTO
Usei uma variável soma que recebe o
valor dela mesma + o valor i a cada vez
que o laço de repetição acontece.

Além disso mandei imprimir na tela o


valor atual da soma ao final de cada
laço de repetição.

131
SUA VEZ

FAÇA UM PROGRAMA QUE MOSTRE A TABUADA


DE UM NÚMERO INFORMADO PELO USUÁRIO

132
FUNCIONAMENTO
Leio o número desejado na variável
tabuada.

Faço um for de 1 até 10 e imprimo na tela


os valores atuais de cada, sendo que o
resultado é tabuada * valor atual de i.

133
SUA VEZ

FAÇA UM PROGRAMA EM QUE O USUÁRIO INFORME


VALOR INICIAL, VALOR FINAL E DE QUANTO EM QUANTO O VALOR
DE I SERÁ MODIFICADO E IMPRIMA TODOS OS VALORES NO
INTERVALO INFORMADO COM OS PASSOS INFORMADOS

134
FUNCIONAMENTO
Todos os valores são inseridos pelo
jogador.

Depois cada um dos valores assume


uma posição dentro do laço de repetição
do for.

135

Você também pode gostar