ALGORITMOS + PASCAL. Métodos de Pesquisa

Documentos relacionados
ALGORITMOS + PASCAL MATRIZES COM MAIS DE UMA DIMENSAO OU VETORES

CAPÍTULO 6. Estruturas de Dados Homogêneas I Matrizes de uma Dimensão ou Vetores

ALGORITMOS + PASCAL MODULO 4

ALGORITMOS + PASCAL. Estruturas de dados Heterogêneas

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 10. Algoritmos e Programação. Enquanto (Teste no início) Repeat (Teste no final)

Algoritmos de pesquisa

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Algoritmos de pesquisa

PROF. MARCIO FERREIRA DE JESUS

LISTA DE EXERCÍCIOS 15 ( Matrizes (7Cs))

Noções de algoritmos - Aula 1

Modularização. Prof. Antonio Almeida de Barros Junior

ESTRUTURA HOMOGÊNEA: VETORES/ARRAYS

double x; x = enigmab1(100);

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Pesquisa: operação elementar

Linguagem Computacional. Estruturas de Controle: Estruturas de Repetição. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

Ciência da Computação. Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano M. Cansian

Linguagem Computacional

Lista 13. Program Pzim ; var dez : array [ ] of real; i:integer; Begin //lê 10 valores for i:= 1 to 10 do readln(dez[i]); //calcula

Algoritmia e Programação

Registros, Vetores e Matrizes

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

CADERNO DE EXERCÍCIOS ALGORITMOS

Unidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri

b) Quantos bits são necessários para o registrador de instruções?

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Sub-algoritmos (ou Funções)

Computação Eletrônica

Busca. Prof. Alneu de Andrade Lopes. ICMC - USP - São Carlos

Noções de algoritmos - Aula 1

ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior

Busca em Arranjos. Busca em arranjos. Busca em arranjos. Programação de Computadores. Busca em Arranjos

Prática 10 - Funções

Recursão. Definição. Características. Recursividade 31/08/2010

Questão 1 Analise o trecho do código abaixo, escrito na linguagem C#:

Estruturas de Controle de Fluxo

Estruturas de Controle de Fluxo Pseudocódigo/Exercício Construa o pseudocódigo de um algoritmo para obter o resultado da divisão de dois números

tipoveiculo = (bicicleta, motociclo, motorizada, automovel, autocomreb, camioneta, autocarro, camiao, reboque); veiculo : tipoveiculo;

Capítulo 7 Matriz. Roteiro

Linguagem Computacional. Estruturas de Controle: Estruturas de Decisão ou de Seleção. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

UNIVERSIDADE ESTADUAL PAULISTA. Apostila Pascal Ed Prof. Dr. Galeno José de Sena DMA/FEG CAPÍTULO 8

In I t n rto r d o u d ç u ão ã o à à Com o pu p t u a t ç a ão ã Linguagem Fortran! " 1

INTRODUÇÃO AO AMBIENTE DE PROGRAMAÇÃO MATLAB

Linguagem de programação métodos/funções

IFTO TÉCNICO EM INFORMÁTICA DESENVOLVIMENTO DE SISTEMAS AULA 01

Procedimento. Função. Selecção Condicional - a instrução if-then-else. expressão if lógica then instrução else instrução

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Introdução ao SciLab. SciLab O que é? Onde obter o programa:

Processamento Sequencial e Condicional

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

Exercícios. Resposta: a) var valor: real; i: integer. b)

Algoritmos Estrutura Condicional

LÓGICA DE PROGRAMAÇÃO. Algoritmos Computacionais. Sérgio Carlos Portari Júnior

Aluno: No. 3ª. Avaliação 25 pontos

Resumo 2 - Mapeamento Portugol-Pascal

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO

Programação Introdução

Aula 7: Estrutura de Decisão

ORDENAÇÃO E BUSCA 1. MÉTODOS DE ORDENAÇÃO

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

algoritmo "exercício vetor" var vet:vetor [1..12] de inteiro i:inteiro inicio para i de 1 ate 12 faca escreva ("Entre com vetor[",i,"]: ") leia

INTRODUÇÃO AO JAVA SCRIPT

Linguagem Pascal. Prof. Jonatas Bastos Site:

ALGORITMO. Professor: RODRIGO GOBBI TIPOS DE DADOS E INSTRUÇÕES PRIMITIVAS

Listas Lineares Duplamente Encadeada (LLDE)

VARIÁVEIS INDEXADAS VETORES E MATRIZES

Classificação e Pesquisa

Programação de Redes de Computadores

Lógica Aula 3. Definição. Estrutura de decisão

Pseudocódigo Exercício 2

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Matrizes. Prof. Alex Camargo

PROG. DE COMPUTADORES II SI Arquivos

O nome da variável é utilizado para identificação (para carga e posterior uso). Porém, são necessárias algumas regras para nomear essa variável:

MC102 - Algoritmos e programação de computadores. Aula 16: Busca e Ordenação em vetores

Fundamentos de Programação 1

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

Capítulo V : Um Tipo Estruturado de Dados: o array

Programação de Computadores I

Técnicas de Programação II

p A modularização consiste num método utilizado para facilitar a construção de grandes programas;

Linguagem de Programação Java Terceira aula. Prof. Rogério Albuquerque de Almeida

Treinamento Olimpíada Brasileira de Informática

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Recursividade Exaustiva e Backtracking

Estruturas de Repetição

Ciência da Computação

Aula IV Vetores e Matrizes

BAC004 Informática Teórica T2 Professora: Fabiana Costa Guedes Lista 05 Vetores e Matrizes Vetores

Pesquisa. Pesquisa. Pesquisa. O problema de procurar(pesquisar) alguma informação numa tabela ou num catálogo é muito comum Exemplo:

ESTRUTURAS DE REPETIÇÃO

Aulas Anteriores. Detalhes da linguagem de programação

syntax highlighted by Code2HTML, v

foi teoricamente impossível trabalhar essa semana.

Linguagem Computacional. Estruturas de Controle: Estruturas de Decisão ou de Seleção. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

Recursão. Introdução à Ciência da Computação II(2009/2010) Rosane Minghim. Apoio na confecção: Rogério Eduardo Garcia Danilo Medeiros Eler

LISTA 14 Gabarito. 1) Preparar um algoritmo para calcular a soma de 100 termos da seguinte série:

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo

Transcrição:

Métodos de Pesquisa A utilização de matrizes poderá gerar grandes tabelas onde ficará difícil localizar um determinado elemento de forma rápida. Para solucionar este tipo de problema você terá que efetuar o que chamamos de pesquisas em matrizes através do uso de programação. Iremos apresentar dois métodos de pesquisa, Pesquisa seqüencial e pesquisa binária. Pesquisa Seqüencial Este método consiste em efetuar a busca da informação desejada a partir do primeiro elemento sequencialmente até o último. Localizando a informação no caminho, esta é apresentada. Este método de pesquisa é lento, porém eficiente nos casos em que uma matriz encontra-se com seus elementos desordenados. Exemplo: Criar um programa para ler o nome de 10 pessoas, ao final da leitura elabore uma rotina para efetuar uma pesquisa seqüencial no vetor. Em algoritmos ALGORITMO pesquisa_sequencial; nome:conjunto[1..10] DE TEXTO i:inteiro pesq,resp:texto acha:boleano ESCREVA Pesquisa sequencial de nomes PARA I DE 1 ATE 3 FACA ESCREVA Informe o,i, Nome...: ;LEIA nome[i] Resp SIM ENQUANTO (resp = SIM ) OU (resp = sim ) FACA ESCREVA Informe o nome a ser pesquisa... ;LEIA pesq I 1 Acha false ENQUANTO (i<=3) E (acha = false) FACA SE (pesq = nome[i]) ENTAO acha true I i + 1 -SE SE (acha = true) ENTAO ESCREVA pesq, foi localizado na posição,i ESCREVA pesq, Não foi localizado -SE ESCREVA Deseja continuar: SIM/NÃO ;LEIA resp -ENQUANTO PROF. MARCIO FERREIRA DE JESUS 1

Em Pascal Program pesquisa_sequencial; uses wincrt; nome:array[1..10] of string; i:integer; pesq,resp:string; acha:boolean; Writeln('Pesquisa sequencial de nomes'); For I:=1 To 3 Do Write('Informe o ',i,' Nome...:');readln(nome[i]); resp:='sim'; While (resp = 'SIM') or (resp = 'sim') Do Write('Informe o nome a ser pesquisa...');readln(pesq); i:=1; acha:=false; While (i<=3) and (acha = false) Do If (pesq = nome[i]) Then acha := true i:= i + 1; If (acha = true) Then writeln(pesq, ' foi localizado na posição ',i) Writeln(pesq, ' Não foi localizado'); Write('Deseja continuar: SIM/NÃO)');readln(resp); end. Pesquisa Binária Este método de pesquisa é em média rápido que o primeiro método, porém exige que a matriz esteja previamente classificada, pois este método divide a lista em duas partes e procura saber se a informação a ser pesquisada está acima ou abaixo da linha de divisão. Se estiver acima, por exemplo, toda a metade abaixo é desprezada. Em seguida se a informação não foi encontrada, é novamente dividida em duas partes, e pergunta se aquela informação está acima ou abaixo, e assim irá sendo executada até encontrar ou não a informação pesquisada. Pelo fato de dividir sempre em duas partes o volume de dados pesquisado é que o método recebe a denominação de pesquisa binária. Exemplo: Iremos agora refazer o programa acima, sendo neste momento com o método de pesquisa binária. PROF. MARCIO FERREIRA DE JESUS 2

Em Algoritmos ALGORITMO pesquisa_binaria; VAR nome:conjunto[1..3] DE TEXTO i,j:inteiro comeco,final,meio:inteiro pesq,resp,x:texto acha:booleano ESCREVA Pesquisa Bibária de nomes PARA I DE 1 ATE 3 FACA ESCREVA Digite o,i, Nome: ;LEIA nome[i] PARA I DE 1 ATE 2 FACA PARA j DE i+1 ATE 3 FACA SE (nome[i] > nome[j]) ENTAO X nome[i] nome[i] nome[j] nome[j] x -SE -PARA -PARA Resp SIM ENQUANTO (resp = SIM ) OU (resp = sim ) FACA ESCREVA Entre o nome a ser pesquisado: ;LEIA pesq Começo 1 final 3 acha false ENQUANTO (comeco <=final) E (acha =false) FACA Meio (comeco + final) div 2 SE (pesq = nome[meio]) ENTAO Acha true SE (pesq < nome[meio]) ENTAO final meio -1 Comeco meio + 1 -SE -SE -ENQUANTO SE (acha = true) ENTAO ESCREVA pesq, Foi localizado na posição,meio ESCREVA pesq, Não foi localizado -SE ESCREVA Deseja continuar (SIM/NÃO): ;LEIA resp -ENQUANTO Em Pascal PROF. MARCIO FERREIRA DE JESUS 3

Program pesquisa_binaria; uses wincrt; nome:array[1..3] of string; i,j:integer; comeco,final,meio:integer; pesq,resp,x:string; acha:boolean; Writeln('Pesquisa Bibária de nomes'); For I:=1 To 3 Do Write('Digite o ',i,' Nome:');readln(nome[i]); For I:=1 To 2 Do For j:=i+1 To 3 Do If (nome[i] > nome[j]) Then x:= nome[i]; nome[i]:= nome[j]; nome[j]:= x; resp:='sim'; While (resp = 'SIM') or (resp = 'sim') Do Write('Entre o nome a ser pesquisado: ');readln(pesq); comeco:=1; final :=3; acha :=false; While (comeco <=final) and (acha =false) Do meio:= (comeco + final) div 2; If (pesq = nome[meio]) Then acha:= true If (pesq < nome[meio]) Then final := meio -1 comeco:=meio + 1; If (acha = true) Then Writeln(pesq, ' Foi localizado na posição ',meio) Writeln(pesq, ' Não foi localizado'); Write('Deseja continuar (SIM/NÃO):');readln(resp); end. PROF. MARCIO FERREIRA DE JESUS 4

Exercícios 1 Desenvolva um programa em algoritmos/pascal para ler uma matriz A do tipo vetor e construir uma matriz B de mesma dimensão com os mesmo elementos de A acrescentados de mais 2. Colocar os elementos da matriz B em ordem crescente. Montar uma rotina de pesquisa binária, para pesquisar os elementos armazenados na matriz B. 2 Desenvolva um programa em algoritmos/pascal para ler trinta elementos de uma matriz A do tipo vetor. Construir uma matriz B de mesmo tipo, observando a seguinte lei de formação: todo elementos de B deverá ser o cubo do elemento de A correspondente. Montar uma rotina de pesquisa seqüencial, para pesuisar os elementos armazenados na matriz B. PROF. MARCIO FERREIRA DE JESUS 5