Programação Computacional Fundamentos Revisão 1

Documentos relacionados
Informática Fundamentos em C++ Revisão 1

AEDI Fundamentos Revisão 1

Informática Conceitos Básicos Revisão 1

CAI Fluxograma Revisão 7

AEDI Introdução Revisão 2

PC Fluxograma Revisão 8

CAI Introdução Revisão 5

Lógica de Programação Lógica, Conceitos; Fluxo de Controle

EXERC EXAME DISCIPLINA: ALG ESTRUTURA DE DADOS I

CAI Fundamentos Revisão 5

Técnicas de Programação

INTRODUÇÃO A LÓGICA DE PROGRAMAÇÃO

Fundamentos de Programação Introdução

Informática Portugol IDE Revisão 1

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Capítulo 1 Conceitos Básicos

CAI - Introdução. André Luís Duarte. exatasfepi.com.br

Oficina de Python Prof. Me. José Carlos Perini

Oficina de Python Prof. Me. José Carlos Perini

Prof. A. G. Silva. 14 de março de Prof. A. G. Silva INE5231 Computação Científica I 14 de março de / 26

Algoritmos Computacionais

Introdução à Lógica de Programação

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

CONCEITOS DE ALGORITMOS

Prof. Jorge Cavalcanti

Conceitos Básicos. Professor: Juliano Lucas Gonçalves.

INTRODUÇÃO A ALGORITMOS

ALGORITMOS AULA 1. Profª Amanda Gondim

Programação Básica de Computadores

A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado..

Algoritmos. Prof. Jonatas Bastos Site:

Portugol. Tiago Alves de Oliveira

Conceitos Básicos de Algoritmos

Introdução aos Algoritmos

Universidade Federal de Goiás Instituto de Informática

- Aula 01, 02, 03 e 04 Apresentação da disciplina.

Programação Computacional C/C++

exatasfepi.com.br Informática C/C++ André Luís Duarte Feliz é o homem que acha sabedoria, e o homem que adquire entendimento; Provérbios 3:13

Linguagem Computacional

Fundamentos de Algoritmos (5175/31)

#Conceituação. Algoritmos. Eliezio Soares

Introdução aos Algoritmos

Ciência da Computação A&P

Lógica de Programação. Capítulo 1. Introdução. Lógica de Programação. Forbellone / Eberspacher. Introdução

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Programação para Games I

Projeto de Algoritmos

Lógica de Programação

I - CONCEITOS INICIAIS

PROGRAMAÇÃO COMPUTACIONAL

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Conceitos básicos de algoritmos

Variável. Expressões. Atribuição. Tipos básicos Declaração. Aritméticas Lógicas. Professor Leandro Augusto Frata Fernandes

Variáveis, Expressões Aritméticas e Entrada e Saída de Dados

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

PORTUGUÊS ESTRUTURADO: INTRODUÇÃO INTRODUÇÃO À PROGRAMAÇÃO PROF. ALEXANDRO DOS SANTOS SILVA

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: ALGORITMOS

ALGORITMO. Professor: RODRIGO GOBBI TIPOS DE DADOS E INSTRUÇÕES PRIMITIVAS

Desenvolvimento de Algoritmos. RAD 2119 Tecnologia de Informação Aplicada a Administração. Essa aula. Lógica e Pensamento Lógico. Lógica.

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof.

Algoritmos. Seqüência finita e ordenada de procedimentos que resolvem um determinado problema. Exemplo: O que preciso fazer para preparar um omelete?

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Introdução à Ciência da Computação

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO

AULA Entrada/Saída, Operadores

Pseudocódigo e Visualg

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Desenvolvimento de Algoritmos. Slides elaborados pela Prof(a). Simone do Rocio Senger de Souza ICMC/USP

Algoritmos I Aula 2 Lógica de Programação

Introdução à Programação de Computadores Fabricação Mecânica

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 06. Algoritmos e Programação. Informática II. q Noções de lógica

Noções de algoritmos - Aula 1

UNIDADE 1 CONCEITOS BÁSICOS EM ALGORITMOS

Estrutura de um computador digital. Gustavo Queiroz Fernandes

Algoritmos - 1. Alexandre Diehl. Departamento de Física - UFPel

Lógica de Programação

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

Algoritmo e Programação. Capítulo 2 Tópicos Preliminares

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Algoritmos e Programação. Noções de Lógica e Algoritmos Tarcio Carvalho

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Lógica de Programação I

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Pseudocódigo e visualg

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Introdução a Programação. Curso: Sistemas de Informação Programação I José R. Merlin

Introdução a algoritmos. Prof.: Jesus

Conceitos Básicos de Informática

Exercícios Repetição

Funcionamento do computador. Conceito e definição de algoritmos. Prof. Alex Camargo

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Fluxogramas e variáveis

Ciência da Computação. Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano Cansian

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos Prof. Renato Pimentel. Computação

Transcrição:

exatasfepi.com.br Programação Computacional Fundamentos Revisão 1 André Luís Duarte Feliz é o homem que acha sabedoria, e o homem que adquire entendimento; Provérbios 3:13

Programação Computacional Breve histórico da informática Hardware CPU Memórias Periféricos Software Conceitos de informática Lógica de programação Algoritmos 2

Histórico Informática 1956 o cientista da computação alemão Karl Put publicou um artigo intitulado Informática: processamento automático de informação Informação + automática Lida com o tratamento racional da informação por meios automáticos e eletrônicos Computador: máquina que possibilita a existência da informática 3

Histórico Ábaco é considerado o primeiro computador da história pois auxilia a realização rápida de cálculos matemáticos 4

Histórico 5

Histórico Arquitetura de von Neumann Codificar as instruções de forma que pudessem ficar armazenadas (von Neumann sugeriu codificar com zeros e uns) Armazenar instruções e informações na memória Quando processar uma instrução, buscá-la na memória 6

Histórico Arquitetura Von Neumann 7

Conceitos de hardware O que é um computador? O computador é uma máquina que processa dados eletronicamente gerando informações a partir das instruções programadas para as mais diversas tarefas O computador é uma máquina burra! 8

Funcionamento do computador Entrada de dados: momento em que o computador recebe dados a serem processados Processamento: momento em que o computador usa as instruções programadas para transformar os dados em informação Saída de dados: disponibilização da informação 9

Entrada de dados Geralmente os dados de entradas são gerados por dispositivos de entrada como: Teclado Mouse Câmera Scanner Dispositivos de toque 10

Processamento O processamento é realizado pelo computador através dos elementos físicos e lógicos do computador Físico CPU, memórias, placas, etc Lógico Bios, sistema operacional, antivírus, software de rede, etc 11

Hardware CPU Cérebro do computador Excuta as instruções presentes nos programas 12

Hardware CPU Multicore Core Two Duo => possui 2 núcleos i3 => 2 núcleos físicos e 4 lógicos I5 => 4 núcleos físicos i7 => 4 núcleos físicos e 4 lógicos AMD Phenom II X2, AMD Athlom X4, AMD Turion II, AMD Phenom II X6 13

Hardware Memória Cache Está dentro da CPU Acesso muito rápido Processador mantém dados e instruções que são acessados constantemente

Hardware Memória RAM Random Access Memory Memória primária do computador Acesso rápido Volátil 15

Hardware Memória secundária (HD) Podem armazenar grande quantidade de dados Acesso é muito lento Geralmente não necessitam de operações de montagem

Hardware Memória terciárias Podem armazenar grande quantidade de dados Acesso rápido Geralmente necessitam de operações de montagem 17

Hardware 18

Hardware Dispositivos periféricos Saída Fornecem um interface de saída entre a CPU e o usuário Entrada Fornecem uma interface de entrada entre a CPU e o usuário 19

Hardware Dispositivos periféricos de saída 20

Hardware Dispositivos periféricos de entrada 21

Hardware Dispositivos periféricos de entrada e saída 22

Software É a parte lógica (solução) que determina como o computador irá agir na transformação dos dados em informação 23

Software O software é produzido a partir de um programa de computador Geralmente os termos software e programa de computador se confundem na literatura 24

Software Programa: é um conjunto de instruções que deve ser executado pelo computador a fim de solucionar um problema 25

Software Programa Alto nível Compilados: programas gerados em código de máquina (C/C++, Pascal, Fortran) Interpretados: programas gerados em (Java, C#, Python) Baixo nível Linguagem de máquina 26

Software Software proprietário: software que precisa ser comprado para se utilizado Possui direitos de uso e cópia de propriedade intelectual (Copyright) 27

Software Software livre: é um movimento que defende a liberdade de Utilizar Copiar Distribuir Estudar Modificar 28

Software Software gratuito (freeware): software que pode ser usado sem custo da forma como foi concebido pelo autor Não possui restrições Não possui limitações Possui direitos de uso e cópia de propriedade intelectual (Copyright) 29

Software Software shareware: software que pode ser usado sem custo da forma como foi concebido pelo autor Possui restrições Possui limitações Possui direitos de uso e cópia de propriedade intelectual (Copyright) 30

Software Software adware: software que pode ser usado sem custo da forma como foi concebido pelo autor Pode possuir restrições Pode possuir limitações Possui direitos de uso e cópia de propriedade intelectual (Copyright) Possui propagandas que são exibidas em certas ocasiões ao usuário 31

Software Software open source: nasceu para cobrir lacunas deixadas pelo software livre Não ignora a liberdade do software livre mas tenta ser mais flexível 32

Software Quesitos para um software open source Distribuição livre Acesso ao código fonte Permissão para derivar trabalhos Integridade do autor do código fonte Não discriminação contra pessoas ou grupos 33

Software Quesitos para um software open source Não discriminação contra áreas de atuação Distribuição da licença Licença não específica a um produto Licença não restritiva a outros programas Licença neutra em relação à tecnologia 34

Introdução a Lógica Objetivos Noções de lógica Algoritmização da lógica 35

Objetivos Porque aprender a programar? 36

Objetivos Porque aprender a programar? Ajuda a melhorar o raciocínio Permite construirmos uma sequência coerente de ideias Permite ordenarmos nossas ações Nos faz fluentes na linguagem da tecnologia Auxilia na resolução de problemas 37

Objetivos Desenvolver a lógica de programação, suas técnicas e regras Capacitar o aluno a criar algoritmos computacionais que serão utilizados na automatização da resolução de problemas usando computadores 38

O que é lógica? Ciência das formas do pensamento Como filosofia procura saber porque pensamos assim e não de outro jeito Como arte ou técnica, nos ensina a usar corretamente as leis do pensamento Estuda a correção do raciocínio Como seqüênciar nosso raciocínio da melhor forma, a fim de alcançar um determinado objetivo 39

Lógica Um dos objetivos da lógica é o estudo de técnicas de formalização, dedução e análise que permitam verificar a validade de argumentos Também objetiva a criação de uma representação mais formal, que se contrapõe a linguagem natural suscetível a argumentações informais 40

Exemplos a) Todo mamífero é um animal 41

Exemplos a) Todo mamífero é um animal Argumento 1 Argumento 2 42

Exemplos a) Todo mamífero é um animal Todo cavalo é um mamífero Argumento 3 Argumento 4 43

Exemplos a) Todo mamífero é um animal Todo cavalo é um mamífero 44

Exemplos a) Todo mamífero é um animal Todo cavalo é um mamífero Logo, todo cavalo é um animal 45

Exemplos b) Kaiton é um país do planeta Stix Todos os Xinpins são de Kation 46

Exemplos b) Kaiton é um país do planeta Stix Todos os Xinpins são de Kation Logo, todos os Xinpins são Stixianos 47

Exemplos c) A gaveta está fechada A caneta está dentro da gaveta d) Anacleto é mais velho que Felisberto Felisberto é mais velho que Marinalvo 48

Exemplos c) A gaveta está fechada A caneta está dentro da gaveta Para ter acesso à caneta precisamos abrir a gaveta d) Anacleto é mais velho que Felisberto Felisberto é mais velho que Marinalvo Portanto, Anacleto é mais velho que Marinalvo 49

Existe lógica no dia-a-dia? Existe lógica sempre que pensamos Falar, escrever e agir são concretizações de pensamentos Para realizar estas tarefas de maneira correta precisamos colocar ordem no pensamento 50

O que é lógica de programação? É o uso correto das leis do pensamento, da ordem da razão e de processos de raciocínio e simbolização formais na programação de computadores ou dispositivos programáveis 51

O que é lógica de programação? Objetivando o desenvolvimento de técnicas racionais que cooperem para a produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que se deseja programar 52

Algoritimização da lógica O que é Para que serve Como é feita 53

O que é algoritmo? Pode ser definido como uma seqüência de passos que visam atingir um objetivo bem definido Esta seqüência de passos deve possuir uma ordem Precisa haver ações claras e precisas, que a partir de um estado inicial, após um período de tempo finito, produzem um resultado final previsível e bem definido 54

Exemplo Receita de bolo Manual de utilização Roteiro de atividade 55

Para que serve o algoritmo? O objetivo principal é o de representar da forma mais fiel possível o raciocínio envolvido na lógica Podemos focalizar nossa atenção, naquilo que é importante, abstraindo assim uma série de detalhes computacionais 56

Descrição narrativa Forma de algoritmo mais simples e intuitiva que existe, pois está baseada na linguagem humana de alto nível É muito imprecisa pois usa palavras que podem ter mais de um sentido Muitos símbolos para descrever poucas ações 57

Exemplo 1 Trocar uma lâmpada 58

Exemplo 1 Trocar uma lâmpada Pegue uma escada Retire a lâmpada queimada Pegue a lâmpada nova Instale a lâmpada nova 59

Exemplo 2 Trocar uma lâmpada (melhorado) Pegue uma escada Posicione a escada no local onde está a lâmpada Suba na escada Retire a lâmpada queimada rodando ela no sentido anti-horário Desça da escada Pegue a lâmpada nova Suba na escada Instale a lâmpada nova rodando ela no sentido horário Desça da escada Guarde a escada Descarte a lâmpada queimada 60

Exercício de fixação Crie um algoritmo usando descrição narrativa para: Somar dois valores escolhidos por uma pessoa e apresentar o resultado Dividir dois valores escolhidos por uma pessoa e apresentar o resultado Verificar se um aluno foi aprovado em uma disciplina Trocar o pneu furado de um carro 61

Representando um algoritmo Como algoritmo é uma linha de raciocínio, pode ser representado de diversas formas (textual ou gráfica) Formas gráficas são mais fiéis ao raciocínio original substituindo um grande número de palavras por símbolos 62

Chapin 63

Fluxograma Inicio Ir para o primeiro soquete F Soquetes testados < 10 V Acionar interruptor Lâmpada não acendeu F V Pegar uma escada Buscar lâmpada nova Acionar interruptor Subir na escada Retirar a lâmpada queimada Colocar lâmpada nova Lâmpada não acendeu F V Retirar a lâmpada queimada Colocar lâmpada nova Ir para o próximo soquete Fim 64

Português Estruturado 65

Os tipos de algoritmos que dominam nosso mundo Busca do Google Feed de noticias do Facebook Combinação de parceiros ideais em sites de relacionamentos Coleta, interpretação e encriptação de dados da NSA 66

Os tipos de algoritmos que dominam nosso mundo Você também pode gostar de... Negociação de ações em alta frequência CRUSH da IBM - Prevendo crimes 67

Codificação Uma vez concebida uma solução algorítmica para um problema, esta pode ser traduzida para qualquer linguagem de programação O processo de transformação é normalmente denominado codificação 68

Algoritmo O algoritmo fixa um padrão de comportamento a ser seguido, uma norma de execução a ser trilhada, garantindo que, sempre que executado, sob as mesmas condições, irá produzir o mesmo resultado final 69

Algoritmo A sequencialização é a convenção com o objetivo de reger o fluxo de execução do algoritmo, determinando qual ação será executada primeiro e qual ação vem a seguir Há muitas formas de resolver um problema, afinal, cada indivíduo possui uma heurística própria Para um problema podemos ter várias soluções diferentes e corretas 70

O bom senso e a prática de lógica de programação é que indicarão qual solução é mais adequada, que com menos esforço e maior objetividade produz o resultado almejado. 71

Conceitos em Programação Técnicas de algoritmos Descrição narrativa Fluxograma Programação em blocos 72

Descrição narrativa A descrição narrativa será usada para dar uma direção geral de como o programa deverá funcionar O fluxograma será usado para descrever em detalhes como certas ações serão implementadas 73

Descrição narrativa A descrição narrativa será usada para dar uma direção geral de como o programa deverá funcionar Ela funciona como um rascunho do roteiros do que queremos que o algoritmo faça Possibilita identificarmos a entrada processamento saída 74

Descrição narrativa Crie um algoritmo que permita ao usuário informar dois números e seu algoritmo exiba o seu dobro e sua metade 75

Descrição narrativa Crie um algoritmo que permita ao usuário informar um número e seu algoritmo exiba o seu dobro 1. Solicitar um número 2. Armazenar o número na memória 3. Calcular o dobro do número armazenado 4. Armazenar o resultado na memória 5. Exibir o resultado 76

Descrição narrativa Após criado o algoritmo usando a descrição narrativa, o fluxograma pode ser construído com muito mais facilidade, principalmente em problemas muito complexos 77

Conceitos em Programação Técnicas de algoritmos Descrição narrativa Fluxograma Programação em blocos 78

Fluxograma Um tipo de diagrama que representa de forma esquemática um processo Também é chamado de diagrama de bloco ou diagrama de fluxo Por ter poucos símbolos básicos, é uma das formas de algoritmo mais simples de ser criada 79

Fluxograma Possui sintaxe e semântica bem definidas Sintaxe: está relacionada ao uso correto dos símbolos Semântica: está relacionada ao significado de cada símbolo empregado Cada ação deve ser construída de forma clara e sem ambiguidades 80

Formas básicas As formas básicas usadas em um fluxograma são: 81

Operadores Aritméticos: +, -, *, /, % (resto), sqrt, pow Exemplos: 1+7, 3 % 2, 12-4, 5/3, sqrt(25), pow(5,2) Relacionais: >, <, =, >=, <=, <> Exemplos: 3>2, 5<>50, 11 <= 4 Lógicos: and, or, not Exemplos: 23 >= 14 and not(1 <> 5) Operador de atribuição: 82

Operadores no Portugol IDE Aritméticos: +, -, *, /, %, raiz, ^ Exemplos: 1+7, 3 % 2, 12-4, 5/3, 5^2, raiz(5) Relacionais: >, <, =, >=, <=, =/= Exemplos: 3>2, 5=/=50, 11 <= 4 Lógicos: E, OU, NAO Exemplos: 23 >= 14 E NAO(1 <> 5) Operador de atribuição: 83

Estrutura Sequencial Uma execução sequencial, indica que o fluxo de execução das ações, ocorrerá de forma linear, de cima para baixo, da esquerda para a direita Indica também que o fluxo não sofrerá alteração na sequencia de execução das ações O fluxo de execução visitará todos os componentes 84

Exemplos 85

Inicio ou término de fluxo Não importa a complexidade ou o tamanho de um fluxograma, mas todo fluxograma deve ter um único inicio e fim O símbolo usado é o mesmo, o que os diferencia semanticamente é a palavra Inicio e Fim adicionada à forma 86

Exemplo 87

Direção de fluxo Durante a execução do fluxograma precisamos saber de forma clara qual a próxima instrução deverá ser executada A seta é usada para mostrar a direção que o fluxo de execução deve tomar para a próxima instrução a ser executada 88

Exemplo 89

Saída de dados Mensagens são enviadas para o dispositivo de saída padrão monitor 90

Saída de dados Digite sua idade: 91

Saída de dados Digite sua idade: 18 92

Saída de dados Digite sua idade: 18 Você já pode votar! 93

Saída de dados Normalmente enviamos mensagens para informar algo ao usuário, por exemplo: Alguma ação a ser realizada Avisando sobre algo que ocorreu no sistema Exibindo resultado de processamento Etc 94

Exibição de mensagem O componente de exibição é um retângulo com o canto superior esquerdo cortado O componente de exibição pode ser usado tanto para exibir dados constantes como caracteres ( a, Dia 09/08, 33 ) ou números (10, 7.45, -2) como variáveis (idade, data_nascimento, salario, nome) 95

Tipos primitivos Tipos primitivos são os tipos usados para representar os dados Podem ser: Inteiro Real Caractere Lógico 96

Exemplos Inteiro..., -189,..., -88,..., -1, 0, 1,..., 34, 896,... Real..., -67.3,..., -54.0,..., -0.345, 0,..., 1.675,... Caractere 1, a, +, etc. Lógico (verdadeiro, falso), (aberto, fechado), (ligado, desligado) 97

Expressão aritmética Uma expressão é considerada aritmética quando temos somente operadores aritméticos, constantes e variáveis numéricas envolvidas nela O resultado de uma expressão aritmética é sempre um número e depende dos tipos básicos envolvidos 98

Operadores aritméticos São os operadores usados para realizar as operações básicas aritméticas da matemática: + - Adição - - Subtração * - Multiplicação / Divisão (envolvendo real) ^ - Potenciação raiz() - Radiciação % - Resto da divisão / - Quociente da divisão (entre inteiros) 99

Expressão relacional Uma expressão é considerada relacional quando temos a presença de operadores relacionais envolvidos na expressão O resultado de uma expressão relacional é sempre um valor lógico verdadeiro (V) ou falso (F) 100

Operadores relacionais São os operadores usados para relacionar valores entre si: = igual a (2 = 3.44, a = 7, x = y) > maior que (8 > 10, x > 7, a > b) < menor que (12.77 < 2, y < 123, n < m) >= maior ou igual a (4,5 >= 2.1, 67 >= z, a >= x) <= menor ou igual a (0 <= -3.5, u <= -2.4, l <= k) =/= diferente de (8 =/= 8, a =/= b, -x =/= 9.6) 101

Expressão lógica Uma expressão é considerada lógica quando temos a presença de operadores lógicos Negação: não (not)(,~) Conjunção: e (and)( ) Disjunção: or (ou)( ) O resultado de uma expressão lógica é sempre um valor lógico verdadeiro (V) ou falso (F) 102

Negação A negação de um valor lógico é o valor contrário A operação de negação é uma operação unária (aplicada sobre um operando) Exemplo não(verdadeiro) = falso não(falso) = verdadeiro 103

Conjunção A conjunção é verdadeira se e somente se os operandos são verdadeiros A operação de conjunção é uma operação binária (aplicada sobre dois operandos) Exemplo verdadeiro e verdadeiro = verdadeiro verdadeiro e falso = falso falso e falso = falso 104

Disjunção A disjunção é falsa se, e somente se ambos os operandos forem falsos A operação de disjunção é uma operação binária (aplicada sobre dois operandos) Exemplo verdadeiro ou verdadeiro = verdadeiro verdadeiro ou falso = verdadeiro falso ou falso = falso 105

Tabela verdade Tabela verdade é um resumo das combinações possíveis para operações lógicas básicas OP VL RS VL OP VL RS VL OP VL RS NÃO V F V E V V V OU V V NÃO F V V E F F V OU F V F E V F F OU V V F E F F F OU F F 106

Expressões compostas As expressões aritméticas, relacionais e lógicas podem ser combinadas entre si para formarem expressões mais complexas Para calcular expressões complexas devemos definir uma regra de precedência de operações 107

Precedência entre expressões Parênteses mais interno Expressões aritméticas Expressões relacionais Expressões lógicas 108

Precedência entre operadores aritméticos Parênteses mais interno ^ raiz * / % + - 109

Precedência entre operadores relacionais Operadores relacionais não possuem precedência uns sobre os outros Estes são resolvidos da esquerda para a direita na medida em que aparecem na expressão Os parênteses mais interno tem precedência sobre qualquer operador relacional 110

Precedência entre operadores lógicos Parênteses mais interno não e ou 111

Exercícios de fixação Calcule o resultados das expressões dados: x = 5, y = -1 e a = F 2 * x y + 3 / (x + (y 1)) 2 + y < x % 2 =/= raiz(16) / y ^ 2 a e (15 / x >= 3) ou (17 % x) * y x =/= y ou não(a) e a ou não(a) não(x + y =/= 5-1) e a 112

Exercícios de fixação Calcule o resultados das expressões dados: x = 2.5, y = -1 e a = V 2 * x (y / 2) = - 4.5 3 > x * y e não(a) a e não(8 / -2 <= -(y + 10 / (x 0.5))) não(raiz(x * 40-9) =/= y^2 * 10) e a ou F não(a) e F ou (a e não(a)) 113

Variável Podemos considerar a memória RAM como uma matriz que armazena informações em suas posições (células) Cada posição da memória pode ser acessada através de seu endereço Logo se queremos saber qual o valor do dado armazenado na posição 0x0DFE devemos ler essa posição 114

Variável 00 01 02... 0A 0B 0C 0D... FA FB FC FD FE FF 01 A 3 25 26 27 28 0 0 0 02 4.5 0 0... 0 0A D N 0B -21 0C F... 1 4.4 FD 1 1 BA FF 43 FE 1 1-10 EA 0A 87 FF 1 1 1 5.8 10 00 115

Variável Sistema manipulam de forma mais rápida números e endereços Pessoas manipulam de forma mais fácil nomes e palavras Imagine ter que guardar onde você armazenou o valor 12 na memória para depois usá-lo? 116

Variável Por isso podemos relacionar à uma posição de memória um nome Suponha que á posição 0x0DFE foi dado o nome idade, logo, para saber o valor armazenado em 0x0DFE basta saber o que está armazenado na posição idade 117

Variável 00 01... 0D... FA FF... A 26 27 28 0 FD 1 43 idade FE 1-10 87 FF 1 5.8 00 118

Formação de identificadores Já que podemos dar nomes para posições de memórias constantes e variáveis, quais nomes são válidos? As regras para formação de identificadores são: Devem começar com uma letra Podem ser seguidos por outras letras, números ou o caractere underline (_) Não devem possui caracteres especiais Não podem ser nomes reservados como pot, rad, div, mod, escreva, leia, etc 119

Diagrama de sintaxe Exemplos: Idade, N1, x, salario_bruto, Media_1, Raiz 120

Exercícios de fixação Dado os seguintes identificadores, assinale válido ou inválido para cada um Andre pot André pot_2 X1 div_a 1X N_#1 _Num1 B22_2 salário_bruto contato@fepi 121

Dica Sempre que possível use nomes nos identificadores que expliquem a sua função dentro do programa Assim, por exemplo, para criar um algoritmo que calcule as raízes da equação de segundo grau qual conjunto de identificadores seria melhor e porque? x, y, z, w, k, j a, b, c, delta, x1, x2 num_1, num_2, num_3, num_4, num_5 num_6 122

Exibição de variáveis Toda palavra sem aspas é considerada pelo comando de exibição uma variável Quando o comando encontra um palavra sem aspas ele procura na memória uma posição que possua o nome passado, lê seu valor e exibe este conteúdo no monitor 123

Exemplo Exibe texto e variável Exibe somente texto Exibe somente variável 124

Entrada de dados manual A entrada de dados manual é representado pelo paralelogramo Permite que dados informados pelo usuário através do dispositivo do entrada padrão, teclado, seja armazenado em uma região na memória para ser processado O nome da variável passada ao comando de entrada de dados é usado para decidir a região que deve armazenar o valor digitado 125

Exemplo 126

Processamento Durante a execução do fluxo devemos processar os dados a fim de obter informações desejadas O processamento é representado pelo retângulo e serve para realizar cálculos aritméticos na maioria da vezes 127

Processamento Podemos usar um retângulo para cada expressão aritmética ou agrupar várias expressões em um único símbolo de processamento colocando uma expressão por linha 128

Exemplo 129

Processamento O processamento possui um único caminho de entrada e um único caminho de saída O processamento pode calcular expressões relacionais e/ou lógicas mas não pode fornecer caminhos para seguir um fluxo condicional 130

Exemplo 131

Exercícios de fixação Crie um fluxograma que dado dois números exiba: A soma A subtração A multiplicação A divisão A média aritmética simples 132

Exercícios de fixação Crie um fluxograma que calcule a soma de três números digitados pelos usuário Crie um fluxograma que permita ao usuário digitar quatro valores e exiba a média entre eles Crie um fluxograma que permita ao usuário digitar seu ano de nascimento e seja exibida a sua idade aproximada 133

Exercícios de fixação Crie um fluxograma que exiba as raízes da equação do segundo grau ax 2 + bx + c dados: a = 2, b = -5 e c = 2 a = 1, b = 8 e c = 3 a = -3, b = 5 e c = -8 134

Exercícios de fixação Dado os seguintes fluxogramas, mostre o que será exibido no dispositivo de saída 135

Exercícios de fixação Dado os seguintes fluxogramas, mostre o que será exibido no dispositivo de saída 136

Exercícios de fixação Crie um fluxograma que exiba a soma dos: 3 primeiros pares positivos 7 primeiros números inteiros 10 primeiros múltiplos de 3 11 números primos a partir do 10 137

Decisão A decisão é representada pelo losango e após avaliar uma expressão relacional ou lógica segue o fluxo em uma de duas opções Fluxo na direção do resultado verdadeiro Fluxo na direção do resultado falso 138

Exemplo 139

Exercício de fixação Crie um fluxograma que se um número é positivo ou negativo Crie um fluxograma que exiba se um determinado número é par ou impar Crie um fluxograma que exiba se um número é múltiplo de 5 140

Exercício de fixação Crie um fluxograma que exiba o maior valor entre 3 valores dados Crie um fluxograma que exiba o maior e o menor valor entre 3 valores dados Crie um fluxograma que exiba se um número está ou não nos intervalos: ]0,10], [0,10], [0,10[ 141

Estrutura de Repetição A estrutura de repetição usa o losango para verificar uma expressão relacional e, de acordo com o resultado da análise, realimenta ou não o fluxo de execução em um ponto já visitado Dependendo da posição do teste podemos classificar a estrutura como: Repetição com teste no início Repetição com teste no final 142

Exemplo 143

Teste de mesa Após desenvolver um algoritmo ele deverá ser testado, este teste é chamado de TESTE DE MESA Consiste na criação de uma tabela com uma coluna para cada variável presente no algoritmo As linhas são atualizadas na medida em que o fluxo do algoritmo é percorrido e altera o conteúdo de uma variável 144

Teste de mesa Execute o teste de mesa no fluxograma e apresente qual será a saída 145

Teste de mesa cont 0 1 2 3 4 5 6 Saída: 0 1 2 3 4 5 146

Exercício cont soma Saída:? 147

Exercício cont soma 0 0 1 1 2 3 3 6 4 10 5 14 6 19 Saída: 0, 1, 2, 3, 4, 5, soma = 19 148

Exercício Execute o teste de mesa no fluxograma e apresente qual será a saída 149

Exercício de fixação Execute o teste de mesa no seguinte fluxograma com os valores: 8,5,2 4,1,2 3,7,1 5,1,7 4,7,9 Exiba as saídas para cada grupo de entradas Indique onde está o laço de repetição 150

Exercício de fixação 151

Exercício de Fixação Crie um fluxograma que: Permita ao usuário entrar com um valor inteiro e seja exibido para ele a tabuada do número Permita ao usuário informar um valor inteiro e seja exibido todos os números entre 0 e o número informado Permita ao usuário informar um valor inteiro e seja exibido a soma, a subtração e a multiplicação de todos os inteiros entre 0 e o número informado 152

Exercício de Fixação Crie um fluxograma que: Permita ao usuário informar um valor inteiro e seja exibido todos os números pares entre 0 e o número informado Permita ao usuário informar um valor inteiro e seja exibido todos os primos entre 0 e o número informado Permita ao usuário informar dois valores inteiros e seja exibida a soma de todos os inteiros no intervalo informado 153

Estrutura de Repetição Podemos classificar as estruturas de repetição em fluxograma, em dois grupos que são: Estrutura de repetição com teste no início Estrutura de repetição com teste no final 154

Repetição com Teste no Inicio Este tipo de estrutura executa o teste lógico antes de entrar no laço de repetição Dependendo da expressão usada no teste lógico, pode acontecer que o loop não seja executado nenhuma vez 155

Exemplo 156

Repetição com Teste no Final Este tipo de estrutura executa o teste lógico após entrar no laço de repetição Independente da expressão usada no teste lógico, o loop será executado pelo menos um vez 157

Exemplo 158

Observações Note que para qualquer estrutura de repetição, 3 elementos são importantes: Inicialização Condição de parada Incremento / decremento ou atualização Obs.: estes elementos devem estar relacionados à variável que controla o loop 159

Observações Inicialização Condição de parada Incremento, decremento ou atualização 160

Exercícios de fixação Identifique os três elementos de uma estrutura de repetição no fluxograma: 161

Exercício de Fixação Execute o teste de mesa nos fluxos com cont valendo: 5 10 15 e exiba a saída e identifique os elementos de loop. 162

Exercícios de Fixação Crie um fluxograma que: Permita ao usuário informar vários valores e seja exibido o maior e o menor valor Permita ao usuário informar vários valores e seja exibida quantidade de valores digitados Permita ao usuário informar vários valores e seja exibida a somatória dos valores digitados Permita ao usuário informar vários valores e seja exibida a média dos valores digitados Permita ao usuário informar vários valores e seja exibido o maior par 163

Exercícios de Fixação Crie um fluxograma que: Permita ao usuário informar vários valores e seja exibido o maior impar Permita ao usuário informar vários valores e seja exibido o maior primo digitado Permita ao usuário informar vários valores e seja exibido o maior par, o maior impar e o maior primo digitado 164

Exercícios de Fixação Crie um fluxograma que resolva as seguintes questões: Exiba a soma de 4 números digitados pelo usuário; Dada a equação 5 x x 3 x + 1, permita ao usuário digitar o valor de x e retorne o resultado Calcule a média aritmética entre 4 números 165