Buscar

01.Introducao.e.Conceitos.Basicos

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 93 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 93 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 93 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Algoritmos
DCC 119
Introdução e Conceitos
Básicos
2
� Sistemas de Numeração
� Sistemas Computacionais
� Estrutura de um Computador Digital
� Sistemas Operacionais
� Algoritmo – Introdução
� Formas de representação de algoritmos
Sumário
3
Sistemas de Numeração
Como fazer a conversão entre o sistema decimal e o 
sistema utilizado num computador?
HEXADECIMAL
DECIMAL BINÁRIO
4
Base
� Base ou raiz de um sistema de numeração: é o 
número de algarismos distintos usados nesse sistema 
de numeração.
� Exemplo: o sistema decimal possui base 10, isto é, usa 
10 algarismos distintos.
5
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. 
� Por exemplo, no sistema decimal:
O valor absoluto 2 no número 2000 representa 
uma grandeza diferente do que 2 em 20.
6
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
7
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.
8
Sistema Decimal: 
Como Funciona
0
1
2
3
4
5
6
7
8
9
10 Zera e vai-um
9
Sistema Binário ou de Base 2
00
01
10 Zera e vai-um
11
Usa notação posicional e possui dois algarismos distintos: 
0 e 1.
10
Conversão Decimal - Binário
Problema: como converter 
2358(10) para a base 2?
E 100101 (2) para a base 
10?
Decimal Binário
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
11
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
12
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.
Ex.: Converter os números abaixo para a base 10
(10)16 ≡ 1 x 161 + 0 x 160 = (16)10
(F30A)16 ≡ 15 x 163 + 3 x 162 + 0 x 161 + 10 x 160 = 
(62218)10
(1101)2 ≡ 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = (13)10
(10001111)2 ≡ 27 + 23 + 22 + 21 + 20 = (143)10
13
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
14
Conversão de Base
18 (10) = 10010(2)
18 2
0 9 2
1 4 2
0 2 2
0 1 2
1 0
Converter os números decimais abaixo para binários 
15
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
16
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
17
Resumo
DECIMAL
÷2
x2n
tabela
x16n
BINÁRIOHEXADECIMAL
÷16
18
Introdução (Parte II)
Sistemas 
Computacionais
DCC119 – Algoritmos
19
Sistemas Computacionais
Peopleware
(usuário)
Software
(programas)
Hardware
(máquina)
Hardware: Corresponde à parte material, aos 
componentes físicos do sistema. É o 
computador propriamente dito.
Software: Conjunto de programas (instruções 
arranjadas logicamente) e dados.
20
Estrutura de um Computador 
Digital
Unidade Lógica
e Aritmética
Unidade de
Controle
Memória
Principal Memória
Secundária
Interfaces
Unidade Central de Processamento
Unidades
de
Entrada
Unidades
de
Saída
Periféricos
21
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.
22
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. 
A memória é considerada um meio temporário de 
armazenamento de dados, que permanecem ali somente 
durante o tempo em que estiverem sendo processados.
CPU
Memória
Principal
23
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”;
Byte (“BinarY Term” – termo binário)
� Conjunto de 8 bits, com o qual pode-se representar 
os números, as letras, os sinais de pontuação, etc...
Palavra (Word)
� É a quantidade de bits que a CPU processa por vez.
24
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
Exemplo: se a palavra (texto) TRADUTOR tiver sido transferida 
da memória para uma CPU de:
� 8 bits <= este precisará de 8 operações para processá-la;
� 16 bits <= este precisará de 4 operações para processá-la;
� 32 bits <= este precisará de 2 operações para processá-la;
� 64 bits <= este precisará de uma operação para processá-la;
Memória Principal 
Conceitos: Bit, Byte e Word
25
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
Exemplo: Qual a quantidade exata de bits que 
um DISQUETE de 1,44 MB possui?
1,44 MB = 1,44 * 220 * 8 = 12079595,52 bits
26
Memória Principal
Organização 
Representação de uma memória de 1 KB:
Endereço Byte
0
1
2 0 1 0 0 0 0 0 1
...
1023
No byte de 
endereço 2 está
armazenado o 
código ASCII do 
caracter “A”.
O processador acessa o conteúdo de um byte a partir do 
endereço desse byte.
Por que 1 KB = 210 bytes e não 103 bytes? ou
Quantos bits são necessários para representar um dos 
endereços da memória acima?
27
Memória Secundária 
A memória secundária pode ser composta por vários dispositivos 
capazes de ampliar a capacidade de armazenamento da memória 
principal. Eles podem armazenar grandes quantidades de dados e 
programas. 
A memória secundária é um tipo de memória não volátil, 
teoricamente permanente e mais lenta.
Outra função da memória secundária é oferecer uma expansão 
virtualda memória principal – Memória Virtual.
Memória
Principal
Memória
Secundária
Memória Virtual
CPU
Memória
Principal
Memória
Secundária
28
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);
29
Linguagens de Programação
Para que um algoritmo possa ser executado 
pelo computador, é necessário que ele seja 
programado, isto é, que ele seja transcrito 
para uma linguagem que o computador possa 
“entender”, direta ou indiretamente.
30
Tradutor
Os computadores só podem 
executar diretamente os 
algoritmos expressos em 
linguagem de máquina (que é
um conjunto de instruções 
capazes de ativar diretamente 
os dispositivos eletrônicos do 
computador).
Um tradutor é um programa que 
traduz um algoritmo que está
escrito em uma determinada 
linguagem de programação em 
linguagem de máquina.
Programa
Fonte
Tradutor
Programa
Objeto
Algoritmo ou
programa escrito
em uma
determinada
linguagem de 
programação
Algoritmo ou
programa
traduzido para
linguagem de 
máquina
31
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.
Programa
Fonte
Compilador
Interpretador
Programa
Objeto
Execução de
todo o 
programa
Executa um 
comando e 
volta
Linguagem
de
Alto Nível
Tradutor
Linguagem
de
Máquina Execução
32
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
Esta instrução ordena que o conteúdo do endereço 
0A3516 da memória seja somado (1016) ao acumulador 
(registrador especial usado para acumular resultados) 
e que o resultado fique guardado no acumulador. 
33
Principais Tipos de Linguagens 
de Programação
� Linguagem Simbólica 
(de Baixo Nível, de Montagem ou Assembler):
� Surgiu afim de simplificar a difícil programação da 
linguagem de máquina.
� Substitui os códigos binários por abreviações de nomes 
sugestivos que lembram a função da instrução.
� Exemplo de instrução: ADD X
� ADD ordena que o valor da variável X seja somado ao 
acumulador e que o resultado fique nele guardado.
� X é o nome da variável, criado pelo programador, que 
representa um endereço da memória (por exemplo 0A3516) 
que contém armazenado o valor desta variável. Surgimento do 
conceito de variável.
34
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.
Obs.: C é considerada uma linguagem de médio nível.
35
Sistema Operacional (SO)
É um programa especial que controla e coordena todas as 
operações básicas de um computador.
Ele controla a execução de outros programas e pode 
proporcionar funções como:
� controle de entrada e saída de dados;
� alocação de memória;
� gerenciamento de dados, etc ...
Os programas que compõem os SOs são, na maioria dos casos, 
escritos em linguagens de nível mais baixo, fazendo com que 
eles sejam mais rápidos e eficientes no gerenciamento de 
recursos do hardware.
36
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).
37
Algoritmos - Introdução
� O uso de algoritmos surgiu como uma forma 
de indicar o caminho para a solução dos mais
variados problemas.
� Dado um problema, as principais funções de 
um programador são:
� Entender perfeitamente o problema
� Escolher métodos para sua solução
� Desenvolver um algoritmo baseado nos métodos
� Codificar o algoritmo na linguagem de programação 
disponível 
38
Algoritmos - Introdução
� A parte mais importante da tarefa de 
programar é a construção de algoritmos.
� Segundo Niklaus Wirth:
� “Programação é a arte de construir e 
formular algoritmos de uma forma 
sistemática”
� “Algoritmos + Estruturas de Dados = 
Programas”
39
Como estudar algoritmos?
� O aprendizado de algoritmos não se consegue a 
não ser através de muitos exercícios.
� Algoritmos não se aprendem:
� Copiando algoritmos
� Estudando algoritmos
� Algoritmos só se aprendem:
� Construindo algoritmos
� Testando algoritmos
40
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”;
� Observação: toda ação deve ser executável em um 
tempo finito (do instante t0 até o instante t1);
� O que realmente interessa é o efeito produzido na execução 
da ação;
� Pode-se descrever o efeito de uma ação comparando o 
estado no instante t0 com o estado no instante t1. 
41
Algoritmos - Conceitos
� Estado de um dado sistema de objetos é o 
conjunto de propriedades desses objetos que 
são relevantes em uma situação considerada.
Ex.: “Livro na estante ou sobre a mesa”;
“Conjunto de valores das variáveis do
programa num certo instante da execução”; 
42
Algoritmos - Conceitos
� Processo: é um evento considerado como uma 
seqüência temporal de (sub) ações, cujo efeito total é
igual ao efeito acumulado dessas (sub) ações. 
� Observação: Pode-se, geralmente, considerar um 
mesmo evento como uma ação ou como um 
processo, dependendo se o interesse está em 
simplesmente no efeito total (da ação) ou se interessa 
um ou mais estados intermediários (do processo). Em 
outras palavras, se há interesse, uma ação pode ser 
geralmente detalhada em um processo. 
43
Algoritmos - Conceitos
� Padrão de Comportamento : em todo o evento 
pode-se reconhecer um padrão de comportamento, 
isto é, cada vez que o padrão de comportamento é
seguido, o evento ocorre.
� Ex.: seja a seguinte descrição:
“Uma dona-de-casa descasca as batatas para o jantar”
“traz a cesta com batatas do porão”;
“traz a panela do armário”;
“descasca as batatas”;
“devolve a cesta ao porão”; 
44
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.
O efeito de um evento fica totalmente determinado pelo 
padrão de comportamento e eventualmente pelo estado 
inicial. 
45
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”; 
46
Algoritmos - Conceitos
� Um algoritmo (ou programa) apresenta dois aspectos 
complementares: 
� Aspectoestá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. 
O problema central da computação consiste em relacionar 
esses dois aspectos, isto é, consiste no entendimento 
(visualização) das estruturas dinâmicas das possíveis 
execuções do algoritmo a partir da estrutura estática do seu 
texto.
47
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.
� Só são usadas três estruturas de controle:
� Seqüência Simples
� Alternativa
� Repetição
“A arte de programar consiste na arte de organizar e 
dominar a complexidade” (Dijkstra)
48
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”;
Um algoritmo deve ser determinístico, isto é, dadas as mesmas 
condições iniciais, deve produzir em sua execução, os mesmos 
resultados.
Só interessam os algoritmos executáveis em tempo finito. 
49
Algoritmos
Formas de representação
� Dentre as formas de representação de 
algoritmos mais conhecidas, 
sobressaltam:
� A Descrição Narrativa
� O Fluxograma Convencional
� O Diagrama de Chapin 
� A Pseudolinguagem
50
Descrição Narrativa
� Nesta forma de representação os algoritmos são
expressos diretamente em linguagem natural. 
� Como por exemplo, têm-se os algoritmos
seguintes: 
Troca de um pneu furado: 
� Afrouxar ligeiramente as porcas
� Suspender o carro
� Retirar as porcas e o pneu
� Colocar o pneu reserva
� Apertar as porcas
� Abaixar o carro
� Dar o aperto final nas porcas
51
Descrição Narrativa
Cálculo da média de um aluno: 
� Obter as notas da primeira e da segunda prova
� Calcular a média aritmética entre as duas
� Se a média for maior ou igual a 6, o aluno foi
aprovado, senão ele foi reprovado.
Obs:Esta representação é pouco usada na
prática porque o uso de linguagem natural 
muitas vezes dá oportunidade a más
interpretações, ambigüidades e imprecisões. 
52
Fluxograma
� Representação gráfica de algoritmos onde
formas geométricas diferentes implicam
ações (instruções, comandos) distintos.
� Tal propriedade facilita o entendimento
das idéias contidas nos algoritmos.
53
Fluxograma ou Diagrama
de Blocos
Principais formas geométricas usadas em fluxogramas.
= Início e final do fluxograma . 
= Operação de entrada de dados 
= Operação de saída de dados em impressora
= Operação de saída de dados em vídeo
= Operações de atribuição
54
Fluxograma
= Decisão
= Seta do fluxo de dados
= Conector utilizado quando é preciso
particionar o diagrama, colocando uma letra
ou número no símbolo para indentificar os
pares da conexão
55
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. 
56
Diagrama de Chapin
� O diagrama foi criado por Ned Chapin
� Substituir o fluxograma tradicional por um 
diagrama que apresenta uma visão hierárquica
e estruturada da lógica do programa
57
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. 
58
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.
� Esta representação é suficientemente geral para permitir
que a tradução de um algoritmo nela representado para
uma linguagem de programação específica seja
praticamente direta.
59
Pseudolinguagem
� Representação de um Algoritmo na Forma de 
Pseudolinguagem :
principal
{
<declaração_de_variáveis> 
<comandos> 
}
60
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");
}
}
61
Próxima aula...
� Conceito de tipos de dados;
� Variáveis;
� Operadores;
� Comandos de entrada e saída...
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
� Site da disciplina: http://www.algoritmosufjf.tk
Neste site você encontrará:
� Material Didático;
� Data das provas;
� Listas de Exercício;
� Horário e site de Monitoria;
� Links diversos etc.
64
Segunda Chamada
� O que é ?
É a prova que você poderá requerer no caso 
de perder uma das avaliações.
� Pode substituir uma prova já realizada?
Não. A prova só substitui uma avaliação que 
o aluno tenha faltado. Não há provas 
substitutivas em Algoritmos / Laboratório 
de Programação I.
65
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.
66
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.
67
Objetivos
� Representar uma sequência de ações a 
serem realizadas para obter uma resposta de 
um determinado problema usando uma 
linguagem de programação
� Base Teórica: Disciplina de Algoritmos
68
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.”
69
Linguagem de Programação
� Lista de 2500 (!) linguagens de programação
http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm
� Linha do tempo com aproximadamente 50 
linguagens de programação
http://www.levenez.com/lang/lang.pdf
70
Linguagem C
� Linguagem de programação que será utilizada 
durante a disciplina: linguagem C
� As bases da linguagem C foram desenvolvidas 
entre os anos 1969-1973, em paralelo com o 
desenvolvimento do sistema operacional Unix. O 
período mais criativo ocorreu em 1972
http://cm.bell-labs.com/cm/cs/who/dmr/chist.html
71
Linguagem C
� A linguagem C é amplamente utilizada, 
principalmente no meio acadêmico
� O sucesso do sistema operacional Unix 
auxiliouna popularização do C
� A linguagem C é considerada simples
72
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
73
Sistema Operacional - Linux
� 1991 : versão 0.02
� 1994 : versão 1.0
� O código do núcleo (kernel) é aberto: gratuito 
e disponível a todos
� Com base no kernel diversas distribuições 
podem ser encontradas: Ubuntu, Debian, 
Mandriva, Fedora ...
 http://www.linux.org/
74
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.
75
Organização básica de um 
computador
� Unidades devem se comunicar entre si.
Ex.: Teclado -> Memória -> CPU
� Comunicação é feita através de uma 
linguagem
76
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
77
Programas de computadores
� Programas devem ter uma finalidade específica:
� Games
� Processadores de Texto
� Navegadores (Browsers)
� Etc.
� Programa = conjunto de instruções que podem ser 
executadas pelo computador, de tal forma que a 
execução de subconjuntos destas instruções 
permitem a realização de ações mais genéricas.
78
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)
79
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.
� Editor, compilador, depurador, etc.
80
IDE – CodeBlocks
� CodeBlocks: IDE disponível para Linux e 
Windows
http://www.codeblocks.org/downloads
� Download gratuito
81
IDE – CodeBlocks
82
IDE – CodeBlocks
Criando um Programa.
83
IDE – CodeBlocks
84
IDE – CodeBlocks
85
IDE – CodeBlocks
86
IDE – CodeBlocks
87
IDE – CodeBlocks
88
IDE – CodeBlocks
89
IDE – CodeBlocks
90
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)
91
Visão Geral
� Editor ( módulo fonte em C) 
� Ex.: first.c
� Compilador ( gera o arquivo objeto)
� Ex.: first.o
� Lincador ( gera o executável)
� Ex.: first.exe
92
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.
93
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( )
{
}

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes