atividade pratica supervisionada construção de algoritimo

27
ATIVIDADE PRATICA SUPERVISIONADA Construção de Algoritmos Tecnologia em Analise e desenvolvimento de Sistemas Rafael Souza Santos - 7299613201 Leandro V. Ferreira - 6660432326 Rodolfo Alves - 7229576 Felipe D. Guimarães - 9977020851 semestre 28 de Novembro 2013

Upload: felipe-dias

Post on 23-Jun-2015

2.396 views

Category:

Education


5 download

TRANSCRIPT

Page 1: Atividade pratica supervisionada  construção de algoritimo

ATIVIDADE PRATICA SUPERVISIONADA

Construção de Algoritmos

Tecnologia em Analise e desenvolvimento de Sistemas Rafael Souza Santos - 7299613201

Leandro V. Ferreira - 6660432326Rodolfo Alves - 7229576393Felipe D. Guimarães - 9977020851

2º semestre 28 de Novembro 2013

Page 2: Atividade pratica supervisionada  construção de algoritimo

”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

Tecnologia em Analise e desenvolvimento de Sistemas

Page 3: Atividade pratica supervisionada  construção de algoritimo

RELATÓRIO 01ETAPA 1

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 3

Page 4: Atividade pratica supervisionada  construção de algoritimo

”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.

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 4

Page 5: Atividade pratica supervisionada  construção de algoritimo

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 5

ENTRADA ---------------------------------------------

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.

PROCESSO -------------------------------------------

???

SAIDA --------------------------------------------------

A soma dos números ímpares entre X e Y.

N= 2

X e Y =2 e 5

R1= 3

X e Y =10 e 20

R2= 75

???

Entendendo o Problema

Page 6: Atividade pratica supervisionada  construção de algoritimo

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 6

RESOLUÇÃO 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 números diferentes: ")

leia (X)

leia (Y)

Soma-Impar <- 0

• Uso do laço repita

• Variável 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 variável acumuladora

• Uso da condição lógica ‘se’

Page 7: Atividade pratica supervisionada  construção de algoritimo

Tecnologia em Analise e desenvolvimento de Sistemasinicio

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

falsoverdadeiro

Soma <- Y+1

Soma < X

Soma %2 <> 0

soma-impar <- soma-impar + soma

Soma <- soma + 1

Page 8: Atividade pratica supervisionada  construção de algoritimo
Page 9: Atividade pratica supervisionada  construção de algoritimo

RELATÓRIO 02ETAPA 2

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 9

Page 10: Atividade pratica supervisionada  construção de algoritimo

”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).

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 4

Page 11: Atividade pratica supervisionada  construção de algoritimo

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 11

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.

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.

Entendendo o Problema INICIO

Nome, distancia

???

Distancia-media

FIM

Page 12: Atividade pratica supervisionada  construção de algoritimo

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 12

RESOLUÇÃO DO PROBLEMA 2

Var: distancia, Soma-distancia, Contador: INTEIROVar: Nome, Continua : CaractereVar: 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 laço repita

• Variável contadora

• Uso de variável acumuladora

• Uso da condição lógica ‘se’

Page 13: Atividade pratica supervisionada  construção de algoritimo

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

Page 14: Atividade pratica supervisionada  construção de algoritimo
Page 15: Atividade pratica supervisionada  construção de algoritimo

RELATÓRIO 03ETAPA 3

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 15

Page 16: Atividade pratica supervisionada  construção de algoritimo

”PROBLEMA 3

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 4

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.

Page 17: Atividade pratica supervisionada  construção de algoritimo

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 11

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..

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".

Entendendo o Problema INICIO

N-teste, num_reptd

???

Qt_LEDs

FIM

Page 18: Atividade pratica supervisionada  construção de algoritimo

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 12

RESOLUÇÃO DO PROBLEMA 3Numero: caracterecont1, cont2, Tamanho, num, Quant, TotalLeds: inteiro

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

para cont1 de 1 ate Quant facaTotalLeds<-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 fimparaescreval("Total de Leds necessários: ",TotalLeds)fimparafimalgoritmo

Uso de variável acumuladora

Uso do laço repita

Funções para manipular strings: compr, carcpnum, copia.

Variável contadora Uso da condição lógica ‘se

Page 19: Atividade pratica supervisionada  construção de algoritimo

TESTE DE MESAAo representar o numero 100 e 234 quantos LEDs são 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

Teste De

Mesa

Page 20: Atividade pratica supervisionada  construção de algoritimo
Page 21: Atividade pratica supervisionada  construção de algoritimo

RELATÓRIO 04ETAPA 4

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 15

Page 22: Atividade pratica supervisionada  construção de algoritimo

PROBLEMA 4

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 4

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.

Page 23: Atividade pratica supervisionada  construção de algoritimo

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 11

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.

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.

Entendendo o Problema INICIO

Num-teste, N e

M

???

Case N : M

FIM

Page 24: Atividade pratica supervisionada  construção de algoritimo

Tecnologia em Analise e desenvolvimento de Sistemas

2º semestre 28 de Novembro Pág. 12

RESOLUÇÃO DO PROBLEMA 4

• Uso do laço repita

• Variável contadora

• Uso de variável

acumuladora

• Uso da condição lógica ‘se’

• Uso de matriz

• Uso de vetor

varcast: vetor[1..30, 1..2]de inteiron: vetor[1..10000] de inteironc,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 eliminação: ") 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 fimparafimparafimalgoritmo

Page 25: Atividade pratica supervisionada  construção de algoritimo

TESTE DE MESAHá um Circulo com 10 pessoas, sendo eliminadas de 3 em 3. Qual a posição inicial da ultima pessoas a ser eliminada do circulo?

Teste De

Mesa1 2

9

48

6

3

75

10

Page 26: Atividade pratica supervisionada  construção de algoritimo
Page 27: Atividade pratica supervisionada  construção de algoritimo

The End.