Professional Documents
Culture Documents
Como fazer a converso entre o sistema decimal e o sistema utilizado num computador?
DECIMAL
BINRIO
HEXADECIMAL
Base ou raiz de um sistema de numerao: o nmero de algarismos distintos usados nesse sistema de numerao. Exemplo: o sistema decimal possui base 10, isto , usa 10 algarismos distintos.
o nome dado notao usada por alguns sistemas numricos, onde cada algarismo tem, alm do seu valor absoluto, um valor de posio dentro de cada nmero desse sistema em que ele aparece. Por exemplo, no sistema decimal: O valor absoluto 2 no nmero 2000 representa uma grandeza diferente do que 2 em 20.
5
O sistema de numerao romano constitudo de um conjunto N de 7 algarismos diferentes, cada um representando um valor fixo, independentemente de sua posio relativa no nmero:
N = (I, V, X, L, C, D, M) Indicando, respectivamente, os valores: 1, 5, 10, 50, 100, 500 e 1000 Observe que neste sistema no h representao para o zero. Tente multiplicar XIII x XVII
6
Possui 10 algarismos distintos (algarismos arbicos = 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9) e usa notao posicional. Ex.: 7 = 7 x 100 35 = 30 + 5 = 3 x 101 + 5 x 100 81,508 = 8 x 101 + 1 x 100 + 5 x 10-1 + 0 x 10-2 + 8 x 10-3 Obs.: Na notao posicional (qualquer que seja a base) o primeiro algarismo a esquerda da vrgula, representa uma potncia da base com expoente igual a 0 (zero) e esse expoente inteiro e crescente para a esquerda.
7
0 1 2 3 4 5 6 7 8 9 10
Zera e vai-um
00 01 10 11
Zera e vai-um
Decimal 0 1 2 3 4 5 6 7 8 9 10
Problema: como converter 2358(10) para a base 2? E 100101 (2) para a base 10?
10
Converso da base b (qualquer) para decimal: Para converter um nmero na base b em decimal, basta somar os produtos dos algarismos pelas potncias da base b que eles representam. Ex.: Converter os nmeros abaixo para a base 10 (10)16 1 x 161 + 0 x 160 = (16)10 (F30A)16 15 x 163 + 3 x 162 + 0 x 161 + 10 x 160 = (62218)10 (1101)2 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = (13)10 (10001111)2 27 + 23 + 22 + 21 + 20 = (143)10
12
Converso de decimal para a base b (qualquer): Para converter um nmero decimal para a base b, devem ser feitas divises inteiras sucessivas por b at que se encontre quociente 0 (zero). O nmero correspondente na base b ser formado pelos restos das divises, da ltima at a primeira diviso, nessa ordem. Ex.: Converter o nmero decimal abaixo para hexadecimal 45286 16 6 2830 16 14 176 16 E 0 11 16 11 0 (45286)10 (B0E6)16 B
13
18 (10) = 10010(2)
14
Como 16 potncia de 2 (24 = 16), nesta converso, cada algarismo hexadecimal d origem a quatro algarismos binrios. Tabela de converso: Hexadecimal 1 2 4 8 Valor da posio 0 0 0 1 8 0 0 1 0 4 Binrio 0 1 0 0 2 1 0 0 0 1
15
(9)16 (1 0 0 1)2 ( isto , 1 + 8 = 9) (D)16 (1 1 0 1)2 (13A)16 ( 0 0 0 1 | 0 0 1 1 | 1 0 1 0 )2 (FB09)16 ( 1 1 1 1 1 0 1 1 0 0 0 0 1 0 0 1)2 Binrio em hexadecimal:
8 1
(2DB5)16 (89BF)16
16
16
2
DECIMAL BINRIO
HEXADECIMAL
x16n
x2n
tabela
17
18
Peopleware (usurio)
Software (programas)
Hardware (mquina)
Hardware: Corresponde parte material, aos componentes fsicos do sistema. o computador propriamente dito. Software: Conjunto de programas (instrues arranjadas logicamente) e dados.
19
Unidade de Controle
Memria Principal
Memria Secundria
Interfaces
Unidades de Entrada
Unidades de Sada
Perifricos
20
Tambm chamada de microprocessador ou unidade de processamento central (UPC ou CPU) e responsvel pelo gerenciamento de todas as funes do sistema. A CPU distingue somente dois estados fsicos, representados pelos nmeros 0 e 1 dgitos binrios. dividida em: Unidade Aritmtica e Lgica: encarregada de realizar operaes aritmticas e lgicas elementares. Unidade de Controle: encarregada de coordenar os diversos componentes.
21
a unidade encarregada de armazenar os programas e dados ( recebidos das unidades de entrada) para imediato processamento pela CPU. Aps a execuo de cada instruo do programa, a CPU armazena o resultado gerado na memria principal.
CPU Memria Principal
A memria considerada um meio temporrio de armazenamento de dados, que permanecem ali somente durante o tempo em que estiverem sendo processados.
22
Bit ( Binary DigiT dgito binrio) Unidade de Informao, tem somente os valores 0 ou 1 ; Byte ( BinarY Term termo binrio) Conjunto de 8 bits, com o qual pode-se representar os nmeros, as letras, os sinais de pontuao, etc... Palavra (Word) a quantidade de bits que a CPU processa por vez.
23
Palavra de: 8 bits = 1 byte = 1 caractere 16 bits = 2 bytes = 2 caracteres 32 bits = 4 bytes = 4 caracteres 64 bits = 8 bytes = 8 caracteres 128 bits = 16 bytes = 16 caracteres
Exemplo: se a palavra (texto) TRADUTOR tiver sido transferida da memria para uma CPU de: 8 bits <= este precisar de 8 operaes para process-la; 16 bits <= este precisar de 4 operaes para process-la; 32 bits <= este precisar de 2 operaes para process-la; 64 bits <= este precisar de uma operao para process-la;
24
Exemplo: Qual a quantidade exata de bits que um DISQUETE de 1,44 MB possui? 1,44 MB = 1,44 * 220 * 8 = 12079595,52 bits
25
O processador acessa o contedo de um byte a partir do endereo desse byte. Por que 1 KB = 210 bytes e no 103 bytes? ou Quantos bits so necessrios para representar um dos endereos da memria acima?
26
A memria secundria pode ser composta por vrios dispositivos capazes de ampliar a capacidade de armazenamento da memria principal. Eles podem armazenar grandes quantidades de dados e programas. A memria secundria um tipo de memria no voltil, teoricamente permanente e mais lenta.
CPU Memria Principal Memria Secundria
Outra funo da memria secundria oferecer uma expanso virtual da memria principal Memria Virtual.
Memria Virtual Memria Principal Memria Secundria
27
Representa o meio de comunicao entre duas partes do sistema. Exemplo: disco e computador, teclado e computador, computador e impressora. Existem dois tipos de interface: - serial: os dados so enviados um bit de cada vez (cabos com um nico fio); - paralela: um byte de cada vez (cabos com 8 fios);
28
Para que um algoritmo possa ser executado pelo computador, necessrio que ele seja programado, isto , que ele seja transcrito para uma linguagem que o computador possa entender , direta ou indiretamente.
29
Os computadores s podem executar diretamente os algoritmos expressos em linguagem de mquina (que um conjunto de instrues capazes de ativar diretamente os dispositivos eletrnicos do computador). Um tradutor um programa que traduz um algoritmo que est escrito em uma determinada linguagem de programao em linguagem de mquina.
Programa Fonte
Tradutor
Programa Objeto
30
O processo de traduo pode ser feito por: Compilao: L, analisa e traduz todos os comandos do programa fonte, criando o programa objeto. Interpretao: Traduz ou interpreta cada comando ao execut-lo.
Linguagem de Alto Nvel Programa Fonte Interpretador Tradutor Compilador Linguagem de Mquina Programa Objeto Execuo Execuo de todo o programa Executa um comando e volta
31
Esta instruo ordena que o contedo do endereo 0A3516 da memria seja somado (1016) ao acumulador (registrador especial usado para acumular resultados) e que o resultado fique guardado no acumulador.
32
um programa especial que controla e coordena todas as operaes bsicas de um computador. Ele controla a execuo de outros programas e pode proporcionar funes como: controle de entrada e sada de dados; alocao de memria; gerenciamento de dados, etc ... Os programas que compem os SOs so, na maioria dos casos, escritos em linguagens de nvel mais baixo, fazendo com que eles sejam mais rpidos e eficientes no gerenciamento de recursos do hardware.
35
Os SOs podem ser classificados em: Monousurio: somente um usurio pode processar dados por vez na CPU; Multiusurio: vrios usurios podem acessar ao mesmo tempo a CPU de um sistema; Monotarefa: somente um programa de cada vez executado pela CPU. Multitarefa: vrios programas podem ser executados de maneira concorrente pela CPU (eles concorrem pela mesma CPU).
36
O uso de algoritmos surgiu como uma forma de indicar o caminho para a soluo dos mais variados problemas. Dado um problema, as principais funes de um programador so:
Entender perfeitamente o problema Escolher mtodos para sua soluo Desenvolver um algoritmo baseado nos mtodos Codificar o algoritmo na linguagem de programao disponvel
37
A parte mais importante da tarefa de programar a construo de algoritmos. Segundo Niklaus Wirth:
Programao a arte de construir e formular algoritmos de uma forma sistemtica Algoritmos + Estruturas de Dados = Programas
38
Ao: um evento que ocorre num perodo de tempo finito, estabelecendo um efeito intencionado e bem definido.
Ex.: Colocar o livro em cima da mesa ; Atribuir o valor 3,1416 em uma varivel ;
Observao: toda ao deve ser executvel em um tempo finito (do instante t0 at o instante t1);
O que realmente interessa o efeito produzido na execuo da ao; Pode-se descrever o efeito de uma ao comparando o estado no instante t0 com o estado no instante t1.
40
Estado de um dado sistema de objetos o conjunto de propriedades desses objetos que so relevantes em uma situao considerada. Ex.: Livro na estante ou sobre a mesa ;
Conjunto de valores das variveis do programa num certo instante da execuo ;
41
Processo: um evento considerado como uma seqncia temporal de (sub) aes, cujo efeito total igual ao efeito acumulado dessas (sub) aes. Observao: Pode-se, geralmente, considerar um mesmo evento como uma ao ou como um processo, dependendo se o interesse est em simplesmente no efeito total (da ao) ou se interessa um ou mais estados intermedirios (do processo). Em outras palavras, se h interesse, uma ao pode ser geralmente detalhada em um processo.
42
Padro de Comportamento : em todo o evento pode-se reconhecer um padro de comportamento, isto , cada vez que o padro de comportamento seguido, o evento ocorre.
Ex.: seja a seguinte descrio: Uma dona-de-casa descasca as batatas para o jantar traz a cesta com batatas do poro ; traz a panela do armrio ; descasca as batatas ; devolve a cesta ao poro ;
43
Essa descrio pode ser usada para descrever eventos distintos (dias diferentes, batatas diferentes etc.). Isso s possvel porque os eventos possuem o mesmo padro de comportamento. O efeito de um evento fica totalmente determinado pelo padro de comportamento e eventualmente pelo estado inicial.
44
Algoritmo: a descrio de um padro de comportamento, expressado em termos de um repertrio bem definido e finito de aes primitivas que, com certeza, podem ser executadas. Um algoritmo possui carter imperativo, razo pela qual uma ao em um algoritmo chamada de comando.
Ex.: algoritmo para descascar batatas para o jantar: traga a cesta com batatas do poro ; traga a panela do armrio ; descasque as batatas ; devolva a cesta ao poro ;
45
A restrio a um nmero limitado de estruturas de controle (de execuo dos comandos do algoritmo) permite reduzir o abismo existente entre o aspecto esttico e o dinmico do algoritmo. S so usadas trs estruturas de controle:
Seqncia Simples Alternativa Repetio
47
A generalizao do algoritmo para descascar batatas para o jantar pode ser: traga a cesta com batatas do poro ; traga a panela do armrio ; se saia clara ento coloque avental ; enquanto nmero de batatas insuficiente faa descasque uma batata ; devolva a cesta ao poro ; Um algoritmo deve ser determinstico, isto , dadas as mesmas condies iniciais, deve produzir em sua execuo, os mesmos resultados. S interessam os algoritmos executveis em tempo finito.
48
49
Nesta forma de representao os algoritmos so expressos diretamente em linguagem natural. Como por exemplo, tm-se os algoritmos seguintes:
Troca de um pneu furado:
Afrouxar ligeiramente as porcas Suspender o carro Retirar as porcas e o pneu Colocar o pneu reserva Apertar as porcas Abaixar o carro Dar o aperto final nas porcas
50
Obs:Esta representao pouco usada na prtica porque o uso de linguagem natural muitas vezes d oportunidade a ms interpretaes, ambigidades e imprecises.
51
Representao grfica de algoritmos onde formas geomtricas diferentes implicam aes (instrues, comandos) distintos. Tal propriedade facilita o entendimento das idias contidas nos algoritmos.
52
= Incio e final do fluxograma . = Operao de entrada de dados = Operao de sada de dados em impressora = Operao de sada de dados em vdeo = Operaes de atribuio
53
= Deciso
= Conector utilizado quando preciso particionar o diagrama, colocando uma letra ou nmero no smbolo para indentificar os pares da conexo
54
A figura a seguir mostra a representao do algoritmo de clculo da mdia de um aluno sob a forma de um fluxograma.
55
O diagrama foi criado por Ned Chapin Substituir o fluxograma tradicional por um diagrama que apresenta uma viso hierrquica e estruturada da lgica do programa
56
A figura abaixo apresenta um exemplo do tipo de diagrama de Chapin para o algoritmo de clculo da mdia de um aluno.
57
Esta forma de representao de algoritmos, tambm conhecida como pseudocdigo, portugus estruturado ou portugol, bastante rica em detalhes e, por assemelhar-se bastante forma em que os programas so escritos, encontra muita aceitao, sendo portanto a forma de representao de algoritmos que ser adotada nesta disciplina. Esta representao suficientemente geral para permitir que a traduo de um algoritmo nela representado para uma linguagem de programao especfica seja praticamente direta.
58
59
61
Total de Crditos: 2
Teste de Verificao de Conhecimento (TVC): 3 Mdia: 60
O que ? a prova que voc poder requerer no caso de perder uma das avaliaes. Pode substituir uma prova j realizada? No. A prova s substitui uma avaliao que o aluno tenha faltado. No h provas substitutivas em Algoritmos / Laboratrio de Programao I.
64
Caso 1
O aluno que perder uma das avaliaes tem direito, sem a necessidade de justificativa, a fazer segunda chamada ao final do perodo letivo, sobre contedo acumulado.
Caso 2
O professor responsvel pela disciplina poder conceder segunda chamada ao aluno ausente em quaisquer das avaliaes de conhecimento, desde que o mesmo apresente requerimento, no prazo mximo de dois dias teis, com a devida justificativa de acordo com a legislao em vigor. Sendo julgada procedente a justificativa, a segunda chamada ser designada pelo Professor, e versar sobre os mesmos tpicos da avaliao no realizada. Do indeferimento caber o recurso ao chefe de Departamento, no prazo de dois dias teis. Como proceder?
Onde: Secretaria do DCC das 14h as 17h Quando: At dois dias teis aps a aplicao da prova O que: Entregar requerimento preenchido e anexar justificativa. Resultado do requerimento: Ser divulgado no site da disciplina Prova: Data e hora sero divulgados aps o processamento dos requerimentos.
65
Bibliografia Bsica:
GUIMARES, A. M. Algoritmos e estruturas de dados. Rio de Janeiro: LTC, 1994. KERNIGHAN, BRIAN W., RITCHIE, DENNIS M. C: A linguagem de programao padro. Rio de Janeiro: Campus, 1989.
Bibliografia Complementar:
EVARISTO, JAIME. Aprendendo a Programar Programando na Linguagem C. Edio Digital.
66
Representar uma sequncia de aes a serem realizadas para obter uma resposta de um determinado problema usando uma linguagem de programao Base Terica: Disciplina de Algoritmos
67
um conjunto de regras sintticas e semnticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados sero armazenados ou transmitidos e quais aes devem ser tomadas sob vrias circunstncias.
68
69
Linguagem de programao que ser utilizada durante a disciplina: linguagem C As bases da linguagem C foram desenvolvidas entre os anos 1969-1973, em paralelo com o desenvolvimento do sistema operacional Unix. O perodo mais criativo ocorreu em 1972 http://cm.bell-labs.com/cm/cs/who/dmr/chist.html
70
A linguagem C amplamente utilizada, principalmente no meio acadmico O sucesso do sistema operacional Unix auxiliou na popularizao do C A linguagem C considerada simples
71
Sistema instalado nos computadores: Linux Criado inicialmente como um hobby pelo estudante Linus Torvalds, na Universidade de Helsinki (Finlndia). Linus tinha um interesse especial pelo Sistema Operacional Minix, baseado no sistema Unix
72
1991 : verso 0.02 1994 : verso 1.0 O cdigo do ncleo (kernel) aberto: gratuito e disponvel a todos Com base no kernel diversas distribuies podem ser encontradas: Ubuntu, Debian, Mandriva, Fedora ... http://www.linux.org/
73
74
Unidades devem se comunicar entre si. Ex.: Teclado -> Memria -> CPU Comunicao feita atravs de uma linguagem
75
Linguagem para comunicao interna Linguagem de mquina Possui apenas dois smbolos: zero e um (bit binary digit) Palavras da linguagem de mquina so sequncias de bits
76
Programa = conjunto de instrues que podem ser executadas pelo computador, de tal forma que a execuo de subconjuntos destas instrues permitem a realizao de aes mais genricas.
77
Desenvolvimento de um programa requer a utilizao de um raciocnio mpar em relao aos raciocnios utilizados na soluo de problemas de outros campos do saber Para resolver um determinado problema necessrio que encontremos uma sequncia de instrues cuja execuo resulte na soluo da questo Programa = Algoritmo que pode ser executado em um computador Lgica de Programao = conjunto de raciocnios utilizados para o desenvolvimento de algoritmos (e, portanto, de programas)
78
Ambiente Integrado de Desenvolvimento: programa de computador que rene caractersticas e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este processo. Editor, compilador, depurador, etc.
79
80
81
Criando um Programa.
82
83
84
85
86
87
88
89
A gerao do programa executvel a partir do programa fonte obedece a uma seqncia de operaes.
Editor ( mdulo fonte em C) Compilador ( gera o arquivo objeto) Lincador ( gera o executvel)
90
Editor ( mdulo fonte em C) Ex.: first.c Compilador ( gera o arquivo objeto) Ex.: first.o Lincador ( gera o executvel) Ex.: first.exe
91
Toda linguagem de programao deve seguir uma sintaxe. A sintaxe so regras detalhadas para cada construo vlida. Estas regras esto relacionadas com os tipos, as declaraes, as funes e as expresses.
Os tipos definem as propriedades dos dados manipulados em um programa. As declaraes expressam as partes do programa, podendo dar significado a um identificador, alocar memria, definir contedo inicial, definir funes. As funes especificam as aes que um programa executa quando roda.
92
Todo programa em C deve conter uma funo identificada por main (cuja traduo principal). Esta ser sempre a primeira funo do programa a ser executada
main( ) { }
93