Академический Документы
Профессиональный Документы
Культура Документы
Introduo Programao I
Lio 1
Introduo Programao de Computadores
JEDITM
Autor Florence Tiu Balagtas Equipe Joyce Avestro Florence Balagtas Rommel Feria Reginald Hutcherson Rebecca Ong John Paul Petines Sang Shin Raghavan Srinivas Matthew Thompson
Configurao Recomendada de Hardware Sistema Operacional Microsoft Windows Linux Solaris OS (SPARC) Solaris OS (x86/x64 Platform Edition) Mac OS X Processador 1.4 GHz Intel Pentium III workstation ou equivalente 1.4 GHz Intel Pentium III workstation ou equivalente UltraSPARC IIIi 1 GHz AMD Opteron 100 Series 1.8 GHz PowerPC G5 Memria 1 GB 1 GB 1 GB 1 GB 1 GB HD Livre 1 GB 850 MB 850 MB 850 MB 850 MB
Requerimentos de Software NetBeans Enterprise Pack 5.5 executando sobre Java 2 Platform Standard Edition Development Kit 5.0 ou superior (JDK 5.0, verso 1.5.0_01 ou superior), contemplando a Java Runtime Environment, ferramentas de desenvolvimento para compilar, depurar, e executar aplicaes escritas em linguagem Java. Sun Java System Application Server Platform Edition 9. Para Solaris, Windows, e Linux, os arquivos da JDK podem ser obtidos para sua plataforma em http://java.sun.com/j2se/1.5.0/download.html Para Mac OS X, Java 2 Plataform Standard Edition (J2SE) 5.0 Release 4, pode ser obtida diretamente da Apple's Developer Connection, no endereo: http://developer.apple.com/java ( necessrio registrar o download da JDK). Para mais informaes: http://www.netbeans.org/community/releases/55/relnotes.html
Introduo Programao I
JEDITM
Auxiliadores especiais
Reviso Geral do texto para os seguintes Pases:
Brasil Tiago Flach Guin Bissau Alfredo C, Bunene Sisse e Buon Olossato Quebi ONG Asas de Socorro
Coordenao do DFJUG
Daniel deOliveira JUGLeader responsvel pelos acordos de parcerias Luci Campos - Idealizadora do DFJUG responsvel pelo apoio social Fernando Anselmo - Coordenador responsvel pelo processo de traduo e reviso, disponibilizao dos materiais e insero de novos mdulos Regina Mariani - Coordenadora responsvel pela parte jurdica Rodrigo Nunes - Coordenador responsvel pela parte multimdia Srgio Gomes Veloso - Coordenador responsvel pelo ambiente JEDITM (Moodle)
Agradecimento Especial
John Paul Petines Criador da Iniciativa JEDITM Rommel Feria Criador da Iniciativa JEDITM
Introduo Programao I
JEDITM
1. Objetivos
Nesta seo, vamos discutir os componentes bsicos de um computador, tanto em relao a hardware como a software. Tambm veremos uma pequena introduo sobre linguagens de programao e sobre o ciclo de vida do desenvolvimento. Por fim, mostraremos os diferentes sistemas numricos e as converses entre eles. Ao final desta lio, o estudante ser capaz de: Identificar os diferentes componentes de um computador. Conhecer as linguagens de programao e suas categorias. Entender o ciclo de vida de desenvolvimento de programas e aplic-lo na soluo de Conhecer os diferentes sistemas numricos e as converses entre eles.
problemas.
Introduo Programao I
JEDITM
2. Introduo
O computador uma mquina que realiza uma variedade de tarefas de acordo com instrues especficas. uma mquina de processamento de dados, que recebe dados atravs de um dispositivo de entrada e o processador os manipula de acordo com um programa. O computador tem dois componentes principais. O primeiro o Hardware que a parte palpvel (que se pode tocar) do computador. Ele composto de partes eletrnicas e mecnicas. O segundo componente principal o Software que a parte impalpvel (no se pode tocar) do computador. Ele composto de dados e dos programas de computador.
Introduo Programao I
JEDITM
O processador o crebro do computador. Ele possui milhes de partes eltricas muito pequenas. Ele faz as operaes fundamentais dentro do sistema. Alguns exemplos de processadores so o Pentium, Athlon e SPARC.
Figura 1: Processador de um PC
3.1.2.
Memria
A memria, onde se encontram os dados e as instrues que a CPU precisa para realizar suas tarefas, dividida em diversos locais de armazenamento que possuem seus respectivos endereos lgicos. A CPU acessa a memria pelo uso destes endereos. 1. Memria Principal A memria principal, s vezes, chamada de RAM (Random Access Memory ou Memria de Acesso Randmico) est fortemente ligada ao processador. Ela utilizada para armazenar programas e dados, com os quais o processador est trabalhando no momento e no utilizada para armazenamento de longo prazo, por este motivo seu armazenamento considerado voltil. Isto significa que assim que o computador desligado, toda a informao armazenada na memria principal ser perdida.
2. A Memria Secundria A memria secundria est ligada memria principal. Ela usada para armazenar programas e dados para uso de longo prazo. Exemplos de memria secundria so discos rgidos e cd-rom.
Introduo Programao I
JEDITM
A memria secundria considerada um tipo de armazenamento no-voltil. Isto significa que as informaes nela armazenadas no sero perdidas aps o computador ser desligado. Memria Principal Rpida Cara Baixa Sim Memria Secundria Lenta Barata Alta No Propriedade Velocidade Preo Capacidade Voltil
3.1.3.
Os dispositivos de entrada e sada permitem que o computador interaja com o mundo exterior pela movimentao de dados para dentro e para fora do sistema. Exemplos de dispositivos de entradas so teclados, mouses, microfones, etc. Exemplos de dispositivos de sada so monitores, impressoras, alto-falantes, etc.
3.2. Software
O software um programa que o computador usa para funcionar. Ele armazenado em algum dispositivo de hardware como um disco rgido, mas em si mesmo intangvel. Os dados que o computador usa podem ser qualquer coisa que o programa precise. Os programas agem como instrues para o processador. Alguns tipos de programas de computador: 1. Programas de Sistemas Programas necessrios para que o hardware e o software funcionem juntos corretamente. Exemplos: Sistemas Operacionais como Linux, Windows, Unix, Solaris, MacOS
Introduo Programao I
JEDITM
3. Compiladores O computador entende apenas uma linguagem: linguagem de mquina. Linguagem de mquina est na forma de zeros e uns. J que totalmente impraticvel para as pessoas criarem programas usando zeros e uns, preciso haver uma maneira de traduzir ou converter a linguagem que entendemos em linguagem de mquina, para isto, existem os compiladores.
Introduo Programao I
JEDITM
Introduo Programao I
JEDITM
Para entendermos o funcionamento deste ciclo na soluo de problemas no computador, vamos definir um problema exemplo que iremos resolver passo a passo enquanto discutimos as metodologias para resoluo de problemas em detalhe.
Introduo Programao I
10
JEDITM
Introduo Programao I
11
JEDITM
Fazer NomeLista = Lista de Nomes Fazer NomeChave = o nome a ser procurado Fazer conta = 0 Para cada nome em NomeLista fazer Se nome igual a NomeChave Fazer Conta = Conta + 1 Mostrar Conta
Figure 5: Exemplo de pseudocdigo
5.3.1.
Um fluxograma uma ferramenta de projeto usada para representar graficamente a lgica de uma soluo. Os fluxogramas, tipicamente, no mostram comandos de linguagem de programao. Ao invs disto, eles mostram o conceito em Portugus ou em notao matemtica. Aqui esto algumas dicas dos smbolos mais usados para a criao de fluxogramas. Pode-se utilizar quaisquer smbolos quando criar os seus fluxogramas, desde que use-os de maneira consistente.
Smbolo
Nome
Significado
Representa o processo de se executar uma operao definida ou grupo de operaes que resultam em mudana de valor, forma ou localizao da informao. Tambm funciona como smbolo padro quando nenhum outro smbolo estiver disponvel. Representa a funo de E/S que faz com que os dados fiquem disponveis para processamento (entrada) ou para a exibio (sada) das informaes processadas. Representa a seqncia de informaes disponveis e operaes executveis. As linhas conectam outros smbolos, e as setas so obrigatrias somente em fluxos com orientao da direita para esquerda e de baixo para cima. Representa a adio de informao descritiva, comentrios, ou notas explicativas para esclarecimentos. A linha vertical e a linha pontilhada podem ser colocadas esquerda, como mostrado, ou direita. Representa a deciso que determina qual das alternativas ser seguida.
Smbolo de Processo
Smbolo de Linha
Smbolo de Anotao
Smbolo de Deciso
Smbolo Terminal
Smbolo Conector
Representa qualquer entrada, ou sada, a outra parte do fluxograma. Tambm serve como um conector fora de pgina.
Introduo Programao I
12
JEDITM
Smbolo
Significado
Representa um processo nomeado consistindo de uma ou mais operaes ou passos de programa especificados em algum outro lugar.
Introduo Programao I
13
JEDITM
6.1. Decimal
Normalmente representamos os nmeros na forma decimal. Nmeros na forma decimal esto na base 10. Isto significa que os nicos dgitos que aparecem so 0-9. Aqui esto alguns exemplos de nmeros escritos na forma decimal: 12610 (normalmente escrito somente como 126) 1110 (normalmente escrito somente como 11)
6.2. Binrio
Nmeros na forma binria esto na base 2. Isto significa que os nicos dgitos aceitos so 0 e 1. Precisamos escrever a subscrio 2 para indicar que o nmero um nmero binrio. Aqui esto alguns exemplos de nmeros escritos na forma binria: 11111102 10112
6.3. Octal
Nmeros na forma octal esto na base 8. Isto significa que os nicos dgitos aceitos so 0-7. Precisamos escrever a subscrio 8 para indicar que o nmero um nmero octal. Aqui esto alguns exemplos de nmeros escritos na forma octal: 1768 138
6.4. Hexadecimal
Nmeros na forma hexadecimal esto na base 16. Isto significa que os nicos dgitos aceitos so 0-9 e as letras A-F (ou a-f, minsculas ou maisculas no importam). Precisamos escrever a subscrio 16 para indicar que o nmero um nmero hexadecimal. Aqui esto alguns exemplos de nmeros escritos na forma hexadecimal: 7E16 B16 Hexadecimal Decimal Equivalente 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 A B C D E F
9 10 11 12 13 14 15
Introduo Programao I
14
JEDITM
6.5. Converses
6.5.1. Decimal para Binrio / Binrio para Decimal
Para converter um nmero decimal em binrio, deve-se dividir continuamente este nmero por 2 e separar o resto (que ser ou 0 ou 1), considerando-o como um dgito da forma binria do nmero. Obter o quociente e dividir novamente por 2, repetir o processo at que o quociente atinja 0 ou 1. Ao trmino, agrupar todos os restos comeando pelo ltimo resto. O resultado a forma binria do nmero. NOTA: O ltimo dgito menor que o divisor (2) ser o primeiro nmero do resultado. Por Exemplo: 12610 = ? 2 126 63 31 15 7 3 1 / / / / / / / 2 2 2 2 2 2 2 = = = = = = = Quociente 63 31 15 7 3 1 Resto 0 1 1 1 1 1 1
Ento, escrevendo os restos de baixo para cima, obtemos o nmero binrio 11111102. Para converter um nmero binrio para decimal, multiplicar o dgito binrio por 2 elevado a posio deste nmero binrio. Adicionar todos os produtos para obter o nmero decimal resultante. Por Exemplo: 11111102 = ?
Posio
10
Dgitos Binrios
6.5.2.
Converter nmeros decimais para octal ou hexadecimal basicamente o mesmo que converter decimal para binrio. Entretanto, ao invs de utilizar o 2 como divisor, substitu-lo por 8 (para octal) ou 16 (para hexadecimal). Por Exemplo (Octal):
Introduo Programao I 15
JEDITM
12610 = ?
Resto 6 7 1
Escreva nesta direo
Ento, escrevendo os restos de baixo para cima, obtemos o nmero octal 1768. Por Exemplo (Hexadecimal): 12610 = ? 16 Quociente 126 / 16 = 7 / 16 = 7 Resto 14 (igual ao dgito hexadecimal E) 7
Ento, escrevendo os restos de baixo para cima, obtemos o nmero hexadecimal 7E16 Converter nmeros octais ou hexadecimais um processo semelhante a converter nmeros de binrios para decimal. Para fazer isto, substitumos o nmero 2 pelo 8 para octal ou pelo 16 para hexadecimal. Por Exemplo (Octal): 1768 = ? 10
Posio 2 1 0
Dgitos Octais 1
6 6 x 80 = 6 7 x 81 = 56 1 x 82 = 64 TOTAL: 126
Dgitos 7 Hexadecimais
6.5.3.
Para conveter nmeros binrios para octal, partimos o nmero binrio em grupos de 3 dgitos (da direita para esquerda), e o preenchemos com zeros se o nmero de dgitos no for divisvel por 3. Ento, convertemos cada partio em seu correspondete dgito octal. A tabela abaixo mostra a representao binria de cada dgito octal.
Introduo Programao I
16
JEDITM
Dgito Octal 0 1 2 3 4 5 6 7
Representao Binria 000 001 010 011 100 101 110 111
0 1
1 7
1 6
Nmero octal equivalente Converter nmeros octais para binrio o oposto do que foi explicado acima. Simplesmente converta cada dgito octal na sua representao binria (conforme a tabela) e concatene-os. O resultado a representao binria.
6.5.4.
Para converter nmeros binrios para hexadecimal, partimos o nmero binrio em grupos de 4 dgitos (da direita para a esquerda), e o preenchemos com zero se o nmero de dgitos no for divisvel por 4. Ento convertemos cada partio em seu dgito hexadecimal correspondente. A tabela abaixo mostra a representao binria de cada dgito hexadecimal. Dgito Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B Representao Binria 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011
Introduo Programao I
17
JEDITM
16
1 7
1 E
Nmero hexadecimal equivalente Converter nmeros hexadecimais para binrio o oposto do que foi explicado acima. Simplesmente converta cada dgito hexadecimal na sua representao binria (conforme a tabela) e concatene-os. O resultado a representao binria.
Introduo Programao I
18
JEDITM
7. Exerccios
7.1. Escrevendo Algoritmos
Dado o seguinte conjunto de tarefas, crie um algoritmo para realizar cada uma das tarefas abaixo. Escreva os algoritmos usando pseudocdigo ou fluxogramas. 1. 2. 3. Assar po Acessar o computador Obter a mdia de trs nmeros
Introduo Programao I
19
JEDITM
Instituto CTS Patrocinador do DFJUG. Sun Microsystems Fornecimento de servidor de dados para o armazenamento dos vdeo-aulas. Java Research and Development Center da Universidade das Filipinas Criador da Iniciativa JEDITM. DFJUG Detentor dos direitos do JEDITM nos pases de lngua portuguesa. Banco do Brasil Disponibilizao de seus telecentros para abrigar e difundir a Iniciativa JEDITM. Politec Suporte e apoio financeiro e logstico a todo o processo. Borland Apoio internacional para que possamos alcanar os outros pases de lngua portuguesa. Instituto Gaudium/CNBB Fornecimento da sua infra-estrutura de hardware de seus servidores para que os milhares de alunos possam acessar o material do curso simultaneamente.
Introduo Programao I
20