http://www.computacao.gigamundo.com PROGRAMAÇÃO I Christiano Lima Santos http://www.computacao.gigamundo.com Uma Introdução à Computação (Aula 1) Christiano Lima Santos http://www.computacao.gigamundo.com Sumário Motivação A História da Computação A Arquitetura de Von Neumann Componentes de um Computador Referências Bibliográficas http://www.computacao.gigamundo.com Motivação Por que Computação? A importância da informação O que é informação? A era da conhecimento Por que Programação? Como funciona um computador? Como NÓS dizemos ao computador como ele deve funcionar? http://www.computacao.gigamundo.com A História da Computação Século XIV – criação do Ábaco Chinês; Operações de adição, subtração, multiplicação e divisão; 1823 – criação da Máquina de Diferenças; Logaritmos e funções trigonométricas. http://www.computacao.gigamundo.com A História da Computação 1945 – criação do ENIAC; O primeiro computador! Cálculos balísticos na segunda guerra mundial; 19.000 válvulas; 19 toneladas; http://www.computacao.gigamundo.com A História da Computação 1947/48 – invenção do transistor; 1954 – definição de FORTRAN (Formula Translator), primeira linguagem de programação de alto nível; 1958 – Invenção do “circuito integrado” (CHIP); 1969 – criação da ARPANET; Internet original, com fins militares. http://www.computacao.gigamundo.com A Arquitetura de Von Neumann Arquitetura empregada ainda hoje; Baseia-se em três componentes principais: Memória – usada para armazenar dados e programas; Unidade de Controle – circuito lógico responsável pelo funcionamento da máquina, controlando o fluxo de instruções; Unidade de Processamento – realiza cálculos de acordo com as instruções http://www.computacao.gigamundo.com A Arquitetura de Von Neumann Decompondo a Unidade de Processamento Unidade LógicoAritmética (ULA), onde são executadas as operações aritméticas; Registradores Memória Unidade de Controle Unidade de Processamento IC MAR Instruction Counter; Instruction Register; Memory Address Register; Memory Buffer Register; IR Registradores de propósito geral. Registrador C MBR Registrador A Registrador B ULA http://www.computacao.gigamundo.com Componentes de um Computador CPU Memória Principal – A memória principal é do tipo RAM (Random Unidade de access Memory); Bios Memória RAM Controle CPU; BIOS (Binary I/O System) – Memória do tipo ROM (Read Only Memory) ou PROM; Memória auxiliar; Dispositivos de entrada e saída. Unidade Lógica Aritmética Interface Interface Periférico Periférico http://www.computacao.gigamundo.com Referências Bibliográficas INSTITUTO MILITAR DE ENGENHARIA, História do Computador, disponível em: http://www.ime.usp.br/~macmulti/historico LIBRANDI, Rodrigo. História da Computação, disponível em: http://www.juliobattisti.com.br/tutoriais/rodrigolibrandi/historiac omputacao001.asp RIBEIRO, Fernando L. B. Notas de aula, disponível em: http://wwwp.coc.ufrj.br/~fernando/downloads/COMPUTACAO1. pdf WIKIPEDIA-PT, História da Computação, disponível em: http://pt.wikipedia.org/wiki/História_da_computação http://www.computacao.gigamundo.com Representação Numérica (Aula 2) Christiano Lima Santos http://www.computacao.gigamundo.com I. Bases mais estudadas em computação Base decimal: N 0..9 Base binária: (N)2 Base hexadecimal: (N)16 0,1 0..9, A..F http://www.computacao.gigamundo.com II. Representação de um número em uma base qualquer N = an.bn + an-1.bn-1 + ... + a1.b1 + a0 http://www.computacao.gigamundo.com III. Conversão de base: Base decimal para base binária: 13 = (1101)2 (a3a2a1a0)2 http://www.computacao.gigamundo.com Base binária para base decimal: (1101)2 = 13 a3.b3 + a2.b2 + a1.b1 + a0 = 1.23 + 1.22 + 0.21 + 1 = 13 Base decimal para base hexadecimal: 678 = (a2a1a0)16 = (2A6)16 http://www.computacao.gigamundo.com Base hexadecimal para base decimal: (2A6)16 = 678 2.162 + 10.161 + 6 = 512 + 160 + 6 = 678 Base binária para base hexadecimal: http://www.computacao.gigamundo.com Base hexadecimal para binária: http://www.computacao.gigamundo.com IV. Operação de adição: Na base binária: (1011)2 + (1010)2 = (10101)2 1011 1010 10101 Na base hexadecimal: (25A6)16 + (3D23)16 = (62C9)16 25A6 3D23 62C9 http://www.computacao.gigamundo.com V. Operação de Subtração: Na base binária: (1011)2 – (110)2 = (101)2 1011 110 0101 Na base hexadecimal: (2C8)16 – (1A9)16 = (11F)16 2C8 1A9 11F http://www.computacao.gigamundo.com VI. Operação de multiplicação Na base binária: (10)2 x (1101)2 = (11010)2 1101 10 0000 1101 11010 Na base hexadecimal: (A6)16 x (538)16 = (36250)16 538 A6 1F50 3430 36250 http://www.computacao.gigamundo.com VII. Operação de divisão: A forma mais fácil é converter para a base decimal, efetuar o cálculo e converter para a base desejada; http://www.computacao.gigamundo.com Exercícios a) b) c) d) e) f) g) h) i) j) Efetue os seguintes cálculos, convertendo antes os valores para cada uma das três bases: 3+5 12 + 16 (10110)2 + (10100)2 (AF8)16 + (5C0)16 (10110)2 + (5C0)16 120 - 31 (1011101)2 – (100110)2 (AF8)16 – (5C0)16 (AF8)16 – (1011101011)2 (CB)16 x (101)2 http://www.computacao.gigamundo.com Uma Introdução aos Algoritmos (Aula 3) Christiano Lima Santos http://www.computacao.gigamundo.com Sumário Motivação Definição de Algoritmo Características de um Algoritmo Formas de Representação dos Algoritmos Vantagens do Uso de Algoritmos Elementos Fundamentais de um Algoritmo Linguagem, Compilador e IDE Linguagem Pascal IDEs de Pascal Referências Bibliográficas http://www.computacao.gigamundo.com Motivação Por que estudar algoritmos? Queremos criar programas... O que é um programa (software)? Um sistema para computador que executa tarefas de forma seqüencial; Cada tarefa pode ser compreendida como um conjunto de comandos e decisões; http://www.computacao.gigamundo.com Definição de Algoritmo Seqüência de ações finitas que descrevem como um problema deve ser resolvido; Exemplo: Trocar um pneu; Pentear os cabelos; Calcular a média de um aluno. http://www.computacao.gigamundo.com Características de um algoritmo Possui início e fim; É escrito em termos de ações bem definidas; Suas ações possuem uma ordem seqüencial. http://www.computacao.gigamundo.com Formas de Representação dos Algoritmos Descrição narrativa Ex: “Receita de um bolo” Separar os ingredientes Bater os ovos em neve na batedeira Acrescentar açúcar e farinha de trigo Acrescentar uma colher de manteiga Acrescentar uma colher de Fermento em pó Colocar na forma Colocar no forno e assar Retirar do forno Tirar da forma e servir Fim do processo! http://www.computacao.gigamundo.com Formas de Representação dos Algoritmos Em uma linguagem de programação Ex: função em ActionScript function colorDifference(color1, color2) { var r1 = Number("0x" + color1.substr(0,2)); var g1 = Number("0x" + color1.substr(2,2)); var b1 = Number("0x" + color1.substr(4,2)); var r2 = Number("0x" + color2.substr(0,2)); var g2 = Number("0x" + color2.substr(2,2)); var b2 = Number("0x" + color2.substr(4,2)); return Math.max(Math.max(Math.abs(r1 r2), Math.abs(g1 - g2)), Math.abs(b1 - b2)); } http://www.computacao.gigamundo.com Formas de Representação dos Algoritmos Representações Gráficas Fluxograma, por exemplo http://www.computacao.gigamundo.com Formas de Representação dos Algoritmos Pseudocódigo (Portugol) Ex: Cálculo de média leia notaA, notaB, notaC, notaD; media <- (notaA + notaB + notaC + notaD) / 2; retorne media; Os algoritmos são independentes das linguagens de programação. Não existe um formalismo rígido de como deve ser escrito o algoritmo. http://www.computacao.gigamundo.com Vantagens do uso de algoritmos Facilita a compreensão acerca da solução adotada; Pode ser implementado em qualquer linguagem; http://www.computacao.gigamundo.com Elementos Fundamentais de um algoritmo ENTRADA: São os dados de entrada do algoritmo; PROCESSAMENTO: Procedimentos utilizados para chegar ao resultado final; SAÍDA: São os dados já processados. Entrada Processamento Saida http://www.computacao.gigamundo.com Linguagem, Compilador e IDE Linguagem Compilador Conjunto de regras sintáticas e semânticas usadas para definir um programa de computador; Programa que, a partir de um código escrito em uma linguagem, o código-fonte, cria um programa semanticamente equivalente porém escrito em outra linguagem, código objeto; Diferente do Interpretador! IDE Integrated Development Environment - Ambiente para desenvolvimento integrado. http://www.computacao.gigamundo.com Linguagem Pascal Linguagem de programação estruturada; O nome é uma homenagem ao matemático Blaise Pascal; Criada em 1970 pelo suíço Niklaus Wirth. http://www.computacao.gigamundo.com IDEs de Pascal Turbo Pascal Para download http://www.netdownloads.com.br/Download/2303/TurboPascal-70.html http://www.computacao.gigamundo.com IDEs de Pascal Free Pascal Para download: http://www.freepascal.eti.br http://www.computacao.gigamundo.com Referências Bibliográficas COSTA, Abel. Apostila algoritmos e Fluxogramas, UFBA, disponível em: http://www.fis.ufba.br/edmar/Cursos/fo rtran/abel/HOME%20MAT045%20%20HOME%20PAGE/APOSTILAS%20F ORTRAN%20FORMATO%20WORD/APO STILA%2003%20algor%EDtimos%20e %20fluxogramas.doc http://www.computacao.gigamundo.com Alguns Conceitos e Comandos em Programação (Aula 4) Christiano Lima Santos http://www.computacao.gigamundo.com Sumário Identificadores Variáveis Constantes Palavras-Reservadas Tipos de Dados Comentários Bloco de código / comandos Video poker http://www.computacao.gigamundo.com Identificadores Nomes dados a variáveis, tipos, procedimentos, funções, constantes, programas, units e campos de registros; Pascal não é case-sensitive, logo: Pascal = Pascal = PASCAL; Quais as regras para identificadores válidos? Ex. de identificadores válidos: PAGAMENTO Soma_Total maiorValor http://www.computacao.gigamundo.com Variáveis É um valor (referenciado por um identificador) que pode ser alterado durante a execução do programa; Em Pascal, nós precisamos declarar as variáveis antes de usá-las var <identificador> [,<identificadpr>] : <tipo>; Ex: var a, b: integer; c: real; Na maioria das linguagens de programação, uma variável está associada a um tipo de dado, que define quais valores podem ser armazenados e como devem ser manipulados; http://www.computacao.gigamundo.com Constantes É um valor (referenciado por um identificador) que não muda durante a execução de um programa; Podem ser inteiras, reais ou literais; As constantes também devem ser declaradas em Pascal (constantes nomeadas); const <identificador> = <valor>; Quem vai especificar o tipo do identificador da nossa constante? Atenção quanto às constantes tipadas: const <identificador> : <tipo> = <valor>; Na verdade, são variáveis inicializadas! http://www.computacao.gigamundo.com Palavras-Reservadas Termos que não podem ser usados pelo desenvolvedor ao declarar variáveis, constantes, tipos, procedimentos ou funções, por já serem empregados pela linguagem ou compilador em outras situações; Exemplos de palavras-reservadas: And, array, function, if, implementation; http://www.computacao.gigamundo.com Tipos de Dados Um tipo especifica as características de um dado; Toda variável e constante usada em um programa tem um tipo associado com ela. http://www.computacao.gigamundo.com Os tipos podem ser divididos em três categorias: Tipo escalar (ou simples) – representa uma única peça de dados; Tipo estruturado – representa uma coleção de itens de dados; Tipo apontador – faz referência ou aponta para outra peça de dados; Um novo tipo pode ser declarado do seguinte jeito: type <identificador> = <descricao>; http://www.computacao.gigamundo.com Comentários São textos escritos dentro do código-fonte para explicar ou descrever alguns aspectos relativos ao mesmo; No momento de compilação, esses textos serão ignorados. Os comentários podem ser de final de linha, linha ou de bloco; Em Pascal, um comentário pode ser escrito assim: (* Texto aqui *); { Texto aqui }; http://www.computacao.gigamundo.com Bloco de código/comandos Também conhecido como comando composto; Em Portudol Início Um ou mais comandos agrupados a serem executados seqüencialmente sendo assim possível usá-los em onde somente um comando é permitido; ... comandos ... Fim Em Pascal begin comandos... ... ... end; http://www.computacao.gigamundo.com Comandos para Atribuição Permitem estabelecer o valor de uma expressão (lado direito ou R-Value), como sendo o valor de uma variável (l-value e rvalue); Em Portugol variável valor; Em Pascal Variável := valor. http://www.computacao.gigamundo.com Comandos para Impressão Permitem imprimir mensagens de texto legíveis ao usuário; Em Portugol Imprima Texto; Em Pascal write(‘...’); writeln(‘...’); http://www.computacao.gigamundo.com Comandos para Leitura Permitem que o usuário insira valores que serão armazenados em variáveis; Em Portugol Leia variavel; Em Pascal read(variavel); readln(variavel); http://www.computacao.gigamundo.com Operadores e Expressões Aritméticas As operações básicas ( +, -, x, / ) em Portugol e Pascal funcionam de forma similar a como usamos no cotidiano; Atentar-se a: Uso de parênteses; Prioridade das operações. http://www.computacao.gigamundo.com Estrutura Básica de um Programa em Pascal program <identificador>; [<cláusula uses>>] [<declaração de rótulos>] 0; [<declaração de constantes>]; [<declaração de subprogramas>;] BEGIN comando1[; <comando> ];...corpo do programa} END. http://www.computacao.gigamundo.com Expressões (Aula 5) Christiano Lima Santos http://www.computacao.gigamundo.com Sumário Definição de Expressão Tipos de Expressões Expressões Numéricas / Aritméticas Expressões Literais Expressões Relacionais Expressões Booleanas Expressões Constantes Exercícios http://www.computacao.gigamundo.com Definição de Expressão Conjunto de operações efetuadas sobre certos dados (operandos) a fim de obter um resultado. http://www.computacao.gigamundo.com Tipos de Expressões Expressões Expressões Expressões Expressões Expressões Numéricas/Aritméticas Literais Relacionais Booleanas Constantes http://www.computacao.gigamundo.com Expressões Numéricas/Aritméticas Operador de negação (not); Operadores multiplicativos: multiplicação (*); divisão real (/); divisão inteira (div); resto da divisão (mod); “e” lógico (and); deslocamento (shift) lógico para a esquerda(shl); deslocamento (shift) lógico para a direita (shr); http://www.computacao.gigamundo.com Operadores aditivos: adição e subtração (+, -); “ou” lógico (or); “ou” exclusivo (xor); http://www.computacao.gigamundo.com Expressões Literais Operador de concatenação (+) http://www.computacao.gigamundo.com Expressões Relacionais Igual a Maior do que Maior ou igual do que Menor do que Menor ou igual do que Diferente de Obs: São válidas tanto para caracteres e strings! = > >= < <= <> inteiros, reais, http://www.computacao.gigamundo.com Expressões Booleanas Operador de negação (not); Operador “e” booleano (and); Operador aditivos: “ou” booleano (or); “ou” booleano exclusivo (xor); Algumas Observações: Operadores booleanos têm mais hierarquia (prioridade) que os operadores relacionais; Avaliação completa x avaliação curto-circuito. http://www.computacao.gigamundo.com Expressões Constantes Ex: const X = 32768*2 – 1; S = ‘valor’ + ‘total’; K = 256 div 2; http://www.computacao.gigamundo.com Exercícios Represente em Pascal as seguintes expressões: 2 (x+3y)2 0,029x1,5 2,7y2,7 1 + x + x2 + x3 + x4 2! 3! 4! z está entre x + 2 e x + 7, inclusive x, y e z são iguais x ou y são negativos, mas não os dois http://www.computacao.gigamundo.com Comandos Condicionais (Aula 6) Christiano Lima Santos http://www.computacao.gigamundo.com Sumário Comando Condicional If Definição Sintaxe Comando Condicional Case Definição Sintaxe http://www.computacao.gigamundo.com Comando Condicional If Permite executar uma instrução se e somente se uma condição expressa for verdadeira; Caso a expressão seja falsa, o programa poderá executar uma instrução declarada para esse caso (else) ou simplesmente seguir, sem a execução de um comando. http://www.computacao.gigamundo.com Comando Condicional If If Simples Em Portugol se <condição> então <comando> Em Pascal if <condição> then <comando>; Se a condição expressa for verdadeira, execute o comando, caso contrário, ignore-o. http://www.computacao.gigamundo.com Comando Condicional If Obs: Comandos condicionais podem ser aninhados Ex: if <condição> then if <condição> then <comando>; http://www.computacao.gigamundo.com Comando Condicional If If Composto Em Portugol se <condição> então <comando1> senão <comando2> Em Pascal if <condição> então <comando1> else <comando2>; Em Pascal, o último comando antes do else não pode ter ; caso contrário o programa pensará que o if termina ali e o else ficará sem um if, o que gera um erro em tempo de compilação! Aqui, nós dizemos que se a condição expressa for verdadeira, execute o comando1, caso contrário, execute o comando2. http://www.computacao.gigamundo.com Comando Condicional If Problema dos Ifs compostos aninhados: Dado o comando: if b1 then if b2 then s1 else s2; O else pertence a qual if? Por quê? Na maioria das linguagens, a associação é feita sempre entre os pares mais próximos, logo: if b1 then if b2 then s1 else s2; http://www.computacao.gigamundo.com Comando Condicional If Nós podemos usar blocos de código (begin e end) a fim de tornar mais claro qual else pertence a qual if: if b1 then begin if b2 then s1 end else s2; Perceba que usando begin e end eu alterei facilmente a “posse” do else. Ficou também claro agora a quem o else pertence (neste caso, ao primeiro if). Lembrando que blocos de código podem ser usados em qualquer lugar de um código que aceite um comando, a fim de melhorar a legibilidade ou para incluir mais comandos onde só poderíamos escrever um. http://www.computacao.gigamundo.com Comando Condicional Case O if não é nossa única opção! O case consiste de uma expressão (seletor) e uma lista de comandos associados a rótulos de case; Tanto o seletor quanto os rótulos de case devem assumir o mesmo tipo escalar ordinal; Será executado o comando cujo rótulo representa o valor do seletor; http://www.computacao.gigamundo.com Comando Condicional Case Em Pascal, o comando é: case <expressão> of <rotulo1>: <comando1>; <rotulo2>: <comando2>; <rotulo3>: <comando3>; ... else <comando> [; <comando>]... end; http://www.computacao.gigamundo.com Comando Condicional Case opcao := 2; case opcao of 1: <comando1>; 2: <comando2>; 3: <comando3>; else <comando>; end; No exemplo dado ao lado, o case irá avaliar a expressão (opcao) e determinará seu valor como sendo 2; Ele então buscará qual o rótulo que possui esse valor (no caso, o rótulo 2), e então executará o comando associado a ele (comando2); E se opção fosse 4? Não encontrando o valor, se houver uma cláusula else, ele a executará, caso contrário, ele não executa comando algum; http://www.computacao.gigamundo.com Comando Condicional Case Quando é bom usar Trabalhando condicionais de igualdade com um única variável ou uma expressão do tipo escalar ordinal; Mais de dois possíveis “desvios” (comandos a executar); Quando não é bom usar Trabalhando com tipos não-escalares ou escalares não-ordinais; Strings e arrays, por exemplo; Utilizando condições de desigualdade Ex: >, >=, <, <=, <>. http://www.computacao.gigamundo.com Comandos de Repetição (Aula 7) Christiano Lima Santos http://www.computacao.gigamundo.com Sumário Definição Comando For Comando While Comando Repeat Comandos de Interrupção de Laços Continue Break http://www.computacao.gigamundo.com Definição São comandos usados para executar um comando (ou um conjunto de comandos) mais de uma vez; O número de execuções pode ser fixado no início do comando (comando for) ou o comando pode ser repetido até que uma condição seja verdadeira (comando repeat) ou falsa (comando while). http://www.computacao.gigamundo.com Comando For O comando For executa repetitivamente um comando enquanto é atribuído uma série de valores a uma variável de controle; Sintaxe em Portugol para <variável> <início> até <fim> faça <comando> Sintaxe em Pascal for <variável> := <expressão1> to / downto <expressão2> do <comando>; http://www.computacao.gigamundo.com Comando For Funcionamento 1. 2. 3. 4. A variável de controle e as expressões devem ser do mesmo tipo escalar ordinal; Inicialmente a variável recebe o valor de expressão1; Antes de começar a execução, o programa testa se a variável é menor ou igual (se usado to) ou maior ou igual (se usado downto) à expressão2; Se o resultado do teste for verdadeiro, o comando do laço é executado; http://www.computacao.gigamundo.com Comando For Funcionamento (continuando) 5. 6. Ao terminar a execução do comando do laço, a variável de controle é testada para verificar se é igual ao valor final (expressão2); Se for igual, a execução do laço é terminada, caso contrário, a variável é incrementada (to) ou decrementada (downto) e o comando do laço é executado novamente, ao fim do qual retorna ao passo 5, até atingir o valor de expressão2. http://www.computacao.gigamundo.com Comando For O que acontecerá em cada um desses casos for for for for i i i i := := := := 0 to 10 do 10 to 0 do 10 downto 0 do 0 downto 10 do http://www.computacao.gigamundo.com Comando For Observações O Turbo Pascal calcula o valor das expressões no começo da execução do comando for e usa estes valores enquanto durar a repetição Por isso os valores das expressões não podem ser alterados dentro do laço; O valor da variável de controle não deveria ser alterado dentro do laço; http://www.computacao.gigamundo.com Comando For Observações (continuando) O que aconteceria com for i := 1 to 10 do i := i + 15; Ao terminar o for, a variável de controle terá o valor da expressão2; Exceto se for interrompido por goto ou break; http://www.computacao.gigamundo.com Comando While O comando while executa repetitivamente um comando enquanto uma expressão de controle for verdadeira (true); Sintaxe em Portugol enquanto <exp-booleana> faça <comando> Sintaxe em Pascal while <exp-booleana> do <comando>; http://www.computacao.gigamundo.com Comando While Observações As variáveis da expressão podem (e devem!) ser alteradas durante a execução do laço; Cuidados com a declaração do caso de parada; Caso contrário, a expressão será sempre verdadeira! Senão, o seu laço será executado indefinidamente; Se ao começar o comando while o valor da expressão for falsa, o laço não será executado nenhuma vez; http://www.computacao.gigamundo.com Comando Repeat O comando repeat executa seu comando uma primeira vez e re-executa-o até que a expressão de controle seja verdadeira; Sintaxe em Portugol repita <comando> [; <comando>]... até <exp-booleana> Sintaxe em Pascal repeat <comando> [; <comando>]... until <exp-booleana> http://www.computacao.gigamundo.com Comando Repeat Observações Diferentemente do for e do while, o comando repeat será executado ao menos uma vez, já que o teste é feito somente ao final; Enquanto que o while é executado enquanto a expressão de controle for verdadeira, com o repeat a execução do comando é repetida enquanto a expressão for falsa. http://www.computacao.gigamundo.com Comandos de Interrupção de Laços Continue Break Causa um desvio para o final do laço mais interno de um comando de repetição, em outras palavras, salta os comandos subseqüentes, mas não interrompe completamente a execução do laço; Interrompe completamente a execução do laço; Os comandos de execução não estão disponíveis no Pascal padrão. http://www.computacao.gigamundo.com Funções e Procedimentos (Aula 8) Christiano Lima Santos http://www.computacao.gigamundo.com Sumário Definição Comando For Comando While Comando Repeat Comandos de Interrupção de Laços Continue Break http://www.computacao.gigamundo.com Definição de Função Grupo de comandos que efetuam determinada operação (sobre argumentos passados ou não) e cujo resultado será utilizado em uma expressão; http://www.computacao.gigamundo.com Sintaxe de uma Função function <nome-da-função> (<param>[,<param>]...:<tipo> [;<param>[,<param>]...:<tipo>]...) : <tipo> [declarações] begin <comando>[;<comando>]... end; Obs: O retorno da função é dado por <nome-da-função> := valor_desejado; http://www.computacao.gigamundo.com Funções Numéricas sin(x) cos(x) tan(x) arctan(x) exp(x) ln(x) sqr(x) sqrt(x) abs(x) frac(x) int(x) round(x) trunc(x) random[(x)] pi odd(x) http://www.computacao.gigamundo.com Funções Literais chr(I) copy(S, inicio, comprimento) length(S) ord(C) DownCase(C) UpCase(C) http://www.computacao.gigamundo.com Definição de Procedimento Grupo de comandos que efetuam determinada operação (sobre argumentos passados ou não) mas que NÃO retorna seu resultado para uma expressão; http://www.computacao.gigamundo.com Sintaxe de um Procedimento procedure <nome-do-procedimento> (<param>[,<param>]...:<tipo> [;<param>[,<param>]...:<tipo>]...) [declarações] begin <comando>[;<comando>]... end; Obs: Em um procedimento, não há retorno. http://www.computacao.gigamundo.com Procedimentos de Entrada/Saída de Dados read e readln Usados para receber dados do teclado ou para leitura de arquivos; write e writeln Usados para exibir dados, gravar arquivos ou mesmo impressão; http://www.computacao.gigamundo.com Outros Procedimentos dec(x [, N]) inc(x [, N]) delete(S, inicio, quantidade) insert(S, destino, inicio) str(x[:W[:D], S) val(S, V, codigo) exit halt