Você está na página 1de 13

Informtica e Programao 2011/2012

Noes Bsicas de Programao

Informtica e Programao (ESTGA)

18:13

Sistema Computacional

Processador (CPU) Memria (Principal ou Auxiliar) Dispositivos de Entrada/Sada (Input/Output)

Programas (Software)
Dados
Informtica e Programao (ESTGA) 18:13 2

@ Informtica e Programao ESTGA

Informtica e Programao 2011/2012

Representao da Informao

Informtica e Programao (ESTGA)

18:13

Representao da Informao
A informao armazenada em memria utilizando o sistema de numerao binria Um dgito binrio (0 ou 1) chama-se bit (Binary Digit) Um bit pode representar dois estados distintos, tal como uma lmpada que pode estar acesa (0) ou apagada (1) Para representar valores mais elevados utilizam-se arranjos de bits:
1 bit 0 1 2 bits 00 01 10 11 3 bits 000 001 010 011
Informtica e Programao (ESTGA)

4 bits 0000 0001 0010 0011 ...


18:13 4

@ Informtica e Programao ESTGA

Informtica e Programao 2011/2012

Representao da Informao
Cada bit que se adiciona no arranjo duplica o nmero de arranjos possveis N bits permitem representar 2N itens distintos

1 bit 21 = 2 items 2 bits 22 = 4 items 3 bits 23 = 8 items 4 bits 24 = 16 items ...

Informtica e Programao (ESTGA)

18:13

Representao da Informao
A unidade Byte
por conveno: Byte = 8 bits 1 Byte permite representar 28=256 itens diferentes

Mltiplos do Byte
A capacidade da memria expressa no nmero de bytes que consegue armazenar
Kbyte (KB) Mbyte (MB) Gbyte (GB) Tbyte (TB) Pbyte (PB) Ebyte (EB) Zbyte (ZB) Ybyte (YB) 1024 bytes = 210 1KB um kilobyte 1024x1024 bytes = 220 1MB um mega byte 1024x1024x1024 bytes = 230 1GB um giga byte 1024x1024x1024x1024 bytes = 240 1TB um tera byte 1024x1024x1024x1024x1024 bytes = 250 1PB um peta byte 1EB um exa byte 1ZB um zeta byte 1YB um yotta byte

1024x1024x1024x1024x1024x1024 bytes = 260

1024x1024x1024x1024x1024x1024x1024 bytes = 270

1024x1024x1024x1024x1024x1024x1024x1024 bytes = 280

Informtica e Programao (ESTGA)

18:13

@ Informtica e Programao ESTGA

Informtica e Programao 2011/2012

Representao da Informao
Representao da Informao
Cdigo ASCII (American Standard Code for Information Interchange)
Cdigo de 8 bits utilizado para representar os caracteres da comunicao escrita (letras, dgitos, pontuao, caracteres especiais) Os cdigos da tabela ASCCII foram implementados de forma sistemtica para permitir ao computador efectuar as operaes sobre caracteres (comparao, etc.)

(amostra da tabela do cdigo ASCII)


Informtica e Programao (ESTGA) 18:13 7

Processamento da Informao
RAM CPU
instrues lgicas e aritmticas Registos
(memria local)

endereo de memria 0 1 2 3 4 5

operao leitura (instrues, dados) operao escrita (instrues, dados)

00100011 10100111 01111011 11001100 10000011 00001001

endereo para leitura/escrita clulas de memria

Programa - Conjunto de instrues, escritas num cdigo compreendido pelo computador (linguagem mquina), que especificam de forma no ambgua como o mesmo deve ser executado.
Informtica e Programao (ESTGA) 18:13 8

@ Informtica e Programao ESTGA

Informtica e Programao 2011/2012

Programas
Cada tipo de computador tem a sua prpria linguagem mquina na qual os programas so codificados. Um programa s pode ser executado num determinado computador se estiver codificado nessa mesma linguagem.

1. 2. 3. 4. 5.

0001 0011 0011 1011 1101 0111 0001 1001 1111 0001 1101 1111 0000 1100 0101 1101 0001 0011 0011 1011

Exemplo de um programa em linguagem mquina

Linguagem mquina: apropriada para a o computador mas no para o programador


Informtica e Programao (ESTGA) 18:13 9

Linguagens de Programao
Linguagem de Programao
Sistema formal de regras de descrio, com sintaxe e semntica bem definidas, capaz de representar um programa de computador.

Classificao quanto ao grau de abstraco:


Linguagens de baixo nvel (linguagem mquina, assembly) Linguagens de alto nvel (Pascal, C, C++, Java, Visual Basic, )

Informtica e Programao (ESTGA)

18:13

10

@ Informtica e Programao ESTGA

Informtica e Programao 2011/2012

Linguagens de Programao
3 Gerao

iva = custo * taxa

2 Gerao LOAD custo MULT taxa STOR iva

1 Gerao 0001 0011 0011 1011 1101 0111 0001 1001 1111 0001 1101 1111

Informtica e Programao (ESTGA)

18:13

11

Linguagens de Programao
Linguagens de alto nvel Linguagem mquina

Mais prximas da linguagem natural Utilizam nmeros, palavras, smbolos Cdigo portvel (independncia face ao hardware) No so diretamente entendidas pela mquina

Menos natural Utilizam somente 0s e 1s Cdigo no portvel (dependncia face ao hardware) Diretamente entendida pela mquina

Informtica e Programao (ESTGA)

18:13

12

@ Informtica e Programao ESTGA

Informtica e Programao 2011/2012

Conceitos da Programao
Como traduzir linguagem de alto nvel em linguagem mquina?
2 solues: compilao vs interpretao

Programa (linguagem alto nvel) Cdigo fonte

Compilador

Programa (linguagem mquina)

Cdigo objecto
1 instruo de cada vez

Programa (linguagem alto nvel) Cdigo fonte

Interpretador

Instruo (linguagem mquina)

Execuo

Informtica e Programao (ESTGA)

18:13

13

Conceitos da Programao
Compilador: programa especializado que verifica a correo sinttica de um programa escrito numa linguagem de alto nvel e o traduz para linguagem de baixo nvel Os compiladores tradicionais so especficos para uma linguagem de programao e um tipo de computador (processador) Cdigo fonte: programa escrito numa linguagem de alto nvel Cdigo objeto: programa escrito numa linguagem de baixo nvel Cdigo executvel (binrio): programa escrito numa linguagem de baixo nvel
Informtica e Programao (ESTGA) 18:13 14

@ Informtica e Programao ESTGA

Informtica e Programao 2011/2012

Ciclo de Desenvolvimento de Programas

V F

Informtica e Programao (ESTGA)

18:13

15

Linguagem de Programao C
Criada em 1972 por Dennis Ritchie (Laboratrios Bell - AT&T)
http://cm.bell-labs.com/cm/cs/who/dmr/

Objetivo inicial do C: escrita do sistema operativo UNIX

ANSI C: em 1983 a American National Standards Institute (ANSI) formou um comit para definio do standard da linguagem C o ANSI C

Informtica e Programao (ESTGA)

18:13

16

@ Informtica e Programao ESTGA

Informtica e Programao 2011/2012

Estrutura de um Programa em C
#include <stdio.h> ... main() { int a, b, c; ... printf(Hello World); ... }
declarao de ficheiros a incluir na fase de compilao (diretivas do pr-processador) declarao de funes, constantes e variveis globais funo principal do programa (bloco de instrues delimitado por chavetas) declarao de constantes e variveis locais

corpo instrues do programa

ver pg 1 a 31

Informtica e Programao (ESTGA)

18:13

17

Desenvolvimento de Programas em C
#include <stdio.h> main() { int a, b; printf(Hello world); }

cdigo fonte em C (ficheiro hello.c)

Compilador cdigo objeto (ficheiro hello.o) Linker

0010010001010110100011

cdigo binrio (ficheiro hello.exe)

Informtica e Programao (ESTGA)

18:13

18

@ Informtica e Programao ESTGA

Informtica e Programao 2011/2012

Ambiente de Desenvolvimento

http://www.codeblocks.org
Informtica e Programao (ESTGA) 18:13 19

Desenho de Programas
Programar escrever cdigo numa dada linguagem A parte mais difcil de desenvolver um programa no saber como expressar a soluo do problema em determinada linguagem de programao, mas sim, desenvolver um mtodo para resoluo do problema o Algoritmo O algoritmo independente da linguagem de programao

Informtica e Programao (ESTGA)

18:13

20

@ Informtica e Programao ESTGA

Informtica e Programao 2011/2012

Desenho de Programas
Fases de especificao e resoluo de um problema:
Anlise do problema Desenvolvimento da soluo (Algoritmo) Programao da soluo (Programa) Depurao/Debug (traagem e teste da soluo) Finalizao da documentao Manuteno
Informtica e Programao (ESTGA) 18:13 21

Desenho de Programas
Exemplo de um algoritmo
Modo de preparao de um bolo de chocolate
125 g de manteiga 1 tablete de chocolate amargo (200 g) 250 g de acar 100 g de farinha 1 colher (ch) de fermento em p 6 ovos 1 colher (sopa) de manteiga

Informao Inicial Sequncia de aes

1. 2. 3. 4. 5.

6.

Tire duas barras tablete e guarde-as. Derreta o restante chocolate, juntamente com a manteiga, em banho-maria. Bata as gemas com o acar at obter uma mistura cremosa. Junte-lhe o chocolate e manteiga derretidos, a farinha, previamente misturada com o fermento, e as claras em castelo, mexendo sempre. Vaze o preparado numa forma untada com manteiga e polvilhada com farinha e leve ao forno para cozer. Entretanto, prepare a cobertura derretendo o restante chocolate e a colher de manteiga em banho-maria. Uma vez o bolo cozido, deixe arrefecer e cubra-o com este creme.

Resultado
Informtica e Programao (ESTGA) 18:13 22

@ Informtica e Programao ESTGA

Informtica e Programao 2011/2012

Desenho de Programas
Algoritmo:
Sequncia de aces, que aplicadas sobre determinada informao inicial, permitem dela obter em tempo finito e de modo no ambguo um determinado resultado final.
1 problema N algoritmos
Caractersticas importantes de um algoritmo: Finito

Critrios de escolha: Correo Clareza e simplicidade Eficincia

No ambguo Ter zero ou mais entradas Ter uma ou mais sadas Efectivo

Informtica e Programao (ESTGA)

18:13

23

Desenho de Programas
Na fase de desenvolvimento de um algoritmo podemos utilizar:
Linguagem Natural linguagem corrente do dia-a-dia Pseudo-cdigo linguagem auxiliar de representao de alto nvel Diagrama de Fluxo (fluxograma) - notao grfica da soluo
INCIO
Linguagem Natural

Pseudo-cdigo

Declara custo, taxa L custo, taxa iva = custo * taxa Escreve iva FIM

Calcular valor do IVA, multiplicando o custo pela taxa Escrever o valor do IVA

Fluxograma

Leitura do custo do produto e respectiva taxa do IVA

INCIO

custo,taxa

iva = custo * taxa

iva

FIM
Informtica e Programao (ESTGA) 18:13 24

@ Informtica e Programao ESTGA

Informtica e Programao 2011/2012

Desenho de Programas
Depurao/Teste da soluo:
Detetar, localizar e corrigir erros (debugging): Erro sinttico - resulta da no conformidade de uma instruo com as regras sintticas da linguagem de programao. Detetados pelo compilador Erro semntico (lgicos) - o programa no executa a ao pretendida. Resulta de erros no desenho do algoritmo ou sua implementao Erro de Run-time - produzido durante a execuo do programa (p. ex. diviso por zero, overflow, violao da dimenso limite de uma estrutura de dados, etc.)
Informtica e Programao (ESTGA) 18:13 25

@ Informtica e Programao ESTGA

Você também pode gostar