1 - Introdução À Algoritmos
1 - Introdução À Algoritmos
1 - Introdução À Algoritmos
1 - Programação de computadores
1.1 - Algoritmo
No processor de compilação, um compilador irá ler o código, fazer todas as análises sintáticas do
código escrito pelo programador para, por fim, gerar um arquivo um arquivo executável.
No processo de interpretação, nenhum arquivo ou código é gerado, e sim uma tradução instantânea
em tempo de execução do código escrito pelo programador.
O código de máquina (também chamado de linguagem de máquina), popularmente conhecido como "zeros
e uns", são as instruções que o processador interpreta e executa. São basicamente números que o
processador do computador decodifica afim de executar as operações identificadas pelas intruções escritas
pelo programado.
2 - Técnicas de programação
Na elaboração de programas complexos é necessário utilizar um método sistemático de programação que
permita a obtenção de programas confiáveis, flexíveis e eficientes. Uma proposta de metodologia de
programação estabelece os seguintes passos:
1. Análise do problema.
2. Projeto do programa (algoritmos e estruturas de dados).
3. Implementação (codificação) e teste do programa.
A descrição de um algoritmo pode ser feita através de um pseudocódigo (linguagem algorítmica) ou através
de fluxogramas. A linguagem algorítmica apresenta vantagens sobre o uso de fluxogramas (feitos com
desenhos) pois é mais fácil escrever do que desenhar (na maioria dos casos) e a codificação em uma
linguagem de programação acaba se tornando uma simples transcrição de palavras-chave. O algoritmo
pode ser implementado em qualquer linguagem de programação e essa implementação pode ser trivial ou
mais trabalhosa, dependendo principalmente das características da linguagem escolhida e dos tipos de
dados nela definidos.
3 - Dados
Os dados são representados pelas informações a serem processadas por um computador. Estas
informações são caracterizadas por quatro tipos de dados básicos: inteiros, reais, caracteres e dados
lógicos.
Inteiros: representam dados numéricos positivos ou negativos sem parte fracionária. Exemplos: 5, 0,
-56.
Reais: representam dados numéricos positivos ou negativos com parte fracionária. Exemplos: 5.9, 0.5,
-30.7.
Caracter: representam seqüências de letras, números e símbolos especiais. Deve ser indicada entre
aspas duplas. Esse tipo de dado também é conhecido como alfanumérico, string, literal ou cadeia de
caracteres. Exemplos: "Ana Luísa", "CD98A", "Fone: 5555-6666", " ", "ab*10".
Lógico: representam os valores VERDADEIRO e FALSO. Esse tipo de dados também é conhecido como
tipo booleano. Exemplos: VERDADEIRO, FALSO.
3.2.1 - Variáveis
Todo dado a ser armazenado na memória de um computador deve ser previamente identificado, ou seja,
primeiro é necessário saber qual o seu tipo para depois fazer o seu armazenamento adequado. Estando
armazenado, o dado poderá ser utilizado e manipulado a qualquer momento, sendo que o seu valor pode
variar.
Como a memória comporta o armazenamento de inúmeros dados, cada um deve ser identificado com um
nome. O nome de uma variável identifica uma região específica da memória onde um dado está
armazenado. Esse nome:
Basicamente, informar o tipo a ser usado e o nome da variável. Se mais de uma variável for declarada em
uma linha, separa-las por vírgula ( , ). Exemplos:
INTEIRO: quantidade;
CARACTER: nome_cliente, data_compra;
REAL: preco_produto, valor_dolar;
LOGICO: resposta;
3.2.3 - Constantes
Representam um dado que não pode ser alterado, ou seja, que é fixo e estável como, por exemplo, o valor
do pi (3.1416).
De acordo com o tipo do dado a ser manipulado, pode ser efetuado um determinado conjunto de
operações.
Em algoritmos, os operadores matemáticos que incluem as operações matemáticas mais comuns são
mostrados a seguir.
Ao declarar uma variável, ela não possui valor inicial. Deve-se então atribuir um valor a esta variável e então
manipula-la de acordo com o enunciado do problema. Obrigatoriamente, o tipo do valor a ser atribuído e o
tipo da variável devem ser iguais.
Muitas vezes, uma variável é declarada no algoritmo e o valor de seu valor não é calculado via fórmula, mas
sim capturado de uma entrada externa (ex.: teclado). Para tanto, utiliza-se o comando LEIA.
Além disso, na maioria das vezes, um resultado armazenado em uma variável ou de uma expressão deve
ser divulgado ao usuário (ex.: monitor). Para tanto, utiliza-se o comando ESCREVA.
ALGORITMO nome_do_algoritmo
VAR
/* declaração de variáveis */
INICIO
/* inicialização de variáveis */
/* desenvolvimento (fórmulas, estruturas de decisão ou repetição, ...) */
FIM
5.1 - Exemplo 1
Elaborar um algoritmo que leia dois números inteiros e calcule sua soma.
Variáveis explícitas:
Variáveis implícitas:
Processamento:
Algoritmo:
ALGORITMO soma_de_dois_numeros
VAR
INTEIRO: num1, num2, soma;
INICIO
ESCREVA("Informe o primeiro número: ");
LEIA(num1);
5.2 - Exemplo 2
Elaborar um algoritmo que leia três notas de um aluno, calcule e apresente a sua média aritmética.
Variáveis explícitas:
Variáveis implícitas:
Algoritmo:
ALGORITMO media_aritmetica
VAR
REAL: nota1, nota2, nota3, media;
INICIO
ESCREVA ("Informe a nota 1: ");
LEIA(nota1);
5.3 - Exemplo 3
Elaborar um algoritmo que calcule a área de uma circunferência cuja fórmula é pi * raio2.
Variáveis explícitas:
Raio (raio).
Tipo: real.
Valor inicial: leitura do teclado.
Variáveis implícitas:
Área (area).
Tipo: real.
Valor inicial: resultado do cálculo.
Constante explícitas:
Pi (3.1416).
Processamento:
Algoritmo:
ALGORITMO area_da_circunferencia
VAR
REAL: raio, area;
INICIO
ESCREVA ("Informe o raio: ");
LEIA(raio);
6 - Atividades
1. Escreva um algoritmo que calcule a área de um triângulo cuja fórmula é base x altura / 2.
2. Escreva um algoritmo que leia horas, minutos e segundos do teclado e apresente o tempo total em
segundos.
3. Escreva um algoritmo que leia um número inteiro e apresente o seu antecessor e o seu sucessor.
4. Escreva um algoritmo que leia a nota de três provas de um aluno, calcule e escreva a média final deste
aluno. Considere que a média é ponderada e que o peso das provas é 2 para a primeira prova, 3 para
a segunda prova e 5 para a terceira prova.
5. Escreva um algoritmo que leia uma temperatura em graus Celsius e a apresente convertida em graus
Fahrenheit.
6. Escreva um algoritmo que apresente a conversão de um valor em reais para dólar, de acordo com a
taxa de câmbio informada pelo usuário.
7. Escreva um algoritmo que calcule e mostre o consumo médio e a autonomia que um veículo ainda
teria antes de um abastecimento de combustível. Considere que o veículo sempre seja abastecido até
encher o tanque e que são fornecidas apenas a capacidade do tanque, a quantidade de litros
abastecidos e a quilometragem percorrida desde o último abastecimento.
8. Escreva um algoritmo que pergunte ao usuário a quantidade de km percorridos por um carro alugado
e a quantidade de dias pelos quais ele foi alugado. Calcule e mostre o valor a pagar, sabendo que o
carro custa R$ 70,00 por dia e R$ 0,15 por km rodado.
9. Todo restaurante, embora por lei não possa obrigar o cliente a pagar, cobra 10% de comissão para o
garçom. Escreva um algoritmo que leia o valor gasto pelo cliente em um restaurante e mostre o valor
da gorjeta e o valor total a ser pago.
10. Um vendedor de uma loja de sapatos recebe como pagamento 20% de comissão sobre as vendas do
mês e R$ 5,00 por cada par de sapatos vendido. Escreva um algoritmo que, dado o valor total das
vendas do mês e o número de sapatos vendidos, mostre qual será o salário do vendedor naquele mês.
11. Escreva um algoritmo que leia o número de votos brancos, o número de votos nulos e o número de
votos válidos em um município. Escreva um algoritmo que calcule e escreva o percentual de votos
brancos, nulos e válidos em relação ao total de eleitores do município.
12. Escreva um algoritmo que leia dois números inteiros e faça a troca de valores entre eles, apresentando
as variáveis com seus valores trocados.
13. Num dia de sol, você deseja medir a altura de um prédio, porém, a trena não é suficientemente longa.
Assumindo que seja possível medir sua sombra e a sombra do prédio no chão, e que você lembre de
sua altura, escreva um algoritmo para ler os dados necessários e calcular a altura do prédio.
14. Antes do racionamento de energia ser decretado, quase ninguém falava em quilowatts; mas, agora,
todos incorporaram essa palavra em seu vocabulário. Sabendo-se que 100 quilowatts de energia custa
um sétimo do salário mínimo, escreva um algoritmo que receba o valor do salário mínimo e a
quantidade de quilowatts gasta por uma residência e mostre na tela: a) o valor em reais de cada
quilowatt e b) o valor total a ser pago.
15. Uma fabrica de refrigerantes vende seu produto em três formatos: lata de 350 ml, garrafa de 600 ml e
garrafa de 2 litros. Tomando por base que um comerciante compre uma determinada quantidade de
cada um dos formatos disponíveis, escreva um algoritmo para calcular quantos litros de refrigerante
ele comprou.
16. Escreva um algoritmo que solicite do usuário o valor de um saque em caixa eletrônico, sendo que
estarão disponíveis cédulas de 5, 10, 20, 50 e 100. O algoritmo deve apresentar a menor quantidade de
cédulas possível de acordo com o saque. Exemplos: