Buscar

Aula 01 - Introdução - Lab Programação

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

2
3
Como fazer a conversão entre o sistema decimal e o 
sistema utilizado num computador?
HEXADECIMAL
DECIMAL BINÁRIO
4
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
É 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
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
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
0
1
2
3
4
5
6
7
8
9
10 Zera e vai-um
9
00
01
10 Zera e vai-um
11
Usa notação posicional e possui dois algarismos distintos: 
0 e 1.
10
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
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 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 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
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
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
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
DECIMAL
÷2
x2n
tabela
x16n
BINÁRIOHEXADECIMAL
÷16
18
19
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
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
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
É 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
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;
25
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
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
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 
virtual da memória principal Memória Virtual.
Memória
Principal
Memória
Secundária
Memória Virtual
CPU MemóriaPrincipal
Memória
Secundária
28
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
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
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
Algoritmoou
programa
traduzido para
linguagem de 
máquina
31
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 detodo o 
programa
Executa um 
comando e 
volta
Linguagem
de
Alto Nível
Tradutor
Linguagem
de
Máquina Execução
32
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
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
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
É 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
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
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
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
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
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
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
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
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
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
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
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. 
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
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
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
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
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
Cálculo da média de umaluno: 
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
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
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
= 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
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
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
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
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
Representação de um Algoritmo na Forma de 
Pseudolinguagem :
principal
{
<declaração_de_variáveis> 
<comandos> 
}
60
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
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
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
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
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
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
É 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
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 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
A linguagem C é amplamente utilizada, 
principalmente no meio acadêmico
O sucesso do sistema operacional Unix 
auxiliou na popularização do C
A linguagem C é considerada simples
72
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
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
Um computador é constituído de quatro unidades básicas: 
unidade de entrada, 
unidade de saída,
unidade de processamento central e 
memória.
75
Unidades devem se comunicar entre si.
Ex.: Teclado -> Memória -> CPU
Comunicação é feita através de uma 
linguagem
76
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 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
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
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
CodeBlocks: IDE disponível para Linux e 
Windows
http://www.codeblocks.org/downloads
Download gratuito
81
82
Criando um Programa.
83
84
85
86
87
88
89
90
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
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
Toda linguagem de programação deve seguir uma 
sintaxe.
A sintaxe são regras detalhadaspara 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
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