Escolar Documentos
Profissional Documentos
Cultura Documentos
Projeto de Lógica e
Programação Pablo Rafael
Neves Marciano
Engenharia de produção/civil noturno Valor 30% da
prova. Estudante: MURILO GRATZ GALLETTI Nota:
Pontos importantes:
Todo código deve estar no formato “.por” (formato nativo do Portugol). Todo diagrama deve estar no
formato JPEG “.jpg”. Todas as suas respostas devem estar numa pasta chamada
“NOME_SOBRENOME_ESTUDO_DIRIGIDO_1”. Essa pasta deve ser zipada no formato “.zip”
e enviada pelo portal AVA no ESTUDO DIRIGIDO 1.
2. Como podemos utilizar o pensamento lógico? Como ele se relaciona com um problema que
encaramos?
Dedução: tem o uso de uma premissa geral e uma premissa particular do processo de
raciocínio lógico para alcançar uma conclusão. Deste modo, inicialmente é criada uma lei
geral e depois são observados casos particulares com objetivo de verificar se essa lei não é
falsa.
Estudo dirigido 1 12/04/2023
Projeto de Lógica e
Programação Pablo Rafael
Neves Marciano
Indução: considerado o oposto do método anterior, uma vez que, inicia-se do particular e
segue para o geral. Nesse caso, primeiro é realizada uma coleta de casos particulares até
alcançar uma certa quantidade, em seguida é feita uma generalização.
Estudo dirigido 1 12/04/2023
Projeto de Lógica e
Programação Pablo Rafael
Neves está
Abdução: Marciano
na condição de intermediário entre os métodos anteriores. Geralmente, esse raciocínio
tem início com observações incompletas e conduz-se para uma explicação mais possível dentro do
conjunto de observações.
Confira abaixo os exemplos e indique qual processo pode ser aplicados a cada tipo de
raciocínio:
a. 1: Todos os feijões daquela saca são brancos. Esses feijões são daquela saca. Logo,
esses feijões são brancos (dedução).
b. 2: Esses feijões são daquela saca. Esses feijões são brancos. Logo, todos os feijões
daquela saca são brancos (indução).
c. 3: Todos os feijões daquela saca são brancos. Esses feijões são brancos. Logo, esses
feijões são daquela saca (abdução).
O outro responde:
"Nada disso, dê-me um de seus carneiros que ficarei com o dobro dos
c. Amanda, Bruno, Camila e Denise são as quatro primeiras pessoas de uma fila, não
necessariamente nesta ordem. João olha para os quatro e afirma:
Contudo, as duas afirmações de João são falsas. Mas sabe-se que Bruno é o terceiro
da fila. Quem está antes dele?
Bruno é o terceiro da fila, Camila é a primeira da fila e Amanda a última. Pois não está
entre Bruno e Camila. Se Amanda é a última da sequência, a segunda posição na fila
só pode ser Denise.
1º da fila: Camila
2º da fila: Denise
3º da fila: Bruno
4º da fila: Amanda
1. O que é um algoritmo?
Em programação, o algoritmo é utilizado para traçar, com base na análise, raciocínio lógico e
senso crítico, uma sequência de ações a serem feitas para chegar a um objetivo.
2. Em quantas partes podemos dividir um algoritmo? Como essas partes são normalmente
denominadas? Quais as características de cada parte? Utilize um exemplo para auxiliar na sua
resposta.
O algoritmo pode ser dividido em 3 partes. Na primeira parte, chamamos de entrada de dados,
na segunda, processamento de dados e na terceira, saída de dados já processados.
A primeira parte tem como característica o recebimento de informações necessárias para que
o algoritmo possa ser executado. No Portugol, Estas informações podem ser fornecidas no
momento em que o programa está sendo executado ou podem estar embutidas dentro do
mesmo.
Na parte de saída, todos os resultados do processamento (ou parte deles) são exibidos no/ nos
dispositivos de saída, que no nosso caso utilizando o portugol, é o monitor.
1: Entrada de dados
Largura: 27m
Estudo dirigido 1 12/04/2023
Projeto de Lógica e
Programação Pablo Rafael
NevesAltura: 27m
Marciano
Profundidade: 27m
2: Processamento:
3: Saída:
A= 19.683m
3. Quais são as três estruturas possíveis de um algoritmo? Comente brevemente sobre cada uma.
A condicional é a estrutura que executa uma tarefa a parir da veracidade de uma condição. Essa
estrutura pode ser:
Estrutura condicional composta: A estrutura condicional composta expõe que uma instrução ou bloco de
instruções só sejam executados se determinada condição for satisfeita. Caso essa condição seja falsa, é
executada outra instrução ou um bloco de instruções diferente.
A de repetição é utilizada quando precisamos repetir um determinado trecho de código um número fixo
de vezes.
Estudo dirigido 1 12/04/2023
Projeto de Lógica e
Programação Pablo Rafael
Neves Marciano
4. O que é um algoritmo em blocos? Quais as suas vantagens?
Algoritmo em blocos é uma forma padronizada de descrever os algoritmos, como uma espécie
de fluxograma.Neste fluxograma, temos balões e linhas que nos orientam para saber do que se
trata cada um dos comandos e execuções de ações.
Uma de suas vantagens, é que podemos ter uma visão mais ampla de todo o nosso código,
sendo assim mais fácil identificar erros e anomalias e escrever passos complementares.
Variáveis são termos que podemos atribuir qualquer valor dentro de um código. Podemos
descrever variáveis também como caixinhas onde armazenamos algo dentro.
Em portugol, temos:
Adição (+);
Subtração (-);
Multiplicação (*);
Divisão inteira (/);
Resto da divisão inteira (%);
Potenciação (^);
Operadores relacionais são meios capazes de realizar a comparação de valores entre variáveis e
criar declarações condicionais em nosso código.
Em portugol, temos:
= Igual
=/= Diferente
> Maior
>= Maior ou igual
< Menor
<= Menor ou igual
Estudo dirigido 1 12/04/2023
Projeto de Lógica e
Programação Pablo Rafael
Neves Marciano
8. O que são operadores lógicos? Quais são nativos do Portugol?
São operadores que nos fornecem um resultado lógico e assertivo sobre determinada coisa,
assim como verdadeiro/falso.
Em Portugol, temos:
E Disjunção
OU Conjunção
XOU Conjunção Exclusiva
NAO Negação
9. A operação lógica 10 > 5 e (Não(10 < 9) ou 3 <= 4) é verdadeira ou falsa? (Atenção aos
parênteses)
RESPOSTA: VERDADEIRA
Alternativas:
a. 4
b. 5
c. 24
d. 120 RESPOSTA: ALTERNATIVA D
e. 720
13. Procedimentos, funções, métodos, subprogramas e sub-rotinas são alguns dos termos usados
em diversas linguagens de programação para definir trechos de código que encapsulam um
comportamento útil em múltiplas situações durante a execução de programas. Esses(as) se
comunicam com o programa que os(as) chama através da passagem de zero ou mais
parâmetros (ou argumentos) e da recepção de 0 ou mais valores de retorno. Com relação ao
processo de passagem de argumentos e recepção de valores de retorno em linguagens de
programação, assinale a alternativa INCORRETA.
Alternativas
a. A passagem de parâmetro por valor garante a preservação do conteúdo original da
variável correspondente no programa que chama o procedimento, mesmo que o
procedimento modifique esse parâmetro.
b. Uma passagem de parâmetro por referência garante que o procedimento tem acesso
diretamente ao local de armazenamento do parâmetro no programa que o chama.
c. Ao passar um parâmetro por endereço para um procedimento, o programa permite
que esse procedimento modifique a estrutura de valores associada ao armazenamento
original da estrutura no programa chamador (destruindo-a ou alterando-a).
Estudo dirigido 1 12/04/2023
Projeto de Lógica e
Programação Pablo Rafael
Neves Marciano
d. É possível para um procedimento devolver como valor de retorno aquele de uma
variável local definida no procedimento.
e. É possível para um procedimento devolver como valor de retorno uma referência para
uma variável local definida no procedimento.
14. Faça um fluxo grama de um programa que deve ler três valores inteiros. O programa deve
verificar se eles podem ser os lados de um triângulo. Se forem, informar qual o tipo de
triângulo que eles formam: equilátero, isósceles ou escaleno. Propriedade: O comprimento de
cada lado de um triangulo é menor do que a soma dos comprimentos dos outros dois lados.
15. Com base no problema descrito abaixo, faça um fluxograma a fim de resolver o seguinte
problema (Problema retirado do desafio de programação de UFMA – 2008).
Um fazendeiro resolveu lotear sua fazenda e vender os lotes de terra. Sabe-se que sua fazenda
é um retângulo-quadrado e que todos os lotes também são retângulo-quadrados. O nosso
amigo fazendeiro, entretanto, está com um pequeno problema. Depois de dividir a terra em N
lotes ele acredita que irá desperdiçar uma grande quantidade de terra. (Leia-se desperdício
como “terra” que o fazendeiro não vai vender, ou seja, que não pertence a nenhum lote). O
que você acha de ajudá-lo?
Por exemplo:
Se o fazendeiro falar que seu terreno possui 10 m x 10 m e que vendeu 4 lotes de 4,5 m x 4,5
m, teremos uma distribuição de terras conforme apresentado na figura 4.
a. Com base nas informações acima, faça um fluxograma que represente um algoritmo
para resolver o problema.
b. Com base nas informações acima, faça um programa que calcule a área vendida.
Pode utilizar o exemplo acima para testar o seu programa. Nesse caso foi de 81 m² e a
área desperdiçada que foi de 19 m².
16. Faça um fluxograma que resolva o problema da torre de Hanoi.
17. Faça um algoritmo em Portugol que resolva o problema da torre de Hanoi de forma recursiva.