Lorensutti,
Essa apostila é a base que você precisa para
passar nessa prova, ele tem apenas 15 páginas
e o melhor considerado por mim.
tire umas 2 horas para estudá-la e se alimente bem
porque é comum bater aquela fome na hora que
você está estudando programação.
não dê atenção pra mais nada.
e Bons estudos ...
1. Centro Universitário de Lins - Unilins
APOSTILA DE ALGORITMO
E PROGRAMAÇÃO BÁSICA
Profª Cristiane Paschoali
Prof. Hamilton Luiz de Souza
2010
2. Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali
Sumário
Algoritmo e Lógica de Programação....................................................................................................3
Linguagens de Programação............................................................................................................3
Quanto ao paradigma..................................................................................................................3
Quanto a estrutura de tipos..........................................................................................................3
Quanto ao grau de abstração.......................................................................................................4
Quanto à geração.........................................................................................................................4
Algoritmos.......................................................................................................................................5
Descrição Narrativa....................................................................................................................6
Fluxograma................................................................................................................................6
Pseudocódigo.............................................................................................................................6
Exercício resolvido: ...................................................................................................................7
Exercícios Propostos...................................................................................................................8
Conceito de Variável........................................................................................................................8
Estrutura Sequencial......................................................................................................................10
Tipos de Variáveis..........................................................................................................................11
Comandos de Entrada e Saída.......................................................................................................12
Operadores e Funções....................................................................................................................13
Exercícios Propostos .........................................................................................................................15
Referências Bibliográficas..................................................................................................................16
Índice de ilustrações
Ilustração 1: Exemplo de fluxograma...................................................................................................7
Ilustração 2: Resolução com fluxograma.............................................................................................9
Índice de tabelas
Tabela 1: Conjunto de símbolos utilizados no fluxograma..................................................................6
Tabela 2: Tipos de variáveis em Algoritmo e em Pascal....................................................................11
Tabela 3: Palavras reservadas em Algoritmo e em Pascal..................................................................12
Tabela 4: Tabela de operadores para cálculos matemáticos...............................................................13
Tabela 5: Tabela de operadores comparativos....................................................................................13
Tabela 6: Funções matemáticas em Pascal.........................................................................................14
2
3. Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali
Algoritmo e Lógica de Programação
Quando queremos criar ou desenvolver um software para realizar determinado tipo
de processamento de dados, devemos escrever um programa ou vários programas
interligados. No entanto, para que o computador compreenda e execute esse programa,
devemos escrevê-lo usando uma linguagem que tanto o computador quanto o criador de
software entendam. Essa linguagem é chamada de linguagem de programação (ASCENCIO
& CAMPOS, 2008).
Linguagens de Programação
Uma linguagem de programação é um conjunto de regras sintáticas e semânticas
usadas para definir um programa de computador (WIKIPEDIA, 2010). O conjunto de
palavras (tokens), composto de acordo com essas regras, constituem o código fonte de um
software.
Linguagens de programação são importantes para que programadores e engenheiros
de software possam escrever programas mais organizados e com maior rapidez. Elas
também tornam os programas menos dependentes de computadores ou ambientes
computacionais específicos. Isso porque os programas escritos podem ser traduzidos para o
código de máquina do computador ou do ambiente específico onde será executado.
As linguagens podem ser classificadas quanto à várias características. Logo abaixo
ve-se alguns exemplos (Wikipedia, 2010).
• Quanto ao paradigma
Diferentes linguagens de programação podem ser agrupadas segundo o paradigma
que seguem para abordar a sua sintaxe:
• Linguagem funcional
• Linguagem natural
• Programação lógica
• Programação imperativa
• Programação estruturada
• Linguagem orientada a objetos
• Quanto a estrutura de tipos
• Fracamente tipada, como Smalltalk, onde o tipo da variável muda
dinamicamente conforme a situação.
3
4. Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali
• Fortemente tipada, como Java, Ruby, onde o tipo da variável, uma vez
atribuído, se mantém o mesmo até ser descartada da memória.
• Dinamicamente tipada, como Perl, Python ou Ruby, onde o tipo da variável é
definido em tempo de execução.
• Estaticamente tipada, como Java e C, onde o tipo da variável é definido em
tempo de compilação.
• Quanto ao grau de abstração
• Linguagem de programação de baixo nível, cujos símbolos são uma
representação direta do código de máquina que será gerado, onde cada
comando da linguagem equivale a um "opcode" do processador, como
Assembly.
• Linguagem de programação de médio nível, que possui símbolos que podem
ser convertidos diretamente para código de máquina (goto, expressões
matemáticas, atribuição de variáveis), mas também símbolos complexos que
são convertidos por um compilador. Exemplo: C, C++.
• Linguagem de programação de alto nível, composta de símbolos mais
complexos, inteligível pelo ser humano e não-executável diretamente pela
máquina, no nível da especificação de algoritmos, como Pascal, Fortran,
ALGOL e SQL.
• Quanto à geração
Primeira geração, as linguagens de baixo nível (Assembly)
Segunda geração, as primeiras linguagens (Fortran, ALGOL,...)
Terceira geração, as procedurais e estruturadas (Pascal, C).
Quarta geração, linguagens que geram programas em outras linguagens (Java,
C++), linguagens de consulta (SQL).
• Quinta geração, linguagens lógicas (Prolog).
•
•
•
•
As etapas para o desenvolvimento de um programa são (ASCENCIO & CAMPOS,
2008):
1. Análise – Nesta etapa, estuda-se o enunciado do problema para definir os dados de
entrada, o processamento e os dados de saída.
2. Algoritmo – Ferramentas do tipo descrição narrativa, fluxograma ou português
estruturado são utilizadas para descrever o problema com suas soluções.
3. Codificação – O algoritmo é transformado em códigos da linguagem de
programação escolhida para se trabalhar.
Portanto, um programa é a codificação de um algoritmo em uma linguagem de
programação (ASCENCIO, 1999).
4
5. Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali
Para que se desenvolva esses programas, é necessário usar o que se chama lógica de
programação. Lógica de programação é a técnica de encadear pensamentos para atingir
determinado objetivo.
Algoritmos
A ferramenta que auxilia a lógica de programação na resolução dos problemas são os
algoritmos. A palavra algoritmo pode ter várias definições, entre elas:
• Algoritmo é uma sequência de passos que visa atingir um objetivo bem definido.
(FORBELLONE, 1999)
• Algoritmo é a descrição de uma sequência de passos que deve ser seguida para a
realização de uma tarefa. (ASCENCIO, 1999)
• Algoritmo é uma sequência finita de instruções ou operações cuja execução, em
tempo finito, resolve um problema computacional, qualquer que seja sua instância.
(SALVETTI, 1999)
Analisando as definições, podemos concluir que algoritmos não são somente
utilizados em problemas computacionais, mas podem ser aplicados a qualquer situação do
dia a dia. No exemplo abaixo, vê-se um algoritmo para a troca de uma lâmpada.
Algoritmo Trocar Lâmpada
1. Pegar uma lâmpada nova.
2. Pegar uma escada.
3. Posicionar a escada embaixo da lâmpada queimada.
4. Subir na escada com a lâmpada nova na mão.
5. Retirar a lâmpada queimada.
6. Colocar a lâmpada nova.
7. Descer da escada.
8. Testar o interruptor.
9. Guardar a escada.
10. Jogar a lâmpada velha no lixo.
Assim como as várias atividades podem ser realizadas de formas diferentes, também
não existe somente um algoritmo correto. Algoritmos diferentes, desde que resolvam o
problema proposto, estão corretos.
•
•
•
•
Para se construir um algoritmo, alguns passos são importantes. São eles:
Compreender o problema a ser resolvido.
Definir os dados de entrada, quais destes dados serão fornecidos e quais já fazem
parte do cenário.
Definir os processamentos necessários para se resolver o problema. O processamento
transforma os dados de entrada nos dados de saída.
Definir os dados de saída, ou seja, quais informações precisarão ser mostradas.
5
6. Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali
•
•
Construir o algoritmo, utilizando uma das formas disponíveis (serão mostradas mais
adiante).
Testar o algoritmo utilizando simulações.
Vale destacar que os algoritmos devem ser genéricos para o problema proposto, não
importando quais serão os dados de entrada fornecidos.
Os três tipos de algoritmos mais utilizados são: descrição narrativa, fluxograma e
pseudocódigo. Logo abaixo estão as características de cada um.
Descrição Narrativa
Consiste em analisar o enunciado do problema e escrever, utilizando uma linguagem
natural, os passos a serem seguidos para sua resolução. Uma vantagem deste tipo de
algoritmo é sua facilidade, pois não há necessidade de novos conhecimentos para empregálo. Uma desvantagem é a abertura para várias interpretações que a linguagem natural
proporciona.
Fluxograma
Consiste em analisar o enunciado do problema e escrever, utilizando símbolos
gráficos definidos, os passos para a solução do problema. Uma vantagem é a simplicidade
que os elementos gráficos proporcionam para o entendimento. Uma desvantagem é a
necessidade de aprender a simbologia do fluxograma. Para conhecimento da simbologia,
vide tabela 1.
Pseudocódigo
Consiste em analisar o problema e escrever, por meio de regras predefinidas, os
passos a serem seguidos para a resolução. Uma vantagem é a facilidade de transcrição para
a linguagem de programação, bastando conhecer as palavras reservadas da linguagem a ser
utilizadas. Uma desvantagem é a necessidade de aprender as regras do pseudocódigo.
Tabela 1: Conjunto de símbolos utilizados no fluxograma
Símbolo
Significado
Símbolo utilizado para indicar o início e o fim do algoritmo.
Permite indicar o sentido do fluxo de dados. Serve
exclusivamente para conectar os símbolos ou blocos existentes.
Símbolo utilizado para indicar cálculos e atribuições de valores.
6
7. Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali
Símbolo
Significado
Símbolo utilizado para representar a entrada de dados.
Símbolo utilizado para representar a saída de dados.
Símbolo utilizado para indicar que deve ser tomada uma decisão,
apontando a possibilidade de desvios.
Exercício resolvido:
Faça um algoritmo para mostrar o resultado da multiplicação de dois números.
Solução com descrição narrativa:
1. Obter os dois números que serão multiplicados
2. Multiplicar os números.
3. Mostrar o resultado obtido na multiplicação.
Solução em algoritmo:
Início
N1, N2
M = N1 * N2
M
Fim
Ilustração 1: Exemplo de fluxograma
Solução em pseudocódigo:
Algoritmo multiplicação
Declaração de variáveis
Real
N1, N2, M
Início
Escrever “Digite os números a serem multiplicados”
Leia N1, N2
7
8. Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali
M ← N1 * N2
Escrever M
Fim
Exercícios Propostos
a) Faça um algoritmo que calcule a média aritmética de um aluno, dadas as notas de
trabalho e de prova de um determinado bimestre.
b) Faça um algoritmo que receba dois números e mostre as quatro operações básicas
(soma, subtração, multiplicação e divisão) realizadas com eles.
Conceito de Variável
Os algoritmos e programas recebem dados que precisam ser armazenados para
posteriormente poderem ser processados. Esse armazenamento é feito na memória do
computador, quando os algoritmos se transformam em programas.
Dessa forma, uma variável é uma posição (ou endereço) de memória do computador.
Possui um tipo e um nome, podendo o seu conteúdo variar ao longo da execução do
programa. Embora uma variável possa assumir vários valores ao longo da execução do
algoritmo ou programa, ela só pode armazenar um único valor em determinado instante.
Os tipos de dados mais comuns são:
• Numéricos – Dividem-se em dois grupos: reais e inteiros. Os inteiros podem ser
positivos ou negativos e não possuem parte decimal. Os reais podem ser positivos ou
negativos e possuem parte decimal.
Exemplo de números inteiros: 3 -45 98 -423 34 -9
Exemplo de números reais: 45,2 -90,56 158,26 -324,8
• Literais ou caracteres – São dados formados por um único caractere ou por uma
cadeia de caracteres. Podem ser letras (maiúsculas ou minúsculas), caracteres
especiais (* & % $ # @ ? ,) ou números (que, nesse caso, não podem ser utilizados
para operações matemáticas).
• Lógicos – Também são chamados de booleanos e só podem assumir um de dois
valores: verdadeiro ou falso.
Formação de Identificadores
Identificadores são nomes de variáveis, dos programas, das constantes, das rotinas,
etc. Existem algumas regras básicas para criação desses nomes devem ser seguidas,
principalmente quando estivermos lidando com a linguagem de programação Pascal, para
evitar problemas.
✔ Os caracteres que podem ser utilizados são: letras maiúsculas e minúsculas, números
8
9. Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali
✔
✔
✔
✔
e underline.
O primeiro caractere do nome não pode ser um número, deve ser uma letra.
Não podem ser utilizados espaços em branco e caracteres especiais.
Não podem ser utilizadas palavras reservadas da linguagem utilizada.
O nome do programa não poder ter o mesmo nome de qualquer variável utilizada.
Pensando na resolução dos algoritmos voltados para posterior implementação em
Pascal, estamos pensando em soluções de problemas seguindo o paradigma estruturado, ou
imperativo. Para soluções deste tipo, é necessário detalhar as ações para se chegar à resposta
necessária.
A seguir vemos como calcular a área e o perímetro de um retângulo seguindo esses
passos.
1.
2.
3.
4.
5.
Obter o valor da altura do retângulo.
Obter o valor da largura do retângulo.
Calcular a área.
Calcular o perímetro.
Mostrar os cálculos realizados.
Em fluxograma:
Início
Alt, Lar
Area = Alt * Lar
Per = 2*Alt +
2*Lar
Area,Per
Fim
Ilustração 2: Resolução com fluxograma
9
10. Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali
Em algoritmo:
Algoritmo Retângulo
Declaração de variáveis
Real
Alt,Lar,Area,Per
Início
Escrever “A altura e a largura do retângulo”
Leia Alt,Lar
Area ← Alt*Lar
Per ← 2*Alt + 2*Lar
Escrever Area,Per
Fim
Estrutura Sequencial
Pelo paradigma estruturado, qualquer problema pode ser resolvido utilizando três
estruturas: sequencial, condicional e iterativa (repetição).
Na estrutura sequencial, os passos para a resolução do problema são executados em
sua integridade, um por um, sequencialmente. A estrutura sequencial em algoritmo segue o
seguinte formato:
Algoritmo nome
Declaração de Variáveis
variáveis
Início
Bloco de instruções
Fim
Em Pascal essa estrutura se transforma em:
Program nome;
Var
variáveis;
Begin
Bloco de instruções;
End.
Comando de atribuição
10
11. Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali
O comando de atribuição é utilizado para conceder valores ou operações a variáveis,
sendo representado pelo símbolo ← em algoritmos e por := em Pascal.
Exemplos de atribuição:
x ← 4*2
x := x + 2
y ← “aula”
y := 'resposta'
Tipos de Variáveis
Os tipos de variáveis mais utilizados são: Inteiro, Real, Caractere, Cadeia de
Caracteres e Lógicos para algoritmos. Em Pascal estes tipos ficam, respectivamente: Integer,
Real, Char, String e Boolean.
A tabela 2 mostra quais os tamanhos e faixa de valores dessas e de outras variáveis.
Tabela 2: Tipos de variáveis em Algoritmo e em Pascal
Algoritmo
Pascal
Faixa de Valores
Tamanho (aprox)
Inteiro
Integer
-32.768 a 32.767
Real
Real
2,9x10-39 a 1,7x1038 (11 a 12
6 bytes
dígitos com sinal)
Caractere
Char
1 caractere qualquer
String
Cadeia de caracteres
máximo 255)
Boolean
Falso ou Verdadeiro. True ou
8 bits
False.
Shortint
-128 a 127
Longint
-2.147.483.648
2.147.483.647
Double
5,0x10-324 a 1,7x10308 (15 a 16
8 bytes
dígitos com sinal)
Cadeia
Caracteres
Lógico
de
16 bits
1 byte
(no
Tantos
bytes
quantos forem os
caracteres
8 bits
a
32 bits
A tabela 3 mostra quais as palavras reservadas em Algoritmo e em Pascal.
11
12. Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali
Tabela 3: Palavras reservadas em Algoritmo e em Pascal
Algoritmo
Pascal
Algoritmo
Program
Declaração de Variáveis
Var
Início
Begin
Fim
End
.E.
And
.OU.
Or
Se
If
Então
Then
Senão
Else
Para
For
Enquanto
While
Ler
Read
Escrever
Write
Do
To
Not
File
Object
Label
Repeat
Comandos de Entrada e Saída
O comando de entrada é utilizado para receber dados digitados pelo usuário, sendo
armazenados em variáveis. Em Algoritmo utiliza-se o comando Ler e em Pascal Read.
O comando de saída é utilizado para mostrar os dados na tela ou na impressora. Em
Algoritmo usa-se o comando Escrever e em Pascal Write.
12
13. Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali
Operadores e Funções
Existem vários operadores e funções predefinidas destinados a cálculos matemáticos,
mostrados nas tabelas 4, 5 e 6.
Tabela 4: Tabela de operadores para cálculos matemáticos
Op. em Algoritmo
Op. em Pascal
Exemplo e comentário
←
:=
x ← y ou x := y (o conteúdo da variável
y é atribuído para a variável x)
+
+
x + y (Soma o conteúdo de x e de y)
-
-
x – y (Subtrai o conteúdo de y do
conteúdo de x)
*
*
x * y (Multiplica o conteúdo de x pelo
conteúdo de y)
/
/
x / y (Obtém o quociente da divisão de x
por y)
Resto
mod
Resto(x,y) ou x mod y (Obtém o resto
da divisão de x por y)
Divide
div
Divide(x,y) ou x div y (Obtém o
quociente inteiro da divisão de x por y)
Observações:
a) Os operadores div e mod só podem ser aplicados com operandos do tipo inteiro.
b) O operador / sempre conduz a um resultado real.
c) Com os operadores +, - e *, se pelo menos um dos operandos for real, então o
resultado também será real.
Tabela 5: Tabela de operadores comparativos
Op. em Algoritmo
Op. em Pascal
Exemplo e comentário
=
=
x = y (Compara se o conteúdo de x é igual
ao conteúdo de y)
≠
<>
x ≠ y ou x <> y (Compara se o
conteúdo de x é diferente do conteúdo de y)
<=
x ≤ y ou x <= y (Compara se o
conteúdo de x é menor ou igual ao conteúdo
de y)
>=
x ≥ y ou x >= y (Compara se o
conteúdo de x é maior ou igual ao conteúdo
de y)
≤
≥
13
14. Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali
<
<
x < y (Compara se o conteúdo de x é
menor do que o conteúdo de y)
>
>
x > y (Compara se o conteúdo de x é
maior do que o conteúdo de y)
Funções Matemáticas
Função
Exemplo
Comentário
abs
abx(x)
Obtém o valor absoluto de x.
log
log(x)
Obtém o logaritmo natural de x.
trunc
trunc(x)
Obtém a parte inteira do número real armazenado em
x.
frac
frac(x)
Obtém a parte
armazenado em x.
round
round(x)
sin
sin(x)
Calcula o seno de x (x deve ser passado em radianos)
cos
cos(x)
Calcula o co-seno de x (x deve ser passado em
radianos)
pi
pi
sqrt
sqrt(x)
Calcula a raiz quadrada de x.
sqr
sqr(x)
Calcula x elevado ao quadrado.
inc
inc(x,y)
Incrementa a variável x com o valor da variável y.
dec
dec(x,y)
Decrementa a variável x com o valor da variável y.
fracionária
do
número
real
Arredonda x.
Retorna o valor de π.
Tabela 6: Funções matemáticas em Pascal
Observação:
• Por não existir operador de potenciação, tem-se:
AB = Exp(B * Ln(A))
Exemplo: 510 = Exp(10 * Ln(5))
As prioridades entre operadores, incluindo as funções, são:
1. ( ) - parênteses
2. funções
3. * , / , div , mod
4. + , Quando se tem, em uma mesma expressão, vários operadores com a mesma
prioridade, a expressão é resolvida da esquerda para a direita.
14
15. Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali
Exercícios Propostos
(Obs.: os exercícios deverão ser resolvidos em fluxograma e algoritmo)
1) Faça um algoritmo que receba três notas e seus respectivos pesos, calcule e mostre a
média ponderada dessas notas.
2) Faça um algoritmo que receba o salário de um funcionário, calcule e mostre o novo
salário, sabendo que este sofreu um aumento de 25%.
3) Faça um algoritmo que receba o salário de um funcionário e o percentual de
aumento, calcule e mostre o valor do aumento e o novo salário.
4) Faça um algoritmo que calcule e mostre a área de um círculo. Áreacirculo = π*R2
5) Faça um algoritmo que receba o valor de um depósito e o valor da taxa de juros,
calcule e mostre o valor do rendimento e o valor total depois do rendimento.
6) Sabe-se que:
1 pé = 12 polegadas
1 jarda = 3 pés
1 milha = 1.760 jardas
Faça um algoritmo que receba uma medida em pés, vaça as conversões a seguir e
mostre os resultados em polegadas, em jardas e em milhas.
7) Faça um algoritmo que receba o ano de nascimento de uma pessoa e o ano atual,
calcule e mostre: a idade dessa pessoa e quantos anos ela terá em 2050.
8) Faça um programa que receba o número de horas trabalhadas e o valor do salário
mínimo, calcule e mostre o salário a receber seguindo as seguintes regras:
- a hora trabalhada vale a metade do salário mínimo;
- o salário bruto equivale ao número de horas trabalhadas multiplicado pelo valor da
hora trabalhada;
- o imposto equivale a 3% do salário bruto;
- o salário a receber equivale ao salário bruto menos o imposto.
15
16. Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali
Referências Bibliográficas
16