PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
Atividade pratica supervisionada construção de algoritimo
1. Tecnologia em Analise e desenvolvimento de Sistemas
Rafael Souza Santos - 7299613201
Leandro V. Ferreira - 6660432326
Rodolfo Alves
- 7229576393
Felipe D. Guimarães - 9977020851
ATIVIDADE PRATICA
SUPERVISIONADA
Construção de Algoritmos
2º semestre
28 de Novembro
2013
2. “
Tecnologia em Analise e desenvolvimento de Sistemas
O sucesso nasce do querer, da determinação e persistência em se chegar
a um objetivo. Mesmo não atingindo o alvo, quem busca e vence
obstáculos, no mínimo fará coisas admiráveis.
José de Alencar
„
”
3. Tecnologia em Analise e desenvolvimento de Sistemas
RELATÓRIO 01
ETAPA 1
2º semestre
28 de Novembro
Pág. 3
4. “
Tecnologia em Analise e desenvolvimento de Sistemas
PROBLEMA 1
”
Definir um número inteiro N que será o número
de casos de teste. Cada caso de teste é uma
linha que contém dois números inteiros X e Y.
O problema se resume em imprimir a soma de
todos os valores ímpares entre os dois números
inteiros, excetuando-os.
2º semestre
28 de Novembro
Pág. 4
5. Tecnologia em Analise e desenvolvimento de Sistemas
N= 2
ENTRADA ---------------------------------------------
X e Y =2 e 5
A primeira linha de entrada é um número
inteiro N que é o número de casos de teste
a serem solucionados. Cada caso de teste
é uma linha contendo dois inteiros X e Y.
X e Y =10 e 20
PROCESSO -------------------------------------------
???
???
SAIDA -------------------------------------------------A soma dos números ímpares entre X e Y.
2º semestre
R1= 3
28 de Novembro
R2= 75
Pág. 5
6. Tecnologia em Analise e desenvolvimento de Sistemas
RESOLUÇÃO DO PROBLEMA 1
se (X<Y) entao
Soma<-X+1
Var: N, X, Y, Contador, iSoma, Soma-Impar :INTEIRO
se (X<Y) entao
escreva ("Informe o numero de tentativas: ")
Soma<-X+1
leia (N)
enquanto (Soma<Y) faca
para Contador de 1 ate N faca
se (iSoma%2<>0) entao
Escreval ("Digite dois números diferentes: ")
Soma-Impar<-(Soma-Impar + Soma)
leia (X)
Fimse
leia (Y)
soma<- (Soma + 1)
Soma-Impar <- 0
fimenquanto
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 do laço repita
•
Uso de variável acumuladora
•
Variável contadora
•
Uso da condição lógica ‘se’
2º semestre
28 de Novembro
Pág. 6
7. inicio
verdadeiro
Soma <- X+1
Soma
%2 <> 0
X, Y e N
X<Y
Soma
<Y
falso
Soma <- Y+1
Soma
<X
soma-impar <soma-impar + soma
Soma <soma + 1
Tecnologia em Analise e desenvolvimento de Sistemas
Soma
%2 <> 0
soma-impar <soma-impar + soma
Soma-impar
fim
Soma <soma + 1
8.
9. Tecnologia em Analise e desenvolvimento de Sistemas
RELATÓRIO 02
ETAPA 2
2º semestre
28 de Novembro
Pág. 9
10. “
Tecnologia em Analise e desenvolvimento de Sistemas
PROBLEMA 2
”
Andreia está aprendendo Programação de
Computadores. Ela acha tudo muito fácil,
muito simples. Ela vai fazer um pequeno
programa que lê os nomes de seus amigos e a
distância de sua casa até a casa de cada um
deles. Portanto, ela simplesmente quer calcular
qual é a distância média entre a sua casa e
sua casa dos amigos (em metros).
2º semestre
28 de Novembro
Pág. 4
11. Tecnologia em Analise e desenvolvimento de Sistemas
INICIO
ENTRADA --------------------------------------------Deve conter vários casos de teste. Cada caso de
teste é composto por duas linhas: A primeira linha
contém o nome de um amigo; A segunda linha
contém um número inteiro que indica a distância
média entre a casa Andreia e a casa de um amigo.
Nome,
distancia
???
PROCESSO ------------------------------------------???
SAIDA -------------------------------------------------um número com um dígito após a vírgula e que
indica a distância média entre a casa Andreia e a
casa de seus amigos.
2º semestre
28 de Novembro
Distanciamedia
FIM
Pág. 11
12. Tecnologia em Analise e desenvolvimento de Sistemas
RESOLUÇÃO DO PROBLEMA 2
Var: distancia, Soma-distancia, Contador: INTEIRO
Var: Nome, Continua : Caractere
Var: Distancia-Media : real
Soma-Distancia<-(Soma-distancia + Distancia)
Repita
escreval("Informe o nome de seu amigo:")
leia(Nome)
escreva("Mais amigos? (N para Calcular a Distancia
Media): ")
leia(Continua)
ate(Continua="N")
escreval("Informe a distancia entre sua casa e a de
seu amigo:")
leia(distancia)
Distancia-Media<-(Soma-Distancia/Contador)
escreval("A distancia media da sua casa para a casa
de seus amigos eh:",(Distancia-Media):8:1)
Contador<-(Contador+1)
•
Uso do laço repita
•
Uso de variável acumuladora
•
Variável contadora
•
Uso da condição lógica ‘se’
2º semestre
28 de Novembro
Pág. 12
13. Tecnologia em Analise e desenvolvimento de Sistemas
INICIO
Nome,
distancia
Contador <(Contador + 1)
Soma-distancia <Soma-distancia + distancia
falso
(Continua
=„N‟)
continua
verdadeiro
Distancia-media <(soma-distancia/contador
Distancia-media
FIM
14.
15. Tecnologia em Analise e desenvolvimento de Sistemas
RELATÓRIO 03
ETAPA 3
2º semestre
28 de Novembro
Pág. 15
16. “
Tecnologia em Analise e desenvolvimento de Sistemas
PROBLEMA 3
”
João quer montar um painel contendo
diferentes números de LEDs. Como não têm
muitos, não tem certeza se vai ser capaz de
montar o número desejado. Considerando-se
a configuração dos LEDs conforme consta o
exemplo na Figura 1 , fazer um algoritmo que
ajude João descobrir quantos LEDs são
necessários para montar o número.
2º semestre
28 de Novembro
Pág. 4
17. Tecnologia em Analise e desenvolvimento de Sistemas
INICIO
ENTRADA --------------------------------------------A entrada contém um número inteiro N, (1 ≤ N ≤ 2000)
correspondente ao número de casos de teste, seguido
por N linhas, cada linha contendo um número (1 ≤ V ≤
10100) que corresponde ao valor que João quer
representar com LEDs..
N-teste,
num_reptd
???
PROCESSO ------------------------------------------???
SAIDA -------------------------------------------------Para cada caso de teste, imprimir uma linha contendo o
número de LEDs que João precisa para representar o
valor desejado, seguido da palavra "leds".
2º semestre
28 de Novembro
Qt_LEDs
FIM
Pág. 11
18. Tecnologia em Analise e desenvolvimento de Sistemas
RESOLUÇÃO DO PROBLEMA 3
Numero: caractere
cont1, cont2, Tamanho, num, Quant, Total
Leds: inteiro
escreva("Informe quantos testes ira
realizar: ")
leia(Quant)
escreva("Informe o numero a apresentar
no Display: ")
leia(Numero)
Funções para manipular strings:
compr, carcpnum, copia.
2º semestre
num<Caracpnum(copia(Numero,cont2,1))
escolha (num)
para cont1 de 1 ate Quant faca
TotalLeds<-0
Tamanho<-compr(Numero)
para cont2 de 1 ate Tamanho faca
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
Uso de variável acumuladora
Uso do laço repita
28 de Novembro
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 necessários:
",TotalLeds)
fimpara
fimalgoritmo
Variável contadora
Uso da condição lógica ‘se
Pág. 12
19. Ao representar o numero 100 e 234 quantos LEDs são
TESTE DE MESA
necessário ??
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
20.
21. Tecnologia em Analise e desenvolvimento de Sistemas
RELATÓRIO 04
ETAPA 4
2º semestre
28 de Novembro
Pág. 15
22. “ PROBLEMA 4
Tecnologia em Analise e desenvolvimento de Sistemas
O Problema de Josephus é definido como mostrado
a seguir. N pessoas estão organizadas em um círculo
e que temos um inteiro positivo M ≤ N. Começando
com uma primeira pessoa designada, prosseguimos
em torno do círculo, removendo cada M-ésima
pessoa. Depois que cada pessoa é removida, a
contagem prossegue em torno do círculo restante.
Esse processo continua até todas as M pessoas
terem sido removidas. A ordem em que as pessoas
são removidas do círculo define a permutação de
Josephus de (N, M) dos inteiros 1, 2, ... , N.
2º semestre
28 de Novembro
”
Pág. 4
23. Tecnologia em Analise e desenvolvimento de Sistemas
INICIO
ENTRADA --------------------------------------------Definir como NC (1 ≤ NC ≤ 30) os casos de teste. Em
cada caso de teste de entrada haverá um par de
números inteiros positivos N (1 ≤ N ≤ 10000) e M (1 ≤ M ≤
1000). O número N representa a quantidade de pessoas
do círculo, numerados de 1 a N. O número M representa
o tamanho do passo entre duas pessoas no círculo.
Num-teste,
NeM
???
PROCESSO ------------------------------------------???
SAIDA -------------------------------------------------Para cada caso de teste, haverá uma linha de saída no
seguinte formato: Case N: M sempre com um espaço
antes de N e M. Sendo M a pessoa que restou no círculo.
2º semestre
28 de Novembro
Case N : M
FIM
Pág. 11
24. Tecnologia em Analise e desenvolvimento de Sistemas
RESOLUÇÃO DO PROBLEMA 4
var
cast: vetor[1..30, 1..2]de inteiro
n: vetor[1..10000] de inteiro
nc,i,j,k,mortos, passos: inteiro
para i de 1 ate cast[k,1] faca
inicio
escreva ("
leia(nc)
Quantidade de casos teste ")
para k de 1 ate nc faca
escreva("Numero de pessoas no circulo:")
leia(cast[k,1])
escreva(" Ordem de eliminação: ")
leia(cast[k,2])
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
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
fimse
•
Uso do laço repita
•
Uso de variável acumuladora
•
Uso de matriz
•
Variável contadora
•
Uso da condição lógica ‘se’
•
Uso de vetor
2º semestre
28 de Novembro
Pág. 12
25. Há um Circulo com 10 pessoas, sendo eliminadas de 3 em 3.
TESTE DE MESA
Qual a posição inicial da ultima pessoas a ser eliminada do
circulo?