Sei sulla pagina 1di 13

Ambiente Moodle Laboratrio de Fundamentos de Programao

Prof. Carlos F. S. Costa Departamento de Informtica Sistema de comunicao online e depsito de material didtico
www.din.uem.br/webclass2 cdigo disciplina: LFC2012 cdigo acesso: LFC01032012 login acesso: ra@uem.br/sua senha

Novo local de aulas


NPD (Bl 110): prximo da DAA
1

T01: lab 01 T03: lab 02

Introduo
Todo trabalho realizado por um computador baseado na manipulao das informaes contidas em sua memria.
instrues, comandam o funcionamento da mquina e determinam a maneira como devem ser tratados os dados. dados, correspondem poro das informaes a serem processadas pelo computador.

Tipos de Dados
os dados so representados pelas informaes a serem tratadas (processadas) por um computador.
numricos
inteiro real

literais lgicos (booleanos)


3

integer real char / string boolean


4

Tipos Primitivos (ou bsicos)

Tipo Inteiro
dados numricos positivos ou negativos, excluindo-se destes qualquer nmero decimal ou fracionrio

Numrico

Literal

Lgico

{ ..., -3, -2, -1, 0, 1, 2, 3, ...}

Inteiro

Real
5 6

Tipo Inteiro - Exemplos


0 7 +7 -7 nmero inteiro zero nmero inteiro positivo sete nmero inteiro positivo sete nmero inteiro negativo sete

Tipo Real (1/2)


dados numricos positivos ou negativos e nmeros decimais ou fracionrios
12.05 - n real positivo com duas casas decimais 255. - n real positivo com zero casas decimais 0.75 - n real positivo com duas casas decimais -11.3 - n real negativo com uma casa decimal -0.55 - n real negativo com duas casas decimais
7 8

Tipo Real (2/2)


H uma diferena entre 0, que um dado do tipo inteiro, e 0. (ou .0 ou 0.0) que um dado do tipo real. Portanto, a simples existncia do ponto decimal serve para diferenciar um dado numrico do tipo inteiro de um do tipo real.
0.0 0. - n real com uma casa decimal - n real com zero casas decimais
9

Tipo Literal (1/2)


sequncia de caracteres contendo letras, dgitos e/ou smbolos especiais (tabela de cdigos ASCIIAmerican Standard Code for Information Interchange) caracter, alfanumrico, cadeia de caracteres, ou ainda, do ingls, string os dados literais so representados nos programas pela coleo de caracteres, delimitada em seu incio e trmino com a aspas simples (')
10

A Tabela ASCII (American Standard Code for Information Interchange) usada pela maior parte da indstria de computadores para a troca de informaes.

Tipo Literal (2/2)


o tipo literal possui um comprimento dado pelo nmero de caracteres nele contido
'Brasil' - literal de comprimento 6 - literal de comprimento 4 - literal de comprimento 5 - literal nula, comprimento 0 - literal de comprimento 1
12

Cada caractere representado por um cdigo de 8 bits, ou seja, um byte. 28 = 256 caracteres: 0 31 Caracteres de Controle 32 127 ASCII Normal 128 255 ASCII Estendida
11

'255.' '-0.55' '' '0'

Tipo Lgico (ou booleano)


representam dois nicos valores lgicos possveis
falso, negativo, 0, false verdadeiro, positivo, 1, true

Programa = Algoritmo + Estrutura de Dados

booleanos
devido a significativa contribuio de BOOLE rea da lgica matemtica

flags, sinalizadores, aberto/fechado, ...


13

A todo momento durante a execuo de qualquer tipo de programa os computadores esto manipulando informaes, representadas pelos diferentes tipos de dados, armazenadas em sua memria.
14

Memria
Constituida por um nmero finito de localizaes (ou clulas) onde so armazenados os dados. Existe um sistema de endereamento da memria que permite identificar unicamente cada localizao (ou clula) da memria, esta identificao conhecida como endereo.

A Arquitetura da Memria
Cada clula de memria mais conhecida como byte. Um byte um agrupamento de 8 bits, numerados em ordem descrente de 7 at 0.
Byte 7
15

4 3

0 bit
16

Nmeros da Memria
byte = 8 bits, representam um nico caractere 1 Kilobyte (KB) = 1024 bytes 1 Megabyte (MB) = 1024 KB 128 MB = (128 * 1024KB) * 1024 bytes 128 MB = 134.217.728 de caracteres

Representao esquemtica das clulas de memria de um computador.

Endereo 0 1 2 3 4

Informao
= Clula = um Byte = um caractere

localizao da clula
17 18

Armazenamento da literal chico na mmoria de um computador.

Variveis
O acesso de informaes na memria bastante ilegvel e difcil de se trabalhar. Para contornar esta situao criou-se o conceito de varivel, que uma entidade destinada a guardar uma informao. Basicamente, uma varivel possui trs atributos: um nome, um tipo de dado associado mesma e a informao por ela guardada. uma informao classificada como varivel quando tem a possibilidade de ser alterada em algum instante no decorrer do tempo.
19 20

Endereo 0 1 2 3 4

Informao c (99) 01100011 h (104) 01101000 i (105) 01101001 c (99) 01100011 o (111) 01101111
localizao da clula

= Clula = um Byte = um caractere

cdigo ASCII representao binria do cdigo ASCII

Regras para nomes (1/2)


As seguintes regras devem ser seguidas na formao de nomes de variveis ou identificadores: um identificador uma sequncia de um ou mais caracteres alfabticos e numricos, caracteres de sublinhado de qualquer tamanho (somente os primeiros 63 so significativos); o primeiro caractere de um identificador deve ser uma letra ou um caractere de sublinhado _; no so permitidos smbolos grficos, operadores ou espaos em branco no nome.
21

Regras para nomes (2/2)


os nomes de identificadores no so sensveis a letras maisculas e minsculas, mas usualmente cada uma das palavras de um identificador inicia-se com uma letra maiscula, exemplos:
codigoDoCliente ou saldoCredorDoCliente; cdItem, CDITEM e cditem referem-se ao mesmo identificador.

Cdigo, 10Salario, Salario Minimo, Brasil, so exemplos de nomes invlidos


22

Palavras Reservadas
Alm das regras de formao de nomes, uma varivel, ou qualquer outro nome a ser definido pelo programador, no pode ser uma das palavras reservadas da linguagem. As palavras reservadas so os nomes dos tipos primitivos, os comandos da linguagem e quaisquer outros elementos pertencentes sintaxe dessa linguagem. begin continue label while byte end longint type do if integer case function repeat then record var goto until else break const for char
23

Declarao de Variveis
so posies de memria utilizadas para armazenar informaes referenciadas dentro do programa seus valores podem sofrer alteraes
var NomeDoMes: I, J, N: Preco, Juros: Flag: nome da varivel (identificador) string; integer; real; boolean; tipo do dado
24

Estrutura de Dados:

Manipulao: I J N Preco Juros NomeDoMes Flag := := := := := := := 0; 5; 50; 150.00; 0.15; 'Fevereiro'; True;

Sintaxe p/ Declarao de Variveis


var identificador
:

var NomeDoMes: I, J, N: Preco, Juros: Flag:

string; integer; real; boolean;

integer real

char boolean obs. Este esquema utilizado para ilustrar a sintaxe de intrues chamado de Diagrama Sinttico.
25

Representao dos Dados na Memria I 0 Juros 0.15 J 5 N 50 NomeDoMes Fevereiro Preco 150.00 Flag True
26

O conceito de expresso em termos computacionais est intimamente ligado ao conceito de expresso (ou frmula) matemtica, onde um conjunto de variveis e constantes numricas relacionam-se por meio de operadores aritmticos compondo uma frmula que, uma vez avaliada, resulta num valor. O conceito de expresso aplicado computao assume uma conotao mais ampla: uma expresso uma combinao de variveis, funes, constantes e operadores, e que, uma vez avaliada, resulta num valor.
27

Expresses
B

Tringulo de base (B) e altura (H)

rea = 0,5 x B x H Area := 0.5 * B * H;

matemtica computacional

A frmula da rea do tringulo utiliza trs variveis: B e H, que contm as dimenses do tringulo, e rea, onde guardado o valor calculado (resultado da avaliao da expresso). H tambm, uma constante (0,5) e o operador de multiplicao (x), que aparece duas vezes na expresso.
28

Operadores
Operadores so elementos funcionais que atuam sobre operandos e produzem um determinado resultado. A expresso 3 + 2 relaciona dois operandos (os ns 3 e 2) por meio do operador de adio (+). unrios, quando atuam sobre um nico operando. Ex. o sinal de (-) na frente de um nmero, cuja funo inverter seu sinal. binrios, quando atuam sobre dois operandos. Ex. soma, subtrao, multiplicao e diviso.
29

Expresses
regra computacional que sempre especifica um valor como resultado operadores resultado
aritmticos lgicos literais relacionais numrico lgico literal lgico

30

Operadores aritmticos
+ * / div mod adio subtrao multiplicao diviso real diviso inteira resto da diviso

Elementos da operao de diviso: dividendo 17 2 16 8 1 divisor quociente resto

var dividendo, divisor: integer; quociente, resto: integer; begin dividendo := 17; divisor := 2; quociente := dividendo div divisor; { resultado 8 } resto := dividendo mod divisor; { resultado 1 } end.
31 32

5 4 1

2 2

5 div 2
33

17 3 15 5 2

17 div 3
34

5 mod 2

17 mod 3

Tipo do resultado de expresses utilizando operadores aritmticos.


var A, B, C: integer; X, Y, Z: real;

Operadores lgicos
not and or xor negao lgica e lgico conjuno ou lgico disjuno ou exclusivo lgico

A + B + C A + B + Z A / B A div B A mod B X / Y

expresso de resultado inteiro expresso de resultado real expresso de resultado real expresso de resultado inteiro expresso de resultado inteiro expresso de resultado real
35 36

Tabela-verdade dos operadores lgicos (ou booleanos).

Representao da operao lgica AND por meio de um circuito eltrico com interruptores em srie.

A V V F F

B V F V F

not(A) not(B) A and B A or B A xor B F F V V F V F V V F F F V V V F F V V F

A V V F F
37

B V F V F

A and B V F F F
38

Bateria

Lmpada

Representao da operao lgica AND por meio de um circuito eltrico com interruptores em srie.

Representao da operao lgica AND por meio de um circuito eltrico com interruptores em srie.

A V V F F

B V F V F

A and B V F F F
39

A
A B

B V F V F

A and B V F F F
40

V V

Bateria

Lmpada

F F

Bateria

Lmpada

Representao da operao lgica AND por meio de um circuito eltrico com interruptores em srie.

Representao da operao lgica OR por meio de um circuito eltrico com interruptores em paralelo.

A V V F F

B V F V F

A and B V F F F
41

A
A B

B V F V F

A or B V V V F
Bateria

A B

V V

Bateria

Lmpada

F F

Lmpada

42

Representao da operao lgica OR por meio de um circuito eltrico com interruptores em paralelo.

Representao da operao lgica OR por meio de um circuito eltrico com interruptores em paralelo.

A V V F F

B V F V F

A or B V V V F
Bateria

A B

A V V
Lmpada

B V F V F

A or B V V V F
Bateria

A B

F F

Lmpada

43

44

Representao da operao lgica OR por meio de um circuito eltrico com interruptores em paralelo.

Operadores relacionais (1/2)


= <> > < >= <= in igual a diferente de maior que menor que maior igual a menor igual a pertence a (pertinncia)
46

A V V F F

B V F V F

A or B V V V F
Bateria

A B

Lmpada

45

Operadores relacionais (2/2)


Variveis: var a, b: integer; Atribuies: a := 2; b := 3;

Exemplificando as Relaes (1/2)


Representao matemtica:
5
n = 5 (n = 5)

Representao computacional:

5
n < 5 (n < 5)

Expresses lgicas (testes lgicos) a = b a <> b a > b a < b a >= b a <= b

resultado falso verdadeiro falso verdadeiro falso verdadeiro


47

5
n 5 (n <= 5)

5
n > 5 (n > 5)

5
n 5 (n >= 5)
48

Exemplificando as Relaes (2/2)


Representao matemtica:
5
n # 5 (n <> 5)

Operadores literais
Expresses literais so aquelas cujo resultado da avaliao um valor literal. concatenao de strings (+), toma-se duas strings e acrescenta-se (concatena-se) a segunda delas ao final da primeira.

Representao computacional:

9
n # 5, e n # 9 ((n <> 5) and (n <> 9))

9
n = 5, ou n = 9 ((n = 5) or (n = 9))

9
n < 5, ou n > 9 ((n < 5) or (n > 9))

9
n 5, e n 9 ((n >= 5) and (n <= 9))
49

'Ordem'

'e'

' Progresso'

'Ordeme Progresso'
50

Precedncia de operadores
Primeiro Segundo Terceiro Quarto not, +, - (unrios) *, /, div, mod, and (multiplicativos) +, -, or, xor (aditivos) =, <, >, <>, <=, >=, in (relacionais)

Comando de Atribuio (:=) Varivel := Expresso;


Semntica do comando de atribuio: 1. Substitui as variveis da expresso pelos seus respectivos valores; 2. Avalia as subexpresses obedecendo a prioridade dos operadores; 3. Atribui (armazena) o valor resultado da expresso no endereo correspondente varivel. Obs. caso o tipo do resultado da expresso no for do mesmo tipo da varivel ocorrer um erro de incompatibilidade de tipos.
51 52

Notas:
a utilizao de parnteses alteram a precedncia dos operadores operadores de mesma precedncia, da esquerda para a direita

Potrebbero piacerti anche