Escolar Documentos
Profissional Documentos
Cultura Documentos
Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Sumário
SUMÁRIO ..................................................................................................................................................2
INTRODUÇÃO ...........................................................................................................................................5
LISTA DE QUESTÕES............................................................................................................................... 36
GABARITO .............................................................................................................................................. 36
RESUMO DIRECIONADO..........................................................................................................................48
2 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Se a sua resposta foi: Não! Nunca estudei. Não tem problema. Este curso também é para você.
Nós abordaremos a teoria necessária para compreensão e resolução dos exercícios, no intuito de fazer
você praticar e aprender exaustivamente cada assunto estudado, para se sentir confiante a enfrentar a Banca
Examinadora sem quaisquer problema. Caso nunca tenha ouvido falar em (Lógica de Programação) a minha
recomendação é que você inicie por uma leitura atenta deste material e em seguida, realize calmamente e
atenciosamente os exercícios.
Ah! Fique à vontade para me procurar no fórum de dúvidas sempre que for necessário. Estaremos
disponíveis para sanar todas as suas dúvidas.
Caso queira tirar alguma dúvida, basta enviar-me um e-mail ou um direct pelo Instagram
3 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
4 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Lógica de Programação
Introdução
Olá, meu querido ou minha querida, tudo bem com você? Espero que sim! Bom, hoje falaremos sobre a
lógica de programação. Caso você não conheça esta disciplina, ou mesmo, só ouviu falar vagamente, não se
preocupe, a nossa intenção é deixá-lo fera neste assunto resolvendo o máximo de questões possíveis.
A matemática estar em tudo que nos rodeia e muitas das vezes nem percebemos, da mesma maneira
acontece com a lógica de programação, pois ela está embutida, acoplada, inserida, contida em quase tudo que
olhamos, tocamos ou usamos. Quando você para no sinal de trânsito, ali existe a lógica de programação,
quando você estar assistindo à televisão, ali também possui a lógica de programação, quando você usa o celular
e seu aplicativo de WhatsApp, saiba que neste possui muita lógica de programação.
Fala aí prof., como que surgiu esse negócio e para que serve tanto isso aí? Vou pedir algo muito especial
a você aluno, principalmente aquele que não conhece nada sobre o assunto. Preste bastante atenção em tudo
que eu escrevo sobre a lógica, te garanto que você vai finalizar esta aula sabendo muito a respeito do assunto,
principalmente para realizar questões de concursos e obter o devido sucesso esperado.
Outro detalhe importante, apesar de o assunto ser sobre Lógica de Programação, iremos falar bastantes
de algoritmos e suas variáveis, que é onde tudo começa, mas não se preocupe, avançaremos com calma.
Conceitos Básicos
A Lógica de Programação é essencial para que pessoas possam construir ou desenvolver programas de
computadores, também é definida como um conjunto de técnicas para encadear pensamentos a fim de atingir
determinado objetivo.
Estes objetivos, são alcançados com a lógica de programação, esta lógica é obtida através da construção
dos mais diversos tipos de algoritmos. Em outras palavras ao criarmos um algoritmo, este aponta uma
sequência de instruções que levam a solução de um problema existente no mundo real.
Podemos afirmar que a lógica de programação é um paradigma de programação que faz o uso da lógica
da matemática.
5 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
( ) Certo.
(X) Errado.
RESOLUÇÃO:
Resposta: Errado
6 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Fluxograma é uma ferramenta para a modelagem de sistemas na qual se representa unicamente uma visão
estruturada das funções do sistema, ou seja, o fluxo dos dados.
( ) Certo.
(X) Errado.
RESOLUÇÃO:
A questão tenta nos induzir ao erro, na verdade o diagrama de fluxo de dados, não representa uma única
visão do sistema.
Resposta: Errado
Variáveis
Variável é um objeto, ou uma posição frequente usada ou localizada na memória do computador, capaz
de reter ou guardar um valor ou expressão. Quando nos referimos a variável, nos referimos ao um ponto na
memória, local em que é armazenada determinada informação por um determinado período.
As variáveis só existem em tempo de execução, são associadas aos mais diversos elementos, pode ser
associada a: um nome, um número, uma data, um caractere, um valor.
É importante sabermos que existem vários tipos de variáveis e iremos falar sobre as principais, saiba que
as variáveis são muito utilizadas em sistemas, banco de dados, é impossível um programa de computador sem
uma variável.
Iremos decifrar para você o que é uma variável e como ela funciona. Para início de conversa, toda variável
possui um nome, para que possa ser identificada no momento em que ela for chamada pelo programa para ser
utilizada, as variáveis possuem tipos e os definimos de acordo com o conteúdo que será armazenado nela.
Um exemplo básico de uma variável é selecionarmos um espaço de memória para guardar um nome.
Viu como é tranquilo? O nome em negrito acima é uma variável do tipo que guarda texto, ou cárteres, a
seta apontando para a esquerda, quer dizer que estou guardando um determinado valor dentro da variável e
conteúdo é o nome do cliente que vem dentro de aspas indicando que é um texto ou caractere.
Existem dois tipos de dados são estes: os dados elementares e os dados estruturados, já explicaremos a
diferencia entre eles.
7 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Tipo de Dados
1. Dados Elementares
Os dados elementares, também chamados de dados simples, atômicos ou privados. São assim
chamados, pois não podem ser quebrados em partes menores.
Logico: os dados lógicos, também conhecido como booleanos, são presentados pelos
valores de (VERDADEIRO ou FALSO), ou (1 ou 0), sempre representado por um dos dois
valores, pessoal, eu disse SEMPRE!
Real: os dados reais, também conhecidos popularmente como, ponto flutuante, ou Double,
ou float. Armazenam dados do tipo numéricos com suas partes fracionadas, ao contrário do
inteiro, o qual falamos agora pouco.
Exemplo: 95,36, 4.250,36.
Caracteres: sem dúvidas é o mais usado no meio dos algoritmos, este modelo representam
os dados do tipo letras, dígitos, símbolos.
Exemplo: ‘Maria’, ‘Antônio’, ‘ABC’.
2. Dados Estruturados:
Os dados estruturados, são arranjos ou composições realizadas sobre os dados elementares, por este
motivo, os dados estruturados podem ser chamados de dados compostos. Temos os seguintes tipos:
Vetor, String, Lista.
Vetor: é representado por uma estrutura unidimensional com números fixo de posições que
só aceitam dados do mesmo tipo.
Exemplo: vetor de número com quatro posições: [4,3,2,1]
Exemplo: vetor de String com quatro posições: [‘A’,’B’,’E’,’J’]
Constantes
A constantes é muito parecido com a variável, lembrando que, a variável recebe um valor e o guarda em
um espaço de memória e neste caso o valor pode ser alterado várias vezes, quantas vezes você precisar, no caso
da constante o valor é fixo, ele nunca é alterado, esta é a ideia de constante, bem simples mesmo pessoal.
8 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
(X) Certo.
( ) Errado.
RESOLUÇÃO:
Podemos sim, pois falei sobre isto, acho que uma página atrás na aula, a variável recebe um valor e o
guarda, este valor pode ser alterado quantas vezes assim precisar.
Resposta: Certo
(X) Certo.
( ) Errado.
RESOLUÇÃO:
Pessoal, peguei pesado agora né? Mas a intenção é esta, explicarei tudo mais à frente, aguarde e verás
que é tranquilo.
Resposta: Certo
Entrada e Saída
Derivados da sigla E/S, ou mesmo (Input/Output) ou ainda (I/O) é o termo muito utilizado no ramo da
computação, indicando a (inserção) de dados por meio de alguma modalidade de código ou sistema, para o
hardware ou algum outro programa, também, a sua saída de dados ou (obtenção de dados) ou retorno de uma
operação de um processo.
Alguns exemplos de entrada são: teclado, mouse, scanner, leitor de código de barras, joystick.
9 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
São denominados de dispositivos de entrada e saída, os responsáveis por incorporar e extrair informações
de um sistema de computação. Os periféricos trabalham por meios de interrupções que realizam o processo,
executando e o interrompendo, desta maneira, os dispositivos enviam interrupções a CPU por meio do
controlador em conjunto com o processador.
Alunos, falei um pouco sobre entrada e saída, afinal de contas, quando construímos um algoritmo que
fará parte de um sistema, ele receberá informações que provavelmente serão armazenadas nas mais diversas
variáveis e posições de memórias, onde serão encaminhadas ao processador para que ele possa realizar os
devidos cálculos com precisão e devolver o retorno da operação.
Em resumo, toda a informação entra (Input), logo em seguida é processada e devolvida (Output).
Resumindo em uma linha: nada é feito por acaso!
Podemos dizer que quando digitamos um texto em um site de pesquisa ou em um sistema, estamos
inseridos dados, possivelmente realizando uma pesquisa, tentando de alguma forma obter determinada
informação o resultado desta busca, no caso o retorno, é uma saída e dados.
Operadores Aritméticos
Os operadores numéricos são essências no processo da Lógica de Programação, pois por meio deles
realizamos as mais diversas operações para obtemos o resultado desejado.
Agora que já sabemos o que é uma variável, os tipos de variáveis, vamos fazer uma brincadeira.
1 PROGRAMA SOMA:
2 VAR
3 N1, N2, TL;
4 INICIO
5 N1 10;
6 N2 20;
10 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
7 TL N1 + N2;
8 FIM.
Viu como é bem tranquilo? Porém explicarei detalhadamente cada linha do programa:
Na linha de número 1, damos um nome ao programa, afinal, todo programa tem que ter um
nome.
Na linha de número 2, início onde declaro as variáveis.
Na linha de número 3, declarei 3 variáveis do tipo numéricas, este tipo é adequada para
receber números, desde que não sejam números fracionados.
Na linha de número 4, início o programa, pois todo programa tem um início e fim.
Na linha de número 5, a primeira variável recebe o valor de 10.
Na linha de número 6 a segunda variável recebe o valor de 20.
Na linha de número 7 é realizada a soma das variáveis com os valores contidos nelas e este
valor é lançado dentro da variável de nome TL que significa valor total.
Na linha de número 8 é o fim do programa, pois todo programa tem que ter uma linha de
código finalizando o algoritmo.
Partindo deste princípio observando os detalhes da ordem e execução do algoritmo, nota-se que não é
nenhum bicho de sete cabeças.
A baixo, segue uma pequena tabela dos operadores aritméticos e sua ordem de uso, assim como são
usados na matemática também.
Operadores Relacionais
Os operadores relacionais são utilizados para a comparação de números e literais, retornado valores
lógicos, quando os operadores que possuem a mesma prioridade, o que vier primeiro, deverá ser priorizado.
Não podemos nos esquecer que os parênteses sempre possui a maior prioridade. Os valores retornados sempre
serão booleanos, isto é, (VERDADEIRO ou FALSO).
11 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Operadores Lógicos
Os operadores lógicos, servem para combinar valores de expressões retornando valores lógicos
(VERDADEIRO ou FALSO).
1. Estrutura de Decisão
Conhecida também como a estrutura de seleção nos permite interferir em seu processo de sequência
na tomada de decisões, as instruções são sempre executadas com base em condições pré-
estabelecidas.
Estas instruções são executadas sempre de cima para baixo sequencialmente na ordem em que elas
aparecem.
12 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Exemplo 01:
Aluno = aprovado
A estrutura SE-ENTÃO-SENÃO, garantem que sempre será executado um comando ou comandos dentro do
SE-ENTÃO ou do SENÃO;
Resposta: Certo
Exemplo 02:
13 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Exemplo 03:
Se (Média >= 6.0) Então
Se (Média >= 7.0) Então
Aluno = Aprovado
Senão
Aluno = Recuperaçao
Senão
Aluno = Reprovado
14 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Exemplo 04:
Selecione (numero)
Caso 1: Cantor = “Caetano”
Caso 2: Cantor = “Falcão Rappa”
Caso 3: Cantor = “Gilberto Gil”
Caso 4: Cantor = “Tom Jobim”
Fim Selecione
2. Estrutura de Repetição
Na estrutura de repetição o nome já é bem sugestivo o algoritmo é programado para que haja
repetições em uma tomada de decisão sempre que necessário, esta estrutura, também é conhecida
como estrutura de laços ou loops.
Dentro da estrutura de repetição existem três tipos: a repetição pré-testada, pós-testada e repetição
controlada.
15 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Funções
Funções são módulos próprios de códigos que no sistema levam este nome, criamos uma função para
realizar as mais diversas tarefas a exemplo, podemos criar uma função para verificar a veracidade de um
número de CPF. Podemos criar funções para receber parâmetros e executar determinados cálculos com os
parâmetros recebidos. As funções quando escrita em IDEs de sistemas são chamadas de function e possui um
nome completo.
16 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Procedimentos
O procedimento ou procedure é parecidíssimo com as funções o que o torna diferente é que ele recebe
parâmetros, mas, não devolve um retorno deste. Ele também tem que ter um nome quando criado para que
possa ser identificado.
Procedimento confirmaSaida(parâmetro1, parâmetro2, ..., parâmetroN)
begin
<bloco de instruções>
end
Recursividade
Em ciências da computação, a recursividade é uma rotina ou função que chama a si mesmo para resolver
determinada situação. A grande vantagem da recursividade, estar em usar um programa de computador finito
para definir, analisar e produzir um estoque potencialmente infinito.
17 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
O escopo em que uma variável é declarada define, obrigatoriamente, a que função do tipo pública essa variável
se associa.
( ) Certo.
(X) Errado.
RESOLUÇÃO:
Podemos ter variáveis globais e variáveis locais, a global é definida em determinado lugar no sistema e na
maioria das vezes ela pode ser invocada em qualquer parte do sistema. Entretanto a variável local, só pode ser
executada no lugar em que foi declarado.
Resposta: Errado
(X) Certo.
( ) Errado.
RESOLUÇÃO:
Pessoal, não vimos isto em nossa aula, mas não permitirei que você perca uma questão desta em sua prova. Ele
quer saber o seguinte: se é possível ver o valor que a variável carrega dentro dela no momento de execução do
sistema e isto é possível sim, usando a técnica de depuração o debug.
Resposta: Certo
18 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
(X) Certo.
( ) Errado.
RESOLUÇÃO:
Isso mesmo, é praticamente impossível identificar um padrão devido a estrutura de seleção encadeada, um
pouco desta técnica é utilizada em alguns modalidades de vírus.
Resposta: Certo
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.
(X) Certo.
( ) Errado.
RESOLUÇÃO:
Perfeito, conforme falamos em nossa aula a constante não sofre alteração em seu valor. Já ouvir pessoas
falarem o seguinte: professor, na empresa em que eu trabalho, já vi a constante sofrer alteração, eu respondi
para o aluno que com certeza a usaram no lugar de uma variável. Rs....
Resposta: Certo
(a)SE ENTÃO.
19 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
(b)CASO SELECIONE.
(c)CASO REPITA
(d)SE ENTÃO SENÃO.
RESOLUÇÃO:
Amigos, claro que o tipo de estrutura é um (se então senão).
Resposta: D
De acordo com dados da SABESP, um pequeno buraco de 2 milímetros no encanamento desperdiça 3,2 mil
litros de água em um dia. Um Analista escreveu o algoritmo em pseudocódigo abaixo para calcular o
desperdício de água em função de buracos em encanamentos.
RESOLUÇÃO:
Resposta: C
20 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
(X) Certo.
( ) Errado.
RESOLUÇÃO:
Querido aluno, para entender a assertiva, você precisa saber o que é a passagem de parâmetros. Passagem de
parâmetro pode ser o seguinte: minha variável de valor 10 no momento da execução, pode ser alterado o valor
dentro dela, isto ocorre caso haja a necessidade.
Resposta: Certo
(X) Certo.
( ) Errado.
RESOLUÇÃO:
Assertiva correta, as variáveis que são declaradas fora das funções e procedimentos locais são as globais.
Resposta: Certo
(X) Certo.
( ) Errado.
RESOLUÇÃO:
Corretíssimo, conforme vimos em nossa aula, existem blocos de repetições que são executados somente uma
única vez a exemplo para que não esqueçam, visite a página de nossa aula de nº 15.
21 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Resposta: Certo
( ) Errado.
RESOLUÇÃO:
Cuidado com a resposta, podemos sim, ao término de um bloco de execução guardar este valor em uma variável
do tipo global, porém, com o fechar do sistema se esta não for armazenada em um outro lugar o seu valor será
perdido.
Resposta: Certo
(X) Certo.
( ) Errado.
RESOLUÇÃO:
Resposta: Certo
(X) Certo.
( ) Errado.
22 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
RESOLUÇÃO:
Melhor impossível! O uso deles acontece na programação estruturada, diferente da orientada a objeto.
Resposta: Certo
RESOLUÇÃO:
Correto, caso estejamos usando uma estrutura com o while e for verificado que existe uma condição que não
satisfaça o pretendido, ela não executa a próxima linha dentro daquela estrutura.
Resposta: Certo
RESOLUÇÃO:
É possível, porém o valor daquela variável tem que ser passado por parâmetro para uma variável do tipo global.
Resposta: Certo
( ) Certo.
(X) Errado.
23 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
RESOLUÇÃO:
Questão errada meus queridos, um brake é uma função usada no sistema para pará-lo em determinado
momento de sua execução, esta técnica é muito utilizada dentro de funções, procedures para conferirmos
algumas funções do sistema.
Resposta: Errado
( ) Errado.
RESOLUÇÃO:
Correto, pois para que o algoritmo realiza uma seleção é necessário que ele verifique uma condição.
Resposta: Certo
(X) Errado.
RESOLUÇÃO:
Pessoal, na verdade é ao contrário, por isso o erro na questão.
Resposta: Errado
24 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
(X) Certo.
( ) Errado.
RESOLUÇÃO:
Questão linda, isso mesmo, está correto é dessa forma como explica a questão que a coisa acontece.
Resposta: Certo
( ) Errado.
RESOLUÇÃO:
Perfeita a questão, a constate não pode ter seu valor alterado esta é a regra.
Resposta: Certo
(X) Errado.
RESOLUÇÃO:
Assertiva errada, pois ele não deu a dica de qual o tipo de instrução, somente com esta informação fica difícil.
Resposta: Errado
25 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
(X) Errado.
RESOLUÇÃO:
Pessoal, que peguinha né? Realmente os operadores lógicos são para realizar comparações, porém, não se
realiza comparação de strings. Ué professor, já vi os caras compararem tamanho de String sim! Aí eu te
respondo, eles comparam a quantidade de caracteres e não falou em quantidade, falamos de números.
Resposta: Errado
( ) Errado.
RESOLUÇÃO:
Esta é a real função do diagramas de blocos, mostrar através de um desenho o passo a passo de um algoritmo.
Resposta: Certo
Amigos, esta é a clássica definição de um algoritmo, inclusive estar no início de nossa aula.
26 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Resposta: Certo
( ) Errado.
RESOLUÇÃO:
Ótima a definição de que a variável só poderá guardar um valor, pois uma variável guarda apenas um único tipo
de valor por vez.
Resposta: Certo
RESOLUÇÃO:
Aluno, as palavras reservadas para esta função são: BEGIN e AND, estas palavras reservadas iniciam e finalizam
um algoritmo, função ou mesmo um procedimento.
Resposta: Errado
Os algoritmos são sequências finitas de instruções que, quando corretamente executadas, levam à solução de
um problema
27 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
(X) Certo.
( ) Errado.
RESOLUÇÃO:
Esta é a real função do algoritmo, resolver um problema de cálculo o processamento de uma informação. Mas
saiba que esta definição é muito mais ampla.
Resposta: Certo
(X) Errado.
RESOLUÇÃO:
Assertiva errada, como que pode ser uma caixa preta se a definimos com ações a serem executadas?
Resposta: Errado
(I)Uma constante é um determinado valor fixo que não se modifica durante a execução de um
programa.
(II)Uma variável está associada a uma posição de memória, cujo conteúdo pode ser
modificado durante a execução do programa.
(III)Toda variável é identificada por uma constante
Estão CORRETAS as afirmativas:
RESOLUÇÃO:
28 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
A) 28
B) 56
C) 60
D) 84
E) 100
RESOLUÇÃO:
Resposta: A
Nas linguagens de programação, existem diversos tipos de instrução. Analisando o pseudocódigo a seguir,
assinale a alternativa que define o tipo de instrução que realiza sua operação. Pseudocódigo: “Enquanto houver
maçãs podres no cesto, retire-as e jogue fora. ”
A) Instrução de seleção.
B) Instrução de repetição.
C) Instrução de seleção múltipla.
D) Instrução de evolução.
E) Instrução de decremento.
RESOLUÇÃO:
Isso mesmo pessoal, tem que ser uma instrução de repetição, pois ela passará várias vezes pelo cesto até não
haver mais maçãs podres.
Resposta: B
29 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Para especificar os passos de um algoritmo, o pseudocódigo utiliza uma linguagem natural com característica
pouco formal, o que pode causar ambiguidade e propiciar interpretações errôneas.
( ) Certo.
(X) Errado.
RESOLUÇÃO:
Assertiva errada, a linguagem natural na estrutura do algoritmo não pode conter ambiguidade.
Resposta: Errado
Este algoritmo
A) Não poderia usar a categoria 0 no comando escolha, nem atribuir zero ao valor do pedágio.
B) Apresenta erro de lógica na condição do comando condicional se.
C) Teria que usar uma condição no comando enquanto (verdadeiro) faça, pois este não pode avaliar
apenas o valor lógico verdadeiro.
30 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
D) Tem erro de sintaxe, pois o comando escolha deveria estar dentro da cláusula senão do comando
condicional se.
E) Tem erro de sintaxe, pois o comando escolha deveria ter a cláusula senão, que é obrigatória.
RESOLUÇÃO:
Isto mesmo, a condição dentro de SE, está invertida, começando primeiro pelo valor menor que para maior
que. Com isso o algoritmo roda e sai finalizando.
Resposta: B
33. (FCC - 2011 - TRT - 1ª REGIÃO (RJ) - Analista Judiciário - Tecnologia da Informação)
Considere:
Estruturas de sequência são o fluxo normal de execução das instruções na ordem em que aparecem,
sequencial. Estruturas de decisão são o se-então, se-então-senão e o caso-selecione. Estruturas de
iteração são as repetições que estudamos. Essas são as estruturas necessárias e suficientes para a
programação estruturada.
31 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
(III)Cada instrução é traduzida para uma representação interna e interpretada pela simulação
de funcionamento do processador, o que torna mais rápido o ciclo escrita-execução-modificação.
Característica de linguagens de programação interpretadas.
(IV)A sua aplicação divide e estrutura o algoritmo em partes fechadas e coerentes para evitar
a repetição de uma sequência de comandos que é utilizada em várias partes do programa.
Está falando de modularização de código por meio de procedimentos.
Resposta: E
(X) Errado.
RESOLUÇÃO:
A montagem do segundo vetor ocorre paralelamente à montagem do primeiro vetor (não em seguida,
como sugere a assertiva), já que a leitura dos valores do vetor ocorre dentro do laço. Faça o teste de mesa se
tiver dúvidas!
RESOLUÇÃO:
A montagem do segundo vetor. Ocorre paralelamente com o primeiro a questão difere quando fala que ele é
montando em seguida.
Resposta: Errado
O trecho a seguir
atribuir 50 a I
atribuir 0 a TOTAL
atribuir 0 a K
enquanto K < I faca
32 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
inıcio somar 10 a K;
atribuir TOTAL+K a TOTAL
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á impressa são, respectivamente:
(a)100 e 4
(b)150 e 5
(c)150 e 8 (d) 150 e 9
(e) 210 e 6.
RESOLUÇÃO:
A estrutura de repetição, novamente, será a que lhe exigirá mais atenção no código:
enquanto K < I faca
inıcio somar 10 a K;
atribuir TOTAL+K a TOTAL
imprimir(K);
fim;
fim-enquanto;
Essa estrutura do tipo “enquanto...faça” faz exatamente isso. Verifica uma condição, no caso, o valor de
K, e enquanto a condição estiver sendo atendida ele executa o código no seu interior. Ao término, volta a
verificar a condição e executa quantas vezes a condição estiver sendo atendida. Daí você conclui que, dentro
desta estrutura a variável de verificação (no caso, K), deve ser modificada ao longo da execução. Caso isso não
acontecesse, teríamos um “loop infinito”.
Enfim, quando a condição de verificação deixar de ser atendida, a estrutura “enquanto... faça” será pulada
e o restante do código continuará a ser executado.
Um dos objetivos é saber quantas vezes K será impresso. K será impresso tantas vezes quantas adentrar-
se na estrutura de repetição.
33 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Com K = 0, entrar-se-á uma vez na estrutura. K passará a valer 10 (somar 10 a K). Entrar-se-á na estrutura
novamente.
Contando nos dedos (sim, essa é a melhor forma de se contar, fazemos isso o tempo todo), percebesse
que a estrutura será executada com k = 0,10,20,30,40 ou seja, 5 vezes. Perceba que é K<I, e não K<=I, o que são
duas coisas diferentes!
Tendo metade da resposta, falta agora saber o valor de TOTAL.
Na primeira vez, TOTAL = TOTAL(0) + K(10) -> perceba que soma-se 10 a K antes da atribuição da soma
a total;
Na segunda vez, TOTAL = TOTAL(10) + K(20);
Na terceira vez, TOTAL = TOTAL(30) + K(30);
Na quarta vez, TOTAL = TOTAL(60) + K(40);
Na quinta vez, TOTAL = TOTAL(100) + K(50);
Ainda, observe que o último valor de K, 50, será reprovado na próxima verificação, por ser igual a I, e toda
a estrutura “enquanto” será pulada. Entretanto, nada impediu que quando dentro da estrutura na passagem
anterior, K, que valia 40, passasse a valer 50, pois a verificação somente ocorre no início.
Pulada a estrutura “enquanto...faça”, o valor de TOTAL será impresso, e este equivale a 150.
Resposta: B
34 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
35 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Lista de questões
Gabarito
1. E 16. C 31. E
2. C 17. E 32. B
3. C 18. C 33. E
4. C 19. C 34. E
5. D 20. E 35. B
6. C 21. E
7. C 22. C
8. C 23. C
9. C 24. C
10. C 25. E
11. C 26. C
12. C 27. E
13. C 28. A
14. C 29. A
15. E 30. B
36 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
O escopo em que uma variável é declarada define, obrigatoriamente, a que função do tipo pública essa variável se
associa.
( ) Certo.
( ) Errado.
O uso de comandos de impressão para rastrear os valores das variáveis durante a execução do programa é um
exemplo de técnica de depuração.
( ) Certo.
( ) Errado.
Uma estrutura de seleção encadeada heterogênea ocorre quando não é possível identificar um padrão lógico de
construção em uma estrutura de seleção encadeada.
( ) Certo.
( ) Errado.
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.
37 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
(e) SE ENTÃO.
(f) CASO SELECIONE.
(g) CASO REPITA
(h) SE ENTÃO SENÃO.
De acordo com dados da SABESP, um pequeno buraco de 2 milímetros no encanamento desperdiça 3,2 mil litros
de água em um dia. Um Analista escreveu o algoritmo em pseudocódigo abaixo para calcular o desperdício de
água em função de buracos em encanamentos.
38 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
( ) Certo.
( ) Errado.
Variáveis declaradas dentro de funções ou procedimentos são chamadas de variáveis locais e não são visíveis por
outras funções. Por esse motivo, não é possível declarar variáveis que possam ser utilizadas por qualquer função
de um programa.
( ) Certo.
( ) Errado.
Estruturas de repetição são usadas para que determinado bloco de comandos sejam executados diversas vezes. A
garantia de parada da repetição ocorre por meio de uma condição que é verificada a cada nova iteração.
Dependendo do tipo de estrutura de repetição utilizado, o bloco de comandos é executado pelo menos uma vez.
( ) Certo.
( ) Errado.
É possível implementar procedimentos cujos valores gerados podem ser armazenados em variáveis que garantem
sua existência mesmo após o término da execução de tais procedimentos.
( ) Certo.
( ) Errado.
39 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
( ) Errado.
( ) Certo.
( ) Errado.
Estruturas de repetição permitem que uma sequência de comandos seja executada repetidamente até que
determinada condição de interrupção seja satisfeita. É possível que, em determinada execução do algoritmo, a
sequência de comandos não seja executada nenhuma vez.
( ) Certo.
( ) Errado.
( ) Errado.
40 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Quando um break é encontrado dentro de um laço for, a execução do código é interrompida e o programa é
finalizado.
( ) Certo.
( ) Errado.
( ) Errado.
( ) Errado.
Parâmetros são pontos de comunicação entre módulos de um programa. A passagem de parâmetros, que consiste
na substituição do parâmetro formal pelo parâmetro real, pode ser realizada por valor ou por referência.
( ) Certo.
( ) Errado.
41 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Em lógica de programação, uma constante é um valor fixo que não se modifica ao longo do tempo durante a
execução de um programa. Essa constante pode ser numérica, lógica ou literal.
( ) Certo.
( ) Errado.
( ) Errado.
( ) Errado.
Um diagrama de blocos é uma forma padronizada para se representar os passos lógicos de determinado
processamento. Por meio do diagrama, pode ser utilizada uma sequência de símbolos, com significado bem
definido, para auxiliar a representação dos passos de um processamento.
( ) Certo.
( ) Errado.
42 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
A respeito da lógica de programação, que é fundamental para o desenvolvimento de códigos por meio de
linguagens de programação, julgue os itens subsequentes.
Um algoritmo pode ser definido como uma sequência finita de passos que levam à execução de determinada tarefa
ou conjunto de tarefas.
( ) Certo.
( ) Errado.
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.
Na lógica de programação, um bloco de comando é definido como um conjunto de ações para determinada função
e tem como delimitadores as palavras reservadas INPUT e OUTPUT.
( ) Certo.
( ) Errado.
Os algoritmos são sequências finitas de instruções que, quando corretamente executadas, levam à solução de um
problema
( ) Certo.
( ) Errado.
43 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
( ) Errado.
28. (FUMARC - 2013 - TJM-MG - Oficial Judiciário - Assistente Técnico de Manutenção de Informática)
Em relação aos conceitos de lógica de programação, analise as seguintes afirmativas:
(IV) Uma constante é um determinado valor fixo que não se modifica durante a execução de um programa.
(V) Uma variável está associada a uma posição de memória, cujo conteúdo pode ser modificado durante
a execução do programa.
(VI) Toda variável é identificada por uma constante
Estão CORRETAS as afirmativas:
F) 28
G) 56
H) 60
I) 84
J) 100
44 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Nas linguagens de programação, existem diversos tipos de instrução. Analisando o pseudocódigo a seguir, assinale
a alternativa que define o tipo de instrução que realiza sua operação. Pseudocódigo: “Enquanto houver maçãs
podres no cesto, retire-as e jogue fora. ”
F) Instrução de seleção.
G) Instrução de repetição.
H) Instrução de seleção múltipla.
I) Instrução de evolução.
J)Instrução de decremento.
Acerca de pseudocódigo, descrição narrativa e fluxograma, que são usados para a descrição de algoritmos, julgue
os próximos itens.
Para especificar os passos de um algoritmo, o pseudocódigo utiliza uma linguagem natural com característica
pouco formal, o que pode causar ambiguidade e propiciar interpretações errôneas.
( ) Certo.
( ) Errado.
45 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Este algoritmo
F) Não poderia usar a categoria 0 no comando escolha, nem atribuir zero ao valor do pedágio.
G) Apresenta erro de lógica na condição do comando condicional se.
H) Teria que usar uma condição no comando enquanto (verdadeiro) faça, pois este não pode avaliar apenas
o valor lógico verdadeiro.
I) Tem erro de sintaxe, pois o comando escolha deveria estar dentro da cláusula senão do comando condicional
se.
J) Tem erro de sintaxe, pois o comando escolha deveria ter a cláusula senão, que é obrigatória.
36. (FCC - 2011 - TRT - 1ª REGIÃO (RJ) - Analista Judiciário - Tecnologia da Informação)
Considere:
(V) Sequência, decisão e iteração são as estruturas necessárias e suficientes para o desenvolvimento da
programação de computadores.
(VI) Uma sequência de passos, incluindo a forma como os dados serão armazenados no computador,
permitindo que o problema possa ser resolvido de maneira automática e repetitiva.
(VII) Cada instrução é traduzida para uma representação interna e interpretada pela simulação de
funcionamento do processador, o que torna mais rápido o ciclo escrita-execução-modificação.
(VIII) A sua aplicação divide e estrutura o algoritmo em partes fechadas e coerentes para evitar a repetição
de uma sequência de comandos que é utilizada em várias partes do programa.
Em relação à programação de computadores, as definições contidas nos itens I, II, III e IV correspondem,
respectivamente, à programação
46 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
( ) Certo.
( ) Errado.
O trecho a seguir
atribuir 50 a I atribuir
0 a TOTAL atribuir 0 a
K
enquanto K < I faca
inıcio somar 10 a K;
atribuir TOTAL+K a TOTAL
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á impressa são, respectivamente:
(d) 100 e 4
(e) 150 e 5
(f) 150 e 8 (d) 150 e 9
(e) 210 e 6.
47 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Resumo direcionado
Conceitos Básicos
A Lógica de Programação é essencial para que pessoas possam construir ou desenvolver programas de
computadores, também é definida como um conjunto de técnicas para encadear pensamentos a fim de atingir
determinado objetivo.
Estes objetivos, são alcançados com a lógica de programação, esta lógica é obtida através da construção dos
mais diversos tipos de algoritmos. Em outras palavras ao criarmos um algoritmo, este aponta uma sequência de
instruções que levam a solução de um problema existente no mundo real.
Podemos afirmar que a lógica de programação é um paradigma de programação que faz o uso da lógica da
matemática.
48 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Tipo de Dados
3. Dados Elementares
Os dados elementares, também chamados de dados simples, atômicos ou privados. São assim
chamados, pois não podem ser quebrados em partes menores.
Logico: os dados lógicos, também conhecido como booleanos, são presentados pelos valores
de (VERDADEIRO ou FALSO), ou (1 ou 0), sempre representado por um dos dois valores,
pessoal, eu disse SEMPRE!
Real: os dados reais, também conhecidos popularmente como, ponto flutuante, ou Double, ou
float. Armazenam dados do tipo numéricos com suas partes fracionadas, ao contrário do inteiro,
o qual falamos agora pouco.
Exemplo: 95,36, 4.250,36.
Caracteres: sem dúvidas é o mais usado no meio dos algoritmos, este modelo representam os
dados do tipo letras, dígitos, símbolos.
Exemplo: ‘Maria’, ‘Antônio’, ‘ABC’.
4. Dados Estruturados:
Os dados estruturados, são arranjos ou composições realizadas sobre os dados elementares, por este
motivo, os dados estruturados podem ser chamados de dados compostos. Temos os seguintes tipos:
Vetor, String, Lista.
Vetor: é representado por uma estrutura unidimensional com números fixo de posições que só
aceitam dados do mesmo tipo.
Exemplo: vetor de número com quatro posições: [4,3,2,1]
Exemplo: vetor de String com quatro posições: [‘A’,’B’,’E’,’J’]
Constantes
A constantes é muito parecido com a variável, lembrando que, a variável recebe um valor e o guarda em um
espaço de memória e neste caso o valor pode ser alterado várias vezes, quantas vezes você precisar, no caso da
constante o valor é fixo, ele nunca é alterado, esta é a ideia de constante, bem simples mesmo pessoal.
49 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Entrada e Saída
Derivados da sigla E/S, ou mesmo (Input/Output) ou ainda (I/O) é o termo muito utilizado no ramo da
computação, indicando a (inserção) de dados por meio de alguma modalidade de código ou sistema, para o
hardware ou algum outro programa, também, a sua saída de dados ou (obtenção de dados) ou retorno de uma
operação de um processo.
Alguns exemplos de entrada são: teclado, mouse, scanner, leitor de código de barras, joystick.
São denominados de dispositivos de entrada e saída, os responsáveis por incorporar e extrair informações
de um sistema de computação. Os periféricos trabalham por meios de interrupções que realizam o processo,
executando e o interrompendo, desta maneira, os dispositivos enviam interrupções a CPU por meio do controlador
em conjunto com o processador.
Alunos, falei um pouco sobre entrada e saída, afinal de contas, quando construímos um algoritmo que fará
parte de um sistema, ele receberá informações que provavelmente serão armazenadas nas mais diversas variáveis
e posições de memórias, onde serão encaminhadas ao processador para que ele possa realizar os devidos cálculos
com precisão e devolver o retorno da operação.
Em resumo, toda a informação entra (Input), logo em seguida é processada e devolvida (Output).
Resumindo em uma linha: nada é feito por acaso!
Podemos dizer que quando digitamos um texto em um site de pesquisa ou em um sistema, estamos inseridos
dados, possivelmente realizando uma pesquisa, tentando de alguma forma obter determinada informação o
resultado desta busca, no caso o retorno, é uma saída e dados.
Operadores Aritméticos
Os operadores numéricos são essências no processo da Lógica de Programação, pois por meio deles
realizamos as mais diversas operações para obtemos o resultado desejado.
50 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
1 PROGRAMA SOMA:
2 VAR
3 N1, N2, TL;
4 INICIO
5 N1 10;
6 N2 20;
7 TL N1 + N2;
8 FIM.
Viu como é bem tranquilo? Porém explicarei detalhadamente cada linha do programa:
Na linha de número 1, damos um nome ao programa, afinal, todo programa tem que ter um
nome.
Na linha de número 2, início onde declaro as variáveis.
Na linha de número 3, declarei 3 variáveis do tipo numéricas, este tipo é adequada para receber
números, desde que não sejam números fracionados.
Na linha de número 4, início o programa, pois todo programa tem um início e fim.
Na linha de número 5, a primeira variável recebe o valor de 10.
Na linha de número 6 a segunda variável recebe o valor de 20.
Na linha de número 7 é realizada a soma das variáveis com os valores contidos nelas e este valor
é lançado dentro da variável de nome TL que significa valor total.
Na linha de número 8 é o fim do programa, pois todo programa tem que ter uma linha de código
finalizando o algoritmo.
Partindo deste princípio observando os detalhes da ordem e execução do algoritmo, nota-se que não é
nenhum bicho de sete cabeças.
A baixo, segue uma pequena tabela dos operadores aritméticos e sua ordem de uso, assim como são usados
na matemática também.
51 de 52| www.direcaoconcursos.com.br
Prof. Márcio Saraiva
Engenharia de Software - Lógica de Programação Aula 00
Operadores Relacionais
Os operadores relacionais são utilizados para a comparação de números e literais, retornado valores lógicos,
quando os operadores que possuem a mesma prioridade, o que vier primeiro, deverá ser priorizado. Não podemos
nos esquecer que os parênteses sempre possui a maior prioridade. Os valores retornados sempre serão booleanos,
isto é, (VERDADEIRO ou FALSO).
Operadores Lógicos
Os operadores lógicos, servem para combinar valores de expressões retornando valores lógicos
(VERDADEIRO ou FALSO).
52 de 52| www.direcaoconcursos.com.br