Buscar

Aula9-Inf1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Aula 9 - 27/09/2006 1
Informática I
Aula 9
http://www.ic.uff.br/~bianca/informatica1/
Aula 9 - 27/09/2006 2
Ementa
– Histórico dos Computadores
– Noções de Hardware e Software 
– Microprocessadores
– Sistemas Numéricos e Representação de Dados
– Estrutura e Organização da Informação 
– Linguagens de Programação
– Sistemas Operacionais 
– Redes de Computadores e Internet 
– Engenharia de Software 
– Softwares Aplicativos 
– Aspectos Legais do Software 
Aula 9 - 27/09/2006 3
Introdução: 
Linguagens de Programação
• Importante primeiro saber o conceito de algoritmo.
• Um algoritmo é uma seqüência finita e não ambígua de 
instruções para executar uma tarefa específica.
• É parecido com uma receita, mas é mais complexo 
porque pode incluir:
– Repetição de passos até que uma condição seja satisfeita.
– Testes de condições lógicas para executar a tarefa.
• Algoritmos podem ser descritos em linguagem próxima 
da natural.
• Porém, para implementar um algoritmo é necessário 
descrevê-lo de maneira que ele possa ser executado no 
computador.
– Deve ser descrito em uma linguagem de programação.
Aula 9 - 27/09/2006 4
Representação de algoritmos
Problema Algoritmo Programa
Fase de resolução
do problema
Fase de implementação
(utilização de uma linguagem de
programação)
Deve ser inteligível para
pessoas construirem e 
modificarem.
Deve ser inteligível para 
os computadores.
As linguagens de programação diferem na maneira como elas descrevem 
os algoritmos, mas todas devem ser capazes de representar qualquer 
algoritmo.
Aula 9 - 27/09/2006 5
Os Passos de um Algoritmo
• Um algoritmo é uma 
seqüência de passos.
• Cada passo é de um dos 
seguintes três tipos:
1. Uma operação elementar.
2. Uma operação de controle 
especificando uma seleção
entre uma seqüência de 
passos.
3. Uma operação de controle 
especificando uma 
repetição entre uma 
seqüência de passos.
Aula 9 - 27/09/2006 6
Operações Elementares
• As operações elementares podem ser do 
seguintes tipos:
– Operações de atribuição
• É a operação de atribuir um valor a uma variável.
• O valor pode ser o resultado de:
– Expressões aritméticas (+,-,*,/,...)
– Expressões lógicas (E, OU, NÃO,...)
– Expressões relacionais (>,<,=,...)
– Operações de entrada e saída de dadaos
Aula 9 - 27/09/2006 7
Ex: Algoritmo para encontrar o 
maior número numa lista
Algoritmo MaiorNúmero
Entrada: Uma lista de números L
Saída: O maior número da lista
maior← L0
Para cada item na lista L
≥1:
Se item > maior, então 
maior ← item
Retornar maior
Repetição
Condição
Aula 9 - 27/09/2006 8
Linguagem de Máquina
• O conjunto de instruções de máquina de 
um computador pode ser considerado 
uma linguagem de programação.
– É a linguagem de máquina. 
• Não é muito amigável ao programador.
– É difícil expressar e entender algoritmos 
complexos em linguagem de máquina,
– Torna a implementação mais sujeita a erros.
Aula 9 - 27/09/2006 9
Compiladores
• O desenvolvimento de 
compiladores tornou possível 
a programação em linguagens 
diferentes da linguagem de 
máquina.
• Compiladores são programas 
que traduzem um programa 
de uma linguagem de alto 
nível para uma linguagem de 
máquina.
– Pergunta: em que linguagem foi 
escrito o primeiro compilador?
Compilador
Programa em 
linguagem 
de alto nível
Programa em 
linguagem 
de máquina
Aula 9 - 27/09/2006 10
Tipos de Linguagens de 
Programação
• Linguagens de baixo nível: Assembler.
• Linguagens não estruturadas: Cobol e Basic.
• Linguagens procedurais: C, Pascal, Fortran, Ada, 
Modula 2 e Modula 3.
• Linguagens funcionais: Prolog, LISP e Scheme.
• Linguagens orientadas a objeto: Simula, Smalltalk, C++ 
e Java.
• Linguagens específicas: SQL, HTML, Perl.
– Restritas a um domínio de aplicação específicos.
– Não são propriamente linguagens de programação 
• Linguagens visuais: Simulink, Visual Basic e Delphi.
Aula 9 - 27/09/2006 11
Linguagens de Baixo Nível
• As instruções correspondem quase diretamente ao 
código da máquina.
• São conhecidas como linguagens Assembly ou 
linguagens de montagem.
• Assembler é o programa que faz a tradução da 
linguagem Assembly para o código de máquina.
• A tradução não é chamada de compilação e sim 
montagem, porque é bem mais simples que a tradução 
de linguagens de alto nível.
• Cada processador tem a sua linguagem Assembly
própria, de acordo com a sua arquitetura.
Aula 9 - 27/09/2006 12
Instruções básicas da 
Linguagem Assembly x86
• MOV: move dados.
– MOV AX,3 ; o registrador AX recebe o valor 3.
– MOV AX,BX ; o registrador AX recebe o valor do registrador BX.
• ADD: adição de inteiros
– ADD AX,3 ; AX=AX+3
– ADD AX,BX ; AX=AX+BX
• SUB: subtração de inteiros
– SUB AX,3 ; AX=AX-3
– SUB AX,BX ; AX=AX-BX
• JMP: pular para uma instrução
• JNZ (jump not zero): pular para uma instrução se o 
acumulador não tiver o valor zero.
Aula 9 - 27/09/2006 13
Diretivas da Linguagem 
Assembly x86
• Diretivas não são traduzidas diretamente em código de 
máquina.
• Exemplos:
– %DEFINE: Diretiva de definição de constante
%DEFINE SIZE 100
MOV AX, SIZE
– Rótulos (labels) que marcam instruções.
MOV AX, 10
MOV BX, 1
TOPO: ADD BX, AX
SUB AX, 1
JNZ TOPO
ADD CX, 10
O Assembler substitui o 
rótulo TOPO pelo valor do
endereço da instrução na
memória.
O Assembler 
substitui todas as 
ocorrências de 
SIZE pelo valor 
100.
Aula 9 - 27/09/2006 14
MaiorNumero em Assembly
%DEFINE SIZE 100
MOV AX,[L] ;guarda o maior
MOV BX,SIZE ;guarda o tamanho da lista
LOOP: ADD L,1 ;vai para próximo elemento
MOV CX,[L] ;carrega próximo elemento
SUB BX,1
CMP CX,AX
JBE ABAIXO
MOV AX,CX
ABAIXO: CMP BX,0
JNE LOOP 
Aula 9 - 27/09/2006 15
Usos de Assembly
• Alguns tipos de código tem que ser escritos em 
Assembly.
– O código da BIOS que inicializa um computador.
– A comunicação entre o sistema operacional e o 
hardware.
• Ainda existe um debate se os compiladores 
conseguem gerar código tão eficiente quanto 
código Assembly escrito a mão.
– Alguns videogames foram programados em 
Assembly até os anos 90.
• Quem programa um compilador tem que saber 
a linguagem Assembly para poder gerá-la.
Aula 9 - 27/09/2006 16
Linguagens Não-Estruturadas
• A semântica dos termos é mais genérica 
que na linguagem Assembly.
• Podem ser usadas em diferentes 
arquiteturas sem alteração.
• Com o surgimento de linguagens 
estruturadas tornaram-se obsoletas.
• Linguagens representativas: COBOL e 
Basic.
Aula 9 - 27/09/2006 17
Linguagem COBOL
• COBOL = COmmon Business Oriented Language = Linguagem 
Comum Orientada a Negócios.
• Essa linguagem destina-se a construir aplicativos comerciais, tais 
como controle de estoque, folha de pagamento e contabilidade
• Não é apropriada para cálculos científicos que envolvam equações
complexas.
• Encontra-se disponível em várias plataformas que vão do grande 
porte até computadores pessoais.
• Foi desenvolvida em 1959 e padronizada pela ANSI nas seguintes 
versões:
– COBOL-68 
– COBOL-74 
– COBOL-85 
– COBOL 2002 (inclui orientação a objetos)
Aula 9 - 27/09/2006 18
Programa Hello World 
em COBOL
IDENTIFICATION DIVISION. 
PROGRAM-ID. ProgramHelloWorld. 
PROCEDURE DIVISION. 
DisplayPrompt. 
DISPLAY “Hello World!". 
STOP RUN. 
Aula 9 - 27/09/2006 19
Linguagem BASIC
• BASIC = Beginner’s All-Purpose Symbolic Instruction Code
• Projetada em 1963 para permitir que estudantes pudessem usar 
computadores.
– Antes só matemáticos e cientistas usavam.
• Existem mais variações de BASIC do que de qualquer outra 
linguagem.
• Os oitos princípios de projeto de BASIC foram:
1. Ser fácil, para ser utilizada por iniciantes.
2. Ser uma linguagem de programação de uso geral. 
3. Permitir que especialistas adicionassem características avançadas, 
sem tornar a linguagem mais complicada para os iniciantes. 
4. Ser interativa.
5. Fornecer mensagens de erro claras e amigáveis. 
6. Responder rapidamente para programas pequenos. 
7. Não exigir o conhecimento do hardware do computador. 
8. Proteger o usuário do sistema operacional.
Aula9 - 27/09/2006 20
Linguagem BASIC
• Um programa em 
BASIC tem as suas 
linhas numeradas, 
sendo que é quase 
padrão usar números 
de 10 em 10.
• Os comandos são 
poucos e facilmente 
compreendidos em 
inglês.
10 INPUT A,B 
20 FOR I=A TO B STEP 1 
30 IF MOD(I,2)>0 THEN 50 
40 PRINT I 
50 NEXT I 
60 END 
Programa que imprime 
números pares entre A e B
Aula 9 - 27/09/2006 21
Alguns comandos BASIC
• LET: atribuição
– 10 LET A=1
• PRINT: imprime o resultado de uma expressão na tela
– 20 PRINT A,” É IGUAL A ”, B+C
• GOTO: redireciona a execução do programa 
– 50 GOTO 500
• IF-THEN: redireciona a execução condicionalmente.
– 500 IF B<C THEN GOTO 20 
• FOR-TO-STEP: para iniciar uma repetição.
– 510 FOR I=1 to 7 STEP 2
• NEXT: para indicar a continuação de uma repetição.
– 600 NEXT I

Outros materiais