Entrada: M ind
|
|
- Mônica Fragoso Beltrão
- 6 Há anos
- Visualizações:
Transcrição
1 Ordenação O objetivo deste capítulo é o de estudar algoritmos de ordenação (ou classificação) de uma sequência de números, em ordem crescente, ou decrescente. De um modo geral tal sequência pode ser uma lista extensa como a lista telefônica de S. Paulo, ou a lista de assinantes de TV, etc. No caso de uma lista telefônica, tem-se nomes de pessoas a serem ordenados em ordem alfabética. Dados um inteiro positivo N e uma sequência M de N números em ponto flutuante, ordenar esta sequência em ordem crescente. Por exemplo: N 4 Entrada: M ind
2 Saída: M ind Idéia do algoritmo-solução: Este algoritmo é chamado de bubble-sort, i.e., ordenação por bolha: o porquê deste nome ficará claro mais tarde. A idéia do algoritmo é a seguinte: primeiro compare M 0 com M 1 ;sem 0 M 1 então troque os valores entre si para tê-los em ordem crescente. Em seguida faça o mesmo com M 1 e M 2,e depois com M 2 e M 3 etc., até M N 2 e M N 1. Durante a sequência de comparações e possíveis trocas os números maiores vão sendo deslocados para a direita em M. De fato o maior número em M é deslocado para a direita até se tornar M N 1 e então ele deve permanecer nesta posição. Repetimos então o processo descrito acima para a sub-sequência
3 M 0,M 1,...,M N 2 deslocando o número apropriado para a posição M N 2. Repetindo este processo para as sub-sequências cada vez mais curtas, acabaremos ordenando todos os números em ordem crescente (a rigor é em ordem não-decrescente).
4 1inteiroi, j, /* variáveis índice */ 2 N; /* número de elementos na sequência */ 3 real M 50 ; /* vetor de até 50 elementos */ 4leiaN; 5parai 0atéN 1 faça 6 leia M i ; 7paraj N 2até0faça 8 para i 0atéjfaça /* supor que M 0, M 1,,...,M j 1 */ /* não estão em ordem */ 9 se M i M i 1 então 10 troque os valores de M i e M i 1 entre si ; 11 para i 0atéN 1 faça 12 escreva M i ;
5 N 4 j i M i M i 1 sequência resultante , 47. 0, 0. 6, , 0. 6, 47. 0, ,0.6, 9. 5, , 5. 1, 9. 5, , 9. 5, 5. 1, , 0. 6, 5. 1, 47. 0
6 Programa em linguagem C: algoritmo bubble /* * ORDEBOL. C-- Ordenacao por Bolha * Problema: dada uma sequencia de N numeros reais (tipo float) * ordena -la em ordem crescente. */ #include stdio.h #define Nmax 100 /* Numero maximo de elementos a ordenar */ void main() { int N, /* numero de elementos a ordenar */ i, j; float M[Nmax], /* vetor de N elementos */ temp; /* variavel temporaria */ /* * Leitura dos parametros */ printf("\ndigitar o numero de elementos a ordenar - "); scanf("%d", &N); printf("\nn %d\n", N); if(n Nmax){ printf("\nnumero maximo de elementos foi excedido\n"); exit(0); } /*end if */ printf("digitar os elementos a serem ordenados - "); for(i 0; i N-1; i i 1) scanf("%f", &M[i]); printf("\n"); for(i 0; i N-1; i i 1){ printf(" M[%d] %f", i, M[i]); } /* end for i */ /* * Ordenacao dos elementos em M[], em tempo proporcional a N*N */ if(n 2) for(j N-2; j 0; j j-1) for(i 0; i j; i i 1) if(m[i] M[i 1]){ temp M[i 1]; M[i 1] M[i]; M[i] temp; } /* end for i */ /* * Dar resposta final */ printf("\n Elementos em ordem crescente:\n"); for(i 0; i N-1; i i 1){ printf(" M[%d] %f ", i, M[i]); } /* end for i */ } /* end main */
7 Idéia de um outro algoritmo-solução: ordenação por seleção direta Vamos lembrar qual é o problema original: Dados um inteiro positivo N e uma sequência R de N números em ponto flutuante, ordenar esta sequência em ordem crescente. Vamos ver um outro algoritmo chamado de ordenação por seleção direta do mínimo: o porquê deste nome ficará claro mais tarde. A idéia do algoritmo é a seguinte: 1. Dentro de um laço no qual uma variável indexadora i variade0 a N 1, é mantida uma outra variável indexadora IndMin que é o índice do elemento mínimo sendo procurado. R i IndMin 0 2. No início de cada execução do laço, IndMin é inicializado para i, ou seja, supõe-se por enquanto que o elemento mínimo seja o
8 primeiro na sequência R i,r i 1,...,R N A seguir compara-se R IndMin com cada um dos elementos na sequência R i, R i 1,...,R N 1 : a. se R IndMin R i 1 então efetuamos IndMin i 1, ou seja, o novo elemento mínimo passa a ser R i 1. b. se R IndMin R i 2 então efetuamos IndMin i 2, e assim por diante. c. no final, compara R IndMin e R N 1, d. e então trocamos entre si os elementos R IndMin e R i,istoé,r i deve conter o elemento mínimo da sequência R i,r i 1,...,R N A seguir o mesmo processo deve ser feito para a sequência R i 1,R i 2,...,R N 1. R i IndMin 1
9 1inteiroi, j, /* variáveis índice */ 2 N; /* número de elementos na sequência */ 3 real R 50 ; /* vetor de até 50 elementos */ 4leiaN; 5parai 0atéN 1 faça 6 leia R i ; 7parai 0atéN 2 faça 8 IndMin i; /* por enquanto o mínimo é R i */ 9 para j i 1atéN 1 faça /* procurar o mínimo em */ 10 /* R i 1,R i 2,,...,R N 1 */ 11 se R IndMin R j então IndMin j; 12 troque entre si R IndMin e R i ; 13 para i 0atéN 1 faça 14 escreva R i ; Simulação do algoritmo por seleção direta: Vamos supor que a sequência de entrada seja a mesma descrita no
10 exemplo acima, com N 4. i IndMin j R IndMin R j sequência resultante R ,R , R ,R R 0-9.5, R , R ,R
11 i IndMin j R IndMin R j sequência resultante R ,R 1 0.6, R ,R R ,R , R 2 5.1, R Programa em linguagem C: algoritmo de ordenação por seleção direta
12 /* * ORDEDIR.C--Exemplo de Ordenacao por Selecao Direta * Problema: dada uma sequencia de N numeros reais (tipo float) * ordena -la em ordem crescente. */ #include stdio.h #define Nmax 100 /* Numero maximo de elementos em R[] */ void main() { int N, /* numero de elementos em R[] */ i, j, IndMin; /* indice do minimo temporario */ float R[Nmax], /* vetor de N elementos */ temp; /* variavel temporaria */ /* * Leitura dos parametros */ printf("\ndigitar o numero de elementos de R[] - "); scanf("%d", &N); printf("\nn %d\n", N); if(n Nmax){ printf("\nnumero maximo de elementos foi excedido\n"); exit(0); } /*end if */ printf("digitar os elementos de R[] a serem ordenados - "); for(i 0; i N; i i 1) scanf("%f", &R[i]); printf("\n"); for(i 0; i N; i i 1){ printf("r[%d] %f", i, R[i]); } /* end for i */ /* * Ordenacao dos elementos em R[], em tempo proporcional a N*N */ for(i 0; i N-2; i i 1){ IndMin i; /* indice do Minimo temporario */ for(j i 1; j N-1; j j 1){ if(r[indmin] R[j]) IndMin j; } /* end for j */ temp R[IndMin]; R[IndMin] R[i]; R[i] temp; } /* end for i */ /* * Dar resposta final */ printf("\n Elementos de R[], em ordem crescente:\n"); for(i 0; i N; i i 1){ printf(" R[%d] %f ", i, R[i]); } /* end for i */ } /* end main */
13 Idéia de um terceiro algoritmo-solução: ordenação por inserção direta Vamos lembrar qual é o problema original: Dados um inteiro positivo N e uma sequência R de N números em ponto flutuante, ordenar esta sequência em ordem crescente. Vamos ver um terceiro algoritmo chamado de ordenação por inserção direta: o porquê deste nome ficará claro mais tarde. A idéia do algoritmo é a seguinte: R R R R i 1 i 1 temp R 1 1. Dentro de um laço no qual uma variável indexadora i variade1 a N 1, é considerada a sequência R 0,R 1,...,R i 1, R i eé mantida uma variável temporária temp. Noiníciodecada execução do laço, temp é inicializado para R i.
14 2. A seguir compara-se temp com cada um dos elementos na sequência R 0, R 1,...,R i 2,R i 1,dadireita para a esquerda:se R i 1 temp então efetuamos R i R i 1,ouseja,oelemento maior que temp migraparaadireitaepassaaserr i ; o antigo valor de R i está guardado em temp. Parai 1 temos: R R R R i 1 i 1 R i 1 0 temp? temp R 1 se R i 1 0 temp:r i 1 R i 1 0 (R 0 migra p/ direita) e depois R 0 temp 3. Para i 2, j i 1 temos:
15 R R R R i 1 i 2 j i 1 temp R 2 se R i 1 1 temp:r i 2 R i 1 1 (R 1 migra p/ direita). A seguir, para i 2, j i 2temos R R R R i 2 i 2 j i 2 temp R 2 se R i 2 0 temp:r i 1 1 R i 2 0 (R 0 migra p/ direita)
16 R R R R i 2 i 1 i 2 j i 2 temp R 2 e depois R 0 temp. R R R R i 2 i 1 i 2 j i 2 temp R 2 Ou seja, se R i 2 temp então efetuamos R i 1 R i 2 : de novo o elemento maior que temp migra para a direita (o valor antigo de R i 1 já havia migrado para R i ). E assim por diante, há uma migração dos elementos maiores que temp de uma posição para a direita. 4. Depois de, no pior caso, comparar temp com
17 R i 1,R i 2,...,R 1,R 0 pode ocorrer uma das duas situações seguintes: a. Ou R j temp para um j entre i 1e0eentãoovalorde temp deve ser colocado em R j 1 e o processo migrar para a direita termina (pois temp que guarda o antigo valor de R i foi colocado no lugar certo); b. Ou depois de verificar que R 0 temp, efetuamosr 1 R 0 e temp deve ser colocado em R A seguir o mesmo laço deve ser executado para a sequência R 0,R 1,...,R i, R i 1 até considerar toda a sequência R 0,R 1,...,R N 2, R N 1.
18 1inteiroi, j, /* variáveis indexadoras */ 2 N; /* número de elementos na sequência */ 3 real R 50 ; /* vetor de até 50 elementos */ 4leiaN; 5parai 0atéN 1 faça 6 leia R i ; 7parai 1atéN 1 faça 8 temp R i ;/*temp guarda R i */ 9 j i 1; /* j i 1,i 2,...,1,0 */ 10 enquanto j 0eR j temp faça /* deslocar R j uma posição p/ direita */ 11 R j 1 R j ; 12 j j 1 ; /*p/esquerda*/ 13 R j 1 temp; /* temp no local adequado */ 14 para i 0atéN 1 faça 15 escreva R i ;
19 Simulação do algoritmo por inserção direta: Vamos supor que a sequência de entrada seja a mesma descrita no exemplo acima, com N 4. linha 10 i temp R j j R j R i temp? sequência resultante não R R ,R , R ,R R ,R , R ,R
20 i linha 11 temp R j j R j R i temp? sequência resultante sim R ,R , R 2 R 1 R ,R sim R ,R , R 1 R 0 R ,R R R ,R , R ,R
21 i temp R j j R j R i temp? sequência resultante sim R ,R , R 3 R 2 R ,R sim R ,R , R 2 R 1 R ,R sim R ,R , R 1 R 0 R ,R R ,R , R R ,R Programa em linguagem C: algoritmo de ordenação
22 por Inserção Direta /* * ORDEINS.C--Exemplo de Ordenacao por Insercao Direta * Problema: dada uma sequencia de N numeros reais (tipo float) * ordena -la em ordem crescente. */ #include stdio.h #define Nmax 100 /* Numero maximo de elementos em R[] */ void main() { int N, /* numero de elementos em R[] */ i, j, IndMin; /* indice do minimo temporario */ float R[Nmax], /* vetor de N elementos */ temp; /* variavel temporaria */ /* * Leitura dos parametros */ printf("\ndigitar o numero de elementos de R[] - "); scanf("%d", &N); printf("\nn %d\n", N); if(n Nmax){ printf("\nnumero maximo de elementos foi excedido\n"); exit(0); } /*end if */ printf("digitar os elementos de R[] a serem ordenados - "); for(i 0; i N-1; i i 1) scanf("%f", &R[i]); printf("\n"); for(i 0; i N-1; i i 1){ printf("r[%d] %f", i, R[i]); } /* end for i */ } /* * Ordenacao dos elementos em R[], em tempo * proporcional a N*N */ /* for(i 1; i N-1; i i 1){ temp R[i]; /* elemento a ser inserido no local adequado */ j i-1; while(j 0 && R[j] temp){ R[j 1] R[j]; /* desloca elemento maior para direita */ j j-1; } /* end while j */ R[j 1] temp; } /* end for i */ /* elemento temp no local adequado */ * Dar resposta final */ printf("\n Elementos de R[], em ordem crescente:\n"); for(i 0; i N-1; i i 1){ printf(" R[%d] %f ", i, R[i]);
23 } /* end for i */ } /* end main */ Exercícios adicionais recomendados: Problema adicional 1: Dados: um inteiro positivo n euma sequência de n números reais ordenados em ordem crescente, inserir um elemento novo mantendo a ordem. Problema adicional 2: Diz-se que uma sequência de n elementos (n par) é balanceada se as seguintes somas são todas iguais: a soma do maior elemento com o menor elemento; a soma do segundo maior elemento com o segundo menor elemento; a soma do terceiro maior elemento com o terceiro menor elemento; e assim por diante. Exemplo: 2,12,3,6,16,15 é balanceada pois Dados n (n par) e uma sequência de n números inteiros, elaborar um programa que verifica se ela é balanceada.
24 Fim
Notas de Aula Exemplos em C (2)
Notas de Aula (2) Routo Terada www.ime.usp.br/~rt Depto. C. da Computação - USP N=8, X= 55 2 3 4 5 6 7 BUSCASEQ.C /* BUSCASEQ.C--Exemplo de Busca Sequencial * Problema: dada uma sequencia de N numeros
Leia maisExercícios de Laboratório de ICC Engenharia Ambiental 2º Semestre de 2004
Exercícios de Laboratório de ICC Engenharia Ambiental 2º Semestre de 2004 1. Cada um dos métodos de ordenação tem uma eficiência associada que depende fortemente de quão ordenada está a seqüência entrada.
Leia maisLinguagem C vetores multidimensionais
Linguagem C vetores multidimensionais IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Introdução à linguagem C... Operadores aritméticos, de comparação
Leia maisPROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C
PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C 1 Instruções de Entrada Entrada/Leitura de dados Introduzir um valor inteiro/real para X 2 Instruções de Entrada Entrada/Leitura de dados Introduzir um valor inteiro/real
Leia maisAula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler
Aula 3 Listas Lineares Sequenciais Ordenadas prof Leticia Winkler 1 Listas Lineares Sequenciais Ordenadas Elementos da lista estão dispostos num vetor (contíguos na memória) e ordenado de acordo com alguma
Leia maisPROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C
PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C 1 2 Repetição 1 Enquanto 'C' é verdadeira Fazer? 3 Repetição 1 Enquanto 'C' é verdadeira Fazer? while (C)?; 4 Enunciado: Construa um algoritmo para mostrar os 100
Leia maisESTRUTURAS COMPOSTAS. Variáveis Compostas Unidimensionais VETOR. Baseado nos slides de Rosely Sanches e Simone Senger de Souza
ESTRUTURAS COMPOSTAS Variáveis Compostas Unidimensionais VETOR Baseado nos slides de Rosely Sanches e Simone Senger de Souza 2 ESTRUTURAS COMPOSTAS Pode-se organizar os dados dos tipos simples em tipos
Leia maisProgramação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Leia maisMÉTODOS DE CLASSIFICAÇÃO EM MEMÓRIA PRIMÁRIA. George Gomes Cabral
MÉTODOS DE CLASSIFICAÇÃO EM MEMÓRIA PRIMÁRIA George Gomes Cabral MÉTODOS DE CLASSIFICAÇÃO EM MEMÓRIA PRIMÁRIA Métodos Elementares Classificação por Trocas Método da Bolha Bubblesort Método de Partição
Leia mais1ª Lista de Exercícios
Universidade Federal do Rio de Janeiro Data: 26/04/05 Disciplina: Computação I 1ª Lista de Exercícios 1) Faça um programa, em pseudo-código, que peça ao usuário que informe n números reais e então calcule
Leia maisMC102 - Algoritmos e programação de computadores. Aula 16: Busca e Ordenação em vetores
MC102 - Algoritmos e programação de computadores Aula 16: Busca e Ordenação em vetores Busca Dada uma coleção de n elementos, pretende-se saber se um determinado elemento valor está presente nessa coleção.
Leia maisINF111 Programação II Aulas 11, 12, 13 Ordenação
INF Programação II Aulas,, Ordenação Departamento de Informática UFV Ordenação A ordenação é o processo de organizar um conunto (vetor) de n obetos ou registros segundo uma determinada ordem crescente
Leia maisLinguagem C. Prof.ª Márcia Jani Cícero
Linguagem C Prof.ª Márcia Jani Cícero A estrutura Básica de um Programa em C Consiste em uma ou várias funções ou programas. main( ) // primeira função a ser executada // inicia a função // termina a função
Leia maisponteiros INF Programação I Prof. Roberto Azevedo
ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência
Leia maisExercícios em C 1 Saulo O. D. Luiz
Exercícios em C 1 Saulo O. D. Luiz Exercícios 1. Faça um programa em C para receber três notas e seus respectivos pesos, calcule e mostre a média ponderada dessas notas. 2 Saulo O. D. Luiz #include
Leia maisMC-102 Aula 10 Vetores
MC-102 Aula 10 Vetores Instituto de Computação Unicamp 15 de Setembro de 2016 Roteiro 1 Introdução 2 Vetores Definição de Vetores Vetores Como usar Vetores e a Memória Vetores Exemplos 3 Informações Extras:
Leia maisMC102 Algoritmos e Programação de Computadores
MC102 Algoritmos e Programação de Computadores Instituto de Computação UNICAMP Primeiro Semestre de 2014 Roteiro 1 Maior número 2 Soma de n números 3 Fatorial 4 Máximo Divisor Comum (MDC) 5 Números primos
Leia maisLinguagem C (repetição)
Linguagem C (repetição) André Tavares da Silva andre.silva@udesc.br Exercício Escrever um programa que conte (mostre na tela) os números de 1 a 100. Comandos aprendidos até o momento: printf, scanf, getchar,
Leia maisO Problema da Ordenação Métodos de Ordenação Parte 1
Métodos de Ordenação Parte 1 SCC-201 Introdução à Ciência da Computação II Rosane Minghim 2010 Ordenação (ou classificação) é largamente utilizada Listas telefônicas e dicionários Grandes sistemas de BD
Leia maisINF1007: Programação 2 6 Ordenação de Vetores. 01/10/2015 (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 6 Ordenação de Vetores 01/10/2015 (c) Dept. Informática - PUC-Rio 1 Tópicos Introdução Ordenação bolha (bubble sort) Ordenação por seleção (selection sort) 01/10/2015 (c) Dept. Informática
Leia mais6. Pesquisa e Ordenação
6. Pesquisa e Ordenação Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 6. Pesquisa e Ordenação Estruturas de Dados 1 / 30 Pesquisa de Informação A pesquisa eficiente de informação
Leia maisESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza
ESTRUTURAS CONDICIONAIS Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais
Leia maisESTRUTURA DE DADOS VETORES E LISTAS LINEARES
ESTRUTURA DE DADOS VETORES E LISTAS LINEARES Prof. Dr. Daniel Caetano 2012-2 Objetivos Conhecer os vetores Compreender as Listas Sequenciais Implementar uma Lista Sequencial com Vetor GRUPOS? Até o fim
Leia mais1 Exercícios com ponteiros
Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática
Leia maisEscreva a função e_caracter que verifica se um determinado caracter é um numero ou não. Escreva um Programa de teste da função.
Engenharia informatica Escreva a função e_caracter que verifica se um determinado caracter é um numero ou não. Escreva um Programa de teste da função. #include Int e_caracter (char c) { Return(
Leia maisdouble pcompra[1000], pvenda[1000], codclient[1000]; //sempre que o usuário voltar ao menu principal ele poderá
/*Algortimo de Controle de Estoque e Cadastro*/ #include #include main(){ int i, op, op2, qtd, entradaestoque, consulproduto, consulcliente,cod[1000],estoque[1000]; double pcompra[1000],
Leia maisEstrutura de Dados. Algoritmos de Ordenação. Prof. Othon M. N. Batista Mestre em Informática
Estrutura de Dados Algoritmos de Ordenação Prof. Othon M. N. Batista Mestre em Informática Roteiro Introdução Ordenação por Inserção Insertion Sort Ordenação por Seleção Selection Sort Ordenação por Bolha
Leia maisMedida do Tempo de Execução de um Programa. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Medida do Tempo de Execução de um Programa Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo estudo
Leia maisVetores(Arrays) Olimpíadas de Informática. Aulas preparatórias Introdução a Programação em C.
Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C. Vetores(Arrays) Prof. Gemilson George gemilson@colegiogeo.com.br Blog: informaticageo.wordpress.com GEO.OBI Aula 05 Definição:
Leia maisMétodos de Ordenação Parte 3
Estrutura de Dados II Métodos de Ordenação Parte 3 Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais do Prof. Robson Lins Classificação em Memória Primária
Leia maisFaculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1
Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação Lista de Exercícios 1 1. O programa seguinte tem vários erros em tempo de compilação. Encontre-os. Main() int a=1; b=2,
Leia maisArrays. IPC2 1999/2000 F. Nunes Ferreira. Acetatos baseados no livro C: How to Program (second edition) H. M. Deitel P. J. Deitel Prentice Hall, 1994
Arrays IPC2 1999/2000 F. Nunes Ferreira Acetatos baseados no livro C: How to Program (second edition) H. M. Deitel P. J. Deitel Prentice Hall, 1994 Arrays Introdução 2 Array é uma estrutura de dados, todos
Leia maisIntrodução Métodos de Busca Parte 1
Introdução Métodos de Busca Parte 1 SCC-201 Introdução à Ciência da Computação II Rosane Minghim 2009 Importância em estudar busca Busca é uma tarefa muito comum em computação? Vários métodos e estruturas
Leia maisAula 15 Variáveis Indexadas (vetores)
Aula 15 Variáveis Indexadas (vetores) Além das variáveis normais já conhecidas, podemos ter também variáveis indexadas. Tais variáveis são referenciadas por um nome e um índice. Especialmente úteis para
Leia maisESTRUTURAS DE CONTROLE
ESTRUTURAS DE CONTROLE ESTRUTURA SEQUENCIAL E ESTRUTURAS CONDICIONAIS Introdução à Ciência da Computação Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURAS CONDICIONAIS Estrutura Condicional Simples
Leia maisModule Introduction. Programação. Cap. 4 Algoritmos e Programação Estruturada
5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação 9099 : Bioengenharia 10135 : Ciências Biomédicas Cap. 4 Algoritmos e Estruturada Module Introduction Algoritmos e Estruturada Objectivos:
Leia maisExercícios - Questões Objetivas
Exercícios - Questões Objetivas Apresentação 02 - Tipos de Dados 1. O nome de uma variável é criado por um programador devendo seguir algumas regras, são listas de nomes válidos, EXCETO: a) Nota1, Nota2,
Leia maisIntrodução à Ciência da Computação SCC0120 Prof. Zhao Liang. Aula de Laboratório 1: Operadores, comandos básicos e comando IF 27/03/2012
Introdução à Ciência da Computação SCC0120 Prof. Zhao Liang Aula de Laboratório 1: Operadores, comandos básicos e comando IF 27/03/2012 PARTE 1: OPERADORES E COMANDOS BÁSICOS EXEMPLO 1.1: Programa que
Leia maisAlgoritmos e Estruturas de Dados I1 Prof. Eduardo 1
Algoritmos e Estruturas de Dados I1 Prof. Eduardo 1 ORDENAÇÃO E BUSCA Ordenação: Bublesort, seleção direta e inserção direta. Busca: linear e binária 1 - ORDENAÇÃO (CLASSIFICAÇÃO) DE DADOS Em diversas
Leia maisEstruturas de repetição. Objetivos: - Compreender diversos tipos de comandos de repetições disponíveis na linguagem C.
capa Estruturas de repetição Objetivos: - Compreender diversos tipos de comandos de repetições disponíveis na linguagem C. - Aprender a implementar algoritmos em C com laços de repetições. Estruturas de
Leia maisProva de Recuperação
Programação I Prova de Recuperação 1. (1 ponto) Considere um programa que leia de um arquivo de veículos os seguintes dados: placa de um veículo, ano de fabricação, consumo médio de combústivel, modelo
Leia maisVetores. e o programa deverá ler os valores separadamente:
Vetores Vetor é um tipo de dado usado para representar uma certa quantidade de variáveis de valores homogêneos (do mesmo tipo). Imagine o seguinte problema: calcular a média das notas da prova de 5 alunos.
Leia maisPROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C
PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C 1 Implementações básicas: a) Implementar o procedimento LerMatriz que preenche uma matriz de L linhas por C colunas de inteiros (L, C 1); b) Implementar o procedimento
Leia maisDepartamento de Engenharia Rural Centro de Ciências Agrárias. Programação I
Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Algoritmos de busca Basicamente podem ser citadas duas estratégias para procurar (ou buscar) algo em uma coleção de dados: Busca
Leia maisEstruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 17 - Busca 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia mais1) Operadores de auto incremento ++ e auto decremento --
Aula 09 - Operadores de auto incremento e auto decremento, atribuição múltipla, atribuição na declaração, atribuição resumida e algumas regras de boa programação. 1) Operadores de auto incremento ++ e
Leia maisComplexidade de Algoritmos
Complexidade de Algoritmos ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 08/2008 Material baseado
Leia maisComandos de entrada. e saída. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada.
e saída Biblioteca stdio.h Comandos Função scanf() Função gets() Função getchar() Material cedido pelo prof. Daniel Callegari scanf() Rotina de entrada que lê todos os tipos de dados. Protótipo: int scanf(const
Leia maisMétodos Computacionais. Comandos Condicionais e de Repetição em C
Métodos Computacionais Comandos Condicionais e de Repetição em C Tópicos da Aula Hoje vamos acrescentar comportamentos mais complexos a programas em C Comandos Condicionais if-else switch Comandos de Repetição
Leia maisMétodos de ordenação. Bubble sort:
Métodos de ordenação Bubble sort: O método de ordenação por bubble sort ou conhecido como bolha consiste em compara dados armazenados em um vetor de tamanho qualquer, comparando cada elemento de uma posição
Leia maisExercícios de ordenação e matrizes
Exercícios de ordenação e matrizes 1. Faça um programa que leia 6 valores inteiros, armazeno-os em um vetor, organize o vetor de forma que os números sejam armazenados em ordem crescente e apresente o
Leia maisExercícios Capítulos 5 e 6
Estruturas de Dados Exercícios Capítulos e 6 6//6 (c) Dept. Informática - PUC-Rio Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus () Capítulo
Leia maisCœlum Australe. Jornal Pessoal de Astronomia, Física e Matemática - Produzido por Irineu Gomes Varella
Cœlum Australe Jornal Pessoal de Astronomia, Física e Matemática - Produzido por Irineu Gomes Varella Criado em 1995 Retomado em Junho de 2012 Ano III Nº 023 - Agosto de 2012 MÉTODOS DE ORDENAÇÃO Prof.
Leia maisVetores, Strings e Matrizes
Vetores, Strings e Matrizes Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Vetores Um vetor é um tipo de dados agregado homogêneo, cujos
Leia maisInstituto Superior Técnico Introdução aos Algoritmos e Estruturas de Dados
Instituto Superior Técnico Introdução aos Algoritmos e Estruturas de Dados Ano Lectivo de 2004/2005 2 o Semestre 1 o Teste A - 30 de Abril de 2005 Duração: 2h - O teste é sem consulta. - Para cada questão
Leia maisLP II Estrutura de Dados
LP II Estrutura de Dados Linguagem C Seleção e Repetição Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Estruturas de Seleção Simples Composta Aninhada Estruturas de
Leia maisLISTA DE EXERCÍCIOS MÊS 04
São José dos Campos, 05 de Junho de 2008 Disciplina: CES 10 Introdução à Computação. Semestre 2008-2º Período Professor: Carlos Henrique Quartucci Forster Estagiária: Michelle de Oliveira Parreira Instituto
Leia maisAlgoritmos de Busca em Tabelas
Dentre os vários algoritmos fundamentais, os algoritmos de busca em tabelas estão entre os mais usados. Considere por exemplo um sistema de banco de dados. As operações de busca e recuperação dos dados
Leia maisMétodos Computacionais. Listas Encadeadas
Métodos Computacionais Listas Encadeadas Vetores Declaração de vetor implica na especificação de seu tamanho Não se pode aumentar ou diminuir tamanho Outra alternativa no uso de vetores é alocar dinamicamente
Leia maisStrings. Introdução. Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos.
Introdução Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos. 1 definições Uma string é uma sequência, um conjunto, ou uma cadeia de caracteres.
Leia maisEstruturas de Controle de Fluxo
Aula Prática IX Aula Prática IX Teoria Estruturas de Controle de Fluxo Instrução condicional simples Em pseudocódigo: Na linguagem C: se entao fimse if ()
Leia maisUniversidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula
Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Ordenação por bolha (bubble sort)
Leia maisMétodo de ordenação - objetivos:
Método de ordenação - objetivos: Corresponde ao processo de rearranjar um conjunto de objetos em uma ordem ascendente ou descendente. Facilitar a recuperação posterior de itens do conjunto ordenado. São
Leia maisOperaçõe õ s c om o Strings Intr oduç ão a o Ponte iros o e Funçõe õ s
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Operações com Strings Introdução a Ponteiros e Funções Profa Rosana Braga 1 Strings Strings são seqüências de caracteres
Leia maisMC-102 Aula 19 Registros
MC-102 Aula 19 Registros Instituto de Computação Unicamp 4 de Maio de 2015 Roteiro 1 Registros 2 Redefinição de tipos (Instituto de Computação Unicamp) MC-102 Aula 19 4 de Maio de 2015 2 / 17 Registros
Leia maisComputação I (MAB120) DCC/UFRJ
Computação I (MAB120) DCC/UFRJ Aula 12: vetores 13 de maio de 2016 Objetivos dessa aula Apresentar o conceito de Tipos Compostos Homogêneos Apresentar o conceito de vetores Apresentar as operações básicas
Leia maisLISTA DE EXERCÍCIOS - ro. 04
USP ICMC SSC SSC0100 - Introdução à Ciência da Computação I (Prática) Professor responsável: Fernando Santos Osório Semestre: 2009/1 Horário: Terça 14h20 (Turma A2) E-mail: fosorio.at. icmc.usp.br fosorio.at.
Leia maisIntrodução à Programação em C (II)
Introdução à Programação em C (II) Resumo Streams de Texto Leitura e escrita de caracteres Caracteres como números inteiros Exemplos Cópia de Ficheiros Contagem de Caracteres Contagem de Linhas Contagem
Leia maisMESMO QUE ESTAS VARIÁVEIS TENHAM NOME IDÊNTICOS
Funções As funções são blocos de instruções que facilitam o entendimento do código. Porque usar funções? Para permitir o reaproveitamento de código já construído (por você ou por outros programadores);
Leia maisModularidade - Fun ções e Procedimentos
Modularidade - Fun ções e Procedimentos José Gustavo de Souza Paiva Problema Em diversas situa ções, é preciso executar uma tarefa específica diversas vezes em um programa, variando apenas os dados de
Leia maisLógica de Programação I
Gilson de Souza Carvalho gaucho.gilson@hotmail.com 1 Comando Do/While Além do comando while, existem outras estruturas para implementar laços repetitivos. O comando Do/While funciona de forma similar ao
Leia maisLinguagem C Controle do Fluxo de Execução. Lógica de Programação
Linguagem C Controle do Fluxo de Execução Lógica de Programação Caro(a) aluno(a), Aqui começaremos a escrever os nossos primeiros programas em uma Linguagem de Programação. Divirta-se!!! Estrutura Seqüencial
Leia maisCAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:
CAP. IX - MANIPULAÇÃO DE ARQUIVOS 9.1 Generalidades sobre arquivos 9.2 Abertura e fechamento de arquivos 9.3 Arquivos textos e arquivos binários 9.4 Leitura e escrita em arquivos binários 9.5 Procura direta
Leia maisIntrodução à Ciência da Computação. Sumário. Estruturas de Dados. Agradecimentos. Arranjos: Vetores, Strings & Matrizes em C
Agradecimentos Introdução à Ciência da Computação Arranjos: Vetores, Strings & Matrizes em C Parte dos slides a seguir são adaptações dos originais gentilmente cedidos por: Prof. Rudinei Goularte Prof.
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Trabalho nº 5 Funções http://tele1.dee.fct.unl.pt/pm
Leia maisEnunciado do problema: Calcule o valor de e, base dos logaritmos neplerianos, usando a série infinita abaixo
Mais alguns exercícios em pseudocódigo Enunciado do problema: Calcule o valor de e, base dos logaritmos neplerianos, usando a série infinita abaixo e 1 =1+ 1 1! + 1 2! + 1 3! + 1 4! + 1 5! + = 1 i=0 i!.
Leia maisAnálise de Algoritmos
Análise de Algoritmos Parte 1 Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 04 Algoritmos e Estruturas de Dados I Qual a diferença entre um algoritmo e um programa? Como escolher o algoritmo
Leia maisFunções em Linguagem C Parte II
Slides inicialmente preparados pelo Prof. Dr. Claudio Fabiano Motta Toledo Funções em Linguagem C Parte II Profa. Dra. Elisa Yumi Nakagawa 1. Semestre 2017 Sumário Introdução a Ponteiros Escopo de Variáveis
Leia maisSub-rotinas. 2014/2 Programação Básica de Computadores (INF 09325) Freddy Brasileiro
Sub-rotinas 2014/2 Programação Básica de Computadores (INF 09325) Freddy Brasileiro www.inf.ufes.br/~fbrasileiro fbrasileiro@inf.ufes.br Programa / Bibliografia 4. Sub-programas e funções 1. Funções e
Leia maisEstrutura do programa
Linguagem C Estrutura do programa Exemplo: #include #include main() { printf( Ola, mundo! ); system( pause ); }
Leia mais1 Resumo: Matrizes. 2.1 Como declarar uma matriz IME/USP. Departamento de Ciência da Computação
Departamento de Ciência da Computação MAC2166 Introdução a Computação IME/USP Matrizes 1 Resumo: Matrizes são estruturas bi-dimensionais utilizadas para armazenar dados de um mesmo tipo. Para declarar
Leia mais5 Comando de Seleção Simples e Composta
5 Comando de Seleção Simples e Composta Ronaldo F. Hashimoto e Carlos H. Morimoto Essa aula introduz o comando de seleção, que permite ao seu programa tomar decisões sobre o fluxo do processamento, ou
Leia maisIntrodução à Análise de Algoritmos
Quanto tempo leva a execução de determinado algoritmo? Quando temos dois algoritmos que fazem a mesma coisa, qual deles leva menos tempo? A análise do algoritmo preocupa-se com as questões acima. É sempre
Leia maisMatrizes. DCC 119 Algoritmos
Matrizes DCC 119 Algoritmos Matrizes: vetores multidimensionais Assim como os vetores, as matrizes são estruturas de dados homogêneas. Podem ser construídas dos diversos tipos básicos primitivos (real,
Leia maisFunções Vetores Matrizes
Funções Vetores Matrizes Além dos tipos elementares (float, double, char, etc.), é possível também passar um vetor ou uma matriz como parâmetro de funções. Quando um vetor é passado como parâmetro, o que
Leia maisMÉTODOS DE PESQUISA DE DADOS EM MEMÓRIA PRIMÁRIA. Material da Prof. Ana Eliza
MÉTODOS DE PESQUISA DE DADOS EM MEMÓRIA PRIMÁRIA Material da Prof. Ana Eliza Métodos de Pesquisa em Memória Primária Pesquisa Seqüencial Bases ordenadas e não-ordenadas Pesquisa Seqüencial Melhorada Bases
Leia maisModulo 9: Você define como éo dado... Struct e typedef
PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 9: Você define como éo dado... Struct e typedef Aura -Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro P1, Trabalho 5 e 6 Struct: Introdução; Criando
Leia maisFigura 1: Uma matriz contem elementos de um mesmo tipo, com início em (0,0). 30 é o número de colunas!
22 Matrizes Ronaldo F Hashimoto e Carlos H Morimoto Oobjetivodestaaulaéintroduzirotipomatriz Aofinaldessaaulavocêdeverásaber: descrever o que são matrizes em C Declarar matrizes Como acessar elementos
Leia maisDisciplina de Algoritmos e Programação
Disciplina de Algoritmos e Programação Aula Passada Prática com declaração e inicialização de variáveis Capacidade de representação (estouro de representação) Tamanho ocupado pela variável na memória (comando
Leia maisLinguagens de Programação I
Linguagens de Programação I Tema # 6 Geração de Números Aleatórios Introdução a Funções Susana M. Iglesias 1 NUMEROS ALEATÓRIOS Uma aplicação divertida e popular da programação é sua utilização, em criar
Leia maisLaboratório 4 Correcção de erros sintácticos e tipos de dados primitivos
Instituto Politécnico de Setúbal Escola Superior de Tecnologia Departamento de Sistemas e Informática Laboratório 4 Correcção de erros sintácticos e tipos de dados primitivos Disciplina de Introdução à
Leia maisINF 1007 Programação II
INF 1007 Programação II Aula 04 Alocação Dinâmica Edirlei Soares de Lima Vetores - Declaração e Inicialização Declaração de um vetor: int meu_vetor[10]; Reserva um espaço de memória
Leia maisVetores são estruturas indexadas utilizadas para armazenar dados de um mesmo tipo: int, char, float ou double. Oexemploaseguirédeumvetordeinteiros:
18 Vetores Ronaldo F. Hashimoto e Carlos H. Morimoto Nessa aula vamos introduzir o tipo vetor. Aofinaldessaaulavocêdeverásaber: Descrever o que são vetores na linguagem C. Declarar vetores. Como acessar
Leia mais1ª versão. #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000
#include #include #include #define maxdiscos 1000 typedef struct { char nomeautor[80]; char nomedisco[100]; int numdiscosvendidos; DISCO; 1ª versão int main() { DISCO listadiscos[maxdiscos];
Leia maisCapítulo 4: Condicionais
Capítulo 4: Condicionais INF1004 e INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Tomada de Decisão Até o momento, todas as instruções eram executadas, uma após a outra.
Leia maisINF 1620 P1-10/04/02 Questão 1 Nome:
INF 1620 P1-10/04/02 Questão 1 Considere uma disciplina que adota o seguinte critério de aprovação: os alunos fazem duas provas (P1 e P2) iniciais; se a média nessas duas provas for maior ou igual a 5.0,
Leia maisMC-102 Aula 14. Instituto de Computação Unicamp. 29 de Setembro de 2016
MC-102 Aula 14 Funções II Instituto de Computação Unicamp 29 de Setembro de 2016 Roteiro 1 Escopo de Variáveis: variáveis locais e globais 2 Exemplo Utilizando Funções 3 Vetores, Matrizes e Funções Vetores
Leia maisExercícios no papel... Computação I (CC)
Exercícios no papel... Computação I (CC) 2013 1 Escreva um programa que imprima a média aritmética dos números 8, 9 e 7. Escreva um programa que imprima a média aritmética dos números 8, 9 e 7. #include
Leia maisMódulo 5 Vetores e Alocação Dinâmica
Estruturas de Dados Módulo 5 Vetores e Alocação Dinâmica 1/9/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora
Leia mais2. Ordenação por Seleção
1 Algoritmos de Ordenação Simples (SelectionSort, InsertionSort, BubbleSort) 1. Introdução Objetivo: Determinar a seqüência ordenada dos elementos de um vetor numérico. Algumas considerações: O espaço
Leia mais