Baixe o app para aproveitar ainda mais
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
Compartilhar