===== Proposta A: Diagnóstico e tratamento de doenças em peixes ===== fish.disease <- function(){ #criando uma função de nome fish.disease ###################################################################################### # # # A seguinte função gera o diagnóstico e tratamento para doenças em peixes a partir # # dos principais sintomas apresentados pelo animal. Os sintomas são fornecidos pelo # # usuário por meio de respostas as perguntas geradas pela função.A função foi # # elaborada com base no fluxograma disponibilizado pela empresa Alcon no site # # http://alconpet.com.br/home, levando em consideração 5 medicamentos: Alcali, Acid, # # Aqualife, e Bacter. # # Elaboração: Camila Martins, 2019 # # camila.cristina.martins@usp.br # # # ###################################################################################### ################# coletando dados da altura do aquário ############################### h <- as.numeric(readline("\tQual a altura do aquário em que o(s) peixe(s) está(ão), em cm? \n\tDigite apenas números maiores do que zero (ex.:35): \n"))#coletando o dado de altura do aquário através de interação com o usuário e transfomando em um vetor da classe númerica #enquanto o valor de altura (h) for menor do que zero, a função deve manter o loop que testa se h é um número positivo e pedir que outro valor de h seja dado while (h < 0){ cat("\tA altura do aquário precisa ser um número positivo, em cm.\n\tPor favor, não introduza caracteres diferentes de números.\n\tApós digitar o número, aperte enter.\n") #Alertando o usuário para a digitação de número inválido para altura do aquário) h <-as.numeric(readline("\tQual a altura do aquário em que o(s) peixe(s) está(ão), em cm? \n\tDigite apenas números maiores do que zero (ex.:35): \n"))#coletando dado de altura do aquário através de interação com o usuário } ################ coletando dados da largura do aquário ############################## L <- as.numeric(readline("\tQual a largura do aquário em que o(s) peixe(s) está(ão), em cm? \n\tDigite apenas números maiores do que zero (ex.:30): \n"))#coletando o dado de largura do aquário através de interação com o usuário e transfomando em um vetor da classe númerica #enquanto o valor de largura (L) for menor do que zero, a função deve manter o loop que testa se L é um número positivo e pedir que outro valor de L seja dado while (L < 0){ cat("\tA largura do aquário precisa ser um número positivo, em cm.\n\tPor favor, não introduza caracteres diferentes de números.\n\tApós digitar o número, aperte enter.\n") #Alertando o usuário para a digitação de número inválido para largura do aquário L <-as.numeric(readline("\tQual a largura do aquário em que o(s) peixe(s) está(ão), em cm? \n\tDigite apenas números maiores do que zero (ex.:30): \n"))#coletando dado de largura do aquário através de interação com o usuário e transfomando em um vetor da classe númerica } ################# coletando dados de comprimento do aquário ############################ comp <- as.numeric(readline("\tQual o comprimento do aquário em que o(s) peixe(s) está(ão), em cm? \n\tDigite apenas números maiores do que zero (ex.:50): \n"))#coletando o dado de comprimento do aquário através de interação com o usuário e transfomando em um vetor da classe númerica #enquanto o valor de comprimento do aquário (comp) for menor do que zero, a função deve manter o loop que testa se comp é um número positivo e pedir que outro valor de comp seja dado while (comp < 0){ cat("\tA largura do aquário precisa ser um número positivo, em cm.\n\tPor favor, não introduza caracteres diferentes de números.\n\tApós digitar o número, aperte enter.\n") #Alertando o usuário para a digitação de número inválido para largura do aquário comp <-as.numeric(readline("\tQual o comprimento do aquário em que o(s) peixe(s) está(ão), em cm? \n\tDigite apenas números maiores do que zero (ex.:50): \n"))#coletando dado de comprimento do aquário através de interação com o usuário e transfomando em um vetor da classe númerica } ################ Cálculo do volume do aquário em litros ############################## vol <- (h*L*comp)/1000.0 #cálculo do volume do aquário em litros, considerando que este seja retangular ou quadrado e que as medidas fornecidas estejam em cm ######################### Transposição do fluxograma em código ##################### resp1 <- readline("\tO peixe apresenta manchas ou estruturas anormais na superficie do corpo? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp1 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp1!="s" & resp1!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp1 <-readline("\tO peixe apresenta manchas ou estruturas anormais na superficie do corpo. \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if,se não for entra no else if(resp1=="s"){ resp2 <- readline("\tEstas estruturas são pontos visíveis na pele? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp2 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp2!="s" & resp2!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não.\n\t Após digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp2 <-readline("\tEstas estruturas são pontos visíveis na pele? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if,se não for entra no else if(resp2=="s"){ resp3 <- readline("\tSão pequenos pontos brancos espalhados por todo o corpo e nadadeiras? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp3 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp3!="s" & resp3!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não.\n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp3 <-readline("\tSão pequenos pontos brancos espalhados por todo o corpo e nadadeiras? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if ,se não for entra no else if(resp3=="s"){ ####doença dos pontos brancos, Ictio print("Doença dos Pontos Brancos") ####Cálculo da dosagem do tratamento com Ictio ou Aqualife: 1 gota para 2 litros. gotas_Ic_Aq <- vol/2.0 ####resposta da função a esse conjunto de sintomas: return(cat("\tSeu(s) peixe(s) apresenta(m) Doença dos pontos Brancos ou Ictio. \n\tEla é causada pelo protozoário Ichthyophthyrius multifiliis. \n\tOutros sintomas: Nadadeiras fechadas, peixe se esfregando nas pedras \n\te no fundo do aquário, dificuldade para respirar. \n\tTratamento: Adicione ",gotas_Ic_Aq, " gota(s) de Ictio na água do aquário.\n") ) }else { resp4 <- readline("\tOs pontos são brilhantes, numerosos, similares a gotinhas douradas aveludadas? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp4 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp4!="s" & resp4!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp4 <- readline("\tOs pontos são brilhantes, numerosos, similares a gotinhas douradas aveludadas? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if,se não for entra no else if(resp4=="s"){ ###doença do veludo ou Oodiniose, Ictio+Aqualife print("Doença do Veludo\n") ###Cálculo da dosagem do tratamento com Ictio e Aqualife: 1 gota de aqualife para para 4 litros e 1 gota de Ictio para 2 litros #####(como há interação medicamentosa, a dosagem de cada medicamento varia quando usada em conjunto) gotas_Aq <- vol/4.0 gotas_Ic <- vol/2.0 ####resposta da função a esse conjunto de sintomas: return(cat("\tSeu(s) peixe(s) apresenta(m) Doença do Veludo ou Oodiniose. \n\tEla é causada pelo protozoário Oodinium pilullaris. \n\tOutros sintomas: Falta de apetite, respiração ofegante, perda do equilíbrio \n\te peixes esbranquiçados. \n\tTratamento: Adicione ", gotas_Ic, "gota(s) de Ictio para ", gotas_Aq," gota(s) de Aqualife na água do aquário." )) }else { ### fim da linha. ### Há algumas combinações de sintomas que não levam a nenhum diagnóstico. Nesse casos, a solução que encontrei foi direcionar o usuário a refazer ### o teste de modo a repensar se os sintomas que ele apontou anteriormente estavam certos: respF <- readline("\tNão foi possível identificar a doença que acomete seu peixe por meio dos sintomas informados.\n\tVamos refazer o teste? \n\tDigite s para sim e n para não: \n")#Verificando se o usuário deseja refazer o teste através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se respF é diferente de s ou n e pedir que outro caracter seja fornecido while (respF!="s" & respF!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o respF. respF <- readline("\tNão foi possível identificar a doença que acomete seu peixe por meio dos sintomas informados.\n\tVamos refazer o teste? \n\tDigite s para sim e n para não: \n")#Verificando se o usuário deseja refazer o teste através de interação com o usuário } #Se a resposta armazenada em respF for sim (s) a função "entra" nesse if,se não for entra no else if(respF=="s"){ cat("\tOk, vamos recomeçar o teste.\n") fish.disease()#chamando a função dentro da função para recomeçar o teste }else { ###Fim da linha return(cat("\tOk.Que pena!\n\tReavalie os sintomas apresentados pelo seu animal \n\tnovamente e, se necessário, refaça o teste. \n")) } } } }else { resp3 <- readline("\tHá uma crosta aparentando limo ou manchas como mofo? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp3 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp3!="s" & resp3!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp3 <- readline("\tHá uma crosta aparentando limo ou manchas como mofo? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if ,se não for entra no else if(resp3=="s"){ resp4 <- readline("\tHá um limo branco acizentado, cobrindo as brânquias e grande extensão do corpo? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp4 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp4!="s" & resp4!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp4 <- readline("\tHá um limo branco acizentado, cobrindo as brânquias e grande extensão do corpo? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if,se não for entra no else if(resp4=="s"){ ###Costiose, Ictio+Aqualife print("Costiose") ###Cálculo da dosagem do tratamento com Ictio e Aqualife: 1 gota de aqualife para para 4 litros e 1 gota de Ictio para 2 litros #####(como há interação medicamentosa, a dosagem de cada medicamento varia quando usada em conjunto) gotas_Aq <- vol/4.0 gotas_Ic <- vol/2.0 ####resposta da função a esse conjunto de sintomas: return(cat("\tSeu(s) peixe(s) apresenta(m) Costiose. \n\tEla causada pelos protozoários Ichtlyobodo sp. (Costia sp.) e Chilodonella sp.. \n\tOutros sintomas: Falta de apetite, ramificações vermelhas nas nadadeiras, \n\tpeixe se esfregando no fundo do aquário. \n\tTratamento: Adicione ", gotas_Ic," gota(s) de Ictio para ",gotas_Aq," gota(s) de Aqualife na água do aquário.\n")) }else { resp5 <- readline("\tO limo é nebuloso e cobre apenas os olhos? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp5 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp5!="s" & resp5!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp5 <- readline("\tO limo é nebuloso e cobre apenas os olhos? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if,se não for entra no else if(resp5=="s"){ resp6 <- readline("\tOs olhos se mostram saltados? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp6 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp6!="s" & resp6!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp6 <- readline("\tOs olhos se mostram saltados? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if ,se não for entra no else if(resp6=="s"){ ###olhos inchados, Ictio+Bacter print("Olhos Inchados") #Cálculo da dosagem do tratamento com Ictio ou Aqualife: 1 gota para 2 litros. gotas_Ic_Aq <- vol/2.0 #Cálculo da dosagem do tratamento com Bacter: 1 cápsula para cada 12,5 litros. capsulas <- vol/12.5 ####resposta da função a esse conjunto de sintomas: return(cat("\tSeu(s) peixe(s) apresenta(m) Olhos Inchados (Pop-eye). \n\tÉ causada por bactérias, fungos ou vermes. \n\tOutros sintomas: Barriga inchada, nadadeiras roídas. \n\tTratamento: Adicione ",gotas_Ic_Aq," gota(s) de Ictio para ",capsulas," cápsulas(s) de Bacter na água do aquário.\n")) }else { ####olhos embaçados, Ictio+Aqualife print("Olhos Embaçados") ###Cálculo da dosagem do tratamento com Ictio e Aqualife: 1 gota de aqualife para para 4 litros e 1 gota de Ictio para 2 litros #####(como há interação medicamentosa, a dosagem de cada medicamento varia quando usada em conjunto) gotas_Aq <- vol/4.0 gotas_Ic <- vol/2.0 ####resposta da função a esse conjunto de sintomas: return(cat("\tSeu(s) peixe(s) apresenta(m) Olhos Embaçados. \n\tEssa doença é causada pelos trematodos monogenéticos Dactylogyrus sp. ou Gyrodactylus sp.. \n\tOutros sintomas: Falta de apetite, respiração ofegante \n\te inchaço das brânquias. \n\tTratamento: Adicione ",gotas_Ic," gota(s) de Ictio para ",gotas_Aq," gota(s) de Aqualife na água do aquário.\n")) } }else { resp6 <- readline("\tO peixe apresenta muco excessivo ao redor da boca chegando a formar tufos semelhantes a algodão? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp6 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp6!="s" & resp6!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp6<- readline("\tO peixe apresenta muco excessivo ao redor da boca chegando a formar tufos semelhantes a algodão? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if ,se não for entra no else if(resp6=="s"){ ###fungo na boca, Bacter+aqualife print("Fungo na Boca") #Cálculo da dosagem do tratamento com Ictio ou Aqualife: 1 gota para 2 litros. gotas_Ic_Aq <- vol/2.0 #Cálculo da dosagem do tratamento com Bacter: 1 cápsula para cada 12,5 litros. capsulas <- vol/12.5 ####resposta da função a esse conjunto de sintomas: return(cat("\tSeu(s) peixe(s) apresenta(m) Fungo na Boca (Cotton mouth). \n\tApesar do nome, normalmente é causada pela ação de bactérias Flexibacter columnaris. \n\tÉ comum a ocorrência simultânea de fungos. \n\tTratamento: Adicione ",gotas_Ic_Aq," gota(s) de Aqualife para ",capsulas," cápsulas(s) de Bacter na água do aquário.\n")) }else { resp7 <- readline("\tExistem manchas brancas ou tufos semelhantes a algodão no corpo? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp7 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp7!="s" & resp7!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp7 <- readline("\tExistem manchas brancas ou tufos semelhantes a algodão no corpo? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if ,se não for entra no else if(resp7=="s"){ ###Doença do algodão, Aqualife print("Doença do Algodão") #Cálculo da dosagem do tratamento com Ictio ou Aqualife: 1 gota para 2 litros. gotas_Ic_Aq <- vol/2.0 ####resposta da função a esse conjunto de sintomas: return(cat("\tSeu(s) peixe(s) apresenta(m) Doença do Algodão. \n\tÉ causada pelos fungos Saprolegnia sp., Achlya sp. ou Ichthyosporidium sp.. \n\tOutros sintomas: Perda de escamas. \n\tTratamento: Adicione ",gotas_Ic_Aq," gota(s) de Aqualife na água do aquário.\n")) }else { ### fim da linha. ### Há algumas combinações de sintomas que não levam a nenhum diagnóstico. Nesse casos, a solução que encontrei foi direcionar o usuário a refazer ### o teste de modo a repensar se os sintomas que ele apontou anteriormente estavam certos: respF <- readline("\tNão foi possível identificar a doença que acomete seu peixe por meio dos sintomas informados.\n\tVamos refazer o teste? \n\tDigite s para sim e n para não: \n")#Verificando se o usuário deseja refazer o teste através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se respF é diferente de s ou n e pedir que outro caracter seja fornecido while (respF!="s" & respF!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o respF. respF <- readline("\tNão foi possível identificar a doença que acomete seu peixe por meio dos sintomas informados.\n\tVamos refazer o teste? \n\tDigite s para sim e n para não: \n")#Verificando se o usuário deseja refazer o teste através de interação com o usuário } #Se a resposta armazenada em respF for sim (s) a função "entra" nesse if ,se não for entra no else if(respF=="s"){ cat("\tOk, vamos recomeçar o teste.\n") fish.disease()#chamando a função dentro da função para recomeçar o teste }else { ###Fim da linha return(cat("\tOk.Que pena!\n\tReavalie os sintomas apresentados pelo seu animal \n\tnovamente e, se necessário, refaça o teste. \n")) } } } } } }else { resp4 <- readline("\tO peixe se mostra barrigudo e com as escamas eriçadas? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp4 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp4!="s" & resp4!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp4 <- readline("\tO peixe se mostra barrigudo e com as escamas eriçadas? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if ,se não for entra no else if(resp4=="s"){ ###Hidropsia, Bacter print("Hidropsia") #Cálculo da dosagem do tratamento com Bacter: 1 cápsula para cada 12,5 litros. capsulas <- vol/12.5 ####resposta da função a esse conjunto de sintomas: return(cat("\tSeu(s) peixe(s) apresenta(m) Hidropsia (ventre volumoso). \n\tÉ causada por bactérias que atacam os órgãos internos. \n\tOutros sintomas: Manchas vermelhas no corpo, destruição das nadadeiras. \n\tTratamento: Adicione ",capsulas," cápsulas(s) de Bacter na água do aquário\n")) }else { resp5 <- readline("\tO peixe está magro e com o ventre retraído? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp5 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp5!="s" & resp5!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp5 <- readline("\tO peixe está magro e com o ventre retraído? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if ,se não for entra no else if(resp5=="s"){ ###Tuberculose ou Barriga Seca, Bacter print("Tuberculose ou Barriga Seca") #Cálculo da dosagem do tratamento com Bacter: 1 cápsula para cada 12,5 litros. capsulas <- vol/12.5 ####resposta da função a esse conjunto de sintomas: return(cat("\tSeu(s) peixe(s) apresenta(m) Tuberculose ou Barriga Seca. \n\tInfecção bacteriana relacionada com a má qualidade da água. \n\tOutros sintomas: Perda de escamas, palidez das cores, destruição das nadadeiras. \n\tTratamento: Adicione ",capsulas," cápsulas(s) de Bacter na água do aquário.\n")) }else { resp6 <- readline("\tO peixe apresenta feridas (buracos) na cabeça? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp6 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp6!="s" & resp6!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp6 <- readline("\tO peixe apresenta feridas (buracos) na cabeça? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if ,se não for entra no else if(resp6=="s"){ ###Buracos na Cabeça, Bacter+Aqualife print("Buracos na Cabeça") #Cálculo da dosagem do tratamento com Ictio ou Aqualife: 1 gota para 2 litros. gotas_Ic_Aq <- vol/2.0 #Cálculo da dosagem do tratamento com Bacter: 1 cápsula para cada 12,5 litros. capsulas <- vol/12.5 ####resposta da função a esse conjunto de sintomas: return(cat("\tSeu(s) peixe(s) apresenta(m) Buracos na Cabeça (Hole-in-head). \n\tSintoma ligado ao protozoário Hexamita sp. e possivelmente a bactérias. \n\tÉ também conhecida como doença dos Ciclídeos. \n\tOutros sintomas: Inchaço (hidropsia) \n\tTratamento: Adicione ",gotas_Ic_Aq," gota(s) de Aqualife para ",capsulas," cápsulas(s) de Bacter na água do aquário.\n")) }else { resp7 <- readline("\tAs nadadeiras apresentam-se desfiadas ou roídas? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp7 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp7!="s" & resp7!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp7 <- readline("\tAs nadadeiras apresentam-se desfiadas ou roídas? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if ,se não for entra no else if(resp7=="s"){ ###Nadadeiras Roídas, Bacter+Aqualife print("Nadadeiras Roídas") #Cálculo da dosagem do tratamento com Ictio ou Aqualife: 1 gota para 2 litros. gotas_Ic_Aq <- vol/2.0 #Cálculo da dosagem do tratamento com Bacter: 1 cápsula para cada 12,5 litros. capsulas <- vol/12.5 ####resposta da função a esse conjunto de sintomas: return(cat("\tSeu(s) peixe(s) apresenta(m) Nadadeiras roídas. \n\tCausada por bactérias. Em geral, há ocorrência de fungos associados. \n\tAs nadadeiras ficam esbranquiçadas e começam a se desfazer. \n\tTratamento: Adicione ",gotas_Ic_Aq," gota(s) de Aqualife para ",capsulas," cápsulas(s) de Bacter na água do aquário.\n")) }else { resp8 <- readline("\tHá vermelhidão na base das nadadeiras? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp8 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp8!="s" & resp8!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp8 <- readline("\tHá vermelhidão na base das nadadeiras? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if ,se não for entra no else if(resp8=="s"){ ###Septicemia, Bacter+Aqualife print("Septicemia") #Cálculo da dosagem do tratamento com Ictio ou Aqualife: 1 gota para 2 litros. gotas_Ic_Aq <- vol/2.0 #Cálculo da dosagem do tratamento com Bacter: 1 cápsula para cada 12,5 litros. capsulas <- vol/12.5 ####resposta da função a esse conjunto de sintomas: return(cat("\tSeu(s) peixe(s) apresenta(m) Septicemia. \n\tResultado de infecção causada por bactérias. \n\tOutros sintomas: Vasinhos sanguíneos dilatados ao redor dos olhos \n\te na base das nadadeiras, nadadeiras roídas e desbotadas. \n\tTratamento: Adicione ",gotas_Ic_Aq," gota(s) de Aqualife para ",capsulas," cápsulas(s) de Bacter na água do aquário.\n")) }else { ### fim da linha. ### Há algumas combinações de sintomas que não levam a nenhum diagnóstico. Nesse casos, a solução que encontrei foi direcionar o usuário a refazer ### o teste de modo a repensar se os sintomas que ele apontou anteriormente estavam certos: respF <- readline("\tNão foi possível identificar a doença que acomete seu peixe por meio dos sintomas informados.\n\tVamos refazer o teste? \n\tDigite s para sim e n para não: \n")#Verificando se o usuário deseja refazer o teste através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se respF é diferente de s ou n e pedir que outro caracter seja fornecido while (respF!="s" & respF!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o respF. respF <- readline("\tNão foi possível identificar a doença que acomete seu peixe por meio dos sintomas informados.\n\tVamos refazer o teste? \n\tDigite s para sim e n para não: \n")#Verificando se o usuário deseja refazer o teste através de interação com o usuário } #Se a resposta armazenada em respF for sim (s) a função "entra" nesse if ,se não for entra no else if(respF=="s"){ cat("\tnOk, vamos recomeçar o teste.\n") fish.disease()#chamando a função dentro da função para recomeçar o teste }else { ###Fim da linha return(cat("\tOk.Que pena!\n\tReavalie os sintomas apresentados pelo seu animal \n\tnovamente e, se necessário, refaça o teste. \n")) } } } } } } } } }else { resp2 <- readline("\tO peixe apresenta natação irregular e tremores? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp2 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp2!="s" & resp2!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp2 <- readline("\tO peixe apresenta natação irregular e tremores? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if ,se não for entra no else if(resp2=="s"){ resp3 <- readline("\tAs escamas estão eriçadas e as nadadeiras fechadas? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp3 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp3!="s" & resp3!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp3 <- readline("\tHá um limo branco acizentado, cobrindo as brânquias e grande extensão do corpo? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if ,se não for entra no else if(resp3=="s"){ ###Agua muito ácida, Alcali print("Água Muito Ácida") #Cálculo da dosagem do tratamento com Alcali ou Acid: 1 gota para 3 litros. gotas_Al_Ac <- vol/3.0 ####resposta da função a esse conjunto de sintomas: return(cat("\tA água do seu aquário deve estar muito ácida. \n\tOutros sintomas: Nadadeiras roídas e desbotadas. \n\tTratamento: Verifique as condições de pH. \n\tConfirmando a acidez excessiva, adicione ",gotas_Al_Ac," gota(s) de Acid na água do aquário. \n")) }else { resp4 <- readline("\tO peixe apresenta respiração ofegante próximo à superfície e perda de brilho das escamas? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se resp4 é diferente de s ou n e pedir que outro caracter seja fornecido while (resp4!="s" & resp4!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o sintoma. resp4 <- readline("\tO peixe apresenta respiração ofegante próximo à superfície e perda de brilho das escamas? \n\tDigite s para sim e n para não: \n")#coletando dado sobre sintoma do peixe através de interação com o usuário } #Se a resposta armazenada em resp(n) for sim (s) a função "entra" nesse if ,se não for entra no else if(resp4=="s"){ ###Água muito alcalina ou Cloro na água, Acid print("Água Muito Alcalina ou Cloro na Água") #Cálculo da dosagem do tratamento com Alcali ou Acid: 1 gota para 3 litros. gotas_Al_Ac <- vol/3.0 ####resposta da função a esse conjunto de sintomas: return(cat("\tA água do seu aquário deve estar muito alcalina ou deve haver cloro na água. \n\tOutros sintomas: Perda de escamas. \n\tTratamento: Verifique as condições de pH e concentração de cloro na água. \n\tConfirmando alcalinidade excessiva e ausência de cloro, \n\tadicione ",gotas_Al_Ac," gota(s) de Acid na água do aquário. \n")) }else { ### fim da linha. ### Há algumas combinações de sintomas que não levam a nenhum diagnóstico. Nesse casos, a solução que encontrei foi direcionar o usuário a refazer ### o teste de modo a repensar se os sintomas que ele apontou anteriormente estavam certos: respF <- readline("\tNão foi possível identificar a doença que acomete seu peixe por meio dos sintomas informados.\n\tVamos refazer o teste? \n\tDigite s para sim e n para não: \n")#Verificando se o usuário deseja refazer o teste através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se respF é diferente de s ou n e pedir que outro caracter seja fornecido while (respF!="s" & respF!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o respF. respF <- readline("\tNão foi possível identificar a doença que acomete seu peixe por meio dos sintomas informados.\n\tVamos refazer o teste? \n\tDigite s para sim e n para não: \n")#Verificando se o usuário deseja refazer o teste através de interação com o usuário } #Se a resposta armazenada em respF for sim (s) a função "entra" nesse if ,se não for entra no else if(respF=="s"){ cat("\tOk, vamos recomeçar o teste.\n") fish.disease()#chamando a função dentro da função para recomeçar o teste }else { ###Fim da linha return(cat("\tOk.Que pena!\n\tReavalie os sintomas apresentados pelo seu animal \n\tnovamente e, se necessário, refaça o teste. \n")) } } } }else { ### fim da linha. ### Há algumas combinações de sintomas que não levam a nenhum diagnóstico. Nesse casos, a solução que encontrei foi direcionar o usuário a refazer ### o teste de modo a repensar se os sintomas que ele apontou anteriormente estavam certos: respF <- readline("\tNão foi possível identificar a doença que acomete seu peixe por meio dos sintomas informados.\n\tVamos refazer o teste? \n\tDigite s para sim e n para não: \n")#Verificando se o usuário deseja refazer o teste através de interação com o usuário #enquanto o dado digitado pelo usuário for diferente de s ou n, a função deve manter o loop que testa se respF é diferente de s ou n e pedir que outro caracter seja fornecido while (respF!="s" & respF!= "n"){ cat("\tDigite apenas s minúsculo para sim, ou n minúsculo para não. \n\tApós digitar, aperte enter.\n") #Alertando o usuário para a digitação de respostas válidas para o respF. respF <- readline("\tNão foi possível identificar a doença que acomete seu peixe por meio dos sintomas informados.\n\tVamos refazer o teste? \n\tDigite s para sim e n para não: \n")#Verificando se o usuário deseja refazer o teste através de interação com o usuário } #Se a resposta armazenada em respF for sim (s) a função "entra" nesse if ,se não for entra no else if(respF=="s"){ cat("\tOk, vamos recomeçar o teste.\n") fish.disease()#chamando a função dentro da função para recomeçar o teste }else { ###Fim da linha return(cat("\tOk.Que pena!\n\tReavalie os sintomas apresentados pelo seu animal \n\tnovamente e, se necessário, refaça o teste. \n")) } } } } fish.disease()