Mudanças entre as edições de "Programação para Redes de Computadores (técnico) (diário 2013-1)"
Ir para navegação
Ir para pesquisar
(→15/04) |
(→22/04) |
||
Linha 155: | Linha 155: | ||
==22/04== | ==22/04== | ||
O clássico problema: um número é primo quando...? | O clássico problema: um número é primo quando...? | ||
− | < | + | <syntaxhighlight lang=c> |
inicio | inicio | ||
Edição das 19h46min de 22 de abril de 2013
Aulas
01/04
Problema: saber o valor final de parcelamento (1 +3) a 2% de juros.
inicio
// Problema: pagamento de uma geladeira, comprada a prazo em
// 1 + 3 x com juros de 2% ao mês.
escrever "Por favor, informe o valor da geladeira: "
real valorGeladeira
ler valorGeladeira
// 1) Saber quanto é o valor de entrada.
escrever "Agora, informe o valor da entrada: "
real entrada
ler entrada
// 2) Deduzir o valor de entrada do valor total, e depois dividir por 3. Isso
// dará o valor da parcela sem juro. Aplicar, no segundo mês, já o juro de 2%.
real parcela
parcela <- (((valorGeladeira - entrada) / 3) * 1.02)
// 3) No terceiro mês, aplicar o mesmo juro sobre o valor do mês anterior;
// ou seja, juro composto.
real parcela2
parcela2 <- (parcela * 1.02)
// 4) Repetir o processo no quarto mês.
real parcela3
parcela3 <- (parcela2 * 1.02)
// 5) Somar tudo e ver o prejuízo.
real somatorio
somatorio <- entrada + parcela + parcela2 + parcela3
escrever "Ao final, a geladeira custou ", somatorio, "."
fim
08/04
E se todas as opções forem variáveis?
inicio
escrever "Por favor, informe o valor da geladeira: "
real valorGeladeira
ler valorGeladeira
escrever "Deseja pagar a entrada? S ou N"
texto pagarEntrada
ler pagarEntrada
real entrada
se (pagarEntrada = "N" ou pagarEntrada = "n") entao
entrada<-0
senao
escrever "Agora, informe o valor da entrada: "
ler entrada
fimse
escrever "Valor de juros: "
real valorJuros
ler valorJuros
escrever "Quantidade de parcelas: "
real qtdParcelas
ler qtdParcelas
real somatorio
real parcela
parcela <- (valorGeladeira - entrada) / qtdParcelas
inteiro mes
para mes de 1 ate qtdParcelas passo 1
parcela <- parcela * (1 + valorJuros * 0.01)
somatorio <- somatorio + parcela
proximo
escrever "Ao final, a geladeira custou ", entrada + somatorio, "."
escrever "\nForam ", qtdParcelas, " parcelas de ", somatorio / qtdParcelas, " cada."
fim
15/04
Problema do dia: Dado um dia e mês neste ano de 2013, em que semana estamos?
inicio
inteiro dias
inteiro mês
inteiro semanas
inteiro resto
inteiro quociente
//Pedir ao usuário:
//- dia
//- mês
escrever "Informe o dia: "
ler dias
escrever "Agora, informe o mês (número): "
ler mês
//Dependendo do mês, deve-se somar à quantidade de dias, de acordo com o calendário juliano.
//Ao final, teremos a quantidade de dias no ano.
escolhe mês
caso 1: // Janeiro
dias <- dias
caso 2: // Fevereiro
dias <- dias + 31
caso 3: // Março
dias <- dias + 31 + 28
caso 4: // Abril
dias <- dias + 31 + 28 + 31
caso 5: // Maio
dias <- dias + 31 + 28 + 31 + 30
caso 6: // Junho
dias <- dias + 31 + 28 + 31 + 30 + 31
caso 7: // Julho
dias <- dias + 31 + 28 + 31 + 30 + 31 + 30
caso 8: // Agosto
dias <- dias + 31 + 28 + 31 + 30 + 31 + 30 + 31
caso 9: // Setembro
dias <- dias + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31
caso 10: // Outubro
dias <- dias + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30
caso 11: // Novembro
dias <- dias + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31
caso 12: // Dezembro
dias <- dias + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30
fimEscolhe
//Como a primeira semana tem apenas 5 dias (começa na terça), se a soma estiver entre 1 e 5 então
// estamos ainda na primeira semana. Caso contrário, apenas subtraimos esse valor (5) da soma.
se dias >=1 e dias <= 5 então
semanas <- 1
senão
dias <- dias - 5
//Com o valor que sobrou, faz-se uma divisão por 7. Se o resto for 0, o resultado é o próprio
// quociente mais um (a primeira semana); caso contrário (o resto está entre 1 e 6), então
// somamos: primeira semana (1) + quociente + 1 semana.
resto <- dias % 7
se resto = 0 então
semanas <- (dias / 7) + 1
senão
semanas <- 1 + (dias / 7) + 1
fimSe
fimSe
escrever "É a semana número ", semanas, "."
fim
22/04
O clássico problema: um número é primo quando...?
inicio
// Declaração de variáveis.
inteiro número
inteiro divisor
inteiro resto
inteiro divisores
// Interação com o usuário: número a ser testado como primo.
escrever "Por favor, digite um número inteiro entre 1 e 10000: "
ler número
// Como 1 e o próprio número sempre serão divisores, interessa saber se os valores
// intermediários conseguem dividir, com resto inteiro, o número solicitado.
divisor <- 2
divisores <- 0
enquanto divisor < número faz
resto <- número % divisor
se resto = 0 então
escrever "[", divisor, "]"
divisores <- divisores + divisor
senão
escrever "."
fimSe
divisor <- divisor + 1
fimEnquanto
se divisores = 0 então
escrever "\nO número ", número, " é primo."
senão
escrever "\nO número ", número, " NÃO é primo."
fimSe
fim