Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos DCC 119 Introdução e Conceitos Básicos 2 � Sistemas de Numeração � Sistemas Computacionais � Estrutura de um Computador Digital � Sistemas Operacionais � Algoritmo – Introdução � Formas de representação de algoritmos Sumário 3 Sistemas de Numeração Como fazer a conversão entre o sistema decimal e o sistema utilizado num computador? HEXADECIMAL DECIMAL BINÁRIO 4 Base � Base ou raiz de um sistema de numeração: é o número de algarismos distintos usados nesse sistema de numeração. � Exemplo: o sistema decimal possui base 10, isto é, usa 10 algarismos distintos. 5 Notação Posicional � É o nome dado à notação usada por alguns sistemas numéricos, onde cada algarismo tem, além do seu valor absoluto, um valor de posição dentro de cada número desse sistema em que ele aparece. � Por exemplo, no sistema decimal: O valor absoluto 2 no número 2000 representa uma grandeza diferente do que 2 em 20. 6 Exemplo de Sistema de Numeração que não usa Notação Posicional � O sistema de numeração romano é constituído de um conjunto N de 7 algarismos diferentes, cada um representando um valor fixo, independentemente de sua posição relativa no número: � N = (I, V, X, L, C, D, M) � Indicando, respectivamente, os valores: 1, 5, 10, 50, 100, 500 e 1000 � Observe que neste sistema não há representação para o zero. � Tente multiplicar XIII x XVII 7 Sistema Decimal ou de Base 10 Possui 10 algarismos distintos (algarismos arábicos = 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9) e usa notação 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 notação posicional (qualquer que seja a base) o primeiro algarismo a esquerda da vírgula, representa uma potência da base com expoente igual a 0 (zero) e esse expoente é inteiro e crescente para a esquerda. 8 Sistema Decimal: Como Funciona 0 1 2 3 4 5 6 7 8 9 10 Zera e vai-um 9 Sistema Binário ou de Base 2 00 01 10 Zera e vai-um 11 Usa notação posicional e possui dois algarismos distintos: 0 e 1. 10 Conversão Decimal - Binário Problema: como converter 2358(10) para a base 2? E 100101 (2) para a base 10? Decimal Binário 0 0 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 10 1010 11 Sistema Hexadecimal ou de Base 16 Usa notação posicional e possui 16 algarismos distintos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F. Decimal Hexadecimal Decimal Hexadecimal 0 0 8 8 1 1 9 9 2 2 10 A 3 3 11 B 4 4 12 C 5 5 13 D 6 6 14 E 7 7 15 F 12 Conversão de Base Conversão da base b (qualquer) para decimal: Para converter um número na base b em decimal, basta somar os produtos dos algarismos pelas potências da base b que eles representam. Ex.: Converter os números 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 13 Conversão de Base Conversão de decimal para a base b (qualquer): Para converter um número decimal para a base b, devem ser feitas divisões inteiras sucessivas por b até que se encontre quociente 0 (zero). O número correspondente na base b será formado pelos restos das divisões, da última até a primeira divisão, nessa ordem. Ex.: Converter o número decimal abaixo para hexadecimal 45286 16 6 2830 16 14 176 16 E 0 11 16 11 0 B (45286)10 ≡ (B0E6)16 14 Conversão de Base 18 (10) = 10010(2) 18 2 0 9 2 1 4 2 0 2 2 0 1 2 1 0 Converter os números decimais abaixo para binários 15 Conversão Binário ↔↔↔↔ Hexadecimal Como 16 é potência de 2 (24 = 16), nesta conversão, cada algarismo hexadecimal dá origem a quatro algarismos binários. Tabela de conversão: Hexadecimal Binário 1 0 0 0 1 2 0 0 1 0 4 0 1 0 0 8 1 0 0 0 Valor da posição 8 4 2 1 16 Conversão Binário ↔↔↔↔ Hexadecimal Ex.: Hexadecimal em Binário: 8 4 2 1 (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 Binário em hexadecimal: 8 1 (1 0 0 1)2 ≡ (9)16 (0 0 1 0 | 1 1 0 1 | 1 0 1 1 | 0 1 0 1)2 ≡ (2DB5)16 (1 0 0 0 | 1 0 0 1 | 1 0 1 1 | 1 1 1 1)2 ≡ (89BF)16 17 Resumo DECIMAL ÷2 x2n tabela x16n BINÁRIOHEXADECIMAL ÷16 18 Introdução (Parte II) Sistemas Computacionais DCC119 – Algoritmos 19 Sistemas Computacionais Peopleware (usuário) Software (programas) Hardware (máquina) Hardware: Corresponde à parte material, aos componentes físicos do sistema. É o computador propriamente dito. Software: Conjunto de programas (instruções arranjadas logicamente) e dados. 20 Estrutura de um Computador Digital Unidade Lógica e Aritmética Unidade de Controle Memória Principal Memória Secundária Interfaces Unidade Central de Processamento Unidades de Entrada Unidades de Saída Periféricos 21 Processador Também chamada de microprocessador ou unidade de processamento central (UPC ou CPU) e é responsável pelo gerenciamento de todas as funções do sistema. A CPU distingue somente dois estados físicos, representados pelos números 0 e 1 – dígitos binários. É dividida em: � Unidade Aritmética e Lógica: encarregada de realizar operações aritméticas e lógicas elementares. � Unidade de Controle: encarregada de coordenar os diversos componentes. 22 Memória Principal (RAM – Random Access Memory) É a unidade encarregada de armazenar os programas e dados ( recebidos das unidades de entrada) para imediato processamento pela CPU. Após a execução de cada instrução do programa, a CPU armazena o resultado gerado na memória principal. A memória é considerada um meio temporário de armazenamento de dados, que permanecem ali somente durante o tempo em que estiverem sendo processados. CPU Memória Principal 23 Memória Principal Conceitos: Bit, Byte e Word Bit (“Binary DigiT” – dígito binário) � Unidade de Informação, tem somente os valores “0” ou “1”; Byte (“BinarY Term” – termo binário) � Conjunto de 8 bits, com o qual pode-se representar os números, as letras, os sinais de pontuação, etc... Palavra (Word) � É a quantidade de bits que a CPU processa por vez. 24 CPU ou micro de: Palavra de: 8 bits 8 bits = 1 byte = 1 caractere 16 bits 16 bits = 2 bytes = 2 caracteres 32 bits 32 bits = 4 bytes = 4 caracteres 64 bits 64 bits = 8 bytes = 8 caracteres 128 bits 128 bits = 16 bytes = 16 caracteres Exemplo: se a palavra (texto) TRADUTOR tiver sido transferida da memória para uma CPU de: � 8 bits <= este precisará de 8 operações para processá-la; � 16 bits <= este precisará de 4 operações para processá-la; � 32 bits <= este precisará de 2 operações para processá-la; � 64 bits <= este precisará de uma operação para processá-la; Memória Principal Conceitos: Bit, Byte e Word 25 Memória Principal Unidades de Medida Unidades Usual Informática Kilo (K) 103 210 bytes Mega (M) 106 220 bytes Giga (G) 109 230 bytes Tera (T) 1012 240 bytes 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 26 Memória Principal Organização Representação de uma memória de 1 KB: Endereço Byte 0 1 2 0 1 0 0 0 0 0 1 ... 1023 No byte de endereço 2 está armazenado o código ASCII do caracter “A”. O processador acessa o conteúdo de um byte a partir do endereço desse byte. Por que 1 KB = 210 bytes e não 103 bytes? ou Quantos bits são necessários para representar um dos endereços da memória acima? 27 Memória Secundária A memória secundária pode ser composta por vários dispositivos capazes de ampliar a capacidade de armazenamento da memória principal. Eles podem armazenar grandes quantidades de dados e programas. A memória secundária é um tipo de memória não volátil, teoricamente permanente e mais lenta. Outra função da memória secundária é oferecer uma expansão virtualda memória principal – Memória Virtual. Memória Principal Memória Secundária Memória Virtual CPU Memória Principal Memória Secundária 28 Interface Representa o meio de comunicação entre duas partes do sistema. Exemplo: disco e computador, teclado e computador, computador e impressora. Existem dois tipos de interface: � - serial: os dados são enviados um bit de cada vez (cabos com um único fio); � - paralela: um byte de cada vez (cabos com 8 fios); 29 Linguagens de Programação Para que um algoritmo possa ser executado pelo computador, é necessário que ele seja programado, isto é, que ele seja transcrito para uma linguagem que o computador possa “entender”, direta ou indiretamente. 30 Tradutor Os computadores só podem executar diretamente os algoritmos expressos em linguagem de máquina (que é um conjunto de instruções capazes de ativar diretamente os dispositivos eletrônicos do computador). Um tradutor é um programa que traduz um algoritmo que está escrito em uma determinada linguagem de programação em linguagem de máquina. Programa Fonte Tradutor Programa Objeto Algoritmo ou programa escrito em uma determinada linguagem de programação Algoritmo ou programa traduzido para linguagem de máquina 31 Processo de Tradução O processo de tradução pode ser feito por: � Compilação: Lê, analisa e traduz todos os comandos do programa fonte, criando o programa objeto. � Interpretação: Traduz ou interpreta cada comando ao executá-lo. Programa Fonte Compilador Interpretador Programa Objeto Execução de todo o programa Executa um comando e volta Linguagem de Alto Nível Tradutor Linguagem de Máquina Execução 32 Principais Tipos de Linguagens de Programação � Linguagem de Máquina ( ou Absoluta ): � É a única linguagem que atende ao computador, por satisfazer o seu projeto lógico. � Instruções representadas por códigos binários. � Exemplo de instrução: 0001 0000 0000 1010 0011 0101 1 0 0 A 3 5 Cód. de Operação Campo de Operando Esta instrução ordena que o conteúdo do endereço 0A3516 da memória seja somado (1016) ao acumulador (registrador especial usado para acumular resultados) e que o resultado fique guardado no acumulador. 33 Principais Tipos de Linguagens de Programação � Linguagem Simbólica (de Baixo Nível, de Montagem ou Assembler): � Surgiu afim de simplificar a difícil programação da linguagem de máquina. � Substitui os códigos binários por abreviações de nomes sugestivos que lembram a função da instrução. � Exemplo de instrução: ADD X � ADD ordena que o valor da variável X seja somado ao acumulador e que o resultado fique nele guardado. � X é o nome da variável, criado pelo programador, que representa um endereço da memória (por exemplo 0A3516) que contém armazenado o valor desta variável. Surgimento do conceito de variável. 34 Principais Tipos de Linguagens de Programação � Linguagem Automática ( ou de Alto Nível ): � São semelhantes às linguagens usadas para descrever o problema que se deseja resolver, ressaltando a linguagem profissional a que o usuário está acostumado. � Existem várias linguagens automáticas: FORTRAN (FORmula TRANslation), ALGOL, PLI, APL, BASIC, LISP, SNOBOL, PASCAL, ADA, MODULA etc. � Exemplo de comando: Y = 3 + X; � Ordena que a constante 3 seja somado ao valor da variável X e que o resultado seja armazenado como novo valor da variável Y. Obs.: C é considerada uma linguagem de médio nível. 35 Sistema Operacional (SO) É um programa especial que controla e coordena todas as operações básicas de um computador. Ele controla a execução de outros programas e pode proporcionar funções como: � controle de entrada e saída de dados; � alocação de memória; � gerenciamento de dados, etc ... Os programas que compõem os SOs são, na maioria dos casos, escritos em linguagens de nível mais baixo, fazendo com que eles sejam mais rápidos e eficientes no gerenciamento de recursos do hardware. 36 Sistema Operacional (SO) Os SOs podem ser classificados em: � Monousuário: somente um usuário pode processar dados por vez na CPU; � Multiusuário: vários usuários podem acessar “ao mesmo tempo” a CPU de um sistema; � Monotarefa: somente um programa de cada vez é executado pela CPU. � Multitarefa: vários programas podem ser executados de maneira concorrente pela CPU (eles concorrem pela mesma CPU). 37 Algoritmos - Introdução � O uso de algoritmos surgiu como uma forma de indicar o caminho para a solução dos mais variados problemas. � Dado um problema, as principais funções de um programador são: � Entender perfeitamente o problema � Escolher métodos para sua solução � Desenvolver um algoritmo baseado nos métodos � Codificar o algoritmo na linguagem de programação disponível 38 Algoritmos - Introdução � A parte mais importante da tarefa de programar é a construção de algoritmos. � Segundo Niklaus Wirth: � “Programação é a arte de construir e formular algoritmos de uma forma sistemática” � “Algoritmos + Estruturas de Dados = Programas” 39 Como estudar algoritmos? � O aprendizado de algoritmos não se consegue a não ser através de muitos exercícios. � Algoritmos não se aprendem: � Copiando algoritmos � Estudando algoritmos � Algoritmos só se aprendem: � Construindo algoritmos � Testando algoritmos 40 Algoritmos - Conceitos � Ação: é um evento que ocorre num período 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 variável”; � Observação: toda ação deve ser executável em um tempo finito (do instante t0 até o instante t1); � O que realmente interessa é o efeito produzido na execução da ação; � Pode-se descrever o efeito de uma ação comparando o estado no instante t0 com o estado no instante t1. 41 Algoritmos - Conceitos � Estado de um dado sistema de objetos é o conjunto de propriedades desses objetos que são relevantes em uma situação considerada. Ex.: “Livro na estante ou sobre a mesa”; “Conjunto de valores das variáveis do programa num certo instante da execução”; 42 Algoritmos - Conceitos � Processo: é um evento considerado como uma seqüência temporal de (sub) ações, cujo efeito total é igual ao efeito acumulado dessas (sub) ações. � Observação: Pode-se, geralmente, considerar um mesmo evento como uma ação ou como um processo, dependendo se o interesse está em simplesmente no efeito total (da ação) ou se interessa um ou mais estados intermediários (do processo). Em outras palavras, se há interesse, uma ação pode ser geralmente detalhada em um processo. 43 Algoritmos - Conceitos � Padrão de Comportamento : em todo o evento pode-se reconhecer um padrão de comportamento, isto é, cada vez que o padrão de comportamento é seguido, o evento ocorre. � Ex.: seja a seguinte descrição: “Uma dona-de-casa descasca as batatas para o jantar” “traz a cesta com batatas do porão”; “traz a panela do armário”; “descasca as batatas”; “devolve a cesta ao porão”; 44 Algoritmos - Conceitos Essa descrição pode ser usada para descrever eventos distintos (dias diferentes, batatas diferentes etc.). Isso só é possível porque os eventos possuem o mesmo padrão de comportamento. O efeito de um evento fica totalmente determinado pelo padrão de comportamento e eventualmente pelo estado inicial. 45 Algoritmos - Conceitos � Algoritmo: é a descrição de um padrão de comportamento, expressado em termos de um repertório bem definido e finito de ações primitivas que, com certeza, podem ser executadas. � Um algoritmo possui caráter imperativo, razão pela qual uma ação em um algoritmo é chamada de comando. � Ex.: algoritmo para descascar batatas para o jantar: “traga a cesta com batatas do porão”; “traga a panela do armário”; “descasque as batatas”; “devolva a cesta ao porão”; 46 Algoritmos - Conceitos � Um algoritmo (ou programa) apresenta dois aspectos complementares: � Aspectoestático: é a representação concreta do algoritmo através de um texto contendo comandos que devem ser executados numa ordem prescrita (atemporal). � Aspecto dinâmico: que é a execução do algoritmo no tempo. O problema central da computação consiste em relacionar esses dois aspectos, isto é, consiste no entendimento (visualização) das estruturas dinâmicas das possíveis execuções do algoritmo a partir da estrutura estática do seu texto. 47 Algoritmos - Conceitos � A restrição a um número limitado de estruturas de controle (de execução dos comandos do algoritmo) permite reduzir o abismo existente entre o aspecto estático e o dinâmico do algoritmo. � Só são usadas três estruturas de controle: � Seqüência Simples � Alternativa � Repetição “A arte de programar consiste na arte de organizar e dominar a complexidade” (Dijkstra) 48 Algoritmos - Conceitos A generalização do algoritmo para descascar batatas para o jantar pode ser: “traga a cesta com batatas do porão”; “traga a panela do armário”; se “saia é clara” então “coloque avental”; enquanto “número de batatas é insuficiente” faça “descasque uma batata”; “devolva a cesta ao porão”; Um algoritmo deve ser determinístico, isto é, dadas as mesmas condições iniciais, deve produzir em sua execução, os mesmos resultados. Só interessam os algoritmos executáveis em tempo finito. 49 Algoritmos Formas de representação � Dentre as formas de representação de algoritmos mais conhecidas, sobressaltam: � A Descrição Narrativa � O Fluxograma Convencional � O Diagrama de Chapin � A Pseudolinguagem 50 Descrição Narrativa � Nesta forma de representação os algoritmos são expressos diretamente em linguagem natural. � Como por exemplo, têm-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 51 Descrição Narrativa Cálculo da média de um aluno: � Obter as notas da primeira e da segunda prova � Calcular a média aritmética entre as duas � Se a média for maior ou igual a 6, o aluno foi aprovado, senão ele foi reprovado. Obs:Esta representação é pouco usada na prática porque o uso de linguagem natural muitas vezes dá oportunidade a más interpretações, ambigüidades e imprecisões. 52 Fluxograma � Representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos. � Tal propriedade facilita o entendimento das idéias contidas nos algoritmos. 53 Fluxograma ou Diagrama de Blocos Principais formas geométricas usadas em fluxogramas. = Início e final do fluxograma . = Operação de entrada de dados = Operação de saída de dados em impressora = Operação de saída de dados em vídeo = Operações de atribuição 54 Fluxograma = Decisão = Seta do fluxo de dados = Conector utilizado quando é preciso particionar o diagrama, colocando uma letra ou número no símbolo para indentificar os pares da conexão 55 Fluxograma A figura a seguir mostra a representação do algoritmo de cálculo da média de um aluno sob a forma de um fluxograma. 56 Diagrama de Chapin � O diagrama foi criado por Ned Chapin � Substituir o fluxograma tradicional por um diagrama que apresenta uma visão hierárquica e estruturada da lógica do programa 57 Diagrama de Chapin � A figura abaixo apresenta um exemplo do tipo de diagrama de Chapin para o algoritmo de cálculo da média de um aluno. 58 Pseudolinguagem � Esta forma de representação de algoritmos, também conhecida como pseudocódigo, português estruturado ou portugol, é bastante rica em detalhes e, por assemelhar-se bastante à forma em que os programas são escritos, encontra muita aceitação, sendo portanto a forma de representação de algoritmos que será adotada nesta disciplina. � Esta representação é suficientemente geral para permitir que a tradução de um algoritmo nela representado para uma linguagem de programação específica seja praticamente direta. 59 Pseudolinguagem � Representação de um Algoritmo na Forma de Pseudolinguagem : principal { <declaração_de_variáveis> <comandos> } 60 Pseudolinguagem A seguir é mostrado a representação do algoritmo de cálculo da média de um aluno na forma de um pseudocódigo principal { real n1, n2, media; leia(n1, n2); media ���� (n1 + n2)/2; se (media >= 6) { imprima ("Aprovado"); } senão { imprima ("Reprovado"); } } 61 Próxima aula... � Conceito de tipos de dados; � Variáveis; � Operadores; � Comandos de entrada e saída... Laboratório de Programação DCC 120 Introdução e Conceitos Básicos Informações Gerais � Total de Créditos: 2 � Teste de Verificação de Conhecimento (TVC): 3 � Média: 60 � Site da disciplina: http://www.algoritmosufjf.tk Neste site você encontrará: � Material Didático; � Data das provas; � Listas de Exercício; � Horário e site de Monitoria; � Links diversos etc. 64 Segunda Chamada � O que é ? É a prova que você poderá requerer no caso de perder uma das avaliações. � Pode substituir uma prova já realizada? Não. A prova só substitui uma avaliação que o aluno tenha faltado. Não há provas substitutivas em Algoritmos / Laboratório de Programação I. 65 Segunda Chamada - Regras Caso 1 O aluno que perder uma das avaliações tem direito, sem a necessidade de justificativa, a fazer segunda chamada ao final do período letivo, sobre conteúdo acumulado. Caso 2 O professor responsável pela disciplina poderá conceder segunda chamada ao aluno ausente em quaisquer das avaliações de conhecimento, desde que o mesmo apresente requerimento, no prazo máximo de dois dias úteis, com a devida justificativa de acordo com a legislação em vigor. Sendo julgada procedente a justificativa, a segunda chamada será designada pelo Professor, e versará sobre os mesmos tópicos da avaliação não 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 após a aplicação da prova � O que: Entregar requerimento preenchido e anexar justificativa. � Resultado do requerimento: Será divulgado no site da disciplina � Prova: Data e hora serão divulgados após o processamento dos requerimentos. 66 Informações Gerais � Bibliografia Básica: � GUIMARÃES, A. M. Algoritmos e estruturas de dados. Rio de Janeiro: LTC, 1994. � KERNIGHAN, BRIAN W., RITCHIE, DENNIS M. C: A linguagem de programação padrão. Rio de Janeiro: Campus, 1989. � Bibliografia Complementar: � EVARISTO, JAIME. Aprendendo a Programar Programando na Linguagem C. Edição Digital. 67 Objetivos � Representar uma sequência de ações a serem realizadas para obter uma resposta de um determinado problema usando uma linguagem de programação � Base Teórica: Disciplina de Algoritmos 68 Linguagem de Programação � “É um conjunto de regras sintáticas e semânticas 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 serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias.” 69 Linguagem de Programação � Lista de 2500 (!) linguagens de programação http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm � Linha do tempo com aproximadamente 50 linguagens de programação http://www.levenez.com/lang/lang.pdf 70 Linguagem C � Linguagem de programação 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 período mais criativo ocorreu em 1972 http://cm.bell-labs.com/cm/cs/who/dmr/chist.html 71 Linguagem C � A linguagem C é amplamente utilizada, principalmente no meio acadêmico � O sucesso do sistema operacional Unix auxiliouna popularização do C � A linguagem C é considerada simples 72 Sistema Operacional - Linux � Sistema instalado nos computadores: Linux � Criado inicialmente como um hobby pelo estudante Linus Torvalds, na Universidade de Helsinki (Finlândia). � Linus tinha um interesse especial pelo Sistema Operacional Minix, baseado no sistema Unix 73 Sistema Operacional - Linux � 1991 : versão 0.02 � 1994 : versão 1.0 � O código do núcleo (kernel) é aberto: gratuito e disponível a todos � Com base no kernel diversas distribuições podem ser encontradas: Ubuntu, Debian, Mandriva, Fedora ... http://www.linux.org/ 74 Organização básica de um computador � Um computador é constituído de quatro unidades básicas: � unidade de entrada, � unidade de saída, � unidade de processamento central e � memória. 75 Organização básica de um computador � Unidades devem se comunicar entre si. Ex.: Teclado -> Memória -> CPU � Comunicação é feita através de uma linguagem 76 Organização básica de um computador � Linguagem para comunicação interna � Linguagem de máquina � Possui apenas dois símbolos: zero e um (bit – binary digit) � Palavras da linguagem de máquina são sequências de bits 77 Programas de computadores � Programas devem ter uma finalidade específica: � Games � Processadores de Texto � Navegadores (Browsers) � Etc. � Programa = conjunto de instruções que podem ser executadas pelo computador, de tal forma que a execução de subconjuntos destas instruções permitem a realização de ações mais genéricas. 78 Lógica de programação � Desenvolvimento de um programa requer a utilização de um raciocínio ímpar em relação aos raciocínios utilizados na solução de problemas de outros campos do saber � Para resolver um determinado problema é necessário que encontremos uma sequência de instruções cuja execução resulte na solução da questão � Programa = Algoritmo que pode ser executado em um computador � Lógica de Programação = conjunto de raciocínios utilizados para o desenvolvimento de algoritmos (e, portanto, de programas) 79 IDE - Integrated Development Environment � Ambiente Integrado de Desenvolvimento: programa de computador que reúne características e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este processo. � Editor, compilador, depurador, etc. 80 IDE – CodeBlocks � CodeBlocks: IDE disponível para Linux e Windows http://www.codeblocks.org/downloads � Download gratuito 81 IDE – CodeBlocks 82 IDE – CodeBlocks Criando um Programa. 83 IDE – CodeBlocks 84 IDE – CodeBlocks 85 IDE – CodeBlocks 86 IDE – CodeBlocks 87 IDE – CodeBlocks 88 IDE – CodeBlocks 89 IDE – CodeBlocks 90 Criando seu primeiro programa � A geração do programa executável a partir do programa fonte obedece a uma seqüência de operações. � Editor ( módulo fonte em C) � Compilador ( gera o arquivo objeto) � Lincador ( gera o executável) 91 Visão Geral � Editor ( módulo fonte em C) � Ex.: first.c � Compilador ( gera o arquivo objeto) � Ex.: first.o � Lincador ( gera o executável) � Ex.: first.exe 92 Estrutura de um Programa em C � Toda linguagem de programação deve seguir uma sintaxe. � A sintaxe são regras detalhadas para cada construção válida. Estas regras estão relacionadas com os tipos, as declarações, as funções e as expressões. � Os tipos definem as propriedades dos dados manipulados em um programa. � As declarações expressam as partes do programa, podendo dar significado a um identificador, alocar memória, definir conteúdo inicial, definir funções. � As funções especificam as ações que um programa executa quando roda. 93 Programa Mínimo em C � Todo programa em C deve conter uma função identificada por main (cuja tradução é principal). Esta será sempre a primeira função do programa a ser executada main( ) { }
Compartilhar