Prévia do material em texto
Bacharelado em Ciência da Computação Introdução à Ciência da Computação Universidade Federal de Uberlândia Faculdade de Computação - FACOM Programação de Computadores Profª. MSc. Sara Luzia de Melo Email: sara.melo@ufu.br Sala: 1B149 Objetivo da disciplina Apresentar os principais conceitos e teorias nos quais se baseiam a Ciência da Computação. Discutir sobre as Relações Étnico-raciais, Explorar o processo de Inclusão Digital como forma de Inclusão Social e diminuição das distâncias entre diferentes culturas e raças. Ementa Resumida � História e evolução dos computadores; � Sistemas de numeração; � Linguagens de programação; � Algoritmos; � Teoria sobre algoritmos; � Execução de algoritmos; � Informática; � Computador e sociedade. Formas de Avaliação Duas avaliações: Primeira prova: 35 pontos (17/10); Segunda prova: 35 pontos(05/12);); Seminários : 30 pontos. Total: 100 pontos. Nota mínima para aprovação: 60 pontos. Avaliação Substitutiva � Uma prova substitutiva poderá ser feita por alunos que ficaram com média entre 40 e 59, ou por alunos que perderam alguma das provas durante o semestre. � A prova substitutiva valerá 100 pontos. O aluno deverá obter 60 pontos para ser aprovado. � Caso o aluno seja aprovado na prova substitutiva, sua nota final será 60 pontos, independente da nota tirada nesta última prova. � Não poderão fazer essa prova alunos com mais de 25% de faltas (18 aulas, no total). Atendimento Atendimento com a professora em horário agendado e com confirmação por e-mail. Quartas, das 13:30 às 15:30 Sala 1B149 (sara.melo@ufu.br) O que é computação? Computar = calcular “Calcular vem do latin calculi”, nome dado à pequenas pedras usadas pelo romanos para calcular; Computador = máquina de calcular. Seria o computador uma calculadora? Quase isso.... Computação envolve equipamentos e o raciocínio lógico e matemático para o processamento de dados. O que é um computador? � É uma máquina que faz processamento de dados. � É capaz de realizar uma grande gama de tarefas, com alta velocidade e precisão, desde que receba as instruções adequadas de um programa. Etapas do processamento Entrada Processamento Saída Armazenamento Entrada � As operações de entrada são realizadas através dos periféricos de entrada e consistem no recebimento dos dados para processamento. Etapas do processamento Entrada Processamento Saída Armazenamento Saída � As operações de saída são realizadas através dos periféricos de saída, os quais transformam os resultados do processamento que estão na memória para um formato compreensível ou acessível pelos usuários. Etapas do processamento Entrada Processamento Saída Armazenamento Processamento � Consiste na execução de operações sobre os dados recebidos. � Esta tarefa e realizada pelo processador, também conhecido como Unidade Central de Processamento (Central Processing Unit – CPU). � O processador executa as instruções contidas nos programas e controla o acesso aos dados na memória. Etapas do processamento Entrada Processamento Saída Armazenamento Armazenamento � Os dados são armazenados durante processamento ou para uso posterior. Hardware e Software � Um computador é formado por 2 elementos fundamentais: � Hardware � Parte física do sistema informatizado, formada por um conjunto de componentes elétricos, eletrônicos, eletromecânicos (placas e demais dispositivos periféricos). � Software � Conjunto de instruções que comandam o funcionamento do hardware, também chamado simplesmente de “programa”. É o software que transforma o hardware em um algo útil para nós, usuários. O software é dito um elemento lógico, pois é algo intangível, que só existe na memória do computador. Isto é, não possui existência física. Hardware Periféricos de Entrada Periféricos de Saída Processador (CPU) Memória dados dados dados d a d o s Processador � O processador, também chamado de CPU (Central Processing Unit ou Unidade Central de Processamento), é considerado o “cérebro” do computador: � É ele quem executa programas; � Faz cálculos; � Controla o fluxo de funcionamento de toda a máquina, de acordo com as instruções dos programas armazenados na memória. Processador � Cabe ressaltar que o processador é capaz de realizar apenas: � Operações aritméticas simples (soma e subtração). � Operações lógicas (comparações). � Armazenar e recuperar informações na memória. � Isto significa que qualquer problema, simples ou complexo, é reduzido a uma combinação adequada dessas operações (LANCHARRO et al., 1991). � Como as operações são executadas milhões ou ate bilhões de vezes por segundo, vemos o resultado do processamento de forma relativamente rápida. Processador � A velocidade do processador e medida em Hz (Hertz). � A quantidade de Hertz especifica quantos ciclos o processador é capaz de realizar por segundo. � Por ciclo, entendemos buscar uma instrução na memória e executá-la. � Isto é, um processador de 1 GHz é capaz de realizar aproximadamente um bilhão de ciclos por segundo, isto é, buscar e executar um bilhão de instruções por segundo. Unidades e grandezas básicas para Informática � Hertz= ciclos � Frequência de um processador de computador como medida de desempenho � A cada ciclo o computador faz uma instrução Hertz (Hz) 1 ciclo Kilohertz (kHz) 103 Byte = 1 000 ciclos Megahertz(MHz) 106 Byte = 1 000 000 ciclos Gigahertz (GHz) 109 Byte = 1 000 000 000 ciclos Processador � O processador é construído com base em milhões de minúsculos componentes eletrônicos (transistores, diodos, capacitores, resistores, etc.), integrados em uma pastilha de silício. Fica encaixado na placa mãe, no interior do gabinete . Placa mãe � A placa mãe é responsável por interconectar todas as peças que formam o computador. � Ela possui um soquete onde é encaixado o processador. � Possui encaixes denominados slots para: � os módulos de memória RAM; � placas de expansão (de vídeo, de som, de rede, etc.). � Também possui encaixes para: � os cabos que conectam o HD; � os drives de CD e disquete; � portas para conexão de dispositivos externos (mouse, teclado, impressora). Placa mãe Soquete para encaixe do processador Slots para Memória RAM Encaixe do cabo de energia Portas para conexões dos periféricos externos Encaixe do HD placas de expansão Memória � São dispositivos eletrônicos, magnéticos ou óticos capazes de reter informações que foram ou que ainda serão processadas. Existem quatro tipos de memória: � Memória Principal (RAM) � Memória ROM � Memória Cache � Memória Secundária Memória RAM � A memoria principal ou RAM (Random-Access Memory, memória de acesso aleatório) armazena temporariamente as informações, mantendo o sistema operacional e os programas que estiverem em uso, além dos dados de processamento necessários a cada momento (VELLOSO, 2004). � Fisicamente, a memória RAM é uma placa que fica encaixada na placa mãe em um slot apropriado. Memória RAM Memória RAM � É uma memória dita volátil, já que somente armazena informações enquanto o computador estiver ligado. Quando o computador é desligado, todo o seu conteúdo é perdido. É por isso que devemos “salvar” o que estamos fazendo. Memória ROM � A memoria ROM (Read-Only Memory) é uma memória somente de leitura e não volátil que fica em um chip, localizado na placa mãe. � Traz gravado de fábrica um conjunto de programas que gerenciam as rotinas de inicialização do computador e não podem ser apagados. Memória Cache �É uma memória de acesso aleatório consideravelmente mais rápida que a memória RAM. � Retém os dados utilizados com maior frequência pelo processador, evitando muitas vezes que ele tenha que buscá-los sempre na memória RAM. � Desta forma, o desempenho do processamento é acelerado. Isto é, quanto maior sua capacidade, melhor será o desempenho do computador. Memória Secundária � Dentro desta categoria estão os dispositivos de armazenamento não volátil, ou seja, aqueles em que o conteúdo não se perde quando o computador e desligado. � Nestes dispositivos, as informações são armazenadas na forma de arquivos. Quando criamos um arquivo e o “salvamos”, estamos na verdade copiando-o da memória RAM para um desses dispositivos. Memórias Secundárias � Os principais dispositivos de memória secundária são: � Disco rígido (HD) � Mídias óticas (CD e DVD) � Memória flash � Pen drive � Cartão de memória Disco rígido (HD) � É o principal dispositivo do computador para armazenamento de longo prazo, com grande capacidade. Nele ficam armazenados o sistema operacional, os programas instalados e boa parte dos dados salvos pelo usuário. Disco Rígido braço motor pratos cabeça de leitura e gravação Mídias óticas � As mídias óticas utilizam um feixe de luz (laser) para leitura e gravação. � Armazenamento � Exemplos: � CD: armazena em média 700 MB de dados; � DVD comum: pode armazenar cerca de 4,3 GB; � BD (Blu-ray Disc): armazena de 25 GB (camada simples) à 50 GB (camada dupla) e é utilizado para armazenar filmes em alta definição. Mídias óticas Pen drive � Dispositivo portátil bastante útil para transportar dados de forma prática. � Possui um pequeno chip em seu interior, onde são gravados os arquivos do usuário. � É conectado a uma porta USB do computador. Pen drive Memória Flash � Tipo de memória não-volátil que pode ser apagada e reprogramada eletricamente; � Utilizada em dispositivos do tipo pen-drive e cartão de memória. � Existem crenças de que esse tipo de memória substituirá os discos rígidos ao longo dos anos. Cartão de memória � Os cartões de memória, assim como os pen drives, utilizam a chamada memória flash, uma tecnologia de gravação em chip. São empregados em dispositivos portáteis como celulares e câmeras digitais, devido a sua resistência e baixo consumo de energia. Cartão de memória Unidades e grandezas básicas para Informática � O computador entende impulsos elétricos � Bit = binary digit � 0 = sem corrente � 1 = com corrente � Com isso é possível fazer várias combinações e armazenar grandes quantidades de dados Byte (B) 8 bits Kilobyte (kB) 103 Byte = 1 000 Byte Megabyte (MB) 106 Byte = 1 000 000 Byte Gigabyte (GB) 109 Byte = 1 000 000 000 Byte Terabyte (TB) 1012 Byte = 1 000 000 000 000 Byte Dispositivos de Armazenamento Custo X Velocidade X Capacidade Maior Velocidade de Acesso aos dados* Maior Custo de Armazenamento por byte Cache Mem. RAM Disco Magnético Disco Ótico Memória Flash *Vários dispositivos de memória flash ainda possuem taxas de transferência de dados menores do que as taxas de transferência de muitos discos magnéticos. Endereços de Memória � Cada localização de memória tem um endereço: � Um número único, como em uma caixa postal. � Pode conter somente uma instrução ou peça de dados: � Quando dados são reescritos na memória, o conteúdo anterior desse endereço é destruído. Periféricos � São dispositivos que permitem a interação e a comunicação entre a CPU e o mundo externo, possibilitando a entrada e a saída de dados. São assim chamados por se situarem fora da CPU, isto é, em sua “periferia”. � Cada equipamento periférico é ligado a um barramento da placa mãe em um ponto específico, denominado porta. Pode-se então ligar vários equipamentos periféricos, através das portas, aos barramentos. � Os dados e instruções fluem através dos barramentos, dos periféricos para o processador e do processador para os periféricos. Periféricos � Periféricos de entrada � Teclado, Mouse, Drive de CD-ROM, Drive de DVD-ROM, Microfone, Scanner, Webcam. � Periféricos de saída � Monitor, Impressora, Placa de vídeo, Caixa de som. � Periféricos de entrada e saída � Drive de disquete, Drive de CD-R, CD-RW, DVD-R e DVD-RW, Unidade de fita magnética, Modem, Placa de rede, Placa de som, Monitor sensível ao toque. Software � Software é uma sequência de instruções escritas para serem interpretadas por um computador com o objetivo de executar tarefas específicas. � Também pode ser definido como os programas que comandam o funcionamento de um computador. � Dentre eles: � Sistema operacional � Linguagens de Programação � Software de aplicações Sistema operacional � Tipos de Software � Serve como um intermediário entre o hardware e os softwares. � Estabelece uma interface com o usuário � Determina como o usuário interage com o sistema operacional MS-DOS � Usa uma interface de linha de comando. � A tela apresenta prompts ao usuário. � O usuário digita comandos. � Amplamente substituído pelas interfaces gráficas. � Não é amigável (user-friendly). Interface Gráfica � O usuário dá um clique em um ícone para executar tarefas. � O menu Iniciar no canto inferior esquerdo abre programas. � Usa menus para ativar comandos. Software Tipos de Software � Linguagens de Programação � Ambientes de desenvolvimento que são utilizados para a criação e modelagem de programas e sistemas. � Pascal, JAVA, HTML, DELPHI, ASP, FORTRAN etc. Software de aplicações � Software aplicativo (aplicativo ou aplicação) é um programa de computador que tem por objetivo ajudar o seu usuário a desempenhar uma tarefa específica � Ex: Word, Sistema Contábil, um Site, gestor de projetos Software Tipos de Software � Programas especializados � Sistemas especializados em uma determinada área � Ex: Controle de tráfego aéreo, gestão de empresas... Senta que lá vem história!!!! Histórico Os computadores surgiram inicialmente com fins militares. Na década de 60, os supercomputadores (assim conhecidos devido a sua enorme capacidade de processamento) passaram a ser utilizados em empresas de grande porte, realizando o controle financeiro e administrativo. A capacidade de processamento do primeiro computador (chamado de ENIAC), podemos compará- lo a uma calculadora de bolso. Entretanto, por ser este um computador totalmente valvulado (não existiam transistores, muito menos circuitos integrados). 1ª GERAÇÃO � A primeira geração dos computadores foi construída manualmente e utilizando válvulas. 1ª Geração - ENIAC (1946) ENIAC – Características Pesava mais de 30 toneladas Operava na base dez e não em base binária Ocupava 167 m2 Criado na segunda guerra, tinha como principal finalidade cálculos balísticos Possuía 17.468 válvulas, 7.200 diodos de cristal, 1.500 relés, 70.000 resistores, 10.000 capacitores ENIAC – Características O ENIAC era programado através de milhares de interruptores, podendo cada um dele assumir o valor 1 ou 0 representando se o interruptor estava ligado ou desligado. Para o programar, era necessário uma grande quantidade de pessoas que percorriam as longas filas de interruptores dando ao ENIAC as instruções necessárias para computar, ou seja, calcular. Existia uma equipe de 80 mulheres na Universidade da Pensilvânia cuja função era calcular manualmente as equações diferenciais necessárias para os cálculos. 2ª Geração 100 vezes menor que a geração anterior; Substituição das válvulas pelos transistores, resistores e capacitores, reduzindo o tamanho do hardware;Início dos computadores com sucesso comercial; 3ª Geração O menor pesava 20 Kg, podiam chegar até 1.000.000 de operações/s, uso pessoal e surgiu a Linguagem de alto Nível. 3ª Geração � Criação dos circuitos integrados: uma mesma placa com vários circuitos diferentes. � Máquinas mais velozes e mais baratas. � Miniaturização dos circuitos → microcomputadores (versões reduzidas dos mainframes, ainda que continuassem ocupando muito espaço). � Surgimento das redes de computadores � Surgimento de outras linguagens de programação. 4ª Geração Computadores pessoais Extremamente leve Opera na base binária Internet e informação em tempo real Interligação de Sistemas através de Redes de Computadores de alta velocidade Possui aproximadamente 1 bilhão de transistores � Primeiro Apple (1976) � 4KB de memória Gerações seguintes (1970 - ...) � Primeiro PC (aprox. 1980) � 16KB de memória � MS-DOS Gerações seguintes (1970 - ...) � Atualmente... � Supercomputador Lobo Carneiro, UFRJ. � Executa 226 trilhões de operações por segundo. � 720 terabytes de armazenamento. � 16 terabytes de memória RAM. � Custou 10 milhões de dólares. � A intenção é usá-lo para pesquisas sobre energia e petróleo, além do vírus zika. Gerações seguintes (1970 - ...) http://gizmodo.uol.com.br/ufrj-supercomputador-lobo-carneiro/ Gerações dos Microcomputadores � 1ª Geração = Válvulas (seu início é classificado em 1942 e 1951) � 2ª Geração = Transistores (tecnologia usada entre 1959 e 1964) � 3ª Geração = Circuitos Integrados(1964 e 1970) � 4ª Geração = Microprocessador (teve início em 1970) Arquitetura de Von Neumann � Em 1952 formalizou o projeto lógico de um computador � Divide o computador em 3 subsistemas básicos: � CPU � Executa as instruções � Coordena os demais componentes � Memória Principal � Onde os programas são mantidos quando estão sendo executados � Também contem os dados necessários aos programas � Sistema de entrada e saída � Conversores de dados para representação física Máquina de von Neumann Memória Principal Sistema de E/S CPU Registradores ALU Unidade de Controle endereçodados/ instruções CPU � Registradores � Estruturas de memória interna da CPU, que podem armazenar endereços de memória com função específica ou dados temporários; � Unidade lógica e aritmética � Execução das instruções (operações lógicas e aritméticas) � Unidade de controle � Determina a sequência de instruções a serem executadas Características da máquina de von Neumann � Dados e programas a serem executados são carregados para memória principal; � A unidade central de processamento (CPU), que executa realmente as instruções, é separada da memória; � As instruções dos programas e os dados são transmitidos da memória principal para a CPU, onde o processamento é realizado; � Os resultados das operações na CPU devem ser novamente transferidos para a memória; John von Neumann John von Neumann Introdução ANÚNCIO “Vende-se computador com processador Intel Core i5, 2.5 Ghz, 8 MB Cache, Memória RAM de 6 GB, HD de 1 TB” � O que pode ser medido em um computador? � Capacidade da Memória RAM � Capacidade do HD � Tamanho de arquivos � Etc. A informação e sua representação � O computador, sendo um equipamento eletrônico, armazena e movimenta as informações internamente sob forma eletrônica � O computador reconhece dois estados físicos distintos, produzidos pela eletricidade � Presença de energia � Ausência de energia A informação e sua representação � Como os computadores representam as informações usando dois estados, eles são adequados para números binários � Desligado → 0 � Ligado → 1 � O computador é um sistema baseado em representação binária (base 2): 0 (zero) ou 1 (um) A informação e sua representação � A razão pela qual os computadores usam o sistema binário (base 2) é porque isso torna mais fácil a implementação da tecnologia eletrônica atual. � Seria possível construir computadores que operassem na base decimal (base 10) que estamos acostumados, dígitos de 0 a 9. O problema é que esses computadores seriam extremamente caros . A informação e sua representação � BIT � Número binário no computador: “Binary digIT” � É a menor unidade de informação � Um bit pode representar apenas 2 símbolos (0 e 1) “A representação de toda e qualquer informação em um computador é, em seu nível mais elementar, constituído por conjuntos de bits.” A informação e sua representação • Um número de n bits pode representar 2n valores distintos A informação e sua representação � BYTE (BInary TErm) � Grupo ordenado de 8 bits � Unidade de memória usada para representar um caractere � Todas as letras, números e outros caracteres são codificados e decodificados através dos bytes que os representam 1 byte = 8 bits = 1 caractere (letra, número ou símbolo) A informação e sua representação � Tabela ASCII � Para referenciar grandes volumes de dados, unidades foram criadas. Estas unidades representam grandes agrupamentos de bits: A informação e sua representação � Pode-se dizer que: � 1 Kilobyte é aproximadamente MIL bytes � 1 Megabyte é aproximadamente um MILHÃO de bytes � 1 Gigabyte é aproximadamente um BILHÃO de bytes � E assim por diante. � Quando alguém diz: “Este computador tem memória de 2 giga, isto é, 2 gigabytes que significa aproximadamente 2 bilhões de bytes, 2.147.483.648 bytes exatamente.” A informação e sua representação Sistema de Numeração � Sistema de Numeração � Conjunto de símbolos utilizados para representação de quantidades � Cada sistema de numeração é um método diferente de representar quantidades � As quantidades em si não mudam; mudam apenas os símbolos usados para representá-las Sistemas de numeração � Existem vários sistemas numéricos, dentre os quais se destacam o decimal, binário, octal e hexadecimal. � O sistema decimal é utilizado no dia a dia � Possui dez algarismos com os quais podemos formar qualquer número. Sistema de Numeração Sistema Binário – Base 2 � Utiliza dois símbolos para representar quantidades: � 0 e 1 � Cada algarismo é chamado de bit � Exemplo: 1012 � Caractere mais à esquerda - Most-Significative-Bit - “MSB”. � Caractere mais à direita - Least-Significative-Bit - “LSB”. Sistema binário – Base 2 DECIMAL BINÁRIO 0 0 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 Conversão de decimal para binário � Se tivermos um número grande no sistema binário fica difícil perceber a quantidade que ele representa � Surge a necessidade de conversão!!!! Conversão de Decimal para Binário • Divida o número por 2 até que o quociente seja 0 (zero). • O número binário correspondente será formado pelos restos das divisões, sendo o resto da última divisão o dígito binário mais à esquerda (bit mais significativo): • Resultado: (23)10 = (10111)2 Conversão de Decimal para Binário Conversão de decimal para binário � Exercício: transformar o número 400�� em binário. Conversão de decimal para binário � Exercício: transformar o número 400�� em binário. Conversão do sistema binário para decimal � Regra básica de formação de um número � Soma de cada algarismo correspondente multiplicado pela base elevada por um índice conforme o posicionamento do algarismo no número � … X × 10 + � × 10 � + × 10 � = ��������� Conversão de binário para decimal � Ex: 101 � 1 × 2 + 0 × 2 � + 1 × 2 � = � 1 × 4 + 0 × 2 + 1 × 1 = � 4 + 0 + 1= 5 � O número 101 na base 2 é igual ao número 5 na base 10 � 101 = 5�� Mais significativo (MSB) Menos significativo (LSB) Conversão de binário para decimal � Exercício: converter o número 01110 em decimal Conversão de binário para decimal � Exercício: converter o número 01110 em decimal � 0 à esquerda é um algarismo não significativo � 01110 = 1110 � 1 × 2 � + 1 × 2 + 1 × 2 � + 0 × 2 � = � 1 × 8 + 1 × 4 + 1 × 2 + 0 × 1 = � 8 + 4 + 2 + 0 = 14 � 1110 = 14�� � Converta o número binário 10111 para decimal Conversão de binário para decimal � (10111)2 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20 � 16 + 0 + 4 + 2 + 1 � 2310 Conversão de binário para decimal � Converta o número binário 1111101 para decimal Conversão de binário para decimal (1111101)2 = 1x26 + 1x25 + 1x24 + 1x23 + 1x22 + 0x21 + 1x20 = (125)10