Lgica de Programao I Unidade I Contedo Programtico UNIDADES: 1. Introduo Computao 2. Varivel e Comandos de E/S 3. Funes 4. Estruturas de Seleo 5. Estruturas de Repetio 6. Vetores Bibliografia C Completo e Total, Herbert Schildt C++ Como Programar, Deitel Treinament o em Liguagem C++, Victorine Mizrahi Lgica de Programao, Andr Fobellone 1. Introduo Computao 1. Organizao do Computador 2. Linguagem de Mquina 3. Algoritmos 1.1 Organizao do Computador Unidade de entrada: permite que o usurio interaja com o computador Teclado e mouse Unidade de sada: fornece os resultados do processamento realizado pelo computador Monitor de vdeo, impressora 1.1 Organizao do Computador CPU (Unidade Central de processamento): responsvel por todo processamento requerido Memria: armazena temporariamente informaes que sero usadas no processamento Memria RAM 1.1 Organizao do Computador CPU Unidade de Entrada Unidade de Sada Memria 1.2 Linguagem de Mquina Unidades que compem o computador precisam se comunicar entre si. Para tanto, necessrio que se estabelea uma linguagem. Linguagem humana: escrita e a fala Toda linguagem requer a existncia de smbolos bsicos. 1.2 Linguagem de Mquina Utilizada na comunicao interna do computador. Smbolo bsico: BIT: 0 (zero) ou 1 (um) Palavras da linguagem de mquina so sequncias de bits Para a comunicao do homem com o computador preciso uma traduo da linguagem escrita para a de mquina. 1.2 Linguagem de Mquina Tabela ASCII (American Standard Code for Information Interchange) Cada caractere representado por uma sequncia de oito bits chamada de byte. Caracter Cdigo ASCII Espao em branco 00100000 ! 00100001 : : 0 00110000 1 00110001 : : A 01000001 B 01000010 : Z 01011010 : a 01011010 : z 01111010 1.3 Algoritmos Hoje em dia, quase todas as tarefas podem ser informatizadas. Para isso, precisamos de computadores. Para desempenhar qualquer tarefa os computadores precisam receber ordens. Essas ordens so solicitadas ao computador atravs de rotinas chamadas de algoritmos. Algoritmos so compostos de comandos e instrues compreendidas pelo computador que so criadas utilizando-se algum tipo de linguagem. Para aprendermos a criar algoritmos no basta estudar ou copiar algoritmos. Precisamos escrever e criar algoritmos, pegar exerccios e PRATICAR. 1.3 Algoritmos Aprender a programar como aprender uma nova lngua: precisamos aprender a gramtica, a sintaxe da linguagem e tentar praticar essa comunicao. O conceito utilizado em muitas reas, mesmo sem utilizar o nome algoritmo. 1.3 Algoritmos Podemos pensar nisso em nosso dia a dia: voc acaba de acordar e sabe que tem que ir ao trabalho, quais os passos que voc executa para que isso acontea? Estes passos tm que ser uma sequncia, ou seja, tm que ser executados um aps o outro 1.3 Algoritmos 1 Passo Levantar da cama 2 Passo Ir ao banheiro 3 Passo Vestir a roupa 4 Passo Sair de casa 1.3 Algoritmos Caractersticas dos Algoritmos: Partem de um ponto inicial e chegam a um ponto final; No so ambguos (dupla interpretao); Podem receber dados externos e so capazes de retornar resultados; Tm todas suas etapas alcanveis em algum momento do programa. 1.3 Algoritmos Formas de Representao: 1 Forma: Descrio narrativa 2 Forma: Fluxograma 3 Forma: Linguagem Algortmica 1.3 Algoritmos Descrio narrativa: Um algoritmo descrito de forma que o leitor entenda mesmo no conhecendo algoritmos, porm h impreciso e falta de confiabilidade e um descrio muito grande para dizer pouca coisa. 1.3 Algoritmos Descrio narrativa: Trocar uma lmpada Pegar uma escada Posicionar a escada embaixo da lmpada Pegar uma lmpada nova Subir na escada Retirar a lmpada velha Colocar a lmpada nova 1.3 Algoritmos Descrio narrativa: Exemplo: Multiplicar um nmero por 2 Digitar um nmero; Gravar em uma varivel; Multiplicar o nmero por 2; Gravar o resultado; Mostrar o resultado da operao. 1.3 Algoritmos Fluxograma: Utilizamos smbolos para ajudar a compreender o algoritmo. Os smbolos so mais expressivos que palavras, porm complica-se a medida que o algoritmo cresce. 1.3 Algoritmos Fluxograma: 1.3 Algoritmos Fluxograma: 1.3 Algoritmos Linguagem Algortmica: Consiste em representar o algoritmo atravs de uma determinada linguagem de programao com regras e instrues prprias. Dados constituem a entrada do algoritmo O resultado da tarefa realizada pelo algoritmo a sada do algoritmo. 1.3 Algoritmos Linguagem Algortmica: incio; inteiro: num, dobro; escreva (Digite um nmero:); leia (num); dobro 2 * num; escreva (dobro); fim. 1.3 Algoritmos Para um mesmo problema, podem existir diversos algoritmos, ou seja, diversas sequncias de instrues diferentes que o resolva. Um algoritmo s pode ser executado por uma CPU que entenda a linguagem na qual este foi escrito. 1.3 Algoritmos Em algoritmos computacionais utilizaremos um conjunto de instrues (comandos) pr-definidas. Este conjunto de instrues constitui uma Linguagem de Programao. Instrues de uma linguagem de programao podem ser executadas pela CPU de um computador. 1.3 Algoritmos Algoritmos escritos em uma LP so chamados de programas ou aplicaes. Objetivo: dado um problema, escrever uma sequncia de instrues tal que, para uma certa entrada, a execuo dessa sequncia resulte na soluo do problema. Exemplos: C, Java, Pascal, Python. 1.3 Algoritmos A Lgica de Programao simboliza o uso correto das leis do pensamento, da ordem e da razo e de processos de raciocnio formais na programao de computadores, objetivando a produo de solues que resolvam com qualidade os problemas que se deseja programar. 1.3 Algoritmos Exemplo: um homem est na margem de um rio com uma raposa, uma galinha e um saco de milho. Ele quer atravessar o rio com sua carga em um barco que s comporta o homem e uma das cargas. Ele no pode deixar sozinhos em uma das margens a raposa e a galinha, nem a galinha e o milho. Escreva um algoritmo que oriente o homem a fazer a travessia com a carga. 1.3 Algoritmos Soluo: 1. Atravesse com a galinha 2. Retorne sozinho 3. Atravesse com a raposa 4. Retorne com a galinha 5. Atravesse com o milho 6. Retorne sozinho 7. Atravesse com a galinha 1.3 Algoritmos Apesar do algoritmo anterior desenvolver o raciocnio lgico, estamos mais interessados em algoritmos para resolver questes como: Determinar a mdia de vrios nmeros. Encontrar as razes de uma equao de 2 grau. Ordenar alfabeticamente uma relao de nomes. Atualizar o saldo de uma conta bancria na qual se fez depsito. Cadastrar um novo usurio de uma locadora. 1.3 Algoritmos