Algoritmos
Por: Yago Lima • 28/10/2015 • Trabalho acadêmico • 2.222 Palavras (9 Páginas) • 264 Visualizações
ATIVIDADE PORTFÓLICO ALGORITMOS E PROGRAMAÇÃO
10ª SEMANA
- 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
- 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:")
...