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: 45, 120093, -00005, 150, 00 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)
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>; Exemplos: Os tipos básicos a serem declarados são Inteiro, Real, Booleano ou Literal 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 Constantes Os algoritmos em português estruturado sempre têm uma estrutura básica de descrita <constante1> : <tipo1>; <constante2> : <tipo2>; <variável1> : <tipo1>; <variável2> : <tipo2>; <variável3> : <tipo3>; <comando1>; <comando2>; <comando3>; 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 a RESTO b Inteiros Inteira ** Exponenciação a ** b Reais e/ou Inteiros Veja os exemplos de operações aritméticas no algoritmo a seguir: Algoritmo Exemplo a, b, d, Sobra : Inteiro; c, f : Real; 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 55*/ 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 20 ** b; /*Armazenará na variável f o valor 160*/ Operadores relacionais
Operador Significado Exemplo > Maior que Idade > 18 >= Maior ou igual que Num_Dep >= 2 < Menor que Nota < 60 <= 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 = 42000; Mensagem = Resultados ; Salario : Real; Quantidade : Inteiro; 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; 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; Suponha outro algoritmo que mostre, para dois valores inteiros, qual o maior deles: Algoritmo Mostra_maior Valor_a : Inteiro; Valor_b : Inteiro; Leia Valor_a; Leia Valor_b; Se Valor_a > Valor_b Então Escreva Maior valor:, Valor_a; Escreva Maior valor:, Valor_b; Sintaxes para o Comando Se: a) Comando Se sem a cláusula Se <expressão lógica> Então <comando1> <comando2> <comando3> <comandon> b) Comando Se com a cláusula Se <expressão lógica> Então <comando1> <comando2>
<comando_a> <comando_b> 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 Valor_a : Inteiro; Valor_b : Inteiro; Leia Valor_a; Leia Valor_b; Se Valor_a > Valor_b Então Escreva Maior valor:, Valor_a; Se Valor_a < Valor_b Então Escreva Maior valor:, Valor_b; Escreva Os dois valores são iguais ; Comando Escolha O comando Escolha possibilita a escolha de uma alternativa entre as várias possíveis Algoritmo Conceito Nota : Inteiro; Conceito : Literal;
Leia Nota; Escolha Nota 049 : Conceito Insuficiente ; 5064 : Conceito Regular ; 6584 : Conceito Bom ; Conceito Ótimo ; Escolha 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>; <instruções> 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> 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 Saldo :Real; Numero_conta: Inteiro; Contador : Inteiro; 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! ; Escreva Numero_conta, Conta normal! ; Enquanto Diagrama de Blocos Um bloco pode ser definido como um conjunto de comandos com uma função bem definida
f Se <expressão lógica> Então <comando1>; <comando2>; v C1 C2 Exemplo (Guimarães, et al, 1994): Algoritmo Exemplo A 1 A : Inteiro; B: Inteiro; B 2 A 1; B 2; A > B Se A > B Então v f A 5;
A 10; A 5 A 10 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