Você está na página 1de 10

Estudo dirigido 1 12/04/2023

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.

Parte 1: A lógica de programação e o pensamento lógico

1. Com suas palavras diga o que é o pensamento lógico?

O PENSAMENTO LÓGICO É UM MEIO DE PENSAR EM SOLUÇÕES E OBTER A


MELHOR ANALIÍSE DO PROBLEMA EM QUESTÃO. O PENSAMENTO LÓGICO NOS
AJUDA A CONQUISTAR OBJETIVOS E CHEGAR A CONCLUSÕES MAIS EXATAS,
VISTO QUE O MESMO UTILIZA COMO FUNDAMENTO A IMPARCIALIDADE, A
SENSATEZ E O SENSO CRÍTICO. ALÉM DISSO, O PENSAMENTO LÓGICO
MELHORA A NOSSA CAPACIDADE D ETOMADA DE DECISÃO, JUSTAMENTE POR
APONTAR SOLUÇÕES COM BASE EM FATOS.

2. Como podemos utilizar o pensamento lógico? Como ele se relaciona com um problema que
encaramos?

O PENSAMENTO LÓGICO PODE SER UTILIZADO EM DIVERSAS SITUAÇÕES E


ÁREAS DA NOSSA VIDA. ELE PODE SER UTILIZADO PARA REFLEXÕES,
DISCUSSÕES, TRABALHOS EM GRUPOS (COMO POR EXEMPLO O BRAINSTORM/
BRAINWRITING) E TAMBÉM EM EXECUÇÕES DE TAREFAS QUE NO FINAL,
FORMAM UMA SEQUÊNCIA ORDENADA E LÓGICA DE AÇÕES PARA OBTER UM
RESULTADO.

ELE SE RELACIONA COM PROBLEMAS QUE ENCARAMOS POIS SEMPRE QUE


PRECISAMOS CONSTRUIR UM ARGUMENTO OU REALIZAR UMA TAREFA, O
PENSAMENTO LÓGICO É UM DOS PRIMEIRO FATORES UTILIZADOS POR NÓS
PARA REALIZARMOS A TOMADA DE DECISÃO E ANÁLISE DOS FATOS.
Estudo dirigido 1 12/04/2023
Projeto de Lógica e
Programação Pablo Rafael
Neves Marciano
Utilize o pensamento lógico e resolva os seguintes problemas:
a. Um homem precisa atravessar o um rio e levar um bode, um lobo e um saco de alfafa.
Mas ele só tem um barco que pode levar ele e mais outro item. Ele deve tomar
cuidado para que o lobo não fique sozinho com o bode, nem que o bode fique sozinho
com o saco de alfafa. Crie uma lógica para que o homem atravesse o rio sem perder
nenhuma de suas cargas.

1º passo: Levar o bode para o outro lado


2º passo: voltar, pegar o lobo e levar para o outro lado.
3º passo: pegar o bode e levar para o local inicial.
4º passo: deixar o bode, pegar o saco de alfafa e levar para o outro lado
5º passo: voltar e pegar o bode.

b. Crie uma lógica para resolver a problema da torre de Hanoi.


Obs.: uma peça maior não pode ficar sobre uma peça menor. Só pode mover uma
peça por vez.

1º passo: mover a peça vermelha do gancho A para o gancho C


2º passo: mover a peça verde do gancho A para o gancho B
3º passo: mover a peça vermelha do gancho C para o gancho B
4º passo: mover a peça azul do gancho A para o gancho C
5º passo: mover a peça vermelha do gancho B para o gancho A
6º passo: mover a peça verde do gancho B para o gancho C
7º passo: Mover a peça vermelha do gancho A para o gancho C
Fim

3. Métodos de raciocínio lógico:


Das premissas até a conclusão, o processo de raciocínio lógico pode ser explicado de três
formas:

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).

4. Resolva os problemas de lógica a seguir:


a. Dada a sequência 1, 3, 5, 7, _ ... qual o próximo número?

O próximo número da sequência é o 9.

b. Um pastor diz para outro:


"Dê um de seus carneiros que ficamos com igual número de carneiros."

O outro responde:
"Nada disso, dê-me um de seus carneiros que ficarei com o dobro dos

seus". Quantos carneiros têm cada um?

O pastor da primeira fala tem 5 carneiros, enquanto o outro possui 7.

Para resolver esse problema, utilizei o sistema de equacionamento que diz

que o número de carneiros x do pastor da segunda fala acrescido de +1 é

igual ao dobro de carneiros y do autor da 1º fala. X+1= 2y.

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:

“Bruno e Camila estão em posições consecutivas na fila”


“Amanda está entre Bruno e Camila na fila”.

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.

Podemos resolver esse problema partindo das premissas falsas de João.


Estudo dirigido 1 12/04/2023
Projeto de Lógica e
Programação Pablo Rafael
Neves Marciano
Se Bruno e Camila não estão em ordens consecutivas e Amanda não está entre Bruno e
Camila na fila, podemos dizer que a única sequência que não segue as premissas falsas
de joão é:

1º da fila: Camila
2º da fila: Denise
3º da fila: Bruno
4º da fila: Amanda

Parte 2: A liguagem Portugol e suas Aplicações

1. O que é um algoritmo?

Algoritmo é uma sequência ordenada finita de regras, operações, ações e outros.

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 segunda, temos o processo de avaliar e processar todas as expressões algébricas,


relacionais e lógicas, assim como todas as estruturas de controle existentes no algoritmo
(condição e/ou repetição) para assim estabelecer comunicação com a máquina.

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.

Exemplo de um algoritmo dividido em 3 partes- Como calcular a área de um cubo:

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:

27m*27m*27m= área do cubo, (chamada de A)

3: Saída:

Escreva o valor da área do cubo:

A= 19.683m

3. Quais são as três estruturas possíveis de um algoritmo? Comente brevemente sobre cada uma.

As três estruturas são: sequencial, condicional e de repetição.

A sequencial é a estrutura padrão presente em todas as outras. Conceitualmente falando, a estrutura


sequencial é uma forma de executar tarefas a partir de uma sequencia racional de ações.

A condicional é a estrutura que executa uma tarefa a parir da veracidade de uma condição. Essa
estrutura pode ser:

Estrutura condicional simples: Nesta, a condição fará somente a determinação da execução de um


comando dentro do programa.

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.

5. O que é uma variável? Quais os tipos existentes no Portugol?

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.

As variáveis existentes no portugol são:


Inteiro;
Cadeia;
Real;
Caractere;
Lógico;

6. O que são operadores aritméticos? Quais são nativos do Portugol?

Operadores aritméticos são meios de realizar operações matemáticas dentro do código.

Em portugol, temos:
Adição (+);
Subtração (-);
Multiplicação (*);
Divisão inteira (/);
Resto da divisão inteira (%);
Potenciação (^);

7. O que são operadores relacionais? Quais são nativos do Portugol?

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

10. O que as chaves destacadas representam:

RESPOSTA: As chaves representam o início do nosso programa.

11. Prova: IUDS - 2021 - IF-RJ - Analista de Tecnologia da Informação


A programação estruturada consiste numa metodologia de projeto de programas visando
a: I - Facilitar a escrita dos programas.
II - Facilitar a leitura dos programas.
III - Facilitar a manutenção e modificação dos
programas. Estão corretas as afirmações:
a. I e II.
b. I e III.
c. II e III. RESPOSTA: ALTERNATIVA D.
d. I, II e III.
e. Nenhuma alternativa acima.
Estudo dirigido 1 12/04/2023
Projeto de Lógica e
Programação Pablo Rafael
Neves Marciano
12. O uso da recursão é particularmente apropriado para a solução daqueles problemas que
podem ser definidos de modo natural em termos recursivos. Avalie o seguinte código em
Portugol e selecione a alternativa que mostra o que será apresentado.

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?

Para isso o programa deve:

- Receber o valor da largura (L) e comprimento (C) do terreno do fazendeiro.


- Receber o numero de lotes que o fazendeiro dividiu o terreno
- Receber o valor da largura (LL) e comprimento (LC) de cada lote.

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.

Figura 4. Exemplo para solução do problema.

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.

Você também pode gostar