Sei sulla pagina 1di 27

ATIVIDADE PRATICA

SUPERVISIONADA
Construo de Algoritmos
Tecnologia em Analise e desenvolvimento de Sistemas
Rafael Souza Santos - 7299613201
Leandro V. Ferreira - 6660432326
Rodolfo Alves - 7229576393
Felipe D. Guimares - 9977020851
2 semestre
28 de Novembro
2013


O sucesso nasce do querer, da determinao e persistncia em se
chegar a um objetivo. Mesmo no atingindo o alvo, quem busca e
vence obstculos, no mnimo far coisas admirveis.



Jos de Alencar




Tecnologia em Analise e desenvolvimento de Sistemas
RELATRIO 01
ETAPA 1
Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 3


PROBLEMA 1
Definir um nmero inteiro N que ser o nmero
de casos de teste. Cada caso de teste uma
linha que contm dois nmeros inteiros X e Y.
O problema se resume em imprimir a soma de
todos os valores mpares entre os dois nmeros
inteiros, excetuando-os.

Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 4
Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 5
ENTRADA ---------------------------------------------
A primeira linha de entrada um nmero
inteiro N que o nmero de casos de teste
a serem solucionados. Cada caso de teste
uma linha contendo dois inteiros X e Y.
PROCESSO -------------------------------------------
???
SAIDA --------------------------------------------------
A soma dos nmeros mpares entre X e Y.
N= 2
X e Y =2 e 5
R1= 3
X e Y =10 e 20
R2= 75
???
Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 6
RESOLUO DO PROBLEMA 1
Var: N, X, Y, Contador, iSoma, Soma-Impar :INTEIRO
escreva ("Informe o numero de tentativas: ")
leia (N)
para Contador de 1 ate N faca
Escreval ("Digite dois nmeros diferentes: ")
leia (X)
leia (Y)
Soma-Impar <- 0
Uso do lao repita
Varivel contadora

se (X<Y) entao
Soma<-X+1
enquanto (Soma<Y) faca
se (iSoma%2<>0) entao
Soma-Impar<-(Soma-Impar + Soma)
Fimse
soma<- (Soma + 1)
fimenquanto
se (X<Y) entao
Soma<-X+1
enquanto (Soma<Y) faca
se (iSoma%2<>0) entao
Soma-Impar<-(Soma-Impar + Soma)
Fimse
soma<- (Soma + 1)
Fimenquanto
escreval("A soma dos numeros impares
entre",X," e",Y," foi: ",Soma-Impar)
fimpara
Uso de varivel acumuladora
Uso da condio lgica se

Tecnologia em Analise e desenvolvimento de Sistemas inicio
X, Y e N
X < Y Soma <- X+1
Soma
< Y
Soma
%2 <> 0
soma-impar <-
soma-impar + soma
Soma <-
soma + 1
Soma-impar
fim
falso
verdadeiro
Soma <- Y+1
Soma
< X
Soma
%2 <> 0
soma-impar <-
soma-impar + soma
Soma <-
soma + 1
RELATRIO 02
ETAPA 2
Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 9


PROBLEMA 2
Andreia est aprendendo Programao de
Computadores. Ela acha tudo muito fcil,
muito simples. Ela vai fazer um pequeno
programa que l os nomes de seus amigos e a
distncia de sua casa at a casa de cada um
deles. Portanto, ela simplesmente quer calcular
qual a distncia mdia entre a sua casa e
sua casa dos amigos (em metros).
Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 4
Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 11
ENTRADA ---------------------------------------------
Deve conter vrios casos de teste. Cada caso de
teste composto por duas linhas: A primeira linha
contm o nome de um amigo; A segunda linha
contm um nmero inteiro que indica a distncia
mdia entre a casa Andreia e a casa de um amigo.
PROCESSO -------------------------------------------
???
SAIDA --------------------------------------------------
um nmero com um dgito aps a vrgula e que
indica a distncia mdia entre a casa Andreia e a
casa de seus amigos.
INICIO
Nome,
distancia
???
Distancia-
media
FIM
Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 12
RESOLUO DO PROBLEMA 2
Var: distancia, Soma-distancia, Contador: INTEIRO
Var: Nome, Continua : Caractere
Var: Distancia-Media : real

Repita

escreval("Informe o nome de seu amigo:")
leia(Nome)

escreval("Informe a distancia entre sua casa e a de
seu amigo:")
leia(distancia)


Soma-Distancia<-(Soma-distancia + Distancia)

Contador<-(Contador+1)

escreva("Mais amigos? (N para Calcular a Distancia
Media): ")
leia(Continua)
ate(Continua="N")

Distancia-Media<-(Soma-Distancia/Contador)
escreval("A distancia media da sua casa para a casa
de seus amigos eh:",(Distancia-Media):8:1)
Uso do lao repita
Varivel contadora

Uso de varivel acumuladora
Uso da condio lgica se

Tecnologia em Analise e desenvolvimento de Sistemas
INICIO
Nome,
distancia
Soma-distancia <-
Soma-distancia + distancia
Contador <-
(Contador + 1)
continua
(Continua
=N)
Distancia-media <-
(soma-distancia/contador
Distancia-media FIM
falso
verdadeiro
RELATRIO 03
ETAPA 3
Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 15


PROBLEMA 3
Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 4
Joo quer montar um painel contendo
diferentes nmeros de LEDs. Como no tm
muitos, no tem certeza se vai ser capaz de
montar o nmero desejado. Considerando-se
a configurao dos LEDs conforme consta o
exemplo na Figura 1 , fazer um algoritmo que
ajude Joo descobrir quantos LEDs so
necessrios para montar o nmero.
Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 11
ENTRADA ---------------------------------------------
A entrada contm um nmero inteiro N, (1 N 2000)
correspondente ao nmero de casos de teste, seguido
por N linhas, cada linha contendo um nmero (1 V
10100) que corresponde ao valor que Joo quer
representar com LEDs..
PROCESSO -------------------------------------------
???
SAIDA --------------------------------------------------
Para cada caso de teste, imprimir uma linha contendo o
nmero de LEDs que Joo precisa para representar o
valor desejado, seguido da palavra "leds".
INICIO
N-teste,
num_reptd
???
Qt_LEDs
FIM
Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 12
RESOLUO DO PROBLEMA 3
Numero: caractere
cont1, cont2, Tamanho, num, Quant,
TotalLeds: inteiro

escreva("Informe quantos testes ira
realizar: ")
leia(Quant)

para cont1 de 1 ate Quant faca
TotalLeds<-0

escreva("Informe o numero a apresentar
no Display: ")
leia(Numero)

Tamanho<-compr(Numero)

para cont2 de 1 ate Tamanho faca

num<-
Caracpnum(copia(Numero,cont2,1))

escolha (num)

caso 1
TotalLeds<-TotalLeds+2
caso 2
TotalLeds<-TotalLeds+5
caso 3
TotalLeds<-TotalLeds+5
caso 4
TotalLeds<-TotalLeds+4
caso 5
TotalLeds<-TotalLeds+5
caso 6
TotalLeds<-TotalLeds+6
caso 7
TotalLeds<-TotalLeds+3
caso 8
TotalLeds<-TotalLeds+7
caso 9
TotalLeds<-TotalLeds+6
caso 0
TotalLeds<-TotalLeds+6
outrocaso
fimescolha
fimpara
escreval("Total de Leds necessrios:
",TotalLeds)
fimpara
fimalgoritmo
Uso de varivel acumuladora
Uso do lao repita

Funes para manipular strings:
compr, carcpnum, copia.


Varivel contadora
Uso da condio lgica se
TESTE DE MESA
Ao representar o numero 100 e 234 quantos LEDs so
necessrio ??
1= 2 LEDs | 2= 5 LEDs | 3= 5 LEDs | 4= 4 LEDs | 0= 6 LEDs

Para 100 2 + 6 + 6 = 14 LEDs


Para 234 5 + 5 + 4 = 14 LEDs

Fim Teste de Mesa
RELATRIO 04
ETAPA 4
Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 15


PROBLEMA 4

Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 4
O Problema de Josephus definido como mostrado
a seguir. N pessoas esto organizadas em um crculo
e que temos um inteiro positivo M N. Comeando
com uma primeira pessoa designada, prosseguimos
em torno do crculo, removendo cada M-sima
pessoa. Depois que cada pessoa removida, a
contagem prossegue em torno do crculo restante.
Esse processo continua at todas as M pessoas
terem sido removidas. A ordem em que as pessoas
so removidas do crculo define a permutao de
Josephus de (N, M) dos inteiros 1, 2, ... , N.
Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 11
ENTRADA ---------------------------------------------
Definir como NC (1 NC 30) os casos de teste. Em
cada caso de teste de entrada haver um par de
nmeros inteiros positivos N (1 N 10000) e M (1 M
1000). O nmero N representa a quantidade de pessoas
do crculo, numerados de 1 a N. O nmero M representa
o tamanho do passo entre duas pessoas no crculo.
PROCESSO -------------------------------------------
???
SAIDA --------------------------------------------------
Para cada caso de teste, haver uma linha de sada no
seguinte formato: Case N: M sempre com um espao
antes de N e M. Sendo M a pessoa que restou no crculo.
INICIO
Num-teste,
N e M
???
Case N : M
FIM
Tecnologia em Analise e desenvolvimento de Sistemas
2 semestre
28 de Novembro
Pg. 12
RESOLUO DO PROBLEMA 4
Uso do lao repita
Varivel contadora
Uso de varivel acumuladora
Uso da condio lgica se
Uso de matriz
Uso de vetor
var
cast: vetor[1..30, 1..2]de inteiro
n: vetor[1..10000] de inteiro
nc,i,j,k,mortos, passos: inteiro

inicio

escreva (" Quantidade de casos teste ")
leia(nc)

para k de 1 ate nc faca

escreva("Numero de pessoas no circulo:")
leia(cast[k,1])
escreva(" Ordem de eliminao: ")
leia(cast[k,2])

para i de 1 ate cast[k,1] faca

n[i]<-i
fimpara
mortos<- 0
passos<- 1
repita
para j de 1 ate cast[k,1] faca
se n[j] <> 0 entao
se passos=cast[k,2] entao
n[j]<-0
mortos<-mortos+1
passos<-1
senao
passos<-passos+1

fimse
fimse
fimpara

ate mortos = cast[k,1]-1

para j de 1 ate cast[k,1] faca

se n[j] <> 0 entao
escreva( CASO",k," : ",n[j])
escreval("")
escreval("")
fimse
fimpara
fimpara
fimalgoritmo
TESTE DE MESA

H um Circulo com 10 pessoas, sendo eliminadas de 3 em 3.
Qual a posio inicial da ultima pessoas a ser eliminada do
circulo?

Potrebbero piacerti anche