Atividade pratica supervisionada construção de algoritimo

  • 2,100 views
Uploaded on

 

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,100
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
135
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. Tecnologia em Analise e desenvolvimento de Sistemas RELATÓRIO 02 ETAPA 2 2º semestre 28 de Novembro Pág. 9
  • 9. “ 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. Tecnologia em Analise e desenvolvimento de Sistemas RELATÓRIO 03 ETAPA 3 2º semestre 28 de Novembro Pág. 15
  • 14. “ 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. Tecnologia em Analise e desenvolvimento de Sistemas RELATÓRIO 04 ETAPA 4 2º semestre 28 de Novembro Pág. 15
  • 19. “ 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
  • 20. 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
  • 21. 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
  • 22. 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?