Prévia do material em texto
Lógica de Programação Professor Victor Dalton Professor Victor Dalton Eng. Computação IME/ Informática para Concursos Facebook.com/professorvictordalton @profvictordalton Youtube: youtube.com/victordalton @direcaopolicial [ Sumário ] Introdução Constantes e variáveis Entrada/saída de dados Tipos de dados • Elementares • Estruturados • Entrada/saída de dados Operadores • Aritméticos • Relacionais • Lógicos Estruturas de controle • Estruturas de decisão • Estruturas de repetição Lógica de Programação [ Lógica de programação ] O que é Lógica de programação é uma técnica para resolução de problemas por meio de uma sequência lógica de passos. Como acessar um curso do Direção? 1.Ligar o computador; 2.Abrir o navegador de Internet; 3.Acessar o site do Direção; 4.Selecionar o curso; 5.Confirmar a compra; 6.Se não for usuário cadastrado do site, preencher cadastro; 7.Realizar o pagamento; 8.Acessar os PDFs. [Lógica de programação] [ Algoritmo ] O que é Um algoritmo é uma sequência finita de passos que levam à execução de determinada tarefa ou conjunto de tarefas. Ele recebe as entradas, faz o processamento e retorna uma saída. [ Algoritmo ] Características Finitude Conjunto de instruções tem que ser finito Clareza Não pode haver ambiguidade nem subjetividade nas instruções Entrada Parâmetros a partir dos quais é feito o processamento Saída Resultado. Solução de um problema ou execução de tarefa Algoritmo [ CONSULPAM - 2018 - Câmara de JF - MG - Assistente Legislativo – Téc em Informática ] Algoritmo é uma sequência finita e bem definida de passos que, quando executados, realizam uma tarefa específica ou resolvem um problema. NÃO é uma das propriedades do algoritmo: (a) Composto por ações complexas e por vezes indefinidas. (b) Composto por ações simples e bem definidas (não pode haver ambiguidade, ou seja, cada instrução representa uma ação que deve ser entendida e realizada). (c) Sequência ordenada de ações. (d) Conjunto finito de passos. [ Linguagem de programação ] O que é É um padrão, um conjunto de regras usadas para definir um programa de computador. ÔÑó× æãêì ØÙßÝ ùøý? [ Linguagem de programação ] Lógica de programação • Pseudocódigo [ Pseudocódigo ] • Variável • Espaço da memória do computador que armazena um dado. No algoritmo, a variável pode ser manipulada pelas instruções, modificando e trabalhando seus valores. • Uma variável recebe um nome (também chamado de identificador), que a diferencia das demais, no algoritmo. Normalmente atribui-se um nome intuitivo à variável, para facilitar o entendimento do próprio algoritmo. ALGORITMO MEDIA_FINAL; VAR NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO; (tipo de variável, número inteiro) NOME: CARACTERE [35]; (tipo de variável, texto até 35 caracteres) INICIO LER (NOME); LER (NOTA1, NOTA2, NOTA3, NOTA4); MEDIA:= (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4; ESCREVER (NOME, MEDIA) FIM. [Elementos de um algoritmo] • Declaração de variáveis • Um algoritmo, via de regra, inicia-se pela declaração de variáveis. Perceba no nosso algoritmo exemplo, destacado em azul. ALGORITMO MEDIA_FINAL; VAR NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO; NOME: CARACTERE [35] INICIO LER (NOME); LER (NOTA1, NOTA2, NOTA3, NOTA4); MEDIA:= (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4; ESCREVER (NOME, MEDIA) FIM. [Elementos de um algoritmo] • Instrução • A instrução é o passo, ou etapa do algoritmo. Normalmente, é a linha de código seguida de ponto-e-vírgula. [Elementos de um algoritmo] • Conjunto de instruções • O conjunto de instruções é a inteligência do algoritmo, a sua razão de ser.Veja, em destaque, no mesmo algoritmo: ALGORITMOMEDIA_FINAL; VARNOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO; NOME: CARACTERE [35] INICIO LER (NOME); LER (NOTA1, NOTA2, NOTA3, NOTA4); MEDIA:= (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4; ESCREVER (NOME, MEDIA) FIM. • Em pseudocódigo, costuma-se utilizar “Inicio” e “Fim” para delimitar o conjunto de instruções. [Elementos de um algoritmo] [ Constantes e Variáveis ] Constantes • Regiões de memória que armazenam valores fixos que não podem ser alterados ao longo do algoritmo Variáveis • Regiões de memória que armazenam valores que podem ser alterados ao longo do algoritmo [ CESPE - 2018 - BNB - Especialista Técnico - Analista de Sistema ] Julgue o próximo item, concernente ao conceito relacionado a algoritmos e linguagens de programação. Em um algoritmo, uma constante é um espaço físico na memória, e é identificada por um nome que não sofre alteração durante a execução do programa. [ CESPE - 2018 - ABIN - Oficial Técnico de Inteligência - Área 9 ] Julgue o item seguinte a respeito da construção de algoritmos, dos conceitos de variáveis e de bloco de comandos e das estruturas de controle. Durante a execução de um programa, o conteúdo de uma variável pode mudar ao longo do tempo, no entanto ela só pode armazenar um valor por vez. [ Entrada/Saída de dados ] • Forma pela qual o algoritmo recebe/retorna dados • Também conhecido como input/output Entrada: número Saída: número [ Tipos de dados ] Elementares • Não podem ser quebrados em partes menores • Também conhecidos como simples, atômicos ou primitivos Tipos de dados Elementares Descrição Exemplos Lógico (ou Booleano) Possui 1 dentre 2 possíveis valores VERDADEIRO/FALSO TRUE/FALSE 1/0, SIM/NÃO Inteiro (ou int ou integer) Número sem parte fracionária 5 12 Real (ou ponto flutuante, ou float, ou double) Número com a parte fracionária 3,1415 10,50 Caractere (ou char) Dígito ‘a’, ‘b’, ‘c’, ‘$’, ‘?’, ‘4’ [ Tipos de dados ] Estruturados • São composições feitas em cima dos dados elementares • Também conhecidos como compostos Tipos de dados Estruturados Descrição Exemplos Vetor Sequência de tamanho fixo de dados elementares do mesmo tipo [1, 7, 4, 8, 23] [25.50, 46.30, 99.99] String Vetor de caracteres “Polícia Federal” Lista Sequência de tamanho variável de dados elementares do mesmo tipo (igual aos vetores, só que podendo aumentar ou diminuir de tamanho) 4 2 1 3 3 5 2 ‘J’ ‘o’ ‘s’ ‘é’ 4 2 1 3 3 5 2 ... [ Operadores ] Operadores • Realizam processamentos em cima dos dados • São utilizados para criar expressões matemáticas dentro do algoritmo Aritméticos Relacionais Lógicos • Podem ser de 3 tipos [ Operadores aritméticos ] • Realizam operações numéricas entre os operandos Operador Símbolo Prioridade Exemplo Exponenciação ^ 1a 2 ^ 3 = 8 Multiplicação * 2a 3 * 4 = 12 Divisão / 2a 8 / 4 = 2 Módulo % 2a 10 % 3 = 1 Adição + 3a 2 + 7 = 9 Subtração - 3a 5 – 1 = 4 x = 2 + 3 * 5 x = (2 + 3) * 5 [ CESPE - 2018 - BNB - Especialista Técnico - Analista de Sistema ] Julgue o próximo item, concernente ao conceito relacionado a algoritmos e linguagens de programação. A resposta da expressão a seguir é verdadeiro. se ((-(-2-6*12/3-1)) > (3+3-3*3-3^3+3)) então escreva “verdadeiro”; senão escreva “falso”; Operador Símbolo Prioridade Exemplo Exponenciação ^ 1a 2 ^ 3 = 8 Multiplicação * 2a 3 * 4 = 12 Divisão / 2a 8 / 4 = 2 Módulo % 2a 10 % 3 = 1 Adição + 3a 2 + 7 = 9 Subtração - 3a 5 – 1 = 4 (-(-2-6*12/3-1)) = (-(-2-72/3-1))= (-(-2-24-1))= (-(-26-1))= (-(-27))= 27 (3+3-3*3-3^3+3)= (3+3-3*3-27+3)= (3+3-9-27+3)= (6-9-27+3)= (-3-27+3)= (-30+3)= -27 [ Operadores aritméticos ] • Como expressar operações aritméticas no pseudocódigo? Expressão algébrica Equivalente em pseudocódigo ! = #$% y = 3 * x / 2 & = #'( + * z = 3 * b * c +4 + = $ + % + − - a = (x + 2) / (a – 1) $ = +% + '# . x = (a ^ 2 + b ^ 3) / 5 [ Operadores relacionais ] • São utilizados para fazer comparações entre operandos. Seu retorno é sempre um valor do tipo booleano Operador Símbolo Uso Igual = x = y Diferente <> ou != x <> y ou x != y Maior > x > y Menor < x < y Maior ou igual >= x >= y Menor ou igual <= x <= y [ Operadores lógicos ] • Servem para combinar operandos booleanos (VERDADEIROou FALSO) e retornam valores também booleanos Operador Significado E / And Combina 2 operandos booleanos retornando VERDADEIRO somente quando os 2 operandos são VERDADEIROS. Ou / Or Combina 2 operandos booleanos retornando FALSO somente quando os 2 operandos são FALSOS. Não / Not Operador unário (é aplicado sobre somente 1 operando) que inverte um valor booleano. Se o operando for VERDADEIRO o retorno é FALSO e vice versa. • Tabelas-verdade a b a E b a b a Ou b a Não a [ Estruturas de controle ] • Permitem ao programador mudar a direção do fluxo de execução das instruções dentro do algoritmo Estruturas de Controle [ Estruturas de controle ] condicional laço loop [ Estrutura de decisão – se-então ] • O se-então faz com que um bloco de instruções seja executado somente se determinada condição for atendida • Caso o se não seja atendido, pula e segue para o restante do algoritmo • Também chamado de if-then ou estrutura condicional simples se (localDeNascimento = “Minas Gerais”) então denominação = “Mineiro” ALGORITMO NUMEROS_IGUAIS; 1.VAR A, B: INTEIRO; 2.INICIO 3.LER (A, B); 4.SE (A=B) 5.ENTÃO ESCREVER (“Os números são iguais!”); 6.FIM. [Estrutura de decisão – se-então ] [ Estrutura de decisão – se-então-senão ] • O se-então-senão faz com que um bloco de instruções seja executado somente se determinada condição for atendida • Caso o se não seja atendido, executa o caso contrário (senão) • Também chamado de if-then-else ou estrutura condicional composta se (condição = VERDADEIRO) então caminho = “cima” senão caminho = “baixo” • ALGORITMO MAIOR_NUMERO; 1.VAR A, B: INTEIRO; 2.INICIO 3.LER (A, B); 4.SE (A>B) 5.ENTÃO ESCREVER (A); 6.SENAO ESCREVER (B); 7.FIM. [Estrutura de decisão – se-então-senão ] [ Estrutura de decisão – caso-selecione ] • O caso-selecione apresenta múltiplas condições • Executa o bloco correspondente à condição que foi atendida • Caso nenhuma condição seja atendida, executa o caso-outro • Também chamado de switch-case ou múltipla- escolha selecione (númeroMês) caso 1: mês = “Janeiro” caso 2: mês = “Fevereiro” caso 3: mês = “Março” caso 4: mês = “Abril” caso 5: mês = “Maio” caso 6: mês = “Junho” caso 7: mês = “Julho” caso 8: mês = “Agosto” caso 9: mês = “Setembro” caso 10: mês = “Outubro” caso 11: mês = “Novembro” caso 12: mês = “Dezembro” caso outro: escreva(“Você deve selecionar um número de 1 a 12”) fim selecione [ CESPE - 2013 - SERPRO - Programador de computador ] No que se refere a linguagens de programação e estruturas de decisão/repetição em algoritmos de programação, julgue os itens subsequentes. A estrutura de decisão SE/ENTÃO/SENÃO, ou IF/THEN/ELSE, permite que seja sempre executado um comando. Isso porque, caso a condição seja verdadeira, o comando da condição SE/ENTÃO será executado; caso contrário, o comando da condição SENÃO (falsa) será executado. [ CESPE - 2013 - SERPRO - Programador de computador ] A estrutura de decisão CASO SELECIONE, ou SELECT CASE, é utilizada para testar, na condição, uma expressão ou o valor de uma determinada variável. Compara-se, então, o resultado obtido nesse teste com os valores fornecidos em cada cláusula CASO. [ CESPE - 2014 - TJ-SE - Técnico Judiciário - Programação de Sistemas ] No que se refere à estrutura de programação e lógica, julgue os próximos itens. No algoritmo abaixo, é apresentada uma estrutura de desvio condicional encadeada. [ Estruturas de controle ] condicional laço loop [ Estruturas de repetição ] • Permitem que um algoritmo execute determinado bloco de instruções repetidas vezes • Também chamada de laço ou loop [ Estrutura de repetição pré-testada ] • Testa a condição de entrada/permanência no loop antes de entrar a 1ª vez • Também conhecida como while-do enquanto (condição = VERDADEIRO) faça <bloco de comandos> fim-enquanto [Repetição com verificação antecipada] [ Estrutura de repetição pós-testada ] • Executa necessariamente pelo menos 1 volta do loop • Testa a condição de entrada/permanência no loop depois de entrar a 1ª vez • Também conhecida como do-while ou repeat-until faça <bloco de comandos> enquanto (condição = VERDADEIRO) ALGORITMO EXIBE_NUMEROS; Var N: inteiro; Inicio Leia(N); REPITA Escreva(N); N:= N + 1 ATÉ N>10; Fim [Repetição com verificação no final] [ Estrutura de repetição com variável de controle ] • Semelhante à repetição pré-testada, mas com o auxílio de uma variável de controle (contador) • Também conhecida como para ou for • Utilizada quando se sabe a priori o número de repetições • A variável de controle é incrementada pelo próprio for para contador de 1 até n faça <bloco de comandos> fim-para [ Repetição c/ variável de controle – Teste de Mesa ] • Executando passo a passo cada iteração contador soma 01 soma = 0 02 contador = 0 03 para (contador de 1 até 10) faça 04 soma = soma + contador 05 contador = contador + 1 06 fim-para 07 08 escreve(soma) atribuir 50 a I atribuir 0 aTOTAL atribuir 0 a K enquanto K < I faca inıcio somar 10 a K; atribuir TOTAL+K aTOTAL imprimir(K); fim; fim-enquanto; imprimir(TOTAL); Ao final do processamento, a variável TOTAL e o número de vezes que a K será impresso são, respectivamente: a) 100 e 4 b) 150 e 5 c) 150 e 8 d) 150 e 9 e) 210 e 6 Em relação às estruturas de controle e de fluxo de execução, julgue os itens seguintes. [ CESPE - 2018 - Polícia Federal - Perito Criminal Federal - Área 3 ] O laço do-while será executado sempre que a condição for falsa e terminará quando esta for verdadeira, ao passo que o laço repeat-until será executado sempre que a condição for verdadeira e terminará quando esta for falsa. [ CESPE - 2018 - Polícia Federal - Perito Criminal Federal - Área 3 ] Nos laços while e repeat-until, as sentenças serão executadas pelo menos uma vez. [ CETAP - 2015 - MPCM-PA - Técnico em Informática - Desenvolvimento ] No seguinte pseudocódigo, que contem uma seguinte estrutura de repetição, diga qual o valor final da variável X: (a) 9 (b) 10 (c) 11 (d) 0 (e) Indefinido [TRT/20 – Analista Judiciário – 2016] Uma das funções da lógica de programação é definir os passos para se resolver problemas do mundo real através de programas de computador criados nas linguagens de programação. Considere, nesse contexto, a estrutura de passos em pseudolinguagem abaixo. [TRT/20 – Analista Judiciário – 2016] [TRT/20 – Analista Judiciário – 2016] Se for informado o valor 4000 para a variável salary será exibido o valor (A) 4400 (B) 4300 (C) 5000 (D) 4200 (E) 9000 Professor Victor Dalton Eng. Computação IME/ Informática para Concursos Facebook.com/professorvictordalton @profvictordalton Youtube: youtube.com/victordalton