http:// programaÇÃo i christiano lima santos

101
http://www.computacao.gigamundo.co PROGRAMAÇÃO I Christiano Lima Santos

Upload: internet

Post on 16-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

PROGRAMAÇÃO I

Christiano Lima Santos

Page 2: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Uma Introdução à Computação(Aula 1)

Christiano Lima Santos

Page 3: Http:// PROGRAMAÇÃO I 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

Page 4: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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?

Page 5: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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.

Page 6: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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;

Page 7: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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.

Page 8: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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

Page 9: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

A Arquitetura de Von Neumann

Decompondo a Unidade de Processamento Unidade Lógico-

Aritmética (ULA), onde são executadas as operações aritméticas;

Registradores Instruction Counter; Instruction Register; Memory Address

Register; Memory Buffer Register; Registradores de

propósito geral.

Memória

Unidade de Controle

IC MAR MBR

IR

Registrador A

Registrador B

Registrador C

ULA

Unidade de Processamento

Page 10: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Componentes de um Computador

Memória Principal – A memória principal é do tipo RAM (Random access Memory);

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 de Controle

Unidade Lógica

Aritmética

CPU

Mem

ória

RA

M

Bios

Interface

Periférico

Interface

Periférico

Page 11: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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/historiacomputacao001.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

Page 12: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Representação Numérica(Aula 2)

Christiano Lima Santos

Page 13: Http:// PROGRAMAÇÃO I 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 0,1

Base hexadecimal: (N)16 0..9, A..F

Page 14: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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

Page 15: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

III. Conversão de base:

Base decimal para base binária: 13 = (1101)2 (a3a2a1a0)2

Page 16: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Base binária para base decimal: (1101)2 = 13a3.b3 + a2.b2 + a1.b1 + a0 = 1.23 + 1.22 + 0.21 +

1 = 13 Base decimal para base hexadecimal: 678 = (a2a1a0)16 = (2A6)16

Page 17: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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:

Page 18: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Base hexadecimal para binária:

Page 19: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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

Page 20: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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

Page 21: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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

Page 22: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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;

Page 23: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Exercícios Efetue os seguintes cálculos, convertendo

antes os valores para cada uma das três bases:

a) 3 + 5b) 12 + 16c) (10110)2 + (10100)2

d) (AF8)16 + (5C0)16

e) (10110)2 + (5C0)16

f) 120 - 31g) (1011101)2 – (100110)2

h) (AF8)16 – (5C0)16

i) (AF8)16 – (1011101011)2

j) (CB)16 x (101)2

Page 24: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Uma Introdução aos Algoritmos(Aula 3)

Christiano Lima Santos

Page 25: Http:// PROGRAMAÇÃO I 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

Page 26: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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;

Page 27: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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.

Page 28: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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.

Page 29: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Formas de Representação dos Algoritmos

Descrição narrativa Ex: “Receita de um bolo”

Separar os ingredientesBater os ovos em neve na batedeiraAcrescentar açúcar e farinha de trigoAcrescentar uma colher de manteigaAcrescentar uma colher de Fermento

em póColocar na formaColocar no forno e assarRetirar do fornoTirar da forma e servirFim do processo!

Page 30: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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));}

Page 31: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Formas de Representação dos Algoritmos

Representações Gráficas Fluxograma, por

exemplo

Page 32: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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.

Page 33: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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;

Page 34: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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

Page 35: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Linguagem, Compilador e IDE

Linguagem Conjunto de regras sintáticas e semânticas

usadas para definir um programa de computador;

Compilador 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.

Page 36: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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.

Page 37: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

IDEs de Pascal Turbo Pascal

Para download http://www.netdownloads.com.br/Download/2303/Turbo-Pascal-70.html

Page 38: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

IDEs de Pascal Free Pascal

Para download:http://www.freepascal.eti.br

Page 39: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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/fortran/abel/HOME%20MAT045%20-%20HOME%20PAGE/APOSTILAS%20FORTRAN%20FORMATO%20WORD/APOSTILA%2003%20algor%EDtimos%20e%20fluxogramas.doc

Page 40: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Alguns Conceitos e Comandos em Programação(Aula 4)

Christiano Lima Santos

Page 41: Http:// PROGRAMAÇÃO I 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

Page 42: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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

Page 43: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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;

Page 44: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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!

Page 45: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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;

Page 46: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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.

Page 47: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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>;

Page 48: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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 };

Page 49: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Bloco de código/comandos

Também conhecido como comando composto;

Um ou mais comandos agrupados a serem executados seqüencialmente sendo assim possível usá-los em onde somente um comando é permitido;

Em Portudol Início

... comandos ...

Fim

Em Pascal begin

... comandos...

... end;

Page 50: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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 r-value);

Em Portugol variável valor;

Em Pascal Variável := valor.

Page 51: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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(‘...’);

Page 52: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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);

Page 53: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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.

Page 54: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Estrutura Básica de um Programa em Pascalprogram <identificador>;[<cláusula uses>>][<declaração de rótulos>] 0;[<declaração de constantes>];[<declaração de subprogramas>;]

BEGINcomando1[; <comando> ];...corpo do programa}

END.

Page 55: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Expressões(Aula 5)

Christiano Lima Santos

Page 56: Http:// PROGRAMAÇÃO I 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

Page 57: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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.

Page 58: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Tipos de Expressões

Expressões Numéricas/Aritméticas Expressões Literais Expressões Relacionais Expressões Booleanas Expressões Constantes

Page 59: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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);

Page 60: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Operadores aditivos: adição e subtração (+, -); “ou” lógico (or); “ou” exclusivo (xor);

Page 61: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Expressões Literais

Operador de concatenação (+)

Page 62: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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 inteiros,

reais, caracteres e strings!

Page 63: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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.

Page 64: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Expressões Constantes

Ex: constX = 32768*2 – 1;S = ‘valor’ + ‘total’;K = 256 div 2;

Page 65: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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

Page 66: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Comandos Condicionais(Aula 6)

Christiano Lima Santos

Page 67: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Sumário

Comando Condicional If Definição Sintaxe

Comando Condicional Case Definição Sintaxe

Page 68: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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.

Page 69: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Comando Condicional If If Simples

Em Portugolse <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.

Page 70: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Comando Condicional If Obs: Comandos condicionais podem

ser aninhados Ex:

if <condição> thenif <condição> then

<comando>;

Page 71: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Comando Condicional If If Composto

Em Portugolse <condição> então

<comando1>senão

<comando2> Em Pascal

if <condição> então<comando1>

else<comando2>;

Aqui, nós dizemos que se a condição expressa for verdadeira, execute o comando1, caso contrário, execute o 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!

Page 72: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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;

Page 73: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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 thenbegin

if b2 thens1

endelse

s2; 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.

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).

Page 74: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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;

Page 75: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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;

Page 76: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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;

Page 77: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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: >, >=, <, <=, <>.

Page 78: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Comandos de Repetição(Aula 7)

Christiano Lima Santos

Page 79: Http:// PROGRAMAÇÃO I 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

Page 80: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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).

Page 81: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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 Portugolpara <variável> <início> até <fim> faça

<comando>

Sintaxe em Pascalfor <variável> := <expressão1> to / downto

<expressão2> do<comando>;

Page 82: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Comando For Funcionamento

1. A variável de controle e as expressões devem ser do mesmo tipo escalar ordinal;

2. Inicialmente a variável recebe o valor de expressão1;

3. 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;

4. Se o resultado do teste for verdadeiro, o comando do laço é executado;

Page 83: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Comando For Funcionamento (continuando)

5. 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);

6. 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.

Page 84: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Comando For

O que acontecerá em cada um desses casos for i := 0 to 10 do for i := 10 to 0 do for i := 10 downto 0 do for i := 0 downto 10 do

Page 85: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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;

Page 86: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Comando For

Observações (continuando) O que aconteceria com

for i := 1 to 10 doi := 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;

Page 87: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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 Portugolenquanto <exp-booleana> faça

<comando> Sintaxe em Pascal

while <exp-booleana> do <comando>;

Page 88: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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; Caso contrário, a expressão será sempre

verdadeira! Cuidados com a declaração do caso de

parada; 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;

Page 89: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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 Portugolrepita

<comando> [; <comando>]...até <exp-booleana>

Sintaxe em Pascalrepeat

<comando> [; <comando>]...until <exp-booleana>

Page 90: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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.

Page 91: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Comandos de Interrupção de Laços Continue

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;

Break Interrompe completamente a execução do

laço; Os comandos de execução não estão

disponíveis no Pascal padrão.

Page 92: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Funções e Procedimentos(Aula 8)

Christiano Lima Santos

Page 93: Http:// PROGRAMAÇÃO I 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

Page 94: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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;

Page 95: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Sintaxe de uma Funçãofunction <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;

Page 96: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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)

Page 97: Http:// PROGRAMAÇÃO I Christiano Lima Santos

http://www.computacao.gigamundo.com

Funções Literais chr(I) copy(S, inicio, comprimento) length(S) ord(C) DownCase(C) UpCase(C)

Page 98: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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;

Page 99: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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.

Page 100: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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;

Page 101: Http:// PROGRAMAÇÃO I Christiano Lima Santos

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