Baixe o app para aproveitar ainda mais
Prévia do material em texto
Exercícios de Algoritmos Prof Cláudio Marques Sequenciais 1. Escreva um algoritmo em pseudocódigo ou um programa em Pascal que seja capaz de calcular e exibir a força da gravidade, em Newtons, que atua sobre um objeto de massa conhecida a ser informada pelo usuário (em Kg) em qualquer planeta cuja aceleração da gravidade também deve ser informada pelo usuário (em m/s2). Dica: F=m.g 2. Faça um algoritmo em pseudocódigo ou um programa em Pascal que converta a temperatura da escala Celsius para outras duas escalas de temperatura, Fahrenheit e Kelvin, e as exiba ao usuário. Para realizar as conversões utilize 𝑡𝐾 = 𝑡𝑐 + 273,15 e 𝑡𝐹 = 32 + (9𝑡𝑐/5) . 3. A potência dissipada (perdida) em uma linha de transmissão elétrica, operando em corrente contínua, pode ser representada por PL = i².r, onde PL é a potência perdida na linha, i é a corrente elétrica que circula na linha e r é a resistência elétrica total da linha. Desenvolva um algoritmo em pseudocódigo ou um programa em Pascal para calcular e exibir a perda de potência (em Watts) em qualquer linha de transmissão onde se conheça a corrente (em Ampéres) e a resistência elétrica (em Ohms) da mesma. 4. Em um circuito elétrico, quando dois resistores estão ligados em paralelo podemos substituí-los por um outro, equivalente, cujo valor pode ser determinado por Req=(R1.R2)/(R1+R2). Escreva um algoritmo em pseudocódigo ou um programa em Pascal para calcular e exibir o valor da resistência equivalente quando são informadas, pelo usuário, os valores dos dois resistores ligados em paralelo (todos os valores em Ohms). 5. Um veículo sobe uma ladeira com uma velocidade constante de X Km/h (Vs) e desce a ladeira com uma velocidade constante de Y Km/h (Vd). Desenvolva um algoritmo em pseudocódigo ou um programa em Pascal que calcule e exiba a velocidade escalar média, em Km/h, da viagem compreendida pelo percurso de ida e volta quando são informadas as velocidades de subida e de descida. Dica: Vem=(2VsVd)/(Vs+Vd) 6. Desenvolva um algoritmo em pseudocódigo ou um programa em Pascal que calcule e exiba o volume de solo, em m3, que será retirado na escavação de um terreno para construção de uma piscina qualquer. Ao utilizar este algoritmo ou programa, deverão ser informadas as dimensões da piscina, em m, e o programa responderá com o volume de solo a ser removido em m3. 7. Os dois sensores de movimento de duas esteiras paralelas (um sensor para cada esteira) realizam leituras das posições das mesmas em um determinado momento. Construir um algoritmo que retorne a diferença entre a leitura da esteira que andou mais e a leitura da esteira que andou menos, nesta ordem, representando a diferença de avanço entre elas (se houver). 8. Os dois sensores de movimento de duas esteiras paralelas (um sensor para cada esteira) realizam leituras das posições das mesmas em um determinado momento. Construir um algoritmo que retorne a diferença entre a leitura da esteira que andou menos e a leitura da esteira que andou mais, nesta ordem, representando a diferença de avanço entre elas (se houver). 9. Suponha que 100 leituras realizadas para cada esteira da questão 1 (leituras realizadas em momentos distintos, duas a duas – uma para cada esteira) estejam armazenadas em dois vetores, cada um contendo 100 posições. Escreva um algoritmo capaz de criar um terceiro vetor contendo, em cada posição, o quadrado da soma dos avanços das duas esteiras em momentos correspondentes. 10. Em eletrônica, a regra do divisor de corrente, ou simplesmente o divisor de corrente, é uma técnica de análise utilizada para calcular a corrente que flui em um determinado ramo de um conjunto de ramos sabendo-se apenas a impedância equivalente presente em cada ramo e a corrente total que flui por eles (figura abaixo). onde Escreva um algoritmo capaz de calcular ia quando são imputados os valores de i, Ra e Rb. 11. A figura ao lado ilustra um “divisor de tensão”, que é um dispositivo usado pelos projetistas de circuitos elétricos quando estes necessitam dispor de um determinado nível de tensão em um dado local de seus circuitos. Mostra também a forma de se calcular este nível de tensão desejado (Usaída) em função da tensão de entrada (Uentrada) e do valor de dois resistores (Rde cima e Rde baixo). Escreva um algoritmo capaz de calcular Usaída quando são imputados os valores de Uentrada, Rde cima e Rde baixo. Desvios Condicionais 1. O petróleo é encontrado em bolsões profundos em terra firme e abaixo do fundo do mar. Para realizar a sua exploração são necessários basicamente três passos importantes: 1º Prospecção: é a localização de bacias sedimentares por meio de análise detalhada do solo e do subsolo. 2º Perfuração: uma vez descobertas as jazidas de petróleo, realiza-se a marcação com coordenadas GPS e boias marcadoras sobre a água do mar. Se for na terra, realiza-se a perfuração do solo de um primeiro poço. Se realmente existir o petróleo, outros poços são perfurados e analisa-se se a extração é viável economicamente. 3º Extração: na terra, o petróleo é encontrado acima de água salgada e embaixo de uma camada gasosa em alta pressão. Assim, quando o poço é perfurado, o petróleo pode jorrar espontaneamente até a superfície em razão da pressão do gás. A tabela a seguir mostra a distribuição de petróleo e gás natural no mundo em termos percentuais. Escreva um algoritmo no qual o usuário informa o continente desejado e recebe, como resposta, o percentual de petróleo e de gás natural existente no mesmo (utilizar tabela a seguir). 2. O ciclo trigonométrico, visto a seguir, é uma circunferência orientada, com raio unitário, associada a um sistema de coordenadas cartesianas. O centro da circunferência coincide com a origem do sistema cartesiano. Dessa forma, o círculo fica dividido em quatro quadrantes, identificados de acordo com o sentido anti- horário. Considerando x a medida de um arco no ciclo trigonométrico, então os valores de x são tais que 0º < x < 360º. Escreva um algoritmo que receba um o valor de um ângulo qualquer, em graus, e mostre o número correspondente do quadrante do qual este ângulo faz parte. 3. A resistência e durabilidade do concreto depende da proporção dos materiais utilizados. A mistura desses materiais é chamada dosagem ou traço, e deve ser definida conforme sua aplicação. Escreva um algoritmo no qual o usuário informa a aplicação para o concreto e recebe, como resposta, o traço da massa a ser elaborada (utilizar tabela a seguir). 4. Criado por René Descartes, o plano cartesiano consiste em dois eixos perpendiculares, sendo o horizontal chamado de eixo das abscissas e o vertical de eixo das ordenadas. O plano cartesiano foi desenvolvido por Descartes no intuito de localizar pontos num determinado espaço. As disposições dos eixos no plano formam quatro quadrantes, mostrados na figura a seguir: O sistema de coordenadas cartesianas possui inúmeras aplicações, desde a construção de um simples gráfico até os trabalhos relacionados à cartografia, localizações geográficas, pontos estratégicos de bases militares, localizações no espaço aéreo, terrestre e marítimo. Escreva um algoritmo que receba um par de números representando as coordenadas de um ponto (X,Y) e mostre o número correspondente do quadrantedo qual este ponto faz parte. 5. Um dos conceitos mais utilizados em engenharia ambiental, no estudo de substâncias, é o do pH. pH significa "potencial Hidrogeniônico", uma escala logarítmica que mede o grau de acidez, neutralidade ou alcalinidade de uma determinada solução. Este conceito foi introduzido em 1909 pelo químico dinamarquês Søren Peter Lauritz Sørensen. O pH varia de acordo com a temperatura e a composição de cada substância (concentração de ácidos, metais, sais, etc.). A escala compreende valores de 0 a 14, sendo que o 7 é considerado o valor neutro. O valor 0 (zero) representa a acidez máxima e o valor 14 a alcalinidade máxima. As substâncias são consideradas ácidas quando o valor de pH está entre 0 e 7 e alcalinas (ou básicas) entre 7 e 14. Desenvolva um algoritmo em Pseudocódigo ou Pascal que, dado o valor do pH de uma determinada substância, informe se a mesma é ácida, neutra ou alcalina. Laços de repetição 1. Na teoria de Circuitos Elétricos, em um circuito constituído por duas resistências ligadas em série com uma fonte de tensão, a queda de tensão nos terminais de cada uma das resistências é dada por: V1 = [R1/(R1+R2)].V e V2 = [R2/(R1+R2)].V, onde: V1 = queda de tensão nos terminais da resistência 1 (em Volts); V2 = queda de tensão nos terminais da resistência 2 (em Volts); R1 = valor resistência 1 (em Ohms); R2 = valor resistência 2 (em Ohms) e V = valor da fonte de tensão (em Volts). Faça um algoritmo que calcule os valores de V quando os dados de V1, R1 e R2 são digitados pelo usuário via teclado. O programa fica pedindo estes dados e calculando até que o usuário entre com o valor “N” em resposta à pergunta: “Deseja continuar calculando? (S/N)”, realizada após a exibição da resposta. 2. Faltando 10 semanas para o início do período de chuvas, o estado de São Paulo tem 55% de seus reservatórios cheios e diminui, em média, 3% a cada semana, enquanto o estado do Rio de Janeiro tem 47% de seus reservatórios cheios e diminui, em média, 2% a cada semana. Mantidas estas médias, construa um algoritmo que calcule e exiba quantas semanas do período de estiagem ainda serão necessárias para que os reservatórios do estado do Rio de Janeiro superem os do estado de São Paulo em capacidade armazenada. 3. No passado, predominavam no sistema elétrico as cargas lineares, com valores de impedância fixo, como iluminação incandescente, cargas de aquecimento, motores sem controle de velocidade, entre outros. Contudo, surgiram cargas não lineares que, ao serem conectadas na rede elétrica, drenam uma corrente não puramente senoidal, fazendo com que ocorram quedas de tensão também não senoidais nas impedâncias ao longo do sistema e, com isso, interferem na forma de onda de tensão entregue a outras cargas conectadas a esse sistema, conforme figura abaixo. Estas formas de onda não senoidais de tensão e corrente podem ser decompostas, através da transformada de Fourier, por exemplo, em componentes senoidais de frequência fixas e múltiplas da frequência fundamental do sistema (50 ou 60 Hz). Esses componentes são os chamados componentes harmônicos que juntos dão origem a distorção harmônica do sistema. Os componentes harmônicos são classificados quanto à sua ordem (pares ou ímpares) e sequência (positiva, negativa ou zero), prejudicando as instalações à medida em que os de sequência positiva causam aquecimentos, vibrações e perdas adicionais; os de sequência negativa geram esses mesmos efeitos, além de reduzir o torque médio útil das máquinas; já os harmônicos de sequência zero indicam que pode haver significativa corrente circulando pelo neutro. Construa um algoritmo que seja capaz de analisar os componentes harmônicos quanto à sua ordem, informando se são pares ou ímpares os componentes de ordem 1 a 50. 4. No passado, predominavam no sistema elétrico as cargas lineares, com valores de impedância fixo, como iluminação incandescente, cargas de aquecimento, motores sem controle de velocidade, entre outros. Contudo, surgiram cargas não lineares que, ao serem conectadas na rede elétrica, drenam uma corrente não puramente senoidal, fazendo com que ocorram quedas de tensão também não senoidais nas impedâncias ao longo do sistema e, com isso, interferem na forma de onda de tensão entregue a outras cargas conectadas a esse sistema, conforme figura abaixo. Estas formas de onda não senoidais de tensão e corrente podem ser decompostas, através da transformada de Fourier, por exemplo, em componentes senoidais de frequência fixas e múltiplas da frequência fundamental do sistema (50 ou 60 Hz). Esses componentes são os chamados componentes harmônicos que juntos dão origem a distorção harmônica do sistema. Os componentes harmônicos são classificados quanto à sua ordem (pares ou ímpares) e sequência (positiva, negativa ou zero), prejudicando as instalações à medida em que os de sequência positiva causam aquecimentos, vibrações e perdas adicionais; os de sequência negativa geram esses mesmos efeitos, além de reduzir o torque médio útil das máquinas; já os harmônicos de sequência zero indicam que pode haver significativa corrente circulando pelo neutro. Construa um algoritmo que seja capaz de analisar os componentes harmônicos quanto à sua ordem, informando se são pares ou ímpares os componentes de ordem 1 a 50, analisados em ordem inversa (de 50 para 1). 5. Geotecnia é a aplicação de métodos científicos e princípios de engenharia para a aquisição, interpretação e uso do conhecimento dos materiais da crosta terrestre e materiais terrestres para a solução de problemas de engenharia. É a ciência aplicada de prever o comportamento da Terra e seus diversos materiais, no sentido de tornar a Terra mais habitável para as atividades humanas. Exemplos de aplicação da geotecnia incluem: a previsão, prevenção ou mitigação de danos causados por desastres naturais, como avalanches, fluxos de lama, deslizamentos de terra, deslizamento de rochas, sumidouros e erupções vulcânicas. Para monitorar uma encosta em relação à ocorrência de deslizamentos de terra, um engenheiro geotécnico projetou um sistema composto por um sensor que detecta movimentos do solo de segundo em segundo, repassando suas leituras a um sistema computacional (através do comando “leia”). O número 1 (um) indica ausência de movimento, enquanto o número 0 (zero) significa que houve algum deslizamento no solo. Faça um algoritmo que realize estas leituras e exiba em tela a mensagem “ALERTA!!! DESLIZAMENTO DE TERRA!!!” se houver uma sequencia de 3 leituras de valor 0 (zero) seguidas, terminando sua execução após a exibição desta mensagem. 6. Estruturas de repetição são criadas para que diversas instruções sejam executadas um determinado número de vezes. Elas servem para implementar ações de modo a automatizar os comandos até que uma condição seja satisfeita. Estas estruturas são uteis na confecção de algoritmos mais poderosos pois permitem a repetição de instruções para calcular entradas grandes ou problemas que exigem implementar construções mais elaboradas como, por exemplo, um somatório. Um somatório é um operador matemático que nos permite representar facilmente somas de um grande número de termos, até infinitos. É representado com a letra grega sigma, e é definido por: Escreva um algoritmo para calcular e exibir o somatório de um um conjunto de números quaisquer fornecidos pelo usuário, até que ele informe o número 0 (zero) paraencerrar. 7. Geotecnia é a aplicação de métodos científicos e princípios de engenharia para a aquisição, interpretação e uso do conhecimento dos materiais da crosta terrestre e materiais terrestres para a solução de problemas de engenharia. É a ciência aplicada de prever o comportamento da Terra e seus diversos materiais, no sentido de tornar a Terra mais habitável para as atividades humanas. Exemplos de aplicação da geotecnia incluem: a previsão, prevenção ou mitigação de danos causados por desastres naturais, como avalanches, fluxos de lama, deslizamentos de terra, deslizamento de rochas, sumidouros e erupções vulcânicas. Para monitorar uma encosta em relação à ocorrência de deslizamentos de terra, um engenheiro geotécnico projetou um sistema composto por um sensor que detecta movimentos do solo de segundo em segundo, repassando suas leituras a um sistema computacional (através do comando “leia”). O número 0 (zero) indica ausência de movimento, enquanto o número 1 (um) significa que houve algum deslizamento no solo. Faça um algoritmo que realize estas leituras e exiba em tela a mensagem “ALERTA!!! DESLIZAMENTO DE TERRA!!!” se houver uma sequencia de 3 leituras de valor 1 (um) seguidas, terminando sua execução após a exibição desta mensagem. 8. Estruturas de repetição são criadas para que diversas instruções sejam executadas um determinado número de vezes. Elas servem para implementar ações de modo a automatizar os comandos até que uma condição seja satisfeita. Estas estruturas são uteis na confecção de algoritmos mais poderosos pois permitem a repetição de instruções para calcular entradas grandes ou problemas que exigem implementar construções mais elaboradas como, por exemplo, o cálculo do fatorial de um número. Na matemática, o fatorial de um número natural n, representado por n!, é o produto de todos os inteiros positivos menores ou iguais a n. A notação n! foi introduzida por Christian Kramp em 1808, cuja função é definida comumente como: . Escreva um algoritmo para calcular e exibir o fatorial de um número qualquer fornecido pelo usuário. 9. O engenheiro de obras civis da construtora “Lavajato Operations” necessita que você desenvolva um programa que o permita, rapidamente, descobrir qual a área do cômodo retangular de uma residência quando são informados (via teclado) os valores (em metros) do comprimento e da largura do cômodo. Como uma residência não possui somente um cômodo, é desejável que ao terminar de calcular a área o programa pergunte se o engenheiro deseja continuar calculando outras áreas. Caso sua resposta seja “S” todo o processo deve ser realizado novamente até que ele responda “N” à pergunta feita pelo programa. Escreva o algoritmo deste programa em Pseudocódigo ou Pascal. 10. Faltando 10 semanas para o fim do período de chuvas, o estado de São Paulo tem 55% de seus reservatórios cheios e aumenta, em média, 2% a cada semana, enquanto o estado do Rio de Janeiro tem 47% de seus reservatórios cheios e aumenta, em média, 3% a cada semana. Mantidas estas médias, construa um algoritmo que calcule e exiba quantas semanas do período de chuvas ainda serão necessárias para que os reservatórios do estado do Rio de Janeiro superem os do estado de São Paulo em capacidade armazenada. 11. Na teoria de Circuitos Elétricos, em um circuito constituído por duas resistências ligadas em série com uma fonte de tensão, a queda de tensão nos terminais de cada uma das resistências é dada por: V1 = [R1/(R1+R2)].V e V2 = [R2/(R1+R2)].V, onde: V1 = queda de tensão nos terminais da resistência 1 (em Volts); V2 = queda de tensão nos terminais da resistência 2 (em Volts); R1 = valor resistência 1 (em Ohms); R2 = valor resistência 2 (em Ohms) e V = valor da fonte de tensão (em Volts). Faça um algoritmo que calcule os valores de V1 e V2 quando os dados de V, R1 e R2 são digitados pelo usuário via teclado. O programa fica pedindo estes dados e calculando até que o usuário entre com o valor “N” em resposta à pergunta: “Deseja continuar calculando? (S/N)”, realizada após a exibição da resposta. Vetores 1. Em topografia, “Cota” significa a altura de um ponto em relação a uma referência fixa. São medidas através de instrumentos especiais (teodolitos) e são utilizadas para levantamentos altimétricos de terrenos para construção de edificações, estradas, ferrovias, barragens, projetos de linhas de alta tensão e outras muitas aplicações. Faça um algoritmo que permita a leitura e o armazenamento dos dados de medições de 1500 cotas (dadas em metros e centímetros) em um VETOR e, após realizadas todas as leituras, exiba todas aquelas que possuírem valores menores que 5,50 e o número de cotas que não satisfizeram a esta condição. 2. Uma infinidade de equipamentos eletrônicos depende de um “interfaceamento” com o mundo exterior para funcionar. Existem diversos tipos de sensores utilizados em equipamentos eletrônicos. Podemos usar simples chaves ou dispositivos de acionamento momentâneo do tipo mecânico, até transdutores especiais que convertem alguma grandeza física numa grandeza elétrica como, por exemplo, uma tensão. Esses sensores servem para informar um circuito eletrônico a respeito um evento que ocorra externamente, sobre o qual ele deva atuar, ou a partir do qual ele deva comandar uma determinada ação. Equipamentos mais simples podem usar apenas um sensor, mas um robô, uma máquina industrial ou um equipamento médico complexo podem empregar muitos sensores e de tipos diferentes. Denominamos sensores mecânicos aqueles que sensoriam movimentos, posições ou presença usando recursos mecânicos como, por exemplo, chaves (switches) e é possível usá-los de diversas formas, como para detectar a abertura ou fechamento de uma porta, a presença de um objeto em um determinado local, ou ainda quando uma parte mecânica de uma máquina está numa certa posição (veja a figura abaixo). Construa um Algoritmo que leia um grupo de 50 valores inteiros registrados por um sensor mecânico de movimento, armazenando-os em um vetor apropriado, e mostre em tela: a) A quantidade de valores positivos (leituras de avanço de movimento); b) A soma dos valores negativos (leituras de recuo de movimento). 3. Suponha que 100 leituras realizadas para cada esteira da questão 7 - Sequenciais (leituras realizadas em momentos distintos, duas a duas – uma para cada esteira) estejam armazenadas em dois vetores, cada um contendo 100 posições. Escreva um algoritmo capaz de criar um terceiro vetor contendo, em cada posição, o somatório dos avanços das duas esteiras em momentos correspondentes. 4. Uma infinidade de equipamentos eletrônicos depende de um “interfaceamento” com o mundo exterior para funcionar. Existem diversos tipos de sensores utilizados em equipamentos eletrônicos. Podemos usar simples chaves ou dispositivos de acionamento momentâneo do tipo mecânico, até transdutores especiais que convertem alguma grandeza física numa grandeza elétrica como, por exemplo, uma tensão. Esses sensores servem para informar um circuito eletrônico a respeito um evento que ocorra externamente, sobre o qual ele deva atuar, ou a partir do qual ele deva comandar uma determinada ação. Equipamentos mais simples podem usar apenas um sensor, mas um robô, uma máquina industrial ou um equipamento médico complexo podem empregar muitos sensores e de tipos diferentes. Denominamos sensores mecânicos aqueles que sensoriammovimentos, posições ou presença usando recursos mecânicos como, por exemplo, chaves (switches) e é possível usá-los de diversas formas, como para detectar a abertura ou fechamento de uma porta, a presença de um objeto em um determinado local, ou ainda quando uma parte mecânica de uma máquina está numa certa posição (veja a figura abaixo). Construa um Algoritmo que leia um grupo de 50 valores inteiros registrados por um sensor mecânico de movimento, armazenando-os em um vetor apropriado, e mostre em tela: a) A soma dos valores positivos (leituras de avanço de movimento); b) A quantidade de valores negativos (leituras de recuo de movimento). 5. Fenômenos naturais afetam a prospecção de petróleo em águas ultra- profundas, como a camada pré-sal. Um desses fenômenos é o chamado Vibração-Induzida por Vórtices (VIV). Tecnicamente um vórtice é o escoamento circular ou rotacional que possui vorticidade – um conceito matemático utilizado na dinâmica dos fluídos. Os vórtices são encontrados nos mais diversos locais da natureza, como furacões ou simplesmente quando se mexe uma xícara de café. A VIV pode afetar os risers, tubulações submersas que ligam as plataformas de produção e exploração de petróleo ao leito oceânico e por onde circulam o óleo extraído, gases, água e detritos sólidos provenientes da perfuração. Quando o riser é muito longo, ele torna- se sujeito a vibrações. Assim, quando os vórtices se formam, criam um campo de pressão que acarreta uma força lateral que pode causar vibração no riser, possibilitando a ocorrência de fadiga na tubulação, diminuindo sua vida útil ou pior, causando acidentes. Visando monitorar este efeito, a área de automação da empresa “Maracut Aya Petroleum” desenvolveu um sistema que realiza leituras das vibrações (em milímetros) a cada minuto em um determinado ponto do riser e as armazena em um vetor de 1440 posições para posterior análise. Escreva um algoritmo em pseudocódigo ou em Pascal para armazenar estas leituras e informar aquelas que excederem ao limite máximo de 5 milímetros. 6. Em topografia, “Cota” significa a altura de um ponto em relação a uma referência fixa. São medidas através de instrumentos especiais (teodolitos) e são utilizadas para levantamentos altimétricos de terrenos para construção de edificações, estradas, ferrovias, barragens, projetos de linhas de alta tensão e outras muitas aplicações. Faça um algoritmo que permita a leitura e o armazenamento dos dados de medições de 500 cotas (dadas em metros e centímetros) em um VETOR e, após realizadas todas as leituras, exiba todas aquelas que possuírem valores maiores que 5,50 e o número de cotas que satisfizeram a esta condição.
Compartilhar