SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
Universidade Federal de Pelotas
                                 Departamento de Computação
Disciplina: Algoritmos e Programação (Teórica)
Profª: Fernanda Jeannes
Aluno: Maicon de Menezes Oliveira

                                         Exercícios – Lista 9

Algoritmo
       Declare Bairros(50),Metragens(10) literal
       Declare Valores(50,10),tb,tm,pB,pM,reaj,min,max numerico

       sub-rotina LerTabela(CR b(),m() literal;CR v() numerico; totalB,totalM numerico)
              Declare i,j numerico
              Escreva ‘Informe as metragens’
              Para i de 1 até totalM faça
                     Leia m(i)
              fim_para
              Para i de 1 até totalB faça
                     Escreva ‘Informe o bairro’
                     Leia b(i)
                     Para j de 1 até totalM faça
                            Escreva ‘Informe o valor para a metragem ’, m(j)
                            Leia v(i,j)
                     fim_para
              fim_para
       fim_sub-rotina

       sub-rotina EscreverTabela(b(),m() literal; v(),totalB,totalM numerico)
              Declare i,j numerico
              Para i de 1 até totalB faça
                     Escreva ‘Bairro:’, b(i), n
                     Para j de 1 até totalM faça
                            Escreva ‘Valor para a metragem ’, m(j), ‘: ’, v(i,j), n
                     fim_para
              fim_para
       fim_sub-rotina

       sub-rotina AptoCaro(v() mumerico; totalB,totalM numerico; CR posB,posM numerico)
              Declare i,j numérico
              posB := 1
              posM := 1
              Para i de 1 até totalB faca
                     Para j de 1 até totalM faca
                            Se v(i,j)> v(posB,posM) então
                                   posB:=i
                                   posM:=j
                            fim_se
                     fim_para
              fim_para
       fim_sub-rotina

       função numérico AptoBarato(v(), posB, totalM numerico)
              Declare i,m numérico
              m := v(posB,1)
              Para i de 2 até totalM faça
                     se m > v(posB,i) então
                            m := v(posB,i)
                     fim_se
              fim_para
              retorna m
       fim_função

       sub-rotina Reajusta(CR v() numérico; totalB,totalM,r,ini,fim numerico)
              Declare i,j numérico
              Para i de 1 até totalB faca
                     Para j de 1 até totalM faca
                            se v(i,j)>=ini E v(i,j)<=fim então



Quarta-feira, 30 de novembro de 2011                               Página 1
Universidade Federal de Pelotas
                                 Departamento de Computação
Disciplina: Algoritmos e Programação (Teórica)
Profª: Fernanda Jeannes
Aluno: Maicon de Menezes Oliveira
                                       v(i,j):=v(i,j)+v(i,j)*r/100
                            fim_se
                     fim_para
              fim_para
       fim_sub-rotina

       Escreva ‘Informe o total de bairros:’
       Repita
              Leia tb
       até tb>0 E tb<=50

       Escreva ‘Informe o total de metragens:’

       Repita
              Leia tm
       até tm>0 E tm<=10
       LerTabela(Bairros,Metragens,Valores,tb,tm)
       EscreverTabela(Bairros,Metragens,Valores,tb,tm)
       AptoCaro(Valores,tb,tm,pB,pM)
       Escreva ‘Apartamento mais caro: ’
       Escreva ‘Valor: ’, Valores(pB,pM)
       Escreva ‘Bairro: ’, Bairros(pB)
       Escreva ‘Área: ’, Metragem(pM)
       Escreva ‘Valor do Apto mais barato no bairro: ’ AptoBarato(Valores,pB,tm)
       Escreva ‘Informe o percentual de reajuste:’
       Leia reaj
       Escreva ‘Informe a faixa dos valores para reajuste:’
       Leia min,max
       Reajusta(Valores,tb,tm,reaj,min,max)
       EscreverTabela(Bairros,Metragens,Valores,tb,tm)
fim_algoritmo




Quarta-feira, 30 de novembro de 2011                                 Página 2
Universidade Federal de Pelotas
                                 Departamento de Computação
Disciplina: Algoritmos e Programação (Teórica)
Profª: Fernanda Jeannes
Aluno: Maicon de Menezes Oliveira
Algoritmo
       Declare v1(100), v2(100), v3(100), tam, i numérico

         Sub-rotina lerVetor (v() numérico; t numérico
                Declare i numerico
                Para i d 1 até t faça
                       v(i):=0
                       Enquanto (v(i)<0) OU (v(i)>9) faça
                              Escreva ‘Digite um valor entre 0 e 9 para a posição’,i,’do
vetor’
                              Leia v(i)
                       Fim_enquanto
                Fim_para
         Fim_sub-rotina

         Sub-rotina somaVetor (CR vt1(), vt2(), v3() numérico; t numerico)
                Para i de 1 ate t faça
                       vt3(i):=vt1(i)+vt2(i)
                       Se (vt3(i)>9) então
                              vt3(i):=0
                       fim_se
                fim_para
         fim_sub-rotina

         Escreva ‘Digite o tamanho dos vetores: ’
         Leia tam

         lerVetor(v1, tam)
         lerVetor(v2, tam)
         somaVetor(v1, v2, v3, tam)

       Para i de 1 até tam faça
              Escreva ‘Vetor 1 = ’,v1(i)
              Escreva ‘Vetor 2 = ’,v2(i)
              Escreva ‘Vetor 3 = ’,v3(i)
       Fim_para
Fim_algoritmo




Quarta-feira, 30 de novembro de 2011                                 Página 3
Universidade Federal de Pelotas
                                 Departamento de Computação
Disciplina: Algoritmos e Programação (Teórica)
Profª: Fernanda Jeannes
Aluno: Maicon de Menezes Oliveira
Algoritmo

       Função numérico dígitos(num numerico)
              Se (num<=9) então
                     Retorna num
              fim_se
              retorna 1+digitos(num/10)
       fim_função

       função numérico inverte(n numerico)

                Declare l, k, iv numérico

                l:= Resto(n, 10)
                k:= (digitos(n)-1)
                se (n<=9) então
                       retorna n
                fim_se
                iv:=(l*(10**k))+inverte(n/10)
                retorna iv

       fim_função

       função numérico verificador(ct numerico)

                Declare soma, i, dg, b, s numerico

                dg:=dígitos(ct)
                n= c+inverte(ct)
                soma:=0
                para i de dg até 1 faça passo -1
                       b:=(resto(n,10)*i
                       n:=(n-resto(n,10))/10
                       soma:=soma+b
                fim_para

                s = resto((ct+inverte(ct)), 10);

                se (s=0)então
                       retorna (resto(soma, 10)+1)
       fim_se

                retorna resto(soma,10)

       fim_função


       tipo cadastro registro
              N_cheque, CC, DV, valor, agencia, numerico
              Nome literal
       fim_registro

       tipo lista registro
              total numérico
              nome literal
       fim_registro

       declare cheque(1000) cadastro

       sub_rotina cadastrar(CR, c() cadastro; t numerico)
              Declare i numerico


Quarta-feira, 30 de novembro de 2011                          Página 4
Universidade Federal de Pelotas
                                 Departamento de Computação
Disciplina: Algoritmos e Programação (Teórica)
Profª: Fernanda Jeannes
Aluno: Maicon de Menezes Oliveira
               i:=1
               repita
                        Escreva ‘Digite o numero do cheque: ’
                        Leia c(i).N_cheque
                        Escreva ‘Digite o numero da agência: ’
                        Leia c(i).agencia
                        Escreva ‘Digite o numero da conta corrente: ’
                        Leia c(i).CC
                        Repita
                               Escreva ‘Digite o numero do Digito Verificador: ’
                               Leia c(i).DV
                               Se c(i).DV <> verificador(c(i).cc) então
                                      Escreva ‘Digio Verificador inválido. Por favor digite
novamente’
                            Fim_se
                     Até c(i).DV = verificador(c(i).cc)
                     Escreva ‘Digite o valor do cheque: ’
                     Leia c(i).valor
                     Escreva ‘Digite o nome do cliente: ’
                     Leia c(i).nome
                     i:=i+1
              Até c(i).N_cheque = -1
       fim_sub_rotina

       sub_rotina Ordena(CR, c() cadastro, t numérico)
              Declare i, aux_NC, aux_AG, aux_CC, auv_DV, aux_valor numérico
              Declare aux_N literal

               Para i de 1 até t-1 faça
                      Para i de 1 até t faça
                             Se c(i).nome<=c(j).nome então
                                    aux_N:=c(i).nome
                                    c(j).nome:=c(i).nome
                                    c(i).nome:=c(j).nome

                                       aux_NC:=c(i).N_cheque
                                       c(j).N_cheque:=c(i).N_cheque
                                       c(i) .N_cheque:=c(j).N_cheque

                                       aux_AG:=c(i).agencia
                                       c(j).agencia:=c(i).agencia
                                       c(i).agencia:=c(j).agencia

                                       aux_CC:=c(i).CC
                                       c(j).CC:=c(i).CC
                                       c(i).CC:=c(j).CC

                                       aux_DV:=c(i).DV
                                       c(j).DV:=c(i).DV
                                       c(i).DV:=c(j).DV

                                       aux_V:=c(i).valor
                                       c(j).valor:=c(i).valor
                                       c(i).valor:=c(j).valor
                             fim_se
                      fim_para
               fim_para

               Para i de 1 até t-1 faça
                      Para i de 1 até t faça
                             Se c(i).nome<>c(j).nome então



Quarta-feira, 30 de novembro de 2011                                   Página 5
Universidade Federal de Pelotas
                                 Departamento de Computação
Disciplina: Algoritmos e Programação (Teórica)
Profª: Fernanda Jeannes
Aluno: Maicon de Menezes Oliveira
                                       vt(i).nome:=c(i).nome
                             fim_se
                      fim_para
               fim_para

       fim_subrotina

       sub_rotina total(v() cadastro; vt() lista; t numerico )
              Para i de 1 até t-1 faça
                     vt(i).total:=0
                     Para i de 1 até t faça
                            Enquanto vt(i).nome = v(j).nome faça
                                   vt(i).total:=vt(i).total+v(j).valor
                            fim_enquanto
                     fim_para
              fim_para
       fim_subrotina

       cadastrar(cheque, 1000)
       Ordena(cheque, soma, 1000)
       Total(cheque, soma, 1000)

       Para i de 1 até 1000 faça
              Escreva 'Cliente: ', soma(i).nome
              Escreva 'Total: ', soma(i).total
       Fim_para
fim_Algoritmo




Quarta-feira, 30 de novembro de 2011                                Página 6
Universidade Federal de Pelotas
                                  Departamento de Computação
Disciplina: Algoritmos e Programação (Teórica)
Profª: Fernanda Jeannes
Aluno: Maicon de Menezes Oliveira
Algoritmo
       Tipo AGENDA = registro
              nome Literal
              end Literal
              fone Numerico
       fim_registro
       Declare op, fone numerico
       Declare nome literal
       Declare A(10) AGENDA

       sub-rotina Cadastra(CR v() AGENDA;t numérico)
              Declare i numérico
              Para i de 1 até t faca
                     Leia v(i).nome
                     Leia v(i).end
                     Leia v(i).fone
              fim_para
       fim_sub-rotina

       sub-rotina PesquisaNome(n literal; v() AGENDA; t numérico)
              Declare i, achou numérico
              i:=1
              achou := 0
              Enquanto i <= t E achou = 0 faca
                     Se v(i).nome = n então
                            Escreva ‘Endereço: ‘, v(i).end
                            Escreva ‘Fone: ‘, v(i).fone
                            achou := 1
                     fim_se
                     i:=i+1
              fim_enquanto
              Se achou = 0 então
                     Escreva ‘Registro não localizado’
              fim_se
       fim_sub-rotina

       sub-rotina PesquisaFone(f numérico; v() AGENDA; t numérico)
              Declare i, achou numérico
              i:=1
              achou := 0
              Enquanto i <= t E achou = 0 faca
                     Se v(i).fone = f então
                               Escreve „Nome: ‟, v(i).nome
                               Escreve „Endereço: ‟, v(i).end
                               achou := 1
                      fim_se
                      i:=i+1
               fim_enquanto
               Se achou = 0
                     então Escreva „Registro não localizado‟
              fim_se
       fim_sub-rotina

       sub-rotina Lista(v() AGENDA; t numérico)



Quarta-feira, 30 de novembro de 2011                                 Página 7
Universidade Federal de Pelotas
                                 Departamento de Computação
Disciplina: Algoritmos e Programação (Teórica)
Profª: Fernanda Jeannes
Aluno: Maicon de Menezes Oliveira
              Declare i numérico
                     Para i de 1 até t faça
                            Escreva “Nome”, v(i).nome, n
                            Escreva “Endereço”, v(i).end, n
                            Escreva “Telefone”, v(i).fone, n
                     fim_para
       fim_sub-rotina

       sub_rotina Ordena(CR, c() AGENDA, t numérico)
              Declare i, j, aux_TEL, aux_END numérico
              Declare aux_N literal

                Para i de 1 até t-1 faça
                       Para i de 1 até t faça
                              Se c(i).nome<=c(j).nome então
                                     aux_N:=c(i).nome
                                     c(j).nome:=c(i).nome
                                     c(i).nome:=c(j).nome

                                       aux_TEL:=c(i).fone
                                       c(j).fone:=c(i).fone
                                       c(i).fone:=c(j).fone

                                       aux_END:=c(i).end
                                       c(j).end:=c(i).end
                                       c(i).end:=c(j).end
                            fim_se
                     fim_para
              fim_para
       fim_sub-rotina

       Repita
              Escreva ("Menu de Opções: ")
              Escreva ("1 – Cadastrar contato")
              Escreva ("2 – Pesquisar contato pelo nome")
              Escreva ("3 - Pesquisar contato pelo telefone ")
              Escreva ("4 – Mostrar os contatos cadastrados")
              Escreva ("5 - Sair")
              Escreva ("Opção: ")
              Leia op
              Se op = 1 então
                     Cadastra(A,10)
              fim_se
              Se op = 2 então
                     Escreva “Digite o nome que deseja pesquisar”, n
                     Leia nome
                     PesquisaNome(nome,A,10)
              fim_se
              Se op = 3 então
                     Escreva “Digite o telefone que deseja pesquisar”, n
                     Leia fone
                     PesquisaFone(fone,A,10)
              Se op = 4 então
                     Lista(A,10)
              fim_se
       até opção = 5
fim_algoritmo



Quarta-feira, 30 de novembro de 2011                               Página 8
Universidade Federal de Pelotas
                                 Departamento de Computação
Disciplina: Algoritmos e Programação (Teórica)
Profª: Fernanda Jeannes
Aluno: Maicon de Menezes Oliveira



Algoritmo
       Tipo CADASTRO = Registro
              Nome Literal
              Situação Literal
              Nota(4) Numérico
              Média Numérico
       fim_registro

       Declare Aluno(20) CADASTRO
       Declare i,j,soma Numerico

       sub-rotina cadastrar(CR v(), t)
              Para i de 1 até t faça
                     Escreva ‘Digite o nome do aluno:’,n
                     Leia Aluno(i).Nome
                     Escreva ‘Digite as notas do aluno:’,n
                     Para j de 1 até 4 faça
                            Leia Aluno(i).Nota(j)
                     fim_para
              fim_para
              Para i de 1 até t faça
                     soma := 0
                     Para j de 1 até 4 faça
                            soma := soma + Aluno(i).Nota(j)
                     fim_para
                     Aluno(i).Média:= (soma/4)
                     se Aluno(i).Média >= 6 então
                            Aluno(i).situação:= ‘Aprovado’
                     senão
                            Aluno(i).situação:= ‘Reprovado’

               fim_para

       sub-rotina PesquisaNome(n literal; v() AGENDA; t numérico)
              Declare i, achou numérico
              i:=1
              achou := 0
              Enquanto i <= t E achou = 0 faca
                     Se aluno(i).nome = n então
                            para j de 1 até 4 faça
                                   Escreva ‘Nota’,j,’: ‘, aluno(i).Nota(j)
                            fim_para
                            aluno(i).Média
                            aluno(i).Situação
                            achou := 1
                     fim_se
                     i:=i+1
              fim_enquanto
              Se achou = 0 então
                     Escreva ‘Registro não localizado’
              fim_se
       fim_sub-rotina



Quarta-feira, 30 de novembro de 2011                                Página 9
Universidade Federal de Pelotas
                                 Departamento de Computação
Disciplina: Algoritmos e Programação (Teórica)
Profª: Fernanda Jeannes
Aluno: Maicon de Menezes Oliveira


       sub-rotina Lista(v() cadastro; t numérico; op literal)
              Declare i numérico

              se op = ‘T’ então
                     Para i de 1 até t faça
                            Escreva “Nome:”, aluno(i).nome, n
                            para j de 1 até 4 faça
                                   Escreva ‘Nota’,j,’: ‘, aluno(i).Nota(j)
                            fim_para
                            aluno(i).Média
                            aluno(i).Situação
                     fim_para
              fim_se
              se op = ‘A’ então
                     Para i de 1 até t faça
                            se Aluno(i).Situação = ‘Aprovado’ então
                                   Escreva “Nome:”, aluno(i).nome, n
                                   para j de 1 até 4 faça
                                          Escreva ‘Nota’,j,’: ‘, aluno(i).Nota(j)
                                   fim_para
                                   aluno(i).Média
                            fim_se
                     fim_para
              fim_se
              se op = ‘R’ então
                     Para i de 1 até t faça
                            se Aluno(i).Situação = ‘Reprovado’ então
                                   Escreva “Nome:”, aluno(i).nome, n
                                   para j de 1 até 4 faça
                                          Escreva ‘Nota’,j,’: ‘, aluno(i).Nota(j)
                                   fim_para
                                   aluno(i).Média
                            fim_se
                     fim_para
              fim_se
       fim_sub-rotina

       Repita
                Escreva ("Menu de Opções: ")
                Escreva ("1 – Cadastrar Notas")
                Escreva ("2 – Pesquisar Aluno pelo nome")
                Escreva ("3 - Listar Todos Alunos ")
                Escreva ("4 – Listar Aprovados")
                Escreva ("5 - Listar Reprovados")
                Escreva ("6 - Sair”)
                Escreva ("Opção: ")
                Leia op
                Se op = 1 então
                       cadastrar(Aluno, 20)
                fim_se

                Se op = 2 então
                       Escreva “Digite o nome do aluno: ”
                       Leia nome



Quarta-feira, 30 de novembro de 2011                                Página 10
Universidade Federal de Pelotas
                                  Departamento de Computação
Disciplina: Algoritmos e Programação (Teórica)
Profª: Fernanda Jeannes
Aluno: Maicon de Menezes Oliveira
                         PesquisaNome(nome, Aluno, 20)
                fim_se

                Se op = 3 então
                       listar(Aluno, 20, ‘T’)
                fim_se

                Se op = 4 então
                       listar(Aluno, 20, ‘A’)
                fim_se

                Se op = 5 então
                       listar(Aluno, 20, ‘R’)
                fim_se

       até op = 6

fim_algoritmo




Quarta-feira, 30 de novembro de 2011                            Página 11

Contenu connexe

En vedette

Proyecto educativo institucional 2012
Proyecto educativo institucional 2012Proyecto educativo institucional 2012
Proyecto educativo institucional 2012
vicente fierro
 
11 creatividad empresarial trabajo
11 creatividad empresarial trabajo11 creatividad empresarial trabajo
11 creatividad empresarial trabajo
jose
 
Curso Taller de Preparación para la Certificación (PMI- RMP)®- Realizar el an...
Curso Taller de Preparación para la Certificación (PMI- RMP)®- Realizar el an...Curso Taller de Preparación para la Certificación (PMI- RMP)®- Realizar el an...
Curso Taller de Preparación para la Certificación (PMI- RMP)®- Realizar el an...
David Salomon Rojas Llaullipoma
 
Anthony robbins -_Mensaje_a_un_Amig@
Anthony robbins -_Mensaje_a_un_Amig@Anthony robbins -_Mensaje_a_un_Amig@
Anthony robbins -_Mensaje_a_un_Amig@
Gladis Calderon
 
Creación de una Planta para el Mantenimiento y Procesamiento del Agua - Plani...
Creación de una Planta para el Mantenimiento y Procesamiento del Agua - Plani...Creación de una Planta para el Mantenimiento y Procesamiento del Agua - Plani...
Creación de una Planta para el Mantenimiento y Procesamiento del Agua - Plani...
David Salomon Rojas Llaullipoma
 

En vedette (20)

Proyecto educativo institucional 2012
Proyecto educativo institucional 2012Proyecto educativo institucional 2012
Proyecto educativo institucional 2012
 
Digesto docentes final
Digesto docentes finalDigesto docentes final
Digesto docentes final
 
Reglamento del xodigo fiscal de la federacion
Reglamento del xodigo fiscal de la federacionReglamento del xodigo fiscal de la federacion
Reglamento del xodigo fiscal de la federacion
 
11 creatividad empresarial trabajo
11 creatividad empresarial trabajo11 creatividad empresarial trabajo
11 creatividad empresarial trabajo
 
Curso Taller de Preparación para la Certificación (PMI- RMP)®- Realizar el an...
Curso Taller de Preparación para la Certificación (PMI- RMP)®- Realizar el an...Curso Taller de Preparación para la Certificación (PMI- RMP)®- Realizar el an...
Curso Taller de Preparación para la Certificación (PMI- RMP)®- Realizar el an...
 
Punto 7. ISO 9000
Punto 7. ISO 9000Punto 7. ISO 9000
Punto 7. ISO 9000
 
Sobre la administración de los recursos humanos
Sobre la administración de los recursos humanosSobre la administración de los recursos humanos
Sobre la administración de los recursos humanos
 
Guia de entrenamiento de futbol 8 a 16 años
Guia de entrenamiento de futbol 8 a 16 añosGuia de entrenamiento de futbol 8 a 16 años
Guia de entrenamiento de futbol 8 a 16 años
 
Gerencia Estrategica
Gerencia EstrategicaGerencia Estrategica
Gerencia Estrategica
 
Anthony robbins -_Mensaje_a_un_Amig@
Anthony robbins -_Mensaje_a_un_Amig@Anthony robbins -_Mensaje_a_un_Amig@
Anthony robbins -_Mensaje_a_un_Amig@
 
Speciale 2. udgave
Speciale 2. udgaveSpeciale 2. udgave
Speciale 2. udgave
 
Logaritmos caderno de exercícios
Logaritmos   caderno de exercíciosLogaritmos   caderno de exercícios
Logaritmos caderno de exercícios
 
Stackoverflow DevDays: jQuery Introduction for Developers
Stackoverflow DevDays: jQuery Introduction for DevelopersStackoverflow DevDays: jQuery Introduction for Developers
Stackoverflow DevDays: jQuery Introduction for Developers
 
Creación de una Planta para el Mantenimiento y Procesamiento del Agua - Plani...
Creación de una Planta para el Mantenimiento y Procesamiento del Agua - Plani...Creación de una Planta para el Mantenimiento y Procesamiento del Agua - Plani...
Creación de una Planta para el Mantenimiento y Procesamiento del Agua - Plani...
 
Libro el pequeño vampiro
Libro   el pequeño vampiroLibro   el pequeño vampiro
Libro el pequeño vampiro
 
Manual bpm para la elaboracion de embutidos
Manual bpm para la elaboracion de embutidosManual bpm para la elaboracion de embutidos
Manual bpm para la elaboracion de embutidos
 
Currículo Nacional de la Educación Básica
Currículo Nacional de la Educación BásicaCurrículo Nacional de la Educación Básica
Currículo Nacional de la Educación Básica
 
Escuelas de la Administración
Escuelas de la AdministraciónEscuelas de la Administración
Escuelas de la Administración
 
32 ways to make your blog suck less
32 ways to make your blog suck less32 ways to make your blog suck less
32 ways to make your blog suck less
 
Interacciones farmaco-alimento
Interacciones farmaco-alimentoInteracciones farmaco-alimento
Interacciones farmaco-alimento
 

Similaire à Lista9 maicon menezes

Programação em Python_6.pptx
Programação em Python_6.pptxProgramação em Python_6.pptx
Programação em Python_6.pptx
zarusca
 
Apostila de matemática i apostila específica para o concurso da prefeitura ...
Apostila de matemática i   apostila específica para o concurso da prefeitura ...Apostila de matemática i   apostila específica para o concurso da prefeitura ...
Apostila de matemática i apostila específica para o concurso da prefeitura ...
Iracema Vasconcellos
 
Conceitos e técnicas de programação exercícios i respostas
Conceitos e técnicas de programação  exercícios i respostasConceitos e técnicas de programação  exercícios i respostas
Conceitos e técnicas de programação exercícios i respostas
Robson Ferreira
 
5 expressoes logicas - operadores - base binaria - operadores de bits
5   expressoes logicas - operadores - base binaria - operadores de bits5   expressoes logicas - operadores - base binaria - operadores de bits
5 expressoes logicas - operadores - base binaria - operadores de bits
Ricardo Bolanho
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
Felipe Santos
 

Similaire à Lista9 maicon menezes (20)

05 repeticao
05 repeticao05 repeticao
05 repeticao
 
Programação em Python_6.pptx
Programação em Python_6.pptxProgramação em Python_6.pptx
Programação em Python_6.pptx
 
08 algoritmo - eSTRUTURA DE REPETIÇÃO PARTE 2
08   algoritmo - eSTRUTURA DE REPETIÇÃO PARTE 208   algoritmo - eSTRUTURA DE REPETIÇÃO PARTE 2
08 algoritmo - eSTRUTURA DE REPETIÇÃO PARTE 2
 
Calculo numerico
Calculo numerico Calculo numerico
Calculo numerico
 
Algop - aula 04 pascal 1
Algop - aula 04 pascal 1Algop - aula 04 pascal 1
Algop - aula 04 pascal 1
 
Lógica de Programação - Unimep/Pronatec - Aula10
Lógica de Programação - Unimep/Pronatec - Aula10Lógica de Programação - Unimep/Pronatec - Aula10
Lógica de Programação - Unimep/Pronatec - Aula10
 
Lógica De Programação
Lógica De ProgramaçãoLógica De Programação
Lógica De Programação
 
Aula 04 Estruturas de repetição 02 - Para Faça
Aula 04  Estruturas de repetição 02 - Para FaçaAula 04  Estruturas de repetição 02 - Para Faça
Aula 04 Estruturas de repetição 02 - Para Faça
 
Apostila de matemática i apostila específica para o concurso da prefeitura ...
Apostila de matemática i   apostila específica para o concurso da prefeitura ...Apostila de matemática i   apostila específica para o concurso da prefeitura ...
Apostila de matemática i apostila específica para o concurso da prefeitura ...
 
Conceitos e técnicas de programação exercícios i respostas
Conceitos e técnicas de programação  exercícios i respostasConceitos e técnicas de programação  exercícios i respostas
Conceitos e técnicas de programação exercícios i respostas
 
Introducao ao C#
Introducao ao C#Introducao ao C#
Introducao ao C#
 
Algop - aula 07 resposta exercícios
Algop - aula 07 resposta exercíciosAlgop - aula 07 resposta exercícios
Algop - aula 07 resposta exercícios
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
5 expressoes logicas - operadores - base binaria - operadores de bits
5   expressoes logicas - operadores - base binaria - operadores de bits5   expressoes logicas - operadores - base binaria - operadores de bits
5 expressoes logicas - operadores - base binaria - operadores de bits
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
 
Algoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em CAlgoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em C
 
15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao
 
Lista Exercicios 03
Lista Exercicios 03Lista Exercicios 03
Lista Exercicios 03
 
Resumão ibge
Resumão ibgeResumão ibge
Resumão ibge
 
Cesgranrio banco do brasil 2018
Cesgranrio banco do brasil 2018Cesgranrio banco do brasil 2018
Cesgranrio banco do brasil 2018
 

Lista9 maicon menezes

  • 1. Universidade Federal de Pelotas Departamento de Computação Disciplina: Algoritmos e Programação (Teórica) Profª: Fernanda Jeannes Aluno: Maicon de Menezes Oliveira Exercícios – Lista 9 Algoritmo Declare Bairros(50),Metragens(10) literal Declare Valores(50,10),tb,tm,pB,pM,reaj,min,max numerico sub-rotina LerTabela(CR b(),m() literal;CR v() numerico; totalB,totalM numerico) Declare i,j numerico Escreva ‘Informe as metragens’ Para i de 1 até totalM faça Leia m(i) fim_para Para i de 1 até totalB faça Escreva ‘Informe o bairro’ Leia b(i) Para j de 1 até totalM faça Escreva ‘Informe o valor para a metragem ’, m(j) Leia v(i,j) fim_para fim_para fim_sub-rotina sub-rotina EscreverTabela(b(),m() literal; v(),totalB,totalM numerico) Declare i,j numerico Para i de 1 até totalB faça Escreva ‘Bairro:’, b(i), n Para j de 1 até totalM faça Escreva ‘Valor para a metragem ’, m(j), ‘: ’, v(i,j), n fim_para fim_para fim_sub-rotina sub-rotina AptoCaro(v() mumerico; totalB,totalM numerico; CR posB,posM numerico) Declare i,j numérico posB := 1 posM := 1 Para i de 1 até totalB faca Para j de 1 até totalM faca Se v(i,j)> v(posB,posM) então posB:=i posM:=j fim_se fim_para fim_para fim_sub-rotina função numérico AptoBarato(v(), posB, totalM numerico) Declare i,m numérico m := v(posB,1) Para i de 2 até totalM faça se m > v(posB,i) então m := v(posB,i) fim_se fim_para retorna m fim_função sub-rotina Reajusta(CR v() numérico; totalB,totalM,r,ini,fim numerico) Declare i,j numérico Para i de 1 até totalB faca Para j de 1 até totalM faca se v(i,j)>=ini E v(i,j)<=fim então Quarta-feira, 30 de novembro de 2011 Página 1
  • 2. Universidade Federal de Pelotas Departamento de Computação Disciplina: Algoritmos e Programação (Teórica) Profª: Fernanda Jeannes Aluno: Maicon de Menezes Oliveira v(i,j):=v(i,j)+v(i,j)*r/100 fim_se fim_para fim_para fim_sub-rotina Escreva ‘Informe o total de bairros:’ Repita Leia tb até tb>0 E tb<=50 Escreva ‘Informe o total de metragens:’ Repita Leia tm até tm>0 E tm<=10 LerTabela(Bairros,Metragens,Valores,tb,tm) EscreverTabela(Bairros,Metragens,Valores,tb,tm) AptoCaro(Valores,tb,tm,pB,pM) Escreva ‘Apartamento mais caro: ’ Escreva ‘Valor: ’, Valores(pB,pM) Escreva ‘Bairro: ’, Bairros(pB) Escreva ‘Área: ’, Metragem(pM) Escreva ‘Valor do Apto mais barato no bairro: ’ AptoBarato(Valores,pB,tm) Escreva ‘Informe o percentual de reajuste:’ Leia reaj Escreva ‘Informe a faixa dos valores para reajuste:’ Leia min,max Reajusta(Valores,tb,tm,reaj,min,max) EscreverTabela(Bairros,Metragens,Valores,tb,tm) fim_algoritmo Quarta-feira, 30 de novembro de 2011 Página 2
  • 3. Universidade Federal de Pelotas Departamento de Computação Disciplina: Algoritmos e Programação (Teórica) Profª: Fernanda Jeannes Aluno: Maicon de Menezes Oliveira Algoritmo Declare v1(100), v2(100), v3(100), tam, i numérico Sub-rotina lerVetor (v() numérico; t numérico Declare i numerico Para i d 1 até t faça v(i):=0 Enquanto (v(i)<0) OU (v(i)>9) faça Escreva ‘Digite um valor entre 0 e 9 para a posição’,i,’do vetor’ Leia v(i) Fim_enquanto Fim_para Fim_sub-rotina Sub-rotina somaVetor (CR vt1(), vt2(), v3() numérico; t numerico) Para i de 1 ate t faça vt3(i):=vt1(i)+vt2(i) Se (vt3(i)>9) então vt3(i):=0 fim_se fim_para fim_sub-rotina Escreva ‘Digite o tamanho dos vetores: ’ Leia tam lerVetor(v1, tam) lerVetor(v2, tam) somaVetor(v1, v2, v3, tam) Para i de 1 até tam faça Escreva ‘Vetor 1 = ’,v1(i) Escreva ‘Vetor 2 = ’,v2(i) Escreva ‘Vetor 3 = ’,v3(i) Fim_para Fim_algoritmo Quarta-feira, 30 de novembro de 2011 Página 3
  • 4. Universidade Federal de Pelotas Departamento de Computação Disciplina: Algoritmos e Programação (Teórica) Profª: Fernanda Jeannes Aluno: Maicon de Menezes Oliveira Algoritmo Função numérico dígitos(num numerico) Se (num<=9) então Retorna num fim_se retorna 1+digitos(num/10) fim_função função numérico inverte(n numerico) Declare l, k, iv numérico l:= Resto(n, 10) k:= (digitos(n)-1) se (n<=9) então retorna n fim_se iv:=(l*(10**k))+inverte(n/10) retorna iv fim_função função numérico verificador(ct numerico) Declare soma, i, dg, b, s numerico dg:=dígitos(ct) n= c+inverte(ct) soma:=0 para i de dg até 1 faça passo -1 b:=(resto(n,10)*i n:=(n-resto(n,10))/10 soma:=soma+b fim_para s = resto((ct+inverte(ct)), 10); se (s=0)então retorna (resto(soma, 10)+1) fim_se retorna resto(soma,10) fim_função tipo cadastro registro N_cheque, CC, DV, valor, agencia, numerico Nome literal fim_registro tipo lista registro total numérico nome literal fim_registro declare cheque(1000) cadastro sub_rotina cadastrar(CR, c() cadastro; t numerico) Declare i numerico Quarta-feira, 30 de novembro de 2011 Página 4
  • 5. Universidade Federal de Pelotas Departamento de Computação Disciplina: Algoritmos e Programação (Teórica) Profª: Fernanda Jeannes Aluno: Maicon de Menezes Oliveira i:=1 repita Escreva ‘Digite o numero do cheque: ’ Leia c(i).N_cheque Escreva ‘Digite o numero da agência: ’ Leia c(i).agencia Escreva ‘Digite o numero da conta corrente: ’ Leia c(i).CC Repita Escreva ‘Digite o numero do Digito Verificador: ’ Leia c(i).DV Se c(i).DV <> verificador(c(i).cc) então Escreva ‘Digio Verificador inválido. Por favor digite novamente’ Fim_se Até c(i).DV = verificador(c(i).cc) Escreva ‘Digite o valor do cheque: ’ Leia c(i).valor Escreva ‘Digite o nome do cliente: ’ Leia c(i).nome i:=i+1 Até c(i).N_cheque = -1 fim_sub_rotina sub_rotina Ordena(CR, c() cadastro, t numérico) Declare i, aux_NC, aux_AG, aux_CC, auv_DV, aux_valor numérico Declare aux_N literal Para i de 1 até t-1 faça Para i de 1 até t faça Se c(i).nome<=c(j).nome então aux_N:=c(i).nome c(j).nome:=c(i).nome c(i).nome:=c(j).nome aux_NC:=c(i).N_cheque c(j).N_cheque:=c(i).N_cheque c(i) .N_cheque:=c(j).N_cheque aux_AG:=c(i).agencia c(j).agencia:=c(i).agencia c(i).agencia:=c(j).agencia aux_CC:=c(i).CC c(j).CC:=c(i).CC c(i).CC:=c(j).CC aux_DV:=c(i).DV c(j).DV:=c(i).DV c(i).DV:=c(j).DV aux_V:=c(i).valor c(j).valor:=c(i).valor c(i).valor:=c(j).valor fim_se fim_para fim_para Para i de 1 até t-1 faça Para i de 1 até t faça Se c(i).nome<>c(j).nome então Quarta-feira, 30 de novembro de 2011 Página 5
  • 6. Universidade Federal de Pelotas Departamento de Computação Disciplina: Algoritmos e Programação (Teórica) Profª: Fernanda Jeannes Aluno: Maicon de Menezes Oliveira vt(i).nome:=c(i).nome fim_se fim_para fim_para fim_subrotina sub_rotina total(v() cadastro; vt() lista; t numerico ) Para i de 1 até t-1 faça vt(i).total:=0 Para i de 1 até t faça Enquanto vt(i).nome = v(j).nome faça vt(i).total:=vt(i).total+v(j).valor fim_enquanto fim_para fim_para fim_subrotina cadastrar(cheque, 1000) Ordena(cheque, soma, 1000) Total(cheque, soma, 1000) Para i de 1 até 1000 faça Escreva 'Cliente: ', soma(i).nome Escreva 'Total: ', soma(i).total Fim_para fim_Algoritmo Quarta-feira, 30 de novembro de 2011 Página 6
  • 7. Universidade Federal de Pelotas Departamento de Computação Disciplina: Algoritmos e Programação (Teórica) Profª: Fernanda Jeannes Aluno: Maicon de Menezes Oliveira Algoritmo Tipo AGENDA = registro nome Literal end Literal fone Numerico fim_registro Declare op, fone numerico Declare nome literal Declare A(10) AGENDA sub-rotina Cadastra(CR v() AGENDA;t numérico) Declare i numérico Para i de 1 até t faca Leia v(i).nome Leia v(i).end Leia v(i).fone fim_para fim_sub-rotina sub-rotina PesquisaNome(n literal; v() AGENDA; t numérico) Declare i, achou numérico i:=1 achou := 0 Enquanto i <= t E achou = 0 faca Se v(i).nome = n então Escreva ‘Endereço: ‘, v(i).end Escreva ‘Fone: ‘, v(i).fone achou := 1 fim_se i:=i+1 fim_enquanto Se achou = 0 então Escreva ‘Registro não localizado’ fim_se fim_sub-rotina sub-rotina PesquisaFone(f numérico; v() AGENDA; t numérico) Declare i, achou numérico i:=1 achou := 0 Enquanto i <= t E achou = 0 faca Se v(i).fone = f então Escreve „Nome: ‟, v(i).nome Escreve „Endereço: ‟, v(i).end achou := 1 fim_se i:=i+1 fim_enquanto Se achou = 0 então Escreva „Registro não localizado‟ fim_se fim_sub-rotina sub-rotina Lista(v() AGENDA; t numérico) Quarta-feira, 30 de novembro de 2011 Página 7
  • 8. Universidade Federal de Pelotas Departamento de Computação Disciplina: Algoritmos e Programação (Teórica) Profª: Fernanda Jeannes Aluno: Maicon de Menezes Oliveira Declare i numérico Para i de 1 até t faça Escreva “Nome”, v(i).nome, n Escreva “Endereço”, v(i).end, n Escreva “Telefone”, v(i).fone, n fim_para fim_sub-rotina sub_rotina Ordena(CR, c() AGENDA, t numérico) Declare i, j, aux_TEL, aux_END numérico Declare aux_N literal Para i de 1 até t-1 faça Para i de 1 até t faça Se c(i).nome<=c(j).nome então aux_N:=c(i).nome c(j).nome:=c(i).nome c(i).nome:=c(j).nome aux_TEL:=c(i).fone c(j).fone:=c(i).fone c(i).fone:=c(j).fone aux_END:=c(i).end c(j).end:=c(i).end c(i).end:=c(j).end fim_se fim_para fim_para fim_sub-rotina Repita Escreva ("Menu de Opções: ") Escreva ("1 – Cadastrar contato") Escreva ("2 – Pesquisar contato pelo nome") Escreva ("3 - Pesquisar contato pelo telefone ") Escreva ("4 – Mostrar os contatos cadastrados") Escreva ("5 - Sair") Escreva ("Opção: ") Leia op Se op = 1 então Cadastra(A,10) fim_se Se op = 2 então Escreva “Digite o nome que deseja pesquisar”, n Leia nome PesquisaNome(nome,A,10) fim_se Se op = 3 então Escreva “Digite o telefone que deseja pesquisar”, n Leia fone PesquisaFone(fone,A,10) Se op = 4 então Lista(A,10) fim_se até opção = 5 fim_algoritmo Quarta-feira, 30 de novembro de 2011 Página 8
  • 9. Universidade Federal de Pelotas Departamento de Computação Disciplina: Algoritmos e Programação (Teórica) Profª: Fernanda Jeannes Aluno: Maicon de Menezes Oliveira Algoritmo Tipo CADASTRO = Registro Nome Literal Situação Literal Nota(4) Numérico Média Numérico fim_registro Declare Aluno(20) CADASTRO Declare i,j,soma Numerico sub-rotina cadastrar(CR v(), t) Para i de 1 até t faça Escreva ‘Digite o nome do aluno:’,n Leia Aluno(i).Nome Escreva ‘Digite as notas do aluno:’,n Para j de 1 até 4 faça Leia Aluno(i).Nota(j) fim_para fim_para Para i de 1 até t faça soma := 0 Para j de 1 até 4 faça soma := soma + Aluno(i).Nota(j) fim_para Aluno(i).Média:= (soma/4) se Aluno(i).Média >= 6 então Aluno(i).situação:= ‘Aprovado’ senão Aluno(i).situação:= ‘Reprovado’ fim_para sub-rotina PesquisaNome(n literal; v() AGENDA; t numérico) Declare i, achou numérico i:=1 achou := 0 Enquanto i <= t E achou = 0 faca Se aluno(i).nome = n então para j de 1 até 4 faça Escreva ‘Nota’,j,’: ‘, aluno(i).Nota(j) fim_para aluno(i).Média aluno(i).Situação achou := 1 fim_se i:=i+1 fim_enquanto Se achou = 0 então Escreva ‘Registro não localizado’ fim_se fim_sub-rotina Quarta-feira, 30 de novembro de 2011 Página 9
  • 10. Universidade Federal de Pelotas Departamento de Computação Disciplina: Algoritmos e Programação (Teórica) Profª: Fernanda Jeannes Aluno: Maicon de Menezes Oliveira sub-rotina Lista(v() cadastro; t numérico; op literal) Declare i numérico se op = ‘T’ então Para i de 1 até t faça Escreva “Nome:”, aluno(i).nome, n para j de 1 até 4 faça Escreva ‘Nota’,j,’: ‘, aluno(i).Nota(j) fim_para aluno(i).Média aluno(i).Situação fim_para fim_se se op = ‘A’ então Para i de 1 até t faça se Aluno(i).Situação = ‘Aprovado’ então Escreva “Nome:”, aluno(i).nome, n para j de 1 até 4 faça Escreva ‘Nota’,j,’: ‘, aluno(i).Nota(j) fim_para aluno(i).Média fim_se fim_para fim_se se op = ‘R’ então Para i de 1 até t faça se Aluno(i).Situação = ‘Reprovado’ então Escreva “Nome:”, aluno(i).nome, n para j de 1 até 4 faça Escreva ‘Nota’,j,’: ‘, aluno(i).Nota(j) fim_para aluno(i).Média fim_se fim_para fim_se fim_sub-rotina Repita Escreva ("Menu de Opções: ") Escreva ("1 – Cadastrar Notas") Escreva ("2 – Pesquisar Aluno pelo nome") Escreva ("3 - Listar Todos Alunos ") Escreva ("4 – Listar Aprovados") Escreva ("5 - Listar Reprovados") Escreva ("6 - Sair”) Escreva ("Opção: ") Leia op Se op = 1 então cadastrar(Aluno, 20) fim_se Se op = 2 então Escreva “Digite o nome do aluno: ” Leia nome Quarta-feira, 30 de novembro de 2011 Página 10
  • 11. Universidade Federal de Pelotas Departamento de Computação Disciplina: Algoritmos e Programação (Teórica) Profª: Fernanda Jeannes Aluno: Maicon de Menezes Oliveira PesquisaNome(nome, Aluno, 20) fim_se Se op = 3 então listar(Aluno, 20, ‘T’) fim_se Se op = 4 então listar(Aluno, 20, ‘A’) fim_se Se op = 5 então listar(Aluno, 20, ‘R’) fim_se até op = 6 fim_algoritmo Quarta-feira, 30 de novembro de 2011 Página 11