Buscar

Aula_060415

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

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

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ê viu 3, do total de 102 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

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

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ê viu 6, do total de 102 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

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

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ê viu 9, do total de 102 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

Prévia do material em texto

Introdução a Programação 
 
 
1 
 Lógica 
A lógica de programação é necessária para 
pessoas que desejam trabalhar com 
desenvolvimento de sistemas e programas, ela 
permite definir a sequencia lógica para o 
desenvolvimento. 
 
Então o que é lógica? 
Lógica de programação é a técnica de encadear 
pensamentos para atingir determinado 
objetivo. 
 
2 
3 
Um algoritmo é formalmente uma sequencia 
finita de passos que levam a execução de uma 
tarefa. 
 
Podemos pensar em algoritmo como uma receita, 
uma sequencia de instruções que dão cabo de 
uma meta específica. 
 
Estas tarefas não podem ser redundantes nem 
subjetivas, na sua definição, devem ser claras e 
precisas. 
http://www.inf.ufsc.br/~vania/teaching/ine5231/Logica.pdf 
Um exemplo de algoritmo pode ser as 
instruções que um professor de ginástica 
passa aos seus alunos em uma academia de 
ginástica. Por exemplo: 
 
 Repetir 10 vezes os quatro passos abaixo: 
◦ Levantar e abaixar braço direito; 
◦ Levantar e abaixar braço esquerdo; 
◦ Levantar e abaixar perna esquerda; 
◦ Levantar e abaixar perna direita. 
 
4 
 Características básicas de um algoritmo 
 Sequencia lógica 
 As instruções devem ser definidas em uma ordem correta. 
 Ter passos a serem executados até atingir um objetivo 
ou solução de um problema. 
 A sequencia lógica de instruções não deve dar 
margem à dupla interpretação. 
 A sequencia lógica deve resolver exatamente o 
problema identificado. 
 Uma sequencia lógica de instruções deve sempre 
terminar após um número finito de passos. 
 
5 
 Exemplos de algoritmos 
◦ Coreografia 
◦ Receitas de comidas 
◦ Manuais de instalação 
 
 Contra-exemplos de algoritmos 
◦ Dança informal 
◦ Índice remissivo de um livro 
◦ Listas de compras 
 
6 
 Para mostrar outro exemplo de algoritmo 
considere o seguinte problema: 
 Dispomos de duas vasilhas com capacidades 
de 9 e 4 litros respectivamente. As vasilhas não 
tem nenhum tipo de marcação, de modo que 
não é possível ter medidas como metade ou 
um terço. Mostre uma sequencia de passos, 
que usando as vasilhas de 9 e 4 litros encha 
uma terceira vasilha de medida desconhecida 
com seis litros de água 
7 
Uma possível solução é: 
 Encha a vasilha de 9 litros; 
 Usando a vasilha de 9 litros, encha a vasilha de 4 
litros; 
 Despeje o que sobrou na vasilha de 9 litros (5 
litros) na terceira vasilha. Observe que falta um 
litro para completar os seis litros; 
 Esvazie a vasilha de 4 litros; 
 Torne a encher a vasilha de 9 litros; 
 Usando a vasilha de 9 litros encha a vasilha de 4 
litros; 
 Esvazie a de 4 litros; 
 Usando o que restou na vasilha de 9 litros (5 
litros), encha novamente a vasilha de quatro 
litros; 
 Despeje o que sobrou na vasilha de 9 litros (1 
litro) na terceira vasilha, que agora tem 6 litros. 
 
8 
 Um outro exemplo de algoritmo é o que 
resolve o seguinte problema. Quatro rãs estão 
posicionadas em cinco casas da seguinte 
maneira: 
 
 
 
As rãs foram treinadas para trocar de casas, 
mas sempre obedecendo as seguintes regras: 
 elas podem pular para a casa vizinha (frente ou 
trás), se ela estiver vazia; 
 elas podem pular sobre a rã vizinha para uma 
casa livre (frente ou trás). 
 
9 
 Mostre como as rãs podem chegar a seguinte 
posição final: 
 
10 
 Este é um problema de colocar em ordem decrescente 
(ordenação), tarefa muito comum em computação. 
Uma possível solução para este problema é a 
seguinte: 
 
11 
 Atenção: 
◦ Um algoritmo é “uma solução” e não “a 
única solução” de um problema. 
 Um problema pode ser resolvido por mais de 
um algoritmo! 
 
◦ Tarefas que possuem “padrão de 
comportamento” podem ser descritas por 
um algoritmo. 
 Ex: Qual será o próximo número das sequencias 
 a) 0,1,4,9,16,25? b) 7,8,10,13,17? 
12 
13 
Então: 
Lógica de Programação é o encadeamento 
lógico de instruções para o desenvolvimento de 
programas. 
14 
Programa é a implementação das instruções 
(codificação+tradução+execução) 
de um algoritmo em uma linguagem de 
programação. 
15 
Instruções são um conjunto de regras ou 
normas definidas para a realização ou emprego 
de algo. Em informática, é o que indica a um 
computador uma ação elementar a executar. 
 
 
 
http://www.inf.ufsc.br/~vania/teaching/ine5231/Logica.pdf 
 Representação de Algoritmos 
 As formas mais comuns de representação de 
algoritmos são as seguintes: 
◦ Linguagem Natural Os algoritmos são expressos 
diretamente em linguagem natural, como nos 
exemplos anteriores. 
◦ Fluxograma Convencional Esta é um representação 
gráfica que emprega formas geométricas 
padronizadas para indicar as diversas ações que 
devem ser executadas e decisões que devem ser 
tomadas para resolver o problema. 
 
16 
17 
Pseudo-linguagem Seria uma linguagem intermediária entre 
a linguagem natural e uma linguagem de programação para 
descrever os algoritmos. 
Obs: Hoje não existe um consenso entre os especialistas sobre 
qual seria a melhor maneira de representar um algoritmo. 
 Atualmente a maneira mais comum de representar-se 
algoritmos é através de uma pseudo-linguagem ou pseudo-
código. 
 Esta forma de representação tem a vantagem de fazer com 
que o algoritmo seja escrito de uma forma que está próxima de 
uma linguagem de programação de computadores. Nesta 
apostila empregaremos preferencialmente a pseudo-linguagem. 
 
 Segundo grandes pesquisadores ... 
◦ “A noção de algoritmo é básica para toda a 
programação de computadores”. KNUTH 
 KNUTH - Professor da Universidade de Stanford e autor da 
coleção “The art of computer programming”. 
◦ “O conceito central da programação e da ciência 
da computação é o conceito de algoritmo”. WIRTH 
 WIRTH - Professor da Universidade de Zurique, autor de 
diversos livros na área e responsável pela criação de 
linguagens de programação como ALGOL, PASCAL e 
MODULA -2. 
18 
 Estruturas básicas de um algoritmo: 
◦ Seqüência – Início/Fim 
 Define uma estrutura onde as instruções serão executadas 
na ordem que aparecem. 
◦ Seleção – Se-Então/Senão 
 Define uma estrutura condicional que, dada a sua 
avaliação (V ou F), determina qual “caminho” do algoritmo 
será executado. 
◦ Repetição – Repita, Enquanto ou Para 
 Define uma estrutura de iteração condicional (V ou F) ou 
contada (predefinida) de instruções. 
19 
 Algoritmo para ligar de um telefone público 
– Seqüência: 
Início 
1. Tirar o fone do gancho; 
2. Ouvir o sinal de linha; 
3. Introduzir o cartão; 
4. Teclar o número desejado; 
5. Conversar; 
6. Desligar; 
7. Retirar o cartão; 
Fim. 
20 
Este algoritmo só usa uma 
estrutura de seqüência 
“Início/Fim” 
 Algoritmo para ligar de um telefone público – 
Seleção 
 Início 
1. Tirar o fone do gancho; 
2. Se ouvir o sinal de linha, então 
2.1 Introduzir o cartão; 
2.2 Teclar o número desejado; 
2.3 Conversar; 
2.4 Desligar; 
2.5 Retirar o cartão; 
3. Senão 
3.1 Ir para o próximo telefone; 
Fim. 
21 
Este algoritmo usa uma 
estrutura de decisão 
“Se-então/Senão” 
 Algoritmo para ligar de um telefone público – 
Repetição 
Início {o telefone precisa estar funcionando} 
1. Repita 
1. Tirar o fone do gancho; 
2. Se ouvir o sinal de linha então 
2.1 Introduzir o cartão; 
2.2 Teclar o número desejado; 
2.3 Conversar; 
2.4 Desligar; 
2.5 Retirar o cartão; 
3. Senão 
3.1 Desligar; 
4. Continua(S/N) 
2. Até Continua=‘N’ 
Fim. 
22 
Este algoritmo usa uma 
estrutura de repetição 
“Repita/Até” Algoritmo para ligar de um telefone público 
– Repetição 
 E se o telefone chamado estiver com defeito? 
 E se o telefone chamado estiver ocupado? 
 E se acabarem os créditos do cartão 
telefônico? 
 E se ...? 
23 
 
Calma! É normal que um algoritmo 
sofra melhorias sucessivas. 
(Técnica de refinamentos sucessivos) 
 
 Inicio 
 1. Pegue o pincel; 
2. Pegue a lata de tinta; 
3. Enquanto não chegar no fim da parede, repita os passos 4,5,6 e 
7; 
4. Se acabou a tinta, pegue outra lata; 
5. Molhe o pincel na tinta; 
6. Passe o pincel na parede; 
7. Ande um passo à direita; 
 Fim 
 Neste exemplo, podemos observar que as instruções se encaixam 
em três estruturas padrão: 
 A SEQUÊNCIA SIMPLES, ou seja, a execução de passos um após o 
outro de forma sequencial (Ex: passos 1 e 2, passos 5, 6 e 7). 
 A SELEÇÃO, ou seja, execução de determinada ação, condicionada a 
um teste. (Ex: passo 4). 
 A REPETIÇÃO, ou seja, execução de um conjunto de passos 
repetidas vezes, enquanto determinada condição for verdadeira (Ex: 
passo 3). 
 
25 
O que é um 
Sistema Computacional? 
26 
Sistema 
Computacional 
Software 
Hardware 
Peopleware 
 A programação de um sistema computacional pode ser 
resumida em 3 passos básicos 
 Arquitetura de Von Newman 
28 
Processamento Entrada Saída 
Dispositivo 
de Entrada 
Dispositivo 
de Saída 
Memória 
UCP 
 
 Exemplo 1 – Exibir a média de dois números 
 Arquitetura de Von Newman 
 
29 
Processamento Entrada Saída 
Dispositivo 
de Entrada 
Dispositivo 
de Saída 
Memória 
UCP 
6 , 8 (6 + 8) / 2 7 
 
 Exemplo 2 – Exibir se o aluno está aprovado ou reprovado 
 Arquitetura de Von Newman 
30 
Processamento Entrada Saída 
Dispositivo 
de Entrada 
Dispositivo 
de Saída 
Memória 
UCP 
Ana, 5, 3 Se (5+3)/2>=6 
 aprovado 
Senão 
 reprovado 
Ana, 4,reprovado 
 Tipos de Linguagens de Programação 
◦ 1 - Totalmente codificadas em binário (0´s e 1´s) 
◦ 2 - Usa instruções simbólicas para representar os 0´s e 
1´s 
◦ 3 - Voltadas para facilitar o raciocínio humano 
 
 
 
31 
 
Linguagem 
Assembly 
( Mnem ô nica ) 
LOAD R1, val1 
LOAD R2, val2 
ADD R1, R2 
STORE R1, val2 
Linguagem 
de 
M á quina 
0010 0001 1110 
0010 0010 1111 
0001 0001 0010 
0011 0001 1111 
Linguagem 
de 
Alto N í vel 
 val2 = val1+val2 
Baixo Nível Alto Nível 
(1) (2) (3) 
 Problema da Torre de Hanói - Edouard Lucas em 
1883 
 Seja a seguinte situação: 
 deve-se mover todos os discos do primeiro eixo para o 
terceiro mantendo-se a ordem original 
 em cada movimento, pode-se mover apenas um disco 
 um disco nunca poderá ser sobreposto por outro maior 
 
32 
 Passo 1: 
mova disco menor para terceiro eixo 
 
33 
 Passo 2: 
mova disco médio para segundo eixo 
34 
 Passo 3: 
mova disco menor para segundo eixo 
35 
 Passo 4: 
mova disco maior para terceiro eixo 
 
 
36 
 Passo 5: 
mova disco menor para primeiro eixo 
 
37 
 Passo 6: 
mova disco médio para terceiro eixo 
38 
 Passo 7: 
mova disco menor para terceiro eixo 
 
 
39 
 Seqüência de passos completa: 
 Para n discos têm-se 2n –1 movimentos 
Passo 1: mova disco menor para terceiro eixo 
40 
Passo 2: mova disco médio para segundo eixo 
 
Passo 3: mova disco menor para segundo eixo 
 Passo 4: mova disco maior para terceiro eixo 
 Passo 5: mova disco menor para primeiro eixo 
 Passo 6: mova disco médio para terceiro eixo 
 Passo 7: mova disco menor para terceiro eixo 
 Algoritmo aprovação – Informa se o aluno foi 
aprovado ou reprovado, a partir das 2 notas 
obtidas 
 Início 
 1. Obter as 2 notas do aluno; 
 2. Calcular a media; 
3. Se Média do aluno <6 então 
3.1 Informar que o aluno está REPROVADO; 
4. Senão 
 3.2 Informar que o aluno está APROVADO; 
 Fim. 
 
41 
 Algoritmo aprovação – Repetição para todos 
os alunos 
Início 
1. Repita 
 1.1 Obter as 2 notas do aluno; 
 1.2 Calcular a media; 
 1.3 Se Média do aluno <6 então 
 1.3.1 Informar que o aluno está 
REPROVADO; 
 1.4 Senão 
 1.4.1 Informar que o aluno está 
APROVADO; 
 2. Até último aluno; 
Fim. 
 
42 
 
 Representação Algorítmica 
 Fases Básicas da Construção de Algoritmos 
 Programação Estruturada 
 Introdução a uma Linguagem Algorítmica 
43 
 
 Abrangência 
◦ Apresentar os primeiros conceitos relacionados à 
construção de algoritmos estruturados. 
 
 Importância 
◦ Os conceitos discutidos formam a parte mais 
elementar de qualquer algoritmo. 
44 
 
 Apresentar as principais formas de representar 
um algoritmo. 
 Discutir as 3 fases para construção de 
algoritmos. 
 Contextualizar a importância de Algoritmos 
Estruturados. 
 Definir os seguintes conceitos: 
◦ Identificadores e Palavras Reservadas 
◦ Tipos de Dados 
◦ Variável e Constante 
◦ Expressões 
◦ Operadores 
 
45 
46 
Como representar 
um algoritmo? 
 Algoritmos podem ser representados, dentre 
outras maneiras, por: 
 
◦ DESCRIÇÃO NARRATIVA 
 Utiliza uma linguagem de escrita natural para 
descrever algoritmos. 
 
◦ FLUXOGRAMA (DIAGRAMA DE MÓDULOS) 
 Utiliza uma linguagem de representação gráfica para 
descrever algoritmos. 
 
◦ LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO) 
 Utiliza uma linguagem de escrita artificial para 
descrever algoritmos. 
47 
48 
Exemplo: 
Algoritmo para calcular e mostrar 
o dobro de um numero 
 
 
50 
Exemplo: 
Algoritmo para converter uma 
temperatura fahrenheit em 
tempertura celsius 
 
 
 Descrição narrativa do algoritmo Fahrenheit-
Celsius: 
 
solicite a temperatura em Fahrenheit; 
transforme a temperatura em Fahrenheit para Celsius; 
informe a temperatura em Celsius. 
 
 
51 
 Fluxograma (Diagrama de Módulos) 
◦ Seus principais símbolos gráficos são: 
 
 
52 
= Início e final do fluxograma 
= Operação de entrada de dados 
= Operação de saída de dados em impressora 
= Operações de processamento 
= Decisão 
= Operação de saída de dados em vídeo 
= Seta de Fluxo de Dados 
= Conector de Fluxo de Dados 
 Fluxograma do algoritmo Fahrenheit-Celsius 
53 
Início 
Fahrenheit 
Celsius = 5/9 * (Fahrenheit – 32) 
Celsius 
Fim 
Início do algoritmo 
Entrada da temperatura (F) 
Cálculo da temperatura (C) 
Apresentação do resultado 
Fim do algoritmo 
 Linguagem algorítmica (pseudo-código) 
◦ A forma geral de um algoritmo em pseudo-código: 
 
Algoritmo <nome_do_algoritmo> 
[<declaração_de_variáveis>] 
Início 
 <corpo_do_algoritmo> 
Fim. 
 
54 
 LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO) 
◦ Onde: 
 
 Algoritmo 
 Indica o início da definição do algoritmo. 
 
 <nome_do_algoritmo> 
 Nome dado ao algoritmo para distingui-lo dos demais. 
 
 [<declaração_de_variáveis>] 
 Parte opcional onde são declaradas as variáveis usadas no 
algoritmo e, eventualmente, nos sub-algoritmos(partes 
deum algoritmo). 
55 
 LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO) 
◦ Onde: 
 
 [<subalgoritmos>] 
 Parte opcional onde são definidos os sub-algoritmos(quebra 
do algoritmo em partes:modularização). 
 
 Início 
 Palavra que delimita o início do corpo do algoritmo. 
 
 <corpo do algoritmo> 
 Conjunto de instruções do algoritmo 
 [ chamada dos subalgoritmos] 
 
 Fim 
 Palavra que delimita o término do corpo do algoritmo. 
56 
 
 Pseudo-código do algoritmoFahrenheit_Celsius 
 
 Algoritmo Fahrenheit_Celsius 
 Fahrenheit, Celsius:real; 
Início 
Ler (Fahrenheit); 
Celsius  5/9 * (Fahrenheit – 32); 
Escrever (Celsius); 
Fim 
 
57 
 Ling. Algorítmica 
 
Algoritmo Fahrenheit_Celsius 
Real: Fahrenheit, Celsius; 
Início 
 Ler (Fahrenheit); 
 Celsius  5/9 * (Fahrenheit – 32);
 Escrever (Celsius); 
Fim 
58 
Fluxograma Desc. Narrativa 
 
Solicite a 
temperatura em 
Fahrenheit. 
Transforme de 
Fahrenheit para 
Celsius. 
Informe a 
temperatura em 
Celsius. 
Início 
Fahrenheit 
Celsius = 5/9 * 
(Fahrenheit – 32) 
Celsius 
Fim 
59 
 Vantagens Desvantagens 
Descrição 
Narrativa 
 O português é bastante conhecido 
por nós. 
 Imprecisão. 
 Pouca confiabilidade (a imprecisão 
acarreta a desconfiança). 
 Extensão (normalmente, escreve-se 
muito para dizer pouca coisa). 
Fluxograma Padrão mundial. 
 Ferramenta bem conhecida. 
 Figuras dizem muito mais que 
palavras. 
 Complica-se à medida que o 
algoritmo cresce. 
 Pouca atenção aos dados, não 
oferecendo recursos para declará-los. 
Linguagem 
Algorítmica 
 Independência de linguagem de 
programação. 
 Usa o português como base. 
 Define-se melhor quais e como os 
dados vão estar estruturados. 
 Passagem quase imediata do 
algoritmo para uma linguagem de 
programação qualquer. 
 Exige a definição de uma linguagem 
não real para trabalho. 
 Não é padronizada. 
 
 Uma boa prática para construir algoritmos é dividir 
o problema em 3 fases (Entrada, Processamento e 
Saída). 
◦ Lembra-se da Arquitetura de Von Newman ? 
 
 
 
 
◦ ENTRADA: São os dados de entrada do algoritmo. 
◦ PROCESSAMENTO: São os procedimentos utilizados para 
chegar ao resultado final. 
◦ SAÍDA: São os dados já processados. 
60 
 
 
Entrada 
 
Processamento 
 
Saída 
 
 No algoritmo Fahrenheit-Celsius temos: 
◦ ENTRADA: Temperatura em Fahrenheit 
◦ PROCESSAMENTO: Celsius = 5/9 *(Fahrenheit – 32) 
◦ SAÍDA: Temperatura em Celsius 
 
 Num algoritmo para calcular a área de um 
triângulo temos: 
◦ ENTRADA: Base e Altura do triângulo 
◦ PROCESSAMENTO: Área = (Base * Altura)/2 
◦ SAÍDA: Área 
61 
 
 
62 
 
 
 
Dividir o problema em Entrada, 
Processamento e Saída 
irá ajudá-lo a ordenar corretamente as 
instruções do seus algoritmos. 
 
63 
 
 
 
Por isso, antes de construir um algoritmo, 
pare para pensar e identificar: 
 
Que dados preciso para começar? – Entrada 
Quais são os cálculos e decisões? – Processamento 
Que dados devem ser exibidos? – Saída 
 
 Identifique a entrada, o processamento e a saída 
dos problemas abaixo: 
 
1. Calcular e exibir a média ponderada de 2 notas dadas. 
(nota1= peso 4 e nota2= peso 6) 
 
2. Reajustar um salário em 7,75%. 
 
3. Calcular o desconto de 23% sobre o preço de um 
produto. 
 
4. Dada uma taxa de câmbio, transformar um valor em 
Dólar para Reais. 
 
5. Dada uma taxa de câmbio, transformar um valor em 
Reais para Dólar. 
64 
 
 
 
1. Calcular e exibir a média ponderada de 2 notas 
dadas. (nota1= peso 6 e nota2= peso 4) 
 
◦ ENTRADA: nota1 e nota2 
◦ PROCESSAMENTO: médiaP=((nota1 * 6)+(nota2 * 4))/(6+4) 
◦ SAÍDA: médiaP 
 
65 
 
 
 
2. Reajustar um salário em 7,75%. 
◦ ENTRADA: salário 
◦ PROCESSAMENTO: salárioR = salário+(salário*0,0775 ou 7,75/100) 
◦ SAÍDA: salárioR 
 
3. Calcular o desconto de 23% sobre o preço de um 
produto. 
◦ ENTRADA: preço 
◦ PROCESSAMENTO: desconto = preço*0,23(ou 23/100) 
◦ SAÍDA: desconto 
66 
 
 
 
4. Dada uma taxa de câmbio, transformar um valor 
em Dólar para Reais. 
◦ ENTRADA: câmbio e dólar 
◦ PROCESSAMENTO: real = dólar * câmbio 
◦ SAÍDA: real 
 
5. Dada uma taxa de câmbio, transformar um valor 
em Reais para Dólar. 
◦ ENTRADA: câmbio e reais 
◦ PROCESSAMENTO: dólar = reais/câmbio 
◦ SAÍDA: dólar 
 
67 
 
 
68 
Um problema! 
 
 Nos primórdios da programação os programas 
eram desenvolvidos de forma intuitiva. 
 
 Neste tipo de abordagem era comum o uso de 
desvios incondicionais (vá para/go to) para 
codificação das soluções. 
 
 Porém a abordagem intuitiva falha quando os 
programas são grandes e complicados. 
 
69 
 
Algoritmo UmExemploNãoEstruturado; 
Início 
Escreva( “Início do programa”); 
Vá Para Marca {ou GOTO Marca} 
//Isso nunca será executado! 
Escreva( “Meio do programa”); 
Marca {continua a partir daqui} 
Escreva (“Fim do programa”); 
Fim. 
70 
desvio 
incondicional 
A saída deste Algoritmo é : 
Início do programa 
Fim do programa 
E o meio do programa? 
71 
A solução! 
 Nos anos 70 surgiu a programação estruturada 
como solução destes problemas. 
 
 Programação estruturada (Algoritmo Estruturado) 
“É a arte ou técnica de construir e formular algoritmos de 
forma sistemática ". Niklaus Wirth (Pai do PASCAL) 
 Objetivos: 
◦ Facilitar a escrita, leitura e compreensão dos programas. 
◦ Permitir a verificação/testes a priori dos programas. 
◦ Facilitar a manutenção dos programas. 
◦ Possibilitar o desenvolvimento em equipe. 
◦ Reduzir a complexidade. 
72 
 Conceitos básicos: 
◦ Identificadores e Palavras Reservadas 
◦ Tipos de Dados 
◦ Variável e Constante 
◦ Expressões 
◦ Operadores 
◦ Sintaxe e Semântica 
◦ Instruções Primitivas 
◦ Estrutura de seqüência 
◦ Estruturas de Decisão 
◦ Estruturas de Repetição 
73 
Serão estudados 
neste Tema 
Serão estudados 
nos próximas Temas 
 
 Identificadores: 
◦ São nomes únicos definidos pelos programadores para 
identificar/distinguir os elementos de um algoritmo. 
 
 Palavras Reservadas 
◦ São instruções primitivas que têm significados pré-
determinados e fazem parte da estrutura de qualquer 
linguagem de programação. 
74 
 
 Algumas regras para os nomes de Identificadores: 
◦ Devem começar por um caractere alfabético. 
◦ Podem ser seguidos por mais caracteres alfabéticos e/ou 
numéricos. 
◦ Não é permitido o uso de espaço em branco ou de 
caracteres especiais, como: @, #, &, *, +, ?,$ (exceto o _ ). 
◦ Não poderá ser uma palavra reservada a uma instrução 
do algoritmo. 
◦ Devem ser significativos. 
◦ Não podem ser repetidos dentro de um mesmo 
algoritmo/sub-algoritmo. 
75 
 Identifique os erros e reescreva os identificadores abaixo: 
◦ vm 
◦ 13salário 
◦ salário$ 
◦ salário_mínimo 
◦ salário+reajuste 
◦ novoSalário 
◦ fumante? 
◦ preço médio 
◦ %desconto 
◦ km/h 
76 
 Identifique os erros e reescreva os identificadores abaixo: 
◦ vm  sem significado  valor_médio 
◦ 13salário  não começa com caractere alfabético  salário13 
◦ salário$  usa caractere especial  salário 
◦ salário_mínimo  correto 
◦ salário+reajuste  usa caractere especial  salário_reajustado 
◦ novoSalário  correto 
◦ fumante?  usa caractere especial  fumante 
◦ preço médio  tem espaço em branco  preço_médio 
◦ %desconto  não começa com caractere alfabético  
percentual_desconto 
◦ km/h - usa caractere especial  km_por_hora 
77 
 As fases de Entrada, Processamento e Saída 
podem manipular vários tipos primitivos de dados, 
a saber: 
 
 
 
 
 
◦ Obs: Um Caractere SEMPRE deve estar entre “ ” 
 EX: “A”, “Fone 3333-33333”, “1”, 
78 
 
Tipo Primitivo Descrição
Inteiro Representa o conjunto de números inteiros
Real Representa o conjunto de números reais
Caracter Representa um ou mais caracteresdo teclado.
Lógico valor lógico (V ou F).Representa um
 Classifique os dados de acordo com o seu tipo, 
sendo 
(I = Inteiro, R = Real, C = Caractere e L = Lógico): 
 a( ) 0 b( ) + 36 c( ) 0,3257 d( ) F 
 e( ) 1 f( ) “F” g( ) “+3257” h( ) -1 
 i ( ) 0,0 j( ) - 0,001 k( ) “-0,0” l ( ) “.F.” 
m( ) “o” n( ) + 0,05 o( ) “.V.” p( ) 7/2 
 q( ) 32 r( ) + 3257 s( ) V t ( ) -32 
 u( ) “A” v( ) “abc” x( ) -1,9E123 z( ) “0” 
 
79 
 Classifique os dados de acordo com o seu tipo, 
sendo 
(I = Inteiro, R = Real, C = Caractere e L = Lógico): 
 a( I ) 0 b( I ) + 36 c(R) 0,3257 d(L) F 
 e( I ) 1 f(C) “F” g(C) “+3257” h( I ) -1 
 i (R) 0,0 j(R) - 0,001 k(C) “-0,0” l 
(C) “.F.” 
m(C) “o” n(R) + 0,05 o(C) “.V.” p(R) 7/2 
 q( I ) 32 r( I ) + 3257 s(L) V t ( I ) -32 
 u(C) “A” v(C) “abc” x(R) -1,9E123 z(C) “0” 
80 
 
 Constante é um identificador que representa 
valores constantes, ou seja, que não variam no 
decorrer do algoritmo. 
◦ Seu uso poupa tempo quando tem que alterar o seu valor 
no algoritmo. 
 Ao trocar o valor de uma constante, todas as instruções que 
a usam irão manipular, automaticamente, o novo valor. 
81 
 Variável é um endereço físico da memória 
principal, que é representado por um identificador 
que, ao longo do seu tempo de existência, pode 
armazenar vários conteúdos de um único tipo pré-
determinado. 
82 
Endereço Físico Identificador Conteúdo Tipo 
1000:2000 Nome “João” Caracter 
2001:3000 RG 12345 Inteiro 
3001:4000 Salário 999,99 Real 
4001:5000 Fumante F Lógico 
 
 Simplificando... 
◦ Considere que a memória principal do seu computador é 
um armário, onde cada gaveta é a uma variável. 
 
83 
 
 Declaração de Constantes 
◦ <nome da constante> = <valor>; 
◦ • • • 
◦ <nome da constante> = <valor>; 
 
 Declaração de Variáveis 
◦ <tipo de dado:><var1, ..., varN>; 
◦ • • • 
◦ <tipo de dado:><var1, ..., varN>; 
84 
 
 Obs: Declarar as constantes antes das variáveis 
 
 Exemplos corretos: 
CONST 
◦ PI = 3.1416 ; 
◦ MAX = 10 ; 
◦ OK = V; 
◦ País = “Brasil”; 
 
VAR 
◦ notaMédia, Salário:real; 
◦ contador:inteiro; 
◦ achou:logico; 
◦ nome, sexo:caractere; 
 
 
 
85 
 Exemplos incorretos: 
CONST 
◦ PI <- 3.1416 ; 
◦ Km/h = 80 ; 
◦ OK! = V; 
◦ País Padrão = “Brasil” 
 
VAR 
◦ Real: achou?, 13 Salário; 
◦ Inteiro: #contador; 
◦ Lógico: sobre nome; 
◦ Caractere: primeira nota, masculino/feminino; 
 
86 
1) Escreva o tipo das variáveis abaixo: 
a) dólar 
b) sexo 
c) cpf 
d) nota 
e) idade 
f) fumante 
g) raça 
h) quantidade 
i) média 
j) escolaridade 
k) universitário 
87 
 Uma expressão é uma fórmula para 
processamento de um valor. 
 As principais expressões são as seguintes: 
◦ Aritméticas: Retornam um valor numérico (inteiro ou 
real). 
 EX: 10+(3+1)/2 
◦ Lógicas: Retornam um valor lógico V ou F. 
 EX: (3=2+1) e (3<2) 
 
 Obs: Ter atenção com as prioridades dos 
operadores ! 
◦ 3+2*2 = 7 
◦ (3+2)*2 = 10 
88 
 Use corretamente os parênteses! 
 Expressões consistem de operandos e operadores. 
 
◦ Operandos são os elementos de uma expressão que 
sofrem uma ação. 
 Ex: variáveis, constantes ou outras expressões. 
 
◦ Operadores são os elementos de uma expressão que 
realizam a ação. 
 EX: aritméticos, lógicos e relacionais. 
 
◦ Na expressão 3 + 2 = 5, temos “3, 2 e 5” como 
operandos e “+ e =” como operadores. 
 
89 
 
 Os operadores podem ser classificados em: 
◦ Binários: atuam sobre dois operandos. 
 Ex: operadores aritméticos básicos (+ - * /) 
◦ Unários: atuam sobre um único operando. 
 Ex.: o sinal de (-) na frente de um número para inverter seu 
sinal. 
 
 Tipos de operadores da nossa linguagem: 
◦ Atribuição 
◦ Aritméticos 
◦ Relacionais 
◦ Lógicos ou Booleanos 
90 
 Atribuição: serve para atribuir um valor a uma 
variável. 
 Operador de atribuição “  ” , “:=”, “=” 
◦ EX: 
 Nome  “Alves”; (caracter) 
 Idade  18;(inteiro) 
 Casado  F;(boleano ou lógico) 
 Salário  500,50;(real) 
 
◦ A expressão do lado direito do operador é avaliada e seu 
resultado é armazenado na variável à esquerda. 
 Obs: A expressão deve retornar o mesmo tipo da variável ! 
91 
 
 Aritméticos: são as operações aritméticas básicas 
 
 
 
 
 
 
 
 
92 
Operador Tipo Operação Prioridade 
- Unário Inversão do Sinal 1 
+ Unário Manutenção do Sinal 1 
POT(x,y) Binário Potenciação 2 
DIV Binário Quociente da Divisão Inteira 3 
MOD Binário Resto da Divisão Inteira 3 
/ Binário Divisão 3 
* Binário Multiplicação 3 
- Binário Subtração 4 
+ Binário Adição 4 
 
 
 
O
rd
e
m
 p
ri
o
ri
d
a
d
e
 
Maior 
Menor 
 Exemplos: 
93 
Operador Operação Exemplo Resultado 
+ Adição 4+3 7 
- Subtração 4-3 1 
* Multiplicação 4*3 12 
/ Divisão 4/3 1,33 
MOD Resto da Divisão Inteira 5 MOD 3 2 
DIV Quociente da Divisão Inteira 5 DIV 3 1 
POT(x,y) Potenciação POT (4,3) 64 
+ Manutenção do Sinal +- 4 - 4 
- Inversão do Sinal -- 4 +4 
 
 Relacionais: são operadores binários (de mesma 
prioridade) que somente retornam os valores lógicos V 
ou F. 
 
 
 
 
 
 
 
◦ Estes somente são usados para efetuar comparações, as 
quais só podem ser feitas entre dados do mesmo tipo. 
◦ O resultado de uma comparação é sempre um valor 
lógico. 
94 
Operador Comparação 
> maior que 
< menor que 
>= maior ou igual 
<= menor ou igual 
= igual 
<> diferente 
 
 Exemplos: 
95 
Operador Comparação Exemplo Resultado 
> maior que 4>3 V 
< menor que 4<3 F 
>= maior ou igual 4>=3 V 
<= menor ou igual 3<=3 V 
= igual 4=3 F 
<> diferente 4<>3 V 
 
 Lógicos ou Booleanos: são usados para combinar 
expressões relacionais e lógicas. Também 
retornam como resultado valores lógicos V ou F. 
 
 
 
 
 
96 
Operador Tipo Operação Prioridade 
NÃO Unário Negação 1 
E Binário Conjunção 2 
OU Binário Disjunção 3 
 
O
rd
e
m
 
p
ri
o
ri
d
a
d
e
 
Maior 
Menor 
 Exemplos: 
97 
Operador Operação Exemplo Resultado 
OU Disjunção V ou F V 
E Conjunção V e F F 
NÃO Negação Não V F 
 
 
 Ordem de prioridades 
 
 
 
 
 
 
 Observações: 
◦ Operadores de igual prioridade, execução da esquerda 
para direita (na ordem em que aparecem n expressão). 
◦ Para alterar a ordem de prioridade, utilizar parênteses. 
98 
Operador Prioridade 
Aritméticos 1 
Relacional 2 
Lógico 3 
 
O
rd
e
m
 
p
ri
o
ri
d
a
d
e
 
Maior 
Menor 
1) indique qual o resultado o tipo que será obtido 
das seguintes expressões: 
 a) 1 / 2 
 b) 1 DIV 2 
 c) 1 MOD 2 
 d) ( 200 DIV 10 ) MOD 4 
 e) POT(5,2) + 3 
 f) RAD(25)+19-23 
 g) 3,0* 5,0 +1 
 h) 1/4+2 
 i) 28,0/7+4 
 j) 3/6,0-7 
 
99 
2) Indique o resultado o tipo das seguintes expressões: 
 a) 2 > 3 
 b) ( 6 < 8 ) OU ( 3 > 7 ) 
 c) ((( 10 DIV 2 ) MOD 6 ) > 5 ) E ( 3 < ( 2 MOD 2 ) ) 
 d) NÃO ( 2 < 3 ) 
 
 3) Escreva o comando de atribuição e resolva a expressão das 
seguintes fórmulas matemáticas. 
 
 
 a) onde A= 2, B= 6, C = 3, D=4, E=8, 
F=4 
 
 
 
 
 b) onde X = 2 
10
0 
FE
D
C
B
A
X
X
X
X
XXX
Y
2
2
2
32 12
4)Para cada linha informar o valor da expressão e das 
variáveis. 
 X  5; Y  1; Z  3; 
 X  5 + Y * Z; 
 Z  X; Y  Z ; 
 Y = X ; 
 Z  X+Y/2**2; 
 X  Z; Z  Y; 
 X=Y; 
 Z>X; 
 Y<Z; 
 
10
1 
5) Se X possui o valor 15 e foram 
executadas as seguintes instruções: 
 X  X + 3; 
 X  X – 6; 
 X  X / 2; 
 X  3 * X; 
 X  X-X+X*X/X 
Qual será o valor armazenado em X? 
 
10
2 
Referencias: 
Alem da bibliografia indicada, 
 
 
http://equipe.nce.ufrj.br/adriano/algoritmos/
apostila/algoritmos.htm

Outros materiais