Buscar

Aula_01_-_Analise_de_Algoritmos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CCT0083 - Algoritmo Avançado
Aula 01: Introdução a Análise de Algoritmo 
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Algoritmo Avançado
Algoritmo Avançado
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Objetivo 
- Relembrar o conceito de Algoritmo;
- Relembrar o conceito de Estrutura de Dados;
- Relembrar sobre a Sintaxe da Linguagem C++;
- Desenvolver em Laboratório de Informática, sob a forma de exercícios, programas 
em C++ envolvendo Vetores, Matrizes, Ponteiros, Registros (Struct) e Funções.
Algoritmo Avançado
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Conceitos 
· Um algoritmo é uma descrição, passo-a-passo, de uma metodologia que conduz à
resolução de um problema ou à execução de uma tarefa.
Algoritmo Avançado
· A programação consiste na codificação precisa desse algoritmo, segundo uma
linguagem de programação específica.
Algoritmo 
Programação 
Definição de Algoritmo (outros autores)
“ É uma sequencia finita de instrução cuja execução, em tempo finito, resolve
um problema computacional, qualquer que seja sua instância.”
(SALVETTI, 1999)
“São regras formais para obtenção de um resultado ou da solução de um pro
blema, englobando fórmulas de expressões aritméticas.”
(MANZANO, 1997)
Algoritmo Avançado
Definição de Lógica
Parte da filosofia que trata das formas do pensamento em geral (dedução,
indução, hipótese, inferência etc.) e das operações intelectuais que visam à
determinação do que é verdadeiro ou não.
Lógica na visão geral
Algoritmo Avançado
Definição de Lógica
É a técnica de desenvolver sequências lógicas para atingir de um
problema computacional. Essas sequências lógicas são adaptadas para
linguagem de computador pelo programador a fim de produzir software.
O que é lógica Computacional?
Algoritmo Avançado
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
As três fases da elaboração de Programas 
Algoritmo Avançado
Nesse contexto há, então, que ter em consideração que existem
três fases distintas na elaboração de programas:
• A análise do problema (especificação do problema, análise
de requisitos, pressupostos, etc.)
• A concepção do algoritmo – Solução computacional
• A tradução desse algoritmo na linguagem de programação
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Estrutura de dados é o ramo da computação que estuda os diversos
mecanismos de organização de dados para atender aos diferentes
requisitos de processamento da maquina.
· As estruturas de dados definem a organização, métodos de acesso e
opções de processamento para coleções de itens de informação
manipulados pelo programa.
Algoritmo Avançado
Estrutura de dados 
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Dois tipos de coleções são apresentados:
• Estruturas lineares são aquelas que mantém os seus itens de forma
independente de seus conteúdos, ou seja, na qual qualquer tipo de
interpretação dos dados que são armazenados é irrelevante para a
manutenção da estrutura.
• Estruturas associativas são aquelas que levam em consideração a
interpretação do valor (ou de parte dele) para a manutenção dos itens
na estrutura.
Algoritmo Avançado
Estrutura de dados 
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Uma coleção do tipo vetor pode ser vista como um arranjo cuja capacidade
pode variar dinamicamente. Se o espaço reservado for totalmente ocupado
e espaço adicional for necessário, este será alocado automaticamente, o
programador não precisa se preocupar com a capacidade de
armazenamento ou com a ocupação até o momento.
Algoritmo Avançado
Vetor
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Uma matriz é uma coleção de variáveis de mesmo tipo, acessíveis com um
único nome e armazenados contiguamente na memória. A individualização
de cada variável de um vetor é feita através do uso de índices. Os Vetores
são matrizes de uma só dimensão.
Algoritmo Avançado
Matrizes
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Conceitos 
Em C/C++, é possível ter acesso não apenas ao valor de uma variável, mas
também ao seu endereço. Há duas formas de indicar nesta linguagem que
uma determinada variável será manipulada através de seu endereço. Na
forma mais simples, através de variáveis referências, o uso do endereço é
transparente para o programador. Na outra forma, ponteiros, o programador
é responsável por operar explicitamente com os endereços das variáveis.
Algoritmo Avançado
Ponteiros
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Conceitos 
A manipulação explícita de endereços dá-se através da utilização de
ponteiros. Ponteiros constituem um dos recursos mais utilizados na
programação C e C++. Eles fornecem um mecanismo poderoso, flexível e
eficiente de acesso a variáveis.
Algoritmo Avançado
Ponteiros
Exemplo int *ap;
int x; 
Neste exemplo, ap é uma variável do tipo
ponteiro para inteiro, ou seja, ela irá receber
um endereço de uma variável inteira
ap = &x;
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Conceitos 
• É um tipo de dado estruturado heterogêneo ao contrário de matrizes que
possuem elementos de um mesmo tipo (homogêneo)
• Coleção de variáveis referenciadas sobre um mesmo nome.
• Permite agrupar dados de diferentes tipos numa mesma estrutura.
• Cada componente de um registro pode ser de um tipo diferente (int, char, ...)
• Estes componentes são referenciados por um nome
Algoritmo Avançado
Registros Struct
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Conceitos 
Exemplos:
carro possui cor, marca, ano, placa, chassi.
pessoa possui nome, idade, endereço.
Algoritmo Avançado
Registros Struct
Struct CadastroPessoa
{
int idade ;
float altura ;
float peso ;
char nome[ 5 0 ] ;
} pessoa ;
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Conceitos 
Um programa C/C++ consiste de uma ou mais definições de funções (e
variáveis). Há sempre uma função chamada main. Outras funções também
podem ser definidas. Cada uma pode ser definida separadamente, mas
nenhuma função pode ser definida dentro de outra função.
Algoritmo Avançado
Funções
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Conceitos 
Exemplo:
O formato geral da definição de uma função é:
Algoritmo Avançado
Funções
tipo nome-da função (lista-de-argumentos)
{
declarações e sentenças
}
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Bibliografia básica
Ascencio, Ana Fernanda Gomes; Araújo, Graziela Santos de. Estruturas de Dados.
Algoritmos, Análise da Complexidade e Implementações em Java e C/C++ [BV:PE].
1. ed. São Paulo: Pearson, 2013.
Disponível em: https://plataforma.bvirtual.com.br/Leitor/Publicacao/1995/pdf
Drozdek, Adam. Estrutura de dados e algoritmos em C++ [BV:MB].. 4. ed. São
Paulo,: Cengage Learning,, 2016..
Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788522126651/cfi/0!/4/4@0.
00:0.00
Manzano, Jose´ Augusto N. G. Algoritmos - Lógica para Desenvolvimento de
Programação de Computadores [BV:MB].. 28. ed. -. Sa~o Paulo: E´rica,, 2016..
Disponível em: 
https://integrada.minhabiblioteca.com.br/#/books/9788536518657/cfi/0!/4/4@0.
00:0.00
Algoritmo Avançado
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Bibliografia complementar
Projeto e Otimização em D
ANDRADE, Mairum Ceoldo. Algoritmos [BV:RE]. 1. ed. Rio de Janeiro: SESES,2014. Disponível em:
http://repositorio.savaestacio.com.br/site/index.html#/objeto/detalhes/377757CE-7C5A-
438D-A742-482DDDC54D12
Ascencio, Ana Fernanda Gomes. Estrutura de Dados: Algoritmos, Análise da
complexidade e implementações em Java e C/C++[BV:PE]. 1ª ed. São Paulo: Pearson
Pentice Hall, 2010. Disponível em: https://plataforma.bvirtual.com.br/Leitor/Publicacao/1995/pdf
Damas, Luís. Linguagem C / Luís Damas ; tradução João Araújo Ribeiro, Orlando
Bernardo Filho.[BV:MB]. 10.ed. - [Reimpr.].. Rio de Janeiro: LTC,, 2016. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788521632474/cfi/6/2!/4/2/2@0:0
Drozdek, Adam. Estrutura de dados e algoritmos em C++ / Adam Drozdek ;
tradução: Roberto Enrique Romero Torrejon; revisão técnica: Flávio Soares
Corrêa da Silva. [BV:MB]. 4a ed. São Paulo,: Cengage Learning., 2016. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788522126651/cfi/0!/4/4@0.00:0.00
MELO,Ana. Silva,Flavio. Princípios de linguagem de programação[BV:PE]. 1ª
Edição. Rio de Janeiro: Blucher, 2019.
Disponível em: https://plataforma.bvirtual.com.br/Leitor/Publicacao/172605/pdf
Algoritmo Avançado

Continue navegando