Aula 01 - Introdução à lógica de programação PDF
Document Details
Uploaded by ExcitingMimosa
FATEPI/FAESPI
Tags
Summary
Este documento apresenta os objetivos de uma disciplina de desenvolvimento de dispositivos móveis. Aborda tópicos como lógica de programação, programação orientada a objetos e fundamentos de Android.
Full Transcript
Desenvolvimento para Dispositivos Móveis I Disciplina: Desenvolvimento para Dispositivos Móveis I Professor: Alexandre Lages Objetivos da Disciplina 1) Introdução à Lógica de Programação: > Compreend...
Desenvolvimento para Dispositivos Móveis I Disciplina: Desenvolvimento para Dispositivos Móveis I Professor: Alexandre Lages Objetivos da Disciplina 1) Introdução à Lógica de Programação: > Compreender os conceitos básicos de lógica de programação, incluindo variáveis, operadores, estruturas condicionais e de repetição com a linguagem Java. > Desenvolver algoritmos simples para resolver problemas básicos. Objetivos da Disciplina 2) Fundamentos de Programação Orientada a Objetos (POO): > Entender os conceitos de classes, objetos, herança, polimorfismo e encapsulamento. > Aplicar os princípios da POO em pequenos projetos de software. Objetivos da Disciplina 3) Compreender os Fundamentos do Android: > Conhecer a arquitetura do Android e seus componentes principais. > Entender o ciclo de vida de uma atividade e de um aplicativo Android. Objetivos da Disciplina 4) Desenvolver Interfaces de Usuário (UI): > Criar layouts responsivos utilizando XML. > Utilizar componentes de UI como TextView, EditText, Button, RecyclerView, etc. > Aplicar temas e estilos para personalizar a aparência do aplicativo. Objetivos da Disciplina 5) Gerenciar Recursos de Aplicativos: > Entender e gerenciar recursos como strings, dimensões, cores e imagens. > Implementar diferentes recursos para suportar múltiplos idiomas e tamanhos de tela. Objetivos da Disciplina 6) Interação com Usuário e Manipulação de Eventos: > Capturar e responder a eventos de clique, toque e gestos. > Implementar notificações e diálogos para interação com o usuário. Objetivos da Disciplina 7) Persistência de Dados: > Utilizar SharedPreferences para armazenamento de dados simples. > Implementar bancos de dados locais com SQLite. Objetivos da Disciplina 8) Comunicação com a Rede: > Fazer requisições HTTP utilizando bibliotecas como Retrofit ou Volley. > Manipular JSON e outros formatos de dados recebidos da rede. > Implementar conectividade e checagem de rede. Objetivos da Disciplina 9) Utilização de APIs e Bibliotecas Externas: > Integrar bibliotecas populares e APIs. > Gerenciar dependências com o Gradle. Objetivos da Disciplina 10) Boas Práticas de Programação e Testes: > Escrever código limpo e bem documentado. > Implementar testes unitários e testes de UI. > Utilizar ferramentas de depuração e otimização de desempenho. Critérios de Avaliação 1) Frequência: Ao final do período o aluno deverá ter pelo menos 75% de frequência; Critérios de Avaliação 2) Participação em aula e discussões: O aluno deverá participar de forma ativa do conteúdo e discussões levantadas em sala de aula; Critérios de Avaliação 3) Resolução de atividades: O aluno deverá empenhar-se na resolução das atividades individuais e em grupo, para o efetivo aprendizado; Critérios de Avaliação 4) Realização de Pesquisas: A pesquisa será um dos critérios de avaliação, seja através de resumos, relatórios, seminários, ou, qualquer outra forma de pesquisa. Critérios de Avaliação 5) Realização de Projetos Práticos: Serão realizados projetos/atividades práticas, para aplicação do conhecimento adquirido em sala de aula. Critérios de Avaliação 6) Avaliações: Serão realizadas três avaliações, nos formatos teórico e prático, totalizando 10 pontos, com média final mínima para aprovação de 7,0 pontos. Aula 1 Conteúdo 1. Introdução à lógica de programação. Lógica/Lógica de Programação X Algoritmos X Linguagem de Programação Lógica/Lógica de Programação Lógica Ciência que estuda os princípios e critérios válidos do raciocínio e da argumentação. Em programação, a lógica é usada para estruturar algoritmos e tomar decisões com base em condições. Está presente em nosso cotidiano mais do que imaginamos. Em atividades como: tomar banho, escovar os dentes, passar um café, ir ao cinema, dentre outras. Utilizamos a lógica para organizarmos a ordem do que vamos fazer e como vamos fazer. Ela nos fornece a maneira correta de fazer as coisas. Lógica de programação Lógica de programação refere-se ao uso de estruturas lógicas para escrever programas que executam tarefas específicas. Inclui a compreensão e aplicação de operadores lógicos, estruturas de controle (como loops e condicionais) e a capacidade de resolver problemas de forma sistemática. É a maneira de pensar e organizar os passos necessários para resolver um problema de programação; Independente da linguagem de programação. Exemplo Verificar se um número é par ou ímpar: se (número % 2 == 0) então imprimir "Par" senão imprimir "Ímpar" Algoritmo Definição de Algoritmos Sequência finita de passos bem definidos que, quando seguidos, resolvem um problema ou executam uma tarefa. Independente de linguagem de programação; São a base para a criação de programas de computadores. Fases de um algoritmo Entrada de dados: São os dados de entrada do algoritmo Processamento: São operações aplicadas aos dados de entrada. Saída: É o resultado do processamento dos dados. Algoritmos Estão presentes em diversas áreas para resolver problemas complexos de forma estruturada e organizada; Podem ser implementadas em diversas linguagens de programação; Fundamentais para criação de programas de computadores. Algoritmos Características para um bom algoritmo ○ Precisão Deve ser preciso e claro o suficiente para que qualquer pessoa possa entender e executar Algoritmos Características para um bom algoritmo ○ Eficiência Deve ser eficiente em termos de tempo e recurso Executar rapidamente e utilizar menor quantidade de recursos possíveis Algoritmos Características para um bom algoritmo ○ Finitude Deve possuir um fim Parar de executar após alcançar a solução do problema Algoritmos Características para um bom algoritmo ○ Clareza Deve ser fácil e claro de entender por qualquer pessoa que tenha conhecimento básico na área Algoritmos Características para um bom algoritmo ○ Modularidade Deve ser dividido em módulos ou sub-rotinas Facilita a manutenção e modificação Algoritmos Características para um bom algoritmo ○ Testabilidade Deve ser testado em diversas situações Garantir seu correto funcionamento Algoritmos Características para um bom algoritmo ○ Escalabilidade Deve ser capaz de lidar com grande volume de dados Exemplos de Algoritmos Algoritmo: Atravessar a rua Exemplos de Algoritmos Algoritmo: Atravessar a rua ○ Olha para a direita Exemplos de Algoritmos Algoritmo: Atravessar a rua ○ Olha para a direita ○ Olha para a esquerda Exemplos de Algoritmos Algoritmo: Atravessar a rua ○ Olha para a direita ○ Olha para a esquerda Se estiver vindo carro: Exemplos de Algoritmos Algoritmo: Atravessar a rua ○ Olha para a direita ○ Olha para a esquerda Se estiver vindo carro: Não atravesse Exemplos de Algoritmos Algoritmo: Atravessar a rua ○ Olha para a direita ○ Olha para a esquerda Se estiver vindo carro: Não atravesse Se não: Exemplos de Algoritmos Algoritmo: Atravessar a rua ○ Olha para a direita ○ Olha para a esquerda Se estiver vindo carro: Não atravesse Se não: Atravesse Exemplos de Algoritmos Algoritmo: Atravessar a rua ○ Olha para a direita ○ Olha para a esquerda Se estiver vindo carro: Não atravesse Se não: Atravesse Fim-se Exemplos de Algoritmos Algoritmo: Atravessar a rua ○ Olha para a direita ○ Olha para a esquerda Se estiver vindo carro: Não atravesse Se não: Atravesse Fim-se Fim-Algoritmo Exemplos de Algoritmos Algoritmo: Atravessar a rua Algoritmo: Atravessar a rua 2 ○ Olha para a direita ○ Olha para a esquerda ○ Olha para a esquerda ○ Olha para a direita Se estiver vindo carro: Se não estiver vindo Não atravesse carro: Atravesse Se não: Se não: Atravesse Não atravesse Fim-se Fim-se Fim-Algoritmo Fim-Algoritmo Exemplos de Algoritmos Algoritmo: Atravessar a rua Algoritmo: Atravessar a rua 2 ○ Olha para a direita ○ Olha para a esquerda ○ Olha para a esquerda ○ Olha para a direita Se estiver vindo carro: Se não estiver vindo Não atravesse carro: Atravesse Se não: Se não: Atravesse Não atravesse Fim-se Fim-se Fim-Algoritmo Fim-Algoritmo Exemplos de Algoritmos Algoritmo: Atravessar a rua Algoritmo: Atravessar a rua 2 ○ Olha para a direita ○ Atravesse Se estiver vindo carro: ○ Olha para a esquerda Olha para a direita Se estiver vindo carro: Se não: Não atravesse Olha para a direita Se não: Fim-se Atravesse ○ Não atravesse Fim-Algoritmo Fim-se Fim-Algoritmo Linguagem de Programação Conjunto de regras e sintaxes que permitem aos programadores comunicar instruções a um computador. Cada linguagem possui sua própria sintaxe e uso específico. Exemplos de Linguagem de Programação Comandos de saída Permitem que o programa exiba informações ao usuário. O comando de saída no Java é o: ○ System.out.println(“Texto”); public class Saida { public static void main(String[] args) { System.out.println("Olá, Mundo!"); } } Desafio Escreva um programa que exiba seu nome, idade e cidade natal. Comandos de entrada Permitem que o usuário forneça dados para o programa durante a execução. O comando de entrada no Java é o: ○ Scanner scanner = new Scanner(System.in); Os principais métodos são: ○ nextLine(), nextInt(), nextDouble(); public class Entrada { public static void main(String[] args) { Scanner scanner = new Scanner(System. in); System. out.print("Digite seu nome: " ); String nome = scanner.nextLine(); System. out.println("Olá, " + nome + "!"); } } Desafio Escreva um programa que solicite ao usuário seu nome, idade e cidade natal, e exiba essas informações. Variáveis Espaços na memória do computador que armazenam valores. São essenciais para que um programa possa manipular dados de entrada, fazer cálculos, tomar decisões, armazenar resultados e produzir saídas. Essas variáveis podem ser de vários tipos diferentes e podem ter o valor armazenado alterado ao longo da execução do algoritmo. Exemplo: imagine que no nosso algoritmo precisamos armazenar a idade e o salário de um funcionário. Para isso, precisaremos de dois espaços de memória para armazenar esses dois valores. Criamos então uma variável chamada idade e uma outra chamada salario. Variáveis Variáveis Uma regra bastante importante é que para utilizarmos qualquer variável nos nossos algoritmos precisamos criá-la inicialmente. Essa criação é realizada através da declaração das variáveis. Variáveis Tipos de variáveis Java: int: Tipo de dado primitivo usado para representar números inteiros. double: Tipo de dado primitivo usado para representar números de ponto flutuante com alta precisão. char: Tipo de dado primitivo usado para representar um único caractere; boolean: Tipo de dado primitivo usado para representar um valor lógico, que pode ser true ou false. String: Classe que representa uma sequência de caracteres. Declaração de Variáveis Antes de usarmos qualquer variável, precisamos criá-la, para que o compilador indique ao computador que o nosso algoritmo necessita de um espaço de memória para armazenar um valor. “tipo_da_variável nome_da_variavel” - int idade - double salario, porcentagemDeImposto - String nome - char letra - boolean maiorDeIdade - int quantidadeProduto - int numeroDeAlunos Declaração de Variáveis É possível usarmos diversas variáveis nos nossos algoritmos, e elas podem ser de quaisquer tipos disponíveis na linguagem. Não é possível declarar duas variáveis com o mesmo nome (mesmo que sejam de tipos diferentes). Se declararmos, por exemplo, uma variável chamada de idade, não podemos mais declarar nenhuma outra variável com o mesmo nome idade. Se precisarmos ter mais de uma variável para armazenar idade no nosso algoritmo, podemos ter variáveis com nome idade1, idade2, idadeNova, idadeAtual, ou outro nome que facilite a sua identificação no nosso algoritmo. Variáveis Pegue um papel e anote os tipos que você utilizaria na declaração das variáveis para cada um dos exemplos a seguir. Imagine que você foi contratado para criar um algoritmo para armazenar os seguintes dados de um paciente de um hospital, são eles: ○ (a) idade do paciente; ○ (b) nome; ○ (c) altura; ○ (d) peso. Variáveis Se quisermos representar o algoritmo de uma cafeteira que verifique se ela está ligada ou desligada, qual seria o tipo de dado mais apropriado da variável? Variáveis Se quisermos armazenar o valor de um salário, qual tipo de dado utilizamos? Variáveis public class Variaveis { public static void main(String[] args) { int idade = 25; double altura = 1.75; char inicial = 'J'; boolean estudante = true; System.out.println("Idade: " + idade); System.out.println("Altura: " + altura); System.out.println("Inicial: " + inicial); System.out.println("Estudante: " + estudante); } } Atividade 1) Indique para cada dado citado se é mais apropriado considerá-lo como I-int, D-double, C-char ou S-string. Justifique. ( ) O salário de um funcionário ( ) A quantidade de funcionários ( ) O número de latas de refrigerante ( ) O nome de uma pessoa ( ) O preço de um litro de leite ( ) A placa de um automóvel ( ) O sexo de uma pessoa (F ou M) ( ) O número de alunos ( ) O endereço de um site ( ) O saldo bancário ( ) A raiz de uma equação de 2º grau ( ) O autor de um livro ( ) Número de canal de televisão ( ) As alternativas de uma questão (a, b, c, d, e). Atividade 2) Assinale com C os identificadores de variáveis corretos e com I os incorretos de acordo com a linguagem Java. Explique o que está errado nos identificadores incorretos. ( ) valor ( ) km/h ( ) xyz ( ) nomeEmpresa ( ) sala_215 ( ) “nota” ( ) ah! ( ) _b248 ( ) nota*do*aluno ( ) a1b2c3 ( )3x4 ( ) Maria ATRIBUIÇÃO DE VALORES NAS VARIÁVEIS Até o momento vimos que todas as variáveis precisam ser declaradas antes de serem utilizadas. Ao declararmos uma variável em um algoritmo, o compilador indica ao computador que o algoritmo precisa de uma área de memória para armazenar um valor. Porém, a declaração serve apenas para separar a área da memória. Para utilizarmos uma variável no nosso algoritmo, precisamos realizar a operação de atribuição de valor. A atribuição de valor armazena um valor dentro do espaço separado na memória. ATRIBUIÇÃO DE VALORES NAS VARIÁVEIS A atribuição pode ser realizada de quatro formas diferentes. 1. Através de um valor fixado diretamente no algoritmo; 2. Através do valor de outra variável; 3. Através do resultado de uma operação matemática; 4. Através da entrada de dados pelo teclado; Atribuição de valores fixos no código Para atribuirmos um valor fixo a uma variável, basta colocarmos o nome da variável, declarada anteriormente, um único símbolo de igual = e o valor que se deseja atribuir (armazenar). public static void main(String args[]) { int idadePaciente; idadePaciente = 42; System.out.println(idadePaciente); } Atribuição de valores fixos no código public static void main(String args[]) { int idadeAtleta = 25; float pesoAtleta; pesoAtleta = 74.5f; idadeAtleta = 30; System.out.println(idadeAtleta); System.out.println(pesoAtleta); } Atribuição de valores fixos no código No exemplo anterior temos duas maneiras de atribuição fixa. Uma está ocorrendo na mesma linha da declaração da variável idadeAtleta, já a outra ocorre em um outro momento do nosso algoritmo, na linha idadeAtleta = 30. As atribuições podem ocorrer diversas vezes no nosso algoritmo e em qualquer linha. Mas é importante lembrarmos é que a variável só armazena o último valor atribuído, os valores anteriores serão perdidos. Atribuição através do valor de outra variável A atribuição através do valor de outra variável é utilizada quando queremos que uma variável armazene o valor contido em outra variável. Para isso, devemos escrever o nome da variável que receberá o valor seguido do operador de atribuição igual = e o nome da variável que contém o valor desejado. public static void main(String args[]) { double precoAtual, precoAntigo; precoAtual = 10.50; precoAntigo = precoAtual; precoAtual = 11.50; System.out.println(precoAntigo); System.out.println(precoAtual); } Atribuição através do valor de outra variável No exemplo anterior foram criadas duas variáveis: precoAtual e precoAntigo. Para não perder o conteúdo de precoAtual, ele é atribuído ao valor da variável precoAntigo. Em seguida, o valor do precoAtual é atualizado. Assim, temos na variável precoAtual o preço atualizado e, na variável precoAntigo, o preço anteriormente copiado da variável precoAtual. Atribuição através do valor de outra variável Vale ressaltar que a ordem das variáveis na operação de atribuição é importante: ○ precoAntigo = precoAtual é diferente de ○ precoAtual = precoAntigo. Atribuição de uma operação matemática Outra forma de atribuirmos um valor a uma variável é utilizando o resultado de uma operação matemática. Por exemplo, se tivermos o ano de nascimento de uma pessoa, podemos criar uma variável chamada idade para receber automaticamente sua idade. Para tanto, é necessário realizarmos uma operação aritmética - nesse caso, de subtração. O símbolo utilizado para a operação aritmética de subtração é o -. Atribuição de uma operação matemática public static void main(String args[]) { int idade, anoNascimento = 1981, anoAtual = 2024; idade = anoAtual - anoNascimento; System.out.println(idade); } Operadores e Expressões Aritméticas Podemos realizar operações aritméticas nos nossos algoritmos. No exemplo para calcular a idade, dado o ano atual e um ano de nascimento, usamos o operador de subtração - para obter o resultado. Exemplo: Calcular a idade de uma pessoa tendo somente o ano de nascimento public static void main(String args[]) { int idade, anoNascimento = 1981, anoAtual = 2024; idade = anoAtual - anoNascimento; System.out.println(idade); } Operadores e Expressões Aritméticas Operação Descrição Adição: + Soma de dois valores, esses valores podem estar armazenados em variáveis ou não. A ordem dos valores não importa. Subtração: - Realiza a subtração de dois valores, esses valores podem estar armazenados em variáveis ou não. A ordem importa. Multiplicação: * Calcula o produto entre dois valores, a ordem não importa. Divisão: / Retorna o valor da divisão entre dois valores, a ordem importa. Resto: % Retorna o resto de uma divisão, a ordem importa. Parênteses: () Precedência de operadores. Vamos pensar juntos: Crie um algoritmo com duas variáveis. Uma deve ter o valor 20 e a outra o valor 5. Realize as operações de adição, subtração, multiplicação e divisão. Mostre o resultado das operações no console. public static void main(String args[]) { float n1 = 20, n2 = 5, ad, sb, mt, dv; ad = n1 + n2; sb = n1 - n2; mt = n1 * n2; dv = n1 / n2; System.out.println(ad); System.out.println(sb); System.out.println(mt); System.out.println(dv); } Exercícios: Crie um algoritmo com três variáveis num1, num2 e num3 com os respectivos valores 100, 5 e 2. Calcule e apresente a seguinte expressão (num1 + num2) * num3. Exercícios: Crie um algoritmo com os valores das notas da primeira prova e da segunda prova de um aluno e apresente a média aritmética do aluno. Operadores Relacionais Para que seja possível realizarmos uma condição, precisamos comparar dois ou mais elementos. Os operadores relacionais, como o próprio nome diz, são utilizados para relacionar o conteúdo deduas variáveis ou dois valores fixos nos nossos algoritmos. Operadores Relacionais Operação Operador Descrição da operação maior > Verifica se o valor à esquerda é maior que o valor à direita. maior ou igual >= Verifica se o valor à esquerda é maior ou igual que o valor à direita. menor < Verifica se o valor à esquerda é menor que o valor à direita. menor ou igual 3, idade == 25, qtdAlunos > 10, vagas > qtdCarros, previsaoTempo != "chuva", letra != 'x'. Operadores Relacionais Toda expressão relacional terá como resultado os valores verdadeiro ou falso. O valor do resultado é chamado de resultado lógico ou booleano. Operadores Lógicos Em alguns problemas necessitamos realizar duas ou mais comparações em uma mesma condição. Por exemplo, precisamos verificar se uma idade é maior que 18 e, ao mesmo tempo, se também é menor que 25. Repare que temos duas comparações para serem realizadas. Para esse tipo de comparação, utilizaremos um novo tipo de operador, chamado de operador lógico. Vamos pensar juntos: Monte uma expressão lógica para verificar se uma pessoa está apta para realizar a prova da carteira de habilitação para motos. O(A) candidato(a) precisa ter 18 anos e ter assistido a 45 horas de aula teórica e 20 horas de aula prática. Operadores Lógicos Operadores lógicos são utilizados para juntar duas expressões lógicas. Operador (e ou &&) O operador e é utilizado quando necessitamos que as duas entradas sejam verdadeiras para que a saída final também seja verdadeira. Se uma das duas entradas for falsa, a saída também será falsa. Operador (e ou &&) Já que para realizar a prova é necessário que o candidato tenha mais que 18 anos (verdadeiro) e tenha cumprido as 45 horas de aula teórica (também verdadeiro). Imagine que o candidato ainda tem que cumprir 20 horas de aula prática. Como temos três comparações, o algoritmo separará as duas primeiras entradas e a saída dessa comparação será uma das entradas para a próxima entrada. Operador (e ou &&) Veja o passo a passo: ○ Primeiro: o candidato tem mais de 18 e cumpriu as 45 horas de aula teórica. ○ Segundo: o resultado lógico da primeira comparação e o candidato cumpriu as 20 horas práticas. Operador (e ou &&) Vamos simular com os seguintes valores: a) Candidato com 25 anos, cumpriu 46 horas teóricas e cumpriu 15 horas práticas, logo temos os seguintes valores lógicos: verdadeiro, verdadeiro e falso. Primeiro: o candidato tem mais de 18 e cumpriu as 45 horas de aula teórica. verdadeiro e verdadeiro terá saída verdadeiro. Segundo: o resultado lógico da primeira comparação e o candidato cumpriu as 20 horas práticas. verdadeiro e falso terá como saída falso. Operador (e ou &&) b) Candidato com 32 anos, cumpriu 25 horas teóricas e cumpriu 10 horas práticas, logo temos os seguintes valores lógicos: verdadeiro, falso e falso. Primeiro: o candidato tem mais de 18 e cumpriu as 45 horas de aula teórica. verdadeiro e falso terá saída falso. Segundo: o resultado lógico da primeira comparação e o candidato cumpriu as 20 horas práticas. falso e falso terá como saída falso. Operador (e ou &&) c) Candidato com 15 anos, cumpriu 30 horas teóricas e cumpriu 18 horas práticas, logo temos os seguintes valores lógicos: falso , falso e falso. Primeiro: o candidato tem mais de 18 e cumpriu as 45 horas de aula teórica. falso e falso terá saída falso. Segundo: o resultado lógico da primeira comparação e o candidato cumpriu as 20 horas práticas. falso e falso terá como saída falso. Tabela verdade do operador (e ou &&) A B AeB V V V V F F F V F F F F Operador (ou ou ||) No ou, o resultado final só será falso quando as duas entradas forem falso. Portanto, se a condição para tirar a carteira fosse ou em vez de e, teríamos a seguinte situação. Operador (ou ou ||) Vamos simular com os seguintes valores: a) Candidato com 25 anos, cumpriu 46 horas teóricas e cumpriu 15 horas práticas, logo temos os seguintes valores lógicos: verdadeiro , verdadeiro e falso. Primeiro: o candidato tem mais de 18 ou cumpriu as 45 horas de aula teórica. verdadeiro ou verdadeiro terá saída verdadeiro. Segundo: o resultado lógico da primeira comparação ou o candidato cumpriu as 20 horas práticas. verdadeiro ou falso terá como saída verdadeiro. Operador (ou ou ||) b) Candidato com 32 anos, cumpriu 25 horas teóricas e cumpriu 10 horas práticas, logo temos os seguintes valores lógicos: verdadeiro, falso e falso. Primeiro: o candidato tem mais de 18 ou cumpriu as 45 horas de aula teórica. verdadeiro ou falso terá saída verdadeiro. Segundo: o resultado lógico da primeira comparação ou o candidato cumpriu as 20 horas práticas. verdadeiro ou falso terá como saída verdadeiro. Operador (ou ou ||) c) Candidato com 15 anos, cumpriu 30 horas teóricas e cumpriu 18 horas práticas, logo temos os seguintes valores lógicos: falso, falso e falso. Primeiro: o candidato tem mais de 18 ou cumpriu as 45 horas de aula teórica. falso ou falso terá saída falso. Segundo: o resultado lógico da primeira comparação ou o candidato cumpriu as 20 horas práticas. falso ou falso terá como saída falso. Tabela verdade do operador (ou ou ||) A B A ou B V V V V F V F V V F F F Exercícios 1) Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são (V) para verdadeiras ou (F) falsas. a) (A+C) > B ( ) b) B >= (A + 2) ( ) c) C == (B –A) ( ) d) (B + A) B ( ) Exercícios 2) Informe se as expressões são verdadeiras ou falsas, preencha a tabela 1 com os valores que desejar e na tabela 2 escreva o resultado de cada expressão baseado nos valores preenchidos. a) (A > C) AND (C 10 OR (A+B) == (C+D) a) (A>=C) AND (D >= C) b) NAO (A