Buscar

Computação Básica - Algoritmos Computacionais e Estrutura Sequencial

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

Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
COMPUTAÇÃO BÁSICA
Algoritmos Computacionais e Estrutura 
Seqüencial 
Prof. Bruno Macchiavello (bruno@cic.unb.br)Prof. Bruno Macchiavello (bruno@cic.unb.br)
Universidade de Brasília – UnB 
Instituto de Ciências Exatas – IE 
Departamento de Ciência da Computação – CIC 
Prof. Bruno Macchiavello 1
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Algoritmos Computacionais
• Um algoritmo computacional é uma seqüência de
instruções que sejam capaz de ser compreendidas
por um computador para manipular certos dados.
– Instruções: comandos que determinam a forma pela qual – Instruções: comandos que determinam a forma pela qual 
os dados devem ser tratados. Comandos que indicam ou 
computador realizar uma determinada tarefa básica.
– Dados: elementos recolhidos/fornecidos por diversos 
meios e que serão processadas pelo computador através 
das instruções. 
Prof. Bruno Macchiavello 2
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Dados em Algoritmos Computacionais
• Os dados de um algoritmo computacionais
podem ser de diferentes tipos, a classificação
deles é a seguinte:
– Dados Numéricos
– Dados Literais
– Dados Lógicos
Prof. Bruno Macchiavello 3
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Tipos de Dados – Dados Numéricos
• Numéricos inteiros
– Os números inteiros são aqueles que não possuem 
componentes decimais ou fracionários, podendo ser 
positivos ou negativos
Prof. Bruno Macchiavello 4
36 número inteiro positivo;
0 número inteiro;
-18 número inteiro negativo.
Exemplos de números inteiros:
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Tipos de Dados – Dados Numéricos
• Numéricos reais
– Os dados de tipo real são aqueles que podem
possuir componentes decimais ou fracionários, e
podem também ser positivos ou negativos.
Prof. Bruno Macchiavello 5
36.01 número real positivo com duas casas decimais;
166. número real positivo com zero (nenhuma) casa decimal;
-18.8 número real negativo com uma casa decimal;
0.0 número real com uma casa decimal;
0. Número real com zero (nenhuma) casa decimal.
Exemplos de números reais:
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Tipos de Dados – Dados Literais
• Dados Literais:
– Uma seqüência de caracteres contendo letras, dígitos e/ou
símbolos especiais.
– Também chamados de alfanumérico, cadeia de caracteres ou,
ainda, String.
– Usualmente são representados nos algoritmos pela coleção de– Usualmente são representados nos algoritmos pela coleção de
caracteres delimitada em seu início e fim com aspas (“ ”).
Prof. Bruno Macchiavello 6
“QUEM?” Literal de comprimento 5;
“ ” Literal de comprimento 1;
“cOmO!?#” Literal de comprimento 7;
“AbcDEFghi” Literal de comprimento 9;
“4+5-1=” Literal de comprimento 6;
“1” Literal de comprimento 1;
“ANA MARIA” Literal de comprimento 9;
Exemplos de dados literais:
É comum em algumas 
linguagens a diferenciação
entre um caracter (‘A’) e 
um conjunto de caracteres
(“Olá Mundo”).
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Tipos de Dados – Dados Lógicos
• Dados Lógicos
– São caracterizados como tipos lógicos, os dados com
valores verdadeiro e falso, sendo que este tipo de
dados poderá representar apenas um dos valores.
– É chamado por alguns de tipo booleano (matemático
George Boole).
– Se definimos que Verdadeiro = 1, e Falso = 0, então
um dado booleano = 1 BIT.
Prof. Bruno Macchiavello 7
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Tipos de Dados - Binários 
• Numéricos Binários
– Normalmente as linguagens de programação de alto
nível não proporcionam a possibilidade de criar um
dado numérico do tipo binário de mais de um BIT.
– Dado binário de um BIT é conhecido como dado
booleano.
Verificar em casa:
Como trabalhar com números binários de mais de um bit?
Dica: Verificar a função de Deslocamento (shift)
Prof. Bruno Macchiavello 8
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Conceitos Básicos de Algoritmos 
Computacionais
• Os conceitos básicos de um algoritmo
computacional são os seguintes:
– Constante
– Variáveis
– Palavras Reservadas
– Expressões Aritméticas 
– Expressões Lógicas 
– Comando de Atribuição e Entrada/Saída
Prof. Bruno Macchiavello 9
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Constantes
• Entendemos que um dado é uma constante quando
não sofre nenhuma variação no decorrer do tempo.
• Em relação à informática, é um espaço em memória
identificado por um nome conhecido comoidentificado por um nome conhecido como
identificador que pode conter dados de algum dos
tipos anteriormente mencionados.
• Os dados armazenados são o conteúdo, o
conteúdo não varia durante a execução de um
programa, ou seja, o valor é o mesmo do inicio ao
fim da execução do algoritmo.
Prof. Bruno Macchiavello 10
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Constantes
0x00000000
0x00000001
0x00000002
0x00000003
0x00000004
0x00000005
10110....011
10110....011
10110....011
10110....011
10110....011
10110....011
Prof. Bruno Macchiavello 11
BLOCO DE MEMORIA
•
•
•
0x00000005
0x00000006
0x00000007
0x00000009
0xFFFFFFFF
10110....011
10110....011
10110....011
10110....011
10110....011
•
•
•
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Constantes
0x00000000
0x00000001
0x00000002
0x00000003
0x00000004
0x00000005
10110011
10110011
10110011
10110011
10110011
10110011
Conteúdo
Prof. Bruno Macchiavello 12
BLOCO DE MEMORIA
•
•
•
0x00000005
0x00000006
0x00000007
0x00000009
0xFFFFFFFF
10110011
10110011
10110011
10110011
10110011
•
•
•
Endereços
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Constantes
Identificador: Nome da constante, é uma palavra que ao compilar o programa
é vinculado a um determinado endereço de memória. O identificador NÃO
pode mudar durante a execução de uma programa.
Conteúdo: Bits que representam um dado de um determinado tipo. Esse
conjunto de bits NÃOmuda durante a execução do programa.
Prof. Bruno Macchiavello 13
identificador
Conteúdo não 
modificável
Tipo: É o tipo de dados que o conteúdo da variável representa. O tipo de uma
constante NÃOmuda durante a execução de um programa.
CONSTANTE
Tipo
Departamentode Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Variável
• Um dado é classificado como variável quando tem a
possibilidade de ser alterado em algum instante no
decorrer do tempo.
• Em relação à informática, variável é um espaço na• Em relação à informática, variável é um espaço na
memória, identificado por um nome conhecido como
identificador, que pode conter dados de algum
determinado tipo.
• Os dados armazenados em uma variável são o seu
conteúdo. O conteúdo pode variar durante a
execução do programa à qual ele pertença.
Prof. Bruno Macchiavello 14
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Variável
Identificador: Nome da variável, é uma palavra que ao compilar o programa é
vinculado a um determinado endereço de memória. O identificador NÃO pode
mudar durante a execução de uma programa.
Conteúdo: Bits que representam um dado de um determinado tipo. Esse conjunto
de bits PODE MIUDAR em qualquer instante de tempo durante a execução do
programa.
Prof. Bruno Macchiavello 15
identificador
Conteúdo 
modificável
Tipo: É o tipo de dados que o conteúdo da variável representa. O tipo de uma
variável NÂOmuda durante a execução de um programa.
VARIÁVEL
Tipo
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Variável
• ESCOPO
– O escopo de uma variável de programa é a faixa de
instruções na qual a variável é visível
– Uma variável é visível em uma instrução se puder ser– Uma variável é visível em uma instrução se puder ser
referenciada nesta instrução
– Ex: O escopo de uma variável pode ser uma
determinada função dentro de um programa (variável
local), ou pode ser vista em todo o programa (variável
local).
Prof. Bruno Macchiavello 16
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Escopo 
Prof. Bruno Macchiavello 17
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Identificador
• Identificadores são conjuntos de caracteres, regido por
determinadas leis, que representam constantes, variáveis,
tipos, procedimentos, unidades, programas e campos de um
registro (estes itens serão analisados mais adiante no curso).
• Regras:
– O primeiro caractere deve ser uma letra;
– No conteúdo do identificador não pode conter caracteres especiais – No conteúdo do identificador não pode conter caracteres especiais 
(!@#$%&*/-+<>?), ou seja no identificador só podemos ter, após o 
primeiro caráter, letras, números e sublinhada ( _ );
– Nomes de variáveis escritas com letras maiúsculas serão 
diferentes de letras minúsculas (case sensitive);
– Nenhuma palavra reservada à ferramenta (linguagem de 
programação) poderá ser usada como nome de uma variável;
– Procure dar nomes significativos para a variável (mnemônicos), 
mas não muito longos.
– Não podem ter identificadores com o mesmo nome para dois 
objetos diferentes.
Prof. Bruno Macchiavello 18
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Identificador
• Existe uma tamanho máximo para um 
identificador?
– Depende da Linguagem da Programação:
• FORTRAN I (Máx. 6)
• COBOL (Máx. 30)
• C/C ++ (sem limite, depende do compilador)
• Java (sem limite)
Prof. Bruno Macchiavello 19
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Palavras Reservadas
• Palavras reservadas, são identificadores que já
foram usados pelo programa, ou seja se caso
utilizarmos uma destas palavras iremos infringir a
regra de que não se pode haver identificadores
repetidos.repetidos.
• Em ANSI C algumas das palavras reservadas são:
– auto, double, int, struct, break, else, long, switch, case,
enum, register, typedef, char, extern, return, union, const,
float, short, unsigned, continue, for, signed, void, default,
goto, sizeof, volatile, do, if, static, while.
Prof. Bruno Macchiavello 20
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exemplos de Nomes de Identificadores
• Identificadores validos:
– Alpha, X, BJ153, K7, Notas, Media, ABC, INPS,
FGTS, i, j, nome_1.
• Identificadores inválidos:
– 5X, E(13), A:B, X-Y, Nota/2, AWQ*, P&AA, nome 2.
Prof. Bruno Macchiavello 21
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Nomes Mnemônicos
• É sempre melhor usar nomes significativos (mnemônicos)
para a variáveis e constantes, mas não muito longos.
• Exemplo: para identificar 3 provas, identificadores
significativos são:
• “p1,p2,p3”• “p1,p2,p3”
• “prova1, prova2, prova3”
• “prova_1, prova_2, prova_3”.
• Não são significativos:
• “e1,p2,t3”
• “a,b,c”.
• Significativos, porém longos:
• “variavel_da_prova_um”,”variavel_com_o_valor_da_prova2”.
Prof. Bruno Macchiavello 22
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Declaração de Variáveis
• Declaração de Variáveis
– São declaradas no início (alocação de memória)
• Podem ser dos tipos: inteiro, real, literal, ou lógico
• Permite que o algoritmo saiba os tipos de operações que cada 
variável pode realizar
Prof. Bruno Macchiavello 23
identificador
DECLARAÇÃO DE VARIÁVEL
Tipo:
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Ao serem fornecidos um valor a ser pago e uma taxa para multa,
pois o pagamento está sendo feito após o vencimento, calcule o
Exemplo 2:
Dada uma lista de compras com o código, quantidade, e preço de
oito produtos, crie um algoritmo que escreva o valor total da
compra.
codigo : literal (ou string)
quantidade : inteiro
preço, valortotal : real
Exemplo 1:
Prof. Bruno Macchiavello 24
pois o pagamento está sendo feito após o vencimento, calcule o
valor da multa e o valor total a ser pago.
vlrconta, taxamulta, vlrmulta, vlrtotal : real
quilômetros : real
metros : inteiro
É solicitada a um motorista recém chegado de uma viagem a
quantidade de quilômetros por ele percorrida. O motorista
informa o solicitado e você deverá informar a ele a quantos
metros se refere à quantidade de quilômetros.
Exemplo 3:
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Expressões Aritméticas
• São aquelas cujo resultado da avaliação é do tipo
numérico, seja ele inteiro ou real. Somente o uso de
operadores aritméticos e variáveis numéricas (inteiras
ou reais) é permitido em expressões deste tipo.
Operador Operação Prioridade Exemplo
Prof. Bruno Macchiavello 25
Operador Operação Prioridade Exemplo
- Inversão de Sinal 1 -(-1) = 1
+ Manutenção de Sinal 1 +1 = 1
^ Exponenciação 2 9^2 = 81
* Multiplicação 3 6 * 7 = 42
/ Divisão 3 8 / 2 = 4
+ Adição 4 1 + 2 = 3
- Subtração 4 4 - 5 = -1
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
UniversidadeUniversidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Expressões Aritméticas
• Prioridade:
• 1 + 4 * 3 / 6 - 3 ^ 2
• 1 + 4 * 3 / 6 - 9
• 1 + 12 / 6 - 9
• 1 + 2 - 9• 1 + 2 - 9
• -6
• Prioridade:
• 1 + (4 * 3 / (6 – 3)) ^ 2
• 1 + (4 * 3 / 3) ^ 2
• 1 + (4) ^ 2
• 1 + 16
• 17
Prof. Bruno Macchiavello 26
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Expressões Lógicas 
• São aquelas cujo resultado da avaliação é um valor 
lógico (VERDADEIRO ou FALSO)
CONJUNÇÃO DISJUNÇÃO NEGAÇÃO
x y x E y x OU y NÃO(x)
V V V V F
Prof. Bruno Macchiavello 27
V F F V F
F V F V V
F F F F V
Operador Operação Prioridade Linguagem C
OU Disjunção 3 ||
E Conjunção 2 &&
NÃO Negação 1 !
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Expressões Lógicas 
• Operadores relacionais:
– Operadores utilizados para realizar comparações.
– Comparações só podem ser feitas entre variáveis do mesmo tipo.
– O resultado de uma comparação é sempre um valor lógico.
Operador Comparação Linguagem C
Prof. Bruno Macchiavello 28
Operador Comparação Linguagem C
= Igual ==
≠ Diferente !=
< Menor <
<= Menor ou Igual <=
> Maior >
>= Maior ou Igual >=
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Expressões Lógicas 
• Exemplos (V = Verdadeiro, F = Falso): 
Expressão Resultado
2 * 4 = 24 / 3 V
15 mod 4 < 19 mod 6 F
(2 < 5) e (15 / 3 = 5) V
• Notar que um número booleano é um bit onde V=1 e F=0.
Prof. Bruno Macchiavello 29
(2 < 5) ou (15 / 3 = 5) V
(3 >= 2) ou (8 < 7) V
(3 >= 2) e (8 < 7) F
(V) e (10 + 2 = 4 * 3) V
(0) e (5 = 5 + 0) F
(F) ou (1) V
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Comando de Atribuição
• Um comando de atribuição permite fornecer um
determinado valor a uma variável
• O tipo do dado deve ser compatível com o tipo
da variável.
• Exemplos:
• nota ← 10
• nome← “Joao”
Prof. Bruno Macchiavello 30
identificador valor ou expressão←
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Comandos de Entrada e Saída 
• Comandos que permitem a interação do usuário com o 
programa. (Entrada por teclado e saída por monitor de vídeo.) 
• Comando de entrada
leia (lista de variáveis) leia (lista de variáveis) 
� Ex: leia (nome, idade) 
• Comando de saída
escreva (lista de variáveis ou expressão literal) 
� Ex: escreva (nota_final) , escreva(“A nota final é:”, nota_final)
Prof. Bruno Macchiavello 31
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Estrutura Seqüencial
• A estrutura seqüencial de um algoritmo corresponde ao
fato que um conjunto de instruções será executado em
uma seqüência linear de cima para abaixo e dauma seqüência linear de cima para abaixo e da
esquerda para a direita, ou seja, na mesma ordem em
que foi escrito.
Prof. Bruno Macchiavello 32
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Pseudocódigo 
• O pseudocódigo é a escrita, por meio de regra predefinida, dos
passos a serem seguidos para a resolução de um problema. É o
resultado da análise e resolução de um problema exposto em um
enunciado.
• É uma forma para representação de algoritmos rica em detalhes.
Assemelha-se bastante à forma em que programas são escritos.
Prof. Bruno Macchiavello 33
Estrutura Básica de um Pseudocódigo
Algoritmo <nome>
Variáveis
<lista de variáveis>
Início
<bloco de comandos>
Fim
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Pseudocódigo – Declaração de Variáveis
Declaração de Variáveis em Pseudocódigo
Algoritmo DeclaraVariáveis
Variáveis
a : inteiro
Prof. Bruno Macchiavello 34
b : real
c : caractere
d : literal
Início
…
Fim
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Pseudocódigo – Comando de Atribuição
Atribuição de Variáveis em Pseudocódigo
Algoritmo AtribVariáveis
Variáveis
a : inteiro
Prof. Bruno Macchiavello 35
a : inteiro
Início
a ← 1
Fim
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Pseudocódigo – Entrada e Saída de Dados
Entrada e Saída de Dados em Pseudocódigo
Algoritmo EntradaDeValores
Variáveis
idade : inteiro
salario : real
nome : literal
Prof. Bruno Macchiavello 36
Início
Escreva (“Digite seu nome:”)
Leia (nome)
Escreva (“Digite sua idade:”) 
Leia (idade)
Escreva (“Digite seu salário:”)
Leia (salario)
Escreva (“Olá ”, nome, “ você tem ”, idade, “ e recebe ”, salario)
Fim
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Estrutura Seqüencial - Exemplo
A distribuidora MOTOSA, vende motos para consumidores. O custo ao
consumidor de uma moto nova é a soma do custo de fábrica com a
porcentagem da distribuidora e dos impostos (aplicados ao custo de
fábrica), e a porcentagem do vendedor (aplicado no custa da distribuidora)
A distribuidora esta de promoção, da um desconto de R$100 reais no valor
Prof. Bruno Macchiavello 37
A distribuidora esta de promoção, da um desconto de R$100 reais no valor
final por cada cupom de desconto que o consumidor levar na loja.
Supondo que a porcentagem do distribuidor seja de 28%, os impostos de
57% e do vendedor 5%, escreva um algoritmo que leia o custo de fábrica
da moto, a quantidade de cupons e imprima o valor da moto para o
consumidor antes dos descontos, o total de descontos e o valor final.
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Estrutura Seqüencial - Exemplo
Prof. Bruno Macchiavello 38
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Algoritmo MOTOSA
Variáveis
valor_fabrica, imposto, taxa_dist, taxa_vendedor, valor_consumidor, 
valor_final : real
no_cupons, descontos : inteiro
Início
Escreva (“Informe o valor de fábrica: ”)
Leia (valor_fabrica)
Escreva (“Informe o número de cupons: ”)
Leia (no_cupons)
impostos← valor_fabrica * 0.57
Prof. Bruno Macchiavello 39
impostos← valor_fabrica * 0.57
taxa_dist← valor_fabrica * 0.28
taxa_vendedor← (valor_fabrica + impostos + taxa_dist) * 0.05
descontos← 100 * no_cupons
valor_consumidor← valor_fabrica + impostos + taxa_dist + taxa_vendendedor
valor_final← valor_consumidor – descontos
Escreva (“O valor da moto é: ”, valor_consumidor)
Escreva (“O total de descontos é: ”, descontos)
Escreva (“O valor final é: ”, valor_final)
Fim
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputaçãoBásica
Estrutura Seqüencial - Exemplo
Algoritmo MOTOSA
Variáveis
valor_fabrica : real
no_cupons : inteiro
Início
Escreva (“Informe o valor de fabrica: ”)
Leia (valor_fabrica)
Prof. Bruno Macchiavello 40
Leia (valor_fabrica)
Escreva (“Informe o número de cupons: ”)
Leia (no_cupons)
Escreva (“O valor da moto é: ”, valor_fabrica * (1 + 0.57 + 0.28) + 
0.05 * valor_fabrica * (1 + 0.57 + 0.28))
Escreva (“O total de descontos é: ”, 100 * no_cupons)
Escreva (“O valor final é: ”, valor_fabrica * (1 + 0.57 + 0.28) + 
0.05 * valor_fabrica * (1 + 0.57 + 0.28) - 100 * no_cupons)
Fim
Sem variáveis auxiliares O algoritmo fica “poluído” 
e de dificil compreensão!
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Estrutura Seqüencial - Exercícios
2. Faça um algoritmo que leia a idade da pessoa expressa em anos, 
meses e dias e mostre-a expressa em horas.
1. Faça um algoritmo que leia um número inteiro e mostre seu sucessor e 
antecessor, e suas respectivas versões negadas.
Prof. Bruno Macchiavello 41
4. Sobre o salário bruto de um funcionário, são descontados 8% de INSS, 
10% de IR (imposto de renda) e, sobre o restante, 0,5% referente à 
filiação sindical. Para cada dependente (filhos), o funcionário ganhar R$ 
50,00. Ao ser fornecido o valor do salário bruto do funcionário, e a 
quantidade de dependentes, calcule e mostre o total de descontos, o total 
de acréscimo, e o salário líquido.
5. Faça um algoritmo que leia as dos 5 trabalhos e das 3 provas de um 
aluno de Computação Básica e calcule e mostre na tela o media final.
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Programação em C
Estrutura Básica de um Programa em C
#include <bibliotecas>
int main () {
<declaração de variáveis>
Prof. Bruno Macchiavello 42
<declaração de variáveis>
<instruções>
}
Uma biblioteca que normalmente sempre é inclusa é a biblitoeca “stdio.h”.
Incluir a biblioteca “stdio.h”, que significa Standard Input/Output e serve
para ler dados do teclado (standard input) e escrever na tela (standard
output). (Outra é a “stdib.h” que possue o comando system(“pause”) no
WINDOWS).
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Programação em C
Estrutura Básica de um Programa em C
#include <stdio.h>
#include <stdlib.h>
int main () {
<declaração de variáveis>
<instruções>
• Todo programa em C precisa da função principal (MAIN).
• A função MAIN é a primeira a ser execuada quando o
programa corre.
• As chaves “{“ e “}” corresponden ao Inicio e Fim de uma
função.
Prof. Bruno Macchiavello 43
<instruções>
}
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Operador Operação Linguagem C
= Igual/Igualdade ==
≠ Diferente/Desigualdade !=
< Menor <
<= Menor ou Igual <=
> Maior >
>= Maior ou Igual >=
OU Disjunção ||
Prof. Bruno Macchiavello 44
E Conjunção &&
NÃO Negação !
* Multiplicação *
/ Divisão /
+ Adição +
- Subtração -
mod Resto da Divisão %
← Atribuição =
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Tipo Linguagem C Bytes Faixa de valores
Literal Caracter, inteiro char 1 -128 a 127
Literal Caracter, inteiro unsigned char 1 0 a 255
Literal Caracter, inteiro signed char 1 -128 a 127
Inteiro int 4 -2.147.483.648 a 2.147.483.647
Inteiro unsigned int 4 0 a 4.294.967.295
Inteiro signed int 4 -2.147.483.648 a 2.147.483.647
Inteiro short int 2 -32.768 a 32.767
Inteiro unsigned short int 2 0 a 65.535
Prof. Bruno Macchiavello 45
Inteiro unsigned short int 2 0 a 65.535
Inteiro signed short int 2 -32.768 a 32.767
Inteiro long int 4 -2.147.483.648 a 2.147.483.647
Interio signed long int 4 -2.147.483.648 a 2.147.483.647
Inteiro unsigned long int 4 0 a 4.294.967.295
Real float 4 ±3.4028234e±38
Real double 8 ±1.79769313486223157
e±308
Real long double 10 Limites máximos da linguagem (INF)
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Programação C – Tipos de Variáveis 
(resumo) 
Tipo Linguagem C
Inteiro int
Real float
Literal caracter char
Prof. Bruno Macchiavello 46
Literal caracter char
Literal string char nome[tamanho]
ex: char endereco[30]
lógico Definir como int, que será “falso” 
quando for zero, e “verdadeiro” 
quando não for zero.
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Programação C – Declaração de Variáveis e 
Constantes
Declaração de Variáveis:
<tipo> <indetificador1>,. . . ,<identificadorN>;
– Exemplo:
• int num,val;
• float media, p1,p2;
• char sexo, est_civ;
Uma constante pode ser declarada ou definida. Declaração:
const <tipo> <identificador1> = <valor ou expressão>; 
emplo:
• const int valor = 10;
• const float taxa = 1.5;
• const char letra = ‘S’;
Prof. Bruno Macchiavello 47
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Programação C - Define
• A diretiva #define associa um identificador a um
valor. É utilizado para definir constantes, vincular
uma informação determinada à um identificador, ou
criar macros.
#define <nome_macro> <valor ou expressão>#define <nome_macro> <valor ou expressão>
• É usual definir o nome das macros com letras 
maiúsculas. 
– Exemplos:
• #define UM 1
• #define MSG “Digite S para sair”
Prof. Bruno Macchiavello 48
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Programação em C – Atribuição e Fim de 
comando
• Em ANSI C o comando de atribuição é o
símbolo “=“
Variável = Expressão ou Valor
– Exemplo: letra = “A”; a = 10; num = val = 20;
num = num +1; media = 7.5;
• Utiliza-se um ponto-e-vírgula (;) para indicar a
separação de uma ação da a outra (ou seja
entre uma instrução e outra).
Prof. Bruno Macchiavello 49
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
O comando Printf
• O comando printf é similar ao “Escreva” dos pseudocódigos,
servindo para mostrar mensagens ao usuário, assim como o
conteúdo de variáveis.
• Pode mostrar mensagens constantes, variáveis ou ainda uma
mistura desses dois.
• Para mostrar uma mensagem constante:
– Ex: printf(“Olá mundo!\n”);– Ex: printf(“Olá mundo!\n”);
• O caractere '\n' faz o programa saltar uma linha ao final da frase.
• Para mostrar o conteúdo de variáveis, é necessária a inserção de
modificadores de formato na string do printf:
– Ex: printf(“Idade do funcionário: %d\n”,idade);
• Note que após a string segue uma lista das variáveis a serem
mostradas, que deve ser na ordem em que seus modificadores
foram inseridos, e que o tipo da variável deve ser consistente com o
tipo indicado pelo modificador.
Prof. Bruno Macchiavello 50
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Modificadorde Formato do Printf
Modificador de 
Formato
Tipo
%d (or %i) Signed int
%u unsigned int
%c unsigned char
%f float
%lf double
%s string
%x hexadecimal
Prof. Bruno Macchiavello 51
• Para dados com ponto flutuante (%f, %lf) existe a opção %n.mf ou
%n.mlf, onde m é a quantidade de caixas décimas e n e a quantidade
mínima de dígitos (considerando decimais inclusive).
• Se o número possui mais dígitos que os indicados por n, então esse
valor será ignorado
• É possível indicar somente o valor de m (%.mf)
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
O Comando Scanf
• O comando scanf é um equivalente em C ao “Leia” do
pseudocódigo.
• Ele armazena o que o usuário digitou em uma variável
no programa.
• Segue a mesma lógica de modificadores que o printf
(usando os mesmos modificadores), mas exige que para
todos os tipos exceto string seja passado o ENDEREÇO
da variável, ou seja, colocando um & antes do nome da
variável.
– Ex: printf(“Digite sua idade\n”);
scanf(“%d”,&idade);
Prof. Bruno Macchiavello 52
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Programa C - Exemplo
#include <stdio.h>
#include <stdlib.h>
int main ()
{
float valor_fabrica, taxa_dist, taxa_vendedor, valor_consumidor, valor_final, impostos;
int no_cupons, descontos;
printf("1. Informe o valor de fabrica:\n ");
scanf("%f",&valor_fabrica);
printf("\n2. Informe o numero de cupons:\n ");
Prof. Bruno Macchiavello 53
printf("\n2. Informe o numero de cupons:\n ");
scanf("%d",&no_cupons);
impostos = valor_fabrica * 0.57;
taxa_dist = valor_fabrica * 0.28;
taxa_vendedor = (valor_fabrica + impostos + taxa_dist) * 0.05;
descontos = 100 * no_cupons;
valor_consumidor = valor_fabrica + impostos + taxa_dist + taxa_vendedor;
valor_final = valor_consumidor - descontos;
printf("\nO valor da moto: %.2f\n", valor_consumidor);
printf ("O total de descontos: %d\n", descontos);
printf("O valor final: %4.2f\n", valor_final);
system("pause");
return(1);
}
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Programa C - Exemplo
#include <stdio.h>
#include <stdlib.h>
int main ()
{
float valor_fabrica, taxa_dist, taxa_vendedor, valor_consumidor, valor_final, impostos;
int no_cupons, descontos;
printf("1. Informe o valor de fabrica:\n ");
scanf("%f",&valor_fabrica);
printf("\n2. Informe o numero de cupons:\n ");
Prof. Bruno Macchiavello 54
printf("\n2. Informe o numero de cupons:\n ");
scanf("%d",&no_cupons);
impostos = valor_fabrica * 0.57;
taxa_dist = valor_fabrica * 0.28;
taxa_vendedor = (valor_fabrica + impostos + taxa_dist) * 0.05;
descontos = 100 * no_cupons;
valor_consumidor = valor_fabrica + impostos + taxa_dist + taxa_vendedor;
valor_final = valor_consumidor - descontos;
printf("\nO valor da moto: %.2f\n", valor_consumidor);
printf ("O total de descontos: %d\n", descontos);
printf("O valor final: %4.2f\n", valor_final);
system("pause");
return(1);
}
Só funciona no Windows 
no Linux utilizar getchar() 
(não precisa da stdlib)
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Algumas outras funções de C
• abs(num)
– prototype: int abs(int num);
– biblioteca: stdlib.h
– exemplos: 
• abs(-3) resulta em 3• abs(-3) resulta em 3
• abs(3) resulta em 3
• fabs(num)
– prototype: double fabs(double num);
– biblioteca: math.h
– exemplos: 
• fabs(-3.5) resulta em 3.5
• fabs(3.5) resulta em 3.5
Prof. Bruno Macchiavello 55
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Algumas outras funções de C
• pow(x,y) = xy
– prototype:double pow(double x, double y);
– biblioteca: math.h
– exemplos: 
• pow(2,3) resulta em 8.0• pow(2,3) resulta em 8.0
• pow(2+3,2) resulta em 25
• sqrt(num) = num2
• prototype: double sqrt(double num);
– biblioteca: math.h
– exemplos: 
• sqrt(25) resulta em 5
• sqrt(16.0) resulta em 4.0
Prof. Bruno Macchiavello 56
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exercícios em C
• Escrever em código ANSI C os exercícios de
pseudocódigo .
• Verificar o funcionamento das funções• Verificar o funcionamento das funções
BINARIAS:
(i) deslocamento (“<<“ e “>>”)
(ii) e binário (“&”)
(iii) ou binário (“|”)
Prof. Bruno Macchiavello 57

Continue navegando