http www computacao gigamundo com PROGRAMAO I Christiano

  • Slides: 101
Download presentation
http: //www. computacao. gigamundo. com PROGRAMAÇÃO I Christiano Lima Santos

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 Uma Introdução à Computação (Aula 1) Christiano Lima Santos

http: //www. computacao. gigamundo. com Sumário n n n Motivação A História da Computação

http: //www. computacao. gigamundo. com Sumário n n n 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 n Por que Computação? n A importância da

http: //www. computacao. gigamundo. com Motivação n Por que Computação? n A importância da informação n n n O que é informação? A era da conhecimento Por que Programação? n Como funciona um computador? n Como NÓS dizemos ao computador como ele deve funcionar?

http: //www. computacao. gigamundo. com A História da Computação n Século XIV – criação

http: //www. computacao. gigamundo. com A História da Computação n Século XIV – criação do Ábaco Chinês; n n Operações de adição, subtração, multiplicação e divisão; 1823 – criação da Máquina de Diferenças; n Logaritmos e funções trigonométricas.

http: //www. computacao. gigamundo. com A História da Computação n 1945 – criação do

http: //www. computacao. gigamundo. com A História da Computação n 1945 – criação do ENIAC; n n n 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 n n 1947/48 – invenção

http: //www. computacao. gigamundo. com A História da Computação n n 1947/48 – invenção do transistor; 1954 – definição de FORTRAN (Formula Translator), primeira linguagem de programação de alto nível; n 1958 – Invenção do “circuito integrado” (CHIP); n 1969 – criação da ARPANET; n Internet original, com fins militares.

http: //www. computacao. gigamundo. com A Arquitetura de Von Neumann n n Arquitetura empregada

http: //www. computacao. gigamundo. com A Arquitetura de Von Neumann n n Arquitetura empregada ainda hoje; Baseia-se em três componentes principais: n n n 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 n Decompondo a Unidade

http: //www. computacao. gigamundo. com A Arquitetura de Von Neumann n Decompondo a Unidade de Processamento n n Unidade Lógico-Aritmética (ULA), onde são executadas as operações aritméticas; Registradores n n n 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

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 n Controle n n CPU; BIOS (Binary I/O System) – Memória do tipo ROM (Read Only Memory) ou PROM; n Memória auxiliar; n Dispositivos de entrada e saída. Unidade Lógica Aritmética Interface Periférico

http: //www. computacao. gigamundo. com Referências Bibliográficas n n INSTITUTO MILITAR DE ENGENHARIA, História

http: //www. computacao. gigamundo. com Referências Bibliográficas n n 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 omputacao 001. asp RIBEIRO, Fernando L. B. Notas de aula, disponível em: http: //wwwp. coc. ufrj. br/~fernando/downloads/COMPUTACAO 1. 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 Representação Numérica (Aula 2) Christiano Lima Santos

http: //www. computacao. gigamundo. com I. Bases mais estudadas em computação n Base decimal:

http: //www. computacao. gigamundo. com I. Bases mais estudadas em computação n Base decimal: N 0. . 9 n Base binária: (N)2 n 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

http: //www. computacao. gigamundo. com II. Representação de um número em uma base qualquer N = an. bn + an-1. bn-1 +. . . + a 1. b 1 + a 0

http: //www. computacao. gigamundo. com III. Conversão de base: n Base decimal para base

http: //www. computacao. gigamundo. com III. Conversão de base: n Base decimal para base binária: 13 = (1101)2 (a 3 a 2 a 1 a 0)2

http: //www. computacao. gigamundo. com n Base binária para base decimal: (1101)2 = 13

http: //www. computacao. gigamundo. com n Base binária para base decimal: (1101)2 = 13 a 3. b 3 + a 2. b 2 + a 1. b 1 + a 0 = 1. 23 + 1. 22 + 0. 21 + 1 = 13 n Base decimal para base hexadecimal: 678 = (a 2 a 1 a 0)16 = (2 A 6)16

http: //www. computacao. gigamundo. com n n Base hexadecimal para base decimal: (2 A

http: //www. computacao. gigamundo. com n n Base hexadecimal para base decimal: (2 A 6)16 = 678 2. 162 + 10. 161 + 6 = 512 + 160 + 6 = 678 Base binária para base hexadecimal:

http: //www. computacao. gigamundo. com n Base hexadecimal para binária:

http: //www. computacao. gigamundo. com n Base hexadecimal para binária:

http: //www. computacao. gigamundo. com IV. Operação de adição: n Na base binária: (1011)2

http: //www. computacao. gigamundo. com IV. Operação de adição: n Na base binária: (1011)2 + (1010)2 = (10101)2 1011 10101 n Na base hexadecimal: (25 A 6)16 + (3 D 23)16 = (62 C 9)16 25 A 6 3 D 23 62 C 9

http: //www. computacao. gigamundo. com V. Operação de Subtração: n Na base binária: (1011)2

http: //www. computacao. gigamundo. com V. Operação de Subtração: n Na base binária: (1011)2 – (110)2 = (101)2 1011 110 0101 n Na base hexadecimal: (2 C 8)16 – (1 A 9)16 = (11 F)16 2 C 8 1 A 9 11 F

http: //www. computacao. gigamundo. com VI. Operação de multiplicação n Na base binária: (10)2

http: //www. computacao. gigamundo. com VI. Operação de multiplicação n Na base binária: (10)2 x (1101)2 = (11010)2 1101 10 0000 11010 n Na base hexadecimal: (A 6)16 x (538)16 = (36250)16 538 A 6 1 F 50 3430 36250

http: //www. computacao. gigamundo. com VII. Operação de divisão: n A forma mais fácil

http: //www. computacao. gigamundo. com VII. Operação de divisão: n 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 n a) b) c) d) e) f) g)

http: //www. computacao. gigamundo. com Exercícios n 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 (AF 8)16 + (5 C 0)16 (10110)2 + (5 C 0)16 120 - 31 (1011101)2 – (100110)2 (AF 8)16 – (5 C 0)16 (AF 8)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 Uma Introdução aos Algoritmos (Aula 3) Christiano Lima Santos

http: //www. computacao. gigamundo. com Sumário n n n Motivação Definição de Algoritmo Características

http: //www. computacao. gigamundo. com Sumário n n n Motivação Definição de Algoritmo Características de um Algoritmo Formas de Representação dos Algoritmos Vantagens do Uso de Algoritmos n n n 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 n Por que estudar algoritmos? n n Queremos

http: //www. computacao. gigamundo. com Motivação n Por que estudar algoritmos? n n Queremos criar programas. . . O que é um programa (software)? n n 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 n n Seqüência de ações finitas

http: //www. computacao. gigamundo. com Definição de Algoritmo n n 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 n n n Possui início

http: //www. computacao. gigamundo. com Características de um algoritmo n n n 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 n n

http: //www. computacao. gigamundo. com Formas de Representação dos Algoritmos Descrição narrativa n n 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

http: //www. computacao. gigamundo. com Formas de Representação dos Algoritmos Em uma linguagem de programação n n Ex: função em Action. Script function color. Difference(color 1, color 2) { var r 1 = Number("0 x" + color 1. substr(0, 2)); var g 1 = Number("0 x" + color 1. substr(2, 2)); var b 1 = Number("0 x" + color 1. substr(4, 2)); var r 2 = Number("0 x" + color 2. substr(0, 2)); var g 2 = Number("0 x" + color 2. substr(2, 2)); var b 2 = Number("0 x" + color 2. substr(4, 2)); return Math. max(Math. abs(r 1 r 2), Math. abs(g 1 - g 2)), Math. abs(b 1 - b 2)); }

http: //www. computacao. gigamundo. com Formas de Representação dos Algoritmos n Representações Gráficas n

http: //www. computacao. gigamundo. com Formas de Representação dos Algoritmos n Representações Gráficas n Fluxograma, por exemplo

http: //www. computacao. gigamundo. com Formas de Representação dos Algoritmos n Pseudocódigo (Portugol) n

http: //www. computacao. gigamundo. com Formas de Representação dos Algoritmos n Pseudocódigo (Portugol) n Ex: Cálculo de média leia nota. A, nota. B, nota. C, nota. D; media <- (nota. A + nota. B + nota. C + nota. D) / 2; retorne media; n n 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 n n Facilita a

http: //www. computacao. gigamundo. com Vantagens do uso de algoritmos n n 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 n n n ENTRADA:

http: //www. computacao. gigamundo. com Elementos Fundamentais de um algoritmo n n n 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 n Linguagem n n Compilador

http: //www. computacao. gigamundo. com Linguagem, Compilador e IDE n Linguagem n n Compilador n n n 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 n Integrated Development Environment - Ambiente para desenvolvimento integrado.

http: //www. computacao. gigamundo. com Linguagem Pascal n n n Linguagem de programação estruturada;

http: //www. computacao. gigamundo. com Linguagem Pascal n n n 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 n Turbo Pascal n Para download

http: //www. computacao. gigamundo. com IDEs de Pascal n Turbo Pascal n Para download http: //www. netdownloads. com. br/Download/2303/Turbo. Pascal-70. html

http: //www. computacao. gigamundo. com IDEs de Pascal n Free Pascal n Para download:

http: //www. computacao. gigamundo. com IDEs de Pascal n Free Pascal n Para download: http: //www. freepascal. eti. br

http: //www. computacao. gigamundo. com Referências Bibliográficas n COSTA, Abel. Apostila algoritmos e Fluxogramas,

http: //www. computacao. gigamundo. com Referências Bibliográficas n COSTA, Abel. Apostila algoritmos e Fluxogramas, UFBA, disponível em: http: //www. fis. ufba. br/edmar/Cursos/fo rtran/abel/HOME%20 MAT 045%20%20 HOME%20 PAGE/APOSTILAS%20 F ORTRAN%20 FORMATO%20 WORD/APO STILA%2003%20 algor%EDtimos%20 e %20 fluxogramas. doc

http: //www. computacao. gigamundo. com Alguns Conceitos e Comandos em Programação (Aula 4) Christiano

http: //www. computacao. gigamundo. com Alguns Conceitos e Comandos em Programação (Aula 4) Christiano Lima Santos

http: //www. computacao. gigamundo. com Sumário n n n Identificadores Variáveis Constantes Palavras-Reservadas Tipos

http: //www. computacao. gigamundo. com Sumário n n n Identificadores Variáveis Constantes Palavras-Reservadas Tipos de Dados Comentários n n Bloco de código / comandos Video poker

http: //www. computacao. gigamundo. com Identificadores n n Nomes dados a variáveis, tipos, procedimentos,

http: //www. computacao. gigamundo. com Identificadores n n Nomes dados a variáveis, tipos, procedimentos, funções, constantes, programas, units e campos de registros; Pascal não é case-sensitive, logo: n n Pascal = PASCAL; Quais as regras para identificadores válidos? n Ex. de identificadores válidos: n n n PAGAMENTO Soma_Total maior. Valor

http: //www. computacao. gigamundo. com Variáveis n n É um valor (referenciado por um

http: //www. computacao. gigamundo. com Variáveis n n É 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 n n n 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 n n n É um valor (referenciado por

http: //www. computacao. gigamundo. com Constantes n n n É 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); n n n const <identificador> = <valor>; Quem vai especificar o tipo do identificador da nossa constante? Atenção quanto às constantes tipadas: n n const <identificador> : <tipo> = <valor>; Na verdade, são variáveis inicializadas!

http: //www. computacao. gigamundo. com Palavras-Reservadas n n Termos que não podem ser usados

http: //www. computacao. gigamundo. com Palavras-Reservadas n n 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: n And, array, function, if, implementation;

http: //www. computacao. gigamundo. com Tipos de Dados n n Um tipo especifica as

http: //www. computacao. gigamundo. com Tipos de Dados n n 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 n Os tipos podem ser divididos em três categorias:

http: //www. computacao. gigamundo. com n Os tipos podem ser divididos em três categorias: n n 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: n type <identificador> = <descricao>;

http: //www. computacao. gigamundo. com Comentários n n São textos escritos dentro do código-fonte

http: //www. computacao. gigamundo. com Comentários n n 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: n n (* Texto aqui *); { Texto aqui };

http: //www. computacao. gigamundo. com Bloco de código/comandos n n Também conhecido comando composto;

http: //www. computacao. gigamundo. com Bloco de código/comandos n n Também conhecido comando composto; Em Portudol n Início n n Um ou mais comandos agrupados a serem executados seqüencialmente sendo assim possível usá-los em onde somente um comando é permitido; n n . . . comandos. . . Fim Em Pascal n begin n n comandos. . . n n . . . end;

http: //www. computacao. gigamundo. com Comandos para Atribuição n n Permitem estabelecer o valor

http: //www. computacao. gigamundo. com Comandos para Atribuição n n 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 n n variável valor; Em Pascal n Variável : = valor.

http: //www. computacao. gigamundo. com Comandos para Impressão n n Permitem imprimir mensagens de

http: //www. computacao. gigamundo. com Comandos para Impressão n n Permitem imprimir mensagens de texto legíveis ao usuário; Em Portugol n n Imprima Texto; Em Pascal n n write(‘. . . ’); writeln(‘. . . ’);

http: //www. computacao. gigamundo. com Comandos para Leitura n n Permitem que o usuário

http: //www. computacao. gigamundo. com Comandos para Leitura n n Permitem que o usuário insira valores que serão armazenados em variáveis; Em Portugol n n Leia variavel; Em Pascal n n read(variavel); readln(variavel);

http: //www. computacao. gigamundo. com Operadores e Expressões Aritméticas n n As operações básicas

http: //www. computacao. gigamundo. com Operadores e Expressões Aritméticas n n As operações básicas ( +, -, x, / ) em Portugol e Pascal funcionam de forma similar a como usamos no cotidiano; Atentar-se a: n n Uso de parênteses; Prioridade das operações.

http: //www. computacao. gigamundo. com Estrutura Básica de um Programa em Pascal program <identificador>;

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 comando 1[; <comando> ]; . . . corpo do programa} END.

http: //www. computacao. gigamundo. com Expressões (Aula 5) Christiano Lima Santos

http: //www. computacao. gigamundo. com Expressões (Aula 5) Christiano Lima Santos

http: //www. computacao. gigamundo. com Sumário n n n n Definição de Expressão Tipos

http: //www. computacao. gigamundo. com Sumário n n n n Definição de Expressão Tipos de 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 n Conjunto de operações efetuadas sobre

http: //www. computacao. gigamundo. com Definição de Expressão n Conjunto de operações efetuadas sobre certos dados (operandos) a fim de obter um resultado.

http: //www. computacao. gigamundo. com Tipos de Expressões n n n Expressões Expressões Numéricas/Aritméticas

http: //www. computacao. gigamundo. com Tipos de Expressões n n n Expressões Expressões Numéricas/Aritméticas Literais Relacionais Booleanas Constantes

http: //www. computacao. gigamundo. com Expressões Numéricas/Aritméticas n n Operador de negação (not); Operadores

http: //www. computacao. gigamundo. com Expressões Numéricas/Aritméticas n n 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 n Operadores aditivos: Ø Ø Ø adição e subtração

http: //www. computacao. gigamundo. com n Operadores aditivos: Ø Ø Ø adição e subtração (+, -); “ou” lógico (or); “ou” exclusivo (xor);

http: //www. computacao. gigamundo. com Expressões Literais n Operador de concatenação (+)

http: //www. computacao. gigamundo. com Expressões Literais n Operador de concatenação (+)

http: //www. computacao. gigamundo. com Expressões Relacionais n n n n Igual a Maior

http: //www. computacao. gigamundo. com Expressões Relacionais n n n n Igual a Maior do que Maior ou igual 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 n n n Operador de negação (not);

http: //www. computacao. gigamundo. com Expressões Booleanas n n n Operador de negação (not); Operador “e” booleano (and); Operador aditivos: Ø Ø n “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 n Ex: const X = 32768*2 –

http: //www. computacao. gigamundo. com Expressões Constantes n Ex: const X = 32768*2 – 1; S = ‘valor’ + ‘total’; K = 256 div 2;

http: //www. computacao. gigamundo. com Exercícios n Represente em Pascal as seguintes expressões: 2

http: //www. computacao. gigamundo. com Exercícios n Represente em Pascal as seguintes expressões: 2 (x+3 y)2 0, 029 x 1, 5 2, 7 y 2, 7 1 + x 2 + x 3 + x 4 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 Comandos Condicionais (Aula 6) Christiano Lima Santos

http: //www. computacao. gigamundo. com Sumário n Comando Condicional If n n n Definição

http: //www. computacao. gigamundo. com Sumário n Comando Condicional If n n n Definição Sintaxe Comando Condicional Case n n Definição Sintaxe

http: //www. computacao. gigamundo. com Comando Condicional If n n Permite executar uma instrução

http: //www. computacao. gigamundo. com Comando Condicional If n n 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 n If Simples n Em Portugol

http: //www. computacao. gigamundo. com Comando Condicional If n If Simples n Em Portugol se <condição> então <comando> n Em Pascal if <condição> then <comando>; n Se a condição expressa for verdadeira, execute o comando, caso contrário, ignore-o.

http: //www. computacao. gigamundo. com Comando Condicional If n Obs: Comandos condicionais podem ser

http: //www. computacao. gigamundo. com Comando Condicional If n Obs: Comandos condicionais podem ser aninhados n Ex: if <condição> then <comando>;

http: //www. computacao. gigamundo. com Comando Condicional If n If Composto n Em Portugol

http: //www. computacao. gigamundo. com Comando Condicional If n If Composto n Em Portugol se <condição> então <comando 1> senão <comando 2> n Em Pascal if <condição> então <comando 1> else <comando 2>; n 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 comando 1, caso contrário, execute o comando 2.

http: //www. computacao. gigamundo. com Comando Condicional If n Problema dos Ifs compostos aninhados:

http: //www. computacao. gigamundo. com Comando Condicional If n Problema dos Ifs compostos aninhados: n Dado o comando: if b 1 then if b 2 then s 1 else s 2; n n 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 b 1 then if b 2 then s 1 else s 2;

http: //www. computacao. gigamundo. com Comando Condicional If n Nós podemos usar blocos de

http: //www. computacao. gigamundo. com Comando Condicional If n Nós podemos usar blocos de código (begin e end) a fim de tornar mais claro qual else pertence a qual if: if b 1 then begin if b 2 then s 1 end else s 2; n 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 n n O if não é

http: //www. computacao. gigamundo. com Comando Condicional Case n n 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 n Em Pascal, o comando é:

http: //www. computacao. gigamundo. com Comando Condicional Case n Em Pascal, o comando é: case <expressão> of <rotulo 1>: <comando 1>; <rotulo 2>: <comando 2>; <rotulo 3>: <comando 3>; . . . else <comando> [; <comando>]. . . end;

http: //www. computacao. gigamundo. com Comando Condicional Case n opcao : = 2; case

http: //www. computacao. gigamundo. com Comando Condicional Case n opcao : = 2; case opcao of 1: <comando 1>; 2: <comando 2>; 3: <comando 3>; else <comando>; end; n n 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 (comando 2); E se opção fosse 4? n 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 n Quando é bom usar n

http: //www. computacao. gigamundo. com Comando Condicional Case n Quando é bom usar n n n 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 n Trabalhando com tipos não-escalares ou escalares não-ordinais; n n Strings e arrays, por exemplo; Utilizando condições de desigualdade n Ex: >, >=, <, <=, <>.

http: //www. computacao. gigamundo. com Comandos de Repetição (Aula 7) Christiano Lima Santos

http: //www. computacao. gigamundo. com Comandos de Repetição (Aula 7) Christiano Lima Santos

http: //www. computacao. gigamundo. com Sumário n n n Definição Comando For Comando While

http: //www. computacao. gigamundo. com Sumário n n n Definição Comando For Comando While Comando Repeat Comandos de Interrupção de Laços n n Continue Break

http: //www. computacao. gigamundo. com Definição n n São comandos usados para executar um

http: //www. computacao. gigamundo. com Definição n n 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 n n O comando For executa repetitivamente

http: //www. computacao. gigamundo. com Comando For n n 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> n Sintaxe em Pascal for <variável> : = <expressão 1> to / downto <expressão 2> do <comando>;

http: //www. computacao. gigamundo. com Comando For n Funcionamento 1. 2. 3. 4. A

http: //www. computacao. gigamundo. com Comando For n 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ão 1; 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ão 2; Se o resultado do teste for verdadeiro, o comando do laço é executado;

http: //www. computacao. gigamundo. com Comando For n Funcionamento (continuando) 5. 6. Ao terminar

http: //www. computacao. gigamundo. com Comando For n 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ão 2); 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ão 2.

http: //www. computacao. gigamundo. com Comando For n O que acontecerá em cada um

http: //www. computacao. gigamundo. com Comando For n O que acontecerá em cada um desses casos n n for for i i : = : = 0 to 10 do 10 to 0 do 10 downto 10 do

http: //www. computacao. gigamundo. com Comando For n Observações n O Turbo Pascal calcula

http: //www. computacao. gigamundo. com Comando For n Observações n 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 n n 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 n Observações (continuando) n O que aconteceria

http: //www. computacao. gigamundo. com Comando For n Observações (continuando) n O que aconteceria com for i : = 1 to 10 do i : = i + 15; n Ao terminar o for, a variável de controle terá o valor da expressão 2; n Exceto se for interrompido por goto ou break;

http: //www. computacao. gigamundo. com Comando While n n O comando while executa repetitivamente

http: //www. computacao. gigamundo. com Comando While n n 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> n Sintaxe em Pascal while <exp-booleana> do <comando>;

http: //www. computacao. gigamundo. com Comando While n Observações n As variáveis da expressão

http: //www. computacao. gigamundo. com Comando While n Observações n As variáveis da expressão podem (e devem!) ser alteradas durante a execução do laço; n n Cuidados com a declaração do caso de parada; n n 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 n n O comando repeat executa seu

http: //www. computacao. gigamundo. com Comando Repeat n n 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> n Sintaxe em Pascal repeat <comando> [; <comando>]. . . until <exp-booleana>

http: //www. computacao. gigamundo. com Comando Repeat n Observações n n Diferentemente do for

http: //www. computacao. gigamundo. com Comando Repeat n Observações n n 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 n Continue n n

http: //www. computacao. gigamundo. com Comandos de Interrupção de Laços n Continue n n Break n n 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 Funções e Procedimentos (Aula 8) Christiano Lima Santos

http: //www. computacao. gigamundo. com Sumário n n n Definição Comando For Comando While

http: //www. computacao. gigamundo. com Sumário n n n Definição Comando For Comando While Comando Repeat Comandos de Interrupção de Laços n n Continue Break

http: //www. computacao. gigamundo. com Definição de Função n Grupo de comandos que efetuam

http: //www. computacao. gigamundo. com Definição de Função n 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>]. .

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 n n sin(x) cos(x) tan(x) arctan(x) n

http: //www. computacao. gigamundo. com Funções Numéricas n n sin(x) cos(x) tan(x) arctan(x) n n n n n exp(x) ln(x) sqrt(x) n n n abs(x) frac(x) int(x) round(x) trunc(x) random[(x)] pi odd(x)

http: //www. computacao. gigamundo. com Funções Literais n n n chr(I) copy(S, inicio, comprimento)

http: //www. computacao. gigamundo. com Funções Literais n n n chr(I) copy(S, inicio, comprimento) length(S) ord(C) Down. Case(C) Up. Case(C)

http: //www. computacao. gigamundo. com Definição de Procedimento n Grupo de comandos que efetuam

http: //www. computacao. gigamundo. com Definição de Procedimento n 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>]. .

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 n read e readln

http: //www. computacao. gigamundo. com Procedimentos de Entrada/Saída de Dados n read e readln n n Usados para receber dados do teclado ou para leitura de arquivos; write e writeln n Usados para exibir dados, gravar arquivos ou mesmo impressão;

http: //www. computacao. gigamundo. com Outros Procedimentos n n n n dec(x [, N])

http: //www. computacao. gigamundo. com Outros Procedimentos n n n n 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