·
Engenharia de Produção ·
Algoritmos Numéricos
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
43
Construindo Algoritmos para Cálculo de Bolsas em Dólares
Algoritmos Numéricos
UNIANCHIETA
9
Introdução aos Sistemas: Elementos e Interações
Algoritmos Numéricos
UNIANCHIETA
18
Plano de Ensino - Algoritmos e Linguagem de Programação
Algoritmos Numéricos
UNIANCHIETA
23
Algoritmos e Programação: Definições e Exemplos Práticos
Algoritmos Numéricos
UNIANCHIETA
8
Histórico dos Computadores e Noções de Hardware
Algoritmos Numéricos
UNIANCHIETA
58
Representação Gráfica de Algoritmos e Resolução de Problemas
Algoritmos Numéricos
UNIANCHIETA
3
Lista 3 - Algoritmos Numéricos 2021 2
Algoritmos Numéricos
UFES
1
Atividade Extra - Algoritmos Numéricos 2023 2
Algoritmos Numéricos
UFES
1
Lista - Algoritmos Numéricos 2023 2
Algoritmos Numéricos
UFES
Texto de pré-visualização
ALGORITMOS Rodrigo Kiyoshi Saito rodrigokanchietabr Necessidade de Usar a Lógica Usar a lógica é um favor a ser considerado por todos principalmente pelos profissionais da área de Tecnologia da Informação pois seu diaadia dentro das organizações é solucionar problemas e atingir os objetivos apresentados por seus usuários com eficiência e eficácia utilizando recursos computacionais eou automatizados mecatronicamente Necessidade de Usar a Lógica Saber lidar com problemas de ordem administrativa de controle de planejamento e de estratégia requer atenção e boa performance de conhecimento de nosso raciocínio Porém é necessário considerar que ninguém ensina ninguém a pensar pois todas as pessoas normais possuem esse dom MANZANO e OLIVEIRA 2007 p 4 Aplicabilidade da Lógica no Auxílio do Desenvolvimento de Programas Diagrama de blocos é um instrumento que visa estabelecer visualmente a sequencia de operações a ser efetuada por um programa de computador Aplicabilidade da Lógica no Auxílio do Desenvolvimento de Programas A técnica de desenvolvimento de diagrama de blocos permite ao profissional de desenvolvimento uma grande facilidade na posterior codificação do programa em qualquer uma das linguagens de programação existentes pois na sua elaboração não se leva em conta o detalhamento sintático e estrutural que uma linguagem utiliza Aplicabilidade da Lógica no Auxílio do Desenvolvimento de Programas O diagrama de blocos é uma ferramenta que possibilita definir o detalhamento operacional que um programa deve executar sendo um instrumento tão valioso quanto é uma planta de um arquiteto A técnica de programação estruturada Consiste em uma metodologia tendo os seguintes objetivos Agilizar a codificação da escrita da programação Facilitar a depuração de sua leitura Permitir a verificação de possíveis falhas apresentadas pelos programas Facilitar as alterações e atualizações dos programas A técnica de programação estruturada Deve ser composta por quatro passos fundamentais Escrever as instruções em sequência ligadas entre si apenas por estruturas sequenciais repetitivas ou de selecionamento Escrever instruções em grupos e combinálas A técnica de programação estruturada Deve ser composta por quatro passos fundamentais Distribuir módulos do programa entre os diferentes programadores que trabalharão sob a supervisão de um programador sênior ou chefe de programação Revisar o trabalho executado em reuniões regulares e previamente programadas em que compareçam apenas programadores de um mesmo nível Diferenciação de nomenclaturas Fluxograma É uma ferramenta usada e desenvolvida pelos profissionais de sistemas de informação Tem como finalidade descrever o fluxo de ação de um determinado trabalho lógico seja manual ou mecânico especificando os suportes usando para os dados e para as informações Diferenciação de nomenclaturas Fluxograma Usa símbolos convencionais norma ISO 5807 1985 permitindo poucas variações Representados por alguns desenhos geométricos básicos os quais indicarão os símbolos de entrada de dados do processamento de dados e da saída acompanhados dos procedimentos requeridos pelo analista de sistemas a serem realizados pelo programador por meio do desenvolvimento do raciocínio lógico diagrama de blocos e codificação Diferenciação de nomenclaturas Diagrama de Blocos Pode ser referenciado como diagrama de fluxo não confundir com fluxograma O objetivo do uso dessa ferramenta é descrever o método e a sequência das ações a serem estabelecidas para um computador Diferenciação de nomenclaturas Diagrama de Blocos Pode ser desenvolvido em qualquer detalhamento que seja necessário Essa ferramenta usa diversos símbolos geométricos os quais estabelecerão as sequências de operações a serem efetuadas em processamento computacional Diferenciação de nomenclaturas Diagrama de Blocos httpswwwsmartdrawcomblockdiagramexamplesblockdiagramchemical facility Diferenciação de nomenclaturas Algoritmos Do ponto de vista matemático pode ser definido como um conjunto de regras formais que serão utilizadas para a resolução de um grupo de problemas semelhantes Podese dizer também que é um conjunto de regras formais que serão utilizadas para a resolução de um grupo de problemas semelhantes Diferenciação de nomenclaturas Algoritmos Podese dizer também que é um conjunto de regras formais para a obtenção de um resultado ou da solução de um problema FORBELLONE e EBERSPACHER 2000 englobando formulas e expressões aritméticas Diferenciação de nomenclaturas Algoritmos Do ponto de vista computacional um algoritmo pode ser descrito basicamente de duas formas uma gráfica e outra textual BERG E FIGUERÓ 1998 sendo considerado gráfico quando se utiliza de diagrama de blocos ou textual quando baseado em um algoritmo natural semelhante a uma receita culinária ou numa linguagem de projeto de programação Diferenciação de nomenclaturas Algoritmos Algoritmo pode ser entendido do ponto de vista computacional como a definição de passos a partir do entendimento lógico de um problema realizado por um programador com o objetivo de transformar esse problema em um elemento um programa que seja possível de ser tratado e executado por um computador Noções de Lógica O uso corriqueiro da palavra lógica está normalmente relacionado à coerência e à racionalidade Frequentemente se associa lógica apenas à matemática não se percebendo sua aplicabilidade e a sua relação com as demais ciências Noções de Lógica Podemos relacionar a lógica com a correção de pensamento pois uma de suas preocupações é determinar quais operações são válidas e quais não fazendo análises das formas e leis do pensamento Noções de Lógica Devemos ressaltar que apesar de aparente coerência de um encadeamento lógico ele pode ser válido ou não em sua estrutura Existe lógica no diaadia Sempre que pensamos a lógica e a ilógica necessariamente nos acompanham Quando falamos ou escrevemos estamos expressando nosso pensamento logo precisamos usar a lógica nessas atividades Existe lógica no diaadia Podemos perceber a importância da lógica em nossa vida não só na teoria como na prática já que quando queremos pensar falar escrever ou agir corretamente precisamos colocar ordem no pensamento isto é utilizar lógica O que é um algoritmo O objetivo principal do estudo da Lógica de Programação é a construção de algoritmos coerentes e válidos Um algoritmo pode ser definido como uma sequencia de passos que visam a atingir um objetivo bem definido O que é um algoritmo Quando elaboramos um algoritmo devemos especificar ações claras e precisas que a partir de um estado inicial após um período de tempo finito produzem um estado final previsível e bem definido O que é um algoritmo Isso significa que o algoritmo fixa um padrão de comportamento a ser seguido uma norma de execução a ser trilhada com vistas a alcançar como resultado final a solução de um problema garantindo que sempre que executado sob as mesmas condições produza o mesmo resultado Por que é importante construir um algoritmo Um algoritmo tem por objetivo representar mais fielmente o raciocínio envolvido na Lógica de Programação e dessa forma permitenos abstrair de uma série de detalhes computacionais que podem ser acrescentados mais tarde Por que é importante construir um algoritmo Outra importância da construção dos algoritmos é que em vez concebida uma solução algorítmica para um problema esta pode ser traduzida para qualquer linguagem de programação a ser agregada das funcionalidades disponíveis nos diversos ambientes costumamos denominar esse processo de codificação Por que é importante construir um algoritmo Podemos escrever um primeiro algoritmo de exemplo utilizando português coloquial que descreva o comportamento na resolução de uma determinada atividade como por exemplo a troca de uma lâmpada Por que é importante construir um algoritmo Apesar de aparentemente óbvia demais muitas vezes realizamos esse tipo de atividade inconscientemente sem percebermos seus pequenos detalhes que são as ações que nos levam a alavancar o objetivo proposto Por que é importante construir um algoritmo Algoritmo 1 Troca da lâmpada pegar uma escada posicionar a escada embaixo da lâmpada buscar uma lâmpada nova subir na escada retirar a lâmpada velha colocar a lâmpada nova História Linguagem de programação criada por Dennis Ritchie entre 1969 e 1973 na Bell Labs hoje ATT Desenvolvido para auxiliar no desenvolvimento do UNIX antes escrito em Assembly C foi baseado na linguagem B criada por Ken Thompson que por sua vez foi baseado na linguagem BCLP Basic Combined Programming Language Compilação X Interpretação A conversão ou tradução de um algoritmo escrito em uma determinada linguagem de programação para a linguagem de máquina pode ser feita de duas maneiras por compilação ou por interpretação Isso dependerá da linguagem Compilação X Interpretação Linguagens compiladas dependem de um programa compilador que leia o algoritmo escrito e o convertam para um formato pronto para ser executado Este processo gera um arquivo que poderá ser executado sempre que necessário Programas compilados são rápidos mas não são mutiplataforma e dependem de uma alteração depende de nova compilação para o funcionamento Exemplos de linguagens compiladas C e Pascal Compilação X Interpretação Linguagens interpretadas dependem de um programa interpretador que faz a tradução do algoritmo escrito na medida em que vai sendo executado Programas interpretados são lentos mas normalmente são multiplataformas e trazem agilidade nas alterações por serem flexíveis não necessitando de uma nova compilação Exemplos de linguagens interpretadas PHP Pearl e Javascript Compilação X Interpretação Embora haja esta distinção nem sempre isso é tão claro Algumas linguagens são compiladas para máquinas virtuais e depois interpretadas Exemplos Java e C Compilação X Interpretação Compiladores são programas que traduzem o texto de uma linguagem de programação em um arquivo que contém código de máquina Linkeditores juntam diversos arquivos contendo código de máquina para gerar um arquivo executável Compilação X Interpretação Tipos de Arquivos Fonte Arquivo em formato texto puro contendo o programa escrito em uma linguagem Objeto Arquivo em código de máquina criado pelo compilador usando um arquivo fonte Executável Programa pronto para ser executado criado pelo linkeditor juntando o arquivo objeto criado pelo programador com as bibliotecas da linguagem e do SO Exercício 1 Três senhoras 1 Três senhoras dona Branca dona Rosa e dona Violeta passeavam pelo parque quando dona Rosa disse Não é curioso que estejamos vestidas de cores branca rosa e violeta embora nenhuma de nós esteja usando um vestido de cor igual ao seu nome Uma simples coincidência respondeu a senhora com o vestido violeta Qual a cor do vestido de cada senhora Exercício 2 Travessia segura Um homem precisa atravessar um rio com um barco que possui capacidade apenas para carregar ele mesmo e mais uma de suas três cargas que são um lobo um bode e um maço de alfafa O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas Escreva um algoritmo mostrando a resposta ou seja indicando todas as ações necessárias para efetuar uma travessia segura Exercício 3 Torre de Hanoi Elabore um algoritmo que mova três discos de uma Torre de Hanoi que consiste em 3 hastes a b c uma das quais serve de suporte para três discos de tamanhos diferentes 1 2 3 os menores sobre os maiores Podese mover um disco de cada vez para qualquer haste contanto que nunca seja colocado um disco maior sobre um menor O objetivo é transferir os três discos para outra haste Jogo da Torre De Hanoi em httpsappsunivespbrtorredehanoi Exercício 4 Jesuítas e Canibais Três jesuítas e três canibais precisam atravessar um rio para tal dispõem de um barco com capacidade para duas pessoas Por medida de segurança não se deve permitir que em alguma margem a quantidade de jesuítas seja inferior à de canibais Qual a solução para efetuar a travessia com segurança Elabore um algoritmo mostrando a resposta indicando as ações que concretizam a solução deste problema Jogo dos Canibal e Missionarios em httprachacucacombrjogosmissionariosecanibais Referência de Sites Jogo do Campones Ovelha e Lobo httprachacucacombrjogosoloboea ovelha Jogo do Preso Policial Pai e Mae httpwwwjaponesnetbrtestedeqijapones Resolução Exercício 1 Se a senhora com vestido violeta respondeu a dona Rosa então ela não é a própria dona Rosa Além disso como ela não tem o vestido da mesma cor de seu nome ela também não é a dona Violeta Logo é a dona Branca que está com o vestido violeta Dona Rosa não está usando rosa nem o violeta portanto só pode estar usando o branco Consequentemente dona Violeta veste o vestido Rosa Resolução Exercício 2 levar o bode para o outro lado do rio voltar sem carga nenhuma levar o lobo para o outro lado do rio voltar com o bode levar a alfafa para o outro lado do rio voltar sem carga nenhuma levar o bode para o outro lado do rio Resolução Exercício 3 mover o disco 1 da torre A para a torre B mover o disco 2 da torre A para a torre C mover o disco 1 da torra B para a torre C mover o disco 3 da torre A para a torre B mover o disco 1 da torre C para a torre A mover o disco 2 da torre C para a torre B mover o disco 1 da torre A para a torre B Resolução Exercício 4 atravessar um jesuíta e um canibal para a margem B voltar o jesuíta para a margem A atravessar dois canibais para a margem B voltar um canibal para a margem A atravessar dois jesuítas para a margem B voltar um jesuíta e um canibal para a margem A atravessar dois jesuítas para a margem B voltar um canibal para a margem A atravessar dois canibais para a margem B voltar um canibal para a margem A atravessar dois canibais para a margem B
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
43
Construindo Algoritmos para Cálculo de Bolsas em Dólares
Algoritmos Numéricos
UNIANCHIETA
9
Introdução aos Sistemas: Elementos e Interações
Algoritmos Numéricos
UNIANCHIETA
18
Plano de Ensino - Algoritmos e Linguagem de Programação
Algoritmos Numéricos
UNIANCHIETA
23
Algoritmos e Programação: Definições e Exemplos Práticos
Algoritmos Numéricos
UNIANCHIETA
8
Histórico dos Computadores e Noções de Hardware
Algoritmos Numéricos
UNIANCHIETA
58
Representação Gráfica de Algoritmos e Resolução de Problemas
Algoritmos Numéricos
UNIANCHIETA
3
Lista 3 - Algoritmos Numéricos 2021 2
Algoritmos Numéricos
UFES
1
Atividade Extra - Algoritmos Numéricos 2023 2
Algoritmos Numéricos
UFES
1
Lista - Algoritmos Numéricos 2023 2
Algoritmos Numéricos
UFES
Texto de pré-visualização
ALGORITMOS Rodrigo Kiyoshi Saito rodrigokanchietabr Necessidade de Usar a Lógica Usar a lógica é um favor a ser considerado por todos principalmente pelos profissionais da área de Tecnologia da Informação pois seu diaadia dentro das organizações é solucionar problemas e atingir os objetivos apresentados por seus usuários com eficiência e eficácia utilizando recursos computacionais eou automatizados mecatronicamente Necessidade de Usar a Lógica Saber lidar com problemas de ordem administrativa de controle de planejamento e de estratégia requer atenção e boa performance de conhecimento de nosso raciocínio Porém é necessário considerar que ninguém ensina ninguém a pensar pois todas as pessoas normais possuem esse dom MANZANO e OLIVEIRA 2007 p 4 Aplicabilidade da Lógica no Auxílio do Desenvolvimento de Programas Diagrama de blocos é um instrumento que visa estabelecer visualmente a sequencia de operações a ser efetuada por um programa de computador Aplicabilidade da Lógica no Auxílio do Desenvolvimento de Programas A técnica de desenvolvimento de diagrama de blocos permite ao profissional de desenvolvimento uma grande facilidade na posterior codificação do programa em qualquer uma das linguagens de programação existentes pois na sua elaboração não se leva em conta o detalhamento sintático e estrutural que uma linguagem utiliza Aplicabilidade da Lógica no Auxílio do Desenvolvimento de Programas O diagrama de blocos é uma ferramenta que possibilita definir o detalhamento operacional que um programa deve executar sendo um instrumento tão valioso quanto é uma planta de um arquiteto A técnica de programação estruturada Consiste em uma metodologia tendo os seguintes objetivos Agilizar a codificação da escrita da programação Facilitar a depuração de sua leitura Permitir a verificação de possíveis falhas apresentadas pelos programas Facilitar as alterações e atualizações dos programas A técnica de programação estruturada Deve ser composta por quatro passos fundamentais Escrever as instruções em sequência ligadas entre si apenas por estruturas sequenciais repetitivas ou de selecionamento Escrever instruções em grupos e combinálas A técnica de programação estruturada Deve ser composta por quatro passos fundamentais Distribuir módulos do programa entre os diferentes programadores que trabalharão sob a supervisão de um programador sênior ou chefe de programação Revisar o trabalho executado em reuniões regulares e previamente programadas em que compareçam apenas programadores de um mesmo nível Diferenciação de nomenclaturas Fluxograma É uma ferramenta usada e desenvolvida pelos profissionais de sistemas de informação Tem como finalidade descrever o fluxo de ação de um determinado trabalho lógico seja manual ou mecânico especificando os suportes usando para os dados e para as informações Diferenciação de nomenclaturas Fluxograma Usa símbolos convencionais norma ISO 5807 1985 permitindo poucas variações Representados por alguns desenhos geométricos básicos os quais indicarão os símbolos de entrada de dados do processamento de dados e da saída acompanhados dos procedimentos requeridos pelo analista de sistemas a serem realizados pelo programador por meio do desenvolvimento do raciocínio lógico diagrama de blocos e codificação Diferenciação de nomenclaturas Diagrama de Blocos Pode ser referenciado como diagrama de fluxo não confundir com fluxograma O objetivo do uso dessa ferramenta é descrever o método e a sequência das ações a serem estabelecidas para um computador Diferenciação de nomenclaturas Diagrama de Blocos Pode ser desenvolvido em qualquer detalhamento que seja necessário Essa ferramenta usa diversos símbolos geométricos os quais estabelecerão as sequências de operações a serem efetuadas em processamento computacional Diferenciação de nomenclaturas Diagrama de Blocos httpswwwsmartdrawcomblockdiagramexamplesblockdiagramchemical facility Diferenciação de nomenclaturas Algoritmos Do ponto de vista matemático pode ser definido como um conjunto de regras formais que serão utilizadas para a resolução de um grupo de problemas semelhantes Podese dizer também que é um conjunto de regras formais que serão utilizadas para a resolução de um grupo de problemas semelhantes Diferenciação de nomenclaturas Algoritmos Podese dizer também que é um conjunto de regras formais para a obtenção de um resultado ou da solução de um problema FORBELLONE e EBERSPACHER 2000 englobando formulas e expressões aritméticas Diferenciação de nomenclaturas Algoritmos Do ponto de vista computacional um algoritmo pode ser descrito basicamente de duas formas uma gráfica e outra textual BERG E FIGUERÓ 1998 sendo considerado gráfico quando se utiliza de diagrama de blocos ou textual quando baseado em um algoritmo natural semelhante a uma receita culinária ou numa linguagem de projeto de programação Diferenciação de nomenclaturas Algoritmos Algoritmo pode ser entendido do ponto de vista computacional como a definição de passos a partir do entendimento lógico de um problema realizado por um programador com o objetivo de transformar esse problema em um elemento um programa que seja possível de ser tratado e executado por um computador Noções de Lógica O uso corriqueiro da palavra lógica está normalmente relacionado à coerência e à racionalidade Frequentemente se associa lógica apenas à matemática não se percebendo sua aplicabilidade e a sua relação com as demais ciências Noções de Lógica Podemos relacionar a lógica com a correção de pensamento pois uma de suas preocupações é determinar quais operações são válidas e quais não fazendo análises das formas e leis do pensamento Noções de Lógica Devemos ressaltar que apesar de aparente coerência de um encadeamento lógico ele pode ser válido ou não em sua estrutura Existe lógica no diaadia Sempre que pensamos a lógica e a ilógica necessariamente nos acompanham Quando falamos ou escrevemos estamos expressando nosso pensamento logo precisamos usar a lógica nessas atividades Existe lógica no diaadia Podemos perceber a importância da lógica em nossa vida não só na teoria como na prática já que quando queremos pensar falar escrever ou agir corretamente precisamos colocar ordem no pensamento isto é utilizar lógica O que é um algoritmo O objetivo principal do estudo da Lógica de Programação é a construção de algoritmos coerentes e válidos Um algoritmo pode ser definido como uma sequencia de passos que visam a atingir um objetivo bem definido O que é um algoritmo Quando elaboramos um algoritmo devemos especificar ações claras e precisas que a partir de um estado inicial após um período de tempo finito produzem um estado final previsível e bem definido O que é um algoritmo Isso significa que o algoritmo fixa um padrão de comportamento a ser seguido uma norma de execução a ser trilhada com vistas a alcançar como resultado final a solução de um problema garantindo que sempre que executado sob as mesmas condições produza o mesmo resultado Por que é importante construir um algoritmo Um algoritmo tem por objetivo representar mais fielmente o raciocínio envolvido na Lógica de Programação e dessa forma permitenos abstrair de uma série de detalhes computacionais que podem ser acrescentados mais tarde Por que é importante construir um algoritmo Outra importância da construção dos algoritmos é que em vez concebida uma solução algorítmica para um problema esta pode ser traduzida para qualquer linguagem de programação a ser agregada das funcionalidades disponíveis nos diversos ambientes costumamos denominar esse processo de codificação Por que é importante construir um algoritmo Podemos escrever um primeiro algoritmo de exemplo utilizando português coloquial que descreva o comportamento na resolução de uma determinada atividade como por exemplo a troca de uma lâmpada Por que é importante construir um algoritmo Apesar de aparentemente óbvia demais muitas vezes realizamos esse tipo de atividade inconscientemente sem percebermos seus pequenos detalhes que são as ações que nos levam a alavancar o objetivo proposto Por que é importante construir um algoritmo Algoritmo 1 Troca da lâmpada pegar uma escada posicionar a escada embaixo da lâmpada buscar uma lâmpada nova subir na escada retirar a lâmpada velha colocar a lâmpada nova História Linguagem de programação criada por Dennis Ritchie entre 1969 e 1973 na Bell Labs hoje ATT Desenvolvido para auxiliar no desenvolvimento do UNIX antes escrito em Assembly C foi baseado na linguagem B criada por Ken Thompson que por sua vez foi baseado na linguagem BCLP Basic Combined Programming Language Compilação X Interpretação A conversão ou tradução de um algoritmo escrito em uma determinada linguagem de programação para a linguagem de máquina pode ser feita de duas maneiras por compilação ou por interpretação Isso dependerá da linguagem Compilação X Interpretação Linguagens compiladas dependem de um programa compilador que leia o algoritmo escrito e o convertam para um formato pronto para ser executado Este processo gera um arquivo que poderá ser executado sempre que necessário Programas compilados são rápidos mas não são mutiplataforma e dependem de uma alteração depende de nova compilação para o funcionamento Exemplos de linguagens compiladas C e Pascal Compilação X Interpretação Linguagens interpretadas dependem de um programa interpretador que faz a tradução do algoritmo escrito na medida em que vai sendo executado Programas interpretados são lentos mas normalmente são multiplataformas e trazem agilidade nas alterações por serem flexíveis não necessitando de uma nova compilação Exemplos de linguagens interpretadas PHP Pearl e Javascript Compilação X Interpretação Embora haja esta distinção nem sempre isso é tão claro Algumas linguagens são compiladas para máquinas virtuais e depois interpretadas Exemplos Java e C Compilação X Interpretação Compiladores são programas que traduzem o texto de uma linguagem de programação em um arquivo que contém código de máquina Linkeditores juntam diversos arquivos contendo código de máquina para gerar um arquivo executável Compilação X Interpretação Tipos de Arquivos Fonte Arquivo em formato texto puro contendo o programa escrito em uma linguagem Objeto Arquivo em código de máquina criado pelo compilador usando um arquivo fonte Executável Programa pronto para ser executado criado pelo linkeditor juntando o arquivo objeto criado pelo programador com as bibliotecas da linguagem e do SO Exercício 1 Três senhoras 1 Três senhoras dona Branca dona Rosa e dona Violeta passeavam pelo parque quando dona Rosa disse Não é curioso que estejamos vestidas de cores branca rosa e violeta embora nenhuma de nós esteja usando um vestido de cor igual ao seu nome Uma simples coincidência respondeu a senhora com o vestido violeta Qual a cor do vestido de cada senhora Exercício 2 Travessia segura Um homem precisa atravessar um rio com um barco que possui capacidade apenas para carregar ele mesmo e mais uma de suas três cargas que são um lobo um bode e um maço de alfafa O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas Escreva um algoritmo mostrando a resposta ou seja indicando todas as ações necessárias para efetuar uma travessia segura Exercício 3 Torre de Hanoi Elabore um algoritmo que mova três discos de uma Torre de Hanoi que consiste em 3 hastes a b c uma das quais serve de suporte para três discos de tamanhos diferentes 1 2 3 os menores sobre os maiores Podese mover um disco de cada vez para qualquer haste contanto que nunca seja colocado um disco maior sobre um menor O objetivo é transferir os três discos para outra haste Jogo da Torre De Hanoi em httpsappsunivespbrtorredehanoi Exercício 4 Jesuítas e Canibais Três jesuítas e três canibais precisam atravessar um rio para tal dispõem de um barco com capacidade para duas pessoas Por medida de segurança não se deve permitir que em alguma margem a quantidade de jesuítas seja inferior à de canibais Qual a solução para efetuar a travessia com segurança Elabore um algoritmo mostrando a resposta indicando as ações que concretizam a solução deste problema Jogo dos Canibal e Missionarios em httprachacucacombrjogosmissionariosecanibais Referência de Sites Jogo do Campones Ovelha e Lobo httprachacucacombrjogosoloboea ovelha Jogo do Preso Policial Pai e Mae httpwwwjaponesnetbrtestedeqijapones Resolução Exercício 1 Se a senhora com vestido violeta respondeu a dona Rosa então ela não é a própria dona Rosa Além disso como ela não tem o vestido da mesma cor de seu nome ela também não é a dona Violeta Logo é a dona Branca que está com o vestido violeta Dona Rosa não está usando rosa nem o violeta portanto só pode estar usando o branco Consequentemente dona Violeta veste o vestido Rosa Resolução Exercício 2 levar o bode para o outro lado do rio voltar sem carga nenhuma levar o lobo para o outro lado do rio voltar com o bode levar a alfafa para o outro lado do rio voltar sem carga nenhuma levar o bode para o outro lado do rio Resolução Exercício 3 mover o disco 1 da torre A para a torre B mover o disco 2 da torre A para a torre C mover o disco 1 da torra B para a torre C mover o disco 3 da torre A para a torre B mover o disco 1 da torre C para a torre A mover o disco 2 da torre C para a torre B mover o disco 1 da torre A para a torre B Resolução Exercício 4 atravessar um jesuíta e um canibal para a margem B voltar o jesuíta para a margem A atravessar dois canibais para a margem B voltar um canibal para a margem A atravessar dois jesuítas para a margem B voltar um jesuíta e um canibal para a margem A atravessar dois jesuítas para a margem B voltar um canibal para a margem A atravessar dois canibais para a margem B voltar um canibal para a margem A atravessar dois canibais para a margem B