introdução à lógica e à programação visualintrodução à

185
Introdução à Lógica e à Programação Visual Introdução à Lógica Fundamentos Matemáticos para a Computação Introdução à Programação Visual

Upload: others

Post on 18-Jul-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução à Lógica e à Programação VisualIntrodução à

Introdução à Lógica e à Programação VisualIntrodução à Lógica e à Programação Visual

Introdução à LógicaFundamentos Matemáticos para a Computação

Introdução à Programação Visual

Page 2: Introdução à Lógica e à Programação VisualIntrodução à
Page 3: Introdução à Lógica e à Programação VisualIntrodução à

P. C

EXPEDIENTE

GOVERNO DO ESTADO DO CEARÁ

Camilo Sobreira de SantanaGovernador

Maria Izolda Cela de Arruda CoelhoVice-Governadora

SECRETARIA DA EDUCAÇÃO

Eliana Nunes EstrelaSecretária da Educação

Maria Jucineide da Costa FernandesSecretária Executiva de Ensino Médio e Profissional

Gezenira Rodrigues da SilvaCoordenadora de Educação em Tempo Integral

Ana Gardennya Linard Sírio OliveiraAssessora Especial de Gabinete da Seduc e Coordenadora Acadêmica do Projeto

Maria Elizabete de AraújoAssessora Especial de Gabinete

Julianna da Silva SampaioCoordenadora de Comunicação

PROGRAMA CIENTISTA CHEFE/UNIVERSIDADE FEDERAL DO CEARÁ

José Cândido Lustosa Bittencourt de AlbuquerqueReitor da UFC

Jorge Herbert Soares de LiraCientista Chefe da Educação

Joaquim Bento Cavalcante NetoCoordenador Acadêmico - UFC

Autores:

José Maria da Silva Monteiro FilhoMara Franklin BonatesEder Jacques Porfírio FariasJoaquim Bento Cavalcante NetoJorge Herbert Soares de LiraAna Gardennya Linard Sírio Oliveira

Page 4: Introdução à Lógica e à Programação VisualIntrodução à

Dados Internacionais de Catalogação na Publicação (CIP)

I61 Introdução à Lógica e à Programação Visual [recurso eletrônico] /Jorge Herbert Soares de Lira, Joaquim Bento Cavalcante Neto,

Ana Gardennya Linard Sírio Oliveira, (orgs.).- Fortaleza: Ed. JorgeHerbert Soares de Lira, 2021.

Livro eletrônico v.1ISBN 978-65-00-36622-8 (E-book)

1. Lógica. 2. Matemática. 3. Programação visual. I. Lira, JorgeHerbert Soares de, org. II. Cavalcante Neto, Joaquim Bento, org.III. Oliveira, Ana Gardennya Linard Sírio, org. IV. Título.

CDD: 511.3

Page 5: Introdução à Lógica e à Programação VisualIntrodução à

P. E SUMÁRIO

|Sumário

1 Introdução à Lógica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1 Introdução à Lógica Proposicional 11.2 Operadores Lógicos 71.2.1 Negação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.2.2 Conjunção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2.3 Disjunção Inclusiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2.4 Disjunção Exclusiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2.5 Condicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.2.6 Bicondicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3 Utilizando Planilhas para Representar os Operadores Lógicos 151.3.1 Implementando a Negação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.3.2 Implementando a Conjunção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.3.3 Implementando a Disjunção Inclusiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.3.4 Implementando a Disjunção Exclusiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.3.5 Implementando o Operador Condicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.3.6 Implementando o Operador Bicondicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.4 Precedência dos Operadores Lógicos 181.5 Fórmulas Bem-formadas 191.6 Tabela-verdade 201.7 Tautologia, Contradição e Contingência 241.7.1 Tautologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.7.2 Contradição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261.7.3 Contingência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

1.8 Implicação e Equivalência Lógica 301.9 Exercícios Propostos sobre Lógica Proposicional 321.10 Raciocínio Lógico-Dedutivo 391.11 Formação de Padrões e Sequências 451.12 Jogos Lógicos 511.13 Exercícios Propostos sobre Jogos Lógicos 54

2 Fundamentos Matemáticos para a Computação . . . . . . . . . . . . 59

2.1 Expressões Aritméticas 592.2 Aritmética Modular 612.3 Equações e Inequações de Primeiro Grau 642.3.1 Equações de Primeiro Grau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642.3.2 Inequações de Primeiro Grau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

2.4 Equações e Inequações do Segundo Grau 692.4.1 Solucionando Equações do Tipo ax2 + c = 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702.4.2 Solucionando Equações do Tipo ax2 + bx = 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702.4.3 Solucionando Equações do Tipo ax2 + bx + c = 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Page 6: Introdução à Lógica e à Programação VisualIntrodução à

SUMÁRIO P. F

2.5 Introdução a Funções 772.5.1 Definição de Função Através de Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782.5.2 Tipos de Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

2.6 Introdução à Combinatória 902.6.1 Diagrama de Árvore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902.6.2 Princípio Fundamental da Contagem (PFC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912.6.3 Arranjo Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942.6.4 Arranjo com Repetição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942.6.5 Permutação Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952.6.6 Permutação com Repetição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 962.6.7 Combinação Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

2.7 Introdução à Probabilidade 1012.7.1 Probabilidade de Dois Eventos Sucessivos ou Simultâneos . . . . . . . . . . . . . . . . . . 104

2.8 Sistemas de Numeração 1062.8.1 Sistema Decimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072.8.2 Sistema Binário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1092.8.3 Sistema Hexadecimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

3 Introdução à Programação Visual . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

3.1 Conceitos de Hardware e Software 1153.1.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1153.1.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

3.2 Noções de Algoritmos 1223.2.1 Formas de Representação de Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1303.2.2 Estruturas para a Construção de Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1313.2.3 Sequenciação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1313.2.4 Decisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1333.2.5 Repetição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

3.3 Elementos e Comandos Básicos de um Algoritmo 1463.3.1 Variáveis e Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1473.3.2 Comandos de Entrada e Saída . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1563.3.3 Expressões Aritméticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1583.3.4 Operadores Relacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1603.3.5 Expressões Lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

3.4 Introdução à Programação Visual 1683.4.1 Noções Básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1683.4.2 Exemplos de aplicações simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1713.4.3 Blocos de Instruções para Estruturas de Decisão . . . . . . . . . . . . . . . . . . . . . . . . . 1753.4.4 Blocos de Instruções para Estruturas de Repetição . . . . . . . . . . . . . . . . . . . . . . . 1763.4.5 Interatividade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1773.4.6 Tratamento de Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

Page 7: Introdução à Lógica e à Programação VisualIntrodução à

P. 1

1 |Introdução à Lógica

A finalidade deste capítulo é servir de apoio a estudantes do ensino médio que desejem estudaros fundamentos da lógica matemática com o objetivo de aplicá-la na construção de soluçõescomputacionais para os mais diversos problemas. O domínio da lógica matemática ajuda aorganizar nossos pensamentos, encadeando as ideias de forma coerente, facilitando a resolução deproblemas. Além disso, a lógica nos ajuda a argumentar corretamente e chegar em conclusõesconfiáveis. A lógica é um dos pilares do pensamento computacional. Na computação, a lógicapode ser utilizada para conceber circuitos lógicos (que são os componentes mais básicos de umcomputador), representar o conhecimento, criar programas (soluções computacionais), além devalidar e corrigir programas. E aí? Vamos iniciar nossa aventura pelo fantástico mundo da lógica?É logico que sim!

1.1 – Introdução à Lógica Proposicional

Todos nós estamos bastante acostumados a utilizar as palavras “lógico” e “ilógico”. Frequentementefalamos de comportamento “lógico” em contraste com um comportamento “ilógico”. De formasemelhante, utilizamos também os termos procedimento “lógico” e explicação “lógica”. Em todosesses casos, a palavra “lógico” é utilizada com o sentido de “razoável”, “coerente” ou “racional”.Neste sentido, esta utilização prática dos termos “lógico” e “ilógico” deriva do conceito formal de“lógica”.

A lógica é o estudo do raciocínio e do conhecimento. Assim, a lógica trata do estudo dosmétodos e princípios usados para distinguir o raciocínio correto do incorreto. Entende-se aquipor raciocínio o processo de argumentação pelo qual se chega a uma conclusão a partir de certosdados. Assim, podemos entender o ato de raciocinar como um processo de derivação de novosconhecimentos a partir de conhecimentos antigos. Portanto, a lógica pode ser definida como aanálise crítica do processos de argumentação, discutindo se estes são válidos ou não. Porém,não cabe à lógica julgar se uma determinada afirmação é verdadeira ou falsa, mas julgar osargumentos, ou seja, o processo de argumentação. A seguir, apresentamos um exemplo de umraciocínio (ou argumentação): Exemplo 1.1 Exemplo de um raciocínio ou argumentação:

• O Caramelo (o terror dos motoqueiros) é um cachorro.• Todos os cachorros são mamíferos.• Logo, o Caramelo é um mamífero.

Exemplo 1.2 Vamos ver mais um exemplo de um raciocínio ou argumentação:

• Seu Mané ainda paga suas contas por boleto.• Quem paga conta por boleto é cringe.• Logo, Seu Mané é cringe.

Exemplo 1.3 Vamos ver um terceiro exemplo de um raciocínio ou argumentação:

• Quem curte Free Fire é gamer raiz.• Enzo é muito fan de Free Fire.• Logo, Enzo é gamer raiz.

Page 8: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.1 P. 2

A lógica proposicional se baseia em um mundo binário ou bivalente, onde os conhecimentossão representados por sentenças que só podem assumir dois valores: verdadeiro ou falso. Nestesentido, a lógica proposicional adota uma visão simplificada do mundo. A lógica proposicional éconstruída a partir do conceito de “proposição”.

Definição 1.1.1 Uma proposição é uma sentença declarativa que pode ser julgada comoverdadeira (V) ou falsa (F).

A seguir, ilustramos alguns exemplos de proposições. Exemplo 1.4 Exemplos de proposições:

• O Caramelo (o terror dos motoqueiros) é um cachorro.• Todos os cachorros são mamíferos.• Pelé é melhor que Messi.• Cuscuz é melhor que muita gente.• Está chovendo.• 2 é maior que 3.• 2 > 3.• 2 não é menor ou igual a 3.• 2 3.• 5 é diferente de 7.• 5 6= 7.• Os divisores de 3 são 1 e ele mesmo.• 3 é primo.• 2 divide 5.• O resto da divisão de 10 por 3 é 1.• 10 mod 3 = 1.• Verdade• Falso

Observe que podemos atribuir um valor verdadeiro ou falso a cada uma dessas proposições.Note ainda que as duas últimas proposições são constantes. Por estes motivo, elas são chamadasde proposições constantes.

De maneira geral, não são proposições as sentenças imperativas, interrogativas ou exclamativas.Vejamos alguns exemplos. Exemplo 1.5 Exemplos de sentenças que NÃO são proposições:

• Feche a porta!• Será que vai chover amanhã?• Vixe!

Observe que NÃO é possível atribuir um valor verdadeiro ou falso a cada uma dessassentenças.

Observe ainda os seguintes exemplos: Exemplo 1.6 Exemplos de sentenças que NÃO são proposições:

• x > 3.• x 6= 5.• x é primo.• x divide y.

Observe que não podemos decidir se as sentenças anteriores são verdadeiras ou falsas. Averdade ou falsificação das sentenças acima depende dos valores das variáveis (x e y).

Page 9: Introdução à Lógica e à Programação VisualIntrodução à

P. 3 Seção 1.1

Agora que temos bem definido o que é uma proposição podemos classificá-las em simples(atômicas) ou compostas (moleculares).

Definição 1.1.2 Uma proposição é dita simples ou atômica quando ela não contém emsua estrutura nenhuma outra proposição. Assim, as proposições simples constituem a unidademínima da lógica proposicional.

A seguir, ilustramos alguns exemplos de proposições simples ou atômicas. Exemplo 1.7 Exemplos de proposições simples ou atômicas:

• O Caramelo (o terror dos motoqueiros) é um cachorro.• Todos os cachorros são mamíferos.• Pelé é melhor que Messi.• Cuscuz é melhor que muita gente.• Está chovendo.

Definição 1.1.3 Uma proposição é dita composta ou molecular quando ela é formada pormais de uma proposição. Assim, uma proposição composta possui como parte integrante de simesma pelo menos uma outra proposição.

A seguir, ilustramos alguns exemplos de proposições compostas ou moleculares. Exemplo 1.8 Exemplos de proposições compostas ou moleculares:

• O número 2 é par e primo.• Um número natural primo é divisível apenas por 1 e por ele mesmo.• Pelé é melhor que Messi e Maradona.• Faz frio hoje e chove lá fora.

Como mencionamos anteriormente, a lógica não está interessada em julgar se uma determinadaproposição é verdadeira ou falsa, mas em verificar se o raciocínio (a argumentação) é correto ounão. Neste sentido, comumente substituímos as proposições por letras do alfabeto. Vamos verum exemplo: Exemplo 1.9 Traduzindo uma proposição composta para a linguagem da lógica:

• O número 2 é par E o número 2 é primo.• p: O número 2 é par.• q: O número 2 é primo.• Simbolicamente, temos: p E q.

ObsEm geral, representa-se as proposições simples por letras minúsculas e as proposiçõescompostas por letras maiúsculas.

Agora, vamos exercitar um pouco os conceitos discutidos até aqui.

Problema 1 Verifique se as expressões a seguir são proposições. Justifique sua resposta.

(a) Boa sorte!(b) Márcio não é irmão do Mário.(c) Maria é rapper.(d) Qual a maior torcida organizada do nordeste?(e) Cuscuz é bom tanto com ovo quanto com carne moída.

Page 10: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.1 P. 4

Solução. Verifique se as expressões a seguir são proposições. Justifique sua resposta.

(a) Boa sorte! Não é uma proposição pois não podemos atribuir um valor verdadeiro (V) oufalso (F).

(b) Márcio não é irmão do Mário. É uma proposição pois podemos atribuir um valor verdadeiro(V) ou falso (F).

(c) Maria é rapper. É uma proposição pois podemos atribuir um valor verdadeiro (V) ou falso(F).

(d) Qual a maior torcida organizada do nordeste? Não é uma proposição pois não podemosatribuir um valor verdadeiro (V) ou falso (F).

(e) Cuscuz é bom tanto com ovo quanto com carne moída. É uma proposição pois podemosatribuir um valor verdadeiro (V) ou falso (F).

A lógica matemática adota como regras fundamentais do pensamento os dois seguintesprincípios ou axiomas.

Definição 1.1.4 Princípio da não contradição: uma proposição não pode ser verdadeira efalsa ao mesmo tempo.

Definição 1.1.5 Princípio do terceiro excluído: toda proposição ou é verdadeira ou é falsa,isto é, verifica-se sempre um desses dois casos, mas nunca um terceiro.

De acordo com esses dois princípios, podemos afirmar que toda proposição admite um esomente um dos valores: verdadeiro (V) ou falso (F).

Agora, vamos definir o conceito de valor lógico.Definição 1.1.6 O valor de uma proposição é chamado valor lógico. Os valores lógicospossíveis para uma proposição qualquer são: verdadeiro (V) e falso (F).

ObsNotação: Seja p uma proposição qualquer, V(p) indica o valor lógico da proposição p.Assim, se a proposição p for verdadeira, V(p) = V; se a proposição p for falsa, V(p) = F.

Exemplo 1.10 Exemplos de valores lógicos:

• p: O Sol é verde. V(p) = F.• q: A terra é plana. V(q) = F.• r: Um hexágono tem seis lados. V(r) = V.

Finalmente, podemos definir o conceito de tabela-verdade.Definição 1.1.7 Tabela-verdade é uma maneira prática de dispor organizadamente os valoreslógicos envolvidos em uma proposição.

Para uma proposição simples p, teremos a tabela-verdade ilustrada na Tabela 1.1.

pVF

Tabela 1.1: Tabela-verdade para uma Proposição Simples p.

Page 11: Introdução à Lógica e à Programação VisualIntrodução à

P. 5 Seção 1.1

Para proposições compostas, veremos que o número dos componentes simples determina onúmero de linhas das tabelas-verdade. Inicialmente, vamos construir as tabelas-verdade dispondotodas as possibilidades de valores lógicos das proposições componentes.

Para uma proposição composta P formada por duas proposições simples p e q, teremos atabela-verdade ilustrada na Tabela 1.2.

p qV VV FF VF F

Tabela 1.2: Tabela-verdade para uma Proposição Composta P formada por duas ProposiçõesSimples p e q.

Para uma proposição composta P formada por três proposições simples p, q e r, teremos atabela-verdade ilustrada na Tabela 1.3.

p q rV V VV V FV F VV F FF V VF V FF F VF F F

Tabela 1.3: Tabela-verdade para uma Proposição Composta P formada por três ProposiçõesSimples p, q e r.

Teorema 1.1 O número de linhas distintas de uma tabela-verdade é dado por 2n, onde n énúmero de proposições simples componentes e 2 representa o número de valores lógicos possíveis(V ou F).

Problema 2 Atribua o valor lógico verdadeiro (V) ou falso (F) nas sentenças que são proposiçõese marque um X quando a sentença não for uma proposição:

(a) Salvador é a capital da Bahia ( )(b) Que ódio! ( )(c) Todos os animais são mamíferos ( )(d) Marróia!(e) Mercúrio não é um planeta do sistema solar( )(f) Pitágoras foi um grande matemático ( )(g) Qual é o seu nome? ( )(h) As nuvens são feitas de algodão ( )

Page 12: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.1 P. 6

Solução. Atribua o valor lógico verdadeiro (V) ou falso (F) nas sentenças que são proposiçõese marque um X quando a sentença não for uma proposição:

(a) Salvador é a capital da Bahia ( V )(b) Que ódio! ( X )(c) Todos os animais são mamíferos ( F )(d) Marróia! ( X )(e) Mercúrio não é um planeta do sistema solar( F )(f) Pitágoras foi um grande matemático ( V )(g) Qual é o seu nome? ( X )(h) As nuvens são feitas de algodão ( F )

Problema 3 — FCC/ICMS-SP. Das cinco frases a seguir, quatro delas têm uma mesma caracte-rística lógica em comum, enquanto uma delas não tem essa característica.

I 2021 não é um ano bissexto.II A quinta parte de 6 dezenas é igual a 12.III Leia o próximo item.IV Existe um número inteiro e não racional.V Todos os escritores são poetas.

A frase que não possui essa característica é:

(a) I.(b) II.(c) III.(d) IV.(e) V.

Problema 4 — CESPE 2008. Uma proposição é uma sentença afirmativa ou negativa que podeser julgada como verdadeira (V) ou falsa (F), mas não como ambas.

Nesse sentido, considere o seguinte diálogo:

(1) Você sabe dividir? — perguntou Ana.(2) Claro que sei! — respondeu Mauro.(3) Então, qual é o resto da divisão de onze milhares, onze centenas e onze por três? —

perguntou Ana.(4) O resto é dois. — respondeu Mauro, após fazer a conta.(5) Está errado! Você não sabe dividir. — respondeu Ana.

A partir das informações e do diálogo acima, julgue os itens que se seguem.

(a) A frase indicada por (3) não é uma proposição.(b) A sentença (5) é falsa.(c) A frase (2) é uma proposição.

Page 13: Introdução à Lógica e à Programação VisualIntrodução à

P. 7 Seção 1.2

1.2 – Operadores Lógicos

Na seção anterior, vimos que uma proposição composta é formada por mais de uma proposição.Vamos relembrar alguns exemplos de proposições compostas. Exemplo 1.11 Exemplos de proposições compostas:

• O número 2 é par e primo.• Um número natural primo é divisível apenas por 1 e por ele mesmo.• Pelé é melhor que Messi e Maradona.• Faz frio hoje e chove lá fora.• Ou te darei um beijo, ou te darei um cheiro.

Observe que nesses exemplos de proposições compostas utilizamos palavras explícitas ounão para interligar as frases (o que definimos como sendo proposições). Essas palavras serãosubstituídas por símbolos denominados operadores ou conectivos lógicos, uma vez que na ló-gica matemática não há espaço para ambiguidades. Vejamos como podemos reescrever essasproposições compostas destacando os operadores lógicos que conectam as proposições simples. Exemplo 1.12 Exemplos de proposições compostas destacando os operadores (conectivos)lógicos:

• O número 2 é par E o número 2 é primo.• Um número natural primo é divisível apenas por 1 E por ele mesmo.• Pelé é melhor que Messi E Pelé é melhor que Maradona.• Faz frio hoje E chove lá fora.• Te darei um beijo OU te darei um cheiro.

A lógica proposicional possui ao todo seis (6) operadores lógicos: Conjunção, DisjunçãoInclusiva, Disjunção Exclusiva, Negação, Condicional e Bicondicional. Os símbolos utilizadospara esses operadores são apresentados na Tabela 1.4. A seguir, iremos detalhar cada um dessesoperadores.

Símbolo, leitura Operador Lógico∧, e Conjunção∨, ou Disjunção Inclusiva∨, ou Disjunção Exclusiva

∼ ou ¬, não Negação→, se, então Condicional

↔, se, e somente se Bicondicional

Tabela 1.4: Símbolos dos Operadores Lógicos.

Page 14: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.2 P. 8

1.2.1 – Negação

O operador lógico “Negação” inverte o valor lógico de uma proposição. Na linguagem queutilizamos no nosso dia a dia, quase sempre usamos a palavra “não” quando desejamos negaruma dada afirmação.

Na linguagem da lógica proposicional podemos utilizar dois símbolos diferentes para representara “Negação”: o “til” (∼) e a “cantoneira” (¬). Desta forma, se p é uma proposição qualquer,“não” p é representado simbolicamente por ∼ p ou ¬p (lê-se não p). Assim se uma proposiçãop é verdadeira, então ¬p é falsa. Já se p é falsa, então ¬p é verdadeira. A tabela-verdade da“Negação” é ilustrada na Tabela 1.5.

p ¬pV FF V

Tabela 1.5: Tabela-verdade do Operador Lógico Negação.

Vamos ver um exemplo. Exemplo 1.13 Considere a proposição p: Pedro é estudante. A negação de p, denotada por ¬ppode ser entendida como:

• Pedro NÃO é estudante.• Não é verdade que Pedro é estudante.• É falso que Pedro é estudante.

Definição 1.2.1 Se p é uma proposição, então ¬p também é uma proposição.

ObsObserve que: ¬(¬p) = p.

Exemplo 1.14 Considere a seguinte proposição:

• p: Pedro é estudante.• ¬p: Pedro NÃO é estudante.• ¬(¬p): Não é verdade que Pedro NÃO é estudante.• ¬(¬p): Pedro é estudante.

Podemos comprovar essa observação por meio da tabela-verdade, ilustrada na Tabela 1.6.

p ¬p ¬(¬p)V F VF V F

Tabela 1.6: Tabela-verdade da Proposição ¬(¬p).

Page 15: Introdução à Lógica e à Programação VisualIntrodução à

P. 9 Seção 1.2

1.2.2 – Conjunção

Duas proposições p e q podem ser combinadas pelo conectivo “e” (representado pelo símbolo∧) para formar uma proposição composta S denominada conjunção das proposições originais.A conjunção das proposições p e q, denominada S, será representada pelos símbolos p ∧ q. Aconjunção S terá valor lógico verdadeiro se, e somente se, os seus dois componentes (p e q)tiverem valor verdadeiro. Caso contrário, a conjunção S terá valor lógico falso. A expressão p∧ qé lida como “p e q”. A tabela-verdade da “Conjunção” é ilustrada na Tabela 1.7.

p q p ∧ qV V VV F FF V FF F F

Tabela 1.7: Tabela-verdade do Operador Lógico Conjunção.

Vamos ver um exemplo. Exemplo 1.15 Considere as seguintes proposições:

• p: Pedro é estudante.• q: Pedro é atleta.• p ∧ q: Pedro é estudante E Pedro é atleta.

Definição 1.2.2 Se p e q são preposições, então p ∧ q também é uma proposição.

Problema 5 Transforme as proposições simples em proposições compostas:

(a) p: Ana estuda matemática.q: Caio estuda história.p ∧ q

(b) p: Gosto de sorvete.q: Gosto de refrigerante.p ∧ (¬q)

Solução. Transforme as proposições simples em proposições compostas:(a) Ana estuda matemática E Caio estuda história.(b) Gosto de sorvete E NÃO Gosto de refrigerante.

Problema 6 Sejam as proposições p: Paulo é feliz e q: Paulo é atleta. Traduzir para alinguagem simbólica as seguintes proposições:

(a) Paulo não é feliz e não é atleta.(b) Não é verdade que Paulo é feliz e atleta.

Solução. Sejam as proposições p: Paulo é feliz e q: Paulo é atleta. Traduzir para alinguagem simbólica as seguintes proposições:(a) (¬p) ∧ (¬q)(b) ¬(p ∧ q)

Page 16: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.2 P. 10

1.2.3 – Disjunção Inclusiva

Duas proposições p e q podem ser combinadas pelo conectivo “ou” (representado pelo símbolo∨) para formar uma proposição composta S denominada disjunção inclusiva das proposiçõesoriginais. A disjunção inclusiva das proposições p e q, denominada S, será representada pelossímbolos p ∨ q. A disjunção inclusiva S terá valor lógico verdadeiro se pelo menos um de seusdois componentes (p ou q) tiver valor verdadeiro. Caso contrário, ou seja, se tanto a proposiçãop quanto q tiverem valor falso, a disjunção inclusiva S terá valor lógico falso. A expressão p ∨ q élida como “p ou q”. A tabela-verdade da “Disjunção Inclusiva” é ilustrada na Tabela 1.8.

p q p ∨ qV V VV F VF V VF F F

Tabela 1.8: Tabela-verdade do Operador Lógico Disjunção Inclusiva.

Vamos ver um exemplo. Exemplo 1.16 Considere as seguintes proposições:

• p: Esse ano eu vou estudar inglês.• q: Esse ano eu vou estudar computação.• p ∨ q: Esse ano eu vou estudar inglês OU Esse ano eu vou estudar computação.

Observe que a proposição p ∨ q não apresenta nenhum impedimento ao fato de que eu possaestudar tanto inglês quanto computação, durante esse ano. Logo, eu posso estudar esses doistemas: inglês e computação.

Vamos ver mais um exemplo. Exemplo 1.17 Considere as seguintes proposições:

• p: Amanhã eu vou à praia.• q: Amanhã eu vou ao cinema.• p ∨ q: Amanhã eu vou à praia OU Amanhã eu vou ao cinema.

Observe que a proposição p ∨ q não apresenta nenhum impedimento ao fato de que eu possair tanto para a praia quanto para o cinema. Logo, por exemplo, eu posso pegar uma praia pelamanhã e dar um rolê no cinema a noite.

Definição 1.2.3 Se p e q são proposições, então p ∨ q também é uma proposição.

Problema 7 Sejam as proposições p: Paulo ama Ana e q: Paulo ama Carol. Traduzir para alinguagem simbólica as seguintes proposições:

(a) Paulo não ama Ana ou Paulo não ama Carol.(b) Não é verdade que Paulo ama Ana ou Carol.

Page 17: Introdução à Lógica e à Programação VisualIntrodução à

P. 11 Seção 1.2

1.2.4 – Disjunção Exclusiva

Duas proposições p e q podem ser combinadas pelo conectivo “ou” (representado pelo símbolo∨) para formar uma proposição composta S denominada disjunção exclusiva das proposiçõesoriginais. A disjunção exclusiva das proposições p e q, denominada S, será representada pelossímbolos p∨q. A disjunção exclusiva S terá valor lógico verdadeiro se exatamente um de seusdois componentes (p ou q) tiver valor verdadeiro. Em outras palavras, a disjunção exclusiva Sterá valor lógico verdadeiro se um, e somente um, de seus dois componentes (p ou q) tiver valorverdadeiro. Caso contrário, a disjunção exclusiva S terá valor lógico falso. A expressão p∨q é lidacomo “p ou exclusivo q”. A tabela-verdade da “Disjunção Exclusiva” é ilustrada na Tabela 1.9.

p q p∨qV V FV F VF V VF F F

Tabela 1.9: Tabela-verdade do Operador Lógico Disjunção Exclusiva.

Vamos ver um exemplo. Exemplo 1.18 Considere as seguintes proposições:

• p: Hoje às 19h eu vou à academia.• q: Hoje às 19h eu vou ao cinema.• p∨q: Hoje às 19h OU eu vou à academia OU eu vou ao cinema.

Observe que a proposição p∨q apresenta um impedimento temporal, uma vez que eu nãoposso estar em dois lugares ao mesmo tempo. Note também que em muitos casos a DisjunçãoExclusiva é apresentada com o uso do “duplo ou” (Hoje às 19h OU eu vou à academia OU euvou ao cinema).

Definição 1.2.4 Se p e q são proposições, então p∨q também é uma proposição.

Problema 8 Sejam as proposições p: Paulo ama Ana e q: Paulo ama Carol. Traduzir para alinguagem simbólica as seguintes proposições:

(a) OU Paulo ama Ana OU Paulo ama Carol.(b) Não é verdade que OU Paulo ama Ana OU Paulo ama Carol.

Solução. Sejam as proposições p: Paulo é feliz e q: Paulo é atleta. Traduzir para alinguagem simbólica as seguintes proposições:

(a) p∨q(b) ¬(p∨q)

Page 18: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.2 P. 12

1.2.5 – Condicional

Duas proposições p e q podem ser combinadas pelo conectivo “se, então” (representado pelosímbolo →) para formar uma proposição composta S denominada condicional das proposiçõesoriginais. A condicional das proposições p e q, denominada S, será representada pelos símbolosp→ q (lê-se: se p, então q). A condicional p→ q pode ainda ser lida das seguintes maneiras:

• q, se p;• p é condição suficiente para q;• q é condição necessária para p.

Vamos ver um exemplo. Exemplo 1.19 A proposição condicional “Se chove, então a rua fica molhada” pode ser lida dasseguintes formas:

• Chover é uma condição suficiente para a rua ficar molhada.• A rua ficar molhada é uma condição necessária quando chove.

ObsNa condicional p→ q, a proposição p é chamada antecedente (premissa ou hipótese) e aproposição q é o consequente (ou conclusão).

ObsO operador lógico “Condicional” também é conhecido como “Implicação”.

A proposição condicional p→ q só é falsa quando p é verdadeira e q é falsa. Caso isto nãoocorra, a proposição condicional será verdadeira. A tabela-verdade da “Condicional” é ilustradana Tabela 1.10.

p q p→ qV V VV F FF V VF F V

Tabela 1.10: Tabela-verdade do Operador Condicional.

Agora, vamos tentar compreender melhor a tabela verdade do operador lógico condicional.Uma proposição condicional do tipo p→ q nos diz exatamente que se p, o antecedente, ocorrer(tiver valor verdadeiro) então q, o consequente, também deve ocorrer (ou seja, ter valor verdadeiro).Por este motivo, dizemos que a ocorrência de p é suficiente para garantir a ocorrência de q, e,também, que quando p ocorrer q deve necessariamente ocorrer.

Considerando este significado (semântica), podemos justificar a primeira linha da tabelaverdade do operador lógico condicional, ou seja, na situação em que o antecedente e o consequentetiverem valor verdadeiro, o condicional também terá valor verdadeiro. Assim, a semântica daproposição se antecedente então consequente está sendo respeitada.

Seguindo este raciocínio, somente a segunda linha da tabela parece violar a semântica daproposição condicional, uma vez que, nesta linha, o antecedente ocorre (possui valor verdadeiro)e o consequente não ocorre (possui valor falso). Por este motivo, o valor da condicional p→ q éfalso.

Page 19: Introdução à Lógica e à Programação VisualIntrodução à

P. 13 Seção 1.2

Adicionalmente, note que a proposição se antecedente então consequente não nos diznada a respeito de qual deve ser o valor do consequente (verdadeiro ou falso) quando o antecedenteé falso. Desta forma, tanto a terceira linha da tabela (antecedente falso e consequente falso)quanto a quarta linha (antecedente falso e consequente verdadeiro) não violam a semânticada proposição se, então. Por este motivo, o valor da condicional p → q nestes dois casos éverdadeiro.

ObsNote que, se o consequente é verdadeiro, pouco importa o valor lógico do antecedente, poisa condicional será sempre verdadeira.

Definição 1.2.5 Se p e q são proposições, então p→ q também é uma proposição.

Problema 9 Sejam as proposições p: Carlos mora em Fortaleza e q: Carlos mora no Ceará.Traduzir para a linguagem simbólica as seguintes proposições:

(a) Se Carlos mora em Fortaleza então Carlos mora no Ceará.(b) Não é verdade que Se Carlos mora em Fortaleza então Carlos mora no Ceará.

Solução. Sejam as proposições p: Carlos mora em Fortaleza e q: Carlos mora no Ceará.Traduzir para a linguagem simbólica as seguintes proposições:

(a) p→ q(b) ¬(p→ q)

Problema 10 Sejam as proposições p: Marta está estudando bastante e q: Marta será aprovadano ENEM. Traduzir para a linguagem simbólica as seguintes proposições:

(a) Se Marta está estudando bastante então Marta será aprovada no ENEM.(b) Marta Não está estudando bastante E Marta Não será aprovada no ENEM.(c) Não é verdade que Marta Não está estudando bastante.(d) OU Marta Não está estudando bastante OU Marta será aprovada no ENEM.

Solução. Sejam as proposições p: Marta está estudante bastante e q: Marta será aprovadano ENEM. Traduzir para a linguagem simbólica as seguintes proposições:

(a) p→ q(b) (¬p) ∧ (¬q)(c) ¬(¬p)(d) (¬p)∨q

Page 20: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.2 P. 14

1.2.6 – Bicondicional

Duas proposições p e q podem ser combinadas pelo conectivo “se, e somente se” (representadopelo símbolo ↔) para formar uma proposição composta S denominada bicondicional dasproposições originais. A bicondicional das proposições p e q, denominada S, será representadapelos símbolos p↔ q (lê-se: p se, e somente se q). A condicional p↔ q pode ainda ser lida dasseguintes maneiras:

• p é condição necessária e suficiente para q;• q é condição necessária e suficiente para p.

Vamos ver um exemplo. Exemplo 1.20 A proposição bicondicional “Um número inteiro é par se, e somente se é múltiplode 2” pode ser lida das seguinte forma:

• Se um número inteiro é par, então ele é múltiplo de 2.• Se um número é múltiplo de 2, então ele é par.

Observe ainda que:

• Um número inteiro ser par é condição suficiente para um número inteiro ser múltiplo de 2.• Um número inteiro ser múltiplo de 2 é condição necessária para um número inteiro ser par.

Porém, também podemos afirmar que:

• Um número inteiro ser múltiplo de 2 é condição suficiente para um número inteiro ser par.• Um número inteiro ser par é condição necessária para um número inteiro ser múltiplo de 2.

A proposição bicondicional p↔ q é verdadeira quando p e q têm o mesmo valor verdade (ouseja, V (p) = V (q)), caso contrário é falsa. A tabela-verdade da “Bicondicional” é ilustrada naTabela 1.11.

p q p↔ qV V VV F FF V FF F V

Tabela 1.11: Tabela-verdade do Operador Bicondicional.

Definição 1.2.6 Se p e q são proposições, então p↔ q também é uma proposição.

Problema 11 Sejam as proposições p: André nasceu no Ceará e q: André é cearense. Traduzirpara a linguagem simbólica as seguintes proposições:

(a) André é cearense se, e somente se André nasceu no Ceará.(b) Não é verdade que André é cearense se, e somente se André nasceu no Ceará.

Page 21: Introdução à Lógica e à Programação VisualIntrodução à

P. 15 Seção 1.3

1.3 – Utilizando Planilhas para Representar os Operadores Lógicos

Nesta seção, vamos discutir como podemos utilizar planilhas eletrônicas para representar osoperadores lógicos.

1.3.1 – Implementando a Negação

A Figura 1.1 ilustra como implementar a Negação utilizando uma planilha eletrônica. Observeque para isso usamos apenas a função NOT. Note ainda que os valores lógicos “Verdadeiro” e“Falso” são representados pelos termos “TRUE” e “FALSE”. A função NOT simplesmente inverteo valor lógico recebido como entrada (ou seja, o valor da célula especificada entre os parênteses).

Figura 1.1: Implementação do Operador Negação Utilizando uma Planilha Eletrônica

A Figura 1.2 ilustra uma segunda forma de implementar a Negação utilizando uma planilhaeletrônica. Observe que nesta implementação os valores lógicos “Verdadeiro” e “Falso” sãorepresentados pelas letras “V” e “F”. Note que, para que isso fosse possível, utilizamos a função“IF”.

Figura 1.2: Implementação do Operador Negação Utilizando uma Planilha Eletrônica

Page 22: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.3 P. 16

1.3.2 – Implementando a Conjunção

A Figura 1.3 ilustra como implementar a Conjunção utilizando uma planilha eletrônica. Observeque para isso usamos apenas a função AND.

Figura 1.3: Implementação do Operador Conjunção Utilizando uma Planilha Eletrônica

1.3.3 – Implementando a Disjunção Inclusiva

A Figura 1.4 ilustra como implementar a Disjunção Inclusiva utilizando uma planilha eletrônica.Observe que para isso usamos apenas a função OR.

Figura 1.4: Implementação a Disjunção Inclusiva Utilizando uma Planilha Eletrônica

1.3.4 – Implementando a Disjunção Exclusiva

A Figura 1.5 ilustra como implementar a Disjunção Exclusiva utilizando uma planilha eletrônica.Observe que para isso usamos apenas a função XOR.

Figura 1.5: Implementação a Disjunção Exclusiva Utilizando uma Planilha Eletrônica

Page 23: Introdução à Lógica e à Programação VisualIntrodução à

P. 17 Seção 1.3

1.3.5 – Implementando o Operador Condicional

A Figura 1.6 ilustra como implementar o operador Condicional utilizando uma planilha eletrônica.Observe que para isso usamos as funções IF e AND. Note ainda que os valores lógicos “Verdadeiro”e “Falso” são representados pelos termos “TRUE” e “FALSE”.

Figura 1.6: Implementação o Operador Condicional Utilizando uma Planilha Eletrônica

1.3.6 – Implementando o Operador Bicondicional

A Figura 1.7 ilustra como implementar o operador Bicondicional utilizando uma planilha eletrônica.Observe que para isso usamos as funções IF, OR e AND. Note ainda que os valores lógicos“Verdadeiro” e “Falso” são representados pelos termos “TRUE” e “FALSE”.

Figura 1.7: Implementação o Operador Bicondicional Utilizando uma Planilha Eletrônica

Page 24: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.4 P. 18

1.4 – Precedência dos Operadores Lógicos

Uma questão bastante importante ao analisarmos uma proposição composta consiste em identificarem que ordem as operações simples (ou atômicas) devem ser realizadas. Uma maneira eficientede explicitar essa ordem consiste na utilização de parênteses para agrupar as operações lógicas.Contudo, a utilização de uma quantidade elevada de parênteses pode dificultar a leitura e oentendimento de uma determinada proposição composta. Assim, torna-se necessário definir aprecedência entre os operadores lógicos, ou seja, que operador deve ser executado primeiro. ATabela 1.12 mostra a precedência dos operadores lógicos estudados até agora. Observe que,quanto maior o valor associado ao operador, maior a sua prioridade. A definição de precedênciaé fundamental para que nós consigamos avaliar uma expressão lógica (proposição composta) deforma correta. Neste sentido, para evitar interpretações equivocadas (incorretas), recomenda-seque, sempre que possível, seja adotado um esquema de parentização, ou seja, que os parêntesessejam utilizados para evidenciar a precedência das operações.

¬ ∧ ∨ → ↔4 3 2 1 0

Tabela 1.12: Precedência dos Operadores Lógicos.

Vamos ver alguns exemplos. Exemplo 1.21 Observe com cuidado as proposições a seguir:

• A proposição p ∧ q ∨ r deve ser entendida como (p ∧ q) ∨ r. Ou seja, primeiro executa-se aconjunção entre p e q, uma vez que a precedência da conjunção é maior que a precedênciada disjunção. Somente em seguida executa-se a disjunção inclusiva entre o resultado daoperação de conjunção e a proposição r.

• A proposição p→ q ∨ r deve ser entendida como p→ (q ∨ r). Ou seja, primeiro executa-sea disjunção entre q e r, uma vez que a precedência da disjunção é maior que a precedênciada condicional. Somente em seguida executa-se a condicional entre a proposição p e oresultado da operação de disjunção.

• A proposição p ↔ p → q deve ser entendida como p ↔ (p → q). Ou seja, primeiroexecuta-se a condicional entre p e q, uma vez que a precedência da condicional é maior quea precedência da bicondicional. Somente em seguida executa-se a bicondicional entre aproposição p e o resultado da operação condicional.

Contudo, em alguns casos as regras de precedência dos operadores não são suficientes pararemover todas as ambiguidades. Por exemplo, considere a proposição composta p → q → r.Observe que, como o operador lógico é o mesmo, não fica claro em que ordem as operaçõesserão realizadas. Note que a proposição composta p → q → r tanto pode ser entendida comop → (q → r) quanto como (p → q) → r, dependendo da parentização utilizada. Neste caso, autilização dos parênteses foi fundamental para remover as ambiguidades.

Page 25: Introdução à Lógica e à Programação VisualIntrodução à

P. 19 Seção 1.5

1.5 – Fórmulas Bem-formadas

Dizemos que uma proposição composta é uma fórmula bem-formada (do inglês Well-FormedFormula - WFF) se ela define uma expressão lógica válida, ou seja, se ela for uma expressãoválida segundo a gramática da lógica proposicional.

Uma fórmula bem-formada (WFF) (ou simplesmente fórmula) pode ser definida da seguintemaneira:

1 Se p é uma proposição atômica, então p é uma fórmula;2 Se p é uma fórmula, então ¬p também é uma fórmula;3 Se p e q são fórmulas, então p ∧ q, p ∨ q, p∨q, p→ q e p↔ q também são fórmulas.

Exemplo 1.22 Como exemplos de fórmulas bem-formadas podemos citar:

• p→ (q ∧ r);• ¬q ∧ ((¬r ∧ s)↔ (p→ ¬q));• ((p→ q) ∧ p)→ ¬p;

Exemplo 1.23 Como exemplos de expressões que não são fórmulas bem-formadas podemoscitar:

• p q r;• (r Verdadeiro →);• (Falso ∧∨ (↔ q p))

Problema 12 Dados os símbolos proposicionais p e q, mostre que a expressão ((p∧q)∨((¬p)→(¬q))) é uma fórmula bem-formada.

Solução. Dados os símbolos proposicionais p e q, mostre que a expressão ((p∧ q)∨ ((¬p)→(¬q))) é uma fórmula bem-formada.

• p e q são fórmulas, pois são proposições atômicas;• (p ∧ q) é formula, pela terceira propriedade da definição;• (¬p) e (¬q) são fórmulas, pela segunda propriedade da definição;• ((¬p) ∧ (¬q)) é fórmula, pela terceira propriedade da definição;• (p ∧ q) ∧ ((¬p) ∧ (¬q)) é fórmula, pela terceira propriedade da definição;

Problema 13 Dados as expressões a seguir, identifique quais são fórmulas bem-formadas.Justifique sua resposta.

(a) (p ∧ q)→ ((q ↔ p) ∨ (¬(¬r)));(b) ∨q → r;(c) (p ∨ r)→ (q ↔ ((¬t) ∧ r));(d) (p q ∨ Verdadeiro);(e) (¬p→ (q ∨ r))↔ ((p ∧ q)↔ (¬¬r ∨ ¬p));

Page 26: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.6 P. 20

1.6 – Tabela-verdade

Como mencionamos anteriormente, a tabela-verdade é uma maneira prática de dispor orga-nizadamente os valores lógicos envolvidos em uma proposição. Agora, vamos discutir algunsproblemas que envolvem a elaboração de tabelas-verdade.

Problema 14 Monte a tabela verdade para a proposição P = p ∨ ¬q.

Solução. Vamos montar a tabela-verdade para a proposição P = p ∨ ¬q.

p q ¬q p ∨ ¬qV V F VV F V VF V F FF F V V

Tabela 1.13: Tabela-verdade da Proposição P = p ∨ ¬q.

Problema 15 Monte a tabela verdade para a proposição P = p ∨ ¬q.

Solução. Vamos montar a tabela-verdade para a proposição P = p ∧ ¬q.

p q ¬q p ∧ ¬qV V F FV F V VF V F FF F V F

Tabela 1.14: Tabela-verdade da Proposição P = p ∧ ¬q.

Problema 16 Monte a tabela verdade para a proposição P = (p ∨ q) ∧ r.

Solução. Vamos montar a tabela-verdade para a proposição P = (p ∨ q) ∧ r.

p q r p ∨ q (p ∨ q) ∧ rV V V V VV V F V FV F V V VV F F V FF V V V VF V F V FF F V F FF F F F F

Tabela 1.15: Tabela-verdade da Proposição P = (p ∨ q) ∧ r.

Page 27: Introdução à Lógica e à Programação VisualIntrodução à

P. 21 Seção 1.6

Problema 17 Monte a tabela verdade para a proposição P = (p ∨ q) ∧ r utilizando umaplanilha eletrônica.

Solução. Observe a planilha eletrônica ilustrada na Figura 1.8.

Figura 1.8: Tabela-verdade da Proposição P = (p ∨ q) ∧ r Utilizando uma Planilha Eletrônica.

Problema 18 — IBGE 2021. A quantidade de linhas da tabela-verdade da proposição compostaP = p → q ∨ r, em que p, q e r são proposições atômicas e independentes entre si, queapresentam o valor lógico F é igual a:

(a) 1.(b) 2.(c) 3.(d) 4.(e) 5.

Problema 19 — IDIB 2020. Assinale a alternativa que representa a proposição “x” correta paraa tabela verdade a seguir.

p q xV V FV F FF V VF F F

Tabela 1.16: Tabela-verdade do Problema 19.

(a) p ∧ ¬q.(b) p ∨ q.(c) p ∧ q(d) ¬p ∧ q

Page 28: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.6 P. 22

Problema 20 — CPCON 2020. Considere a,b e c três proposições falsas. Qual o valor lógicoda proposição D = [(a ∨ ¬c)↔ b]↔ [(b ∧ ¬a)↔ ¬b]?

(a) D não possui valor lógico.(b) Falso.(c) Não é possível determinar o valor lógico de D.(d) Verdadeiro.(e) D é verdadeiro e falso.

Problema 21 — CEPS-UFPA 2019. João vai sair de casa e é interpelado por sua mãe: - João,você vai aonde? - Não tenho certeza, mãe. Vou encontrar amigos para ir ao futebol ou aocinema no shopping. - João, se você for ao cinema, compre chocolate para mim. - Sim, mãe.

Quatro horas mais tarde, João, que sempre atende às solicitações de sua mãe, retorna evem com chocolates. É correto concluir que:

(a) João foi ao cinema.(b) João não foi ao cinema.(c) João foi ao cinema e João comprou o chocolate.(d) João comprou o chocolate no shopping.(e) João foi ao cinema ou João comprou o chocolate.

Problema 22 — OCI 2018. Assinale a alternativa verdadeira sobre a expressão booleana aseguir: X = (A∨B) ∨ (¬A ∧ ¬B ∧ ¬C) ∨ (A ∧B ∧ C)

(a) Quando todos os termos têm valor 0, X = 0.(b) Para A = 1, B = 1 e C = 0, X = 1.(c) Para (¬A ∧ ¬B ∧ ¬C) = 1, X = 0.(d) Para A = 1 e B = 0, independente do valor de C, X = 1.(e) Para A = 0 e C = 0, independente do valor de B, X = 0.

Solução. Item: D

Problema 23 — OCI 2015. Considere que uma proposição é um enunciado traduzível emsímbolos matemáticos, passível de múltiplos valores verdade (verdadeiro, falso). As proposiçõessão regidas pelos princípios da Identidade, do Terceiro Excluído e da Não-contradição.

Com base no texto acima analise as seguintes proposições:

I “Os homens são mortais”.II “João pode morrer e João é imortal”.III “João é Marcos, Marcos não é João”.

E assinale o item CORRETO:

(a) Os itens I, II e III são proposições válidas.(b) Apenas os itens I e III são proposições válidas.(c) Apenas o item I é uma proposição válida.(d) Apenas o item II é uma proposição válida.(e) Apenas o item III é uma proposição válida.

Solução. Item: C

Page 29: Introdução à Lógica e à Programação VisualIntrodução à

P. 23 Seção 1.6

Problema 24 — OCI 2014. Na lógica dos predicados, o síımbolo ¬ representa a negação, istoé, ele inverte o valor lógico de uma afirmação. Assim, se uma afirmação A é verdadeira, aafirmação ¬A é falsa e, do mesmo modo, se a afirmação A é falsa, então a afirmação ¬A éverdadeira. Sabendo disso, analise as seguintes premissas:

• p: Estudar é saudável.• q: Estudar excessivamente mata.

A afirmação “Estudar não é saudável” ou “Estudar excessivamente mata” é falsa se:

(a) p é falsa e ¬q é falsa.(b) p é falsa e q é falsa.(c) p e q são verdadeiras.(d) p é verdadeira e q é falsa.(e) ¬p é verdadeira e q é falsa.

Solução. Item: D

Problema 25 — OCI 2013. Sabe-se que a ocorrência de B é condição necessária para aocorrência de C e condição suficiente para a ocorrência de D. Sabe-se, também, que aocorrência de D é condição necessária e suficiente para a ocorrência de A. Assim, quando Cocorre:

(a) D ocorre e B não ocorre.(b) D não ocorre ou A não ocorre.(c) B e A ocorrem.(d) B e D não ocorrem.(e) B não ocorre ou A não ocorre.

No link a seguir (https://logicproblems.org/wff/) você encontra uma aplicação web que verificase uma determinada expressão é ou não uma fórmula bem-formada.

v Saiba mais

O vídeo a seguir traz uma interessante discussão acerca dos conceitos de proposição e operadoreslógicos, além de vários exemplos interessantes.

v Saiba mais

Page 30: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.7 P. 24

1.7 – Tautologia, Contradição e Contingência

Nesta seção vamos discutir três importantes conceitos: tautologia, contradição e contingência.

1.7.1 – Tautologia

Definição 1.7.1 Uma proposição composta S é uma tautologia se o seu valor lógico é sempreverdadeiro (V), quaisquer que sejam os valores lógicos das proposições componentes.

Vamos ver um exemplo. Exemplo 1.24 Considere as seguintes proposições:

• p: Vai chover;• ¬p NÃO Vai chover;• S : p ∨ ¬p;

Vamos montar a tabela verdade para a proposição composta S = (p ∨ ¬p).

p ¬p p ∨ ¬pV F VF V V

Tabela 1.17: Tabela-verdade da Proposição p ∨ ¬p.

Observe que p ∨ ¬p é uma tautologia.Vamos ver um segundo exemplo.

Exemplo 1.25 Considere a proposição ¬(p ∧ ¬p). Será que essa proposição é uma tautologia.Vamos montar a tabela verdade e descobrir.

p ¬p p ∧ ¬p ¬(p ∧ ¬p)V F F VF V F V

Tabela 1.18: Tabela-verdade da Proposição ¬(p ∧ ¬p).

Observe que ¬(p ∧ ¬p) é uma tautologia.

Problema 26 Mostre que a proposição P = p ∨ ¬(p ∧ q) é uma tautologia.

Solução. Vamos montar a tabela-verdade para a proposição P .

p q p ∧ q ¬(p ∧ q) p ∨ ¬(p ∧ q)V V V F VV F F V VF V F V VF F F V V

Tabela 1.19: Tabela-verdade da Proposição P = p ∨ ¬(p ∧ q).

Logo, podemos concluir que a proposição P = p ∨ ¬(p ∧ q) é uma tautologia.

Page 31: Introdução à Lógica e à Programação VisualIntrodução à

P. 25 Seção 1.7

Problema 27 Mostre que as seguintes proposições são tautologias.

• P = p ∨ (q ∧ negq)↔ p;• P = (p ∧ r)→ (¬q ∨ r);

Problema 28 Chico da Matilde afirmou que a proposição p → (q → p) é uma tautologia.Dandara acha que Chico está mentindo. Laudelina foi chamada para mediar o debate entreChico e Dandara. Ajude Laudelina a provar se Chico está dizendo a verdade ou se estámentindo.

Problema 29 Considerando p e q duas proposições atômicas quaisquer, assinale a alternativaque representa, logicamente, uma tautologia.

(a) ¬p ∧ p.(b) ¬p ∧ ¬q.(c) (p ∧ q)→ (p ∨ q).(d) (p ∨ q)→ (p ∧ q).(e) p ∨ q.

Problema 30 Dandara afirmou que a proposição ¬p→ [p→ q] é uma tautologia. Chico daMatilde acha que Dandara está mentindo. Maria Firmina foi chamada para mediar o debateentre Dandara e Chico. Ajude Maria Firmina a provar se Dandara está dizendo a verdade ouse está mentindo.

Problema 31 Trata-se de uma tautologia a proposição apresentada na alternativa:

(a) Chove e faz frio.(b) Carolina de Jesus estuda ou não estuda na UFC.(c) Se é verão então faz calor.(d) Tia Ciata é alta e gosta de estudar.(e) Abdias estuda ou joga futebol.

Problema 32 — IADES 2017. Assinale a alternativa que apresenta uma tautologia.

(a) p ∨ (q ∨ ¬p).(b) (q → p)→ (p→ q).(c) p→ (p→ q ∧ ¬q).(d) p ∨ ¬q → (p→ ¬q).(e) p ∨ q → p ∧ q

Problema 33 — IESES 2017. Trata-se de uma tautologia a proposição apresentada na alterna-tiva:

(a) Se Rafael é inteligente ou Fabrício é chato então Rafael é inteligente e Fabrício é chato..(b) Se Rafael é inteligente ou Fabrício é chato então Rafael não é inteligente e Fabrício não

é chato.(c) Se Rafael é inteligente e Fabrício é chato então Rafael é inteligente ou Fabrício é chato.(d) Se Rafael é inteligente e Fabrício é chato então Rafael é inteligente e Fabrício não é

chato.

Page 32: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.7 P. 26

1.7.2 – Contradição

Definição 1.7.2 Uma proposição composta S é uma contradição se o seu valor lógico ésempre falso (F), quaisquer que sejam os valores lógicos das proposições componentes.

Vamos ver um exemplo. Exemplo 1.26 Considere as seguintes proposições:

• p: Vai chover;• ¬p NÃO Vai chover;• S : p ∧ ¬p;

Vamos montar a tabela verdade para a proposição composta S (p ∧ ¬p).

p ¬p p ∧ ¬pV F FF V F

Tabela 1.20: Tabela-verdade da Proposição p ∧ ¬p.

Observe que p ∧ ¬p é uma contradição.

Problema 34 Mostre que a proposição P = (p ∧ q) ∧ ¬(p ∨ q) é uma contradição.

Solução. Vamos montar a tabela-verdade para a proposição P .

p q p ∧ q p ∨ q ¬(p ∨ q) (p ∧ q) ∧ ¬(p ∨ q)V V V V F FV F F V F FF V F V F FF F F F V F

Tabela 1.21: Tabela-verdade da Proposição P = (p ∧ q) ∧ ¬(p ∨ q).

Logo, podemos concluir que a proposição P = (p ∧ q) ∧ ¬(p ∨ q) é uma contradição.

Problema 35 Mostre que a proposição P = ¬p ∧ (p ∧ ¬q) é uma contradição.

Solução. Vamos montar a tabela-verdade para a proposição P .

p q ¬p ¬q p ∧ ¬q ¬p ∧ (p ∧ ¬q)V V F F F FV F F V V FF V V F F FF F V V F F

Tabela 1.22: Tabela-verdade da Proposição P = ¬p ∧ (p ∧ ¬q).

Logo, podemos concluir que a proposição P = ¬p ∧ (p ∧ ¬q) é uma contradição.

Page 33: Introdução à Lógica e à Programação VisualIntrodução à

P. 27 Seção 1.7

1.7.3 – Contingência

Definição 1.7.3 Uma proposição composta S é uma contingência (ou uma indeterminação)quando ela não é uma tautologia e também não é uma contradição.

Problema 36 Determine se a proposição P = (p ∨ q)→ p é uma tautologia, contradição oucontingência.

Solução. Vamos montar a tabela-verdade para a proposição P .

p q p ∨ q (p∨ q)→ pV V V VF F V VF V V FF F F V

Tabela 1.23: Tabela-verdade da Proposição P = (p ∨ q)→ p.

Construindo a tabela-verdade de P , verificamos que a última coluna é composta tanto porvalores lógicos verdadeiros (V) quanto por falsos (F). Logo, P é uma contingência.

Problema 37 Determine se a proposição P = (p ∧ q) ∨ (p ∧ r) é uma tautologia, contradiçãoou contingência.

Solução. Vamos montar a tabela-verdade para a proposição P .

p q r p ∧ q p ∧ r (p ∧ q) ∨ (p ∧ r)V V V V V VV V F V F VV F V F V VV F F F F FF V V F F FF V F F F FF F V F F FF F F F F F

Tabela 1.24: Tabela-verdade da Proposição P = (p ∧ q) ∨ (p ∧ r).

Construindo a tabela-verdade de P , verificamos que a última coluna é composta tanto porvalores lógicos verdadeiros (V) quanto por falsos (F). Logo, P é uma contingência.

Page 34: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.7 P. 28

Problema 38 Considere a seguinte proposição: “No ENEM, Carolina de Jesus será aprovadaou não será aprovada.”. Analisando segundo a lógica, essa afirmação é um exemplo claro de:

(a) contradição.(b) tautologia.(c) contingência.(d) equivalência.(e) implicação.

Problema 39 Trata-se de um exemplo de contradição a proposição:

(a) Dois é um número par e ímpar.(b) Guaramiranga é uma cidade bonita se e somente se faz frio.(c) Laudelina é alta e Gama é baixo.(d) Se dois é um número par então Laudelina é alta.(e) Se Gama é baixo então Laudelina é alta.

Problema 40 — FUNDATEC 2019. Define-se por contradição a operação lógica que assumecomo valores falsos (F) para quaisquer valores das proposições componentes. Sendo assim,assinale a alternativa que contém um caso de contradição.

(a) p ∧ ¬p.(b) p ∧ ¬q.(c) p ∨ q.(d) p ∧ q.(e) p ∨ q.

Problema 41 Dadas as proposições a seguir, diga se ela é uma Tautologia, Contradição ouContingência.

(a) (p ∧ ¬p) ∧ p;(b) (p ∧ ¬q) ∧ p;(c) (p ∧ ¬p) ∨ q;(d) (q ∧ ¬p) ∨ r;(e) p ∧ (q → r) ∨ (p ∨ q).

Problema 42 Qual das proposições a seguir é uma contradição?

(a) (p→ q) ∨ ¬q.(b) (p ∧ ¬p)→ q(c) ¬(p ∨ q)↔ (p ∨ q).(d) (p↔ p) ∧ (p ∨ q).(e) (p↔ q) ∨ (q ∨ ¬q).

Page 35: Introdução à Lógica e à Programação VisualIntrodução à

P. 29 Seção 1.7

Problema 43 — IBFC 2020. É sabido que tautologia é uma proposição cuja tabela-verdadesempre resulta em valores lógicos verdadeiros. Sendo P uma proposição lógica, assinale aalternativa incorreta.

(a) (P ∨ ¬P ) é um caso de tautologia.(b) (P ∧ ¬P ) não é um caso de tautologia.(c) ¬(P ∧ ¬P ) não é um caso de tautologia.(d) (P ↔ ¬P ) não é um caso de tautologia.(e) ¬(P ↔ ¬P ) é um caso de tautologia.

Problema 44 — IBFC 2020. Observe a sentença: (P → ¬Q)↔ (R∧P ). Se a proposição lógicaP é falsa, assinale a alternativa que apresenta uma afirmação correta.

(a) A sentença é uma tautologia.(b) A sentença é uma contradição.(c) A sentença é verdadeira sempre que a proposição P é falsa.(d) A sentença é falsa sempre que a proposição P é falsa.(e) A sentença é verdadeira sempre que a proposição P é verdadeira.

Problema 45 — COREN SC 2020. Considere a seguinte sentença, em que p e q são proposiçõesque podem ser verdadeiras ou falsas.

(¬q ∧ (p→ q))to(¬p)

É correto afirmar que:

(a) A sentença é uma tautologia.(b) A sentença é uma contradição.(c) Se p e q forem verdadeiras, a sentença será falsa..(d) Se p e q forem falsas, a sentença será falsa.(e) A sentença é verdadeira somente se p for verdadeiro e q for falsa.

No link a seguir (http://www.allisons.org/ll/Logic/Propositional/Wff/) você encontra umaaplicação web que verifica se uma determinada expressão é ou não uma tautologia, além dechecar se esta expressão é uma fórmula bem-formada.

v Saiba mais

Page 36: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.8 P. 30

1.8 – Implicação e Equivalência Lógica

Definição 1.8.1 Dadas duas proposições P e Q, diz-se que ocorre uma implicação lógica (ourelação de implicação) entre P e Q quando a proposição condicional P → Q é uma tautologia(lê-se P implica Q).

Vamos ver um exemplo. Exemplo 1.27 Considere as seguintes proposições:

• P : p ∧ q;• Q : p;• P → Q é uma implicação lógica?;

Vamos montar a tabela verdade para a proposição composta P → Q.

p q p ∧ q (p ∧ q)→ pV V V VV F F VF V F VF F F V

Tabela 1.25: Tabela-verdade da Proposição (p ∧ q)→ p.

Observe que (p ∧ q)→ p é uma implicação lógica.

Definição 1.8.2 Dadas as proposições P e Q, diz-se que ocorre uma equivalência lógicaentre P e Q quando suas tabelas-verdade forem idênticas (lê-se P implica logicamente em Qou simplesmente P equivale a Q (P ⇐⇒ Q).

Vamos ver um exemplo. Exemplo 1.28 Considere as seguintes proposições:

• P : (p→ q);• Q : (¬p ∨ q);• P equivale a Q?;

Vamos montar a tabela verdade para as proposições P e Q.

p q p→ q ¬p ∨ qV V V VV F F FF V V VF F V V

Tabela 1.26: Tabela-verdade das Proposição P e Q.

Observe que P equivale a Q.

Page 37: Introdução à Lógica e à Programação VisualIntrodução à

P. 31 Seção 1.8

A Tabela 1.27 ilustra algumas das equivalências mais importantes.

Equivalência Nome¬(p ∧ q)⇐⇒ (¬p ∨ ¬q) Lei de De Morgan¬(p ∨ q)⇐⇒ (¬p ∧ ¬q) Lei de De Morgan

(p ∨ q)⇐⇒ (q ∨ p) Comutação(p ∧ q)⇐⇒ (q ∧ p) Comutação

(p ∨ (q ∨ r)))⇐⇒ ((p ∨ q) ∨ r) Associação(p ∧ (q ∧ r))⇐⇒ ((p ∧ q) ∧ r)) Associação

(p ∧ (q ∨ r))⇐⇒ ((p ∧ q) ∨ (p ∧ r)) Distributiva(p ∨ (q ∧ r))⇐⇒ ((p ∨ q) ∧ (p ∨ r)) Distributiva

p⇐⇒ ¬¬p Dupla Negação(p→ q)⇐⇒ (¬q → ¬p) Transposição

(p→ q)⇐⇒ (¬p ∨ q) Implicação Material((p ∧ q)→ r)⇐⇒ (p→ (q → r)) Exportação

p⇐⇒ (p ∧ p) Tautologiap⇐⇒ (p ∨ p) Tautologia

p↔ q ⇐⇒ (p→ q) ∧ (q → p) Substituiçãop→ (q → r)⇐⇒ (p ∨ q)→ r Prova Condicional

Tabela 1.27: Principais Equivalências Lógicas.

Problema 46 Verifique se os pares de fórmulas a seguir são equivalências lógicas ou implicaçõeslógicas.

(a) (p ∧ q) e q;(b) ¬(p ∧ q) e (¬p ∨ ¬q);(c) (¬p ∨ q) e (p→ q)

O vídeo a seguir traz uma breve revisão e um exercício interessante sobre equivalência lógica.

v Saiba mais

Page 38: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.9 P. 32

1.9 – Exercícios Propostos sobre Lógica Proposicional

Problema 47 — FCC. Considere a proposição “Sabina estuda, mas não passa no ENEM”.Nessa proposição, o conectivo lógico é:

(a) disjunção inclusiva.(b) conjunção.(c) disjunção exclusiva.(d) condicional.(e) bicondicional.

Problema 48 — CESGRANRIO. Sejam as proposições:

• A: Anita estuda• B: Betina briga• C: Carla canta

A linguagem corrente “Se Carla não canta, então não é verdade que Anita estuda e Betinanão briga” pode ser representada, na forma simbólica, por:

(a) ¬C → ¬A ∧B.(b) C → ¬A ∧ ¬B.(c) C → ¬(A ∨B).(d) ¬C → neg(A ∧ ¬B).(e) ¬C → ¬(A ∨B).

Texto para as duas próximas questões.Considere as seguintes proposições simples:

• A: andar;• B: beber;• C: cair;• D: dormir.

Com relação à proposição: “Se ando e bebo, então caio, mas não durmo ou não bebo”.

Problema 49 — FGV. Transformando para a linguagem simbólica a proposição compostaanterior, teremos a seguinte estrutura lógica:

(a) (A ∧B)→ (C ∧ ¬D ∨B).(b) (A ∨B)→ (C ∨ ¬D) ∧ ¬B).(c) (A ∧ ¬B)→ C ∧ (¬D ∨B).(d) (A ∧B)→ (C ∧ ¬D) ∨B).(e) (A ∧ ¬B)→ (C ∧ ¬D ∨B).

Problema 50 — FGV. O número de linhas da tabela-verdade da proposição composta anterioré igual a:

(a) 2.(b) 4.(c) 8.(d) 16.(e) 32.

Page 39: Introdução à Lógica e à Programação VisualIntrodução à

P. 33 Seção 1.9

Problema 51 — CESGRANRIO. O número de linhas da tabela-verdade da proposição “Seestudo ou não compreendo, então é falso que ou trabalho ou não durmo”, é de:

(a) 2.(b) 4.(c) 8.(d) 16.(e) 32.

Problema 52 — CESP/UnB. Observe as seguintes proposições compostas:

• 2 + 7 = 11 ou 3 não é um número primo.• Se 2 é divisor de 15, então 3 não é divisor de 21.• Se 3 > 5, então 7 < 5.• π é racional ou -8 é um número inteiro.• 2,333 · · · é uma dízima periódica e 1/3 não é.

Nesse caso, é correto afirmar que:

(a) existem 2 proposições falsas e 3 verdadeiras.(b) existem 3 proposições falsas e 2 verdadeiras.(c) existem 4 verdadeiras e 1 falsa.(d) todas são verdadeiras.(e) todas são falsas.

Problema 53 — CONSULPLAN. Qual das proposições a seguir é verdadeira?

(a) O ar é necessário à vida e a água do mar é doce.(b) O avião é um meio de transporte ou o aço é mole.(c) 6 é impar ou 2 + 3 6= 5.(d) O Brasil é um país e Sergipe é uma cidade.(e) O papagaio fala e o povo voa.

Problema 54 — CESP/UnB. Considere as afirmações a seguir:

I Uma proposição pode admitir, no máximo, duas valorações lógicas (V ou F).II A proposição “(7 < 6) ∨ (8− 3 > 6)” é falsa.III A proposição “Se 91 é divisível por 7 → 65 não é múltiplo de 13” é verdadeira.

É verdadeiro o que se afirma APENAS em:

(a) I.(b) II.(c) III.(d) I e II.(e) I e III.

Page 40: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.9 P. 34

Problema 55 — CESP/UnB. Considere as afirmações a seguir:

I (7 + 3 = 10) ∧ (5− 12 = 7).II A palavra crime é dissílaba.III Se “lâmpada” é uma palavra trissílaba, então “lâmpada” tem acentuação gráfica.IV (8− 4 = 4) ∧ (10 + 3 = 13).V Se x=4, então x+3<6.

Entre essas proposições, há exatamente:

(a) uma F.(b) duas F.(c) três F.(d) quatro F.(e) todas são F.

Problema 56 — CESP/UnB. A tabela-verdade da proposição: (A→ B) ∨ (B → A) apresentacomo, como Solução:

(a) apenas valorações V.(b) apenas valorações F.(c) duas valorações V.(d) uma valoração V.(e) uma valoração F.

Problema 57 — CESP/UnB. Se a, b e c forem proposições atômicas e distintas, então a soluçãoda tabela-verdade da proposição: (a→ ¬b) ∧ (c→ ¬a), será formada por:

(a) apenas valores V.(b) apenas valores F.(c) mais valorações F do que V.(d) mais valorações V do que F.(e) mesma quantidade de valorações V ou F.

Problema 58 — CESP/UnB. A negação da proposição A, simbolizada por ¬A, será F se A for V,e será V se A for F. Então, para todas as possíveis valorações V ou F atribuídas às proposiçõesA e B, é correto concluir que a proposição (¬A→ ¬B)→ (B → A) possui exatamente:

(a) 4 valores F.(b) 4 valores V.(c) 1 valor V e 3 valores F.(d) 1 valor F e 3 valores V.(e) 2 valores V e 2 valores F.

Page 41: Introdução à Lógica e à Programação VisualIntrodução à

P. 35 Seção 1.9

Problema 59 — CESGRANRIO. Dizer que não é verdade que “José é gordo e Carlos é alto” élogicamente equivalente a dizer que é verdade que:

(a) José não é gordo ou Carlos não é alto.(b) José não é gordo e Carlos não é alto.(c) José é gordo ou Carlos não é alto.(d) Se José não é gordo, então Carlos é alto.(e) Se José não é gordo, então Carlos não é alto.

Problema 60 — TRT 1a. Região/2008/CESPE. Utilizando as letras proposicionais adequadasna proposição composta “Nem Antônio é desembargador nem Jonas é juiz”, assinale a opçãocorrespondente à simbolização correta dessa proposição.

(a) ¬(A ∧B).(b) (¬A) ∨ (¬B).(c) (¬A) ∧ (¬B).(d) (¬A)→ B.(e) ¬[A ∨ (¬B)].

Problema 61 — TRT-9R-FCC. Considere a seguinte proposição “na eleição para a prefeitura, ocandidato A será eleito ou não será eleito”. Do ponto de vista lógico, a afirmação da proposiçãocaracteriza:

(a) Um silogismo.(b) Uma tautologia.(c) Uma equivalência.(d) Uma contingência.(e) Uma contradição.

Problema 62 — UFBA. A negação de “hoje é segunda-feira e amanhã não choverá ” é:

(a) Hoje não é segunda-feira e amanhã não choverá.(b) Hoje não é segunda-feira ou amanhã choverá.(c) Hoje não é segunda-feira então amanhã choverá.(d) Hoje não é segunda-feira nem amanhã choverá.(e) Hoje é segunda-feira ou amanhã choverá.

Problema 63 — AFC-ESAF. Dizer que não é verdade que Pedro é pobre e Alberto é alto, élogicamente equivalente a dizer que é verdade que:

(a) Pedro não é pobre ou Alberto não é alto.(b) Pedro não é pobre e Alberto não é alto.(c) Pedro é pobre ou Alberto não é alto.(d) Se Pedro não é pobre, então Alberto é alto.(e) Se Pedro não é pobre, então Alberto não é alto.

Page 42: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.9 P. 36

Problema 64 — Vunesp. Sobre as tabelas de verdade dos conectivos de disjunção (inclusiva),conjunção e implicação (material), assinale a alternativa correta.

(a) As conjunções só são falsas quando ambos os conjuntos são falsos.(b) Não existe implicação falsa com antecedente verdadeiro.(c) As disjunções são falsas quando algum dos disjuntos é falso.(d) Só há um caso em que as implicações são verdadeiras.(e) As implicações são verdadeiras quando o antecedente é falso.

Problema 65 — FUNCAB. A negação de “Artur ou Paulo são agentes administrativos e Mauromora em Brasília” é:

(a) Artur e Paulo não são agentes administrativos e Mauro mora em Brasília.(b) Artur e Paulo não são agentes administrativos ou Mauro mora em Brasília.(c) Artur e Paulo não são agentes administrativos ou Mauro não mora em Brasília.(d) Artur ou Paulo não são agentes administrativos e Mauro não mora em Brasília.(e) Artur ou Paulo não são agentes administrativos ou Mauro não mora em Brasília.

Problema 66 — FUNCAB. A negação da afirmação condicional “Se estiver fazendo sol noferiado, eu vou à praia” é:

(a) Está fazendo sol no feriado e eu não vou à praia.(b) Se não estiver fazendo sol no feriado, eu vou à praia.(c) Se estiver fazendo sol no feriado, eu não vou à praia.(d) Não está fazendo sol no feriado e eu vou à praia.(e) Não está fazendo sol no feriado e eu não vou à praia.

Problema 67 — EBSERH. Considerando a frase “João comprou um notebook e não comprouum celular”, a negação da mesma, de acordo com o raciocínio lógico proposicional é:

(a) João não comprou um notebook e comprou um celular.(b) João não comprou um notebook ou comprou um celular.(c) João comprou um notebook ou comprou um celular.(d) João não comprou um notebook e não comprou um celular.(e) João não comprou um notebook, então não comprou um celular.

Problema 68 — IF Sertão 2016. Dizer que “Se Paulo vai correr, então ele vai cair ” é equivalentea:

(a) Se Paulo não vai cair, então ele não vai correr.(b) Paulo vai cair e correr.(c) Se Paulo não vai correr, então ele não vai cair.(d) Paulo vai correr ou cair.(e) Se Paulo vai cair, então ele vai correr.

Page 43: Introdução à Lógica e à Programação VisualIntrodução à

P. 37 Seção 1.9

Problema 69 — FCC. Do ponto de vista da lógica, a proposição “se tem OAB, então éadvogado” é equivalente a:

(a) tem OAB ou é advogado.(b) se não tem OAB, então não é advogado.(c) se não é advogado, então não tem OAB.(d) é advogado e não tem OAB.(e) se é advogado, então tem OAB.

Problema 70 — IFMS - 2016. Levando-se em consideração os conceitos da lógica matemática,bem como das proposições compostas, qual das alternativas a seguir é uma equivalência lógicade “se eu estudo, tiro boa nota na prova”?

(a) Se. eu não tiro boa nota na prova, então eu estudo.(b) Eu estudo ou tiro boa nota na prova.(c) Eu não estudo ou tiro boa nota na prova.(d) Eu estudo ou não tiro boa nota na prova.(e) Eu estudo e não tiro boa nota na prova.

Problema 71 — FCC - 2016. Se a gasolina acabou ou apareceu um defeito, então o motorapagou. Uma afirmação equivalente a esta é:

(a) a gasolina acabou ou apareceu um defeito e o motor apagou.(b) se o motor apagou, então a gasolina acabou ou apareceu um defeito.(c) apareceu um defeito e a gasolina acabou e o motor não apagou.(d) a gasolina acabou e não apareceu um defeito e o motor apagou.(e) se o motor não apagou, então não apareceu um defeito e a gasolina não acabou.

Problema 72 — FCC - 2016. Edson não gosta de frango ou Marilda gosta de feijão e gosta dearroz. Uma afirmação que corresponda à negação lógica dessa é:

(a) Marilda não gosta de arroz ou não gosta de feijão e Edson gosta de frango.(b) Edson gosta de frango e Marilda não gosta de feijão e não gosta de arroz.(c) Se Edson não gosta de frango, então Marilda gosta de feijão e arroz.(d) Se Marilda não gosta de feijão e arroz, então Edson gosta de frango.(e) Edson gosta de arroz e Marilda gosta de frango e feijão.

Problema 73 — IBFC - 2016. De acordo com a lógica proposicional, a frase que é equivalentea: “Se Marcos estudou, então foi aprovado” é:

(a) Marcos não estudou e foi aprovado.(b) Marcos não estudou e não foi aprovado.(c) Marcos estudou ou não foi aprovado.(d) Marcos estudou se, e somente se, foi aprovado.(e) Marcos não estudou ou foi aprovado.

Page 44: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.9 P. 38

Problema 74 — FCC - 2016. Se João canta ou Maria sorri, então Josefa chora e Luíza nãogrita. Uma afirmação equivalente a afirmação anterior é:

(a) Se Luíza grita e Josefa não chora, então João não canta e Maria não sorri.(b) Se João não canta ou Maria não sorri, então Josefa não chora e Luíza grita.(c) João canta ou Maria sorri, e Josefa não chora e Luíza grita.(d) Se João canta, então Josefa chora e se Maria sorri, então Luíza grita.(e) Se Luíza não grita e Josefa chora, então João canta ou Maria sorri.

Problema 75 — FCC - 2016. Se a conexão com a internet cai, então não há possibilidade decomunicação. Uma afirmação que corresponde à negação lógica da afirmação anterior é:

(a) Se a conexão com a internet não cai, então há possibilidade de comunicação.(b) Não há possibilidade de comunicação ou a conexão com a internet cai.(c) A conexão da internet cai e há possibilidade de comunicação.(d) Se há possibilidade de comunicação, então a conexão com a internet não cai.(e) Ou a conexão com a internet cai, ou não há possibilidade de comunicação.

Problema 76 — FCC - 2016. Se João chegar bravo em casa, então Claudete foge para o quartoe Beto não entra em casa. Uma afirmação que corresponde à negação da afirmação anterior é:

(a) João não chega bravo em casa e, Claudete não foge para o quarto ou Beto entra em casa.(b) Se João não chega bravo em casa, então Claudete não foge para o quarto e Beto entra

em casa.(c) João chega bravo em casa e, Claudete não foge para o quarto ou Beto entra em casa.(d) Se Claudete não foge para o quarto ou Beto entra em casa, então João não chegou bravo

em casa.(e) Se Claudete foge para o quarto e Beto não entra em casa, então João chegou bravo em

casa.

Problema 77 — Vunesp - 2016. Uma afirmação equivalente à afirmação - Se Glória é dançarinaou cantora, mas não ambos, então Fábio não é ator - é:

(a) Se Fábio não é ator, então Glória é dançarina ou cantora, mas não ambos.(b) Se Fábio é ator, então Glória não é dançarina nem cantora ou Glória é dançarina e

cantora.(c) Se Fábio é ator, então Glória não é dançarina, mas é cantora.(d) Se Glória não é dançarina nem cantora ou é dançarina e cantora, então Fábio é ator.(e) Se Fábio não é ator, então Glória é dançarina, mas não é cantora ou Glória não é

dançarina, mas é cantora.

Problema 78 — FCC - 2016. Considere a afirmação: Se eu paguei o aluguel ou comprei comida,então o meu salário entrou na conta. Uma afirmação equivalente é:

(a) Se o salário não entrou na conta, então eu não paguei o aluguel e não comprei comida.(b) Se eu paguei o aluguel e comprei comida, então o meu salário entrou na conta.(c) O meu salário entrou na conta e eu comprei comida e paguei o aluguel.(d) Se o salário não entrou na conta, então eu não paguei o aluguel ou não comprei comida.(e) Se eu não paguei o aluguel e não comprei comida, então o meu salário não entrou na

conta.

Page 45: Introdução à Lógica e à Programação VisualIntrodução à

P. 39 Seção 1.10

1.10 – Raciocínio Lógico-Dedutivo

Agora, vamos discutir algumas definições importantes.Definição 1.10.1 Silogismo é a estrutura básica de um argumento ou um raciocínio dedutivo,o qual é formado por duas proposições denominadas premissas, das quais se tira uma terceiraque é a conclusão. A conclusão pode ser uma proposição verdadeira, sem que o silogismo sejaválido. Adicionalmente, as premissas podem ser falsas (uma ou as duas) e o silogismo válido.Quando o silogismo não é valido, dizemos que é uma falácia ou sofisma. Logo, o silogismo estárelacionado com a forma de raciocinar, ou seja, se o raciocínio está correto. Do grego, o termosilogismo (syllogismos) significa “conclusão” ou “inferência”.

Exemplo 1.29 Exemplos de silogismos válidos:

(a) • (premissa 1): Todo homem é mortal.• (premissa 2): Sócrates é homem.• (conclusão): Sócrates é mortal.

(b) • (premissa 1): Hoje está quente ou está frio.• (premissa 2): Hoje não está quente.• (conclusão): Hoje está frio.

(c) • (premissa 1): Todo brasileiro é sul-americano.• (premissa 2): Todo nordestino é brasileiro.• (conclusão): Todo nordestino é sul-americano.

(d) • (premissa 1): 2 + 3 = 5.• (premissa 2): 5 = 4 + 1.• (conclusão): 2 + 3 = 4 + 1.

Definição 1.10.2 Falácia é um “falso silogismo” uma vez que consiste em uma argumentação(raciocínio) inválida na sua construção. Assim, a falácia pode ser definida como um argumentoenganoso, uma ideia equivocada ou uma crença falsa.

Exemplo 1.30 Exemplo de falácia:

• (premissa 1): Todos os cisnes não são negros.• (premissa 2): Alguns pássaros são cisnes.• (conclusão): Todos os pássaros não são negros.

Para que as proposições anteriores sejam consideradas um silogismo, a conclusão deveria ser:Alguns pássaros não são negros. Logo, temos uma falácia.

Agora, vamos a mais uma definição importante: os quantificadores.Quantificadores são termos que indicam a quantos elementos de uma determinada classe se

aplica uma propriedade. Existem dois quantificadores principais: o quantificador universal e oquantificador existencial.

Definição 1.10.3 O quantificador universal indica que TODOS os elementos possuem ounão uma determinada propriedade. O quantificador universal é representado pelo símbolo ∀.

Definição 1.10.4 O quantificador existencial indica que PELO MENOS UM (ou seja,algum ou existe um) elemento que possui ou não uma determinada propriedade. O quantificadorexistencial é representado pelo símbolo ∃.

Page 46: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.10 P. 40

Exemplo 1.31 São verdadeiras as seguintes sentenças:

• Todo múltiplo de 4 é um número par;• Pelo menos um número par é múltiplo de 3;• Algum número par é múltiplo de 3;• Existe um número par que é múltiplo de 3.

Exemplo 1.32 São falsas as seguintes sentenças:

• Todo número par é múltiplo de 4;• Pelo menos um múltiplo de 4 é ímpar;• Algum múltiplo de 4 é ímpar;• Existe um múltiplo de 4 que é ímpar.

Vamos ver agora algumas observações importantes.

ObsQual é a negação de “todos são”?A resposta é: “nem todos são” ou “pelo menos um não é”.Um erro muito comum é achar que a negação de “todos são” é “todos não são”.Porém, a negação de uma sentença quantificada universalmente é uma sentença quantificadaexistencialmente.

ObsQual é a negação de “pelo menos um é”?A resposta é: “nenhum é” ou “Todos não são”.Um erro muito comum é achar que a negação de “pelo menos um é” é “pelo menos um nãoé”.Porém, a negação de uma sentença quantificada existencialmente é uma sentença quantifi-cada universalmente.

Agora, surge uma pergunta: Como testar se um determinado argumento ou umraciocínio dedutivo é um silogismo?

John Venn, em 1876, conseguiu discutir os silogismos através de diagramas, os quais setornaram um teste rápido e eficaz para validar silogismos. Ele propôs um métodos que contémquatro passos:

Passo 1: Utilize um diagrama, no formato apresentado a seguir, onde A, B e C representamas premissas:

Figura 1.9: Diagrama de Venn

Passo 2: Pinte as regiões vazias.Passo 3: Coloque um “X” se a região não é vazia.Passo 4: Se ao diagramar as premissas tivermos, automaticamente, diagramado também a

conclusão, então o argumento é valido; caso contrário, o argumento não é válido.

Page 47: Introdução à Lógica e à Programação VisualIntrodução à

P. 41 Seção 1.10

Figura 1.10: Possibilidades de Utilização do Diagrama de Venn

A Figura 1.10 ilustra algumas possibilidades de utilização do Diagrama de Venn.

Page 48: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.10 P. 42

Problema 79 — Negreiros & Miranda. Verifique se o argumento (raciocínio dedutivo) a seguiré um silogismo.

• (Premissa 1): Nenhum filósofo é rico.• (Premissa 2): Alguns matemáticos são filósofos.• (Conclusão): Alguns matemáticos não são ricos.

Solução. Vamos montar o Diagrama de Venn.

O silogismo é verdadeiro, pois existem alguns matemáticos que não são ricos.

Problema 80 — Negreiros & Miranda. Verifique se o argumento (raciocínio dedutivo) a seguiré um silogismo.

• (Premissa 1): Alguns quadrúpedes são leões.• (Premissa 2): Todos os leões são carnívoros.• (Conclusão): Alguns quadrúpedes são carnívoros.

Solução. Vamos montar o Diagrama de Venn.

A primeira premissa afirma que o conjunto dos quadrúpedes tem pelo menos um elementoem comum com o conjunto dos leões, portanto, colocamos um “X” na região de interseção entreos dois círculos. Contudo, essa região está dividida em duas partes pelo circulo C. É necessáriodescobrir em qual dessas duas partes deve ser colocado o X. Agora, como sabemos que os leõessão carnívoros, então poderíamos pensar em colocar o X na região de interseção dos três círculos.Porém, isso seria um equívoco, pois estamos diagramando apenas a primeira premissa, e ela nãoindica que os leões de quatro pés são ou não carnívoros. Por este motivo, colocamos o X nafronteira entre os carnívoros e os não carnívoros.

Page 49: Introdução à Lógica e à Programação VisualIntrodução à

P. 43 Seção 1.10

A segunda premissa afirma que o conjunto dos leões é um sob-conjunto do conjunto doscarnívoros. Para diagramar essa relação, pintamos a região que representa os leões que não sãocarnívoros. Observe que ao diagramar a segunda premissa fizemos com que o x não representasseum não carnívoro. Agora, podemos concluir que o X (que representa pelo menos um leão dequatro pés) deve ficar na interseção dos três círculos.

É importante ressaltar que as premissas indicam que pelo menos um leão de quatro pés sejacarnívoro. Mas é justamente isso que a conclusão afirma. Portanto, ao diagramar as premissas,diagramamos também a conclusão. Isso indica que se as premissas são verdadeiras, então aconclusão também é verdadeira, ou seja, o argumento é valido.

Problema 81 — Negreiros & Miranda. Verifique se o argumento (raciocínio dedutivo) a seguiré um silogismo.

• (Premissa 1): Todo M é P.• (Premissa 2): Todo S é M.• (Conclusão): Todo S é P.

Solução. Vamos montar o Diagrama de Venn.

Para diagramar a primeira premissa (“Todo M é P”) vamos pintar toda parte de M que nãoesteja contida em P (ou seja, que não esteja na interseção com P).

Para diagramar a primeira premissa (“Todo S é M”) vamos pintar toda parte de S que nãoesteja contida em M (ou seja, que não esteja na interseção com M).

Observe que ao diagramar as duas premissas, a conclusão já está diagramada. Note que sefôssemos diagramar a conclusão (“Todo S é P”) teríamos que pintar a parte de S não contida emP. Porém, esta região já está pintada. Logo, o argumento é valido.

Problema 82 — Negreiros & Miranda. Verifique a validade dos silogismos mostrados a seguir.Para isso, utilize o diagrama de Venn.

(a) • (Premissa 1): Alguns estudantes de matemática são excelentes alunos.• (Premissa 2): Todos os jogadores de xadrez estudam matemática.• (Conclusão): Todos os jogadores de xadrez são excelentes alunos.

(b) • (Premissa 1): Todo retângulo é paralelogramo.• (Premissa 2): Todo quadrado é retângulo.• (Conclusão): Todo quadrado é paralelogramo.

(c) • (Premissa 1): Todos os contos são tristes.• (Premissa 2): Nenhum verso é um conto.• (Conclusão): Nenhum verso é triste.

Page 50: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.10 P. 44

Problema 83 — Negreiros & Miranda. Verifique a validade dos silogismos mostrados a seguir.Para isso, utilize o diagrama de Venn.

(a) • (Premissa 1): Algum homem é inteligente.• (Premissa 2): Algum homem é burro.• (Conclusão): Algum burro é inteligente.

(b) • (Premissa 1): Nenhum A é B.• (Premissa 2): Nenhum B é C.• (Conclusão): Nenhum A é C.

Problema 84 — Negreiros & Miranda. Represente cada uma das seguintes proposições utili-zando o diagrama de Venn.

(a) Alguns pintores são escultores.(b) Todos os gatos são mamíferos.(c) Nenhum paulista é mineiro.

Problema 85 — Negreiros & Miranda. Verifique se os silogismos seguintes são válidos ousofismas:

(a) • (Premissa 1): Todos os franceses são europeus.• (Premissa 2): Descartes era francês.• (Conclusão): Descartes era europeu.

(b) • (Premissa 1): Alguns engenheiros são professores.• (Premissa 2): Nenhum engenheiro não comete erros.• (Conclusão): Nenhum professor não comete erros.

(c) • (Premissa 1): Nenhum agricultor é rico.• (Premissa 2): Todos os ricos são saudáveis.• (Conclusão): Nenhum agricultor é saudável.

(d) • (Premissa 1): Alguns bolivianos são índios.• (Premissa 2): Alguns índios vivem no Brasil.• (Conclusão): Alguns bolivianos vivem no Brasil.

(e) • (Premissa 1): Todo A é B.• (Premissa 2): Todo C é B.• (Conclusão): Todo C é A.

Problema 86 — Negreiros & Miranda. Dadas as proposições a seguir:

I Toda mulher é boa motorista.II Nenhum homem é bom motorista.III Todos os homens são maus motoristas.IV Pelo menos um homem é mau motorista.V Todos os homens são bons motoristas.

A negação da proposição V é:

(a) I.(b) II.(c) III.(d) IV.(e) Nenhuma das alternativas.

Page 51: Introdução à Lógica e à Programação VisualIntrodução à

P. 45 Seção 1.11

1.11 – Formação de Padrões e Sequências

Uma sequência é uma listagem de elementos (ou termos) de um conjunto qualquer que estãodispostos em certa ordem. Exemplo 1.33 São exemplos de sequências:

• O conjunto (0, 1, 2, 3, 4, 5, · · · ) é chamado de sequência ou sucessão dos números Naturais.• O conjunto (domingo, segunda-feira, terça-feira, quarta-feira, sexta-feira e sábado) é

chamado de sequência ou sucessão dos dias da semana.• O conjunto (0, 2, 4, 6, 8, · · · ) é chamado sucessão ou sequência dos números pares.

Assim, podemos observar que algumas sequências obedecem uma certa lógica quantitativa.Por exemplo, a sequência dos números pares (0, 2, 4, 6, 8, · · · ) pode ser obtida tomando-se o 0como valor inicial e, a partir dai, somando-se o valor 2 a cada elemento anterior para obter opróximo número da série.

• 0×2 = 2• 2×2 = 4• 4×2 = 6• 6×2 = 8 · · ·

A sequência dos números pares pode ainda ser obtida fazendo 2 ∗N , onde N é a sequênciados números naturais.

• 0×2 = 0• 1×2 = 2• 2×2 = 4• 3×2 = 6• 4×2 = 8 · · ·

Portanto, é possível encontrar o próximo número de uma sequência descobrindo-se o padrãoque a determina.

Problema 87 — Negreiros & Miranda. A seguir são apresentadas diversas sequências numéricasque obedecem certa lógica quantitativa. Para cada sequência, tente descobrir a lei que norteiaa sua construção e assim determinar o próximo elemento:

(a) 1,3,5,7,?(b) 2,7,12,17,22,27,?(c) 0,1,4,9,16,25,36,?(d) 0,4,16,36,64,?(e) 1,1,2,3,5,8,?(f) 1, 3, 5, 7, 9, 11, ?(g) 0, 2, 4, 6, 8, 10, ?(h) 3, 6, 9, 12, ?(i) 1, 4, 9, 16, ?(j) 37, 31, 29, 23, 19, 17, ?

Page 52: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.11 P. 46

Problema 88 — Negreiros & Miranda. Observe as figuras a seguir e desenhe a próxima figurada sequência. Em seguida, escreva a sequência numérica formada pelas figuras.

Problema 89 — Negreiros & Miranda. As figuras a seguir possuem números que representamuma sequência lógica. Complete com o número que está faltando.

Problema 90 Observe a sequência a seguir e determine o próximo número:16, 15, 13, 12, 10, 9, · · ·

Problema 91 Qual o valor de x na sequência 1, 2, 6, 39, x?

Problema 92 Determine x e y nas seguintes sequências:

(a) 6, 9, 18, 21, 42, 45, x, y(b) 7, 10, 9, 12, 11, x, y(c) 2, 3, 5, 7, 11, 13, 17, x, y(d) 0, 1, 4, 9, 16, 25, 36, 64, x, y(e) 2, 6, 18, 54, 162, x, y(f) 1, 5, 9, 13, 17, 21, x, y(g) 1, 3, 6, 10, 15, 21, x, y(h) 3, 9, 27, 81, 243, x, y

Page 53: Introdução à Lógica e à Programação VisualIntrodução à

P. 47 Seção 1.11

Problema 93 — PHILLIPS 2010. Mesmo trabalhando, Gabriel sempre gosta de criar, durante oexpediente, algum problema de lógica e matemática para desenvolver o seu raciocínio. Comorecepcionista de um Hotel, um de seus passatempos favoritos é reorganizar o quadro de chavesna sequência mostrada na figura abaixo. Dessa vez, ele pediu ao seu colega Marcos paradecifrar a sequência. Ajude o Marcos com a tarefa, substituindo os pontos de interrogação pornúmeros?

10 3 6 7 ?1 ? 5 4 9

Tabela 1.28: Quadro de Chaves.

Problema 94 Os números da sequência numérica (1, 2, 3, 2, 4, 6, 3, 6, 9, 4, 8, 12, · · · ) sãoobtidos por meio de determinada lógica de formação. Sendo assim, os três próximos númerosdessa sequência, imediatamente posteriores ao número 12 e que seguem a mesma lógica deformação, são:

(a) 12, 8, 4(b) 20, 25, 30(c) 5, 10, 15(d) 6, 12, 19(e) 10, 15, 20

Problema 95 Temos uma sequência de quatro números inteiros positivos, (a1 , a2 , a3 , a4), em que cada número é obtido somando 3 unidades ao número que antecede na sequência.Sabendo que a soma dos números da sequência é igual a 106, podemos afirmar corretamenteque o valor de a1 é igual a:

(a) 19(b) 22(c) 25(d) 28

Problema 96 A partir da sequência definida por an = (8, 24, 12, 36, 18, 54, a7, a8), assinale aalternativa que apresenta o correto valor para 3

√a7 ∗√a8.

(a) 26(b) 27(c) 28(d) 29

Problema 97 — Vunesp 2012. Uma criança possui várias etiquetas adesivas nas cores: amarelo[A] e vermelho [V], e quer enfeitar todas as 96 páginas de seu caderno, colando uma etiqueta emcada página, começando com a primeira página onde será colada uma etiqueta A e obedecendoa seguinte ordem de cores: A A A V V A A A V V · · · e assim sucessivamente, isto é, trêspáginas com uma etiqueta amarela em cada uma, seguida por duas páginas com uma etiquetavermelha em cada uma. Como ela só dispõe de 30 etiquetas vermelhas, então, a última etiquetavermelha será colada no seu caderno na página:

Page 54: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.11 P. 48

(a) 74(b) 75(c) 76(d) 77(e) 78

Problema 98 — FUNRIO 2012. A sequência (5, 13, 25, 41, X, 85) obedece a uma regra lógica.O termo X dessa série é:

(a) 45(b) 51(c) 57(d) 61(e) 69

Problema 99 — FUNRIO 2012. A sequência 1, 4, 10, 22, 46, 94, · · · , obedece a uma regralógica. O termo dessa série subsequente ao número 94 é:

(a) 112(b) 130(c) 165(d) 190(e) 215

Problema 100 — FCC 2012. Observe que em cada um dos dois primeiros pares de palavrasa seguir, a palavra da direita foi formada a partir da palavra da esquerda, utilizando-se ummesmo critério.

DIANA - ANDACRATERA - ARCABROCHES - ?Com base nesse critério, a palavra que substitui corretamente o ponto de interrogação é:

(a) RECO(b) ROBE(c) SECO(d) SEBO(e) SOBE

Problema 101 — SPPREV 2012. O próximo número da sequência –2, 6, –18, 54 · · · é:

(a) -72(b) -80(c) -108(d) -162(e) -364

Page 55: Introdução à Lógica e à Programação VisualIntrodução à

P. 49 Seção 1.11

Problema 102 — TRT 6R 2012. Em uma praia chamava a atenção um catador de cocos (a águado coco já havia sido retirada). Ele só pegava cocos inteiros e agia da seguinte maneira: oprimeiro coco ele colocava inteiro de um lado; o segundo ele dividia ao meio e colocava asmetades em outro lugar; o terceiro coco ele dividia em três partes iguais e colocava os terçosde coco em um terceiro lugar, diferente dos outros lugares; o quarto coco ele dividia em quatropartes iguais e colocava os quartos de coco em um quarto lugar diferente dos outros lugares.No quinto coco agia como se fosse o primeiro coco e colocava inteiro de um lado, o seguintedividia ao meio, o seguinte em três partes iguais, o seguinte em quatro partes iguais e seguiana sequência: inteiro, meios, três partes iguais, quatro partes iguais, inteiro, meios, três partesiguais, quatro partes iguais. Fez isso com exatamente 59 cocos quando alguém disse ao catador:eu quero três quintos dos seus terços de coco e metade dos seus quartos de coco. O catadorconsentiu e deu para a pessoa:

(a) 52 pedaços de coco.(b) 55 pedaços de coco.(c) 59 pedaços de coco.(d) 98 pedaços de coco.(e) 101 pedaços de coco.

Problema 103 — TRT 6R 2012. Cinco pessoas caminham enfileiradas. A primeira, chamadade número 1, a segunda chamada de número 2, a terceira chamada de número 3, a quartachamada de número 4 e a quinta chamada de número 5. Após 15 minutos de caminhada,a número 1 para, deixa todas as outras passarem por ela e continua a caminhada atrás detodas as outras. Após 20 minutos, as duas primeiras pessoas da fila, a número 2 e a número3, param e deixam que todos os outros, ordenadamente, passem a frente, e seguem atrás detodos, mantendo a ordenação, com o 2 à frente do 3. E assim essa alternância segue. Apóso intervalo de 15 minutos, a pessoa a frente para e os demais passam. Em seguida, após ointervalo de 20 minutos, as duas pessoas que estavam à frente param e deixam todas as outraspassarem e continuam a caminhada atrás delas, e na mesma ordem em que estavam entre si.Volta a acontecer o intervalo de 15, depois o de 20, volta o de 15 e segue. Essa alternânciaocorre ordenadamente, com todas as componentes e da maneira como foi descrita durante 2horas e 40 minutos. Após esse tempo, todos param. A pessoa que, nesse momento de parada,ocupa a última posição na fila é a chamada de número:

(a) 1.(b) 2.(c) 3.(d) 4.(e) 5.

Problema 104 Escreva os cinco primeiros termos da sequência definida pela fórmula: nˆ2 + 1,onde N é a sequência dos números naturais.

Problema 105 Determine o próximo número das sequências a seguir.

(a) 19, 22, 25, 28, ?(b) 42, 38, 34, 30, ?(c) 12, 24, 48, 96, ?(d) 240, 120, 60, 30, ?

Page 56: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.11 P. 50

Problema 106 Determine o próximo número das sequências a seguir.

(a) 6, 7, 9, 12, 16, 21, x(b) 3, 6, 8, 16, 18, 36, x(c) 5, 8, 7, 10, 9, 12, 11, x(d) 2, 7, 17, 32, 52, x(e) 4, 9, 15, 23, 34, x(f) 5, 10, 17, 26, 37, x

Problema 107 — TCE SP 2012. Observe as sequências de letras obtidas com uma mesma ideia.I. A; B; D; G; K; P.II. B; C; E; H; L; Q.III. C; D; F; I ; M; R.IV. D; E; ?; J; ?; S.Utilizando a mesma ideia, a sequência IV. deverá ser completada, respectivamente, com as

letras:

(a) F e K.(b) G e O.(c) G e N.(d) O e Q.(e) R e U.

Problema 108 — TCE SP 2012. A sequência D é obtida com a seguinte regra: exceto o primeirotermo, que é escolhido aleatoriamente, todos os outros são obtidos com este cálculo: o dobrodo termo anterior menos dois. A sequência T é obtida com a seguinte regra: exceto o primeirotermo, que é escolhido aleatoriamente, todos os outros são obtidos com este cálculo: o triplodo termo anterior menos três. Suponha a sequência T e a sequência D ambas com o primeirotermo igual a 3. A diferença entre o quinto termo de T e o quinto termo de D é:

(a) 90.(b) 94.(c) 97.(d) 105.(e) 112.

O site a seguir traz uma série de jogos e exercícios envolvendo padrões e sequências.

v Saiba mais

Page 57: Introdução à Lógica e à Programação VisualIntrodução à

P. 51 Seção 1.12

1.12 – Jogos Lógicos

Os jogos lógicos (ou jogos de raciocínio) constituem uma forma interessante de proporproblemas envolvendo raciocínio lógico e matemático. Eles estimulam a investigação de novassoluções, a criatividade e a autonomia do aprendiz. Propiciam a simulação de situações-problemaque exigem soluções concretas e estruturadas, o que incentiva o planejamento de ações. Destaforma, eles podem ser importantes aliados da estruturação do pensamento computacional.

Então, vamos logo ver um exemplo.

Problema 109 — Negreiros & Miranda. Um crime foi cometido por uma pessoa de um grupode cinco suspeitos: André, Bernardo, Caio, Daniel e Edu. Perguntados sobre quem era oculpado cada um deles afirmou:

• André: “Sou inocente”• Bernardo: “Caio é o culpado”• Caio: “Edu é o culpado”• Daniel: “André disse a verdade”• Edu: “Bernardo mentiu”

Sabendo-se que apenas um dos suspeitos mentiu e que todos os outros disseram a verdade,pode-se concluir que o culpado é?

Solução. Primeiramente, temos como informação que apenas um mentiu e que os outrosquatro falaram a verdade.

Ao ler as afirmações vemos que duas são contraditórias: Caio e Edu não podem serculpados ao mesmo tempo, pois apenas uma pessoa cometeu o crime.

Assim, ou Bernardo está mentindo ou Caio está mentindo, e os outro falam a verdade.Podemos então assinalar V (verdadeiro) ou F(falso) nas afirmações:

1a Opção 2a OpçãoAndré: V André: V

Bernardo: V Bernardo: FCaio: F Caio: VDaniel: V Daniel: VEdu:V Edu:V

Tabela 1.29: As Duas Opções Possíveis para o Problema.

Agora, comparando os valores lógicos de V ou F com as afirmações, temos que:Analisando a 1a Opção: André: “Sou inocente” (V) ok!Bernardo: “Caio é o culpado” (V) ok!Caio: “Edu é o culpado” (F) ok!Daniel: “André disse a verdade” (V) ok!Edu: “Bernardo mentiu” (V) Note que isso não é, pois já concluímos que Bernardo falou a

verdade.Analisando a 2a Opção: André: “Sou inocente” (V) ok!Bernardo: “Caio é o culpado” (F) ok!Caio: “Edu é o culpado” (V) ok!Daniel: “André disse a verdade” (V) ok!Edu: “Bernardo mentiu” (V) ok!Como não houve nenhuma contradição, concluímos que Bernardo realmente mentiu, então

Caio não é o culpado e Edu é o culpado.

Page 58: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.12 P. 52

Resposta: Edu é o culpado!

Vamos ver mais um exemplo. Agora, observe os seguintes grupos de palavras:

I Seca, peca, saco, naco, taco;II Carro, barro, morte, sorte, porte;III Pelo, zelo, mente, pente, dente;IV Pote, mote, porte, toco, reco;V Cama, fama, rama, manda, anda.

Para responder as questões, considere as colocações a seguir:

• As primeiras duas palavras de cada linha rimam;• As três últimas palavras de cada linha rimam;• Cada palavra de uma linha começam com uma letra diferente;• Cada linha contém palavras com o mesmo número de letras.

Problema 110 Que linha satisfaz todas as condições dadas?

Solução. Observe que a única linha que satisfaz todas as condições é a linha II.

Problema 111 Agora, pense e responda, qual das substituições a seguir tornaria outra linhaaceitável?

(a) Caco, no lugar de saco, no conjunto I.(b) Corte, no lugar de sorte, no conjunto II.(c) Gente, no lugar de pente, no conjunto III.(d) Lote, no lugar de pote, no conjunto IV.(e) Onda, no lugar de fama, no conjunto V.

Solução. Observe que a única alteração que irá fazer com que mais uma linha atenda todasas condições é Caco, no lugar de saco, na linha I. Então, a resposta é a alternativa (a).

Problema 112 Seguindo as mesmas condições, que palavra completa de maneira adequada alinha a seguir?

Jeca beca ? cota nota

(a) Pino.(b) Seta.(c) Bota.(d) Lota.(e) Jota.

Solução. Observe que a única palavra que irá completar a linha de maneira a atender todasas condições é Lota. A linha completa ficaria: jeca beca lota cota nota. Então, a resposta é aalternativa (d).

Page 59: Introdução à Lógica e à Programação VisualIntrodução à

P. 53 Seção 1.12

Vamos ver mais um exemplo.

Problema 113 — FGV. Os computadores estão presentes na vida da maioria das pessoas.Para não ficar desatualizado, o Sr. Aderbal deseja comprar um computador pessoal. Essecomputador, para satisfazer suas necessidades, precisa ser muito rápido. Sabe-se que, além doprocessador, todos os periféricos influenciam no desempenho geral do computador. Caso o Sr.Aderbal compre um Core i7 3,2 GHz, um dos processadores mais rápidos do mercado, pode-seconcluir que:

(a) Com certeza o computador atenderá suas necessidades.(b) Pode ser que esse computador atenda suas necessidades.(c) Esse computador não atenderá suas necessidades.(d) Possuindo uma placa de vídeo, este computador com certeza atenderá suas necessidades.(e) As alternativas (b) e (d) estão corretas.

Solução. Primeiro, vamos analisar o texto cuidadosamente:

• Os computadores estão presentes na vida da maioria das pessoas: Essa frase nãotraz nenhuma informação relevante para a solução do problema.

• Para não ficar desatualizado, o Sr. Aderbal deseja comprar um computadorpessoal: Essa afirmativa também não traz nenhuma informação relevante para a soluçãodo problema.

• Esse computador, para satisfazer suas necessidades, precisa ser muito rápido:Nessa frase, há uma afirmação relevante: o computador que o Sr. Aderbal deseja comprarprecisa ser muito rápido para satisfazer suas necessidades. Assim, não pode ser qualquercomputador. Porém, não sabemos o quão rápido o computador precisa ser.

• Sabe-se que, além do processador, todos os periféricos influenciam no desem-penho geral do computador: Essa afirmação indica que o processador e os periféricossão os componentes que influenciam no desempenho do computador. Então, diversoscomponentes influenciam o desempenho geral do computador. Mesmo não sabendo queperiféricos são esses ou para que são utilizados.

• Caso o Sr. Aderbal compre um Core i7 3,2 Ghz, um dos processadores maisrápidos do mercado · · · : Aqui temos uma afirmação importante. O Core i7 3,2 GHz éum dos processadores mais rápidos do mercado.

Após interpretar cuidadosamente o texto, podemos retornar às alternativas da questão:

(a) Com certeza o computador atenderá suas necessidades. Isso não podemos afirmar, pois nãosabemos quais são as necessidades do Sr. Aderbal.

(b) Pode ser que esse computador atenda suas necessidades. Sim, pode ser. Essa alternativaapresenta uma possibilidade real, que pode atender as necessidades do Sr. Aderbal.

(c) Esse computador não atenderá suas necessidades. Não sabemos as necessidade do Sr.Aderbal, mas sabemos que existe uma possibilidade de que o computador atenda suasnecessidades. Portanto, não podemos afirmar com certeza que esse computador não atenderáo Sr. Aderbal.

(d) Possuindo uma placa de vídeo, este computador com certeza atenderá suas necessidades. Otexto não traz nenhuma informação sobre a importância ou necessidade de uma placa devídeo. Logo, não podemos afirmar nada a esse respeito.

(e) As alternativas (b) e (d) estão corretas. Como observado anteriormente, nada podemosafirmar sobre a alternativa (d).

Portanto, a resposta é a letra (b).

Page 60: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.13 P. 54

1.13 – Exercícios Propostos sobre Jogos Lógicos

Problema 114 — SERATES 1998. Quatro amigos vão ao museu e um deles entra sem pagar.Um fiscal quer saber quem foi o penetra. Ao serem interrogados pelos fiscal, eles afirmaram:

• Eu não fui, diz o Benjamim.• Foi o Pedro, diz o Carlos.• Foi o Carlos, diz o Mário.• O Mário não tem razão, diz o Pedro.

Sabe-se que só um deles mentiu. Quem não pagou a entrada?

Problema 115 — MORGADO; CESAR 2008. Ana, Beatriz, Célia e Dora apostaram uma corrida.Ana disse: Célia ganhou, Beatriz chegou em 2o lugar.Beatriz disse: Célia chegou em 2o lugar e Dora, em 3o.Célia disse: Dora foi a última; Ana, a 2a.Cada uma das meninas disse uma verdade e uma mentira.Qual a colocação de cada menina?

Problema 116 — SERATES 1998. Roberto, Toni e Hipácia são irmãos. Indagados sobre averacidade das afirmações dos três, obteve-se as seguintes declarações:

• “Hipácia mente”, diz Roberto.• “Toni mente”, diz Hepácia.• “Roberto e Hipácia mentem”, diz Toni.

Quem é então que fala a verdade?

Problema 117 — MORGADO; CESAR 2008. Quatro suspeitos de praticar um crime fazem asseguintes declarações:

• João: Carlos é o criminoso.• Pedro: eu não sou criminoso.• Carlos: Paulo é o criminoso.• Paulo: Carlos está mentindo.

Sabendo que apenas um dos suspeitos disse a verdade, determine quem é o criminoso e quemfalou a verdade.

Problema 118 — MORGADO; CESAR 2008. Na porta da minha casa, passam dois ônibus, emA e outro B. Um deles passa pelo Ministério da Fazenda; o outro, não. Na casa ao lado daminha, moram dois irmãos. Um só diz a verdade, outro só diz mentira. Ao indagar sobre qualônibus tomar para chegar ao Ministério da Fazenda, um dos irmãos me disse: “Se meu irmãoestivesse aqui, mandaria você tomar o ônibus A”. Que ônibus devo tomar?

Page 61: Introdução à Lógica e à Programação VisualIntrodução à

P. 55 Seção 1.13

Problema 119 — MORGADO; CESAR 2008. A princesa Aqualtune tinha 3 turbantes: A, Be C. Ela pintou um de vermelho, um de branco e outro de azul, não necessariamente nessaordem. Somente uma das afirmativas a seguir é verdadeira:

I A é vermelho.II B não é vermelho.III C não é azul.

Qual a cor de cada turbante?

Problema 120 — AFTN. Aline, Bianca e Camila, são três amigas que têm os carros, nãonecessariamente nesta ordem, um Gol, um Uno e um Pálio. Um dos carros é prata, o outrovermelho e o outro preto. O carro de Aline é o prata; O carro de Camila é o pálio; O carro deBianca não é vermelho e não é o Gol. As cores do Gol, do Uno e do Pálio são, respectivamente:

(a) prata, vermelho e preto(b) preto, prata e vermelho(c) preto, vermelho e prata(d) prata, preto e vermelho(e) vermelho, preto e prata

Problema 121 — SERATES 1997. Um estudante deseja realizar um plano de estudos individuaisdurante o semestre. Para atingir seu objetivo deve realizar os procedimentos que seguem, emdeterminada ordem. Depois de examinar os procedimentos listados, assinale a alternativa deresposta que julgar traduzir a ordem correta.

I Montagem de um plano de estudos para cada disciplina (matéria) e elaboração de umcronograma;

II Classificação das disciplinas em função do grau de dificuldade e da importância de cadauma;

III Levantamento das disciplinas do semestre;IV Execução; condições, controle.

(a) I, II, III, IV.(b) II, I, IV, III.(c) V, II, I, III.(d) III, II, IV, I.(e) III,II,I,IV.

Problema 122 — www.somatematica.com.br. Duas salas estão ligadas entre si por um corre-dor. Na primeira sala existem 3 lâmpadas (a, b, c), que estão ligadas a 3 interruptores (1, 2, 3)localizados na segunda sala. Como saber que interruptor corresponde a cada lâmpada tendosó uma oportunidade de passar de uma sala para a outra? Considere que não há possibilidadede espreitar de uma sala para a outra.

Page 62: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.13 P. 56

Problema 123 — www.somatematica.com.br. Tente descobrir o nome e o número do quartode hotel em que Fernando, Carlos e Joel estavam hospedados:

• Pessoas: Fernando, Carlos e Joel.• Lugares: Recife, Fortaleza e Porto Seguro• N o do quarto: 305, 419, 526.

I A pessoa de Porto Seguro deixa seu quarto no 419 para ir fazer compras.II Uma hora depois, liga para Carlos que está hospedado em um hotel em Recife.III Enquanto isso, Joel vê televisão no seu quarto no 526.

Problema 124 — SERATES 1997. Como colocar em linha reta três caçadores (X), três lobos(Y), três cabras (W) e três couves (Z), sem perigo para a paz e sem perigo de destruições, nãocolocando, portanto, um caçador junto a um lobo, um lobo junto a uma cabra e uma cabrajunto a uma couve e, sem manter lado a lado, os dois caçadores, dois lobos, duas cabras e duascouves?

Para responder as duas próximas questões considere o seguinte trecho: “João é um viajante.Para se divertir vai ao cinema, ao teatro, ao museu ou ao parque. João vai ao teatro só quandonão existe cinema na cidade. Ele sempre vai ao museu se existe um na cidade, mas ele sempreprefere ir ao teatro do que ao parque. Quando João passou por Lazerópolis , ele foi ao teatro.João conhecia todas as opções de lazer da cidade e saiu para se divertir somente uma vez.”

Problema 125 — SERATES 1997. Qual (is) das seguintes afirmativas é (são) verdadeira (s)?

(a) Não existe cinema em Lazerópolis;(b) Existe um museu em Lazerópolis;(c) Existe um parque em Lazerópolis;(d) Não existe um museu em Lazerópolis;(e) Não existe um parque em Lazerópolis.

Problema 126 — SERATES 1997. Quando João visitou Tediópolis ele não saiu do hotel, apesarde conhecer todas as opções de lazer da cidade.

(a) Não existem opções de lazer em Tediópolis;(b) Não existe teatro em Tediópolis;(c) Não existe cinema em Tediópolis;(d) Pode haver museu em Tediópolis;(e) Pode haver um teatro em Tediópolis.

Problema 127 — ANPAD. Cinco CDs de músicas de estilos diferentes (clássico, popular,sertanejo, rock e samba) estão dispostos em uma pilha. O sertanejo está abaixo do clássico eacima do popular. O samba está acima do rock, e este está abaixo do sertanejo. O clássico eo sertanejo estão encostados um no outro, assim como o sertanejo e o rock. Então, pode-seafirmar que os estilos dos CDs que estão no topo e na base da pilha são, respectivamente:

(a) Clássico e popular;(b) Clássico e rock;(c) Samba e popular;(d) Samba e rock;(e) Sertanejo e popular.

Page 63: Introdução à Lógica e à Programação VisualIntrodução à

P. 57 Seção 1.13

Problema 128 — SERATES 1997. Quando dois rios se unem, o que determina qual é o afluenteé o fluxo médio de cada rio. O que for menor é o afluente. Considerando que o famoso rioSena, símbolo nacional da França, une-se com o rio Yonne antes de cruzar Paris e seus fluxosmédios são, respectivamente, 77m3 e 95m3, podemos inferir que:

(a) Um dos maiores símbolos nacionais da França, o rio Sena, não pode ser afluente de outrorio.

(b) O rio que banha Paris é, na verdade, o rio Yonne e não o Sena.(c) O critério de fluxo médio ao deve ser adotado neste caso. O Sena é o principal, devido à

sua maior extensão.(d) O rio Sena é o rio afluente porque possui um fluxo médio inferior ao rio Yonne.(e) O rio Yonne é o afluente porque possui um fluxo médio maior que o rio Sena.

Problema 129 — SERATES 1997. Segundo Gottfried Leibniz, no Prefácio à Ciência Geral,“como a felicidade consiste na paz de espírito e como a duradoura paz de espírito depende daconfiança que tenhamos no futuro, e como essa confiança é baseada na ciência que devemosconhecer da natureza de Deus e da alma”, segue-se que:

(a) Para uma duradoura paz de espírito, necessita-se ser feliz.(b) A confiança é decorrente da felicidade.(c) A confiança é decorrente da paz de espírito.(d) A ciência é necessária à verdadeira felicidade.(e) A felicidade é necessária à ciência.

Problema 130 — SERATES 1997. Para ter sucesso no próximo século um país, como o Brasil,deve ter as seguintes características: governo estável, funcionando dentro da legalidade –incluindo as leis comerciais – e trazendo condições previsíveis para os negócios. Uma alta taxade poupança interna também é desejável, pois permite que companhias e empresários tenhamacesso a financiamento a boas taxas de juros. Na China e no Sudoeste Asiático, um quarto darenda vai para a poupança.

De acordo com o texto, a única alternativa que NÃO procede é:

(a) Governo estável, com leis comerciais que sejam seguidas ajudarão um país a ter sucessoo próximo século.

(b) Os negócios serão facilitados, no próximo século, caso o nível de poupança interna doBrasil aumente.

(c) Na China e no sudeste Asiático a taxa de juros gera um quarto da poupança interna.(d) A China e o sudeste Asiático têm grandes chances de obter sucesso no próximo século

devido ao alto nível de poupança interna.(e) Boas taxas de juros podem ser conseguidas com uma poupança interna elevada.

Problema 131 — FGV. O dono de uma livraria enfrenta um problema para administrar seuestoque. Ele precisa optar por uma metodologia que mantenha uma grande quantidade delivros organizada, de forma que seus funcionários possam encontrar o que o cliente deseja.Sabe-se que 100% dos livros que vende são para os alunos de um colégio de 1o e 2o grauslocalizado em frente à sua loja e que, conhecendo os hábitos de seus clientes, os pequenosestudantes, que normalmente já viram o livro que desejam mas sempre esquecem o nome doautor e o nome do livro, a forma mais rápida e prática de organizar seu estoque atendendosuas necessidades é:

Page 64: Introdução à Lógica e à Programação VisualIntrodução à

Seção 1.13 P. 58

(a) Disciplina / Assunto / Cor da capa.(b) Autor / Nome do Livro.(c) Editora / Autor / Nome do livro.(d) Assunto / Editora / Autor / Nome do Livro.(e) Disciplina / Assunto / Editora / Autor / Nome do Livro.

Problema 132 — FGV. Dois dicionários de sinônimos e antônimos de uma mesma línguaapresentam definições diferentes para uma mesma palavra. Os dois são de autores diferentes eproduzidos na mesma época. Podemos concluir que:

(a) Os dois dicionários estão errados.(b) Os dois dicionários estão corretos.(c) Os dois autores são inimigos.(d) Os dois dicionários podem ser incompletos, mas corretos.(e) Os dois dicionários podem ser completos e corretos.

Problema 133 — Negreiros & Miranda. Para que certa dieta seja efetiva, ou seja, proporcioneperda de peso corporal à pessoa que a ela se submete, é necessário que seja administradaexatamente como prescrita por um nutricionista qualificado. A dieta é administrada exatamentecomo prescrita por um nutricionista qualificado apenas se a pessoa que a ela se submete pagapor uma consulta particular com esse profissional. Sabe-se que, em geral, nutricionistasqualificados cobram valores de consulta acessíveis a apenas uma pequena parcela da populaçãobrasileira. A partir das informações acima, é possível concluir que:

(a) Se uma pessoa administra a dieta exatamente como prescrita por um nutricionistaqualificado, conseguirá perder peso corporal.

(b) Uma pessoa que não possua renda elevada não poderá perder peso corporal por meiodessa dieta.

(c) Entre as pessoas que se submeterem a essa dieta, a proporção das que possuem altarenda deverá ser superior à proporção das que possuem baixa renda.

(d) Se uma pessoa não perde peso corporal ao administrar essa dieta, é porque não aadministrou exatamente como prescrita por um nutricionista qualificado.

(e) Se uma pessoa não paga por uma consulta particular com um nutricionista qualificado,não perderá peso corporal ao administrar essa dieta.

Problema 134 — www.todamateria.com.br. Quatro mulheres são suspeitas de praticar umcrime. Elas fazem as seguintes declarações:

• Janaína: Cacilda é a criminosa.• Penélope: eu não sou criminosa.• Cecília: Paulete é a criminosa.• Paulete: Cacilda está mentindo.

Sabendo que apenas uma das suspeitas está mentindo, determine quem é a criminosa.

(a) Janaína.(b) Penélope.(c) Cecília.(d) Paulete.

Page 65: Introdução à Lógica e à Programação VisualIntrodução à

P. 59

2 |Fundamentos Matemáticos para aComputação

Este capítulo tem por finalidade resgatar e consolidar conceitos fundamentais da matemática quesão comumente utilizados na área de computação. O surgimento e o desenvolvimento da ciênciada computação estão completamente entrelaçados com a matemática. As principais disciplinas daciência da computação, tais como algoritmos, estruturas de dados, bancos dedados, computaçãográfica, redes de computadores, compiladores, linguagens de programação, inteligência artificial,dentre outras, baseiam-se fortemente na matemática. Desta forma, um profissional da área dacomputação que possui sólidos conhecimentos em matemática será capaz de solucionar problemascomplexos, desenvolvendo soluções claras, bem estruturadas, inovadoras, corretas e eficientes.Logicamente, as empresas buscam e valorizam profissionais com esse perfil. Assim, a matemáticaé a melhor amiga da computação e dos profissionais de sucesso. Vamos fazer amizade? Vamosestreitar nossos laços de amizade com a matemática? Vamos nessa! Partiu!

2.1 – Expressões Aritméticas

Aritmética é a parte da matemática que lida com as operações numéricas: soma, subtração,divisão e multiplicação. O estudo da aritmética é importante porque, para que seja possível resolverproblemas mais complexos, é necessário compreender bem essas quatro operações matemáticas.Além disso, essas operações são muito utilizadas em situações do cotidiano, ou seja, do dia a dia.Por exemplo, você precisa somar os valores dos produtos em uma compra na padaria a fim desaber o valor total a pagar, você precisa calcular quanto deve ser o seu troco e, talvez, dividir ovalor do refrigerante São Geraldo de 2 litros com os amigos.

Os operadores aritméticos definem as operações aritméticas que podem ser realizadassobre os números inteiros e reais.

• + (adição)• − (subtração)• ∗ ou × ou . (multiplicação)• / ou : (divisão)

Na prática, é comum que uma única expressão aritmética inclua várias operações. Nestesentido, é fundamental saber qual operação deverá ser executada primeiro. Em uma expressãoaritmética, deve-se resolver primeiro: i) parênteses ( ), colchetes [ ] e chaves , ii) potência ouraiz, iii) multiplicação ou divisão e, iv) soma ou subtração.

Vamos resolver alguns exercícios bem simples.

Problema 135 Resolva a expressão: 2 + 6 ×3 - 7 – 8 / 2

Solução. Inicialmente, faça as multiplicações e/ou divisões: 2 + 6 ×3 - 7 - 8 / 2Em seguida, execute as somas ou subtrações: 2 + 18 -7 - 4 = 20 – 11 = 9

Problema 136 Resolva a expressão: 5 – (4+2) + 1

Solução. Primeiro, resolva os parênteses: 5 – (4+2) + 1Siga o cálculo com as chaves: 5 – 6 + 1 = -1 + 1 = 0

Page 66: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.1 P. 60

Problema 137 Resolva a expressão: -1 + [7 – 8 + (3 – 5)]

Solução. Inicialmente, resolva os parênteses: -1 + [7 – 8 + (3 – 5)]Em seguida, calcule os colchetes: -1 + [7 – 8 – 2]Por fim, siga o cálculo com as chaves: -1 – 3 = -4

Vamos lembrar agora alguma propriedades interessantes das operações aritméticas:

• a + b = b + a;• (a + b) + c = a + (b + c);• se a < b, então a + c < b + c;• se a + c < b + c, então a < b;• se a + c = b + c, então a = b;• a < b e c < d, então a + c < b + d;• Se a × b = 0, então a = 0 ou b = 0;• a × b = b × a;• a × (b × c) = (a × b) × c;• (a + b) × c = a × c + b × c;• c x (b - a) = c x b - c x a;• Se a < b e c > 0, então c × a < c × b;

Problema 138 Resolva a expressão: 33 + 23 − 3×2

Solução. Primeiro passo: resolvemos as potências.33 + 23 − 3×2 = 27 + 8− 3×2Segundo passo: resolvemos a multiplicação.27 + 8− 3×2 = 27 + 8− 6Terceiro passo: como soma e subtração são de mesma prioridade, resolvemos a soma primeiro,

pois aparece antes da subtração.27 + 8− 6 = 35− 6Quarto passo: resolvemos a última operação, que é a subtração.35− 6 = 29Portanto, 33 + 23− 3×2 = 29

O vídeo a seguir traz a resolução de alguns problemas envolvendo expressões aritméticas.

v Saiba mais

Page 67: Introdução à Lógica e à Programação VisualIntrodução à

P. 61 Seção 2.2

2.2 – Aritmética Modular

Quando dividimos dois inteiros, temos uma equação na seguinte forma:

A

B= Q resto R (2.1)

Note que:

• A é o dividendo;• B é o divisor;• Q é o quociente;• R é o resto;

Muitas vezes estamos interessados somente no valor do resto da divisão de A por B. Nessescasos, podemos utilizar o operador resto (do inglês modulo, abreviado como mod). Usando osmesmos A, B, Q e R descritos anteriormente, podemos escrever:

Amod B = R (2.2)Podemos ler essa expressão como A módulo B é igual a R, onde R é o módulo (ou resto) da

divisão de A por B.Vamos ver um exemplo:

Problema 139 Calcule o valor de 13 mod 5.

Solução. 135 = 2 resto 3

Logo, 13 mod 5 = 3.

A operação módulo tem um comportamento interessante, que se assemelha a um relógio.Vejamos no que resulta a divisão de números consecutivos por 3.

03 = 0 resto 013 = 0 resto 123 = 0 resto 233 = 1 resto 043 = 1 resto 153 = 1 resto 263 = 2 resto 0O resto começa em 0 e, em seguida, vai sendo incrementado de 1 em 1, até que seja um a

menos do que o número pelo qual estamos dividindo. Depois disso, a sequência se repete.Desta forma, podemos usar círculos para visualizar o operador módulo.Nós escrevemos 0 no topo de um círculo e, continuando no sentido horário, escrevemos os

números inteiros 1, 2 · · · até o valor do quociente menos um.Por exemplo, se calcularmos os valores de 0 mod 12 até 12 mod 12, chegaríamos a um relógio

convencional.A partir dessa característica, podemos conceber um método prático e rápido para calcular o

resultado de A mod B.

(a) Construa este relógio para o tamanho B;(b) Inicie no 0 e mova-se em volta do relógio por A passos;(c) Onde pararmos será nossa solução.

ObsSe o número é positivo, vamos no sentido horário, se é negativo, nós vamos no sentidoanti-horário.

Page 68: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.2 P. 62

Figura 2.1: Relógio Convencional

Problema 140 Calcule 8 mod 4.

Solução. Construa um relógio com os números (ponteiros) 0, 1, 2 e 3. Inicie no 0 e, nosentido horário, passe pelos ponteiros 8 vezes, o que vai resultar em: 1, 2, 3, 0, 1, 2, 3, 0. Observeque terminamos no ponteiro 0. Logo, 8 mod 4 = 0.

Problema 141 Calcule 7 mod 2.

Solução. Construa um relógio com os números (ponteiros) 0 e 1. Inicie no 0 e, no sentidohorário, passe pelos ponteiros 7 vezes, o que vai resultar em: 1, 0, 1, 0, 1, 0, 1. Observe queterminamos no ponteiro 1. Logo, 7 mod 2 = 1.

Problema 142 Calcule -5 mod 3.

Solução. Construa um relógio com os números (ponteiros) 0, 1 e 2. Inicie no 0 e, no sentidoanti-horário, passe pelos ponteiros 5 vezes, o que vai resultar em: 2, 1, 0, 2, 1. Observe queterminamos no ponteiro 1. Logo, -5 mod 3 = 1.

Generalizando, se temos A mod B e somarmos A a um múltiplo de B, iremos terminar namesma posição. Assim:

Amod B = (A+K×B) modB para qualquer inteiroK. (2.3)

Exemplo 2.1 Vamos ver um exemplo.3 mod 10 = 313 mod 10 = 323 mod 10 = 333 mod 10 = 343 mod 10 = 3

ObsPor fim, vale destacar que muitas linguagens de programação possuem um operadormod, que, em geral, é representado pelo símbolo %. Assim, nestas linguagens 8 mod 4 érepresentado por 8%4.

Page 69: Introdução à Lógica e à Programação VisualIntrodução à

P. 63 Seção 2.2

ObsEm algumas linguagens, se você tentar calcular o módulo de um número negativo, vocêirá obter como resultado um número negativo. Se você calcular o resultado de um númeronegativo. Por exemplo, −5%3 = −2.

Problema 143 Com relação ao resto da divisão entre dois números inteiros, assinale a alterna-tiva verdadeira:

(a) O resto r de uma divisão sempre será menor que o quociente q dessa operação, ou seja,sempre será verdade que r < q.

(b) O resto r da divisão entre dois números inteiros iguais sempre será maior que zero.(c) O resto r da divisão de x por y sempre será igual a zero quando y = xn, com n

pertencendo ao conjunto dos números naturais.(d) O resto r de uma divisão será sempre menor que 10.(e) Quando o resto r da divisão não for igual a zero, sempre será possível continuar o cálculo

e, mesmo assim, obter resultados inteiros.

Problema 144 Em uma balada, cinco “vetins” ficaram na mesma mesa. Ao final do “rolezinho”a conta deu um total de R$ 152,00. A conta foi dividida igualmente entre eles. “Pirambu”, umdos “vetins”, sugeriu dar o resto dessa divisão de gorjeta para o garçom, seu Gérson. Depois depagarem a conta, os “vetins” solicitaram um veículo por meio de um aplicativo de transporteparticular, a fim de retornarem para as suas áreas. O valor da corrida deu R$ 79,00. Elesdecidiram dividir a conta entre eles e dar o resto dessa divisão de gorjeta para o motorista,seu Nélson. Assinale a alternativa correta:

(a) Como o valor gasto na balada foi bem maior que o valor gasto na “corrida”, o garçomganhou uma gorjeta maior que o motorista.

(b) A gorjeta do seu Gérson foi de R$ 2,00, assim como a gorjeta do seu Nélson.(c) A gorjeta de ambos, Gérson e Nélson, foi de R$ 4,00.(d) Como as divisões foram exatas, nem seu Gérson e nem seu Nélson ganharam gorjeta.(e) A gorjeta do se Gérson foi menor que R$ 5,00, e a gorjeta do seu Nélson foi maior que

R$ 0,00.

O vídeo a seguir traz uma breve introdução à aritmética modular.

v Saiba mais

Page 70: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.3 P. 64

2.3 – Equações e Inequações de Primeiro Grau

2.3.1 – Equações de Primeiro Grau

Equações são expressões algébricas que possuem uma igualdade. Essas expressões são chamadasde algébricas porque possuem pelo menos uma incógnita, que é um número desconhecidorepresentado por uma letra. As equações relacionam os termos do primeiro membro aos termosdo segundo membro por meio de uma igualdade. Exemplo 2.2 Vamos ver um exemplo de uma equação:

4x+ 2x− 7x=16− 5xTermo é o nome que se dá ao produto de algum número por alguma letra. Para identificá-los,

basta procurar pelas multiplicações separadas por sinais de adição ou subtração. No exemploanterior, os termos são:

• 4x• 2x• -7x• 16• -5x

Nas equações, o primeiro e segundo membros são separados pela sinal de igualdade. Todosos termos dispostos à esquerda da igualdade compõem o primeiro membro da equação. Todosos termos dispostos à direta da igualdade determinam o segundo membro de uma equação ouinequação. No exemplo anterior, teríamos:

• Primeiro termo: 4x+ 2x− 7x• Segundo termo: 16− 5x

O sinal de igual é utilizado quando existe um valor para as incógnitas que faz com queo resultado dos cálculos propostos no primeiro membro seja igual ao resultado dos cálculospropostos no segundo membro.

O grau de uma equação pode ser encontrado da seguinte maneira:Se a equação possui apenas uma incógnita, então, o grau dela é dado pelo maior expoente da

incógnita. Por exemplo, o grau da equação 4x3 + 3x2 + 2x = 24 é 3.Se a equação possui mais de uma incógnita, então, o seu grau é dado pela maior soma entre

os expoentes de um mesmo termo. Por exemplo, o grau da equação 2xy + 3x2y2z2 = 0 é 6. Exemplo 2.3 Exemplos de equações:

• 4x = 16• 2x− 8 = 32• 18x2 = 2x−8

2x

Exemplo 2.4 Vamos lembrar como solucionar uma equação de primeiro grau. Considere aequação 2x− 8 = 3x− 10. Como encontrar o valor de x?

• 2x− 8 = 3x− 10• 2x− 3x = −10 + 8• −x = −2• x = 2

Page 71: Introdução à Lógica e à Programação VisualIntrodução à

P. 65 Seção 2.3

Problema 145 Encontre o conjunto solução da equação 4(6x− 4) = 5(4x− 1).

Solução. • 4(6x− 4) = 5(4x+ 1)− 5• 24x− 16 = 20x+ 5− 5• 24x− 20x = 5− 5 + 16• 4x = 16• x = 16

4• x = 4

Problema 146 O dobro de um número adicionado com 5 é igual a 155. Determine esse número.

Solução. Como desconhecemos o número mencionado na questão, vamos chamá-lo de n.Sabemos que o dobro de qualquer número é duas vezes ele mesmo. Logo, o dobro de n é 2n.Agora, podemos montar a nossa equação, que fica: 2n + 5 = 155. Pronto, agora podemossolucionar a equação e encontrar o valor de x.

• 2n+ 5 = 155• 2n = 155− 5• 2n = 150• n = 150

2• n = 75

Problema 147 Roberta é quatro anos mais velha que Bárbara. A soma das idades das duas é44. Determine a idade de Roberta e Bárbara.

Solução. Como desconhecemos a idade da Roberta, vamos chamá-la de r. Como desco-nhecemos a idade da Bárbara, vamos chamá-la de b. Sabe-se que Roberta é quatro anos maisvelha que Bárbara. Então, temos que: r = b+ 4. Adicionalmente, sabe-se também que a somadas idades das duas é de 44 anos. Logo, r + b = 44. Agora, podemos substituir o valor de r daprimeira equação na segunda equação.

• r = b+ 4• r + b = 44• (b+ 4) + b = 44• 2b = 44− 4• 2b = 40• b = 40

2• b = 20

Encontramos a idade da Bárbara. Bárbara tem 20 anos. Como Roberta é 4 anos mais velha queBárbara, então Roberta tem 24 anos.

Problema 148 Um barbante com 50 m de comprimento foi dividido em duas partes. Se aprimeira parte era 15 m menor que a outra, quanto media a parte menor?

Page 72: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.3 P. 66

Problema 149 João e Marcelo passaram alguns meses guardando dinheiro para comprar umabicicleta de R$ 380,00. Ao final de 6 meses, os dois irmãos haviam juntado o mesmo valor,mas ainda faltavam R$ 20,00 para pagar a bicicleta. Determine quanto dinheiro cada umconseguiu poupar.

Problema 150 Quando nasci, minha mãe tinha 12 cm a mais que o triplo de minha altura. Seminha mãe tem 1,68 m, como àquela época, com que altura eu nasci?

Problema 151 Fernanda e Maria têm, respectivamente, 18 e 14 anos. Daqui a quantos anos asoma das idades das duas atingirá 80 anos?

Problema 152 Em um torneio de tênis, são distribuídos prêmios em dinheiro para os trêsprimeiros colocados, de modo que o prêmio do segundo colocado é a metade do prêmio doprimeiro, e o terceiro colocado ganha a metade do que recebe o segundo. Se são distribuídosR$ 350.000,00, quanto ganha cada um dos três premiados?

Problema 153 Em uma partida de basquete, todos os 86 pontos de um time foram marcadospor apenas três jogadores: Adão, Aldo e Amauri. Se Adão marcou 10 pontos a mais queAmauri e 9 pontos a menos que Aldo, quantos pontos cada jogador marcou?

Problema 154 Em virtude da interdição de uma ponte, os motoristas que transitavam por umtrecho de estrada tiveram que percorrer um desvio com 52 km. Se esse desvio era 8 km maiorque o dobro do comprimento do trecho interditado, qual o comprimento do trecho original daestrada?

Problema 155 Encontre três números pares consecutivos cuja soma dê 828.

Problema 156 Sabe-se que 6 unidades somadas ao dobro de um número x é igual a 82. Qualé o valor de x?

(a) 24.(b) 32.(c) 38.(d) 43.(e) 48.

Problema 157 Solucione as seguintes equações do primeiro grau:

(a) 4.(x− 2)− 5.(2− 3x) = 4.(2x− 6).(b) 5y + 2 = 8y − 4.(c) 4x− 2 = 3x+ 4.(d) 2x+ 8 = x+ 13.(e) 5x− 1 = 3x+ 11.

Page 73: Introdução à Lógica e à Programação VisualIntrodução à

P. 67 Seção 2.3

2.3.2 – Inequações de Primeiro Grau

As inequações são relações muito semelhantes às equações, contudo, apresentam uma desi-gualdade no lugar da igualdade. Assim, as inequações indicam que o resultado das operaçõesenvolvendo os termos do primeiro membro são maiores ou menores que o resultado das operaçõesenvolvendo os termos do segundo membro.

Nas inequações a desigualdade pode ser representada por um dos quatro símbolos seguintes:

• Menor: <• Maior: >• Menor ou igual ≤• Maior ou igual: ≥

Esses símbolos mostram que o conjunto de operações do primeiro membro possui um resultado“menor”, “maior”, “maior ou igual” ou “menor ou igual” ao resultado do segundo membro. Exemplo 2.5 Vamos ver um exemplo de uma inequação:

3x− 9x ≤ 15− 4xOs termos desta inequação são:

• 3x• -9x• 15• -4x

Já os membros desta inequação são:

• Primeiro termo: 3x− 9x• Segundo termo: 15− 4x

Exemplo 2.6 Exemplos de inequações:

• 6x+ x2 ≤ 6• 12 ≥ x+ 7• 18x2 < 12x+ 4

A resolução de uma inequação do 1o grau é totalmente análoga à equação do 1o grau. Consistebasicamente em deixar o que é letra de um lado e o que não é, do outro. Exemplo 2.7 Vamos solucionar a inequação 2x+ 3 ≤ 9.

• 2x+ 3 ≤ 9• 2x ≤ 9− 3• 2x ≤ 6• x ≤ 6

2• x ≤ 3

Assim, a solução da inequação são todos os números reais menores ou iguais a 3. E podemosescrever seu conjunto-solução de duas maneiras:

(a) Usando notação de conjunto propriamente dita: S = x ∈ R|x ≤ 3(b) Ou usando notação de intervalo: S =]∞,3]

Page 74: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.3 P. 68

Problema 158 Entre as opções a seguir, qual é a que melhor representa a idade de Maria?Sabendo-se que Ana tem duas vezes a idade que Maria terá daqui a dez anos, entretanto, aidade de Ana não supera o quádruplo da idade de Maria.

(a) A idade de Ana é maior que a idade de Maria.(b) A idade de Maria é menor que a idade de Ana.(c) A idade de Ana é maior que 10 anos.(d) A idade de Maria é maior que 10 anos.(e) A idade de Maria é menor que 10 anos.

Problema 159 Sabendo que um quadrado possui quatro lados congruentes, que condição deveser cumprida para que a área de um quadrado seja maior que seu perímetro?

(a) Os lados do quadrado devem ser iguais.(b) A medida do lado do quadrado deve ser maior que 10.(c) A medida do lado do quadrado deve ser menor que 10.(d) A medida do lado do quadrado deve ser maior que 4.(e) A medida da diagonal do quadrado deve ser maior que a medida do lado.

Problema 160 Uma pequena empresa que fabrica copos personalizados para festas de aniver-sário tem gastos fixos de R$400,00 mais o custo de R$3,00 por copo produzido. Sabendo quecada unidade será vendida a R$11,00, quantos copos deverão ser produzidos para que o valorarrecadado supere os gastos?

(a) 50 copos.(b) 70 copos.(c) 90 copos.(d) A arrecadação nunca será superior.(e) Os gastos nunca serão superiores.

O vídeo a seguir traz uma interessante discussão acerca das equações e inequações do primeirograu.

v Saiba mais

Page 75: Introdução à Lógica e à Programação VisualIntrodução à

P. 69 Seção 2.4

2.4 – Equações e Inequações do Segundo Grau

Uma equação do 2o grau é caracterizada por um polinômio de grau 2, ou seja, um polinômiodo tipo ax2 + bx+ c, em que a, b e c são números reais, com a 6= 0. Ao resolvermos uma equaçãode grau 2, estamos interessados em encontrar valores para a incógnita x que torne o valor daexpressão igual a 0, que são chamadas de raízes, isto é, ax2 + bx+ c = 0. Exemplo 2.8 Vamos ver alguns exemplos de equações do segundo grau:

• 4x2 + 4x− 6 = 0, onde a= 4; b =4 e c = – 6;• x2 − 5x+ 10 = 0, onde a = 1; b = -5 e c = 10;• 0,5x2 + x− 2 = 0, onde a = 0,5; b = 1 e c = –2;

Definição 2.4.1 Uma equação do 2o grau é chamada de completa quando todos os coeficientessão diferentes de 0, ou seja, a 6= 0, b 6= 0 e c 6= 0.

Definição 2.4.2 Uma equação do 2o grau é chamada de incompleta quando o valor doscoeficientes b ou c são iguais a 0, isto é, b = 0 ou c = 0.

Exemplo 2.9 Vejamos alguns exemplos de equações do segundo grau incompletas:

• 4x2 − 4 = 0, onde a = 4; b = 0 e c= – 4;• −2x2 + 3x = 0, onde a = – 2; b = 3 e c = 0;• x2 = 0, onde a = 1; b =0 e c =0;

ObsNote que o valor do coeficiente a NUNCA é igual a 0, pois, caso isso ocorra, a equaçãodeixa de ser do 2o grau.

A solução de uma equação do 2o grau ocorre quando encontramos os valores que atribuídos àincógnita x tornam o primeiro membro da equação igual ao segundo membro. Esses valores sãochamados de raízes da equação. Exemplo 2.10 Considere a equação x2 − 1 = 0.

Quais as soluções desta equação?Quais as raízes desta equação?Observe que x′ = 1 e x′′ = −1 são soluções (raízes) da equação anterior, uma vez que

substituindo esses valores na expressão, teremos uma igualdade verdadeira. Vejamos:Fazendo x = 1, temos:

• x2 − 1 = 0• 12 − 1 = 0• 1− 1 = 0• 0 = 0

Fazendo x = −1, temos:

• x2 − 1 = 0• (−1)2 − 1 = 0• 1− 1 = 0• 0 = 0

Page 76: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.4 P. 70

2.4.1 – Solucionando Equações do Tipo ax2 + c = 0

O método para encontrar a solução de equações incompletas que possuem b = 0 consiste emisolar a incógnita x.

• ax2 + c = 0• ax2 = −c• x2 = −c

a

• x = ±√−ca

Exemplo 2.11 Encontre as raízes da equação 4x2 − 36 = 0.

• 4x2 − 36 = 0• 4x2 = 36• x2 = 36

4• x = ±

√364

• x = ±√

9• x = ±3• x′ = 3 e x′′ = −3

2.4.2 – Solucionando Equações do Tipo ax2 + bx = 0

O método para encontrar as soluções de uma equação com c = 0, consiste em utilizar a fatoraçãopor evidência, conforme ilustrado a seguir.

• ax2 + bx = 0• x(ax+ b) = 0• x = 0 ou ax+ b = 0• x′ = 0 e x′′ = −b

a

Exemplo 2.12 Encontre as raízes da equação 10x2 − 90x = 0.

• 10x2 − 90x = 0• 10x(x− 9) = 0• 10x = 0 =⇒ x′ = 0• x− 9 = 0 =⇒ x′′ = 9

Exemplo 2.13 Encontre as raízes da equação x2 + 16x = 0.

• x2 + 16x = 0• x(x+ 16) = 0• x = 0 =⇒ x′ = 0• x+ 16 = 0 =⇒ x′′ = −16

Exemplo 2.14 Encontre as raízes da equação x2 + 16x = 0.

• 5x2 + 6x = 0• x(5x+ 6) = 0• x = 0 =⇒ x′ = 0• 5x+ 6 = 0 =⇒ x′′ = −6/5

Page 77: Introdução à Lógica e à Programação VisualIntrodução à

P. 71 Seção 2.4

2.4.3 – Solucionando Equações do Tipo ax2 + bx+ c = 0

Para solucionarmos equações de segundo grau completas utilizamos o método de Bhaskara,também conhecido como fórmula de Bhaskara. Esse método encontra as raízes de uma equaçãodo 2o grau do tipo ax2 + bx+ c = 0 por meio da relação a seguir:

x = −b±√

∆2a (2.4)

onde ∆ = b2 − 4ac. Exemplo 2.15 Encontre as raízes da equação x2 − x− 12 = 0.

Observe que os coeficientes da equação são: a = 1; b = −1 e c = −12.Primeiramente, vamos calcular o valor de ∆.

• ∆ = b2 − 4ac• ∆ = (−1)2 − 4×1×(−12)• ∆ = 1 + 48• ∆ = 49

Substituindo os valores dos coeficientes e do ∆ na fórmula de Bhaskara, teremos:

• x = −(−1)±√

492×1

• x = 1±√

492

• x = 1±72

• x′ = 1+72

• x′ = 82

• x′ = 4• x′′ = 1−7

2• x′′ = −6

2• x′′ = −3

O termo delta (∆) também é conhecido como discriminante. Observe que o delta estáinserido em uma raiz quadrada. Vale lembrar também que não é possível extrair raiz quadradade um número negativo.

Conhecendo o valor do discriminante, podemos chegar a algumas conclusões importantes arespeito da solução de uma equação do 2o grau:

• Se o valor do discriminante for positivo (∆ > 0), então a equação possui duas soluções;• Se o valor do discriminante for igual a zero (∆ = 0), então a equação possui duas soluções

iguais (ou seja, x′ = x′′);• Se o valor do discriminante for negativo (∆ < 0), então a equação não admite solução real.

Problema 161 Dada a equação do segundo grau x2 − 2x+ 1 = 0, podemos afirmar que:

(a) A equação não possui nenhuma solução real.(b) A equação possui uma única solução real.(c) A equação possui duas soluções reais.(d) A equação possui três soluções reais.(e) A equação possui infinitas soluções reais.

Page 78: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.4 P. 72

Uma inequação do segundo grau é bastante semelhante a uma equação do segundograu. Diferenciando-se apenas pelo fato do sinal de igualdade ser substituído por alguma dasdesigualdades: > (maior que), < (menor que), ≥ (maior ou igual a), ≤ (menor ou igual a). Exemplo 2.16 Vamos ver um exemplo de inequação do segundo grau:

x2 − 6x+ 8 < 0Como solucionar uma inequação do segundo grau?Primeiramente, vamos representá-la como uma equação do segundo grau, ou seja, trocando a

desigualdade por uma igualdade. No nosso exemplo teríamos: x2 − 6x+ 8 = 0Em seguida, vamos solucionar a equação utilizando os métodos discutidos anteriormente.Observe que os coeficientes da equação são: a = 1; b = −6 e c = 8.Primeiramente, vamos calcular o valor de ∆.

• ∆ = b2 − 4ac• ∆ = (−6)2 − 4×1×(8)• ∆ = 36− 32• ∆ = 4 (Duas raízes distintas)

Substituindo os valores dos coeficientes e do ∆ na fórmula de Bhaskara, teremos:

• x = −(−6)±√

42×1

• x = 6±√

42

• x = 6±22

• x′ = 6+22

• x′ = 82

• x′ = 4• x′′ = 6−2

2• x′′ = 4

2• x′′ = 2

Agora, vamos plotar o sinal da função y = x2 − 6x+ 8 (Figura 2.2):

Figura 2.2: Sinal da Função y = x2 − 6x+ 8

Analisando o sinal de y, podemos concluir que o gráfico possui concavidade para cima, pois a= 1 > 0. Podemos ainda afirmar que, como ∆ = 4 > 0, a função tem duas raízes (2 e 4). Observea seguir a variação do sinal para y:

Para que valores de x teremos y < 0?Esses valores são 2 < x < 4.Observe que:

• y < 0 =⇒ 2 < x < 4• y = 0 =⇒ x = 2 ou x = 4• y > 0 =⇒ x < 2 ou x > 4

Page 79: Introdução à Lógica e à Programação VisualIntrodução à

P. 73 Seção 2.4

De acordo com o sinal de desigualdade da inequação, o conjunto solução é: S = x ∈ R|2 <x < 4. Exemplo 2.17 Encontre a solução da inequação do segundo grau:−x2 − 3x− 2 ≤ 0Primeiramente, vamos representá-la como uma equação do segundo grau, ou seja, trocando a

desigualdade por uma igualdade. No nosso exemplo teríamos: −x2 − 3x− 2 = 0Em seguida, vamos solucionar a equação utilizando os métodos discutidos anteriormente.Observe que os coeficientes da equação são: a = −1; b = −3 e c = −2.Primeiramente, vamos calcular o valor de ∆.

• ∆ = b2 − 4ac• ∆ = (−3)2 − 4×(−1)×(−2)• ∆ = 9− 8• ∆ = 1 (Duas raízes distintas)

Substituindo os valores dos coeficientes e do ∆ na fórmula de Bhaskara, teremos:

• x = −(−3)±√

12×(−1)

• x = 3±√

1−2

• x′ = 3+1−2

• x′ = 4−2

• x′ = −2• x′′ = 3−1

−2• x′′ = 2

−2• x′′ = −1

Agora, vamos plotar o sinal da função y = −x2 − 3x− 2 (Figura 2.3):

Figura 2.3: Sinal da Função y = −x2 − 3x−

Analisando o sinal de y, podemos concluir que o gráfico possui concavidade para baixo, poisa = -1 < 0. Podemos ainda afirmar que, como ∆ = 1 > 0, a função tem duas raízes (-2 e -1).Observe a seguir a variação do sinal para y:

Para que valores de x teremos y ≤ 0?Esses valores são x ≤ −2 ou x ≥ −1.Observe que:

• y ≤ 0 =⇒ x ≤ −2 ou x ≥ −1• y = 0 =⇒ x = −2 ou x = −1• y ≥ 0 =⇒ −2 ≥ x ≤ −1

De acordo com o sinal de desigualdade da inequação, o conjunto solução é: S = x ∈ R|x ≤−2 ou x ≥ −1.

Page 80: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.4 P. 74

Exemplo 2.18 Encontre a solução da inequação do segundo grau:x2 − 6x+ 9 > 0Primeiramente, vamos representá-la como uma equação do segundo grau, ou seja, trocando a

desigualdade por uma igualdade. No nosso exemplo teríamos: x2 − 6x+ 9 = 0Em seguida, vamos solucionar a equação utilizando os métodos discutidos anteriormente.Observe que os coeficientes da equação são: a = 1; b = −6 e c = 9.Primeiramente, vamos calcular o valor de ∆.

• ∆ = b2 − 4ac• ∆ = (−6)2 − 4×(1)×(9)• ∆ = 36− 36• ∆ = 0 (Uma única raiz real)

Substituindo os valores dos coeficientes e do ∆ na fórmula de Bhaskara, teremos:

• x = −(−6)±√

02×1

• x = 62

• x′ = x′′ = 3

Agora, vamos plotar o sinal da função y = x2 − 6x+ 9 (Figura 2.4):

Figura 2.4: Sinal da Função y = x2 − 6x+ 9

Analisando o sinal de y, podemos concluir que o gráfico possui concavidade para cima, poisa = 1 > 0. Podemos ainda afirmar que, como ∆ = 0, a função tem uma única raiz real (3).Observe a seguir a variação do sinal para y:

Para que valores de x teremos y > 0?Esses valores são x 6= 3.Observe que:

• y > 0 =⇒ x 6= 3• y = 0 =⇒ x = 3• y < 0 =⇒ não existem valores

De acordo com o sinal de desigualdade da inequação, o conjunto solução é: S = x ∈ R|x 6= 3ou S = R− 3.

Page 81: Introdução à Lógica e à Programação VisualIntrodução à

P. 75 Seção 2.4

Exemplo 2.19 Encontre a solução da inequação do segundo grau:−3x2 − 2x− 1 ≥ 0Primeiramente, vamos representá-la como uma equação do segundo grau, ou seja, trocando a

desigualdade por uma igualdade. No nosso exemplo teríamos: −3x2 − 2x− 1 = 0Em seguida, vamos solucionar a equação utilizando os métodos discutidos anteriormente.Observe que os coeficientes da equação são: a = −3; b = −2 e c = −1.Primeiramente, vamos calcular o valor de ∆.

• ∆ = b2 − 4ac• ∆ = (−2)2 − 4×(−3)×(−1)• ∆ = 4− 12• ∆ = −8 (A inequação não possui raízes reais)

Agora, vamos plotar o sinal da função y = x2 − 6x+ 9 (Figura 2.5):

Figura 2.5: Sinal da Função y = x2 − 6x+ 9

Observe que a parábola não intercepta o eixo x, logo não possui raízes reais. Dessa forma,podemos concluir que o conjunto solução é: S = φ.

Problema 162 — PUC-RIO 2009. Quantas soluções inteiras a inequação x2 +x−20 ≤ 0 admite?

(a) 2.(b) 3.(c) 7.(d) 10.(e) 13.

Problema 163 — UDESC 2008. O conjunto solução da inequação x2 − 2x− 3 ≤ 0 é:

(a) S = x ∈ R| − 1 < x < 3.(b) S = x ∈ R| − 1 < x ≤ 3.(c) S = x ∈ R|x < −1 ou x > 3.(d) S = x ∈ R| − 1 ≤ −1ou ≥ 3.(e) S = x ∈ R| − 1 ≤ x ≤ 3.

Page 82: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.4 P. 76

Problema 164 — UFRGS 2017. Sendo a e b números reais, considere as afirmações a seguir.

I Se a < b então -a > -b.II Se a > b então 1/a < 1/b.III Se a < b então a2 < b2.

Quais estão corretas?

(a) Apenas I.(b) Apenas II.(c) Apenas III.(d) Apenas I e II.(e) I,II e II.

Problema 165 — BNDES – CESGRANRIO. O conjunto-solução da inequação 9− x2 > 0 é:

(a) −3 > x > 3.(b) −3 < x < 3.(c) x = 3.(d) x < 3.(e) x > 3.

Problema 166 — RFB ESAF. Considere as inequações dadas por:f(x) = x2 − 2x+ 1 ≤ 0g(x) = −2x2 + 3x+ 2 ≥ 0Sabendo-se que A é o conjunto solução de f(x) e B o conjunto solução de g(x), então o

conjunto Y = A ∩B é igual a:

(a) Y = x ∈ R| − 1/2 < x ≤ 2.(b) Y = x ∈ R| − 1/2 ≤ x ≤ 2.(c) Y = x ∈ R|x = 1.(d) Y = x ∈ R|x ≥ 0.(e) Y = x ∈ R|x ≤ 0.

O vídeo a seguir traz uma interessante discussão acerca das equações e inequações do segundograu.

v Saiba mais

Page 83: Introdução à Lógica e à Programação VisualIntrodução à

P. 77 Seção 2.5

2.5 – Introdução a Funções

O conceito de função está presente em nosso cotidiano desde a antiguidade. Podemos definiruma função, de uma forma simples, como sendo a relação entre duas grandezas variáveis. Todafunção possui uma lei de formação algébrica que relaciona dois ou mais conjuntos através decálculos matemáticos. Vamos ver alguns exemplos: Exemplo 2.20 Seja um quadrado cujo lado mede l. Dizemos que o perímetro desse quadrado,simbolizado por p, é igual à soma dos seus lados. Logo, existe uma relação entre p e l expressapela seguinte fórmula matemática:

p = 4×l (2.5)

Figura 2.6: Quadrado de Lado l

Observe que a medida p do perímetro depende da medida l do lado do quadrado, o que podeser verificado na Tabela 2.1.

Medida do lado (l) Medida do Perímetro (p)1 41,5 62 82,5 103 12

Tabela 2.1: Relação Entre o Lado e o Perímetro de um Quadrado.

Por meio da Tabela 2.1, podemos observar que:

• A medida l do lado do quadrado é uma grandeza variável;• A medida p do perímetro do quadrado é uma grandeza variável;• A todos os valores de l estão associados valores de p;• A cada valor de l está associado um único valor de p.

Podemos então dizer que:

(a) A medida p do perímetro do quadrado é dada em função da medida l do quadrado;(b) A relação p = 4×l é denominada de lei de associação ou fórmula matemática desta

função.

Page 84: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.5 P. 78

2.5.1 – Definição de Função Através de Conjuntos

O conceito de função pode ser entendido e definido por meio da Teoria dos Conjuntos, uma vezque as colunas da tabela anterior representam conjuntos numéricos. Vamos ver um exemplo:

Exemplo 2.21 Dados os conjuntos L = 1, 1.5, 2, 2.5, 3 e P = 0, 2, 4, 6, 8, 10, 12, 14, seja arelação (função) de L em P expressa pela fórmula p = 4 ∗ l, com l ∈ L e p ∈ P .

Figura 2.7: Função p = 4×l

Dizemos que para toda função temos um conjunto denominado domínio e sua respectivaimagem. No exemplo anterior, o domínio é o conjunto L, o contra-domínio é o conjunto P e aimagem são todos os elementos de P que estão relacionados com os elementos de L. Vale destacarque cada elemento l do domínio se relaciona a um e somente um elemento p do contradomínio.Vale ressaltar que não necessariamente a imagem da função é igual ao contradomínio.

Vamos ver mais um exemplo.

Exemplo 2.22 Dado que o litro da gasolina custa R$ 7,00, podemos estabelecer uma relaçãoentre a quantidade de litros utilizada para abastecer um veículo e o valor total a pagar. Essarelação pode ser representada pela fórmula matemática y = 7×x, onde x é a quantidade de litrose y é o valor a pagar. Observe essa relação na Tabela 2.2.

Quantidade de litros(x)

Valor a pagar (y)

1 72 143 214 285 35

Tabela 2.2: Relação Entre a Quantidade de Litros e o Valor a Pagar.

Page 85: Introdução à Lógica e à Programação VisualIntrodução à

P. 79 Seção 2.5

A Figura 2.8 ilustra a função y = 7×x utilizando a notação de conjuntos. O domínio érepresentado pelo conjunto A e o contra-domínio pelo conjunto B.

Figura 2.8: Função y = 7×x

Definição 2.5.1 Uma função é uma regra que relaciona cada elemento de um conjunto X aum único elemento de outro conjunto Y . O primeiro conjunto é chamado de domínio (X), e osegundo, contradomínio da função (Y ).

A formalização matemática para a definição de função é dada por: Seja X um conjunto comelementos de x e Y um conjunto dos elementos de y, temos que:

f : x→ y (2.6)

Podemos agora utilizar uma definição um pouco mais formal:

Definição 2.5.2 Dados os conjuntos X e Y , uma função f : X → Y (lê-se: uma funçãode X em Y ) é uma regra que determina como associar a cada elemento x ∈ X um únicoy = f(x) ∈ Y .

A partir dessa definição, é possível constatar que x é a variável independente e que y ou f(x)é a variável dependente. Isso porque, em toda função, para encontrar o valor de y, devemos terinicialmente o valor de x.

Se os elementos do domínio e da imagem de uma função pertencem ao conjunto dos númerosinteiros, por exemplo, dizemos que f : Z→ Z, lemos que “f é uma função cujo domínio pertenceaos inteiros e cuja imagem pertence aos inteiros” ou, simplesmente, “f é uma função de inteirosem inteiros”.

Algumas relações não são consideradas funções. Vamos ver alguns exemplos sobre isso. NaFigura 2.9 temos uma relação do conjunto A com o B.

A relação exibida na Figura 2.9 não é uma função pois um único elemento do conjunto A serelaciona com vários elementos do conjunto B, violando assim a definição de função.

A relação exibida na Figura 2.10 não é uma função pois existem elementos em A que não serelacionam com elementos do conjunto B, violando também a definição de função.

Page 86: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.5 P. 80

Figura 2.9: Exemplo de uma Relação que Não é Função

Figura 2.10: Exemplo de uma Relação que Não é Função

Problema 167 Dada a função f(x) = 2x− 2, o domínio 3, 4, 5, 6 e o contradomínio compostopelos naturais entre 1 e 10, qual das alternativas a seguir representa o conjunto imagem dessafunção?

(a) 4, 6, 8, 10.(b) 0, 2, 6.(c) 0, 2, 6, 8, 10.(d) Os números pares entre 2 e 18.(e) Os números pares entre 0 e 18.

Problema 168 Dada a função f(x) =√

4x− 16, qual das alternativas a seguir apresenta umelemento que não pertence ao domínio dessa função?

(a) 2.(b) 4.(c) 6.(d) 8.(e) 12.

Page 87: Introdução à Lógica e à Programação VisualIntrodução à

P. 81 Seção 2.5

As funções podem ser representadas graficamente. Para que isso seja feito, utilizamos duascoordenadas, que são x e y. O plano desenhado é bidimensional. A coordenada x é chamada deabscissa e a y, de ordenada. Juntas em funções, elas formam leis de formação. Veja a imagem dográfico do eixo x e y na Figura 2.12:

Figura 2.11: Plano Cartesiano

Exemplo 2.23 Considere o gráfico da função y = f(x) = 7×x

Figura 2.12: Plano Cartesiano da Função y = f(x) = 7×x

Page 88: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.5 P. 82

2.5.2 – Tipos de Funções

Função Injetora ou Injetiva

Na função injetora cada elemento do domínio (x) associa-se a um único elemento da imagem f(x).Todavia, podem existir elementos do contradomínio que não pertencem à imagem da função.Quando isso acontece, dizemos que o contradomínio e imagem são diferentes. Veja um exemplona Figura 2.13.

Observe que o domínio da função é dado pelo conjunto: D(f) = 1, 2, 3. Já a imagem dafunção é formada pelo conjunto: Im(f) = 2, 4, 6. E o contradomínio da função é o conjunto:CD(f) = 2, 4, 6, 8, 10.

Figura 2.13: Função Injetora ou Injetiva

Função Sobrejetora ou Sobrejetiva

Na função sobrejetiva todos os elementos do domínio também pertencem à imagem da função.Assim, o contradomínio e a imagem possuem os mesmos elementos. Todavia, pode ocorrer dedois elementos do domínio possuírem a mesma imagem. Veja um exemplo na Figura 2.14.

Figura 2.14: Função Sobrejetora ou Sobrejetiva

Observe que o domínio da função é dado pelo conjunto: D(f) = 1, 2, 3, 4, 5. Já a imagemda função é formada pelo conjunto: Im(f) = 2, 4, 6. E o contradomínio da função é o conjunto:CD(f) = 2, 4, 6.

Page 89: Introdução à Lógica e à Programação VisualIntrodução à

P. 83 Seção 2.5

Função Bijetora ou Bijetiva

A função bijetora é ao mesmo tempo injetora e sobrejetora, pois, cada elemento de x relaciona-sea um único elemento de f(x). Nessa função, não acontece de dois elementos do domínio possuírema mesma imagem. Além disso, o contradomínio e a imagem possuem os mesmos elementos.

Figura 2.15: Função Bijetora ou Bijetiva

Observe que o domínio da função é dado pelo conjunto: D(f) = 1, 2, 3. Já a imagem dafunção é formada pelo conjunto: Im(f) = 2, 4, 6. E o contradomínio da função é o conjunto:CD(f) = 2, 4, 6.

ObsÉ importante ressaltar que existem funções que não são nem injetoras e nem sobrejetoras.Elas simplesmente não apresentam classificação sob esse critério. Uma função é dita simplesse ela não é injetora nem sobrejetora.

Função Constante

Na função constante, todo valor do domínio (x) tem a mesma imagem (y). A função constantetem a seguinte fórmula geral:

f(x) = c (2.7)

Onde c é uma constante.A Figura 2.16 ilustra o plano cartesiano de uma função constante genérica.

Figura 2.16: Função Constante f(x) = c

Page 90: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.5 P. 84

Exemplo 2.24 Observe o gráfico da função constante f(x) = 2.

Figura 2.17: Função Constante f(x) = 2

Função Afim ou Polinomial do Primeiro Grau

Essa função é muito utilizada na física e na química. O gráfico dessa função é uma reta. A funçãoafim tem a seguinte fórmula geral:

f(x) = a×x+ b (2.8)

Onde a e b são chamados de coeficientes.A função afim será crescente quando o coeficiente a for maior que um (a > 0). A função afim

será decrescente quando o coeficiente a for menor que zero (a < 0). Veja a Figura 2.18.

Figura 2.18: Função Afim Crescente X Decrescente

Page 91: Introdução à Lógica e à Programação VisualIntrodução à

P. 85 Seção 2.5

Exemplo 2.25 Observe o gráfico da função afim f(x) = 4x+ 1.

Figura 2.19: Função Afim f(x) = 4x+ 1

Função Linear

A função linear é um caso particular da função afim (f(x) = ax+ b), mais precisamente quandoo coeficiente b é igual a zero (b = 0). Desta forma, a função linear tem a seguinte fórmula geral:

f(x) = a×x (2.9)

Exemplo 2.26 Observe o gráfico da função linear f(x) = −x3 .

Figura 2.20: Função Linear f(x) = −x3

Page 92: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.5 P. 86

Função Quadrática ou Polinomial do Segundo Grau

A função quadrática é bastante utilizada na geometria e em algumas situações físicas como omovimento retilíneo uniformemente variado. A função quadrática tem a seguinte fórmula geral:

f(x) = a×x2 + b×x+ c (2.10)

O gráfico da função quadrática será sempre uma parábola. A sua concavidade muda de acordocom o valor do coeficiente a. Sendo assim, se a é positivo, a concavidade é para cima e, se fornegativo, é para baixo. A Figura 2.21 ilustra a aparência do gráfico da função quadrática a partirdos valores do coeficiente a e do ∆.

Figura 2.21: Estudo da Parábola de uma Função Quadrática

Page 93: Introdução à Lógica e à Programação VisualIntrodução à

P. 87 Seção 2.5

Exemplo 2.27 Observe o gráfico da função quadrática f(x) = x2 − 6x+ 5.

Figura 2.22: Função Quadrática f(x) = x2 − 6x+ 5

Função Exponencial

Em uma função exponencial a variável x está no expoente em relação à base de um termonumérico ou algébrico a. Caso o termo a seja maior que 1, o gráfico da função exponencialé crescente. Já se o termo a for um número entre 0 e 1, o gráfico da função exponencial édecrescente. A função exponencial tem a seguinte fórmula geral:

f(x) = ax (2.11)

Exemplo 2.28 Observe o gráfico da função exponencial f(x) = 2x.

Figura 2.23: Função Exponencial f(x) = 2x

Page 94: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.5 P. 88

Função Par

Uma função é dita par, se e somente se f(−x) = f(x). Na função par, valores simétricos de xpossuem a mesma imagem.

ObsO gráfico de uma função par apresenta simetria em relação ao eixo y.

Exemplo 2.29 Vamos ver um exemplo de uma função par.

Figura 2.24: Função Par

Função Impar

Uma função é dita ímpar, se e somente se f(−x) = −f(x). Na função impar, valores simétricosde x possuem imagens simétricas.

ObsO gráfico de uma função par apresenta simetria em relação à origem.

Exemplo 2.30 Vamos ver um exemplo de uma função impar.

Figura 2.25: Função Impar

ObsExistem funções que não podem ser classificadas quanto a paridade, ou seja, não são nempares nem ímpares.

Page 95: Introdução à Lógica e à Programação VisualIntrodução à

P. 89 Seção 2.5

Problema 169 — UA-AM. Após vários testes em laboratório, observou-se que a concentração deuma substância utilizada para o tratamento da COVID-19, no sangue dos pacientes voluntários,varia de acordo com a função f(x) = 12x− 2x2, onde x é o tempo decorrido, em horas, apósa ingestão do medicamento. Nessas condições, qual o tempo necessário para atingir o nívelmáximo de concentração dessa substância, no sangue dos voluntários?

Problema 170 — ENCCEJA 2018. Uma prestadora de serviços de internet cobra pela visita àresidência do cliente e pelo tempo necessário para realizar o serviço. O valor da visita é R$ 40e o valor da hora para realização do serviço é R$ 20.

Uma expressão que indica o valor a ser pago (P) em função das horas (h) necessárias àexecução do serviço é:

(a) P = 40h.(b) P = 60h.(c) P = 20 + 40h.(d) P = 40 + 20h.(e) P = 800h.

Problema 171 — UFBA. Se f(g(x)) = 5x− 2 e f(x) = 5x+ 4 , então g(x) é igual a:

(a) x− 2.(b) x− 6.(c) x− 6/5.(d) 5x− 2.(e) 5x+ 2.

Problema 172 Em uma função do seu grau chamamos de “zeros da função” os valores de xnos quais o gráfico corta o eixo das abscissas. Qual das alternativas a seguir indica os zeros dafunção f(x) = 3x2 + 6x− 9?

(a) (-3;-2).(b) (-3;1).(c) (2;-1).(d) (-2;1).(e) (3;-1).

O vídeo a seguir traz uma interessante introdução sobre as funções matemáticas.

v Saiba mais

Page 96: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.6 P. 90

2.6 – Introdução à Combinatória

A Análise Combinatória é um ramo da Matemática que estuda os problemas de contagem. Elasurgiu da necessidade de se calcular o número de possibilidades que podem ocorrer num certoexperimento, sem precisar descrever cada uma dessas possibilidades. No início do século XVIII, oestudo sobre jogos envolvendo dados e cartas fez com que as teorias de contagem tivessem grandedesenvolvimento.

Alguns problemas bem simples podem ser solucionados enumerando-se todas as possibilida-des. Quando descrevemos todas as possibilidades de uma experiência ou evento, fazemos umacontagem direta.

Estamos acostumados a utilizar a contagem direta em nossas tarefas cotidianas. Por exemplo,de quantas maneiras distintas podemos combinar 3 blusas com 2 calças diferentes? De quantamaneiras diferentes podemos elaborar uma tabela de jogos de um campeonato de futebol?De quantas maneiras diferentes eu posso organizar uma rota para entregar meu currículoem 3 empresas diferentes? Contudo, existem muitas situações onde a enumeração de todaspossibilidades torna-se bastante trabalhosa ou simplesmente impraticável. Surge, então, anecessidade de utilizarmos algumas técnicas de contagem.

2.6.1 – Diagrama de Árvore

O diagrama de árvore ou diagrama das possibilidades é um método utilizado para enumerartodas as possibilidades de um determinado evento com o objetivo de facilitar a resolução dosproblemas de contagem, por meio da contagem direta. Exemplo 2.31 De quantas maneiras distintas podemos combinar 2 calças e 3 camisas diferentes?

Figura 2.26: Diagrama de Árvore - Problema das 2 Calças e 3 Camisas

Note que a árvore é construída da esquerda para a direita e que o número de “ramos” quesaem de cada escolha inicial (ou possibilidade inicial) corresponde ao número de possibilidadesda próxima escolha.

Podemos concluir, portanto, que ao todo teremos 6 possibilidades de combinações entre asduas calças e as três camisas.

Page 97: Introdução à Lógica e à Programação VisualIntrodução à

P. 91 Seção 2.6

Exemplo 2.32 Uma moeda tem duas faces: cara (C) e coroa (K). Lança-se a moeda três vezesconsecutivas e observa-se qual face ficou voltada para cima. Quais e quantos são os resultadospossíveis?

Figura 2.27: Diagrama de Árvore - Problema do Lançamento da Moeda

Analisando o Diagrama de Árvore da Figura 2.27 podemos notas que os resultados possíveissão: Ω = (C,C,C); (C,C,K); (C,K,C); (C,K,K); (K,C,C); (K,C,K); (K,K,C); (K,K,K).Desta forma, podemos concluir que ao todo temos 8 possibilidades.

2.6.2 – Princípio Fundamental da Contagem (PFC)

O Princípio Fundamental da Contagem (PFC), também conhecido como Princípio Multiplica-tivo, é um método algébrico para determinar o número total de possibilidades de um determinadoexperimento. O PFC é particularmente útil em situações onde a contagem direta se mostratrabalhosa ou inviável.

Definição 2.6.1 Se um experimento é formado por k etapas, de modo que:

• A 1a etapa possui P1 possibilidades;• A 2a etapa possui P2 possibilidades;• A 3a etapa possui P3 possibilidades;• A ka etapa possui Pk possibilidades;

Então, o total de possibilidades é: P1×P2×P3 · · · ×Pk.

Page 98: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.6 P. 92

Exemplo 2.33 Há quatro estradas ligando as cidades A e B, e três estradas ligando as cidadesB e C. De quantas maneiras distintas pode-se ir de A até C, passando por B?

Figura 2.28: Diagrama de Árvore - Problema das Cidades

Aplicando o Princípio Fundamental da Contagem (PFC), temos:p1: existem 4 possibilidades para ir da cidade A até a cidade B;p1: existem 3 possibilidades para ir da cidade B até a cidade C;Logo: existem p1×p2 = 4×3 = 12 maneiras de ir de A até C, passando por B.

Problema 173 Um teatro tem 4 portas. De quantas maneiras diferentes uma pessoa podeentrar e sair do teatro?

Solução. Um teatro tem 4 portas. De quantas maneiras diferentes uma pessoa pode entrare sair do teatro?

Aplicando o princípio fundamental da contagem (PFC), temos que:p1: existem 4 possibilidades para entrar no teatro.p2: existem 4 possibilidades para sair do teatro.Logo: existem p1×p2 = 4×4 = 16 maneiras para entrar e sair do teatro.

Problema 174 Quantos são os números de três algarismos distintos que podemos formar comos algarismos do sistema decimal?

Solução. Quantos são os números de três algarismos distintos que podemos formar com osalgarismos do sistema decimal?

Aplicando o princípio fundamental da contagem (PFC), temos que:Temos três posições para preencher: 1o algarismo 2o algarismo e 3o algarismo.O sistema decimal possui dez algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9.Para formar números de três algarismos distintos temos duas restrições. O primeiro algarismo

não pode ser 0, pois neste caso o número só teria dois algarismos. Logo, apenas 9 dígitos(algarismos) do sistema decimal podem ser utilizados na primeira posição do número quedesejamos formar. Além disso, os três algarismos utilizamos para gerar o número precisam serdistintos. Portanto, podemos afirmar que:

p1: existem 9 possibilidades para o primeiro algarismo, já que o dígito 0 (zero) não pode serutilizado na primeira posição.

p2: existem 9 possibilidades para a segunda posição, já que o algarismo utilizado na primeiraposição não pode mais ser utilizado. Note que o dígito zero (0) agora já poderia ser utilizado.

p3: existem 8 possibilidades para a terceira posição, já que os algarismos utilizados na primeirae segunda posições não podem mais ser utilizados.

Logo: existem p1×p2×p3 = 9×9×8 = 648 maneiras para entrar e sair do teatro.

Page 99: Introdução à Lógica e à Programação VisualIntrodução à

P. 93 Seção 2.6

Problema 175 Quantas placas de veículos podem ser criadas, se forem usadas duas letras deum alfabeto de 26 letras, seguidas por 4 algarismos?

Solução. Quantas placas de veículos podem ser criadas, se forem usadas duas letras de umalfabeto de 26 letras, seguidas por 4 algarismos?

Aplicando o princípio fundamental da contagem (PFC), temos que:Temos duas posições para preencher com letras e quatro posições para preencher com

algarismos. Note que não existe nenhuma restrição quanto a repetição de letras ou algarismos.Portanto, podemos afirmar que:

p1: existem 26 possibilidades para a primeira letra.p2: existem 26 possibilidades para a segunda letra.p3: existem 10 possibilidades para o primeiro algarismo.p4: existem 10 possibilidades para o segundo algarismo.p5: existem 10 possibilidades para o terceiro algarismo.p6: existem 10 possibilidades para o quarto algarismo.Logo: existem p1×p2×p3×p4×p5×p6 = 26 ∗ 26 ∗ 10 ∗ 10 ∗ 10 ∗ 10 = 6.760.000 placas distintas

possíveis.

O estudo da análise combinatória exige o domínio de uma operação específica chamadafatorial, o qual é representado pelo símbolo de exclamação (“!”). O fatorial de um número n édado pelo produto de n pelos seus antecessores. Exemplo 2.34 O fatorial de 5 (representado por 5!) é:

5×4×3×2×1 = 120

Definição 2.6.2 O fatorial de 0 (0!) é: 1.O fatorial de um número n (n!) é: n×(n− 1)×(n− 2) · · · ×(n− (n− 1)).

ObsNote que o fatorial de um número n também pode ser representado como: n×(n− 1)×(n−2) · · ·×1.

ObsVeja que pela definição 1! = 1.

ObsObserve também que n! = n×(n− 1)!.

Page 100: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.6 P. 94

2.6.3 – Arranjo Simples

Num conjunto A com n elementos, são arranjos simples todos os agrupamentos ordenadosformados por p elementos distintos escolhidos entre os n elementos distintos dados, com p menorou igual a n.

An,p = n!(n− p)! (2.12)

Lê-se arranjo de n elementos tomados p a p.

Problema 176 O conselho administrativo de uma escola organizou-se para escolher os ocupantesdos cargos mais importantes, que são: diretor, secretário e coordenador financeiro. Essescargos são escolhidos a partir de votação de todos os membros do conselho administrativoda escola. Em cada voto será indicado um trio (tripla) de membros do conselho para ocuparcada um dos cargos. Sabendo que existem 5 candidatos (os quais concorrem aos 3 cargos), onúmero de comissões administrativas que podem ser formadas é?

Solução. Observe que será realizada uma escolha de 3 entre 5 possibilidades (candidatos).Note também que a ordem é importante. Por exemplo, o voto para Ana, Gal e Zé não é o mesmoque o voto para Gal, Zé e Ana – uma vez que são atribuídas funções diferentes para cada umdeles (diretor, secretário e coordenador financeiro). Portanto, a ordem é importante, o que tornaessa questão um problema de arranjo. Logo, vamos calcular A5,3:

A5,3 = 5!(5−3)! = 5!

2! = 5×4×3×2!2! = 5×4×3 = 60 possibilidades.

Problema 177 Quantos números naturais de quatro algarismos distintos podem ser formadosusando-se os algarismos 2, 3, 4, 5, 6, 7, 8 e 9?

Solução. Observe que este problema envolve um arranjo simples, uma vez que 2345 6= 5432.Logo, vamos calcular A8,4:

A8,4 = 8!(8−4)! = 8!

4! = 8×7×6×5×4!4! = 8×7×6×5 = 1.680 possibilidades.

2.6.4 – Arranjo com Repetição

Chama-se arranjo com repetição ou arranjo completo, todo agrupamento de p elementos deum conjunto dado, com n elementos diferentes, onde a mudança de ordem determina gruposdiferentes, podendo, porém, ter elementos repetidos.

ARn,p = np (2.13)

Problema 178 A senha de um banco possui cinco dígitos formados exclusivamente por números,qual é a quantidade de senhas possíveis?

Solução. Sabemos que a senha é uma sequência de cinco dígitos e que não há restrição emrelação a repetições. Logo, este é um problema que envolve arranjo com repetição. Note quecada dígito pode da senha pode receber um entre 10 algarismos diferentes (0, 1, 2, 3, 4, 5, 6, 7, 8ou 9). Portanto, queremos calcular o arranjo com repetição de 10 elementos tomados de cincoem cinco. Assim, vamos calcular AR10,5.

AR10,5 = 105 = 10.000 possibilidades de senhas diferentes.

Page 101: Introdução à Lógica e à Programação VisualIntrodução à

P. 95 Seção 2.6

Problema 179 Sabendo que as placas dos veículos são formadas por três letras e quatronúmeros, quantas placas distintas é possível formar?

Solução. Nosso alfabeto é composto por 26 letras. Além disso, existem 10 possibilidades denúmeros (0, 1, 2, 3, 4, 5, 6, 7, 8 ou 9). Bom, vamos dividir o problema em dois.

Primeiramente, vamos calcular a quantidade de arranjos possíveis para as letras.AR26,3 = 263 = 17.576.Em seguida, vamos calcular a quantidade de arranjos possíveis para os números.AR10,4 = 104 = 10.000.Por fim, basta multiplicar essas duas quantidades.AR26,3×AR10,4 = 17.576×10.000 = 1.757.600.000 placas distintas.

2.6.5 – Permutação Simples

Conhecemos como permutação os agrupamentos ordenados de todos os elementos de um conjunto(n = p). Permutar é trocar de posição, formando uma nova ordem. A permutação de um conjuntocom n elementos é calculada por:

Pn = p! (2.14)

Problema 180 Quantos anagramas existem na palavra AMOR?

Solução. Podemos entender Anagrama como a troca de posição entre as letras de umapalavra, formando novas palavras, que podem fazer sentido ou não na nossa língua. Esse problemaconsiste em uma permutação simples, uma vez que estamos calculando todos os agrupamentospossíveis ao mudar a ordem de todos os elementos do conjunto. Note que a palavra AMORpossui 4 letras. Portanto, o total de anagramas possíveis é dado pela permutação de quatroelementos. Assim, vamos calcular o valor de P4:

P4 = 4! = 4×3×2×1 = 24 anagramas.

Problema 181 Determine a quantidade de anagramas da palavra castelo que começam com aletra “c”.

Solução. Note que a palavra CASTELO possui 7 letras. Porém, queremos encontrar aquantidade de anagramas que começam com a letra “c”. Logo, devemos fixar a letra “c” e calcularo anagrama das demais. Ao fixarmos a letra c, sobram seis leras para calcularmos a permutação.Assim, vamos calcular o valor de P6:

P6 = 6! = 6×5×4×3×2×1 = 720 anagramas.

Problema 182 Os resultados do último sorteio da Mega-Sena foram os números 04, 10, 26, 37,47 e 57. De quantas maneiras distintas pode ter ocorrido essa sequência de resultados?

Problema 183 — U.F.Pelotas-RS. Tomando como base a palavra UFPEL, resolva as questõesa seguir.

i Quantos anagramas podem ser formados de modo que as vogais estejam sempre juntas?ii Quantos anagramas podem ser formados com as letras UF juntas?iii Quantos anagramas podem ser formados com as letras PEL juntas e nessa ordem?

Page 102: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.6 P. 96

2.6.6 – Permutação com Repetição

A permutação com repetição é aquela na qual precisamos fazer as trocas dos elementos deum conjunto, mas este contém elementos repetidos. Assim, na permutação com repetição, asrepetições são permitidas.

Podemos calcular a quantidade de permutações com repetição através da seguinte fórmula:

P n1,n2,n3···n = n!

n1!×n2!×n3! · · · (2.15)

Onde, n é a quantidade de elementos e n1,n2,n3, · · · são os elementos repetidos.

Problema 184 De quantas maneiras é possível reorganizar as letras da palavra OVO?

Solução. De quantas maneiras é possível reorganizar as letras da palavra OVO?Observe que temos uma permutação com repetição (OVO), onde a letra “O” aparece duas

vezes. Logo, devemos calcular:P n1

n = n!n1! .

P 23 = 3!

2! = 3×2!2! = 3.

Problema 185 De quantas maneiras é possível reorganizar as letras da palavra BOLO?

Solução. De quantas maneiras é possível reorganizar as letras da palavra BOLO?Observe que temos uma permutação com repetição (BOLO), onde a letra “O” aparece duas

vezes. Logo, devemos calcular:P n1

n = n!n1! .

P 24 = 4!

2! = 4×3×2!2! = 12.

Problema 186 Calcular a quantidade de permutações com repetição que podem ser formadascom as letras da palavra MATEMÁTICA.

Solução. Calcular a quantidade de permutações com repetição que podem ser formadascom as letras da palavra MATEMÁTICA.

Observe que temos uma permutação com repetição (MATEMATICA), onde a letra “M”aparece duas vezes, a letra “A” aparece três vezes e a letra “T” aparece duas vezes. Logo,devemos calcular:

P n1,n2,n3n = n!

n1!×n2!×n3!P 3,2,2

10 = 10!3!×2!×2!

P 3,2,210 = 10×9×8×7×6×5×4×3!

3!∗2×1×2×1 = 10×9×8×7×6×5×44 = 10×9×8×7×6×5 = 151.200 possibilidades.

Problema 187 Ao preencher um cartão da loteria esportiva, André optou pelas seguintesmarcações: 4 coluna um, 6 coluna do meio e 3 coluna dois. De quantas maneiras distintasAndré poderá marcar os cartões?

Problema 188 Em um torneio de futsal um time obteve 8 vitórias, 5 empates e 2 derrotas, nas15 partidas disputadas. De quantas maneiras distintas esses resultados podem ter ocorrido?

Page 103: Introdução à Lógica e à Programação VisualIntrodução à

P. 97 Seção 2.6

2.6.7 – Combinação Simples

A combinação é um agrupamento que está ligado a subconjuntos de um conjunto. Chama-secombinação simples (combinação de n, tomados de p em p) a contagem de todos os subconjuntosformados por p elementos distintos de um conjunto de n elementos distintos. Neste tipo deagrupamento a ordem dos elementos não importa. Assim, os conjuntos A,B,C e C,A,B são osmesmos conjuntos.

Cn,p = n!((n− p)!)×p! (2.16)

Problema 189 — Mundo Educação. Para a organização da colação de grau, os estudantesdecidiram montar uma comissão de formatura. Sabendo que havia 30 formandos e que somente2 alunos seriam escolhidos, a quantidade de comissões possíveis é?

Solução. Observe que será realizada uma escolha de 2 entre 30 possibilidades. Além disso,é possível perceber que a ordem não é importante, pois se a comissão for composta por Ana, Galou Gal, Ana, por exemplo, não haverá diferença alguma. Como a ordem não importa e estamosescolhendo subconjuntos de um conjunto de 30 possibilidades, esse problema consiste em umacombinação de 30 elementos tomados 2 em 2. Assim, vamos calcular o valor de C30,2:

C30,2 = 30!((30−2)!)×2! = 30!

28!×2! = 30×29×28!28!×2! = 30×29

2×1 = 30×292 = 870

2 = 435

Problema 190 — Brasil Escola. Em uma sala de aula, tem-se cinco homens e sete mulheres.Quantos grupos de três homens e quatro mulheres podem ser formados?

Solução. Inicialmente, observe que a ordem na qual escolhemos os estudantes não importa,por exemplo o grupo formado por Dé, Sá e Zé é o mesmo grupo formado por Sá, Zé e Dé.Portanto, trata-se de um problema de combinação.

Vamos calcular separadamente a quantidade de grupos que podem ser formados por homense mulheres, e, em seguida, vamos multiplicar esses resultados, pois cada grupo de homens podemisturar-se com cada grupo de mulheres.

A quantidade de grupos formados por alunos homens é dada por:

C5,3 = 5!((5−3)!)×3! = 5!

2!×3! = 5×4×3!2!×3! = 5×4

2×1 = 202 = 10.

A quantidade de grupos formados por alunos homens é dada por:

C7,4 = 7!((7−4)!)×4! = 7!

3!×4! = 7×6×5×4!3!4! = 7×6×5

3×2×1 = 7×6×56 = 7×5 = 35.

Logo, o total de grupos que podem ser formados por três homens e quatro mulheres é:

C5,3×C7,4 = 10×35 = 350 grupos distintos.

Page 104: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.6 P. 98

Problema 191 — UNICAMP 2017. Sabe-se que, em um grupo de 10 pessoas, o livro A foi lidopor 5 pessoas e o livro B foi lido por 4 pessoas. Podemos afirmar corretamente que, nessegrupo:

(a) pelo menos uma pessoa leu os dois livros.(b) nenhuma pessoa leu os dois livros.(c) pelo menos uma pessoa não leu nenhum dos dois livros.(d) todas as pessoas leram pelo menos um dos dois livros.

Problema 192 — ENEM 2009. Doze times se inscreveram em um torneio de futebol amador.O jogo de abertura do torneio foi escolhido da seguinte forma: primeiro foram sorteados 4times para compor o Grupo A. Em seguida, entre os times do Grupo A, foram sorteados 2times para realizar o jogo de abertura do torneio, sendo que o primeiro deles jogaria em seupróprio campo, e o segundo seria o time visitante. A quantidade total de escolhas possíveispara o Grupo A e a quantidade total de escolhas dos times do jogo de abertura podem sercalculadas por meio de:

(a) uma combinação e um arranjo, respectivamente.(b) um arranjo e uma combinação, respectivamente.(c) um arranjo e uma permutação, respectivamente.(d) duas combinações.(e) dois arranjos.

Problema 193 — Mundo Educação. O diretor de uma escola convidou os 280 alunos doterceiro a participarem de uma brincadeira. Havia 5 objetos e 6 personagens em uma casa de9 cômodos. Um dos personagens deveria esconder um dos objetos em um dos cômodos dacasa. O objetivo da brincadeira era adivinhar qual objeto foi escondido, por qual personageme em qual cômodo da casa.

Todos os alunos decidiram participar. A cada vez um aluno era sorteado e dava a suaresposta. As respostas deveriam ser sempre distintas das anteriores, e um mesmo aluno nãopoderia ser sorteado mais de uma vez. Se a resposta do aluno estivesse correta, ele seriadeclarado vencedor e a brincadeira seria encerrada.

O diretor sabia que algum aluno acertaria a resposta porque havia:

(a) 10 alunos a mais do que possíveis respostas distintas.(b) 20 alunos a mais do que possíveis respostas distintas.(c) 119 alunos a mais do que possíveis respostas distintas.(d) 260 alunos a mais do que possíveis respostas distintas.(e) 270 alunos a mais do que possíveis respostas distintas.

Problema 194 — Brasil Escola. Em uma sala de aula existem 12 alunas, onde uma delaschama-se Gal, e 8 alunos, onde um deles atende pelo nome de Sá. Deseja-se formar comissõesde 5 alunas e 4 alunos. Determine o número de comissões, onde simultaneamente participamGal e Sá.

Problema 195 — Brasil Escola. Um time de futebol é composto de 11 jogadores, sendo 1goleiro, 4 zagueiros, 4 meio campistas e 2 atacantes. Considerando-se que o técnico dispõede 3 goleiros, 8 zagueiros, 10 meio campistas e 6 atacantes, determine o número de maneiraspossíveis que esse time pode ser formado.

Page 105: Introdução à Lógica e à Programação VisualIntrodução à

P. 99 Seção 2.6

Problema 196 — Brasil Escola. No jogo de basquetebol, cada time entra em quadra com cincojogadores. Considerando-se que um time para disputar um campeonato necessita de pelomenos 12 jogadores, e que desses, 2 são titulares absolutos, determine o número de equipesque o técnico poderá formar com o restante dos jogadores, sendo que eles atuam em qualquerposição.

Problema 197 — Brasil Escola. Um pesquisador científico precisa escolher três cobaias, numgrupo de oito cobaias. Determine o número de maneiras que ele pode realizar a escolha.

Problema 198 — PUC-RIO 2008. O número total de maneiras de escolher 5 dos números1, 2, 3, · · · , 52 sem repetição é:

(a) entre 1 e 2 milhões.(b) entre 2 e 3 milhões.(c) entre 3 e 4 milhões.(d) menos de 1 milhão.(e) mais de 10 milhões.

Problema 199 — FUVEST 2017. João tem R$ 150,00 para comprar canetas em 3 lojas. Na lojaA, as canetas são vendidas em dúzias, cada dúzia custa R$ 40,00 e há apenas 2 dúzias emestoque. Na loja B, as canetas são vendidas em pares, cada par custa R$ 7,60 e há 10 paresem estoque. Na loja C, as canetas são vendidas avulsas, cada caneta custa R$ 3,20 e há 25canetas em estoque. O maior número de canetas que João pode comprar nas lojas A, B e Cutilizando no máximo R$ 150,00 é igual a:

(a) 46.(b) 45.(c) 44.(d) 43.(e) 42.

Problema 200 — UDESC 2010. Doze equipes participarão de um torneio internacional de vôlei;os participantes foram divididos em dois grupos de seis equipes cada. A fase classificatóriadeste torneio prevê a realização de dois turnos. No primeiro turno, cada equipe jogará contra osadversários do seu próprio grupo e, no segundo, as equipes enfrentarão os times do outro grupo.Ao término da fase de classificação, os dois primeiros colocados de cada grupo avançarão paraa fase final, que será disputada em turno único, num só grupo, com cada classificado jogandocontra todos os outros times. O time que obtiver a primeira colocação na fase final serádeclarado campeão do torneio. De acordo com este regulamento, o total de jogos realizadosdurante o torneio é igual a:

(a) 102.(b) 66.(c) 77.(d) 72.(e) 108.

Page 106: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.6 P. 100

Problema 201 — INFOESCOLA. O número mínimo de pessoas que deve haver em um grupopara que possamos garantir que nele há pelo menos três pessoas nascidas no mesmo dia dasemana é igual a:

(a) 21.(b) 20.(c) 15.(d) 14.(e) 10.

Problema 202 — ITA – SP. (Quantos anagramas com 4 letras distintas podemos formar com as10 primeiras letras do alfabeto e que contenham duas das letras a, b e c?

(a) 1692.(b) 1572.(c) 1520.(d) 1512.(e) 1392.

Problema 203 Determine o número de anagramas que podem ser formados com as letras donome PARAJURU.

Problema 204 Utilizando o nome COPACABANA, calcule o número de anagramas formadosdesconsiderando aqueles em que ocorrem repetições consecutivas de letras.

Problema 205 — ENEM. A prefeitura da cidade de Parajuru está renovando os canteirosde flores de suas praças. Entre as possíveis variedades que poderiam ser plantadas, foramescolhidas cinco: amor-perfeito, cravina, petúnia, margarida e lírio. Em cada um dos canteiros,todos com composições diferentes, serão utilizadas somente três variedades distintas, nãoimportando como elas serão dispostas. Um funcionário deve determinar os trios de variedadesde flores que irão compor cada canteiro. De acordo com o disposto, a quantidade de triospossíveis é dada por:

(a) 5.(b) 15.(c) 5!/(5− 3)!.(d) 5!/(5− 3)!2!.(e) 5!/(5− 3)!3!.

O vídeo a seguir traz uma introdução interessante sobre combinatória.

v Saiba mais

Page 107: Introdução à Lógica e à Programação VisualIntrodução à

P. 101 Seção 2.7

2.7 – Introdução à Probabilidade

Probabilidade é um ramo da Matemática que estuda as as chances de ocorrência de determinadosexperimentos. Assim, por meio da probabilidade podemos calcular, por exemplo, a chance dese obter cara ou coroa no lançamento de uma moeda, a chance de acertar os números de umaloteria, etc.

Inicialmente, precisamos definir alguns conceitos.Definição 2.7.1 Um Experimento é qualquer processo que permite fazer observações. Umexperimento pode ser aleatório ou determinístico.

Definição 2.7.2 Experimento Aleatório é qualquer experiência cujo resultado não sejaconhecido.

Vamos discutir alguns exemplos de experimentos aleatórios. Jogar uma moeda e observar aface superior (cara ou coroa) é um experimento aleatório, uma vez que é impossível saber qualdas faces da moeda ficará voltada para cima. Exceto, se a moeda for viciada, ou seja, modificadapara ter um resultado mais frequentemente. Jogar um dado e observar o número que ficará naface superior também é um experimento aleatório, uma vez que é impossível saber qual das facesdo dado ficará voltado para cima. Exceto, se o dado for viciado.

Definição 2.7.3 Experimento Determinístico é qualquer experiência cujo resultado sejapreviamente conhecido.

Definição 2.7.4 Ponto Amostral é qualquer resultado possível em um determinado experi-mento aleatório.

Por exemplo, no lançamento de uma moeda os pontos amostrais são: cara ou coroa. Já nolançamento de um dado os pontos amostrais são: 1, 2, 3, 4, 5 ou 6.

Definição 2.7.5 Espaço Amostral é o conjunto formado por todos os pontos amostrais deum determinado experimento aleatório, ou seja, por todos os resultados possíveis. Conhecidotambém como conjunto universo, o espaço amostral pode ser representado pelo símbolo gregoΩ (lê-se: ômega).

Para representar o espaço amostral utilizamos a notação de conjuntos. Por exemplo, o espaçoamostral referente ao experimento “lançamento de uma moeda” é o conjunto Ω = cara, coroa.Já o espaço amostral referente ao experimento “lançamento de um dado” é o conjunto Ω =1, 2, 3, 4, 5, 6.

ObsO número de elementos de um determinado espaço amostral é representado por n(Ω).

Definição 2.7.6 Um espaço amostral é chamado de Espaço Amostral Equiprovável quandotodos os pontos amostrais dentro dele têm a mesma chance de ocorrer.

Por exemplo, no lançamento de uma moeda não viciada todos os pontos amostrais (ou seja,cara ou coroa) possuem a mesma chance de ocorrer. Logo, esse espaço amostral é equiprovável.No lançamento de um dado não viciado todos os pontos amostrais (1, 2, 3, 4, 5 ou 6) possuem amesma chance de ocorrer. Logo, esse espaço amostral é equiprovável. Um possível exemplo deespaço amostral não equiprovável é o formado pelo seguinte experimento: escolher entre ir para aacademia ou jogar Free Fire.

Page 108: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.7 P. 102

Definição 2.7.7 Um Evento é um subconjunto de um determinado espaço amostral. Umevento pode conter desde zero (ou seja, nenhum) a todos os resultados possíveis de umexperimento aleatório. Em outras palavras, um evento pode ser um conjunto vazio ou opróprio espaço amostral. No primeiro caso, ele é chamado de evento impossível. Nosegundo, é chamado de evento certo. Um evento impossível é aquele que possui 0% dechance de ocorrer, ou seja, que não ocorrerá. Um evento certo é aquele que possui 100% dechance de ocorrer.

Exemplo 2.35 Considerando o lançamento de um dado, observe os seguintes eventos:

• A: Obter um número par. A = 2, 4, 6 e n(A) = 3.• B: Obter um número primo. B = 2, 3, 5 e n(B) = 3.• C: Obter um número maior ou igual a 5. C = 5, 6 e n(C) = 2.• D: Obter um número natural. D = 1, 2, 3, 4, 5, 6 e n(D) = 6.

Se em um fenômeno aleatório as possibilidades são igualmente prováveis, então a probabilidadeda ocorrência de um determinado evento E é dada por:

PE = n(E)n(Ω) (2.17)

Onde, n(E) é o número de resultados favoráveis e n(Ω) é o número de resultados possíveis(ou seja, o numero de elementos do espaço amostral). Exemplo 2.36 No lançamento de um dado, qual a probabilidade de sair o número um?

Nesse experimento, sair o número um é o evento E. Assim, n(E) = 1. O espaço amostraldesse experimento contém seis elementos: 1, 2, 3, 4, 5 e 6. Logo, n(Ω) = 6.

Assim, podemos calcular PE da seguinte maneira:

PE = n(E)n(Ω) = 1

6 = 0,1666 · · ·

Portanto,

PE = 16,6% Exemplo 2.37 No lançamento de um dado, qual a probabilidade de sair o número par?

Nesse experimento, sair o número par é o evento E. Assim, n(E) = 3. O espaço amostraldesse experimento contém seis elementos: 1, 2, 3, 4, 5 e 6. Logo, n(Ω) = 6.

Assim, podemos calcular PE da seguinte maneira:

PE = n(E)n(Ω) = 3

6 = 0,5 · · ·

Portanto,

PE = 50% Exemplo 2.38 No lançamento de um dado, qual a probabilidade de sair o número 7?

Nesse experimento, sair o número 7 é o evento E. Assim, n(E) = 0. Logo, E é um eventoimpossível. Exemplo 2.39 No lançamento de um dado, qual a probabilidade de sair um número maior ouigual a 1 e menor ou igual a 6?

Nesse experimento, sair um número maior ou igual a 1 e menor ou igual a 6 é o evento E.Assim, n(E) = 6. O espaço amostral desse experimento contém seis elementos: 1, 2, 3, 4, 5 e 6.Logo, n(Ω) = 6. Observe que PE = 6/6 = 1. Assim, E é um evento certo.

Page 109: Introdução à Lógica e à Programação VisualIntrodução à

P. 103 Seção 2.7

Problema 206 Uma urna contém bolas brancas, vermelhas e verdes. Sabendo-se que nela há12 bolas brancas, 8 vermelhas e que as 5 restantes são verdes, se uma bola for retirada aoacaso, qual é a probabilidade de que ela seja branca?

Solução. Nesse experimento, sair uma bola branca é o evento E. Assim, n(E) = 12. Oespaço amostral desse experimento contém 25 elementos. Logo, n(Ω) = 25.

Assim, podemos calcular PE da seguinte maneira:

PE = n(E)n(Ω) = 12

25 = 0,48

Portanto,

PE = 48%

Problema 207 — ENEM. Em uma central de atendimento, cem pessoas receberam senhasnumeradas de 1 até 100. Uma das senhas é sorteada ao acaso. Qual é a probabilidade de asenha ser um número de 1 a 20.

(a) 1/100.(b) 19/100.(c) 20/100.(d) 21/100.(e) 80/100.

Solução. Nesse experimento, sair um número de 1 a 20 é o evento E. Assim, n(E) = 20. Oespaço amostral desse experimento contém 100 elementos. Logo, n(Ω) = 100.

Assim, podemos calcular PE da seguinte maneira:

PE = n(E)n(Ω) = 20

100

Portanto, o item correto é a alternativa (c).

Problema 208 — Fundatec – 2019. Ao lançar uma moeda não viciada três vezes consecutivas,a probabilidade de sair pelo menos duas caras é de:

(a) 10%.(b) 20%.(c) 30%.(d) 40%.(e) 50%.

Solução. A cada lançamento da moeda, há dois resultados possíveis: cara (c) ou coroa (k).Como a moeda será lançada três vezes, há um total de 23 resultados possíveis. Logo, n(Ω) = 8.

Agora, vamos analisar os resultados possíveis:

Ω = (c, c, c); (c, c, k); (c, k, c); (k, c, c); (k, k, k); (k, k, c); (k, c, k); (c, k, k)

Seja E o evento desejado, ou seja, sair pelo menos duas caras, temos que:

E = (c, c, c); (c, c, k); (c, k, c); (k, c, c)

Portanto, n(E) = 4.

Page 110: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.7 P. 104

Assim, podemos calcular PE da seguinte maneira:

PE = n(E)n(Ω) = 4

8 = 0,5 = 50%

Portanto, o item correto é a alternativa (e).

Propriedades Importantes:

1 A probabilidade pode ser representada como fração, como porcentagem ou como númerodecimal.

2 Se E e E ′ são eventos complementares, então: PE + PE′ = 1.3 A probabilidade de um evento E é sempre um número entre 0 (probabilidade de eventoimpossível) e 1 (probabilidade do evento certo), ou uma porcentagem entre 0% e 100%.

2.7.1 – Probabilidade de Dois Eventos Sucessivos ou Simultâneos

A probabilidade de dois eventos sucessivos é dada por:

P (A ∩B) = P (A|B)×P (B) (2.18)

Para se obter a probabilidade de ocorrerem dois eventos sucessivos A e B, denotada porP (A ∩B), basta multiplicar a probabilidade da ocorrência de B (P (B)) pela probabilidade daocorrência de A dado que B já ocorreu (P (A|B)).

ObsObserve que, quando A e B forem eventos independentes (ou seja, o fato de ter ocorrido oevento B não altera a probabilidade de ocorrência do evento A) a fórmula anterior se reduza:

P (A ∩B) = P (A)×P (B) (2.19)

Vamos ver alguns exemplos. Exemplo 2.40 Uma moeda e um dado são lançados simultaneamente. Qual a probabilidade deocorrer coroa e número primo?

Inicialmente, vamos determinar o espaço amostral Ω, que é o conjunto com todos os resultadospossíveis. Por questões didáticas e de simplicidade, vamos denominar cara de “C” e coroa de “K”.O espaço amostral é dado por:

Ω = (C, 1); (C; 2); (C, 3); (C, 4); (C, 5); (C, 6); (K; 1); (K, 2); (K, 3); (K, 4); (K, 5); (K, 6)

Logo, n(Ω) = 12.

Vamos agora descrever os eventos A e B.

• A: ocorrer coroa• B: ocorrer número primo

Observe que esses dois eventos são independentes, ou seja o fato do lançamento do dadoter resultado em um número primo não altera a probabilidade de obter cara no lançamento damoeda (e vice-versa).

Dessa forma, podemos utilizar a seguinte fórmula:

P (A ∩B) = P (A)×P (B)

Page 111: Introdução à Lógica e à Programação VisualIntrodução à

P. 105 Seção 2.7

Note que P (A) = n(A)n(Ω) = 1

2 = 0,5 = 50%.

Veja que P (B) = n(B)n(Ω) = 3

6 = 0,5 = 50%.Logo,

P (A ∩B) = P (A)×P (B) = 12×

12 = 1

4 = 0,25 = 25%

Exemplo 2.41 Uma urna contém 10 etiquetas identificadas pelas letras A,B,C,D, · · · , I, J .Duas delas são retiradas ao acaso, sucessivamente. Qual a probabilidade de saírem duas vogais,se a extração é feita sem reposição?

Inicialmente, vamos agora descrever os eventos A e B.

• A: sair uma vogal• B: sair uma vogal

Observe que, como não há reposição das etiquetas, esses dois eventos NÃO são independentes.O fato de se obter uma vogal na primeira extração altera a probabilidade de obter uma vogal nasegunda extração, uma vez que não haverá a mesma quantidade de etiquetas durante a realizaçãodo segundo evento.

Dessa forma, devemos utilizar a seguinte fórmula:

P (A ∩B) = P (A|B)×P (B)

Note que P (B) = n(B)n(Ω) = 3

10 , pois, das dez letras, apenas 3 são vogais.

Veja que P (A|B) = n(B)n(Ω) = 2

9 , pois, se B ocorreu, restaram 9 letras e, dessas, apenas 2 sãovogais.

Logo,

P (A ∩B) = P (A|B)×P (B) = 29×

310 = 6

90 = 115

O vídeo a seguir traz uma introdução interessante sobre probabilidade.

v Saiba mais

Page 112: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.8 P. 106

2.8 – Sistemas de Numeração

Com o surgimento da necessidade de contar, o ser humano desenvolveu a ideia de número e a suarepresentação em algarismos e sistemas de numeração.Um Sistema de Numeração é um método que nos permite representar a ideia de quantidade.Nesta seção, vamos abordar alguns importantes sistemas de numeração. Para isso, vamos definiralguns elementos básicos presentes nesses sistemas: números, numerais e algarismos.

Definição 2.8.1 Os números são a representação da quantidade propriamente dita.

Definição 2.8.2 Os numerais são as palavras por meio das quais nos referimos às quantidades,às ordens, aos múltiplos ou frações. Alguns exemplos de numerais são: um, dois, dez, treze,primeiro, quinto, dobro, metade, etc. Neste material, vamos trabalhar com os numeraiscardinais, que expressam quantidades, tais como: um, dois etc.

Definição 2.8.3 Os algarismos são os símbolos que representam os números. Por exemplo: 1,2, 13, 20 (algarismos indo-arábicos), IV, L, CD, M (algarismos romanos) etc. Neste material,vamos trabalhar com os algarismos indo-arábicos.

ObsOs algarismos podem também ser chamados de dígitos.

Problema 209 Para praticar os conceitos estudados, responda às perguntas a seguir:

(a) Quantos e quais algarismos compõem o número 502?(b) O nome “quinto” refere-se a que tipo de numeral?(c) Qual numeral cardinal corresponde ao numeral do item (b)?

Solução. Confira abaixo as respostas ao Exercício 209:

(a) O número 502 é composto por três algarismos: 5, 0 e 2.(b) O nome “quinto” refere-se a numeral ordinal.(c) O numeral cardinal correspondente é 5.

Problema 210 Para praticar os conceitos estudados, faça o que se pede:

(a) Escreva o numeral cardinal 12 por extenso.(b) Quantos e quais são os algarismos que formam o número 12?(c) Calcule o triplo de doze.(d) O numero doze é um numeral coletivo. Como ele pode ser chamado?(e) Represente a terça parte de 12.

Na história da humanidade, foram desenvolvidos diversos sistemas de numeração por diferentespovos e culturas. Neste material, daremos destaque aos sistemas de maior interesse para osestudos em Computação: os sistemas decimal, binário e hexadecimal.

Esses três sistemas se caracterizam por considerar a posição de seus algarismos e por adotaruma base. A base é um conjunto símbolos (algarismos) que servem para representar os números.

Page 113: Introdução à Lógica e à Programação VisualIntrodução à

P. 107 Seção 2.8

2.8.1 – Sistema Decimal

Quando pensamos em quantidades e números, o sistema decimal é a representação natural queutilizamos no dia-a-dia. O sistema decimal utiliza base 10, considerando um conjunto de 10algarismos com os quais fazemos as composições para expressar números: 0, 1, 2, 3, 4, 5, 6, 7, 8 e9. A posição de cada algarismo define sua ordem, que pode ser unidade, dezena, centena eassim por diante. Exemplo 2.42 Tomemos o número 394. Esta quantidade é composta de 3 centenas, 9 dezenas e4 unidades. Podemos, portanto, decompor esse número da seguinte maneira:

394 = 3×100 + 9×10 + 4. (2.20)

Observe um detalhe interessante sobre o Exemplo 2.42. A ordem (unidade, dezena, centena) decada algarismo pode ser expressa como uma potência de base 10. Assim, podemos escrever:

394 = 3×102 + 9×101 + 4×100. (2.21)

Podemos observar uma relação entre a ordem do algarismo e o expoente aplicado à potência debase 10.

ordem centena dezena unidadepotência 102 101 100

Essa regra se aplica a qualquer número decimal. Desta forma, podemos, para um número N comn algarismos (ou dígitos, aqui identificados com a letra d), estabelecer a seguinte forma geral:

N = dn−1×10n−1 + dn−2×10n−2 + · · ·+ d1×101 + d0×100 (2.22)

Exemplo 2.43 Aplicando a regra geral ao número N = 847, temos:

N 8 4 7dígitos (para n=3) d2 d1 d0expoentes da base (para n = 3) 2 1 0potências 102 101 100

produtos 8×102 4×101 7×100

Exemplo 2.44 Alguns números decompostos seguindo a regra geral descrita na fórmula 2.22:

• 12 = 1×101 + 2×100

• 8 = 8×100

• 1496 = 1×103 + 4×102 + 9×101 + 6×100

• 230 = 2×102 + 3×101 + 0×100

Problema 211 Decomponha os números a seguir conforme a regra geral apresentada na equação2.22:

(a) 32 =(b) 807 =(c) 350 =(d) 6 =(e) 13825 =

Page 114: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.8 P. 108

Solução. Os números dados são decompostos da seguinte forma:

(a) 32 = 3×101 + 2×100

(b) 807 = 8×102 + 0×101 + 7×100

(c) 350 = 3×102 + 5×101 + 0×100

(d) 6 = 6×100

(e) 13825 = 1×104 + 3×103 + 8×102 + 2×101 + 5×100

Problema 212 Realizando a decomposição de um número, encontramos a soma 50000 + 300 +20 + 1. O número decomposto foi:

(a) 53210.(b) 53021.(c) 50321.(d) 500321.

Problema 213 No número 153902, o valor posicional do algarismo 9 é:

(a) 9.(b) 90.(c) 900.(d) 9000.(e) 90000.

Problema 214 Nos números 1320, 203 e 2932, o valor posicional do algorismo 3 é, respectiva-mente:

(a) centena, dezena e unidade.(b) centena, dezena e unidade.(c) dezena, unidade e centena.(d) centena, unidade e dezena.(e) dezena, centena e unidade.

Problema 215 Na campanha de vacinação da COVID-19 realizada no estado do Ceará, foramvacinadas 380.210 idosos, somente nos primeiros três meses. O nome desse número por extensoé:

(a) trezentos e oitenta mil e duzentos e dez.(b) trinta e oito mil e duzentos e dez.(c) trezentos e oitenta e dois mil e cem.(d) trezentos milhões duzentos e dez mil.(e) trezentos e oitenta duzentos e dez mil.

Page 115: Introdução à Lógica e à Programação VisualIntrodução à

P. 109 Seção 2.8

2.8.2 – Sistema Binário

Enquanto o sistema de numeração decimal é adotado no dia-a-dia, algumas aplicações requeremoutros sistemas de numeração. O sistema de numeração binário é o sistema que representa edescreve o funcionamento dos circuitos eletrônicos que compõem um computador.

Este sistema utiliza base 2. Assim, ele considera apenas dois algarismos para representarquaisquer números. Os algarismos que compõem a base decimal são o 0 e o 1. Exemplo 2.45 São exemplos de números binários:

(a) 1001(b) 0101(c) 10(d) 10101100

A lógica por trás da representação de um número na base binária é a mesma que vimos parao sistema decimal; a única diferença é a base. Desta forma, podemos decompor os númerosbinários do Exemplo 2.45 da seguinte forma:

(a) 1001 = 1×23 + 0×22 + 0×21 + 1×20

(b) 0101 = 0×23 + 1×22 + 0×21 + 1×20

(c) 10 = 1×21 + 0×20

(d) 10101100 = 1×27 + 0×26 + 1×25 + 0×24 + 1×23 + 1×22 + 0×21 + 0×20

O sistema binário pode ser utilizado para representar qualquer conjunto dual, como desligadoe ligado, não e sim, falso e verdadeiro, 0 e 1, etc. Os dispositivos eletrônicos que baseiam-se emcircuitos digitais usam o sistema binário como “linguagem” e, nelas, ele é representado por 0s e1s (dígitos binários ou simplesmente bit – do inglês de binary digit).

ObsOs dígitos 0 e 1 do sistema binário levam o nome especial de bit. O bit é a unidadefundamental de de informação do computador!

Vale destacar ainda que sistema binário é base da Álgebra Booleana (ou Álgebra de Boole),por meio da qual é possível realizar operações lógicas e aritméticas com apenas dois estados.Desta forma, é possível representar números, símbolos, caracteres e fazer operações ariméticase lógicas por meio de circuitos eletrônicos digitais bastante simples, os quais são chamados deportas lógicas. Esses circuitos são capazes de executar operações aritméticas e lógicas de formaextremamente rápida.

ObsAlguns agrupamento de bits recebem nomes específicos (que muito provavelmente você jáconhece):

• 1 byte = 8 bits;• 1 kilobyte = 1.024 bytes;• 1 gigabyte = 1.000.000.000 bytes,

Page 116: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.8 P. 110

Conversão Binário - Decimal

É possível realizarmos a conversão entre os sistemas de numeração aqui estudados. De fato, adecomposição dos números binários do Exemplo 2.45 é, na verdade, o processo de conversãodesses números binários para a base decimal. Assim, resolvendo os somatórios, estamos realizandoa Conversão Binário-Decimal, e temos como resultados os seguintes valores na base decimal:

(a) 1001 = 1×23 + 0×22 + 0×21 + 1×20 = 9(b) 0101 = 0×23 + 1×22 + 0×21 + 1×20 = 5(c) 10 = 1×21 + 0×20 = 2(d) 10101100 = 1×27 + 0×26 + 1×25 + 0×24 + 1×23 + 1×22 + 0×21 + 0×20 = 172

Podemos, então, dizer que:

(a) 10012 = 910(b) 01012 = 510(c) 102 = 210(d) 101011002 = 17210

ObsObserve a notação com os subscritos 2 e 10, para indicar a base de numeração dos valoreslistados.

Problema 216 Realize a conversão dos seguintes números binários para o sistema decimal:

(a) 1101012 =(b) 10010112 =(c) 101002 =(d) 11100012 =(e) 12 =(f) 02 =

Solução. Os valores decimais para os números binários dados são:

(a) 1101012 = 5310(b) 10010112 = 7510(c) 101002 = 2010(d) 11100012 = 11310(e) 12 = 110(f) 02 = 010

Problema 217 — IESES 2012. A seguir, apresentamos quatro números em suas representaçõesbinárias: 0101001, 1101001, 0001101, 1010110. Assinale a alternativa que apresenta o somatóriodos 4 números acima convertidos para o formato decimal.

(a) 245.(b) 101.(c) 111.(d) 267.(e) 354.

Page 117: Introdução à Lógica e à Programação VisualIntrodução à

P. 111 Seção 2.8

Conversão Decimal - Binário

Para converter um dado número decimal para a base binária, realizamos sucessivas divisões donúmero dado por 2, que é a base do sistema de numeração binário. Paramos de realizar asdivisões quando o quociente da divisão for menor que a base, que é 2.

Exemplo 2.46 Vamos converter o número 21 para binário:Realizando a primeira divisão por 2, temos:21 2(1)10

Como o quociente da divisão ainda é maior que 2, continuamos a efetuar mais divisões. Oprocesso só se encerra quando obtemos um quociente menor que 2. O processo completo estáilustrado abaixo:

21 2(1) 10 2

(0) 5 2(1) 4 2

(0) 2 2(0)1

O processo para quando obtemos quociente igual a 1. Neste momento, o número binárioresultante da conversão é simplesmente a leitura, de baixo para cima, deste último quociente,seguido de todos os restos das divisões. Assim, o número 21 em decimal é 100101 em binário.Podemos escrever: 2110 = 100102.

Problema 218 Converta os números decimais para binário:

(a) 2510 =(b) 1110 =(c) 510 =(d) 1310 =

Solução. Os valores binários para cada número decimal são:

(a) 2510 = 110012(b) 1110 = 10112(c) 510 = 1012(d) 1310 = 11012

Problema 219 — UFF 2012. Os computadores utilizam o sistema binário ou de base 2 que é umsistema de numeração em que todas as quantidades se representam com base em dois números,ou seja, (0 e 1). Em um computador o número 2012, em base decimal, será representado, embase binária, por:

(a) 110111.(b) 11111011100.(c) 111110111000.(d) 111110111.(e) 1111010101.

Page 118: Introdução à Lógica e à Programação VisualIntrodução à

Seção 2.8 P. 112

2.8.3 – Sistema Hexadecimal

Números binários podem ser muito longos. Como exemplo, se convertermos o número 39410 paraa base binária, temos o número 1100010102.

Em virtude disso, em algumas situações, outros sistemas são considerados para efeito derepresentação e cálculo. O Sistema Hexadecimal é uma dessas opções, que vamos descreveraqui.

A base desse sistema é 16. Os algarismos utilizados para representar números são: 0, 1, 2, 3,4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

As letras de A a F representam, respectivamente, os números de 10 a 15. Desta forma,o número 394, ao ser convertido para a base hexadecimal, fica 18A. Para compreender esteresultado, vamos conhecer os processos de conversão entre este sistema e o sistema decimal.

Conversão Hexadecimal - Decimal

O processo para conversão de um número na base hexadecimal para um número na base decimalé o mesmo que vimos para a conversão binário-decimal. Seguiremos a mesma forma geralapresentada na Equação 2.22. A única diferença será a base, que aqui é 16. Exemplo 2.47 Vamos converter o número ABC para a base decimal:

ABC16 = A×162 +B×161 + C×160.

Na base hexadecimal, o símbolo A representa o número 10, o B representa o número 11 e Crepresenta o número 12. Assim, o cálculo fica:

ABC16 = 10×162 + 11×161 + 12×160

= 10×256 + 11×16 + 12×1= 2560 + 176 + 12= 274810

Problema 220 Converta os números na base hexadecimal para a base decimal:

(a) AAA16 =(b) FF16 =(c) 9B1216 =(d) BB =

Solução. Os valores decimais correspondentes aos valores dados em hexadecimal são:

(a) AAA16 = 273010(b) FF16 = 25510(c) 9B1216 = 3969810(d) BB16 = 18710

Page 119: Introdução à Lógica e à Programação VisualIntrodução à

P. 113 Seção 2.8

Conversão Decimal - Hexadecimal

Neste processo de conversão, vamos seguir a mesma lógica aplicada à conversão de binário paradecimal. A única diferença é que faremos sucessivas divisões por 16. Exemplo 2.48 Vamos converter o número 438 para a base hexadecimal:438 16(6) 2716

(11) 1O número hexadecimal é dado pelo quociente da última divisão, seguido dos restos de todas asdivisões, tomados de baixo para cima. Com isto, temos o número 1116. Mas, como o número11 é representado pelo algarismo B na base hexadecimal, devemos escrever 1B6. Resumindo:43810 = 1B616.

Problema 221 Converta os números na base decimal para a base hexadecimal:

(a) 5810 =(b) 3310 =(c) 36010 =(d) 24110 =

Solução. Os números hexadecimais correspondentes aos decimais dados são:

(a) 5810 = 3A16(b) 3310 = 2116(c) 36010 = 16816(d) 24110 = F116

Problema 222 Converta os seguintes números da base 10 para a base 16:

(a) 100(10);(b) 155(10);(c) 137(10);(d) 9(10);(e) 444(10);(f) 999(10);(g) 399(10);(h) 13(10);(i) 1000(10);(j) 333(10);(k) 666(10);(l) 0001(10);

(m) 0011(10);

Page 120: Introdução à Lógica e à Programação VisualIntrodução à
Page 121: Introdução à Lógica e à Programação VisualIntrodução à

P. 115

3 |Introdução à Programação Visual

Os conteúdos teóricos abordados até este ponto deste material servem de base para que possa-mos desenvolver as habilidades necessárias para construir programas e implementar aplicaçõesinterativas para os mais variados fins. Neste capítulo, teremos a oportunidade de desenvolveralgumas atividades práticas, propostas na Seção 3.4.

A Seção 3.2 abordará os conceitos e estruturas necessários para a escrita de algoritmos,constituindo um importante recurso para aprendermos a escrever bons programas. A Seção 3.1apresenta alguns conceitos básicos de hardware e software, que auxiliarão na compreensão dealguns elementos importantes na escrita de programas, abordados na Seção 3.3.

3.1 – Conceitos de Hardware e Software

Neste curso, vamos intensificar a utilização do computador para colocar em prática o quevamos desenvolver em termos de Pensamento Computacional. O computador será, portanto, oinstrumento essencial para as nossas atividades!Então, é importante conhecermos bem o que é o Computador.

Definição 3.1.1 Computador é uma máquina destinada ao processamento de dados, capazde executar instruções que visam produzir certas transformações nesses dados para alcançarum determinado objetivo.

Nesta seção, vamos estudar os principais componentes de um sistema computacional: o Hardwaree o Software.

ObsEmbora nosso estudo esteja voltado especificamente a computadores, vale ressaltar queoutros aparelhos ou dispositivos tecnológicos, como smartphones, tablets e consoles de jogoseletrônicos são também constituídos de hardware e software.

3.1.1 – Hardware

Hardware é a parte física do computador, que inclui monitor, teclado, gabinete e mouse. Taisdispositivos podem ser categorizados como:

• Dispositivos de entrada e saída;• Dispositivos de armazenamento;• Processador.

Dispositivos de Entrada e Saída

São os componentes físicos que nos permitem interagir com o computador.Os dispositivos de entrada permitem ao usuário dar comandos para que o computador executealguma tarefa ou aplicação. Dentre os dispositivos de entrada, podemos citar o teclado, o mouse,a mesa digitalizadora e o joystick.

Os dispositivos de saída permitem ao usuário do computador obter resultados e respostas,seja por meio de visualização, áudio ou impressão. Assim, alguns exemplos de dispositivos desaída são o monitor, as caixas de som e a impressora.

Page 122: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.1 P. 116

ObsExistem alguns dispositivos que funcionam tanto para entrada quanto para saída. Comoexemplo, podemos citar as telas touchscreen, presentes em alguns monitores e em smartpho-nes e tablets.

Exercício 3.1 Identifique os dispositivos na Figura 3.1, informando o nome de cada um eindicando se são de entrada ou de saída:

(a) (b) (c) (d)

Figura 3.1: Dispositivos de entrada e saída

Solução. Os dispositivos indicados nos itens (a) a (d) na Figura 3.1 são:

(a) nome: monitor; função: dispositivo de saída.(b) nome: impressora; função: dispositivo de saída.(c) nome: joystick; função: dispositivo de entrada.(d) nome: mesa digitalizadora; função: dispositivo de entrada.

Dispositivos de Armazenamento

No dia-a-dia, normalmente utilizamos cadernos e blocos (ou até mesmo aplicativos) de notas paraguardarmos informações que desejamos ser capazes de recuperar rapidamente para relembrarsempre que necessário.

O computador tem como uma de suas principais caraterísticas a capacidade de guardar umgrande volume de dados e de manipulá-los com muita rapidez. Que dados são esses? Vamos veralguns exemplos no Exemplo 3.1. Exemplo 3.1 Alguns exemplos de dados que o computador armazena e manipula:

• Arquivos de fotos;• Arquivos de músicas;• Documentos de texto;• Arquivos de programas;• Arquivos de vídeo etc.

Para armazenar esses dados, a memória é o dispositivo de armazenamento utilizado. Acapacidade de armazenamento de uma memória é dada por seu tamanho, que é expresso emmúltiplos de bits.

ObsConvém lembrar que o bit é a unidade fundamental de informação do computador, comofoi dito na Seção 2.8.2.

Page 123: Introdução à Lógica e à Programação VisualIntrodução à

P. 117 Seção 3.1

Nome Tamanho em bytesQuilobyte (KB) 1.024, ou 210

Megabyte (MB) 1.048.576, ou 220

Gigabyte (GB) 1.073.741.824, ou 230

Tabela 3.1: Múltiplos de bytes

Os múltiplos de bits começam com o byte, que é representado por oito bits. A partir dobyte, são definidos os múltiplos utilizados para representar quantidades manipuladas:

A evolução dos computadores resultou em um aumento significativo da capacidade de ar-mazenamento e processamento. Assim, podemos encontrar dispositivos de armazenamento comcapacidade medida em Terabyte (TB), que equivale a 240 bytes, ou 1.024 Gigabytes (GB).

Além de seu tamanho, a memória se caracteriza por ser de dois tipos distintos: a MemóriaPrincipal e a Memória Secundária.

Memória Principal

AMemória Principal é encarregada de armazenar dados que estão sendo utilizados no momentoem que um usuário está utilizando o computador. Portanto, ela funciona somente quando ocomputador está ligado. Ela fica na parte interna do computador, por isso dificilmente ela é vista.A Figura 3.2 ilustra um exemplo de chip de memória.

Figura 3.2: Chip de memória.

Por funcionar somente quando o computador está ligado, a memória principal é dita volátil.Isso significa que, quando o computador é desligado, tudo o que estava nessa memória se perde!Assim, quando você está trabalhando em um documento, numa planilha de dados ou outro tipode arquivo, é importante que você os salve para não perdê-los. Alguns aparelhos e aplicativospossuem a função de salvar automaticamente, porém não é uma boa ideia se acostumar a utilizarsomente esses recursos. O ideal é adotar o hábito de ativamente salvar seus arquivos enquantotrabalha. Ao salvar um arquivo, ele está sendo enviado para um dispositivo de armazenamentosecundário, a Memória Secundária.

Memória Secundária

A Memória Secundária é encarregada de manter os dados armazenados, independente de ocomputador estar ligado ou não. Os arquivos armazenados nesse tipo de memória só são retiradosquando são apagados pelo usuário do computador, ou por um programa. Por esta razão, amemória secundária é dita não-volátil. Alguns exemplos de dispositivos de armazenamentosecundário estão listados no Exemplo 3.2. Exemplo 3.2 Alguns dispositivos de armazenamento secundário:

• Disco rígido mecânico (HD);

Page 124: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.1 P. 118

• Disco rígido de estado sólido (SSD), mais rápido e seguro que o HD;• pendrive;• CD e DVD;• Cartão de memória.

Exercício 3.2 Responda às perguntas abaixo:

(a) Quando instalamos um programa no computador, em que tipo de memória ficamarmazenados os arquivos deste programa?

(b) Quando estamos utilizando um programa no computador, em que tipo de memória ficamarmazenados os arquivos deste programa?

(c) Durante a digitação de um documento ainda não salvo no computador, o que acontececom esse arquivo quando ocorre um problema de falta de energia e o computador sejadesligado?

(d) Pendrive, CD e cartões de memória são chamados também de mídias. Assim, as mídiassão memórias voláteis ou não-voláteis?

Solução. As respostas às perguntas do Exercício 3.2 são:

(a) Quando instalamos um programa no computador, os arquivos ficam armazenados namemória secundária (no HD).

(b) Quando estamos utilizando um programa no computador, os arquivos e dados referentes aofuncionamento do programa em questão ficam armazenados na memória principal.

(c) O documento se perde, pois ele não tinha sido salvo. Assim, o documento estava armazenadosomente na memória principal, que perde tudo quando o computador é desligado.

(d) As mídias, como o pendrive, o CD e os cartões de memória são memórias não-voláteis.

Armandinho, de Alexandre Beck.

Processador

O trabalho do Processador (ou CPU) é executar comandos armazenados em memória (código deprogramas e dados). Assim, por exemplo, cada vez que acionamos uma tecla, clicamos no mouseou abrimos um aplicativo, enviamos instruções para o processador executar. O processador écomposto de uma placa de cerâmica de 2 polegadas com um chip de silício. Um exemplo deprocessador pode ser visto na Figura 3.3.

A unidade central de processamento é composta por: unidade lógica e aritmética, unidade decontrole, e registradores.

• A unidade lógica e aritmética (ULA) assume todas as tarefas relacionadas às operaçõeslógicas (and, or, not, etc.) e aritméticas (adições, subtrações, ...).

Page 125: Introdução à Lógica e à Programação VisualIntrodução à

P. 119 Seção 3.1

Figura 3.3: Um processador.

• A unidade de controle (UC) assume toda a tarefa de controle das ações a serem realizadaspelo computador, comandando todos os demais componentes da máquina. É a UC que devegarantir a correta execução dos programas e a utilização dos dados corretos nas operaçõesque as manipulam.

• Os registradores compõem uma memória interna à CPU, que permite o armazenamento devalores intermediários ou informação de comando. São memórias de altíssima velocidade,mas com capacidade de armazenamento bem limitada.

ObsA sigla CPU significa Central Processing Unit, ou Unidade Central de Processamento.Muitas pessoas usam a sigla UCP ou CPU para se referir ao gabinete do computador, oque não é correto.

ObsA evolução dos gráficos em computadores foi impulsionada pelo desenvolvimento de umaunidade de processamento adicional: a GPU (Graphics Processing Unit). Esta unidade sededica especificamente às atividades gráficas presentes em jogos, aplicações para a criação demodelos tridimensionais e para edição e exibição de vídeo. Tais aplicações exigem cálculosmuito mais especializados, que poderiam sobrecarregar a CPU.

Exemplo 3.3 A Figura 3.4 ilustra a evolução gráfica em jogos de duas famosas franquias. Osurgimento da GPU possibilitou “liberar” a CPU do processamento de cálculos mais pesadosnecessários à exibição gráfica, sem comprometer a velocidade de processamento da CPU. A GPUfica localizada na chamada placa de vídeo.

(a) Super Mario (1985 a 2017). (b) FIFA (1993 a 2020).

Figura 3.4: Evolução gráfica em franquias de jogos eletrônicos

Os componentes de hardware que acabamos de estudar –

• Dispositivos de entrada e saída;• Dispositivos de armazenamento;

Page 126: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.1 P. 120

• Unidade de processsamento

– compõem o que chamamos de Arquitetura do computador. Em particular, essa arquitetura foiproposta pelo matemático John von Neumann (1903 - 1957), e pode ser resumida no diagramasimplificado, apresentado na Figura 3.5.

Figura 3.5: Arquitetura de von Neumann.

3.1.2 – Software

São os programas que nos permitem realizar atividades específicas num computador. Jogos,editores de texto, editores de fotos e navegadores web são exemplos de software.

O hardware e o software sempre trabalham em conjunto. Enquanto o software faz as operações,o hardware é a parte física com a qual essas funções podem ser realizadas.

A variedade de softwares que encontramos à nossa disposição é imensa, e eles podem serclassificados conforme o seu propósito. Assim, podemos dividir os softwares nos seguintes tipos:software básico, software aplicativo e software utilitário.

Software Básico

São programas utilizados para o funcionamento do sistema. Por exemplo, quando queremos abrirum arquivo, não precisamos nos preocupar com os mecanismos físicos que devem ser acionadospara que esse arquivo seja encontrado e exibido. Resumindo, o software básico promove ainteração entre máquina e usuário. Exemplos de softwares básicos são o sistema operacional,compiladores etc.

ObsO sistema operacional é o software básico mais importante do computador. Ele é instaladoem uma área especial dentro do disco rígido e é carregado (para a memória principal) todavez que o computador é ligado. É ele que controla todos os recursos do computador. Ossistemas operacionais mais conhecidos são: Windows, Linux e MacOS.

ObsConheceremos um pouco mais sobre softwares compiladores quando estivermos estudandoconceitos específicos de programação.

Page 127: Introdução à Lógica e à Programação VisualIntrodução à

P. 121 Seção 3.1

Software Aplicativo

São programas utilizados pelos usuários para auxiliar nas tarefas realizadas no dia a dia. Dentre ossoftwares aplicativos, podemos citar os editores de texto, navegadores web, planilhas eletrônicas,programas gráficos, editores de vídeo etc.

Software Utilitário

São programas que permitem ao usuário realizar tarefas adicionais àquelas oferecidas pelo sistemaoperacional. Exemplos de softwares utilitários são os compactadores de arquivos (como o Winzip),os antivírus, os aplicativos para desfragmentação de unidades de discos etc.

Exercício 3.3 Classifique os componentes abaixo como hardware ou software:

(a) Disco rígido (HD)(b) Linux(c) Microsoft Windows(d) Mouse(e) Microsoft Word(f) Mesa digitalizadora(g) Adobe Photoshop

Solução. Podemos classificar os componentes abaixo como:

(a) Disco rígido (HD): hardware.(b) Linux: software.(c) Microsoft Windows: software.(d) Mouse: hardware.(e) Microsoft Word: software.(f) Mesa digitalizadora: hardware.(g) Adobe Photoshop: software.

Exercício 3.4 Classifique os softwares abaixo como básico, aplicativo ou utilitário:

(a) Google Chrome(b) Linux(c) Microsoft Word(d) Microsoft Media Player(e) Microsoft Windows 10(f) Winzip(g) Avast anti vírus

Solução. Podemos classificar os softwares abaixo como:

(a) Google Chrome: aplicativo.(b) Linux: básico.(c) Microsoft Word: aplicativo.(d) Microsoft Media Player: aplicativo.(e) Microsoft Windows 10: básico.(f) Winzip: utilitário.(g) Avast anti vírus: utilitário.

Page 128: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.2 P. 122

3.2 – Noções de Algoritmos

Vimos, na Definição 3.1, que o computador é uma máquina capaz de executar instruções. Nestaseção, vamos aprender como podemos escrever e organizar essas instruções, conhecendo seusprincipais comandos e estruturas. Vamos, portanto, aprender a construir algoritmos.

Definição 3.2.1 Um Algoritmo é uma sequência de instruções a serem executadas para aresolução de um problema.

As instruções que compõem um algoritmo devem atender aos seguintes requisitos:

• As instruções devem ser listadas de modo a seguir uma ordem lógica. A Seção 3.2.3aprofundará a discussão sobre este requisito.

• Como as instruções serão executadas para produzir uma resultado, ou uma solução paraum problema, tais instruções devem garantir que a quantidade de passos a seremexecutados seja finita.

• As instruções não podem conter ambiguidades, ou seja, cada passo a ser executadodeve ser escrito de forma a não permitir mais de uma interpretação. Uma máquina não écapaz de interpretar metáforas, nem resolver ambiguidades!

O vídeo a seguir mostra uma campanha publicitária da Associação Brasileira de Imprensa, quedestaca o problema da ambiguidade na língua portuguesa por meio de exemplos de frases einformações que mudam seu sentido por meio do emprego da vírgula.

v Campanha 100 anos da ABI

Algoritmos para a solução de problemas do dia-a-dia

Exemplo 3.4 Um exemplo clássico de algoritmo é uma receita de bolo. A receita descreve asregras e operações necessárias para a conclusão de seu objetivo: a preparação de um bolo. AFigura 3.6 mostra um exemplo de receita.

Ao observar uma receita com atenção, vemos que ela começa descrevendo os ingredientes esuas quantidades. Em seguida, a receita apresenta as regras para o preparo do bolo, como, porexemplo, a ordem em que os ingredientes devem ser incluídos, como misturá-los, instruções paraassar a massa, etc.

Repare que, para o bolo sair da maneira como indica a receita, é necessário que as instruçõespara o seu preparo sejam executadas corretamente. Se alguma instrução tiver sido executada naordem trocada, ou a quantidade de alguns ingredientes for alterada, o resultado será diferentedaquele esperado.

Da mesma forma, em programação, precisaremos que o computador execute as instruções demodo a solucionar um dado problema. Assim, é nossa responsabilidade escrever algoritmos demodo a prover as instruções na ordem correta, sem ambiguidades e em uma quantidade finita deetapas.

Analisando o Exemplo 3.4, percebemos que um algoritmo se mostra útil quando desejamosensinar uma pessoa a realizar determinada tarefa.

Page 129: Introdução à Lógica e à Programação VisualIntrodução à

P. 123 Seção 3.2

Figura 3.6: Receita (ou algoritmo) para fazer um bolo de cacau.

Algoritmo para sacar dinheiro em um caixa eletrônico.Início1 - inserir o cartão.2 - digitar a senha.3 - informar valor a sacar.4 - retirar dinheiro e cartão.5 - sair do caixa eletrônico.Fim

Figura 3.7: Um algoritmo para sacar dinheiro em um caixa eletrônico.

Exemplo 3.5 Na Figura 3.7, podemos ver uma sequência de instruções para ensinar uma pessoaa sacar dinheiro em um caixa eletrônico.

É importante notar que a solução apresentada no algoritmo apresentado na Figura 3.7 podeser mais detalhada, incluindo mais passos para deixar as instruções ainda mais claras.

Exercício 3.5 Que outros passos você sugeriria incluir no algoritmo do Exemplo 3.5 (Figura3.7) para deixá-lo mais preciso e detalhado?

Solução. Não existe solução única para o Exercício 3.5. No entanto, vamos deixar aqui umadas inúmeras possíveis soluções para aprimorar o algoritmo do Exemplo 3.5 (veja Figura 3.8).

Exercício 3.6 Proponha algoritmos para as tarefas a seguir:

(a) Trocar uma lâmpada.(b) Fazer uma tapioca com coco ralado.(c) Atravessar uma rua.

Solução. É possível ver nas Figuras 3.9, 3.10 e 3.11 propostas bem rudimentares de al-goritmos para cada problema. Você pode propor melhorias e aprimoramentos aos algoritmosapresentados.

Page 130: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.2 P. 124

Algoritmo aprimorado para sacar dinheiro em um caixa eletrônico.Início1 - ir até o caixa eletrônico.2 - inserir o cartão.3 - aguardar terminal solicitar a senha.4 - digitar a senha.5 - escolher operação a ser efetuada: “saque”.6 - informar valor a sacar.7 - retirar dinheiro e cartão.8 - guardar dinheiro e cartão.9 - sair do caixa eletrônico.Fim

Figura 3.8: Um algoritmo aprimorado para sacar dinheiro em um caixa eletrônico.

Solução do Exercício 3.6(a): Algoritmo para trocar uma lâmpada.Início1 - desligar o interruptor de luz.2 - pegar uma lâmpada nova.3 - posicionar uma escada abaixo da lâmpada.4 - subir a escada.5 - retirar a lâmpada queimada.6 - encaixar a lâmpada nova.7 - descer da escada.8 - descartar lâmpada queimada.Fim

Figura 3.9: Um algoritmo para trocar uma lâmpada.

Como foi dito antes, os algoritmos apresentados nas Figuras 3.9, 3.10 e 3.11 são sequênciasde instruções rudimentares. Observando com atenção, podemos aprimorar essas sequênciasde instruções, adicionando detalhes a cada passo a ser executado, e até mesmo propondo umconjunto diferente de passos para resolver os mesmos problemas.

É importante despertar o olhar crítico sobre os exemplos apresentados (em especial, as soluçõesdo Exercício 3.6), e tentar propor melhorias a cada um deles. Mas, não se preocupe: com aprática, vamos adquirindo essa habilidade. Aqui vão algumas dicas de como proceder antes deescrever um algoritmo:

(a) Verifique se você compreendeu bem o problema. Isso é essencial para propor os passos parase chegar à sua solução;

(b) Procure reconhecer e listar os elementos necessários à solução do problema;(c) Pense em uma ordem lógica para os passos que vão utilizar e manipular os elementos

envolvidos na solução.

Com isto, vamos, aos poucos, ganhando mais habilidades e experiência.

ObsEscrever algoritmos é como andar de bicicleta. Quando mais praticamos, mais habilidososficamos!

Page 131: Introdução à Lógica e à Programação VisualIntrodução à

P. 125 Seção 3.2

Solução do Exercício 3.6(b): Algoritmo para fazer uma tapioca com coco ralado.Início1 - pegar a goma da tapioca.2 - despejar a goma em uma vasilha.3 - pegar o coco ralado.4 - despejar o coco ralado na mesma vasilha da goma.5 - adicionar sal à mistura de tapioca e coco ralado.6 - pegar um frigideira.7 - colocar a frigideira no fogão.8 - esperar a frigideira aquecer.9 - colocar um pouco de tapioca na frigideira quente.10 - esperar a goma assar.11 - virar a tapioca.12 - servir a tapioca em um prato.Fim

Figura 3.10: Um algoritmo para fazer uma tapioca com coco ralado.

Solução do Exercício 3.6(c): Algoritmo para atravessar uma rua.Início1 - olhar para o lado direito da pista.2 - olhar para o lado esquerdo da pista.3 - atravessar a rua.Fim

Figura 3.11: Um algoritmo para atravessar uma rua.

Algoritmos para a solução de jogos

Vamos praticar a escrita de algoritmos para solucionar alguns jogos. Nesta subseção, vamosanalisar alguns exemplos. Exemplo 3.6 Considere o seguinte jogo: você tem três missionários e três canibais juntos, àmargem de um rio. Sua missão é atravessar os missionários e os canibais para a outra margemdo rio, sob as seguintes condições:

• A barca que atravessa os missionários e os canibais só se movimenta se tiver pelo menosuma pessoa nela.

• A quantidade máxima de pessoas que a barca suporta é de 2 pessoas.• Em nenhuma das margens podemos ter uma quantidade de canibais maior que a quantidade

de missionários.

Um dos possíveis algoritmos para solucionar este problema está apresentado na Figura 3.12.

ObsVocê pode acessar o jogo dos missionários e canibais no site do Racha Cuca. Aproveitepara experimentar outros jogos disponíveis no site!

Exemplo 3.7 Considere o jogo a seguir: um robô precisa da sua ajuda para chegar até umalamparina para poder apagá-la. A Figura 3.13 mostra o cenário do jogo.

Sua missão é prover as instruções para o robô chegar até a lamparina, obedecendo às seguintesrestrições:

• O robô só pode se movimentar pelos ladrilhos azuis.

Page 132: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.2 P. 126

Tela do jogo da travessia dos missionários e canibais, do site Racha Cuca. Acesso em 26/08/2021.

Algoritmo para o jogo dos missionários e canibais.Início1 - dois canibais atravessam o rio.2 - um deles volta trazendo a canoa.3 - novamente, dois canibais atravessam o rio.4 - um dos canibais volta.5 - dois missionários atravessam o rio.6 - voltam um missionário e um canibal.7 - dois missionários atravessam o rio.8 - o canibal que estava do outro lado volta com a canoa.9 - dois canibais atravessam o rio.10 - um canibal volta.11- e, finalmente, dois canibais completam a travessia.Fim

Figura 3.12: Um algoritmo para solucionar o problema dos missionários e canibais.

• A trajetória do robô deve ser feita de modo que ele ocupe um ladrilho por vez.• Cada novo ladrilho a ser ocupado pelo robô deve compartilhar uma aresta com o ladrilho

onde ele estava anteriormente. As Figuras 3.14(a) e 3.14(b) indicam movimentaçõesválidas para o robô.

• Não são permitidas movimentações entre ladrilhos que não compartilham uma aresta entresi. A Figura 3.14(c) indica um movimento não permitido para o robô.

• Cada movimentação ocorrerá mediante uma instrução dada por você. As instruções poderãoser:– Mover para a frente. Esta instrução faz o robô avançar um ladrilho apenas.– Girar para a direita X graus. Esta instrução faz o robô girar para a direita, sem

sair do ladrilho onde está. O ângulo do giro será dado pelo valor que você der a X.– Girar para a esquerda X graus. Esta instrução faz o robô girar para a esquerda,

sem sair do ladrilho onde está. O ângulo do giro será dado pelo valor que você der aX.

Um algoritmo para solucionar o problema pode ser visto na Figura 3.15.

Exercício 3.7 É possível observar que o Algoritmo apresentado na Figura 3.15 não é a únicasequência de instruções possível para resolver o problema. Para praticar, proponha um outroalgoritmo para resolver o jogo do Robô.

Solução. Podemos ver, na Figura 3.16, uma solução alternativa para o algoritmo apresentado

Page 133: Introdução à Lógica e à Programação VisualIntrodução à

P. 127 Seção 3.2

Figura 3.13: Cenário do jogo do robô.

(a) (b) (c)

Figura 3.14: Regras para a movimentação do Robô no ladrilho.

na Figura 3.15.

ObsÉ importante ressaltar que você pode encontrar uma solução diferente da apresentada naFigura 3.16!

Exercício 3.8 Considere o seguinte jogo: temos um robô capaz de realizar trajetórias específicas,deixando um rastro por onde passa. Nossa missão é ajudá-lo a descrever trajetórias, de modoa deixar rastros que formem desenhos.

O robô é capaz de compreender instruções do tipo:

• Andar para a frente X metros;• Girar para a direita X graus;• Girar para a esquerda X graus.

Proponha instruções para que o robô deixe rastros desenhando as seguintes figuras geomé-tricas:

(a) Um quadrado com lados medindo 3 metros;(b) Um triângulo equilátero com lados medindo 2 metros;

Solução. Os algoritmos apresentados nas Figuras 3.17 e 3.18 são exemplos de soluções paraos Exercícios 3.8(a) e 3.8(b).

Exemplo 3.8 Considere o jogo das Torres de Hanoi. O jogo consiste em mover os três anéiscoloridos organizados por tamanho, empilhados na haste ORIGEM, para a haste DESTINO, sobas seguintes condições:

Page 134: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.2 P. 128

Algoritmo para o jogo do Robô.Início1 - Girar para a esquerda 45 graus.2 - Mover para a frente.3 - Girar para a direita 90 graus.4 - Mover para a frente.5 - Mover para a frente.6 - Mover para a frente.7 - Girar para a esquerda 90 graus.8 - Mover para a frente.9 - Mover para a frente.10 - Mover para a frente.11 - Girar para a esquerda 90 graus.12 - Mover para a frente.13 - Girar para a direita 90 graus.14 - Mover para a frente.Fim

Figura 3.15: Um algoritmo para solucionar o problema do jogo do Robô.

• Deve-se mover somente um anel por vez.• Só é permitido mover anéis que estejam no topo de uma pilha.• Não é permitido empilhar um anel sobre outro de menor tamanho.• A haste TRABALHO pode ser utilizada, se necessário, para auxiliar nos movimentos dos

anéis, desde que obedeça às mesmas regras aqui listadas.

A Figura 3.19 ilustra a configuração inicial do jogo, e o seu objetivo na configuração final.Uma solução para este jogo poderia ser a seguinte sequência de passos, descritos na Figura 3.20.

ObsDeve-se observar que a solução apresentada é apenas uma das soluções possíveis. Ou-tras sequências de passos podem ser propostas, contanto que solucione o problema semdesobedecer às suas regras.

Algoritmos para a solução de problemas matemáticos

Os algoritmos vistos até este ponto do nosso material descreveram passos para realizar tarefascomuns do dia-a-dia, ou para solucionar alguns jogos. A seguir, vamos observar alguns outrosexemplos de algoritmos para a solução de problemas voltados a um contexto matemático. Exemplo 3.9 Considere uma aplicação que recebe, de um usuário, dois números e imprima oresultado da soma desses dois números. O algoritmo da Figura 3.21 apresenta uma sequência deinstruções para que esta tarefa seja executada. Exemplo 3.10 Considere uma aplicação que recebe, de um usuário, dois números e imprimeo resultado do produto entre esses dois números. O algoritmo da Figura 3.22 apresenta umasequência de instruções para que esta tarefa seja executada. Exemplo 3.11 Considere uma aplicação que recebe dois números e imprime o resultado dadivisão do primeiro número fornecido pelo segundo número fornecido. O algoritmo da Figura3.23 apresenta uma sequência de instruções para que esta tarefa seja executada. Exemplo 3.12 Considere uma aplicação que calcula a média aritmética simples de dois númerosinformados por um usuário. O algoritmo da Figura 3.24 apresenta uma sequência de instruçõespara que esta tarefa seja executada.

Page 135: Introdução à Lógica e à Programação VisualIntrodução à

P. 129 Seção 3.2

Algoritmo para o jogo do Robô.Início1 - Girar para a direita 45 graus.2 - Mover para a frente.3 - Mover para a frente.4 - Girar para a esquerda 90 graus.5 - Mover para a frente.6 - Girar para a direita 90 graus.7 - Mover para a frente.8 - Girar para a esquerda 90 graus.9 - Mover para a frente.10 - Mover para a frente.11 - Mover para a frente.12 - Girar para a esquerda 90 graus.13 - Mover para a frente.14 - Girar para a direita 90 graus.15 - Mover para a frente.Fim

Figura 3.16: Um algoritmo diferente para solucionar o problema do jogo do Robô.

Algoritmo para o robô do Exercício 3.8(a).Início1 - Andar para a frente 3 metros.2 - Girar para a direita 90 graus.3 - Andar para a frente 3 metros.4 - Girar para a direita 90 graus.5 - Andar para a frente 3 metros.6 - Girar para a direita 90 graus.7 - Andar para a frente 3 metros.Fim

Figura 3.17: Um algoritmo para ajudar o robô do Exercício 3.8(a) a descrever uma trajetóriaquadrada.

Exercício 3.9 Com base nos exemplos vistos nas Figuras 3.21 a 3.24, proponha um algoritmopara calcular a área de um triângulo.

Solução. O algoritmo proposto na Figura 3.25 é uma das possíveis soluções para o Exercício3.9.

Exercício 3.10 Com base nos exemplos vistos nas Figuras 3.21 a 3.24, proponha um algoritmopara calcular a área de um quadrado.

Solução. O algoritmo proposto na Figura 3.26 é uma das possíveis soluções para o Exercício3.10.

Page 136: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.2 P. 130

Algoritmo para o robô do Exercício 3.8(b).Início1 - Andar para a frente 2 metros.2 - Girar para a direita 60 graus.3 - Andar para a frente 2 metros.4 - Girar para a direita 60 graus.5 - Andar para a frente 2 metros.Fim

Figura 3.18: Um algoritmo para ajudar o robô do Exercício 3.8(b) a descrever uma trajetóriatriangular.

(a) Configuração inicial. (b) Configuração final.

Figura 3.19: O jogo das Torres de Hanoi.

3.2.1 – Formas de Representação de Algoritmos

Os algoritmos vistos anteriormente neste material têm sido representados como um texto estrutu-rado, ao qual damos o nome de Descrição Narrativa. Porém, existe uma representação gráficapara algoritmos, denominada Fluxograma.

Definição 3.2.2 Um Fluxograma é um diagrama utilizado para representar um algoritmo.

O fluxograma é construído utilizando-se elementos gráficos específicos para representar cadaestrutura do algoritmo, bem como facilitar a compreensão do fluxo de ações a serem executadas. AFigura 3.27 apresenta as formas utilizadas na construção de um fluxograma, com seus respectivossignificados.

Faremos uso de fluxogramas para melhor compreender os conceitos a serem estudados naSeção 3.2.2. Exemplo 3.13 Tomemos o algoritmo da Figura 3.26. A representação de suas instruções pormeio de fluxograma está apresentada na Figura 3.28.

Exercício 3.11 Proponha um algoritmo para calcular a área de um círculo, dada a medida doseu raio. Represente seu algoritmo como descrição narrativa e como fluxograma.

Solução. Um algoritmo para resolver o problema do Exercício 3.11 pode ser visto na Figura3.29.

Page 137: Introdução à Lógica e à Programação VisualIntrodução à

P. 131 Seção 3.2

Algoritmo para resolver o jogo das Torres de Hanoi.Início1 - Mover um anel da haste ORIGEM para a haste DESTINO.2 - Mover um anel da haste ORIGEM para a haste TRABALHO.3 - Mover um anel da haste DESTINO para a haste TRABALHO.4 - Mover um anel da haste ORIGEM para a haste DESTINO.5 - Mover um anel da haste TRABALHO para a haste ORIGEM.6 - Mover um anel da haste TRABALHO para a haste DESTINO.7 - Mover um anel da haste ORIGEM para a haste DESTINO.Fim

Figura 3.20: Uma solução possível para o jogo das Torres de Hanoi.

Algoritmo para somar dois números fornecidos.Início1 - obter o primeiro número, fornecido pelo usuário.2 - obter o segundo número, fornecido pelo usuário.3 - efetuar a soma dos dois números.4 - exibir o resultado da soma para o usuário.Fim

Figura 3.21: Um algoritmo para somar dois números.

3.2.2 – Estruturas para a Construção de Algoritmos

Alguns problemas, para serem solucionados por meio de um algoritmo, podem necessitar de umconjunto mais “sofisticado” de instruções. É possível que seja necessário, por exemplo, listardentro do algoritmo subconjuntos de instruções, que deverão ser executadas somente mediantea ocorrência de alguma situação específica. Além disso, em algumas situações, precisaremossinalizar, em nossa escrita, a necessidade de se executar uma mesma instrução mais de umavez (sem escrever a mesma instrução repetidas vezes). Nesta seção, vamos conhecer algumasestruturas que nos auxiliam a organizar a escrita dos nossos algoritmos. Tais estruturas sãodenominadas Estruturas de Controle, e serão abordadas nas subseções 3.2.3, 3.2.4 e 3.2.5.

3.2.3 – Sequenciação

A própria Definição 3.2 nos mostra que um algoritmo é uma sequência de instruções. Diante desteconceito, um aspecto importante que devemos destacar é que as instruções serão executadasna sequência em que foram escritas. Por isto, é muito importante que possamos ordenar asinstruções de maneira apropriada. Para compreender melhor, vamos analisar alguns exemplos. Exemplo 3.14 Vamos considerar uma versão modificada do algoritmo da Figura 3.11, queconsiste em instruções para uma pessoa atravessar uma rua. A versão modificada pode ser vistana Figura 3.30.

Neste caso, a troca na ordem das instruções 1 e 2 não surtiu nenhum efeito drástico. Observe,porém, o que aconteceria se uma dessas duas primeiras instruções tivesse sido trocada com ainstrução 3. Esta nova versão pode ser vista na Figura 3.31.

O algoritmo da Figura 3.31 surtiria um efeito indesejado: uma pessoa que seguisse essasinstruções poderia correr perigo! Exemplo 3.15 Vamos, agora, considerar o algoritmo para preparar uma tapioca com cocoralado, descrito na Figura 3.10, e vamos trocar de lugar algumas de suas instruções.

Podemos notar que o algoritmo não teria a sua execução concluída, ao se trocar a ordem de

Page 138: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.2 P. 132

Algoritmo para calcular o produto entre dois números fornecidos.Início1 - obter o primeiro número, fornecido pelo usuário.2 - obter o segundo número, fornecido pelo usuário.3 - efetuar a operação de multiplicação entre os dois números.4 - exibir o resultado da operação para o usuário.Fim

Figura 3.22: Um algoritmo para calcular o produto entre dois números.

Algoritmo para calcular a divisão de dois números fornecidos.Início1 - obter o primeiro número, fornecido pelo usuário.2 - obter o segundo número, fornecido pelo usuário.3 - efetuar a operação de divisão dos dois números.4 - exibir o resultado da operação para o usuário.Fim

Figura 3.23: Um algoritmo para calcular a divisão de dois números.

certos passos. O passo 7 (esperar a goma assar), por exemplo, jamais seria concluído, pois afrigideira sequer tinha sido aquecida. A frigideira só vai aquecer depois dos passos 8 e 9. Assim,a sequência de passos apresentada na Figura 3.32 não constitui um algoritmo para realizar atarefa proposta. Exemplo 3.16 A Figura 3.33 mostra um algoritmo que não resultará na solução do problema aser resolvido. As instruções desse algoritmo não estão organizadas em uma sequência lógica, quepermita a correta execução dos seus passos.

Analisando os Exemplos 3.14 a 3.16, é possível notar que a ordem dos passos de um algo-ritmo é de grande importância. É necessário sequenciar as instruções de maneira apropriada,compreendendo as dependências entre cada passo a ser executado.

Definição 3.2.3 Concluindo, podemos dizer que a sequenciação é uma convenção que de-termina que as instruções de um algoritmo serão executadas seguindo a ordem ocidental deleitura e escrita: de cima para baixo e da esquerda para a direita.

Momento curiosidade: o vídeo a seguir aborda a diferença entre a ordem de leitura ocidental ea ordem de leitura oriental, utilizando quadrinhos e mangás como exemplos.

v Mangá e sua forma de leitura oriental.

A representação gráfica de uma sequenciação por meio de um fluxograma é apresentada naFigura 3.34.

Exercício 3.12 Represente o algoritmo da Figura 3.21 em fluxograma.

Solução. Podemos ver na Figura 3.35 um fluxograma para representar o algoritmo da Figura3.21.

Page 139: Introdução à Lógica e à Programação VisualIntrodução à

P. 133 Seção 3.2

Algoritmo para calcular a média aritmética simples de dois números fornecidos.Início1 - obter o primeiro número, fornecido pelo usuário.2 - obter o segundo número, fornecido pelo usuário.3 - efetuar a soma dos dois números.4 - dividir o resultado da soma por 2.5 - exibir o resultado da média aritmética simples para o usuário.Fim

Figura 3.24: Um algoritmo para calcular a média aritmética simples de dois números.

Algoritmo para calcular a área de um triângulo.Início1 - obter, do usuário, a medida da base do triângulo.2 - obter, do usuário, a medida da altura do triângulo.3 - efetuar a multiplicação dos dois números obtidos nos passos 1 e 2.4 - efetuar a divisão do resultado da multiplicação por 2.5 - exibir o resultado obtido no passo 4 (isto é, a medida da área do triângulo) para o usuário.Fim

Figura 3.25: Um algoritmo para calcular a área de um triângulo.

3.2.4 – Decisão

No dia-a-dia, é comum termos de decidir que ações tomar, a depender de alguma condição. Porexemplo, se recebermos um convite para ir ao cinema, primeiro verificamos se podemos ir. Apósessa verificação, realizamos, ou não, a ação de aceitar o convite e ir ao cinema.

O Exemplo 3.17 mostra como podemos estruturar esse raciocínio. Exemplo 3.17 Um algoritmo para decidir se vamos ou não ao cinema pode ser visto na Figura3.36. Exemplo 3.18 Considere um algoritmo que obtenha a média final de um(a) aluno(a) e informese ele(a) passou direto ou não. A Figura 3.37 ilustra os passos para a realização desta tarefa.

Observe, na Figura 3.37, que se a média final do(a) aluno(a) for, por exemplo, 9 (nove),o algoritmo irá executar a instrução indicada no passo 3 e não irá executar a instruçãoindicada no passo 5. Da mesma forma, aplicando o mesmo algoritmo, se a média final do(a)aluno(a) for, desta vez, 3,5 (três e meio), o algoritmo irá executar a instrução do passo 5 e nãoirá executar a instrução do passo 3. Exemplo 3.19 Vamos observar novamente o algoritmo da Figura 3.23, que realiza uma operaçãode divisão entre dois números fornecidos. Analisando o algoritmo com cuidado, percebemos que,a depender do segundo número fornecido pelo usuário, poderíamos acabar forçando a execução deuma operação matemática inválida! Estamos nos referindo ao caso de o segundo número fornecidoser igual a zero. Sabemos que não existe divisão por zero, então é importante escrevermos umaversão melhorada daquele algoritmo. A Figura 3.38 ilustra um aprimoramento possível para oalgoritmo.

ObsObservando os algoritmos das Figuras 3.36 a 3.38, percebemos a utilização das palavrasse, então e senão. Elas são palavras especiais, escolhidas para escrever uma estrutura dedecisão em um algoritmo.

Page 140: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.2 P. 134

Algoritmo para calcular a área de um quadrado.Início1 - obter, do usuário, a medida do lado do quadrado.2 - efetuar a operação de potência no valor fornecido pelo usuário, elevando esse valor a 2 (ou seja, elevar ao quadrado). 3 - exibir o resultado obtido no passo 2 (isto é, a medida da área do quadrado) para o usuário.Fim

Figura 3.26: Um algoritmo para calcular a área de um quadrado.

Figura 3.27: Formas utilizadas em um fluxograma e seus significados.

ObsPor determinarem os desvios no fluxo de execução de instruções em um algoritmo, asestruturas de decisão recebem, também, o nome de desvios condicionais.

A representação em fluxograma de uma estrutura de decisão é feita por um losango. Dele,saem dois caminhos: um para as ações a serem executadas, caso o teste da estrutura resulte emVERDADEIRO e outro para realizar as ações no caso de o teste resultar em FALSO. A Figura3.39 apresenta um algoritmo contendo uma estrutura de decisão. Observe que existem, partindoda estrutura de decisão, dois possíveis caminhos de fluxo de execução.

Além de determinar que comandos devem ser executados, as estruturas de decisão podem seraplicadas para prevenir a execução de tarefas desnecessárias. Voltando ao algoritmo da Figura3.9, para trocar uma lâmpada, podemos perceber que, se a lâmpada original estiver funcionando,não precisaremos nos dar o trabalho de trocar a lâmpada. Assim, podemos verificar essa condiçãologo no início do algoritmo, para evitar trabalhos desnecessários. A Figura 3.40 ilustra umamodificação do algoritmo para contemplar essa possibilidade.

Note que, no algoritmo da Figura 3.40, os passos 3 a 9 só serão executados se a lâmpadarealmente estiver queimada.

Estruturas de Decisão - Observações Gerais

Observando os exemplos apresentados na Seção 3.2.4, percebemos que a estrutura de decisão éum comando que assume uma das formas gerais apresentadas nas Figuras 3.41 e 3.42.

Para resumir o funcionamento da estrutura de decisão se...então...senão, convém ressaltar:

• O teste realizado dentro da estrutura de decisão será sempre uma expressão que terá comoresultado os valores VERDADEIRO ou FALSO. A Seção 3.3.5 discute tais expressões.

• Observe, nos exemplos apresentados na Seção 3.2.4, um recuo na escrita das instruçõesabaixo das linhas que contêm as palavras se...então e senão. A esse recuo, damos o nomede indentação e ele serve para indicar quantos e quais comandos estão subordinados àestrutura de decisão.

• Os comandos listados e indentados logo abaixo da linha que contém o “se teste então”serão aqueles executados no caso específico de o teste resultar em VERDADEIRO.

• Os comandos listados e indentados logo abaixo da linha que contém o comando “senão”são aqueles que serão executados no caso específico de o teste resultar em FALSO.

• Observando a Figura 3.41, podemos perceber que em uma estrutura de decisão, a porção“senão” não é obrigatória na estrutura. Porém, a porção “se ... então” o é.

Os Exemplos 3.20 a 3.22 ilustram as observações gerais que acabamos de ver.

Page 141: Introdução à Lógica e à Programação VisualIntrodução à

P. 135 Seção 3.2

Figura 3.28: Um algoritmo para calcular a área de um quadrado, representado em fluxograma.

Algoritmo para calcular a área de um círculo.Início1 - obter, do usuário, a medida do raio do círculo.2 - efetuar a operação de potência no valor fornecido pelo usuário, elevando esse valor a 2.3 - tomar o resultado da operação efetuada no passo 2 e multiplicar por 3,14 (valor de PI).4 - exibir o resultado obtido no passo 3 (isto é, a medida da área do círculo) para o usuário.Fim(a) Algoritmo representado em descrição narrativa.

(b) Algoritmo representado em fluxograma.

Figura 3.29: Um algoritmo para calcular a área de um círculo, em duas representações diferentes.

Exemplo 3.20 Considere o problema de verificar se um dado número é par. Um algoritmo paraeste problema pode ser visto na Figura 3.43.

ObsObserve, no algoritmo da Figura 3.43, na linha 3, o teste feito pelo estrutura de decisão:

3 - se o resto da divisão for diferente de zero então

Podemos notar que o teste tem a forma de uma “pergunta” que só aceita “sim” ou “não”como resposta. Em outras palavras, o teste será sempre uma expressão que só produzirácomo resultado os valores VERDADEIRO ou FALSO.

Exemplo 3.21 Considere um sistema que recebe de um usuário um número. Caso o númerofornecido seja par, o sistema realizará duas tarefas:

• Calcular o triplo desse número;• Exibir o resultado do cálculo feito.

Caso o número não seja par, o algoritmo realiza duas tarefas:

• Calcular o dobro desse número;• Exibir o resultado do cálculo feito.

Por fim, o sistema exibe uma mensagem de agradecimento por utilizá-lo.O algoritmo da Figura 3.44 apresenta uma sequência de passos necessários para o funciona-

mento do sistema.Observando o algoritmo da Figura 3.44, percebemos a indentação dos comandos das linhas 4 e

5. Isso indica que os comandos nessas linhas pertencem à estrutura de decisão escrita na linha 3.Isto serve para deixar claro que esses dois comandos somente serão executados se o teste resultarem VERDADEIRO. Já nas linhas 7 e 8, temos outra indentação. Desta vez, para indicar que

Page 142: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.2 P. 136

Algoritmo modificado para atravessar uma rua.Início1 - olhar para o lado esquerdo da pista.2 - olhar para o lado direito da pista.3 - atravessar a rua.Fim

Figura 3.30: Um algoritmo modificado para atravessar uma rua.

Novo algoritmo modificado para atravessar uma rua.Início1 - atravessar a rua.2 - olhar para o lado esquerdo da pista.3 - olhar para o lado direito da pista.Fim

Figura 3.31: Mais uma modificação ao algoritmo para atravessar uma rua.

os dois comandos nessas linhas são parte da porção “senão” da estrutura. Assim, os comandosdas linhas 7 e 8 somente serão executados se o teste resultar em FALSO. Ainda analisando estealgoritmo, percebemos que o comando escrito na linha 10 não está indentado e está escrito após ocomando fim-se. Isso significa que ele não faz parte da estrutura “se...então...senão”. Ele é umcomando que será executado de forma independente, em sequência ao que tiver sido executadodentro da estrutura “se...então...senão”. Exemplo 3.22 Considere um sistema que exibe uma mensagem para um usuário, caso a idadefornecida seja maior do que 18 anos. Caso o usuário não seja maior de 18 anos, nenhuma açãoserá executada. A Figura 3.45 apresenta um algoritmo para este sistema.

Podemos perceber que a estrutura de decisão do algoritmo da Figura 3.45 não possui a porção“senão”. Ela é somente necessária quando precisamos especificar ações a serem tomadas no casode o teste resultar em FALSO. Neste exemplo, é possível ver que o algoritmo não executaránenhuma ação caso o teste de idade resulte em FALSO (ou seja, a idade fornecida seja menor doque 18).

Aninhamento de Estruturas de Decisão

Como pudemos ver nesta seção, a estrutura “se...então...senão” divide o fluxo de execução doalgoritmo em dois possíveis caminhos (veja Figura 3.39). Porém, alguns problemas que vamosdesejar resolver com algoritmos poderão contemplar uma quantidade maior de possibilidades dedesvios no fluxo de execução de suas ações. Exemplo 3.23 Vamos analisar novamente o algoritmo da Figura 3.37, que determina se um(a)aluno(a) PASSOU DIRETO ou NÃO PASSOU DIRETO. Os desvios no fluxo de execução podemser visualizados no fluxograma da Figura 3.46.

Pensando no problema em um contexto real, sabemos que o(a) aluno(a) que não passa diretotem ainda outras duas possibilidades: ir para a recuperação, ou ser reprovado(a) direto. Assim, apartir do ponto do algoritmo em que o(a) aluno(a) não passou direto, um novo teste poderia serfeito para testar novamente a média do(a) aluno(a), para saber se ele(a) vai para a recuperaçãoou se está reprovado(a) direto.

Podemos modelar esse problema por meio da escrita de uma estrutura de decisão dentro daoutra, sinalizando um novo teste feito a partir do teste recém efetuado. Chamamos esse processode aninhamento de estruturas de decisão. Desta forma, podemos propor uma versão melhoradado algoritmo da Figura 3.37, utilizando aninhamento de estruturas de decisão para contemplar

Page 143: Introdução à Lógica e à Programação VisualIntrodução à

P. 137 Seção 3.2

Algoritmo modificado para fazer uma tapioca com coco ralado.Início1 - pegar a goma da tapioca.2 - despejar a goma em uma vasilha.3 - pegar o coco ralado.4 - despejar o coco ralado na mesma vasilha da goma.5 - adicionar sal à mistura de tapioca e coco ralado.6 - pegar um frigideira.7 - esperar a goma assar.8 - colocar a frigideira no fogão.9 - esperar a frigideira aquecer.10 - colocar um pouco de tapioca na frigideira quente.11 - virar a tapioca.12 - servir a tapioca em um prato.Fim

Figura 3.32: Um algoritmo modificado para fazer uma tapioca com coco ralado.

Algoritmo para calcular a área de um círculo.Início1 - efetuar a multiplicação do raio do círculo por 3,14.2 - obter, do usuário, a medida do raio do círculo.3 - exibir o resultado do cálculo da área do círculo.Fim

Figura 3.33: Um algoritmo para calcular a área de um círculo. OBS: Esse algoritmo não produziráo resultado necessário!

as duas outras possibilidades, uma vez que um(a) aluno(a) não tenha passado direto. Vamossupor que, para ir para a recuperação, a média deve ser menor do que 7 e maior ou igual a 4. AFigura 3.47 apresenta o algoritmo em questão.

ObsObserve os diferentes recuos (aninhamentos) no algoritmo da Figura 3.47 para facilitar avisualização dos comandos que pertencem a cada estrutura.

Para melhor compreender os desvios possíveis em estruturas de decisão aninhadas, o fluxogramase mostra bastante útil. A Figura 3.48 mostra um fluxograma para representar o mesmo algoritmoda Figura 3.47.

ObsUma dica para melhor compreender o fluxograma da Figura 3.48, tome, por exemplo, ovalor 5 para a média e percorra o caminho pelo fluxograma com base neste valor. Depoisteste com um valor 3 e veja que caminho será percorrido. Por fim, tome um valor 9 epercorra uma última vez o fluxograma. Você deverá ter percorrido um caminho diferentepara cada um desses valores.

Exercício 3.13 Proponha um algoritmo para determinar se um número fornecido por umusuário é maior que 10, menor que 10 ou igual a 10.

Solução. A Figura 3.49 apresenta um algoritmo para solucionar o problema exposto noExercício 3.13.

Page 144: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.2 P. 138

Figura 3.34: Um fluxograma representando uma sequenciação de N comandos.

Figura 3.35: Um algoritmo para calcular a soma de dois números, representado em fluxograma.

Exercício 3.14 Observe, na Figura 3.49, que na linha 8, o algoritmo executa um comando deexibição de mensagem afirmando que o número fornecido é igual a 10. É realmente possíveltirar essa conclusão na linha 8? Demonstre sua conclusão.

Solução. Sim, é possível concluir, na linha 8 do algoritmo da Figura 3.49 que o númerofornecido pelo usuário foi igual a 10. É possível concluir isso, porque, para chegar à linha 8, énecessário que o teste feito na linha 5 tenha resultado em FALSO (ou seja, o número não é maiordo que 10); e para chegar à linha 5, que testa se o número é menor que 10, é necessário queo teste feito na linha 2 tenha resultado em FALSO também (o teste se o número é maior que10). Logo, o número fornecido nem é maior, nem é menor que 10. Assim, o número fornecido sópode ser igual a 10. Observando o mesmo algoritmo em fluxograma (veja Figura ??), é possívelcompreendê-lo melhor.

Recomenda-se testar o algoritmo com o valor de entrada igual a 10 e verificar o fluxo deinstruções a serem executadas.

Exercício 3.15 Proponha um algoritmo para obter uma informação de hora de um usuário eexibir uma saudação de acordo com a hora informada. As possíveis saudações variam conformea hora informada e podem ser:

• “Bom dia”, se hora informada for menor que 12;• “Boa tarde, se hora informada for maior ou igual a 12 e menor que 18;• “Boa noite, se hora informada for maior ou igual a 18.

Solução. A Figura 3.51 apresenta um algoritmo para o problema exposto no Exercício 3.15.É deixado para o(a) aluno(a) a tarefa de esboçar um fluxograma para representar o mesmoalgoritmo.

ObsÉ importante ressaltar que o algoritmo da Figura 3.51 não é a única sequência de instruçõesválida para resolver o problema. Você pode propor versões diferentes desse algoritmo eainda assim, estar correto!

Exercício 3.16 Proponha um algoritmo que receba 3 números e os exiba em ordem crescente.

Solução. Este é um exercício clássico quando se estuda aninhamento de estruturas dedecisão. Ao se tomar três valores numéricos A, B e C, temos as seguintes possibilidades deordenação por ordem crescente:

• A > B > C

Page 145: Introdução à Lógica e à Programação VisualIntrodução à

P. 139 Seção 3.2

Algoritmo para decidir se vou ao não ao cinema.Início1 - obter a informação sobre a quantia total disponível na carteira.2 - se a quantia for maior ou igual a 50 então3 - vou ao cinema4 - senão5 - ficarei em casa mesmo6 - fim-seFim

Figura 3.36: Um algoritmo para decidir se vou ao não ao cinema.

Algoritmo para informar se um(a) aluno(a) passou direto, dada a sua média final.Início1 - obter a média final do(a) aluno(a).2 - se a média for maior ou igual a 7 então3 - exibir mensagem de “PASSOU DIRETO”4 - senão5 - exibir mensagem de “NÃO PASSOU DIRETO”6 - fim-seFim

Figura 3.37: Um algoritmo para informar se um(a) aluno(a) passou direto, dada a sua médiafinal.

• A > C > B• C > A > B• B > A > C• B > C > A• C > B > A

Para identificar cada possível caso, utilizaremos estruturas de decisão aninhadas, para conduziros testes entre os três valores fornecidos. A Figura 3.52 apresenta um algoritmo para resolvereste problema. Nesse algoritmo, podemos perceber a importância da indentação para melhorar acompreensão sobre quais comandos pertencem a quais estruturas.

ObsNunca é demais repetir que o algoritmo da Figura 3.52 não é o único possível para resolvero problema. Dois ou mais algoritmos podem ser diferentes, mas se produzirem o mesmoresultado, estão todos corretos.

O algoritmo da Figura 3.52 está representado em fluxograma na Figura 3.53.

3.2.5 – Repetição

Algumas ações precisam ser executadas repetidas vezes em um algoritmo. No entanto, isso nãosignifica que precisamos escrever as mesmas instruções repetidas vezes. Vamos conhecer, nestasubseção, as estruturas de controle utilizadas para organizar instruções que se repetem.

Vamos analisar novamente a tarefa de trocar uma lâmpada, com algoritmo apresentado naFigura 3.9. Desta vez, vamos considerar que existe a possibilidade de a nova lâmpada a serinstalada estar também queimada. Assim, é necessário testar a nova lâmpada antes de instalá-la.Além disso, se a lâmpada nova estiver queimada, será necessário obter uma outra lâmpada e

Page 146: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.2 P. 140

Algoritmo melhorado para exibir o resultado da divisão entre dois números fornecidos.Início1 - obter o primeiro número, fornecido pelo usuário.2 - obter o segundo número, fornecido pelo usuário.3 - se o segundo número for diferente de zero então4 - efetuar a operação de divisão dos dois números.5 - exibir o resultado da operação para o usuário.4 - senão5 - exibir mensagem de “NÃO FOI POSSÍVEL REALIZAR A OPERAÇÃO DE DIVISÃO!”6 - fim-seFim

Figura 3.38: Um algoritmo melhorado para exibir o resultado da divisão entre dois númerosfornecidos.

Figura 3.39: Representação do algoritmo da Figura 3.36 em fluxograma.

testá-la também. O processo deverá se repetir até que finalmente tenhamos encontrado umalâmpada boa para instalar. A Figura 3.54 apresenta uma sequência de instruções para esteprocesso.

A sequência de instruções da Figura 3.54 não pode ser chamada de um algoritmo, visto que aquantidade de instruções não é finita. O problema ocorre, porque não é possível determinar atéquando será feito o teste se a lâmpada está queimada.

Observe que o teste da lâmpada nova é efetuado por um mesmo conjunto de ações:

• se a lâmpada não acender, então• retirar a lâmpada queimada• colocar uma lâmpada nova

Utilizando uma estrutura de repetição, não precisamos escrever várias vezes esse mesmoconjunto de ações. Podemos escrever esse conjunto de ações dentro de uma estrutura de repetição,que fará o controle de quantas vezes as ações serão executadas. Para fazer o controle de quantasrepetições serão necessárias, uma estrutura de repetição realiza um teste, como os que utilizamosem estruturas de decisão, para determinar se é ou não hora de encerrar as repetições de ações.

A estrutura de repetição apresenta o seguinte comportamento:

• Realiza um teste para saber se deve executar os comandos dentro dela;• Caso positivo, executa, em sequência, os comandos escritos dentro dela;• Desvia o fluxo de execução para a primeira instrução, refazendo o teste para saber se ainda

será necessário repetir as ações.• Caso não seja mais necessário, o fluxo de execução segue para outras instruções, escritas

após a estrutura de repetição.

Page 147: Introdução à Lógica e à Programação VisualIntrodução à

P. 141 Seção 3.2

Algoritmo para troca de lâmpada com um teste inicial.Início1 - acionar o interruptor.2 - se a lâmpada não acender então3 - pegar uma escada4 - posicionar a escada abaixo da lâmpada5 - buscar uma lâmpada nova6 - acionar o interruptor7 - subir na escada8 - retirar a lâmpada queimada9 - colocar a lâmpada nova10 - fim-seFim

Figura 3.40: Um algoritmo para troca de lâmpada com teste inicial.

1 - se teste então2 - comando ou uma lista de comandos3 - fim-se

Figura 3.41: Forma geral para a estrutura de decisão se...então.

A Figura 3.55 esboça o comportamento geral de uma estrutura de repetição.Vale ressaltar que, assim como utilizamos palavras especiais para a estrutura de decisão

(se...então...senão), nós também precisaremos utilizar palavras especiais para as estruturas derepetição. Utilizaremos, portanto, as palavras:

• enquanto ... faça• para ... faça

Estrutura de Repetição enquanto...faça

Para a tarefa de trocar uma lâmpada, poderíamos estruturar as instruções anteriormente escritasda seguinte forma:

• enquanto a lâmpada não acender, faça• retirar a lâmpada queimada• colocar uma lâmpada nova• fim-enquanto

O teste se a lâmpada não acender se manteve. Porém, nessa nova estrutura, ficou estabelecidoum fluxo de repetições dessas instruções que será finalizado assim que o teste resultar em FALSO,ou seja, assim que uma lâmpada nova estiver funcionando e acender. Note que o número derepetições é indefinido, porém a quantidade de instruções escritas é finita.

ObsO teste realizado para controlar a quantidade de repetições a serem realizadas é chamadode condição de parada.

Vamos comparar as duas estruturas, a de decisão e a de repetição, lado a lado, na Figura 3.56.Perceba que o teste realizado nas duas estruturas é o mesmo. A diferença é que na estrutura dedecisão, as ações são executadas apenas uma vez. A estrutura de repetição, por sua vez, repetea execução os comandos, refazendo o teste toda vez que uma nova repetição está prestes a serexecutada. As repetições param quando o teste resultar em FALSO.

Page 148: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.2 P. 142

1 - se teste então2 - comando ou uma lista de comandos3 - senão4 - comando ou lista de comandos5 - fim-se

Figura 3.42: Forma geral para a estrutura de decisão se...então...senão.

Algoritmo para verificar se um dado número é par.Início1 - obter, do usuário, o número a ser testado.2 - obter o resto da divisão do número fornecido por 2.3 - se o resto da divisão for diferente de zero então4 - exibir mensagem confirmando que o número fornecido é PAR.5 - senão6 - exibir mensagem confirmando que o número fornecido é ÍMPAR.7 - fim-seFim

Figura 3.43: Um algoritmo para verificar se um dado número é par.

Exercício 3.17 Represente as estruturas apresentadas na Figura 3.56 por meio de fluxogramas.Comente a diferença entre essas estruturas.

Solução. A Figura 3.57 apresenta os fluxogramas das duas estruturas apresentadas naFigura 3.56.

A principal diferença pode ser vista no fluxo de execução que sai do retângulo que contém asinstruções “retirar lâmpada queimada” e “ colocar lâmpada nova”. Na estrutura de decisão, ofluxo segue direto para o Fim do algoritmo (o que impossibilita a repetição dessas ações); naestrutura de repetição, o fluxo segue de volta para o teste feito no início da estrutura. É possívelperceber, também, que na estrutura de repetição, não é possível chegar ao fim do algoritmopartindo do retângulo. O algoritmo só chega a seu fim quando realmente o teste de lâmpada nãoacender resultar em FALSO (o que significaria que finalmente encontramos uma lâmpada boa!).

Exercício 3.18 Precisamos ensinar um robô a comer pipocas de um saquinho. Proponha umalgoritmo para resolver este problema.

Solução. Para solucionar o problema do Exercício 3.18, precisamos identificar as principaisações a serem realizadas:

• Obter o saquinho de pipocas.• Conduzir a mão até o saquinho.• Retirar uma pipoca do saquinho com a mão.• Levar a mão até a boca.• Deixar a pipoca dentro da boca.• Conduzir a mão até o saquinho.• Retirar uma pipoca do saquinho com a mão.• Levar a mão até a boca.• Deixar a pipoca dentro da boca.• Conduzir a mão até o saquinho.• .... as ações se repetem!

Page 149: Introdução à Lógica e à Programação VisualIntrodução à

P. 143 Seção 3.2

Algoritmo para realizar ações específicas sobre um número fornecido.Início1 - obter, do usuário, o número a ser testado.2 - obter o resto da divisão do número fornecido por 2.3 - se o resto da divisão for diferente de zero então4 - efetuar uma operação de multiplicação do número fornecido por 3.5 - exibir o resultado da operação de multiplicação.6 - senão7 - efetuar uma operação de multiplicação do número fornecido por 2.8 - exibir o resultado da operação de multiplicação.9 - fim-se10 - exibir uma mensagem de agradecimento por utilizar o sistema.Fim

Figura 3.44: Um algoritmo para realizar ações específicas, a depender de um número fornecidopor um usuário ser par ou ímpar.

Algoritmo para realizar uma ação específica se usuário for maior de idade.Início1 - obter, do usuário, o número referente à sua idade.2 - se idade fornecida for maior ou igual a 18 então3 - exibir mensagem informando que o usuário é maior de idade.4 - fim-seFim

Figura 3.45: Um algoritmo que realiza uma ação somente se a idade informada pelo usuário formaior ou igual a 18 anos.

Podemos perceber que, a partir da segunda ação, há uma repetição de ações. Além disso, nãofoi possível determinar de antemão quantas vezes as ações se repetirão. Assim, será necessárioescrever um algoritmo utilizando uma estrutura de repetição do tipo enquanto...faça. A Figura3.58 apresenta um algoritmo para o problema proposto no Exercício 3.18.

Estrutura de Repetição para...faça

Em algumas tarefas, sabemos de antemão quantas repetições de um determinado conjunto deações serão efetuadas. O Exemplo 3.24 descreve uma situação em que a quantidade de repetiçõesé previamente conhecida. Exemplo 3.24 Ainda sobre a tarefa de trocar a lâmpada, vamos imaginar uma situação em quea iluminação de um ambiente seja composta de 10 lâmpadas, e que precisamos testar e trocartodas elas. Um algoritmo para resolver esse problema pode ser visto na Figura 3.59.

No comando para...faça da Figura 3.59, existe um contador que controla a quantidadede repetições realizadas. Como o contador varia de 1 até 10, são efetuadas 10 repetições doscomandos escritos dentro da estrutura de repetição. Após a décima repetição, o fluxo de execuçãodo algoritmo sai da estrutura e executa comandos escritos após essa estrutura, se houver.

ObsO contador na estrutura de repetição para...faça é atualizado aumentando 1 unidade acada passada na estrutura de repetição. É possível fazer com que as atualizações dessecontador sejam diferentes. Para esses casos, é necessário especificar como será a atualizaçãodesse contador.

Page 150: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.2 P. 144

Figura 3.46: Representação do algoritmo da Figura 3.37 em fluxograma.

Algoritmo para determinar o resultado final de um(a) aluno(a).Início1 - obter a informação da média do(a) aluno(a).2 - se média for maior ou igual a 7 então3 - exibir mensagem informando que o(a) aluno(a) passou direto.4 - senão5 - se média for maior ou igual a 4 então6 - informar que o(a) aluno(a) vai para a recuperação.7 - senão8 - informar que o(a) aluno(a) foi reprovado(a).9 - fim-se10- fim-seFim

Figura 3.47: Um algoritmo para determinar o resultado final de um(a) aluno(a), dada a suamédia final.

Exemplo 3.25 Vamos considerar uma estrutura de repetição do tipo para...faça que necessiteatualizar o contador de repetições de 3 em 3 unidades. Para indicar essa atualização especial,utilizamos a palavra especial passo, e a estrutura é escrita como segue:

para um contador variando de 1 até 50 passo 3 faça

Exemplo 3.26 A atualização do contador de repetições pode variar de modo a diminuir seusvalores também. Vamos considerar uma estrutura de repetição do tipo para...faça com umcontador de repetições iniciado com o valor 30 e sendo atualizado com diminuições de 4 unidadesem cada passada, parando as repetições até chegar ao maior valor possível maior do que 1. Paraatualizar o contador em ordem decrescente, utilizaremos um valor negativo para indicar o passo,e a estrutura é escrita como segue:

para um contador variando de 30 até 1 passo -4 faça

Exercício 3.19 Quantas vezes um conjunto de comandos seriam efetuados se estivessem dentrode uma estrutura de repetição com um contador igual ao do Exemplo 3.26?

Solução. O contador que iria controlar a quantidade de vezes que um conjunto de comandosseriam executados assumiria, para a estrutura de repetição em questão, os seguintes valores: 30,26, 22, 18, 14, 10, 6 e 2.

Como foram 8 possíveis valores, a estrutura de repetição iria executar um conjunto decomandos dentro dela 8 vezes.

Page 151: Introdução à Lógica e à Programação VisualIntrodução à

P. 145 Seção 3.2

Figura 3.48: Representação do algoritmo da Figura 3.37 em fluxograma.

Algoritmo para comparar um número dado com o valor 10.Início1 - obter, do usuário, um número.2 - se número for maior que 10 então3 - exibir mensagem informando que o número é maior que 10.4 - senão5 - se número for menor que 10 então6 - informar que o número é menor que 10.7 - senão8 - informar que o número é igual a 10.9 - fim-se10- fim-seFim

Figura 3.49: Um algoritmo para determinar se um dado número é maior, menor ou igual a 10.

ObsNa solução do Exercício 3.19, o valor 2 seria o menor valor possível para o contador quesatisfaz o teste do contador chegar até 1. A partir do 2, o próximo valor para o contadorseria -2, o que estaria fora do intervalo de 30 a 1, definido para a estrutura de repetição.

Exercício 3.20 Reescreva o algoritmo que ajuda um robô a caminhar deixando no chão umrastro na forma de um quadrado de lado 3 metros (veja Figura 3.17), utilizando uma estruturade repetição. Justifique a sua escolha por uma das estruturas de repetição que estudamos aqui.

Solução. As ações que se repetem são:

• Andar para a frente 3 metros.• Girar para a direita 90 graus.

Essas ações se repetem 3 vezes, sobrando um comando na linha 7 do algoritmo original (7 -Andar para a frente 3 metros).

Como sabemos de antemão quantas repetições vamos realizar, podemos escolher uma estruturade repetição do tipo para...faça, com um contador variando de 1 até 3. A nova versão do algoritmopode ser vista na Figura 3.60.

Page 152: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.3 P. 146

Figura 3.50: Representação do algoritmo da Figura 3.49 em fluxograma.

Algoritmo para exibir uma saudação conforme o horário.Início1 - obter, do usuário, a informação da hora.2 - se hora for maior que 18 então3 - exibir mensagem de “Boa noite”.4 - senão5 - se hora for maior que 12 então6 - exibir mensagem de “Boa tarde”.7 - senão8 - exibir mensagem de “Bom dia”.9 - fim-se10- fim-seFim

Figura 3.51: Um algoritmo para exibir uma saudação, de acordo com a hora informada pelousuário.

3.3 – Elementos e Comandos Básicos de um Algoritmo

Os algoritmos escritos nas seções anteriores descrevem passos utilizando nossa linguagem natural.A partir de agora, vamos conhecer alguns elementos e comandos que darão aos nossos algorit-mos uma notação mais próxima da notação matemática, lógica e computacional. Finalmente,deixaremos de escrever instruções do tipo:

Obter o resultado da soma de um número dado por outro número dado

e passaremos a escrever, no lugar, instruções do tipo:

soma ← num1 + num2

Nesta subseção, vamos estudar:

• Variáveis e constantes;• Comandos para entrada e saída de dados;• Expressões aritméticas;• Operadores relacionais• Expressões lógicas.

Page 153: Introdução à Lógica e à Programação VisualIntrodução à

P. 147 Seção 3.3

Algoritmo para exibir três números fornecidos em ordem crescente.Início1 - obter, do usuário, o número A.2 - obter, do usuário, o número B.3 - obter, do usuário, o número C.4 - se A > B então5 - se B > C então.6 - exibir os números na ordem C, B , A.7 - senão8 - se A > C então9 - exibir os números na ordem B, C, A.10- senão11- exibir os números na ordem B, A, C.12- fim-se13- fim-se14- senão15- se B > C então16- se A > C então17- exibir os números na ordem C, A, B.18- senão19- exibir os números na ordem A, C, B.20- fim-se21- senão22- exibir os números na ordem A, B, C.23- fim-se24- fim-seFim

Figura 3.52: Um algoritmo para exibir três números fornecidos em ordem crescente.

3.3.1 – Variáveis e Constantes

Para guardar dados na memória principal do computador, um programa precisa definir:

• onde os dados serão armazenados;• que tipo de dado será armazenado;• que valor será armazenado.

Para isso, utilizamos, em nossos programas e algoritmos, as Variáveis e as Constantes.

Variáveis

As variáveis são o meio pelo qual acessamos dados específicos armazenados na memória. Paraoferecer essa funcionalidade, as variáveis precisam ter:

• um nome;• um tipo;• um valor.

O nome da variável é a palavra que usamos nas instruções de nossos algoritmos para acessare manipular um dado específico armazenado na memória principal. Para criar o nome de umavariável, é necessário seguir algumas regras de nomenclatura. Poderemos usar os símbolos:

• a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z

Page 154: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.3 P. 148

Figura 3.53: Representação do algoritmo da Figura 3.52 em fluxograma.

• A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z• 0, 1, 2, 3, 4, 5, 6, 7, 8, 9• _ (símbolo de underscore)

Exemplos de nomes válidos para variáveis são: soma, resultado, num1, valor2, x_2, totalVen-das, producao_mes, x123, somaTotal, ABC.

ObsIMPORTANTE: não é permitido usar dígito numérico no início do nome da variável.Além disso, não é permitido usar espaço em branco no nome de uma variável.

Exemplos de nomes não válidos para variáveis são: 1valor, senha do usuario, 123, AB C,producao mes.

ObsEmbora sejam válidos nomes como ABC e x123 para variáveis, é recomendado adotar nomesmais significativos para as variáveis. Alguns bons exemplos são: totalVendas, somatorio,nomeUsuario.

Page 155: Introdução à Lógica e à Programação VisualIntrodução à

P. 149 Seção 3.3

Algoritmo para troca de lâmpada com teste e repetição indefinida.Início1 - pressionar o interruptor.2 - se a lâmpada não acender então3 - pegar uma escada4 - posicionar a escada abaixo da lâmpada5 - buscar uma lâmpada nova6 - pressionar o interruptor7 - subir na escada8 - retirar a lâmpada queimada9 - colocar a lâmpada nova10 - se a lâmpada não acender então11 - retirar a lâmpada queimada12 - colocar a lâmpada nova13 - se a lâmpada não acender então14 - retirar a lâmpada queimada15 - colocar a lâmpada nova

.

.

.Até quando?

Figura 3.54: Um algoritmo modificado para troca de lâmpada, com teste e repetição indefinida.

O tipo da variável indica a natureza dos dados que ela irá armazenar. Em nosso estudo,vamos considerar os seguintes tipos:

• inteiro, podendo armazenar qualquer valor numérico inteiro;• real, podendo armazenar qualquer valor numérico com casas decimais;• texto, podendo armazenar textos, indicados entre aspas duplas;• caracter, podendo armazenar qualquer letra ou dígito individual, indicado entre aspas

simples;• lógico, podendo armazenar apenas o valor VERDADEIRO ou FALSO;

A variável representa uma posição na memória principal onde o dado a ser manipulado porinstruções de um algoritmo estará armazenado. É pelo nome da variável que podemos acessar odado e manipulá-lo.

As operações aplicadas a uma variável são:

• Declaração de variáveis;• Inicialização da variáveis;• Comando de atribuição de valores a variáveis.

Declaração de Variáveis

Em uma receita de bolo, listamos os ingredientes necessários para o seu preparo. Da mesma forma,precisamos indicar, em nossos algoritmos, que dados serão manipulados. Assim, precisamosdeclarar as variáveis que o algoritmo irá utilizar. A declaração de variáveis em um algoritmopode ser feita conforme a notação indicada:

<tipo da variável> : <nome da variável>

O Exemplo 3.27 lista alguns comandos válidos para declaração de variáveis.

Page 156: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.3 P. 150

Figura 3.55: Esboço do comportamento geral de uma estrutura de repetição.

• se lâmpada não acender, então• retirar lâmpada queimada• colocar lâmpada nova• fim-se

• enquanto lâmpada não acender, faça• retirar lâmpada queimada• colocar lâmpada nova• fim-enquanto

(a) Estrutura de decisão. (b) Estrutura de repetição.

Figura 3.56: Comparação entre as estruturas de decisão e de repetição.

Exemplo 3.27 Alguns comandos válidos de declaração de variáveis. Os nomes são escolhidospor quem está criando a variável. A única restrição é obedecer às regras de nomenclatura paravariáveis.tipo nomeinteiro : idadereal : precotexto : nomeCompletocaracter : opcaológico : venceu

Inicialização de Variáveis

Podemos, no momento da declaração de uma variável, armazenar nela um valor inicial. A notaçãoque utilizaremos para indicar a inicialização de variável é dada por:

<tipo da variável> : <nome da variável> ← <valor inicial para a variável>

O Exemplo 3.28 lista alguns comandos válidos para inicialização de variáveis. Exemplo 3.28 Alguns comandos válidos para inicialização de variáveis. Novamente, os nomessão escolhidos por quem está criando a variável. A única restrição é obedecer às regras denomenclatura para variáveis.inteiro : idade ← 14real : preco ← 1.99texto : nomeCompleto ← “José da Silva”caracter : opcao ← ’S’lógico : venceu ← VERDADEIRO

Page 157: Introdução à Lógica e à Programação VisualIntrodução à

P. 151 Seção 3.3

(a) Estrutura de decisão se...então. (b) Estrutura de repetição enquanto...faça.

Figura 3.57: Estruturas de decisão e repetição para a tarefa de trocar a lâmpada, representadasem fluxograma.

Algoritmo para ensinar um robô a comer pipocas.Início1 - Obter o saquinho de pipocas.2 - enquanto saquinho não estiver vazio faça3 - Conduzir a mão até o saquinho.4 - Retirar uma pipoca do saquinho com a mão.5 - Levar a mão até a boca.6 - Deixar a pipoca dentro da boca.7 - fim-enquantoFim

Figura 3.58: Um algoritmo para ensinar um robô a comer pipocas de um saquinho.

Exercício 3.21 Identifique nos itens a seguir quais comandos de inicialização de variáveis éválido. No caso de um comando inválido, apontar o que o torna incorreto.

(a) texto: nomeCompleto ← Maria de Fátima(b) real: valorTotal ← 23,50(c) lógico: finalizou ← VERDADEIRO(d) caracter: letraInicial ← ’M’(e) inteiro: x ← “José”(f) real: clicou ← FALSO(g) texto: autor ← “Francisco”(h) caracter: digito ← ’5’

Solução. A solução para o Exercício 3.21 pode ser vista abaixo:

(a) texto: nomeCompleto ← Maria de FátimaINCORRETO!O texto “Maria de Fátima” precisaria estar representado entre aspas duplas.

Page 158: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.3 P. 152

• para um contador de lâmpadas variando de 1 até 10 faça• se lâmpada não acender, então• retirar lâmpada queimada• colocar lâmpada nova• fim-se• fim-para

Figura 3.59: Estrutura de repetição para uma quantidade conhecida de repetições.

Nova versão para o algoritmo da Figura 3.17.Início1 - para um contador variando de 1 até 3 faça2 - Andar para a frente 3 metros.3 - Girar para a direita 90 graus.4 - fim-para5 - Andar para a frente 3 metros.Fim

Figura 3.60: Uma versão atualizada do algoritmo para ajudar um robô a desenhar um quadradono chão, utilizando uma estrutura de repetição.

(b) real: valorTotal ← 23,50CORRETO

(c) lógico: finalizou ← VERDADEIROCORRETO

(d) caracter: letraInicial ← ’M’CORRETO

(e) inteiro: x ← “José”INCORRETO!Para armazenar o dado “José”, a variável precisa ser do tipo texto.

(f) real: clicou ← FALSOINCORRETO!Para armazenar o dado FALSO, a variável precisa ser do tipo lógico.

(g) texto: autor ← “Francisco”CORRETO

(h) caracter: digito ← ’5’CORRETO

ObsRepare que no item (h) do Exercício 3.21, o comando escrito está correto. A notação ’5’indica um caracter, e não o valor numérico 5.

A Figura 3.61 traz mais alguns exemplos, destacando as diferenças de notação entre um valornumérico, um texto e um caracter.

Page 159: Introdução à Lógica e à Programação VisualIntrodução à

P. 153 Seção 3.3

notação tipo123 inteiro3,1415 real9 inteiro“123” texto“3,1415” texto“9” texto’9’ caracter

Figura 3.61: Diferenças entre os tipos de valores conforme a sua notação em um algoritmo.

Comando de Atribuição de Valores a Variáveis

A qualquer tempo no fluxo de execução de instruções, podemos precisar modificar (ou atualizar)o valor armazenado em uma variável. O comando de atribuição efetua o armazenamento deum novo valor a uma dada variável.

ObsAlgumas observações importantes sobre o comando de atribuição de valor a uma variável:

• É necessário que o tipo da variável tenha sido previamente definido, por meio de umcomando de declaração da variável.

• O valor a ser atribuído à variável precisa ser compatível com o tipo declarado para avariável. Assim, se temos, poe exemplo, uma variável de nome X do tipo inteiro, nãoé possível atribuir a X um valor como “Maria”.

• A notação

variável ← valor

é lida como: “variável recebe valor”.

Podemos atribuir a uma variável um valor conhecido, um valor armazenado em outra variávelou até mesmo uma expressão.

O Exemplo 3.29 lista alguns comandos válidos para atribuição de valores a variáveis. Exemplo 3.29 Alguns comandos válidos para atribuição de valores a variáveis podem ser vistosna Figura 3.62.

idade ← 15minhaIdade ← idadepreco ← 10.49precoAtual ← preco + 1000nomeCompleto ← “Francisco José da Silva”opcao ← ’N’venceu ← FALSO

Figura 3.62: Exemplos de comandos de atribuição de valores a variáveis.

É importante ressaltar que uma variável só guarda um valor por vez. Assim, quandoaplicamos um comando de atribuição a uma variável, o antigo valor armazenado nela será perdido.O Exemplo 3.30 ilustra esse processo. Exemplo 3.30 Seja a variável declarada

Page 160: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.3 P. 154

inteiro: matricula

Considere a seguinte sequência de comandos:

Início1 - matricula ← 1002 - matricula ← 95Fim

Ao final da execução dos comandos acima, o valor armazenado na variável “matricula” é ovalor 95. O valor 100, armazenado anteriormente, é descartado da memória do computador e nãopode ser recuperado após a execução do comando da linha 2.

Exercício 3.22 Indique o valor armazenado em cada variável ao final da execução dassequências de comandos a seguir:

(a) nome ← “Francisco”nome ← “Antônio”nome ← “Raquel”

(b) preco ← 50.00preco ← 49.99

(c) fimJogo ← FALSOfimJogo ← VERDADEIRO

Solução. Os valores armazenados ao final da execução dos comandos listados no Exercício3.22 são:

(a) a variável “nome” tem somente o valor “Raquel” armazenado nela.(b) a variável “preco” tem somente o valor 49.99 armazenado nela.(c) a variável “fimJogo” tem somente o valor VERDADEIRO armazenado nela.

Exercício 3.23 Proponha um algoritmo para trocar os valores de duas variáveis, A e B.Inicialmente, A armazena um valor inteiro igual a 5 e B armazena um valor inteiro igual a 7.Ao final da execução do seu algoritmo, a variável A deverá armazenar o valor 7, e a variável Bdeverá armazenar o valor 5.

Solução. O(a) aluno)(a) é encorajado(a) a tentar fazer este exercício antes de verificar estasolução. Uma primeira ideia que vem à mente é escrever a seguinte sequência de instruções:

1 - inteiro: A ← 52 - inteiro: B ← 73 - A ← B4 - B ← A

Porém, é possível ver que, ao executar a linha 3 do algoritmo, a variável A armazenará ovalor de B, que é 7, e ao executar a linha 4, B receberá esse valor atualizado de A. Aquele valor 5que A armazenava antes se perdeu. Logo, essa sequência de instruções não serve para solucionar

Page 161: Introdução à Lógica e à Programação VisualIntrodução à

P. 155 Seção 3.3

o problema. Neste caso, a troca de valores só é possível com o auxílio de uma terceira variável,que servirá como passo intermediário entre as trocas de valores entre A e B.

A Figura 3.63 apresenta um algoritmo para o problema proposto no Exercício 3.23.

Algoritmo para trocar os valores de duas variáveisInício1 - inteiro: A ← 52 - inteiro: B ← 73 - inteiro: auxiliar4 - auxiliar ← A5 - A ← B6 - B ← auxiliar.Fim

Figura 3.63: Um algoritmo para trocar os valores entre duas variáveis.

Constantes

Utilizamos as variáveis para acessar, por meio de instruções de um algoritmo, dados específicosarmazenados na memória do computador. Uma característica importante das variáveis é o fatode ela poder ter seu valor modificado por meio de comandos e instruções. As constantes, porsua vez, têm valor fixo. Não é possível modificar o valor de uma constante por meio de umcomando nem instrução de algoritmo. Exemplo 3.31 São exemplos de constantes: 2, “José”, ’B’, VERDADEIRO, 4,51.É muito importante observar com atenção a notação aplicada a cada constante. As diferentesnotações utilizadas no Exemplo 3.31 (sem aspas, com aspas simples e com aspas duplas), definemo tipo das constantes utilizadas. Podemos identificar, portanto, a seguinte convenção:

Notação Tipo Exemplossem aspas numérico e lógico 10, 3,1415, FALSOcom aspas simples caracter ’a’, ’B’, ’2’com aspas duplas texto “João”, “Ana Clara”, “2021”, “M”

Exercício 3.24 Para cada item a seguir, identifique quais deles representam variáveis e quaissão constantes. Justifique sua resposta.

(a) total(b) “total”(c) x(d) ’x’(e) “x”(f) 8(g) ’8’(h) “8”(i) 3,1415(j) “3,1415”(k) precoFinal(l) “precoFinal”

Solução. É possível identificar, por meio da notação adotada, quais elementos em uma

Page 162: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.3 P. 156

instrução ou comando de um algoritmo são variáveis e quais são constantes. Vamos analisar ositens do Exercício 3.24(a) total: da maneira como está escrito, a palavra só pode ser o nome de uma variável. Se

fosse constante, teria de ser do tipo texto, e portanto, necessitaria de aspas duplas.(b) “total”: com aspas duplas, é uma constante do tipo texto.(c) x: sem aspas, é nome de variável.(d) ’x’: com aspas simples, é uma constante do tipo caracter.(e) “x”: com aspas duplas, é uma constante do tipo texto.(f) 8: constante do tipo inteiro. Uma variável não podem ter seu nome iniciando com um

dígito numérico.(g) ’8’: constante do tipo caracter.(h) “8”: constante do tipo texto.(i) 3,1415: constante do tipo real.(j) “3,1415”: com aspas duplas, não é um valor numérico, e sim uma constante do tipo

texto.(k) precoFinal: sem aspas, só pode ser o nome de uma variável.(l) “precoFinal”: com aspas duplas, só pode ser uma constante do tipo texto.

3.3.2 – Comandos de Entrada e Saída

O funcionamento de um algoritmo segue um fluxo geral que inclui: a entrada de dados, oprocessamento desses dados e a saída (disponibilização) de resultados do processamento aplicadoaos dados. Nesta seção, vamos conhecer os comandos que utilizaremos para indicar operações deentrada e saída em nossos algoritmos.

Comando de Entrada

O comando que utilizaremos para indicar a entrada de dados será o comando leia(). Note queeste comando utiliza um par de parênteses em sua notação. Para compreender a sintaxe dessecomando, é necessário compreendermos como funciona o processo de entrada de dados. Umasequência de ações é listada no Exemplo 3.32. Exemplo 3.32 O processo de entrada de dados em um algoritmo (ou programa) se dá comosegue:

• Mediante solicitação emitida pelo sistema, o usuário do programa digita um valor utilizandoo teclado;

• Após digitar o valor, o usuário digita ENTER;• Ao digitar ENTER, o valor informado via teclado é armazenado em uma variável;• A variável em questão recebe o valor informado via teclado por meio do comando leia().• Os parênteses do comando são o espaço onde devemos escrever o nome da variável que

armazenará o dado de entrada.Desta forma, a sintaxe do comando de entrada é:

leia(nome da variável que armazenará o dado de entrada)

Assim, o comando leia() traduz para a linguagem algorítmica os comandos que antes costumáva-mos escrever como “obter, do usuário, ...”.

ObsUtilizaremos um comando leia() para cada valor a ser obtido de um usuário e que desejamosguardar em uma variável.

Page 163: Introdução à Lógica e à Programação VisualIntrodução à

P. 157 Seção 3.3

Comando de Saída

Um algoritmo, em geral, produz resultados que são de interesse para alguém. Assim, é necessárioque o algoritmo inclua comandos para fornecer a saída (exibição) dos resultados produzidos.

Uma saída de dados pode ocorrer de diversas formas: por impressora, por caixa de som ou porexibição de textos e gráficos em monitor. Neste material, vamos considerar a opção de produzira exibição de textos em monitor. Para tal, o comando que utilizaremos em nossos algoritmos éescreva().

Assim como o comando leia(), o comando escreva() também recebe informações entreparênteses. Neste caso, a informação que devemos escrever entre os parênteses são aquelasreferentes aos resultados e textos que desejamos que o algoritmo exiba.

Há, portanto, diferentes maneiras de utilizar o comando escreva(). A Figura 3.64 lista asdiferentes possibilidades de utilização desse comando.

Exibição Informação entre parênteses ExemploTexto simples texto entre aspas duplas escreva(“Olá!”)Valor de uma variável nome da variável escreva(soma)Resultado de um cálculo expressão a ser calculada escreva(10 + 5)Textos e valores de texto e variáveis,variáveis separados por vírgulas escreva(“Resultado:”, soma)

Figura 3.64: Diferentes maneiras de utilizar o comando escreva().

Exercício 3.25 Reescreva o algoritmo para somar dois números fornecidos por um usuário (verFigura 3.21), utilizando comandos de entrada e saída.

Solução. A Figura 3.65 apresenta uma versão modificada do algoritmo da Figura 3.21,reescrito com a inclusão dos comandos de entrada e saída.

Algoritmo para somar dois números fornecidos.Início1 - inteiro: num1, num2, soma2 - leia(num1)3 - leia(num2)4 - soma ← resultado da soma dos dois números.5 - escreva(soma)Fim

Figura 3.65: Versão modificada do algoritmo para somar dois números fornecidos por um usuário.

Exercício 3.26 Reescreva o algoritmo para calcular a média aritmética simples de dois númerosfornecidos por um usuário (ver Figura 3.24), utilizando comandos de entrada e saída.

Solução. A Figura 3.66 apresenta uma versão modificada do algoritmo da Figura 3.24,reescrito com a inclusão dos comandos de entrada e saída.

Page 164: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.3 P. 158

Algoritmo para calcular a média aritmética simples de dois números fornecidos.Início1 - real: num1, num2, soma, media2 - leia(num1)3 - leia(num2)4 - soma ← resultado da soma de num1 e num25 - media ← resultado da divisão da soma por 26 - escreva(media)Fim

Figura 3.66: Algoritmo da Figura 3.24, reescrito com comandos de entrada e saída.

3.3.3 – Expressões Aritméticas

A maioria dos algoritmos que vamos escrever incluirá cálculos matemáticos. Assim, é importantesabermos como escrever expressões aritméticas em nossos algoritmos. Os operadores aritméti-cos que vamos utilizar estão listados na Figura 3.67.

operação símbolosoma +subtração -multiplicação *divisão /exponenciação **

Figura 3.67: Operadores aritméticos

A ordem de precedência de operadores aritméticos nos algoritmos é a mesma que apren-demos na matemática. A Figura 3.68 revisa a ordem de precedência dos operadores aritméticosem uma expressão.

Operador Prioridade** 1a

/ e * 2a

+ e - 3a

Figura 3.68: Ordens de precedência de operadores aritméticos

ObsPodemos usar parênteses para mudar a ordem de precedência de operadores aritméticos.

Exercício 3.27 Indique o valor final armazenado nas variáveis:

(a) y ← 13 - 5 * 2(b) preco ← (109 - 9) * 0.1(c) cont ← 3 + 4 * 5(d) x ← 8 * 2 ** 3

Page 165: Introdução à Lógica e à Programação VisualIntrodução à

P. 159 Seção 3.3

Solução. As variáveis do Exercício 3.33 armazenam os seguinte valores:

(a) y armazena o valor 3(b) preco armazena o valor 10(c) cont armazena o valor 23(d) x armazena o valor 64

Exercício 3.28 Aplicando operadores aritméticos, reescreva o algoritmo que calcula a médiaaritmética simples de dois números dados (veja Figura 3.66), utilizando operadores aritméticos.

Solução. A nova versão do algoritmo indicado no Exercício 3.28 é apresentado na Figura3.69. Repare na adição de comandos de saída, para estabelecer uma comunicação mais fácil como usuário.

Algoritmo para calcular a média aritmética simples de dois números fornecidos.Início1 - inteiro: num1, num2, media2 - escreva (“Por gentileza, forneça um número: ”)3 - leia(num1)4 - escreva (“Favor fornecer o segundo número: ”)5 - leia(num2)6 - media ← (num1 + num2)/27 - escreva (“O resultado da média foi: ”, media)Fim

Figura 3.69: Um algoritmo para calcular a média aritmética simples de dois números fornecidos,utilizando operadores aritméticos.

Além dos operadores aritméticos, é comum utilizarmos algumas funções em comandos e instruçõesde algoritmos. A Figura 3.70 lista alguns exemplos.

Função Tarefa Exemplo Resultadoabs(A) valor absoluto (sem sinal) de A abs(-4) 4sq(A) o quadrado de A sq(5) 25sqrt(A) raiz quadrada de A sqrt(9) 3mod(A, B) resto da divisão inteira de A por B mod(6, 4) 2div(A, B) quociente da divisão de A por B div(9, 6) 1

Figura 3.70: Funções auxiliares para cálculos específicos.

Exemplo 3.33 Considere uma aplicação que necessita calcular a distância entre dois pontos noespaço bidimensional (2D). Um algoritmo para resolver este problema é apresentado na Figura3.71.

ObsObserve a utilização de parênteses para indicar que valores e operações devem ser efetuadaspor cada função utilizada na linha 9 do algoritmo da Figura 3.71.

Page 166: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.3 P. 160

Algoritmo para calcular a distância entre dois pontos.Início1 - inteiro: x1, y1, x2, y22 - real: distancia3 - escreva (“Por gentileza, forneça as coordenadas x e y do Ponto 1: ”)4 - leia(x1)5 - leia(y1)6 - escreva (“Favor fornecer as coordenadas x e y do Ponto 2: ”)7 - leia(x2)8 - leia(y2)9 - distancia ← sqrt(sq(x2 - x1)+sq(y2 - y1))10- escreva (“A distância entre os dois pontos fornecidos é: ”, distancia)Fim

Figura 3.71: Um algoritmo para calcular a distância entre dois pontos no espaço bidimensional(2D).

Exercício 3.29 Proponha um algoritmo para calcular a área de um círculo.

Solução. A Figura 3.72 apresenta um algoritmo para solucionar o problema proposto noExercício 3.29.

Algoritmo para calcular a área de um círculo.Início1 - real: raio, area2 - escreva (“Por gentileza, forneça a medida do raio do círculo: ”)3 - leia(raio)4 - area ← 3,12 × sq(raio)5 - escreva (“A medida da área do círculo é: ”, raio)Fim

Figura 3.72: Um algoritmo para calcular a medida da área de um círculo.

3.3.4 – Operadores Relacionais

Algumas operações nas instruções que compõem um algoritmo envolvem a comparação entredois dados valores. Em outras situações, podemos precisar comparar valores com resultados deexpressões. Para efetuar tais comparações, utilizamos os operadores relacionais, listados naFigura 3.73.

Operação Símboloigual a =diferente de <>maior que >menor que <maior ou igual a ≥menor ou igual a ≤

Figura 3.73: Operadores relacionais

Page 167: Introdução à Lógica e à Programação VisualIntrodução à

P. 161 Seção 3.3

ObsAs expressões escritas com operadores relacionais resultam em valores lógicos. Em ou-tras palavras, uma expressão que contém operadores relacionais sempre vai resultar emVERDADEIRO ou FALSO.

Exercício 3.30 Aplicando operadores relacionais, reescreva os algoritmos das Figuras indicadas:

(a) Algoritmo para exibir o resultado final para um aluno, dada a sua média final (Figura3.37).

(b) Algoritmo para decidir se vou ou não ao cinema. (Figura 3.36).

Solução. Inserindo variáveis e aplicando comandos de atribuição, comandos de entrada esaída, operadores aritméticos, operadores relacionais e estruturas de decisão, os algoritmos dasFiguras 3.37 e 3.36 podem ser reescritos como segue:

(a)

Algoritmo para informar se um(a) aluno(a) passou direto, dada a sua média final.Início1 - real: media2 - escreva(“Informe a média final do(a) aluno(a): ”)2 - se media ≥ 7.0 então3 - escreva (“PASSOU DIRETO”)4 - senão5 - escreva (“NÃO PASSOU DIRETO”)Fim

(b)

Algoritmo para decidir se vou ou não ao cinema.Início1 - real: quantia2 - escreva(“Informe a quantia em Reais disponível em sua carteira: ”)3 - leia(quantia)4 - se quantia ≥ 50 então3 - escreva(“Hashtag partiu cinema!”)4 - senão5 - escreva(“Fique em casa!”)Fim

Exercício 3.31 Proponha um algoritmo para encontrar as raízes de uma equação do segundograu.

Solução. Uma equação do segundo grau é escrita como

ax2 + bx+ c = 0. (3.1)

Nosso algoritmo precisará realizar as seguintes tarefas:

1 - Obter os valores de a, b e c.2 - Calcular o discriminante ∆, obtido pela fórmula

∆ = b2 − 4ac. (3.2)

Page 168: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.3 P. 162

3 - Aplicar a fórmula de Bhaskara:

x = −b±√

∆2a . (3.3)

Com base nesses passos, vamos escrever um algoritmo para resolver o problema. O algoritmo emquestão pode ser visto na Figura 3.74.

Algoritmo para calcular as raízes de uma equação do segundo grau.Início1 - real: a, b, c2 - real: delta3 - real: raiz1, raiz24 - escreva (“Por gentileza, forneça os coeficientes da equação: ”)4 - leia(a)5 - leia(b)6 - leia(c)7 - delta ← sq(b) - 4*a*c8 - se delta < 0 então9 - escreva(“Não há raízes reais para a equação.”)11- senão12- se delta = 0 então13- raiz1 = -b / 2*a14- escreva(“A equação tem apenas uma raiz e é igual a”, raiz1)15- senão16- raiz1 = (-b + sqrt(delta)) / 2*a17- raiz2 = (-b - sqrt(delta)) / 2*a18- escreva(“A equação tem duas raízes, com valores”, raiz1, “e”, raiz2)19- fim-se20- fim-seFim

Figura 3.74: Um algoritmo para calcular as raízes de uma equação do segundo grau.

Exercício 3.32 Proponha um algoritmo para simular o jogo do intervalo. O jogo consiste emuma pessoa guardar um número entre 0 e 100, e uma outra pessoa tenta adivinhar que númeroé esse, dando palpites. Para cada palpite dado, a pessoa que guarda o número deve dizer “émaior” ou “é menor”, até que a pessoa consiga acertar o palpite.

Solução. A Figura 3.75 apresenta um algoritmo para o funcionamento do jogo, com umnúmero-chave igual a 33 (mas qualquer outro valor entre 0 e 100 podia ter sido escolhido).

Page 169: Introdução à Lógica e à Programação VisualIntrodução à

P. 163 Seção 3.3

Algoritmo para o jogo do intervalo.Início1 - inteiro: numeroChave ← 332 - inteiro: palpite3 - escreva(“Bem-vindo ao jogo do intervalo! Boa diversão!”)4 - escreva(“Dê um palpite:”)5 - leia(palpite)6 - enquanto palpite <> numeroChave faça7 - se palpite < numeroChave então8 - escreva(“Seu palpite é MENOR que o número-chave”)9 - senão10- se palpite > numeroChave então11- escreva(“Seu palpite é MAIOR que o número-chave”)12- fim-se13- fim-se14- escreva(“Tente um novo palpite:”)15- leia(palpite)16- fim-enquanto17- escreva(“Parabéns! Você acertou o número-chave!”)Fim

Figura 3.75: Algoritmo para o funcionamento do jogo do intervalo.

3.3.5 – Expressões Lógicas

As estruturas de decisão e de repetição compartilham uma característica comum: ambas baseiamseu funcionamento no resultado de um teste, que produz como resposta o valor VERDADEIROou FALSO. Os operadores relacionais, estudados na Seção 3.3.4, realizam a comparação entrevalores. Com eles, podemos construir expressões que produzem como resultado os valoresVERDADEIRO ou FALSO. Exemplo 3.34 A Figura 3.76 mostra algumas expressões construídas com operadores relacionaise os resultados produzidos.

Expressão Resultado3 * 2 > 5 VERDADEIRO3 > 5 FALSO3 * 2 > 4 VERDADEIRO3 * 2 ≤ 6 VERDADEIRO“9” = ’9’ FALSOFALSO <> VERDADEIRO VERDADEIRO10 * 5 <> 50 FALSO2 - 3 ** 2 = -7 VERDADEIRO“Maria” <> “Ana” VERDADEIRO’C’ = “C” FALSO’C’ <> ’c’ VERDADEIRO

Figura 3.76: Algumas expressões com operadores relacionais e os resultados produzidos.

As expressões lógicas são em geral utilizadas para definir condições complexas (por exemplo,que combinam várias expressões relacionais).

Page 170: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.3 P. 164

Exemplo 3.35 Considere um algoritmo que lê um número e testa se ele é, ao mesmo tempo,positivo e par. A Figura 3.77 mostra as instruções do algoritmo.

Algoritmo para determinar se um dado número é positivo e par.Início1 - inteiro: valor2 - escreva(“Por gentileza, digite um número : ”)3 - leia(valor)4 - se valor > 0 e, ao mesmo tempo, mod(valor, 2) = 0 então5 - escreva(“O número informado é positivo e par”)Fim

Figura 3.77: Algoritmo para testar se um dado número é positivo e par.

Observe que precisamos de um operador para combinar as duas expressões relacionais dalinha 4 do algoritmo da Figura 3.77, de modo a produzir uma expressão com um único resultado.Os operadores que atendem a essa necessidade são os operadores lógicos.A Figura 3.78 lista os principais operadores lógicos utilizados na construção de algoritmos.

Operador ResultadoNAO O mesmo produzido pelo conectivo lógico de NegaçãoE O mesmo produzido pelo conectivo lógico de ConjunçãoOU O mesmo produzido pelo conectivo lógico de Disjunção Inclusiva

Figura 3.78: Operadores lógicos e os resultados produzidos por cada um deles.

ObsO operador lógico NAO é aplicado a um operando apenas. Ele é um operador unário.Os demais operadores lógicos apresentados são binários, necessitando, portanto, de doisoperandos.

A Figura 3.79 apresenta a ordem de precedência de operadores lógicos em uma expressão.

Operador PrioridadeNAO 1a

E 2a

OU 3a

Figura 3.79: Ordens de precedência de operadores aritméticos

ObsPodemos usar parênteses para mudar a ordem de precedência de operadores lógicos.

Exemplo 3.36 A Figura 3.80 mostra algumas expressões construídas com operadores lógicos eos resultados produzidos.

Exercício 3.33 Indique o valor final armazenado nas variáveis (todas as variáveis são do tipológico):

(a) resultado ← 5 = 4 + 1 OU 7 = -7 E 3 = -3*(-1)(b) venceu ← 100 > 1 E NAO 6 + 5 = 10

Page 171: Introdução à Lógica e à Programação VisualIntrodução à

P. 165 Seção 3.3

Expressão ResultadoNAO 5 = 4 VERDADEIRO3 * 2 > 5 E 10 = 9 + 1 VERDADEIRO3 > 5 OU VERDADEIRO VERDADEIRO5 < 3 OU 2 + 2 = 5 FALSOmod(4, 2) = 0 E 4 > 0 VERDADEIRONAO div(10, 5) <> 2 VERDADEIROVERDADEIRO E NAO 4 = 2*2 FALSONAO FALSO VERDADEIRO10 * 5 <> 50 OU 3 = 0 + 3 VERDADEIRO3 ** 2 = -7 OU 5 = 2 * 3 FALSOVERDADEIRO E FALSO FALSONAO 6 = 2 + 2 + 2 FALSOFALSO OU VERDADEIRO VERDADEIRO

Figura 3.80: Algumas expressões com operadores lógicos e os resultados produzidos.

(c) teste ← 6 - 2 * 3 = 0 E (FALSO OU 4 <> 0)(d) igual ← NAO(8 * 2 = 16 OU 5/1 > 2) OU FALSO

Solução. As variáveis do Exercício 3.33 armazenam os seguinte valores:

(a) resultado armazena o valor VERDADEIRO.(b) venceu armazena o valor VERDADEIRO.(c) teste armazena o valor VERDADEIRO.(d) igual armazena o valor FALSO.

Exemplo 3.37 Agora que conhecemos os operadores lógicos, vamos reescrever o algoritmo quetesta se um número é positivo e par (veja Figura 3.77). A Figura 3.81 apresenta a nova versãodo algoritmo.

Algoritmo para determinar se um dado número é positivo e par.Início1 - inteiro: valor2 - escreva(“Por gentileza, digite um número : ”)3 - leia(valor)4 - se valor > 0 E mod(valor, 2) = 0 então5 - escreva(“O número informado é positivo e par”)Fim

Figura 3.81: Algoritmo para testar se um dado número é positivo e par, utilizando um operadorlógico.

Exemplo 3.38 Considere um sistema que obtém a idade de uma pessoa e informa a sua classeeleitoral:

• Não eleitor (abaixo de 16 anos);• Eleitor obrigatório (entre 18 e 65 anos);• Eleitor facultativo (entre 16 e 18 anos ou acima dos 65 anos).

A Figura 3.82 apresenta um algoritmo para o funcionamento desse sistema.

Page 172: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.3 P. 166

Algoritmo para classificar eleitores conforme idade.Início1 - inteiro: idade2 - escreva(“Por gentileza, informe sua idade : ”)3 - leia(idade)4 - se idade < 16 então5 - escreva(“Não eleitor.”)6 - senão7 - se (idade ≥ 16 E idade < 18) OU (idade > 65) então8 - escreva(“Eleitor facultativo”)9 - senão10- escreva(“Eleitor obrigatório”)11- fim-se12- fim-seFim

Figura 3.82: Algoritmo para o funcionamento do sistema que classifica um eleitor, dada a suaidade.

Exercício 3.34 Considere um sistema que recebe as medidas dos três lados de um triângulo eprecisa classificá-lo como EQUILÁTERO, ISÓSCELES e ESCALENO. Proponha um algoritmopara solucionar este problema.

Solução. A Figura 3.83 apresenta um algoritmo para o problema proposto no Exercício3.34.

Page 173: Introdução à Lógica e à Programação VisualIntrodução à

P. 167 Seção 3.3

Algoritmo para classificar triângulos.Início1 - inteiro: a, b, c2 - escreva(“Entre com a medida do primeiro lado: ”)3 - leia(a)4 - escreva(“Entre com a medida do segundo lado: ”)5 - leia(b)6 - escreva(“Entre com a medida do terceiro lado: ”)7 - leia(c)8 - se a < b + c E b < a + c E c < a + b então9 - se(a = b E b = c) então10- escreva(“Triângulo EQUILÁTERO”)11- senão12- se a = b OU b = c OU b = c então13- escreva(“Triângulo ISÓSCELES”)14- senão15- escreva(“Triângulo ESCALENO”)16- fim-se17- fim-se18- senão19- escreva(“Medidas informadas NÃO formam um triângulo!”)20- fim-seFim

Figura 3.83: Um algoritmo que classifica triângulos, conforme as medidas de seus lados.

Page 174: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.4 P. 168

3.4 – Introdução à Programação Visual

Nesta seção, vamos colocar em prática os conceitos estudados sobre a construção de algoritmos,utilizando uma ferramenta que nos permitirá criar nossos próprios programas.Mas, o que é um programa?

Definição 3.4.1 Um Programa é uma sequência de instruções, escritas em uma linguagemde programação, que descrevem, passo a passo, como uma determinada tarefa deve serexecutada por um computador.

3.4.1 – Noções Básicas

Observando a Definição 3.4.1, percebemos que um programa nada mais é do que a escrita de umalgoritmo utilizando alguma linguagem de programação. São muitas as opções de linguagens,e cada uma varia de acordo com o propósito pretendido. As linguagens de programação seapresentam nas mais variadas formas: algumas permitem a escrita de programas como umcódigo digitado usando o teclado; já outras oferecem comandos na forma de elementos gráficosque podem ser arrastados com o mouse para formarmos uma sequência de instruções. A esseselementos gráficos damos o nome de blocos de instruções.

A Figura 3.84(a) mostra um exemplo de um programa escrito em código digitado e a Figura3.84(b) mostra um exemplo de um programa escrito com a utilização de blocos de instruções.

As linguagens de programação que oferecem comandos na forma de blocos de instruçõescaracterizam o que chamamos de Linguagens de Programação Visual.

(a) Programa com comandos digitados. (b) Programa construído com blocos de instruções.

Figura 3.84: Programação convencional versus programação visual

Para continuarmos, é necessário conhecermos ainda um outro conceito: o de Ambiente deProgramação.

Definição 3.4.2 Um Ambiente de Programação é um programa que oferece todas asferramentas necessárias para a construção de um programa em uma dada linguagem deprogramação. Assim, podemos encontrar, dentro de um ambiente de programação, uma áreapara a escrita do programa, uma ferramenta que fará a tradução do seu programa para alinguagem de máquina, além de botões e menus para executar o programa escrito.

Na figura 3.85, vemos um exemplo de um ambiente de programação de uma linguagem deprogramação visual. Note que tudo o que é necessário para a construção dos programas estápresente em uma só janela: o conjunto de blocos de instruções, uma área para a montagem doprograma, uma área para organizar imagens, além de botões para acionar ou parar a execuçãodo programa.

Page 175: Introdução à Lógica e à Programação VisualIntrodução à

P. 169 Seção 3.4

Figura 3.85: Ambiente de programação.

ObsÉ muito comum usar a sigla IDE para se referir a ambientes de programação. Ela significaIntegrated Development Environment, que é o termo em inglês para denominar um ambientede programação.

Vamos conhecer as principais partes do ambiente que utilizaremos para escrever nossos programas:o Scratch1. A Figura 3.86 indica onde encontrar, na interface do Scratch, cada uma das seções aseguir:

(a) Categorias de instruções;(b) Blocos de instruções;(c) Área de trabalho;(d) Palco;(e) Painel dos atores;(f) Painel do palco.

Categorias de instruções

Em programação visual, a construção de um programa consiste em escolher blocos de instruçõesprontos, já oferecidos pela linguagem que escolhemos para trabalhar, e combiná-los arrastando-ospara alguma área especificada pelo ambiente de programação. No Scratch, podemos encontrarblocos de instruções para realizar diversas tarefas, agrupadas em categorias, para facilitar abusca por um comando específico.

ObsAs categorias de blocos podem ser encontradas na aba “Código”, situada no canto superioresquerdo da tela.

1Acesso disponível em https://scratch.mit.edu/

Page 176: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.4 P. 170

Figura 3.86: Interface do Scratch, com indicações dos painéis a serem abordados nesta seção.

Blocos de instruções

Os comandos que conhecemos no Capítulo 3 podem ser encontrados, na forma de blocos deinstruções, na interface do Scratch. Na Figura 3.86, é possível ver, em particular, os blocos deinstruções referentes a comandos de estruturas de controle, estudadas na Seção 3.2.2.

A construção de um programa nesta linguagem consistirá, portanto, da escolha dos blocosreferentes às instruções que desejamos utilizar e, com o mouse, clicar e arrastar esses blocos paraa área de trabalho, realizando as devidas combinações entre eles.

Área de trabalho

Indicada na Figura 3.86 com a letra (c), a área de trabalho é a área para onde vamos arrastaros blocos de instruções escolhidos e combiná-los.

A Figura 3.85 apresenta um exemplo de blocos de instruções combinados na área de trabalho.O código em questão pode ser visualizado em detalhe na Figura 3.84(b).

ObsObserve como as cores dos blocos de instruções mudam conforme sua categoria.

ObsPara remover um bloco da área de trabalho, basta arrastá-lo de volta para o painel debloco de instruções.

Palco

O palco é a área onde as aplicações que desenvolvemos funcionam e são testadas. É nele quevisualizaremos e testaremos os programas, animações e jogos que podemos desenvolver utilizandoesta linguagem.

Page 177: Introdução à Lógica e à Programação VisualIntrodução à

P. 171 Seção 3.4

Painel dos atores

Um ator é um elemento ou personagem que podemos inserir em um programa. Toda vez queformos iniciar um novo programa no Scratch, teremos, por padrão, um ator já inserido no projeto(um gato).

Podemos inserir um ou mais atores em um mesmo programa. A inserção de novos atores é umadas funcionalidades oferecidas pelo painel de atores. Além disso, neste painel é possível ajustarvárias propriedades de um ator, como o nome, posição no espaço do palco (em coordenadas x ey), tamanho, direção e se deve ficar visível ou não.

Painel do palco

O Scratch permite que um mesmo programa possua mais de um cenário, o que possibilita acriação de aplicações interessantes, como jogos com diferentes fases. O painel do palco oferecefunções para inserir novos cenários, que podem ser escolhidos de um conjunto de cenários prontose disponíveis no Scratch, ou um arquivo de imagem salvo em seu computador, ou ainda umdesenho criado a ser criado por você, utilizando as ferramentas de desenho do Scratch. A listade todos os cenários inseridos em seu programa podem ser vistos na aba “Cenários”, no cantosuperior esquerdo da tela.

ObsAs instruções em um programa no Scratch podem manipular tanto os atores quanto oscenários. Isso nos dá uma vasta gama de possibilidades para explorar a criatividade!

O vídeo a seguir apresenta, de maneira bem detalhada, cada elemento da tela do Scratch.

v Scratch 3, Ep. 2: a interface da aplicação.

3.4.2 – Exemplos de aplicações simples

Para explorar os elementos da interface do Scratch e conhecer melhor suas ferramentas, vamos,nesta seção, apresentar alguns pequenos projetos práticos. Exemplo 3.39 Sempre que vamos estudar uma nova linguagem de programação, o primeiroexemplo clássico é o bom e velho projeto “Olá, mundo!”. Tal projeto consiste em simplesmenteescrever as instruções necessárias na nova linguagem para que o seu programa exiba umamensagem que diz “Olá, mundo!” (ou “Hello, world”). Assim, como este é o primeiro contatocom o Scratch, vamos seguir a tradição e criar nosso projeto “Olá, mundo!”.

Para criar esse programa, você deve antes preparar o Scratch. Para isso, siga os passosiniciais, ilustrados na Figura 3.87.

Agora, vamos criar o programa! Os passos necessários para fazer o gato “falar” a clássicafrase “Olá, mundo!” são:

• Certifique-se de que a instrução que você vai escrever afetará o gato. Para isso, basta darum duplo-clique sobre o gato. Você verá uma cópia menor e mais transparente do desenhodo gato no canto superior direito da área de trabalho.

• Clique na categoria “Aparência”. Isso possibilitará a visualização dos comandos referentesà exibição de mensagens.

Page 178: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.4 P. 172

Passos para iniciar o uso do Scratch1 - Abrir o Scratch, no endereço scratch.mit.edu.2 - Clicar no botão “Comece a Criar”.3 - Vai aparecer uma janelinha com um tutorial. Você deve fechar essa janela.4 - Prontinho. O Scratch está pronto para que você crie seu programa!

Figura 3.87: Passos iniciais para a utilização do Scratch.

• Você deverá encontrar dois comandos que permitem a exibição de mensagens. A Figura3.88 ilustra esses blocos.

• Escolha o bloco referente à instrução “diga Olá!” e, com o mouse, arraste-o para a área detrabalho.

• Dê um duplo-clique onde se lê “Olá!” no bloco de instrução e digite a mensagem “Olá,mundo!”.

• Para executar o programa, basta clicar no bloco de instrução. Deverá aparecer umbalãozinho, como se o gato estivesse “falando” a frase.

Figura 3.88: Blocos de instruções referentes à exibição de mensagens.

ObsPara encerrar a execução do seu programa, clique no sinal de “Pare”, situado acima dopalco.

Exemplo 3.40 Neste novo projeto, vamos fazer o gato se comunicar de uma maneira maisnatural para ele. Ele vai miar, ao invés de exibir um balãozinho com uma frase escrita emlinguagem natural humana. Os passos para fazer este programa são:

• Certifique-se de que a instrução que você vai escrever afetará o gato. Para isso, basta darum duplo-clique sobre o gato. Você verá uma cópia menor e mais transparente do desenhodo gato no canto superior direito da área de trabalho.

• Clique na categoria “Som”. Isso possibilitará a visualização dos comandos referentes àmanipulação de sons.

• Você deverá encontrar dois comandos que permitem a reprodução de um som. A Figura3.89 ilustra esses blocos.

• Escolha o bloco referente à instrução “toque o som Miau” e, com o mouse, arraste-o para aárea de trabalho.

• Para executar o programa, basta clicar no bloco de instrução. O programa reproduzirá umsom de um miado.

Exemplo 3.41 No projeto a seguir, temos como objetivo explorar algumas funcionalidadesreferentes a cenários. Assim, nossas tarefas serão:

• Inserir dois cenários diferentes;

Page 179: Introdução à Lógica e à Programação VisualIntrodução à

P. 173 Seção 3.4

Figura 3.89: Blocos de instruções referentes à reprodução de sons.

• Fazer com que o programa exiba um cenário por um segundo e em seguida exiba umsegundo cenário.

Os passos descritos a seguir ensinam como criar este programa:

• Para inserir cenários, vamos clicar no botão “Selecionar cenário”, ilustrado na Figura 3.90.Você poderá escolher um cenário pronto e disponibilizado no Scratch, ou adicionar umafigura salva em seu computador, ou ainda, criar um novo desenho para ser o novo cenário.Para simplificar, vamos escolher dois dos cenários já disponíveis no Scratch.

• Dê um duplo-clique sobre o cenário que aparece no painel de palco. Isso fará com que asinstruções a serem adicionadas à área de trabalho afetem os cenários.

• Clique na categoria “Aparência” e encontre um bloco de instrução chamado “mude para ocenário ...”. Arraste esse bloco para a área de trabalho.

• Vamos precisar de dois blocos para mudar o cenário. Então, no bloco que você acabou deincluir na área de trabalho, dê um clique com o botão direito do mouse. Será exibido ummenu, como mostra a Figura 3.91. Escolha a opção “Duplicar”.

• Clique na categoria “Controle” e encontre um bloco de instrução chamado “espere 1 seg”.Arraste esse bloco para a área de trabalho e o duplique.

• Organize os blocos, em sequência, de modo a fazer seu programa mudar o cenário, esperar 1segundo, e mudar para o outro cenário. Seu programa deverá estar como o da Figura 3.92.

• Para executar o programa, basta clicar nos blocos de instruções.

Figura 3.90: Botão do painel do palco para adicionar cenários.

Exercício 3.35 Faça um programa que mostre o gato em uma pose inicial e permaneça nessapose por dois segundos. Passado esse tempo, o gato muda de pose, sem sair do lugar.

Solução. Para construir esse programa, precisamos conhecer uma propriedade importantede um ator: ele pode conter mais de uma fantasia. Podemos entender a fantasia como sendouma pose diferente para o mesmo ator.

Page 180: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.4 P. 174

Figura 3.91: Opções para um bloco de instruções, quando clicado com o botão direito do mouse.

Figura 3.92: Programa para exibir um cenário por um segundo, e exibir um outro cenário.

Para visualizar quantas e quais fantasias um ator tem, basta clicar sobre o ator no palco edepois clicar na aba “Fantasias”, no canto superior esquerdo da janela. Para o caso do gato, eletem duas fantasias (ou duas poses).

O programa para realizar as ações pedidas no Exercício 3.35 pode ser visto na Figura 3.93.

Figura 3.93: Programa para exibir um cenário por um segundo, e exibir um outro cenário.

Page 181: Introdução à Lógica e à Programação VisualIntrodução à

P. 175 Seção 3.4

3.4.3 – Blocos de Instruções para Estruturas de Decisão

Como vimos na seção 3.2.4, as estruturas de decisão são estruturas de controle que desviam o fluxode execução de instruções. Esta estrutura tem a forma geral se...então ou se...então...senão.

Podemos encontrar os blocos de instruções referentes a essas estruturas na categoria “Controle”.A Figura 3.94 ilustra os blocos de instruções para as estruturas de decisão.

Figura 3.94: Blocos de instruções para estruturas de decisão.

Para utilizar esses blocos, basta escolher blocos referentes aos testes a serem feitos pelasestruturas de decisão e aos comandos a serem executados dentro da estrutura e encaixá-los noslocais apropriados.

ObsNote que os blocos de instrução para estruturas de decisão podem ser aninhados. Bastaencaixar um bloco dentro de outro.

Exemplo 3.42 O programa da Figura 3.95 mostra um programa que lê o valor de uma médiade um(a) aluno(a) e informa se ele(a) passou direto ou não. Para fazer este programa, foinecessário criar uma variável para armazenar o valor da média. Na categoria “Variáveis”, épossível encontrar ferramentas para a criação de variáveis. A expressão relacional foi obtida nacategoria “Operadores” e os comandos de saída foram obtidos na categoria “Aparência”.

Figura 3.95: Programa para fazer o gato dizer se um(a) aluno(a) passou direto ou não, dependendodo valor da média.

ObsObserve que é possível modificar os valores da variável media, arrastando uma bolinhasobre uma barra. No caso da Figura 3.95, o valor atribuído à variável media foi 8.

Page 182: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.4 P. 176

Exercício 3.36 Faça um programa que leia um número e diga se ele é positivo e par.

Solução. Um programa para resolver o problema proposto no Exercício 3.36 pode ser vistona Figura 3.96.

Figura 3.96: Programa para fazer o gato dizer se um número fornecido é positivo e par.

3.4.4 – Blocos de Instruções para Estruturas de Repetição

As estruturas de repetição da linguagem Scratch apresentam algumas diferenças em relação àsestruturas de repetição estudadas na seção 3.2.5. A Figura 3.97 apresenta os blocos de instruçõespara as estruturas de repetição.

Figura 3.97: Blocos de instruções para estruturas de repetição.

Observando a Figura 3.97, podemos notar que o Scratch disponibiliza três estruturas derepetição:

• repita até que: realiza um teste e repete instruções dentro da instrução até que o testeresulte em VERDADEIRO.

• repita ... vezes: estrutura com comportamento equivalente ao da estrutura para ... faça.• sempre: repete as instruções dentro dela indefinidamente. As ações só param de executar

quando o usuário clicar no botão de “Pare” do Scratch.

Exemplo 3.43 Vamos fazer o gato se deslocar no cenário. Ele vai da esquerda para a direita,repetindo um deslocamento de 20 pixels para a direita 5 vezes. A Figura 3.98 ilustra o programapara realizar esta tarefa.

Exercício 3.37 Faça um programa para que o gato fique sempre atento à escolha de um valorpara um dado número e fique dizendo se o número é par ou ímpar. Essa ação se repeteindefinidamente e só se encerra quando o usuário clicar sobre o botão “Pare”.

Solução. A Figura 3.99 ilustra um programa para resolver o problema proposto no Exercício3.37.

Page 183: Introdução à Lógica e à Programação VisualIntrodução à

P. 177 Seção 3.4

Figura 3.98: Programa para fazer o gato se deslocar 20 pixels, repetindo essa ação 5 vezes.

Figura 3.99: Programa para fazer o gato ficar sempre atento às variações do valor de um númeroe dizer se ele é par ou ímpar.

3.4.5 – Interatividade

Alguns algoritmos que estudamos na seção 3.2 deste material consistiam em comandos queseguiam um fluxo de ações simplificado, que incluía uma entrada, um processamento e uma saídasimples. A única participação do usuário ocorria no início do algoritmo, para fornecer dados. Osistema realizava todas as ações e só exibia resultados ao final.

No entanto, a programação permite a criação de aplicações mais interessantes, capazes dereagir a comandos do usuário em tempo real (ou seja durante o tempo em que o programa estásendo executado).

Definição 3.4.3 Chamamos de Interatividade a capacidade de um sistema de reagir aestímulos externos no momento em que eles ocorrem.

Para ser interativo, um programa precisa ser capaz de responder, durante a sua execução, acomandos vindos do usuário por meio de diferentes dispositivos de entrada. Cada comando dessetipo é chamado de um evento.

Definição 3.4.4 Chamamos de Evento cada tipo de estímulo que pode atingir um sistema,vindo de uma entidade externa.

No caso de sistemas computacionais, os eventos são todas as ações que um usuário poderealizar enquanto o programa está em execução. Os eventos mais comuns que iremos tratar emnossos programas são:

• de mouse: clique, arrasto, duplo-clique;• de teclado: tecla pressionada, pressionamento de duas teclas ao mesmo tempo, pressiona-

mento de teclas especiais (setas de direção, barra de espaço, etc).

Page 184: Introdução à Lógica e à Programação VisualIntrodução à

Seção 3.4 P. 178

Vale ressaltar que há outros eventos além dos listados acima. Aplicações mais sofisticadas podemlidar com eventos de joystick e outros dispositivos de entrada.

ObsLembre-se de que os jogos digitais são exemplos de aplicações computacionais interativas.Usando o Scratch, nós também poderemos criar nossos próprios jogos!

3.4.6 – Tratamento de Eventos

As linguagens de programação oferecem ao(à) projetista funcionalidades que permitem programarcomo responder a eventos. Nesta seção, vamos conhecer os blocos de instruções que nos permitirãotratar eventos, para podermos criar aplicações interativas.

A Figura 3.100 ilustra os blocos de instrução disponíveis para o tratamento de eventos.

Figura 3.100: Blocos de instrução da categoria “Eventos”.

Exemplo 3.44 Vamos fazer uma aplicação interativa que faça o gato miar toda vez que ele forclicado. A Figura 3.101 ilustra o programa para implementar essa aplicação.

ObsAtenção: para testar o programa da Figura 3.101, basta clicar diretamente no gato. Elevai miar toda vez que for clicado.

Page 185: Introdução à Lógica e à Programação VisualIntrodução à

P. 179 Seção 3.4

Figura 3.101: Programa para fazer o gato miar toda vez que for clicado.

Exercício 3.38 Faça um programa que tenha como ator uma seta, localizada no centro da telae apontando para qualquer direção. Seu programa deverá tratar os seguintes eventos:

• Se a tecla seta pra cima for pressionada, a seta deverá apontar para cima e subir 10pixels no palco.

• Se a tecla seta pra baixo for pressionada, a seta deverá apontar para baixo e descer 10pixels no palco.

Solução. Este exercício é interessante, pois trata dois eventos diferentes. Podemos ver comoconstruir um programa para resolver o problema proposto neste exercício na Figura 3.102.

Figura 3.102: Programa para fazer uma seta mudar de direção e se deslocar em resposta a eventosde teclado.

ObsAlgumas observações importantes sobre a solução do Exercício 3.38:

• Não é obrigatório que todos os blocos estejam conectados. Podemos criar mais deum conjunto de blocos conectados para o mesmo programa, especialmente quandoqueremos programar tratamento de eventos (pois cada evento é diferente e requeruma programação separada).

• Quando um programa contém mais de um conjunto de blocos de instruções, devemosclicar na bandeirinha verde (Ir) para executá-lo.

• Repare que o ator padrão foi retirado e um outro ator foi incluído para esta aplicação.