Buscar

Aula 01 - Introdução e Conceitos Básicos de programação em C

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 43 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 43 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 43 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

26/05/2013
1
João Monlevade, 26 de maio de 2013
Universidade Federal de Ouro Preto
Campus João Monlevade
Prof. Mateus Ferreira Satler
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER2
1 •Sistemas de Numeração•Sistemas de Numeração
2 •Sistemas Computacionais•Sistemas Computacionais
4 •Sistemas Operacionais•Sistemas Operacionais
5 •Algoritmos – Introdução•Algoritmos – Introdução
26/05/2013
2
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Como fazer a conversão entre o sistema 
decimal e o sistema utilizado num 
computador?
HEXADECIMAL
DECIMAL BINÁRIO
3
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
4
26/05/2013
3
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
5
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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
26/05/2013
4
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Sistema Decimal:
◦ Como Funciona
0
1
2
3
4
5
6
7
8
9
10 Zera e vai-um
8
26/05/2013
5
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Sistema Binário ou de Base 2
◦ Usa notação posicional e possui dois algarismos 
distintos: 0 e 1.
00
01
10
11
Zera e vai-um
9
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Usa notação posicional e possui dois algarismos distintos: 0 e 1.
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
 Problema:
◦ como converter 2358(10)
para a base 2?
◦ E 100101(2) para a base 10?
10
26/05/2013
6
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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
8 8
9 9
10 A
11 B
12 C
13 D
14 E
15 F
Decimal Hexadecimal
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
11
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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
12
26/05/2013
7
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
13
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Conversão de Base
◦ Converter o número 18 em decimal para binário
14
26/05/2013
8
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Conversão Binário ↔ Hexadecimal
◦ Ex.: Hexadecimal em Binário:
8 4 2 1
◦ (9)16 = (1 0 0 1)2 (isto é, 8 + 1 = 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
16
26/05/2013
9
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Conversão Binário ↔ Hexadecimal
◦ Ex.: Binário em hexadecimal:
8 4 2 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
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Resumo:
DECIMAL
÷2
x2n
tabela
x16n
BINÁRIOHEXADECIMAL
÷16
18
26/05/2013
10
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Hardware
◦ Corresponde à parte material, aos componentes físicos 
do sistema. É o computador propriamente dito.
 Software
◦ Conjunto de programas (instruções arranjadas 
logicamente) e dados.
Peopleware
(usuário)
Software
(programas)
Hardware
(máquina)
19
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Estrutura de um Computador Digital
20
26/05/2013
11
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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
22
26/05/2013
12
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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” – termobiná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.
23
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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
◦ 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;
24
26/05/2013
13
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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
25
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Memória Principal
◦ Representação de uma memória de 1 KB:
◦ O processador acessa o conteúdo de um byte a partir do 
endereço desse byte.
No byte de 
endereço 2 está 
armazenado o 
código ASCII do
caractere “A”.
26
26/05/2013
14
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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 virtual da 
memória principal – Memória Virtual.
CPU MemóriaPrincipal
Memória
Secundária
27
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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
26/05/2013
15
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Linguagens 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.
29
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Linguagens 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
30
26/05/2013
16
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
31
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
32
26/05/2013
17
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
33
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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:
 Esta instrução ordena que o conteúdo do endereço 0A3516da memória seja somado (1016) ao acumulador (registrador especial usado para acumular resultados) e que o resultado 
fique guardado no acumulador.
34
26/05/2013
18
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
35
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
36
26/05/2013
19
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Linguagem C
◦ Linguagem de programação que será utilizada 
durante a disciplina
◦ 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.
37
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Linguagem C
◦ 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.
38
26/05/2013
20
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 É 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.
39
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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).
40
26/05/2013
21
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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
41
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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”
42
26/05/2013
22
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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
43
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
44
26/05/2013
23
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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”;
45
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Conceitos:
◦ Processo: é um evento considerado como uma sequê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.
46
26/05/2013
24
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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”;
◦ 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.
47
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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”;
48
26/05/2013
25
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
49
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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:
◦ Sequência Simples
◦ Alternativa
◦ Repetição
 “A arte de programar consiste na arte de 
organizar e dominar a complexidade” (Dijkstra)
50
26/05/2013
26
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
51
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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
52
26/05/2013
27
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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
53
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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, ambiguidades e 
imprecisões.
54
26/05/2013
28
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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 ideias 
contidas nos algoritmos.
55
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Fluxograma
◦ Principais formas geométricas usadas em fluxogramas.
56
26/05/2013
29
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Fluxograma
◦ Principais formas geométricasusadas em fluxogramas.
57
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
58
26/05/2013
30
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
59
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
60
26/05/2013
31
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
◦ 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.
61
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 Pseudolinguagem
◦ Representação de um Algoritmo na Forma de 
Pseudolinguagem:
principal
{
<declaração_de_variáveis>
<comandos>
}
62
26/05/2013
32
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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");
}
}

63
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
64
26/05/2013
33
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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).
65
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 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.
66
26/05/2013
34
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
◦ CodeBlocks: IDE disponível para Linux, Mac e 
Windows
 http://www.codeblocks.org/downloads
◦ Download gratuito
67
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
68
26/05/2013
35
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
69
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
70
26/05/2013
36
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
71
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
72
26/05/2013
37
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
73
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
74
26/05/2013
38
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
75
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
76
26/05/2013
39
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
77
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
78
26/05/2013
40
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
79
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
80
26/05/2013
41
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
81
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
82
26/05/2013
42
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
83
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
84
26/05/2013
43
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
85
CEA 030 – Programação de Computadores I
PROF. MATEUS FERREIRA SATLER
 IDE - CodeBlocks
86

Outros materiais