Faculdade de Estudos Avançados do Pará Disciplina: Algoritmos Professor: Armando Hage Conceitos inicias
Processamento de Dados É uma série de atividades ordenadamente realizadas,com o objetivo de produzir um conjunto determinado de informações a partir de outras obtidas inicialmente. A manipulação das informações coletadas no início da atividade chama-se de processamento
Dado e Informação Dado-Pode ser definido como a matéria prima originalmente obtida de uma ou mais fontes Informação- É o resultado do processamento
Esquema de etapas de um processamento de dados Dados Processamento Saída
Sistemas O que são sistemas??? É o conjunto de partes coordenadas que concorrem para a realização de um determinado objetivo.
Sistemas de Processamento de Dados Sistemas de processamentos de dados são aqueles responsáveis pela coleta,armazenamento,processament o e recuperação,em equipamentos de processamento eletrônico,dos dados necessários ao funcionamento de um ou outro sistema maior.
Sistema de Informações Conjunto de métodos,processos e equipamentos necessários para se obter,processar e utilizar informações dentro da empresa. Possui duas dimensões:componentes da organização e nível de decisão(operacional, gerencial ou alto nível da organização).
Sistema de Informações SIG (Sistema de informações gerencias) SIG (Sistema de informações gerencias) É o sistema que engloba todos os componentes e todos o níveis de decisão de uma organização
Sistema de processamento de dados Sistema de Computação Sistema de Aplicação
7.Parar Sistema de Computação É formado pelo conjunto de componentes eletrônicos(hardware) e sistemas básicos(software). Programa - Conjunto de instruções 1.Escrever e guardar N=0 e SOMA=0 2.Ler número de entrada 3.Somar valor do número ao de SOMA e guardar resultado como SOMA 4.Somar 1 ao valor do número e guardar resultado como novo N 5.Se valor de N for menor que 100, então passar para item 2 6.Se não: imprimir valor de SOMA
O grupo de passos relacionados na figura descreve um algoritmo: conjunto de etapas finitas, ordenadamente definidas, com o propósito de obter solução para um determinado problema Um programa de computador é a formalização de uma algoritmo em linguagem inteligível pelo computador.
Esquema de processamento para um problema Dados Processamento Saída Digitação do problema e dados Cálculo e testes Impressão dos resultados
Hardware Conjunto de circuitos eletrônicos e partes eletromecânicas de um computador. É a parte física, visível do computador.
Software Consiste de programas de qualquer tipo e em qualquer linguagem. Dividem-se em : básico,utilitários e aplicativos
Software Básico São aqueles que já vem de fábrica que me conjunto com o hardware formam o que chamamos de sistema de computação. Ex.:ROMBIOS ou BIOS,Sistemas Operacionais
Softwares Utilitários Destinam-se as atividades de gerenciamento e segurança. Ex:Desfragmentadores de disco rígido, anti vírus, protetores de tela.
Software Aplicativos São voltados para as necessidades dos usuários. Ex:Processador de texto(word), planilhas eletrônicas(excel), banco de dados(access)
O bit, o caractere, o byte e a palavra Bit (binary digit) É a menor unidade de informação armazenável em um computador. O bit pode ter somente dois valores:0 e 1 Caractere É o menor grupo ordenado de bits representando uma informação útil e inteligível para o ser humano. Quando armzenado é convertido em um conjunto de bits previamente definidos chamados de código de representaçào de ceracteres
O bit, o caractere, o byte e a palavra Byte (binary term) É a unidade de informação composta por uma seqüencia de oito dígitos binários adjacnetes Bit Byte
O bit, o caractere, o byte e a palavra Palavra É o conjunto de bits que representam uma informação útil Tabela de conversões: 8 Bits------------ 1 Byte 1Kb---------------1024 Bytes 1M --------------- 1024x1024 Bytes 1 G---------------- 1024x1024x1024bytes
Arquivos e Registros Arquivo É a denominação de como o sistema operacional estrutura os grupos de dados para que seja possível individualizar diferentes grupos de dados de informações. Registros São os ítens individuais de cada informação.
Periféricos São dispositivos, aparelhos ou circuitos dos quais são feitos: a entrada de dados no computador a saída de dados do computador para o ambiente armazenamento de informações ou programas
Software Conjunto de programas,métodos e procedimentos, regras e documentação relacionadas com o funcionamento e manejo de um sistema de dados. Dividem-se em: Softwares básicos Softwares Utilitários Softwares Aplicativos
Linguagens de Programação Uma linguagem de programação é a linguagem criada para instruir um computador a realizar suas tarefas. Código Programa completo escrito em uma linguagem de programação.
Linguagens de Programação Por que estudar linguagens de programação? Melhorar a habilidade para resolver problemas ; Aprender a fazer uso das linguagens de programação; Ser capaz de escolher uma linguagem apropriada ; Adquirir a capacidade de entender rapidamente e usar novas linguagens ; Adquirir a capacidade de projetar linguagens de programação.
Linguagens de Programação Linguagem de baixo nível É a mais primitiva, podendo ser executadas diretamente no Hardware. O processo de conversão é chamado de montagem e é realizada por um programa Montador(Assembler) Ex:Assembly Language
Linguagens de Programação Linguagem de alto nível Foi um avanço significativo na comunicação com os computadores, com menos instruções que as de linguagens de montagem. Idealizada para a resolução de problemas sem preocupações com o tipo de CPU, memória ou onde será executado. Comando- instruções específicas dadas pelo programador Ex.:FORTRAN,Pascal, Basic, C, C++, Java
Montagem Tradruz um programa em linguagem de montagem para um equivalente em linguagem binária Código fonte Código Objeto Funções Substiuir os código de operações simbólicas e nomes simbólicos por valores numéricos Reservar espaço na memória Examinar cada instrução
Fluxo do processo de montagem Código Fonte Programa original Montagem Montador Código Objeto Programa Resultante
Compilação É quando se converte para linguagem de máquina um programa escrito em uma linguagem de alto nível. É o processo de análise de um programa fonte(código fonte) e sua conversão em um programa equivalente descrito em linguagem d máquina, o programa objeto(código objeto). Diferente da Montagem por ser mais complexa e demorada.
Fluxo do processo de compilação Código Fonte Programa original Compilação Compilador Programa Código Objeto Resultante *Mais complexa e demorada, pode gerar várias instruções de máquina em um único comando
Ligação ou Linkedição É util quando o programdor necessita codificar determinadas operações que já existem dentro do sistema operacional. Ex.:Operaçãoes de entrada e saída O código é buscado onde estiver e incorporado ao programa. Bibliotes (librarys)-coleção de códigos objeto. Resulta em um conjunto de código de máquina, interligados e prontos para funcionar chamados de módulos de carga ou código executável
Fluxo do processo de compilação e linkedição Programa Fonte Programainicial Compilação Compilador Código Objeto Ligação Código Executável Ligador Biblioteca A Biblioteca B Biblioteca C
Elementos chaves na resolução de problemas por computador Computador- a máquina que executará o processo descrito pelo programa Pessoa- o programador, a fonte para a comunicação Processo- a atividade sendo executada pelo programa Problema- o sistema real ou ambiente onde o problema acontece (ou surge)
O computador É uma máquina programável que processa informação.
Diferenças de abordagens à resolução de problemas
Tipos de problemas que o computador resolve Problemas completamente especificados Problemas que se pode decompor numa combinação de um número finito de problemas completamente especificados
Problema completamente especificado As variáveis de entrada e saída são perfeitamente identificadas Se conhece uma solução,ou seja, um método que permite obter os valores das variáveis de saída em relação as variáveis de entrada.
Características Sempre considera-se a resolução de um problema em âmbito geral e não os casos particulares. As variáveis de entrada devem ser claramente estabelecidas. A solução descrita deverá aparecer para um conjunto de valores especificados. Ex.: Resolução de uma equação do segundo grau.
Algoritmos Problema Solução= Algoritmos Descrição detalha e rigorosa da resolução de um problema Aqui está a essência da programação de computadores
Lógica É a técnica de encadear pensamentos para atribuir determinado objetivo É necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, e permite definir a seqüência lógica para o desenvolvimento.
Seqüência lógica São passos executados até atingir um objetivo ou solução de um problema
Instruções São um conjunto de regras ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma ação elementar a executar.
Algoritmos É uma seqüência de ações finitas descrevem como um problema deve ser resolvido Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas. O algoritmo pode ser usado como uma ferramenta genérica para representar a solução de tarefas independente do desejo de automatiza-las, mas em geral está associado ao processamento eletrônico de dados, onde representa o rascunho para programas (Software).
Algoritmos É a forma pela qual descrevemos soluções de problemas do nosso mundo, afim de, serem implementadas utilizando os recursos do mundo computacional. Com exemplos de algoritmos podemos citar os algoritmos das operações básicas e números reais.outros exemplos seriam manuais de aparelhos eletrônicos, que explicam passo-a-passo suas operações.
Algoritmos Programas São algoritmos escritos numa linguagem de Computador (Pascal, C, Cobol, Visual Basic, etc.) e que são interpretadas e executadas por uma máquina, no caso um computador.
Algoritmos Um algoritmo precisa: Ter inicio e fim; Ser escritos em termos de ação (comandos) bem definidos; Que as ações sigam uma seqüência ordenada.
Técnicas de apresentação de Algoritmos Em uma língua(português, inglês); Em uma linguagem de programação; Representação Gráfica; Fluxograma; Diagrama de Nassi Shnederman Método Jackson Diagrama de Warnier-Or.
Pseudocódigo Este nome é uma alusão à posterior implementação em uma linguagem de programação, ou seja, quando formos programar em uma linguagem, por exemplo Pascal, estaremos gerando código em Pascal. São independentes de linguagens de programação. Corresponde as estruturas básicas de programação. Deve ser fácil de interpretar e de codificar. Deve ser o intermédio entre a linguagem falada e a linguagem de programação.
Regras para a construção do Algoritmo Para escrever um algoritmo precisamos descrever uma seqüência de instruções, de maneira simples e objetiva. Usar somente um verbo por frase; Imaginar que está desenvolvendo um algoritmo para pessoas que não trabalham com informática; Usar frases curtas e simples; Ser objetivo; Procurar usar palavras que não tenham duplo sentido.
Fases Precisamos dividir o problema em três fases fundamentais
Exemplos do Dia a dia Como algoritmos do dia a dia podemos citar receitas de bolo, manuais de instrução, entre outros: Início 1 - Coloque os ingredientes Neste algoritmo, do molho na panela pode-se introduzir 2 - Misture por três minutos o conceito de em fogo alto variável (os 3 - Desligue o fogo e ingredientes do acrescente um copo de água molho são fria variáveis de receita 4 - Despeje o molho na para receita) carne Fim
Exemplos do Dia a dia Início 1 - Suba um degrau 2 - Se não chegou ao topo da escada então vá para 1 Fim Neste algoritmo, pode-se introduzir o conceito de constante (um degrau), seleção (SE) e desvio (Vá para)
Exemplos do Dia a dia Início 1- Enquanto não chegou ao topo da escada Suba um degrau Neste algoritmo, não foi necessário fazer um desvio. Utilizou-se uma repetição de ação (Enquanto). O teste da condição foi no início
Exemplos do Dia a dia Início 1 Repita Suba um degrau Até chegar ao topo da escada Neste algoritmo, também foi utilizado uma repetição, porém com teste ao final (Repita até).
Exemplos do Dia a dia Início 1 - Retire o fone do gancho 2 - Deposite uma ou mais fichas 3 - Se ouvir ruído de discar então disque um número senão ponha o fone no gancho retire as fichas 4 - Se não conseguiu A Instrução SE agora possui duas alternativas então e senão.
Exemplos do Dia a dia Início 1 - Leia a; 2 - Leia b; 3 - Faça média = (a+b)/24 - Se média > = 5 então escreva "aluno aprovado" senão escreva "aluno reprovado" Fim Este algoritmo serve para verificar se o aluno passou ou não de ano (Atingiu média superior ou igual a 5)
Exercícios Crie uma seqüência lógica para tomar banho: Faça um algoritmo para somar dois números e multiplicar o resultado pelo primeiro número. Descreva com detalhes a seqüência lógica para trocar um pneu de um carro. Faça um algoritmo para trocar uma lâmpada. Descreva com detalhes. Construa um algoritmo explicitando todos os passos que devem ser seguidos para encontrar um dado livro numa biblioteca.
Bibliografia o Tremblay,Jean-Paul,1939- Ciência dos Computadores:uma abordagem algorítmica o Ziviani,N.- Projeto de algoritmos com implementação em Pascal e C.