Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Fundamentos de Programação, Notas de estudo de Informática

Fundamentos de Programação

Tipologia: Notas de estudo

2012

Compartilhado em 05/04/2012

alessandro-rezende-12
alessandro-rezende-12 🇧🇷

4.5

(2)

15 documentos

1 / 48

Toggle sidebar

Documentos relacionados


Pré-visualização parcial do texto

Baixe Fundamentos de Programação e outras Notas de estudo em PDF para Informática, somente na Docsity! COMPUTAÇÃO I Prof. Fernando L. B. Ribeiro TECNOLOGIA QUE PRECEDEU OS COMPUTADORES DIGITAIS • ÁBACO CHINÊS - O Ábaco Chinês, criado no século XIV e ainda hoje utilizado, é um dispositivo manual para ADIÇÃO, SUBTRAÇÃO, MULTIPLICAÇÃO e DIVISÃO. http://qi-journal.com/culturearticles/abacusindex.html PRIMEIRO COMPUTADOR ELETRÔNICO DIGITAL • Batizado de ENIAC (electronic numerical integrator and computer), o primeiro computador foi construído nos Estados Unidos em 1945 (University of Pennsylvania) para cálculos balísticos na segunda guerra mundial. • O ENIAC possuía 19.000 válvulas e pesava 19 toneladas. Os principais componentes do ENIAC eram: – Acumulador (unidade aritmética) – Tabela de funções – Unidade programadora (para armazenar as instruções) – Capacidade de armazenar 20 números de 10 dígitos – 1 ciclo por cada 10-5 s = 100 KHz = 0.0001 GHz – Leitora de cartões – Gravador de cartões CRONOLOGIA • 1945 – ENIAC. • 1947/48 – Invenção do transistor. • 1951 - UNIVAC, primeiro computador comercial. • 1953 - IBM 701 EDPM, primeiro computador IBM. • 1954 – FORTRAN (Formula Translator), primeira linguagem de programação de alto nível. • 1955 – ERMA, primeiro computador desenvolvido para sistemas bancários (Bank of America). AQUITETURA DE VON NEUMANN • Johann von Neumann (1907-1957), matemático húngaro, estabeleceu em 1945 os princípios de operação de um computador eletrônico digital. Estes princípios ficaram conhecidos como arquitetura de Von Neumann e são ainda hoje as bases de operação dos computadores mais modernos. A Arquitetura de Von Neumann baseia-se em três componentes principais: – Memória – Unidade de Controle – Unidade de Processamento • Na memória são armazenados dados e programas (conjunto de instruções) que realizam determinados cálculos ou tarefas. • A Unidade de Controle é um circuito lógico responsável pelo funcionamento da máquina, controlando o fluxo de instruções. Este funcionamento realiza- se em ciclos. • A unidade de processamento realiza os cálculos de acordo com as instruções. Esta unidade conte basicamente registradores e uma Unidade Lógico-Aritmética (ALU), onde são executadas as operações aritméticas. Os registradores são: – Registrador IC (Instruction Counter) - contém o endereço na memória com a próxima instrução a ser executada. – Registrador IR (Instuction Register) - contém a próxima instrução a ser executada. – Registrador MAR (Memory Address Register) - contém o endereço da posição da memória a ser lida ou escrita. – Registrador MBR (Memory Buffer Register) - contém o dado a ser lido ou escrito na memória. – Registradores de propósito geral – usados para armazenar resultados intermediários. Arquitetura de Von Neumann – Registrador IC (Instruction Counter) - contém o endereço na memória com a próxima instrução a ser executada. – Registrador IR (Instuction Register) - contém a próxima instrução a ser executada. – Registrador MAR (Memory Address Register) - contém o endereço da posição da memória a ser lida ou escrita. – Registrador MBR (Memory Buffer Register) - contém o dado a ser lido ou escrito na memória. – Registradores de propósito geral – usados para armazenar resultados intermediários. Memória Unidade de Controle MAR MBR IR IC Registrador A Registrador B Registrador C ALU CPU Unidade de Controle Unidade Lógico Aritmética M em ó ri a R A M Bios Periférico Periférico InterfaceInterface SISTEMAS DE REPRESENTAÇÃO DE NÚMEROS Representa-se um número inteiro N, na base β, pela expressão ou equivalentemente, Os números reais são compostos por uma parte inteira e uma parte fracionária: ai, bj – dígitos da base β 0 0 1 1 1 1 ...... β+β++β+β= − − aaaaN n n n n ( ) β−= 011 ,,...,, aaaaN nn ( )10 <<+= FFI RRRR k kF bbbR −−− β++β+β= ......22 1 1 • Sistema Decimal No sistema decimal, β = 10 e ai e bj assumem os valores inteiros correspondentes aos 10 dígitos: ai , bj = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) Exemplos: (347)10 = 3 x 102 + 4 x 101 + 7 x 100 (0.25)10 = 2 x 10-1 + 5 x 10-2 (1.823)10 = 1 x 100 + 8 x 10-1 + 2 x 10-2 +3 x 10-3 Sistema Hexadecimal No sistema hexadecimal, β = 16, ai e bj os valores inteiros correspondentes aos 16 dígitos: ai , bj = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) Como no sistema hexadecimal são necessários 16 algarismos para representar um número nessa base e a base decimal só possui dez, torna-se necessário recorrer às letras A, B, C, D, E, F, o que não é obrigatório, pode-se utilizar outros símbolos. Exemplos: 10 012 16 )300(16C162161)C12( =×+×+×= 10 01 16 )191(16F16B)BF( =×+×= • Conversão de números inteiros, do sistema decimal para o sistema binário Como foi visto anteriormente, para converter um número do sistema binário para o sistema decimal basta efetuar as operações de multiplicação e adição da representação binária no sistema decimal. Para converter um número do sistema decimal para o sistema o sistema binário deve-se empregar o procedimento inverso. Por exemplo, o número 417 no sistema decimal tem como representação binária: Dividindo os dois lados da igualdade acima obtém-se: ⇒ 0 0 1 1 1 110 22......221)417( ×+×++×+×= − − aaa n n n 1 0 0 1 2 1 1 22......221 2 417 −− − − ×+×++×+×= aaa nn n 2 a 208 2 417 0+= 10 =a Dividindo por 2 sucessivamente: 1 1 2 1 1 10 2......221)208( ×++×+×= − − − aa nn n x x/2 resto 417 208 a0 = 1 208 104 a1 = 0 13 6 a5 = 1 6 3 a6 = 0 3 1 a7 = 1 1 0 a8 = 1 104 52 a2 = 0 52 26 a3 = 0 26 13 a4 = 0 0 0 210 )110100001()417( = Multiplicando sucessivamente por 2 a parte fracionária: x 2x 0.762 1.524 a1 = 1 0.524 1.048 a2 = 1 0.384 0.768 a6 = 0 0.768 1.536 a7 = 1 0.536 0.048 0.096 a3 = 0 0.096 0.192 a4 = 0 0.192 0.384 a5 = 0 210 ......)1000110.0()762.0( = Como pode-se observar neste exemplo, um número fracionário com representação finita de dígitos no sistema decimal pode ter uma representação infinita no sistema binário. Exemplos: .......2a2a)5(. 22 1 110 +×+×= −− x 2x 0.5 1.0 a1 = 1 0.0 0.0 a2 = 0 210 )1.0()5(. = .......2a2a)125(. 22 1 110 +×+×= −− x 2x 0.125 0.25 a1 = 0 0.25 0.50 a2 = 0 0.0 0.0 a4 = 0 0.5 1.0 a3 = 1 210 )001.0()125(. = Subtração: A subtração, por sua vez, é a operação inversa da adição: 0 - 0 = 0 1 - 0 = 1 1 - 1 = 0 0 - 1 = 1 com o empréstimo de um Exemplos : Decimal Binário Decimal Binário 9 1001 16 10000 - 5 - 101 - 3 - 11 4 100 13 1101 Multiplicação : A tabela para multiplicação em binário é muito pequena, com apenas 4 regras: 0 X 0 = 0 1 X 0 = 0 0 x 1 = 0 1 x 1 = 1 Exemplos: Decimal Binário 1111000 1100 0000 1100 0000 1010 1100 × 120 10 12 × Divisão : A divisão em binário é muito simples. Como no sistema decimal (ou em qualquer outro), a divisão por zero não tem significado. 0 / 1 = 0 1 / 1 = 1 Exemplos: Decimal Binário 100 00 110 110001104 246 LÓGICA DE PROGRAMAÇÃO • Algoritmos Um algoritmo é a descrição sistemática de um método de solução de um problema qualquer. • Fluxograma Fluxograma é a descrição simbólica de um algoritmo, indicando a sequência (ou fluxo) com que as operações são executadas. Os três principais componentes de um fluxograma são: Indicador de fluxo sequencial: Indicador de fluxo condicional: Entrada condição Passo BPasso A F V Saída Indicador de fluxo repetitivo: Entrada condição Procedimento VF Saída A estrutura de repetição, por sua vez, pode ser representada através de: Enquanto ( condição) faça ... Fim de Enquanto Quando o número exato de repetições é conhecido, utiliza-se a estrutura de repetição Para: Para (contador de 1 até número de “loops”) faça ... Fim de Para O exemplo da divisão de dois números pode ser escrito em pseudo linguagem tal como se segue: Programa divisão; a, b, r : reais; Imprima “Entre com dois números” ; Ler a, b ; Se b <> 0 então faça r = a/b ; Se não então faça Imprima “ Divisão por zero !” ; Fim de Se Fim Exemplo 1: Escrever um algoritmo que gere os primeiros 25 termos da sequência de Fibonacci (1, 1, 2, 3, 5, 8, 13,...). Programa Fibonacci; Inteiro n, a, b, s; a = 1; b = 1; n = 2; Imprima a, b; Enquanto (n <= 25) faça s = a + b; a = b; b = s; Imprima s; n = n +1; Fim de Enquanto Fim. Programa mmc; Inteiro a, b, resto, mdc, mmc; Imprima “Entre com dois números !”; Ler a, b; Enquanto (b <> 0) faça resto = (a mod b); a = b; b = resto; Fim de Enquanto mdc = a; mmc = ( a * b)/ (mdc) ; Imprima “O MMC de”,a,”e “, b, “é :”, mmc; Fim. Exemplo 3: Escrever um algoritmo que calcule o fatorial de um número. Lembrando que por definição 0! = 1. Programa Fatorial; Inteiro n, fat; Imprima “Informe um número :”; Ler n; fat = 1; Enquanto (n > 1) faça fat = fat * n ; n = n – 1 ; Fim de Enquanto Imprima “O fatorial de “,n, “é :”, fat; Fim Exemplo 4: Dado um número inteiro n, diferente de zero, calcular a soma dos números pares e a soma dos números ímpares ≤ n. Programa contador; Inteiro n, i, somap, somai; n = 0; Enquanto (n = 0) então faça Imprima “Entre com um número, diferente de zero !” ; Ler n; Fim de Enquanto Somap = 0 ; Somai = 0; Para i = 1 até n faça Se ( i mod 2) = 0 então faça somap = somap + i; se não então faça
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved