TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Algoritmos

Por:   •  28/10/2015  •  Trabalho acadêmico  •  2.222 Palavras (9 Páginas)  •  263 Visualizações

Página 1 de 9

ATIVIDADE PORTFÓLICO ALGORITMOS E PROGRAMAÇÃO

10ª SEMANA

  1. Faça um algoritmo que leia a idade de uma pessoa expressa em anos, meses e dias e apresente na tela tal idade apenas em dias. Considere que um mês possui trinta dias, e um ano possui trezentos e sessenta e cinco dias.

Algoritmo "diasdevida"

// Descrição   : Apresente na tela idade apenas em dias

// Autor    : Yago Lima Campos

Var

   idade_mes,diastotal,idade_ano,idade_dias_nasc,idade_dias_hoje,ano_nasc,ano_nasc1,ano_nasc2,mes_nasc,dias_nasc,ano_hoje,mes_hoje,dias_hoje,validacao : inteiro

Inicio

   validacao <- 1

   enquanto (validacao = 1) faca

      escreval("----------INFORME A DATA DE HOJE----------")

      escreva("Dia: ")

      leia(dias_hoje)

      enquanto (dias_hoje <= 0) ou (dias_hoje > 31) faca

         escreval("Dia informado é inválido!")

         escreva("Informe o dia atual:")

         leia(dias_hoje)

      fimenquanto

      se (dias_hoje = 31) entao

         dias_hoje <- 30

      fimse

      escreva("Mês: ")

      leia(mes_hoje)

      enquanto (mes_hoje <= 0) ou (mes_hoje > 12) faca

         escreval("Mês informado é inválido!")

         escreva("Informe o mês atual: ")

         leia(mes_hoje)

      fimenquanto

      escreva("Ano: ")

      leia(ano_hoje)

      enquanto (ano_hoje <= 0) ou ((ano_hoje) < 1900 ) faca      // para identificar se o ano esta com 4 digitos

         escreval("Ano informado é inválido!")

         escreva("Informe o ano atual: ")

         leia(ano_hoje)

      fimenquanto

      escreval("----------INFORME SUA DATA DE NASCIMENTO ABAIXO----------")

      escreva("Dia: ")

      leia(dias_nasc)

      enquanto (dias_nasc <= 0) ou (dias_nasc > 31) faca

         escreval("Dia informado é inválido!")

         escreva("Informe o dia em que nasceu:")

         leia(dias_nasc)

      fimenquanto

      se (dias_nasc = 31) entao

         dias_nasc <- 30

      fimse

      escreva("Mês: ")

      leia(mes_nasc)

      enquanto (mes_nasc <= 0) ou (mes_nasc > 12) faca

         escreval("Mês informado é inválido!")

         escreva("Informe o mês em que nasceu: ")

         leia(mes_nasc)

      fimenquanto

      escreva("Ano: ")

      leia(ano_nasc)

      enquanto (ano_nasc) < 999  faca     //   o ano esta com 4 digitos

         se (ano_nasc < 100) e (ano_nasc >= 0) entao // verifica se o ano foi informado com dois dígitos

            ano_nasc1 <- 1900 + ano_nasc

            ano_nasc2 <- 2000 + ano_nasc

            se (ano_nasc2 > ano_hoje) entao

               ano_nasc <- ano_nasc1

            senao

               escreva("Você informou um ano com menos de 4 dígitos. Informe por favor, se o ano em que nasceu é",ano_nasc1," ou",ano_nasc2,"?:")

               leia(ano_nasc)

            fimse

         senao

            escreval("Ano informado é inválido!")

            escreva("Informe o ano em que nasceu: ")

            leia(ano_nasc)

         fimse

      fimenquanto

      enquanto (ano_nasc > ano_hoje) ou (ano_nasc <= 0)  faca

         escreval("Ano em que nasceu não pode ser maior que a data de hoje! ")

         escreva("Informe o ano em que nasceu: ")

         leia(ano_nasc)

      fimenquanto

      se(ano_nasc = ano_hoje) entao

         se(mes_nasc = mes_hoje) entao

            se(dias_nasc <= dias_hoje) entao

               validacao <- 0

            senao

               escreval("Data de nascimento não pode ser maior que a data atual!")

               validacao <- 1

            fimse

         senao

            se(mes_nasc < mes_hoje) entao

               validacao <- 0

            senao

               escreval("Data de nascimento não pode ser maior que a data atual!")

               validacao <- 1

            fimse

         fimse

      senao

         validacao <- 0

      fimse

   fimenquanto

   se (((mes_hoje * 30)+dias_hoje)-((mes_nasc * 30)+dias_nasc)<0) entao //Checa se não fez aniversário

      ano_hoje <- (ano_hoje -1)

      idade_dias_nasc <-  ((12- mes_nasc)*30+(30-dias_nasc)) //Restante de dias ao finalizar o ano de nascimento

      idade_dias_hoje  <- ((mes_hoje - 1)*30)+dias_hoje // Dias no ano atual até hoje

      diastotal <- ((ano_hoje - ano_nasc)*365)+idade_dias_nasc + idade_dias_hoje

   senao

   idade_ano <- (ano_hoje - ano_nasc)

   idade_mes <- (mes_hoje - mes_nasc)-1

   diastotal <- (idade_ano*365) + (idade_mes*30) +(30-dias_nasc)+dias_hoje

   fimse

   escreva("Você tem", diastotal, "dias de vida!")

Fimalgoritmo

  1. Elabore um algoritmo capaz de calcular a distância entre dois pontos em um espaço euclidiano. Para tanto, considere a seguinte fórmula: dist = raizquadrada((x2 − x1)² +(y2 − y1)²) .

// Descrição   : Cálculo de Distancia Euclidiana

// Autor(a)    : Yago Lima Campos

Var

   x1,y1,x2,y2,dist : real

Inicio

   escreval("Informe os pontos da coordenada 1")

   escreva("X:")

   leia(x1)

   escreva("Y:")

...

Baixar como (para membros premium)  txt (8.6 Kb)   pdf (92.9 Kb)   docx (14.2 Kb)  
Continuar por mais 8 páginas »
Disponível apenas no TrabalhosGratuitos.com