apostila de fundamentos de programação i prof.: andré luiz ... · apostila de fundamentos de...
TRANSCRIPT
Apostila de Fundamentos de Programação I
Prof.: André Luiz Montevecchi
Introdução
O mundo atual é dependente da tecnologia. O uso intenso de diversos aparatos
tecnológicos é parte integrante do nosso dia-a-dia. Qualquer tipo de ferramenta que venha a
facilitar nossas vidas pode também ser considerada um exemplo de tecnologia. Uma simples
caneta pode ser considerada uma “tecnologia da escrita” (Vilarim, 2004).
O desenvolvimento dos primeiros computadores está relacionando às necessidades do
homem de fazer cálculos.
Programação consiste no conjunto de métodos, das técnicas e dos procedimentos em
computação para a elaboração de programas de computador. A necessidade de existência de
“bons”programas, fáceis de serem entendidos por outros programadores, com o mínimo de
erros, que sejam executados em tempo aceitável, fez disseminar-se uma metodologia em
programação, a Programação Estruturada. Nela aplicamos técnicas que permitam fazer
programas corretos, fáceis de se entender e modificar (Vilarim, 2004).
Mais do que ter conhecimento de linguagens e detalhes sobre este ou aquele
equipamento, a programação é uma atividade diretamente ligada à resolução de problemas.
Quando elaboramos um programa de computador, no fundo queremos ensinar a máquina a
resolver um problema, e a eletrônica permite que a máquina chegue a uma resposta de
maneira mais rápida e mais precisa do que nós (Vilarim, 2004).
Quando os computadores passaram a ter os programas funcionando na memória,
percebeu-se que era possível utilizar um conceito matemático para definir soluções de
problemas – os algoritmos. Um algoritmo é uma seqüência ordenada e finita de etapas,
cuja execução passo a passo resolve um determinado problema (Boratti & Oliveira, 2004).
Português Estruturado para representar algoritmos
A maior parte dos nossos algoritmos será feita no que chamados de português
estruturado (também chamado “portugol”). O português estruturado possui as seguintes
características.
Utiliza um conjunto muito mais limitado de comandos do que a língua normal, mas que
podem ser combinados para se construir desde algoritmos simples até outros bem
complexos;
Estabelece um rigor na construção do algoritmo que impede a existência de
ambigüidades. Cada comando tem uma interpretação única para a máquina;
O algoritmo torna-se uma lista ordenada de comandos combinados, cujo
seqüenciamento de execução é uma solução do problema.
Tipos de Dados
Em nosso algoritmo classificaremos os valores nos seguintes tipos básicos:
Inteiro;
Real;
Caractere;
Literal;
Lógico ou Booleano.
Valores tipo Inteiro
São valores que representam quantidades numéricas inteiras, tais como a idade de uma
pessoa, o número de funcionários de uma empresa, etc.
Exemplos: 17, -5, 90,0.
Valores tipo Real
São valores que representam quantidades reais, ou seja, valores que apresentam parte
decimal, tais como salário de um funcionário, a altura de uma pessoa, etc.
Exemplos: 4.5, 1200.93, -0.0005, 15.0, 0.0.
Valores tipo Caractere
São valores utilizados para representar informações onde apenas um caractere é
necessário, tais como o valor do sexo de uma pessoa (M ou F), uma letra do alfabeto, etc.
Todo valor do tipo caractere apresenta apenas um caractere.
Exemplos: “*”, “I”, “i”, “5”, “ “ (espaço).
Valores do tipo Literal
São utilizados na representação de informações onde se faz necessária a utilização de
zero ou mais caracteres, tais como nome de uma pessoa, o nome de uma cidade, uma frase,
etc.
Exemplos: “Roberval Moreira”, “Avenida Amazonas”, “1234”.
Valores tipo Lógico ou Booleano
São apenas dois valores: Verdadeiro e Falso. São utilizados na representação do valor
de uma expressão lógica ou afirmações, tais como 6>4 (Verdadeiro) ou “A Terra gira em torno
da Lua” (Falso).
Variáveis
Uma variável é um local com um nome dentro da memória do computador, criado em
um algoritmo para se armazenar um determinado dado (Boratti & Oliveira, 2004).
Uma analogia muito comum é imaginar uma variável como uma gaveta dentro da
memória do computador. Esta gaveta tem capacidade de guardar um dado de certo tipo, e o
nome da variável é como uma etiqueta colada na frente da gaveta. Ela possui o nome de
variável porque o dado nela armazenado pode se modificar durante a execução do algoritmo
(Boratti & Oliveira, 2004).
Toda variável precisa ter um nome definido pelo programador, que deve ser único
dentro de um mesmo algoritmo.
Na nossa sintaxe, todo nome de variável deve começar por uma letra e não poderá
ter espaço em branco ou acentos.
Exemplos de nomes de variável válidos:
Valor_pago
Soma
AA
k
num
contador.
Declaração de variáveis
Toda variável usada em um algoritmo precisa ser declarada. Isto deve ser feito no início
do algoritmo. A sintaxe de declaração de variáveis é:
<variável1>, <variável2>, ... : <tipo>;
Os tipos básicos a serem declarados são Inteiro, Real, Booleano ou Literal.
Exemplos:
quant_latas, quant_garrafas : Inteiro;
saldo, taxa, bônus : Real;
nome_funcionario: Literal;
Uma variável só pode armazenar um dado de cada vez! Qualquer valor armazenado em
uma variável sempre vai apagar outro valor guardado anteriormente dentro dela, no mesmo
algoritmo.
Sintaxe geral de um algoritmo
Os algoritmos em português estruturado sempre têm uma estrutura básica de descrita.
Constantes
<constante1> : <tipo1>;
<constante2> : <tipo2>;
Variáveis
<variável1> : <tipo1>;
<variável2> : <tipo2>;
<variável3> : <tipo3>;
Início
<comando1>;
<comando2>;
<comando3>;
Fim
Este molde indica que, ao construirmos um algoritmo, faremos primeiro as declarações
de quais variáveis serão utilizadas, e depois escreveremos os comandos que ensinarão o
computador a fazer algo.
Expressões
Uma expressão constitui-se em um conjunto de variáveis e/ou valores, separados por
caracteres especiais, que indicam as operações que devem ser executadas. Assim, a
expressão:
Valor_a + Valor_b + Valor_c
Indica o cálculo da soma dos conteúdos das variáveis, Valor_a, Valor_b e Valor_c. Já o
comando:
Soma Valor_a + Valor_b + Valor_c
Indica que o valor da expressão Valor_a + Valor_b + Valor_c deve ser armazenado na
variável Soma.
Os operadores básicos utilizados em uma expressão podem ser classificados em:
Aritméticos, Relacionais e Lógicos. Os operadores aritméticos especificam operações
aritméticas, tal como em Valor_a + Valor_b. Os operadores relacionais especificam uma
relação, tal como Valor_a < 10.
Operadores Aritméticos
Operador Significado Exemplo Tipo dos operandos
+ Adição a + b Reais e/ou Inteiros
- Subtraçào a - b Reais e/ou Inteiros
* Multiplicação a * b Reais e/ou Inteiros
/ Divisão Real a / b Reais e/ou Inteiros
DIV Divisão Inteira a DIV b Inteiros
RESTO Resto da Divisão
Inteira
a RESTO b Inteiros
** Exponenciação a ** b Reais e/ou Inteiros
Veja os exemplos de operações aritméticas no algoritmo a seguir:
Algoritmo Exemplo
Variáveis
a, b, d, Sobra : Inteiro;
c, f : Real;
Início
a 22; /*Armazena o valor 22 na variável a.*/
b 4;
/*O comando a seguir faz a divisão real do conteúdo da variável a pelo conteúdo
de b. A variável c receberá o valor 5.5*/
c a / b;
/*O comando a seguir faz a divisão inteira do conteúdo de a pelo conteúdo de b.
A variável d receberá o valor 5.*/
d a DIV b;
/*No próximo comando é calculado o resto da divisão inteira do conteúdo de
uma variável a pelo conteúdo da variável b. A variável Sobra receberá o valor 2*/
Sobra a RESTO b;
F 2.0 ** b; /*Armazenará na variável f o valor 16.0*/
Fim
Operadores relacionais
Operador Significado Exemplo
> Maior que Idade > 18
>= Maior ou igual que Num_Dep >= 2
< Menor que Nota < 6.0
<= Menor ou igual que X <= 25
= Igual que Nome = “Antonio”
<> Diferente de Sexo <> “F”
Constantes
Em muitas situações, ao escrevermos um algoritmo, necessitamos trabalhar com
valores que não se alterarão durante toda a execução do algoritmo. A esses valores
denominamos Constantes. Constante é uma quantidade fixa, invariável, cujo valor é definido no
início do algoritmo, não podendo ser alterado durante sua execução.
Exemplo:
Algoritmo Exemplo_de_Constante
Constantes
Sal_minimo = 420.00;
Mensagem = “Resultados”;
Variáveis
Salario : Real;
Quantidade : Inteiro;
Início
Leia Salario;
Quantidade Salario DIV Sal_minimo;
Escreva Mensagem;
Escreva “O funcionário tem salário de: “, Salario;
Escreva “O qual equivale a “, Quantidade;
Escreva “Valor do salário mínimo: “, Sal_minimo;
Fim
Estruturas de Seleção
Comando Se
Freqüentemente na construção de algoritmos vamos nos defrontar com problemas,
onde é necessário selecionar uma, entre duas ou mais situações possíveis (Boratti & Oliveira,
2004). Suponha, por exemplo, um algoritmo em que se necessite mostrar o conteúdo de uma
variável do tipo Inteiro, somente se seu conteúdo for maior que 10. Considerando uma variável
de nome Nota, poderíamos escrever:
Se Nota > 10 Então
Escreva Nota;
Fim Se
Suponha outro algoritmo que mostre, para dois valores inteiros, qual o maior deles:
Algoritmo Mostra_maior
Variáveis
Valor_a : Inteiro;
Valor_b : Inteiro;
Início
Leia Valor_a;
Leia Valor_b;
Se Valor_a > Valor_b Então
Escreva “Maior valor: “, Valor_a;
Senão
Escreva “Maior valor: “, Valor_b;
Fim Se
Fim
Sintaxes para o Comando Se:
a) Comando Se sem a cláusula Senão
Se <expressão lógica> Então
<comando1>
<comando2>
<comando3>
.
.
.
<comandoN>
Fim Se
b) Comando Se com a cláusula Senão
Se <expressão lógica> Então
<comando1>
<comando2>
.
.
Senão
<comando_a>
<comando_b>
.
.
Fim Se
Dentro de um comando de seleção (Comando Se), podemos colocar qualquer tipo de
comando. Assim, dentro de um Se, pode-se ter outros comando de seleção.
Exemplo:
Algoritmo Mostra_maior
Variáveis
Valor_a : Inteiro;
Valor_b : Inteiro;
Início
Leia Valor_a;
Leia Valor_b;
Se Valor_a > Valor_b Então
Escreva “Maior valor: “, Valor_a;
Senão
Se Valor_a < Valor_b Então
Escreva “Maior valor: “, Valor_b;
Senão
Escreva “Os dois valores são iguais.”;
Fim Se
Fim Se
Fim
Comando Escolha
O comando Escolha possibilita a escolha de uma alternativa entre as várias possíveis.
Algoritmo Conceito
Variáveis
Nota : Inteiro;
Conceito : Literal;
Início
Leia Nota;
Escolha Nota
0..49 : Conceito “Insuficiente”;
50..64 : Conceito “Regular”;
65..84 : Conceito “Bom”;
Senão
Conceito “Ótimo”;
Fim Escolha
Fim
A forma geral do Escolha pode ser colocada como:
Escolha <expressão>
Op1 : <Instruções relativas a Op1>;
Op2 : <Instruções relativas a Op2>;
.
.
Opn : <Instruções relativas a Opn>;
Senão
<instruções>
Fim Escolha
Estruturas de Repetição
Existem situações em que, para se obter a solução do problema, é necessário fazer
com que o conjunto de instruções seja executado vários vezes.
Comando Enquanto-Faça
Uma das formas de fazermos com que um conjunto de instruções seja executado várias
vezes é utilizando o comando Enquanto-Faça.
Sua forma geral pode ser escrita como segue.
Enquanto <expressão lógica> Faça
<conjunto de instruções>
Fim Enquanto
Se quisermos um algoritmo que faça a análise de dez contas bancárias, podemos
escrever a solução conforme a apresentada abaixo.
Algoritmo Banco
Variáveis
Saldo :Real;
Numero_conta: Inteiro;
Contador : Inteiro;
Início
Contador 0;
Enquanto Contador < 10 Faça
Contador Contador + 1;
Leia Numero_conta;
Leia Saldo;
Se Saldo < 0 Então
Escreva Numero_conta, “ Conta estourada!”;
Senão
Escreva Numero_conta, “Conta normal!”;
Fim Se
Fim Enquanto
Fim
Diagrama de Blocos
Um bloco pode ser definido como um conjunto de comandos com uma função bem
definida.
Início
Fim
f
Se <expressão lógica> Então v
<comando1>;
<comando2>;
Fim Se
Exemplo (Guimarães, et al., 1994):
Algoritmo Exemplo
Variáveis
A : Inteiro;
B: Inteiro;
Início
A 1;
B 2;
Se A > B Então v f
A 5;
C1
C2
Início
A 1
B 2
A > B
Senão
A 10;
Fim Se
Fim
Referências bibliográficas
Boratti, Isaias Camilo and Oliveira, Álvaro Borges. 2004. Introdução à Programaçao - Algoritmos.
Florianópolis : Visual Books, 2004.
Guimarães, Ângelo de Moura and Lages, Newton Alberto de Castilho. 1994. Algoritmos e Estrutura de
Dados. Rio de Janeiro : LTC - Livros Técnicos e Científicos Editora, 1994.
Vilarim, Gilvan. 2004. Algoritmos Programação para Iniciantes. Rio de Janeiro : Editora Ciência
Moderna, 2004.
A 10
A 5
Fim