Professional Documents
Culture Documents
DCC 119
Introdução e Conceitos
Básicos
Sumário
Sistemas de Numeração
Sistemas Computacionais
Sistemas Operacionais
Algoritmo – Introdução
2
Sistemas de Numeração
DECIMAL BINÁRIO
HEXADECIMAL
3
Base
Base ou raiz de um sistema de numeração: é o
número de algarismos distintos usados nesse sistema
de numeração.
4
Notação Posicional
É o nome dado à notação usada por alguns
sistemas numéricos, onde cada algarismo
tem, além do seu valor absoluto, um valor de
posição dentro de cada número desse sistema
em que ele aparece.
5
Exemplo de Sistema de Numeração
que não usa Notação Posicional
O sistema de numeração romano é constituído
de um conjunto N de 7 algarismos diferentes,
cada um representando um valor fixo,
independentemente de sua posição relativa no
número:
N = (I, V, X, L, C, D, M)
Indicando, respectivamente, os valores: 1, 5, 10,
50, 100, 500 e 1000
Observe que neste sistema não há representação
para o zero.
Tente multiplicar XIII x XVII
6
Sistema Decimal ou de Base 10
Possui 10 algarismos distintos (algarismos
arábicos = 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9) e usa
notação posicional.
Ex.: 7 = 7 x 100
35 = 30 + 5 = 3 x 101 + 5 x 100
81,508 = 8 x 101 + 1 x 100 + 5 x 10-1
+ 0 x 10-2 + 8 x 10-3
Obs.: Na notação posicional (qualquer que seja
a base) o primeiro algarismo a esquerda da
vírgula, representa uma potência da base com
expoente igual a 0 (zero) e esse expoente é
inteiro e crescente para a esquerda.
7
Sistema Decimal:
Como Funciona
0
1
2
3
4
5
6
7
8
9
10 Zera e vai-um
8
Sistema Binário ou de Base 2
Usa notação posicional e possui dois algarismos distintos:
0 e 1.
00
01
10 Zera e vai-um
11
9
Conversão Decimal - Binário
Decimal Binário
0 0
1 1
2 10
3 11 Problema: como converter
4 100 2358(10) para a base 2?
5 101 E 100101 (2) para a base
6 110 10?
7 111
8 1000
9 1001
10 1010
10
Sistema Hexadecimal ou de
Base 16
Usa notação posicional e possui 16 algarismos distintos:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F.
Decimal Hexadecimal Decimal Hexadecimal
0 0 8 8
1 1 9 9
2 2 10 A
3 3 11 B
4 4 12 C
5 5 13 D
6 6 14 E
7 7 15 F
11
Conversão de Base
Conversão da base b (qualquer) para decimal:
Para converter um número na base b em decimal, basta
somar os produtos dos algarismos pelas potências da
base b que eles representam.
12
Conversão de Base
Conversão de decimal para a base b (qualquer):
Para converter um número decimal para a base b, devem
ser feitas divisões inteiras sucessivas por b até que se
encontre quociente 0 (zero). O número correspondente na
base b será formado pelos restos das divisões, da última
até a primeira divisão, nessa ordem.
Ex.: Converter o número decimal abaixo para hexadecimal
45286 16
6 2830 16
14 176 16
E 0 11 16
11 0
B (45286)10 ≡ (B0E6)16
13
Conversão de Base
Converter os números decimais abaixo para binários
18 2
0 9 2
1 4 2
18 (10) = 10010(2)
0 2 2
0 1 2
1 0
14
Conversão
Binário ↔ Hexadecimal
Como 16 é potência de 2 (24 = 16), nesta conversão,
cada algarismo hexadecimal dá origem a quatro
algarismos binários.
Tabela de conversão:
Hexadecimal Binário
1 0 0 0 1
2 0 0 1 0
4 0 1 0 0
8 1 0 0 0
Valor da posição 8 4 2 1
15
Conversão
Binário ↔ Hexadecimal
Ex.: Hexadecimal em Binário:
8 4 2 1
(9)16 ≡ (1 0 0 1)2 ( isto é, 1 + 8 = 9)
(D)16 ≡ (1 1 0 1)2
(13A)16 ≡ ( 0 0 0 1 | 0 0 1 1 | 1 0 1 0 )2
(FB09)16 ≡ ( 1 1 1 1 1 0 1 1 0 0 0 0 1 0 0 1)2
Binário em hexadecimal:
8 1
(1 0 0 1)2 ≡ (9)16
(0 0 1 0 | 1 1 0 1 | 1 0 1 1 | 0 1 0 1)2 ≡ (2DB5)16
(1 0 0 0 | 1 0 0 1 | 1 0 1 1 | 1 1 1 1)2 ≡ (89BF)16
16
Resumo
÷16 ÷2
x16n x2n
tabela
17
Introdução (Parte II)
Sistemas
Computacionais
DCC119 – Algoritmos
18
Sistemas Computacionais
19
Estrutura de um Computador
Digital
Unidade Central de Processamento
Interfaces
Unidades Unidades
de de
Entrada Saída
Periféricos
20
Processador
Também chamada de microprocessador ou unidade de
processamento central (UPC ou CPU) e é
responsável pelo gerenciamento de todas as funções
do sistema.
A CPU distingue somente dois estados físicos,
representados pelos números 0 e 1 – dígitos
binários.
É dividida em:
Unidade Aritmética e Lógica: encarregada de realizar
operações aritméticas e lógicas elementares.
Unidade de Controle: encarregada de coordenar os
diversos componentes.
21
Memória Principal
(RAM – Random Access Memory)
É a unidade encarregada de armazenar os programas e
dados ( recebidos das unidades de entrada) para imediato
processamento pela CPU.
Após a execução de cada instrução do programa, a CPU
armazena o resultado gerado na memória principal.
Memória
CPU Principal
22
Memória Principal
Conceitos: Bit, Byte e Word
Bit (“Binary DigiT” – dígito binário)
Unidade de Informação, tem somente os valores “0”
ou “1”;
Palavra (Word)
É a quantidade de bits que a CPU processa por vez.
23
Memória Principal
Conceitos: Bit, Byte e Word
CPU ou micro de: Palavra de:
8 bits 8 bits = 1 byte = 1 caractere
16 bits 16 bits = 2 bytes = 2 caracteres
32 bits 32 bits = 4 bytes = 4 caracteres
64 bits 64 bits = 8 bytes = 8 caracteres
128 bits 128 bits = 16 bytes = 16 caracteres
24
Memória Principal
Unidades de Medida
Unidades Usual Informática
Kilo (K) 103 210 bytes
Mega (M) 106 220 bytes
Giga (G) 109 230 bytes
Tera (T) 1012 240 bytes
Memória Memória
Principal Secundária
27
Interface
Representa o meio de comunicação entre duas
partes do sistema. Exemplo: disco e
computador, teclado e computador,
computador e impressora.
Existem dois tipos de interface:
- serial: os dados são enviados um bit de
cada vez (cabos com um único fio);
- paralela: um byte de cada vez (cabos com 8
fios);
28
Linguagens de Programação
29
Tradutor
Os computadores só podem
Algoritmo ou
executar diretamente os programa escrito
Programa
em uma
algoritmos expressos em Fonte determinada
linguagem de máquina (que é linguagem de
programação
um conjunto de instruções
capazes de ativar diretamente
Tradutor
os dispositivos eletrônicos do
computador).
Um tradutor é um programa que
Algoritmo ou
traduz um algoritmo que está Programa programa
traduzido para
escrito em uma determinada Objeto
linguagem de
linguagem de programação em máquina
linguagem de máquina.
30
Processo de Tradução
O processo de tradução pode ser feito por:
Compilação: Lê, analisa e traduz todos os comandos do programa
fonte, criando o programa objeto.
Interpretação: Traduz ou interpreta cada comando ao executá-lo.
Linguagem
de
Máquina Execução
Linguagem Tradutor
de Programa
Alto Nível Compilador Execução de
Objeto todo o
Programa programa
Fonte
Executa um
Interpretador comando e
volta
31
Principais Tipos de Linguagens
de Programação
Linguagem de Máquina ( ou Absoluta ):
É a única linguagem que atende ao computador,
por satisfazer o seu projeto lógico.
Instruções representadas por códigos binários.
Exemplo de instrução:
0001 0000 0000 1010 0011 0101
1 0 0 A 3 5
Cód. de Operação Campo de Operando
33
Principais Tipos de Linguagens
de Programação
Linguagem Automática ( ou de Alto Nível ):
São semelhantes às linguagens usadas para descrever o
problema que se deseja resolver, ressaltando a linguagem
profissional a que o usuário está acostumado.
Existem várias linguagens automáticas: FORTRAN
(FORmula TRANslation), ALGOL, PLI, APL, BASIC, LISP,
SNOBOL, PASCAL, ADA, MODULA etc.
Exemplo de comando: Y = 3 + X;
Ordena que a constante 3 seja somado ao valor da variável X e
que o resultado seja armazenado como novo valor da variável Y.
35
Sistema Operacional (SO)
Os SOs podem ser classificados em:
Monousuário: somente um usuário pode processar
dados por vez na CPU;
Multiusuário: vários usuários podem acessar “ao
mesmo tempo” a CPU de um sistema;
Monotarefa: somente um programa de cada vez é
executado pela CPU.
Multitarefa: vários programas podem ser executados
de maneira concorrente pela CPU (eles concorrem
pela mesma CPU).
36
Algoritmos - Introdução
37
Algoritmos - Introdução
38
Como estudar algoritmos?
Algoritmos só se aprendem:
Construindo algoritmos
Testando algoritmos
39
Algoritmos - Conceitos
Ação: é um evento que ocorre num período de tempo
finito, estabelecendo um efeito intencionado e bem
definido.
Ex.: “Colocar o livro em cima da mesa”;
“Atribuir o valor 3,1416 em uma variável”;
40
Algoritmos - Conceitos
41
Algoritmos - Conceitos
42
Algoritmos - Conceitos
43
Algoritmos - Conceitos
Essa descrição pode ser usada para descrever eventos
distintos (dias diferentes, batatas diferentes etc.).
Isso só é possível porque os eventos possuem o
mesmo padrão de comportamento.
44
Algoritmos - Conceitos
Algoritmo: é a descrição de um padrão de
comportamento, expressado em termos de um
repertório bem definido e finito de ações primitivas
que, com certeza, podem ser executadas.
Um algoritmo possui caráter imperativo, razão pela
qual uma ação em um algoritmo é chamada de
comando.
Ex.: algoritmo para descascar batatas para o jantar:
“traga a cesta com batatas do porão”;
“traga a panela do armário”;
“descasque as batatas”;
“devolva a cesta ao porão”;
45
Algoritmos - Conceitos
Um algoritmo (ou programa) apresenta dois aspectos
complementares:
Aspecto estático: é a representação concreta do algoritmo
através de um texto contendo comandos que devem ser
executados numa ordem prescrita (atemporal).
Aspecto dinâmico: que é a execução do algoritmo no
tempo.
46
Algoritmos - Conceitos
A restrição a um número limitado de estruturas de
controle (de execução dos comandos do algoritmo)
permite reduzir o abismo existente entre o aspecto
estático e o dinâmico do algoritmo.
47
Algoritmos - Conceitos
A generalização do algoritmo para descascar batatas para o jantar
pode ser:
“traga a cesta com batatas do porão”;
“traga a panela do armário”;
se “saia é clara” então “coloque avental”;
enquanto “número de batatas é insuficiente” faça
“descasque uma batata”;
“devolva a cesta ao porão”;
49
Descrição Narrativa
Nesta forma de representação os algoritmos são
expressos diretamente em linguagem natural.
52
Fluxograma ou Diagrama
de Blocos
Principais formas geométricas usadas em fluxogramas.
= Operações de atribuição
53
Fluxograma
= Decisão
54
Fluxograma
A figura a seguir
mostra a
representação do
algoritmo de cálculo
da média de um
aluno sob a forma de
um fluxograma.
55
Diagrama de Chapin
56
Diagrama de Chapin
A figura abaixo apresenta um exemplo do tipo de
diagrama de Chapin para o algoritmo de cálculo da
média de um aluno.
57
Pseudolinguagem
Esta forma de representação de algoritmos, também
conhecida como pseudocódigo, português
estruturado ou portugol, é bastante rica em detalhes e,
por assemelhar-se bastante à forma em que os programas
são escritos, encontra muita aceitação, sendo portanto a
forma de representação de algoritmos que será adotada
nesta disciplina.
58
Pseudolinguagem
Representação de um Algoritmo na Forma de
Pseudolinguagem :
principal
{
<declaração_de_variáveis>
<comandos>
}
59
Pseudolinguagem
A seguir é mostrado a representação do algoritmo de cálculo
da média de um aluno na forma de um pseudocódigo
principal
{
real n1, n2, media;
leia(n1, n2);
media (n1 + n2)/2;
se (media >= 6)
{
imprima ("Aprovado");
}
senão
{
imprima ("Reprovado");
}
}
60
Próxima aula...
Conceito de tipos de dados;
Variáveis;
Operadores;
61
Laboratório de
Programação
DCC 120
Introdução e Conceitos Básicos
Informações Gerais
Total de Créditos: 2
Teste de Verificação de Conhecimento (TVC): 3
Média: 60
64
Segunda Chamada - Regras
Caso 1
O aluno que perder uma das avaliações tem direito, sem a necessidade de
justificativa, a fazer segunda chamada ao final do período letivo, sobre conteúdo
acumulado.
Caso 2
O professor responsável pela disciplina poderá conceder segunda chamada ao aluno
ausente em quaisquer das avaliações de conhecimento, desde que o mesmo
apresente requerimento, no prazo máximo de dois dias úteis, com a devida
justificativa de acordo com a legislação em vigor.
Sendo julgada procedente a justificativa, a segunda chamada será designada pelo
Professor, e versará sobre os mesmos tópicos da avaliação não realizada. Do
indeferimento caberá o recurso ao chefe de Departamento, no prazo de dois dias
úteis.
Como proceder?
Onde: Secretaria do DCC das 14h as 17h
Quando: Até dois dias úteis após a aplicação da prova
O que: Entregar requerimento preenchido e anexar justificativa.
Resultado do requerimento: Será divulgado no site da disciplina
Prova: Data e hora serão divulgados após o processamento dos requerimentos.
65
Informações Gerais
Bibliografia Básica:
GUIMARÃES, A. M. Algoritmos e estruturas de
dados. Rio de Janeiro: LTC, 1994.
KERNIGHAN, BRIAN W., RITCHIE, DENNIS M.
C: A linguagem de programação padrão. Rio
de Janeiro: Campus, 1989.
Bibliografia Complementar:
EVARISTO, JAIME. Aprendendo a Programar
Programando na Linguagem C. Edição Digital.
66
Objetivos
67
Linguagem de Programação
“É um conjunto de regras sintáticas e
semânticas usadas para definir um programa
de computador. Uma linguagem permite que
um programador especifique precisamente
sobre quais dados um computador vai atuar,
como estes dados serão armazenados ou
transmitidos e quais ações devem ser
tomadas sob várias circunstâncias.”
68
Linguagem de Programação
Lista de 2500 (!) linguagens de programação
http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm
69
Linguagem C
Linguagem de programação que será utilizada
durante a disciplina: linguagem C
70
Linguagem C
A linguagem C é amplamente utilizada,
principalmente no meio acadêmico
71
Sistema Operacional - Linux
Sistema instalado nos computadores: Linux
Criado inicialmente como um hobby pelo
estudante Linus Torvalds, na Universidade de
Helsinki (Finlândia).
Linus tinha um interesse especial pelo
Sistema Operacional Minix, baseado no
sistema Unix
72
Sistema Operacional - Linux
1991 : versão 0.02
1994 : versão 1.0
73
Organização básica de um
computador
Um computador é constituído de quatro unidades básicas:
unidade de entrada,
unidade de saída,
unidade de processamento central e
memória.
74
Organização básica de um
computador
Unidades devem se comunicar entre si.
75
Organização básica de um
computador
Linguagem para comunicação interna Linguagem de
máquina
Possui apenas dois símbolos: zero e um (bit – binary
digit)
Palavras da linguagem de máquina são sequências de
bits
76
Programas de computadores
Programas devem ter uma finalidade específica:
Games
Processadores de Texto
Navegadores (Browsers)
Etc.
77
Lógica de programação
Desenvolvimento de um programa requer a
utilização de um raciocínio ímpar em relação aos
raciocínios utilizados na solução de problemas de
outros campos do saber
Para resolver um determinado problema é
necessário que encontremos uma sequência de
instruções cuja execução resulte na solução da
questão
Programa = Algoritmo que pode ser executado em
um computador
Lógica de Programação = conjunto de raciocínios
utilizados para o desenvolvimento de algoritmos (e,
portanto, de programas)
78
IDE - Integrated Development
Environment
Ambiente Integrado de Desenvolvimento:
programa de computador que reúne
características e ferramentas de apoio ao
desenvolvimento de software com o objetivo
de agilizar este processo.
79
IDE – CodeBlocks
CodeBlocks: IDE disponível para Linux e
Windows
http://www.codeblocks.org/downloads
Download gratuito
80
IDE – CodeBlocks
81
IDE – CodeBlocks
Criando um Programa.
82
IDE – CodeBlocks
83
IDE – CodeBlocks
84
IDE – CodeBlocks
85
IDE – CodeBlocks
86
IDE – CodeBlocks
87
IDE – CodeBlocks
88
IDE – CodeBlocks
89
Criando seu primeiro programa
A geração do programa executável a partir do
programa fonte obedece a uma seqüência de
operações.
Editor ( módulo fonte em C)
Compilador ( gera o arquivo objeto)
Lincador ( gera o executável)
90
Visão Geral
Editor ( módulo fonte em C)
Ex.: first.c
91
Estrutura de um Programa em C
Toda linguagem de programação deve seguir uma
sintaxe.
A sintaxe são regras detalhadas para cada
construção válida. Estas regras estão relacionadas
com os tipos, as declarações, as funções e as
expressões.
Os tipos definem as propriedades dos dados
manipulados em um programa.
As declarações expressam as partes do programa,
podendo dar significado a um identificador, alocar
memória, definir conteúdo inicial, definir funções.
As funções especificam as ações que um programa
executa quando roda.
92
Programa Mínimo em C
Todo programa em C deve conter uma função
identificada por main (cuja tradução é principal).
Esta será sempre a primeira função do programa
a ser executada
main( )
{
93