Baixe o app para aproveitar ainda mais
Prévia do material em texto
ENGJ20 - Programação Aplicada Fabíola Andrade LINGUAGEM DE PROGRAMAÇÃO PASSOS BÁSICOS PARA PROGRAMAÇÃO ProcessamentoEntrada Saída Dispositivo de Entrada Dispositivo de Saída Memória UCP LINGUAGEM DE PROGRAMAÇÃO PASSOS BÁSICOS PARA PROGRAMAÇÃO Exemplo 1 – Exibir a média de dois números ProcessamentoEntrada Saída Dispositivo de Entrada Dispositivo de Saída Memória UCP 6 , 8 (6 + 8) / 2 7 LINGUAGEM DE PROGRAMAÇÃO PASSOS BÁSICOS PARA PROGRAMAÇÃO ProcessamentoEntrada Saída Dispositivo de Entrada Dispositivo de Saída Memória UCP Ana, 5, 3 Se (5+3)/2 >= 5 “Aprovado” Senão “Reprovado” Ana, “Reprovado” Exemplo 2 – Exibir se um aluno está aprovado ou reprovado LINGUAGEM DE PROGRAMAÇÃO PASSOS BÁSICOS PARA PROGRAMAÇÃO ProcessamentoEntrada Saída Dispositivo de Entrada Dispositivo de Saída Memória UCP -5 Se (-5) > 0 “Positivo” Se (-5) < 0 “Negativo” Senão “Zero” “Negativo” Exemplo 3 – Exibir se um número é positivo, negativo ou zero LINGUAGEM DE PROGRAMAÇÃO LINGUAGEM DE PROGRAMAÇÃO O QUE É LINGUAGEM??? A linguagem pode ser definida como sendo um sistema de comunicação, permite-nos abstrair e comunicar conceitos. O termo linguagem designa um sistema organizado de símbolos, complexo, extenso e com propriedades particulares que desempenha uma função de codificação, estruturação e consolidação dos dados sensoriais, transmitindo-lhe um determinado sentido ou significado e permitindo ao homem comunicar as suas experiências e transmitir os seus saberes - é, portanto, um sistema de troca de informações. Tipos: verbal e não-verbal. CONCEITO LINGUAGEM DE PROGRAMAÇÃO A linguagem de programação de computadores é uma linguagem formal que consiste na criação de códigos e regras (sintáticas e semânticas) específicas que processam instruções para computadores. Permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. FERRAMENTA DE COMUNICAÇÃO LINGUAGEM DE PROGRAMAÇÃO PROBLEMA LINGUAGEM DE PROGRAMAÇÃO Ferramenta de comunicação entre o programador que visa resolver um problema e o computador que irá ajudá-lo a resolver. EXEMPLO LINGUAGEM DE PROGRAMAÇÃO PROBLEMA LINGUAGEM DE PROGRAMAÇÃO Declaração do IRPF2016 IRPF2016 JAVA Windows Computador Baixo nívelAlto nível LINGUAGEM DE PROGRAMAÇÃO TIPOS DE LINGUAGEM DE PROGRAMAÇÃO 1 – Linguagem de Máquina • Possui uma notação binária (zeros e uns) que torna a programação trabalhosa, cansativa e fortemente sujeita a erros. 2 – Linguagem Assembly • Surgiu para minimizar as dificuldades da programação binária. • Códigos de operação e endereços binários foram substituídos por mnemônicos. 3 – Linguagem de Alto Nível • Aproxima-se das linguagens utilizadas por humanos para expressar problemas. • Cada declaração numa linguagem de alto nível equivale a várias declarações numa linguagem de baixo nível. B a ix o N ív e l A lt o N ív e l LINGUAGEM DE PROGRAMAÇÃO TIPOS DE LINGUAGEM DE PROGRAMAÇÃO 1 - Totalmente codificadas em binário (0 e 1). 2 - Usa instruções simbólicas para representar 0 e 1. 3 - Voltadas para facilitar o raciocínio humano. Linguagem Assembly ( Mnem ô nica ) LOAD R1, val1 LOAD R2, val2 ADD R1, R2 STORE R1, val2 Linguagem de M á quina 0010 0001 1110 0010 0010 1111 0001 0001 0010 0011 0001 1111 Linguagem de Alto N í vel val2 = val1+val2 Baixo Nível Alto Nível (1) (2) (3) LINGUAGEM DE PROGRAMAÇÃO TIPOS DE LINGUAGEM DE PROGRAMAÇÃO VANTAGENS DESVANTAGENS BAIXO NÍVEL Programas são processados mais rapidamente. Ocupam menos espaço na memória. Programas têm pouca portabilidade (são específicos para um tipo de processador) e não são estruturados. ALTO NÍVEL Programas têm maior portabilidade e as linguagens são mais estruturadas (facilitam a programação). Programas exigem mais tempo de processamento (tradução para linguagem de máquina gera código genérico e complexo, + Memória). LINGUAGEM DE PROGRAMAÇÃO LINGUAGEM DE MÁQUINA (binária) Bit = digito binário Pode assumir dos valores: 0 Diferença de potencial baixo Ausência de energia Campo magnético negativo Buraco 1 Diferença de potencial alto Presença de energia Campo magnético positrivo Sem buraco LINGUAGEM DE PROGRAMAÇÃO LINGUAGEM DE MÁQUINA (binária) Acesa Apagada 4 estados Um Bit 2 estados • Acesa • Apagada Dois Bits LINGUAGEM DE PROGRAMAÇÃO LINGUAGEM DE MÁQUINA (binária) 1 bit 2bits 3 bits 4 bits 0 1 00 01 10 11 000 001 010 011 100 101 110 111 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1 BYTE 28= 256 Estados diferentes n bites representam 2n estados 1 byte = 8 bits Unidade fundamental de informação LINGUAGEM DE PROGRAMAÇÃO REPRESENTAÇÃO FÍSICA DOS DADOS Memória – Níveis de tensão • Maior tensão corresponde a 1 • Menor tensão corresponde a 0 Disco – Inversão do campo magnético em camada de óxido de ferro • Orientação positiva corresponde a 1 • Orientação negativa corresponde a 0 Discos ópticos (CD, DVD) – Pequenos buracos queimados por laser num filme de telúrio • Buraco corresponde a 1 • Sem buraco corresponde a 0 LINGUAGEM DE PROGRAMAÇÃO Se o computador só entende linguagem de máquina, o que deve ser feito para que ele entenda programas em linguagem assembly ou de alto nível? LINGUAGEM DE PROGRAMAÇÃO Usar um tradutor! LINGUAGEM DE PROGRAMAÇÃO TRADUTORES Tradutores no contexto de linguagens de programação são programas que recebem como entrada um programa em linguagem assembly ou de alto nível (dita linguagem fonte) e produzem como saída as instruções deste programa traduzidas para linguagem de máquina (binário). Existem basicamente três tipos de tradutores: • Compilador • Interpretador • Montadores LINGUAGEM DE PROGRAMAÇÃO TIPOS DE TRADUTORES 1) COMPILADOR: traduz de uma vez só todo o programa escrito em linguagem de alto nível (código-fonte) para um programa equivalente escrito em linguagem de máquina (código-objeto). 2) INTERPRETADOR: traduz (sem gerar código-objeto) e em seguida executa, uma-a-uma, as instruções de um programa em linguagem de alto nível (código-fonte). 3) MONTADOR (ou Assembler): faz a tradução direta das instruções Assembly para um programa equivalente escrito em linguagem de máquina. Código Fonte hi, how are you? LINGUAGEM DE PROGRAMAÇÃO COMPILADOR x INTERPRETADOR Computador Computador Compilador Interpretador olá, como está você? Código Objeto (*.exe) Olá, como está você? Código Fonte hi, how are you? LINGUAGEM DE PROGRAMAÇÃO COMPILADOR x INTERPRETADOR O código objeto (tradução para a linguagem de máquina) produzido por um compilador pode ser executado várias vezes sem a necessidade de re- compilação. Essa só é necessária se o código-fonte for alterado. Todo programa interpretado deve re-executar o processo de interpretação, independentemente de ter havido ou não modificações no seu código-fonte. Por não exigirem conversão para linguagem de máquina em tempo de execução, os programas objeto compilados tendem a ser executados mais rapidamente que um interpretado equivalente. LÓGICA E PROPOSIÇÃO LÓGICA E PROPOSIÇÃO O QUE É LÓGICA??? Ciência que estuda as leis do raciocínio. Correção / validação do pensamento. Encadeamento / ordem de ideias. Arte de bem pensar. O QUE É LÓGICA??? Objetivo: Ordenar o pensamento (Aristóteles? Platão?) Faz parte do dia a dia Exemplos: O livro está sobre a mesa Todos os objetos sobre a mesa são vermelhos Logo, o livro é vermelho O presente custa R$ 20,00 Tenho R$ 10,00 Logo, não tenho dinheiro suficiente para comprar o presente LÓGICA E PROPOSIÇÃO EXEMPLOS DE LÓGICA O quarto está fechado e meu livro estáno quarto. Então, preciso primeiro abrir o quarto para pegar o livro. Rosa é mãe de Ana, Paula é filha de Rosa, Júlia é filha de Ana. Então, Júlia é neta de Rosa e sobrinha de Paula. Todo mamífero é animal e todo cavalo é mamífero. Então, todo cavalo é animal. Todo mamífero bebe leite e o homem bebe leite. Então, todo homem é mamífero e animal (mas não é um cavalo). LÓGICA E PROPOSIÇÃO ATIVIDADE P1 – Uma lesma deve subir um poste de 10m de altura. De dia sobe 2m e à noite desce 1m. Em quantos dias atingirá o topo do poste? P2 - Três gatos comem três ratos em três minutos. Cem gatos comem cem ratos em quantos minutos? P3 - O pai do padre é filho do meu pai. O que eu sou do Padre? P4 - Se um bezerro pesa 75 kg mais meio bezerro, quanto pesa um bezerro inteiro? LÓGICA E PROPOSIÇÃO ATIVIDADE P5 – Qual o próximo número da sequência 7,8,10,13,17? P6 – Um pai de 80kg e suas 2 filhas (40kg cada) precisam sair de uma ilha com um barco. Porém, a capacidade do barco é de 80kg. Como farão para sair da ilha? P7 – Usando uma jangada, um camponês precisa atravessar uma cabra, um leão e um fardo de capim para a outra margem do rio. A jangada só tem lugar para ele e mais outra coisa. O que ele deve fazer para atravessar o rio com seus pertences intactos? LÓGICA E PROPOSIÇÃO RESPOSTAS R1 – nove dias. No nono dia a lesma sobe dois metros, atinge o topo e evidentemente não desce 1 metro. R2 – 3 (três) minutos. R3 – Tio. R4 – 150 (cento e cinquenta) kg. R5 – 22. R6 – Vão as duas filhas. Uma delas volta. O pai sai. A outra filha volta. As duas filhas saem juntas. R7 – Primeiro leve a cabra, volte e pegue o capim; deixe o capim e leve a cabra de volta; deixe a cabra e leve o leão; depois, é só voltar e pegar a cabra. LÓGICA E PROPOSIÇÃO PROPOSIÇÃO O QUE É PROPOSIÇÃO? LÓGICA E PROPOSIÇÃO PROPOSIÇÃO Proposição: é um enunciado verbal, ao qual deve ser atribuído, sem ambiguidade, um valor lógico verdadeiro (V) ou falso (F). Exemplos: • Rui Costa é governador. (V) • 3 + 5 = 10 (F) • 5 < 8 (V) Contra-exemplos: • Aonde você vai? • 3 + 5 • Os estudantes jogam futebol. (Quais ?) LÓGICA E PROPOSIÇÃO OPERAÇÕES LÓGICAS Operações Lógicas: usadas para formar novas proposições a partir de proposições existentes. Considerando p e q duas proposições genéricas, pode-se aplicar as seguintes operações lógicas básicas sobre elas: Definindo a prioridade: • Usar parênteses Ex: ((p v q) ^ (~q)) ou • Obedecer (~) > (^) > (v) Operação Símbolo Significado Negação ~ NÃO Conjunção ^ E Disjunção v OU LÓGICA E PROPOSIÇÃO EXEMPLOS DE OPERAÇÕES LÓGICAS Considere: • p = 7 é primo = (V) • q = 4 é ímpar = (F) Então: • 4 NÃO é ímpar = ~q = (~F) = (V) • 7 NÃO é primo = ~p = (~V) = (F) • 7 é primo E 4 NÃO é ímpar = p ^ ~q = (V ^ (~F)) = (V ^ V) = (V) • 7 é primo E 4 é ímpar = p ^ q = (V ^ F) = (F) • 4 é ímpar E 7 é primo = q ^ p = (F ^ V) = (F) • 4 é ímpar E 7 NÃO é primo = q ^ ~p = (F ^ (~V)) = (F ^ F) = (F) LÓGICA E PROPOSIÇÃO EXEMPLOS DE OPERAÇÕES LÓGICAS Considere: • p = 7 é primo = (V) • q = 4 é ímpar = (F) Então: • 7 é primo OU 4 NÃO é ímpar = p v ~q = (V v (~F)) = (V v V) = (V) • 7 é primo OU 4 é ímpar = p v q = (V v F) = (V) • 4 é ímpar OU 7 é primo = q v p = (F v V) = (V) • 4 é ímpar OU 7 NÃO é primo = q v ~p = (F v (~V)) = (F v F ) = (F) LÓGICA E PROPOSIÇÃO EXEMPLOS DE OPERAÇÕES LÓGICAS Resumindo: Ou seja: • Não (~) troca o valor lógico. Se é F passa a ser V e vice-versa. • E (^) só tem valor V quando as duas proposições forem V. Basta uma proposição ser F para o resultado ser F. • OU (v) só tem valor F quando as duas proposições forem F. Basta uma proposição ser V para o resultado ser V. p q p ^ q p v q V V V V V F F V F V F V F F F F ~p F F V V pp qq p ^ qp ^ q p v qp v q VV VV VV VV VV FF FF VV FF VV FF VV FF FF FF FF ~p~p FF FF VV VV LÓGICA E PROPOSIÇÃO ATIVIDADE Considerando p = V e q = F, resolva as seguintes expressões lógicas: • ~p • ~q • p ^ q • p v q • (~p) ̂ q • (~p) v q • p ^ (~q) • p v (~q) • (~p) ̂ (~q) • (~p) v (~q) LÓGICA E PROPOSIÇÃO ATIVIDADE Considerando p = V e q = F, resolva as seguintes expressões lógicas: • ~p = F • ~q = V • p ^ q = F • p v q = V • (~p) ̂ q = F • (~p) v q = F • p ^ (~q) = V • p v (~q) = V • (~p) ̂ (~q) = F • (~p) v (~q) = V LÓGICA E PROPOSIÇÃO ALGORITMO ALGORITMO CONCEITO Algoritmo é um conjunto bem definido de ações a serem executadas para resolver um determinado problema. “Utilização de regras para definir ou executar uma tarefa específica ou para resolver um problema específico“ (Michaelis) ALGORITMO CONCEITO Sequência lógica e não ambígua de instruções que levam à solução de um problema num tempo finito. ALGORITMO CARACTERÍSTICAS BÁSICAS Sequência lógica As instruções devem ser definidas em uma ordem correta. Não ambígua A sequência lógica e as instruções não devem dar margem à dupla interpretação. Solução de um problema A sequência lógica deve resolver exatamente (nem mais e nem menos) o problema identificado. Tempo finito A sequência lógica não deve possuir iterações infinitas. ALGORITMO EXEMPLO Algoritmo para trocar pneu 1- Posicione o triângulo de sinalização em local visível na estrada. 2- Folgue os parafusos com a chave de roda sem remover. 3- Suspenda o lado com o pneu furado com apoio do macaco. 4- Remova os parafusos do pneu com a chave de roda. 5- Remova a calota. 6- Remova o pneu furado. 7- Coloque o pneu novo no lugar. 8- Coloque a calota. 9- Aperte os parafusos. 10- Abaixe o carro com apoio do macaco. 11- Remova o triângulo de sinalização. ALGORITMO Exemplos • Receitas de comidas • Coreografia • Manuais de instalação Tarefas que possuem padrão de comportamento podem ser descritas por um algoritmo Contra-exemplos • Listas de compras • Dança informal • Índice remissivo de um livro ALGORITMO Algoritmo não é a solução de um problema, mas um caminho que pode ser seguido até a solução, podendo haver vários caminhos diferentes para atingir o mesmo objetivo. Algoritmo se aprende construindo e testando!! Algoritmo NÃO se aprende copiando, nem lendo outros já prontos. Depende da lógica de raciocínio de cada um!! ALGORITMO EXERCÍCIO 01 Escreva um algoritmo detalhado sobre como ir de um lugar para outro. Ex: de casa para a Escola Politécnica. Considere detalhes e possíveis mudanças que podem ocorrer a depender das circunstâncias. ALGORITMO EXERCÍCIO 01 Resposta possível: 1- Entrar no carro e por o cinto de segurança. 2- Ligar o carro e sair pela garagem. 3- Sair da Rua Flórida e entrar na Rua da Graça à esquerda. 4- Seguir até a Rua Euclides da Cunha. 5- Se semáforo em vermelho, parar e aguardar sinal verde. 6- Seguir pela Rua Euclides da Cunha até o final. 7- Convergir à direita e seguir em frente. 8- Se semáforo em vermelho, parar e aguardar sinal verde. 9- Subir a Ladeia do Campo Santo e seguir pela Rua Caetano Moura. 10- Entrar à direita na Rua Aristides Novis. 11- Entrar à esquerda no estacionamento da Escola Politécnica. 12- Estacionar em vaga existente. ALGORITMO EXERCÍCIO 01 Resposta: Não existe uma resposta certa ou errada, cada pessoa pode montar seu algoritmo, com base em lógica própria, o importante é perceber que fazemos muitas coisas no percurso e detalhar todos os passos não é fácil. ALGORITMO EXERCÍCIO 02 Escreva um algoritmo que mova os três discos de uma Torre de Hanói para outra haste. A Torre de Hanói é um “quebra-cabeça” que consiste em uma base contendo três pinos, em um dos quais são dispostos alguns discos uns sobre os outros, em ordem crescente de diâmetro, de cima para baixo. O problema consiste em passar todos os discos de um pino para outro qualquer, usando um dos pinos como auxiliar, de maneira que um disco maior nunca fique em cima de outro menor em nenhuma situação.O número de discos pode variar sendo que o mais simples contém apenas três. Fonte: http://pt.wikipedia.org/wiki/Torre_de_Hanói ALGORITMO EXERCÍCIO 02 ALGORITMO EXERCÍCIO 02 Resposta: Mova o disco pequeno para a haste 2. Mova o disco médio para a haste 3. Mova o disco pequeno para a haste 3. Mova o disco grande para a haste 2. Mova o disco pequeno para a haste 1. Mova o disco médio para a haste 2. Mova o disco pequeno para a haste 2.
Compartilhar