Introdução A Algoritmos Utilizando o Pascal
Introdução A Algoritmos Utilizando o Pascal
Introdução A Algoritmos Utilizando o Pascal
1) Objetivos:
Conceituar algoritmo, definir os tipos primitivos, introduzir noo de variveis, explicar comandos de entrada e sada, comando de atribuio e operadores aritmticos. Algoritmos Sequenciais.
2) Livro texto:
ASCENIO, A. F.G., CAMPOS, E.A.V. Fundamentos da Programao de Computadores (Algoritmos, Pascal e C/C++). Editora: Pearson, 2002.
3) Fundamentao Terica:
a) Referncia para consulta e estudos: Captulo 1 e 2 do livro texto. b) Conceito de Algoritmo: Um conjunto finito de regras que prov uma seqncia de operaes para resolver um tipo de problema especfico [KNUTH] Seqncia ordenada, e no ambgua, de passos que levam soluo de um dado problema [TREMBLAY] Fazemos uso constantemente de algoritmos em nosso cotidiano: a maneira como uma pessoa toma banho um algoritmo. Outros algoritmos freqentemente encontrados so: Instrues para se utilizar um aparelho eletrodomstico; Uma receita para preparo de algum prato; Guia de preenchimento para declarao do imposto de renda; A maneira como as contas de gua, luz e telefone so calculadas mensalmente; etc c) Partes de um Algoritmos O algoritmo formado por 3 partes bsicas: Entrada: parte do algoritmo onde este recebe os dados necessrios para soluo do problema; Processamento: parte onde a entrada manipulada realizando, por exemplo, os clculos do problema. no processamento que est concentrada a parte relativa a lgica do algoritmo; Sada: meio pelo qual o resultado exibido. Por exemplo, considere o problema de calcular a rea de um quadrado. Para se calcular a rea de um quadrado necessrio saber seu lado. Logo, a entrada para soluo do problema o lado do quadrado. Como dito anteriormente, a sada corresponde ao resultado que se pretende obter. No caso do nosso problema, a sada a rea do quadrado. Para se chegar neste resultado preciso aplicar a frmula da rea (rea = Lado x Lado). Sendo assim, este clculo constitui o processamento do algoritmo em questo.
Inicio
Leia Lado
Entrada
Escreva Area
Sada
Fim
O fluxograma acima, ainda que em alto nvel, representa um algoritmo, j que retrata uma sequncia de passos para calcular a rea de um quadrado. d) Outro exemplo de algoritmos em fluxograma Exemplo 2: Fazer um algoritmo que faa o clculo da converso do valor de uma temperatura em graus Celsius para graus Fahrenheit. A frmula de converso F = (9*C + 160)/5, sendo F a temperatura em Fahrenheit e C a temperatura em Celsius. Soluo:
Inicio
Leia C
Entrada
F = (9*C + 160)/5
Processamento
Escreva F
Sada
Fim
Pgina 2 de 10
e) Conceito abstrato de varivel: Repare que, no exemplo anterior, usamos as letras C e F para representar as temperaturas em graus Celsius e Fahrenheit respectivamente. Em si tratando de algoritmos C e F so chamadas variveis. As variveis so usadas para representar e armazenar as informaes que o algoritmo ir manipular. Alm disso, uma informao classificada como varivel quando tem a possibilidade de ser alterado o seu valor em algum instante do tempo. Por exemplo: A quantidade de funcionrios de uma empresa. O peso e idade de uma pessoa Os algoritmos que iremos construir precisaro receber dados. Por exemplo, o algoritmo (programa) de um caixa eletrnico recebe dados, certo? E tais dados precisam ser armazenados em algum lugar para posteriormente serem utilizados (sua senha, a identificao da sua conta, etc). Esse armazenamento feito na memria do computador (que podemos fazer analogia com a memria humana). Uma varivel um local nessa memria do computador. Uma varivel possui nome e tipo e tem que ser criadas pelo programador quando este estiver construindo algoritmo que recebam e manipulem dados (informaes). f) Linguagem de programao:
Linguagem de programao um mtodo padronizado para expressar instrues para um computador. um conjunto de regras sintticas e semnticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados sero armazenados ou transmitidos e quais aes devem ser tomadas sob vrias circunstncias. Pascal, C e C++ so exemplos de linguagens de programao. Nos exemplos anteriores, os algoritmos foram expressos atravs de fluxogramas. No entanto, em Computao para que o algoritmo possa se tornar um programa executvel necessrio escrev-lo em uma linguagem de programao real, seguindo uma determinada estrutura. Assim, o computador ser capaz de entender o algoritmo e execut-lo. g) Estrutura do Algoritmo em Computao algoritmo nome do algoritmo; definio das variveis incio atribuio de valores s variveis entrada de dados LGICA Sada de dados fim_algoritmo. h) Comando de sada: ESCREVA Exemplo de algoritmo apenas com comando de sada: Algoritmo Primeiro; inicio escreva( Al Mundo); fim-algoritmo. i) Tipos Primitivos de Dados
A informao a matria-prima que faz com que seja necessria a existncia do computador, pois eles so capazes de manipular e armazenar um grande volume de dados com alta performance. Os tipos primitivos de dados so: Inteiro (Integer) Toda e qualquer informao numrica que pertena ao conjunto dos nmeros inteiros (negativa, nula ou positiva). No possuem parte decimal. A faixa de valores inteiros possveis 32767 a 32768. Por exemplo: Hoje dia 15 de fevereiro. Minha idade 25 anos. O professor selecionar 2 alunos para monitoria.
Pgina 3 de 10
Real (Real) Toda e qualquer informao numrica que pertena ao conjunto dos nmeros reais (negativo, nula ou positiva). Por exemplo: O funcionrio receber R$ 250,30 por ms. A temperatura est prxima do 37,5 graus. Caracter (String) Toda e qualquer informao composta por um conjunto de caracteres alfanumricos (0..9, a .. z, A..Z) e/ou especiais (por exemplo: *, $, %, &, #, ?, >,<, !, @). Os nmeros, quando utilizados como caracter, no podem ser utilizados para clculo. Por exemplo: O nome do funcionrio Antnio Augusto. A mensagem de retorno Cuidado, o micro est doido. A placa do carro GXW 0345 Moro na rua 3. Lgico (Boolean) Toda e qualquer informao que pode apenas assumir duas situaes possveis (biestvel). Verdadeiro ou Falso. Por exemplo: O funcionrio possui dependente. A lmpada pode estar acessa ou apagada. Introduo a declarao de varivel: Para armazenar corretamente os dados na memria necessrio a sua correta declarao: tipo primitivo do dado e o seu nome. Devemos obedecer a seguinte sintaxe: VAR lista de variveis : tipo; Exemplo: VAR X, Y, Idade, QtdFuncionarios : inteiro; Nome, Endereco, Data : caracter; Salario, Peso, Dolar, ValorVenda : real; TemDependente, MoraIpatinga : lgico; k) Para exemplificar: Algoritmo Primeiro; VAR N1, N2, Soma : inteiro; inicio N1 5; N2 6; Soma N1 + N2; escreva (Soma); Fim_algoritmo. Resultado impresso na tela: j)
11
b) Primeiro exemplo: Em Portugol Algoritmo Primeiro; inicio escreva "Al Mundo. Fim_algoritmo.
Procedimentos para construo de um programa: 1. Troque o nome Pzim que est na frente da palavra program pelo nome que deseja dar ao seu programa. No nosso caso chamaremos de Primeiro; 2. Entre as palavras begin e end da tela indicada no item b), digite write('Alo Mundo'); 3. Salve o seu programa. V ao menu Arquivo/Salvar ou acione o cone do disquete. OBS: na tela que aparecer, voc ter que escolher a pasta onde ser salvo o programa (na pasta referente Atravs desta seta voc poder ao seu usurio) e dever dar um acessar sua pasta. Ela ter como nome ao mesmo (Primeiro). Veja nome o seu nmero de matrcula abaixo a tela que ir aparecer para voc preencher. 4. Para testar o seu programa v ao menu Compilar/Executar ou acione o cone que se parece com um raio:
c) Segundo Exemplo: 1. Para criar um novo programa 2. Digite o cdigo Pascal em destaque, mostrado abaixo . Em Portugol Em Pascal Algoritmo SomaNum; program SomaNum; var N1, N2, Soma: integer; var N1, N2, Soma: inteiro; inicio begin N1 := 5; N1 5; N2 := 6; N2 6; Soma := N1 + N2; Soma N1 + N2; write(Soma); escreva (Soma); Fim_algoritmo. end. 3. Salve o programa com o nome de SomaNum 4. Execute o programa e analise o resultado. d) Alterando o Segundo Exemplo: 1. Alterar o programa anterior de forma que seja calculado tambm a multiplicao dos dois nmeros. O novo resultado dever ser mostrado na tela. 2. Salve, execute e analise o resultado.
e) Terceiro Exemplo:
Pgina 5 de 10
Calculando a mdia entre 3 nmeros inteiros Em Portugol Em Pascal Algoritmo CalculaMedia; program CalculaMedia; var N1, N2, N3: integer; var N1, N2, N3: inteiro; Media: real; Media: real; inicio begin N1:=7; N1 7; N2:=2; N2 2; N3:=6; N3 6; Media:=(N1+N2+N3)/3; Media (N1 + N2 + N3)/3; write(Media); escreva (Media); Fim_algoritmo. end. f) Exercitando mais um pouco
Construir um algoritmo que leia seu nome e depois exiba-o na tela com a seguinte frase com o seu nome: Fulano, aluno do segundo perodo do curso de Engenharia
Pgina 6 de 10
d) Operadores aritmticos: Denominamos expresso aritmtica aquela cujos operadores so aritmticos e cujos operandos so constantes e/ou variveis do tipo numrico (inteiro e /ou real). Os operadores aritmticos so: + adio; subtrao; * multiplicao; / diviso; DIV (Quociente da diviso inteira) Exemplo: 27 DIV 5 5 MOD (Resto da diviso inteira) Exemplo: 27 MOD 5 2 Devemos obedecer prioridade entre as operaes, conforme a seguir: 1 multiplicao, diviso. 2 adio, subtrao. e) Para exemplificar: Algoritmo que calcula e escreve a rea de um tringulo sendo que o usurio ir digitar os valores da base e da altura do tringulo. Sabe-se que para um tringulo: Area = Base x Altura 2 1) Algoritmo Triangulo; Var Base, Altura, Area :real; inicio leia (Base) ; leia (Altura); Area (Base * Altura)/2; escreva (Area); Fim_algoritmo.
4 8 16
Melhorando o algoritmo: 2) Algoritmo CalculoAreaTriangulo Var Base, Altura, Area :real; inicio escreva (Informe o valor da base ); leia (Base); escreva (Informe o valor da altura ) ; leia (Altura); Area (Base * Altura) / 2; escreva (A rea , Area); Fim_algoritmo.
Exemplo de Rastreio TELA Informe o valor da base 6 Informe o valor da altura 5 A rea 15
Base 6
Memoria RAM
Altura 5 Area 15
Codificando o algoritmo acima na linguagem Pascal, temos: program CalculoAreaTriangulo; var Base, Altura, Area :real; begin write (Informe o valor da base (B): ); readln (Base); write (Informe o valor da altura (H): ); readln (Altura); Area := ( Base * Altura) / 2; write (A rea : , Area:0:2); end.
Pgina 7 de 10
6) Mais Exemplos:
Algoritmo que calcula o novo preo de um produto aps 10% de aumento. Algoritmo Aumento; Var Preco, Aum, NovoPreco :real; inicio escreva (Informe o preo do produto:); leia (Preco); Aum Preco* 0.1; NovoPreco Preco + Aum; escreva (O produto passar a custar: , NovoPreco); Fim_algoritmo. Codificando o algoritmo acima na linguagem Pascal, temos: program Aumento; var Preco, Aum, NovoPreco :real; begin write (Informe o preo do produto: ); readln (Preco); Aum := Preco * 0.1; NovoPreco := Preco + Aum; write (O produto passara a custar: , NovoPreco:0:2); end. Considere agora a seguinte situao: Maria quer saber quantos litros de gasolina precisa colocar em seu carro e quanto vai gastar em dinheiro para fazer uma viagem at a casa de sua irm. Faa um algoritmo capaz de realizar estes clculos. Algoritmo Viagem; Var Distancia, Rendimento, Preco, Consumo, Gasto: real; inicio escreva (Informe a distncia da viagem:); leia (Distancia); escreva (Informe o rendimento do automvel:); leia (Rendimento); escreva (Informe o preo da gasolina:); leia (Preco); Consumo Distancia/Rendimento; Gasto Consumo*Preco; escreva (O consumo ser de: , Consumo); escreva (O gasto ser de: , Gasto); Fim_algoritmo.
Ateno: existem vrias outras formas de calcular %. Mas em se tratando de algoritmo NUNCA utilize o sinal de %, pois na hora de criar o programa no computador, no vai funcionar. (0,1 10% ou seja, 10 dividido por 100 10/100)
Codificando o algoritmo acima na linguagem Pascal, temos: program Viagem; var Distancia, Rendimento, Preco, Consumo, Gasto: real; begin write (Informe a distncia da viagem:); readln (Distancia); write (Informe o rendimento do automvel:); readln (Rendimento); write (Informe o preo da gasolina:); readln (Preco); Consumo := Distancia/Rendimento;
Pgina 8 de 10
Gasto := Consumo*Preco; write (O consumo ser de: , Consumo); write (O gasto ser de: , Gasto); end.
A C B
2) MODIFICAR o programa para que ele agora calcule o valor da rea hachurada da casa sabendo que as janelas so quadradas e tm lados iguais a um tero de C.
A C
3) Faa um novo programa que dever calcular e escrever o valor da funco Y dada abaixo para o X que o usurio quiser. OBS: Lembre-se das prioridades aritmticas.
B Y = X2 3 X+1
4) Faa um programa que dever solicitar ao usurio o raio de uma esfera, calcular e exibir a sua rea e o seu volume. Sabe-se que: rea da esfera = 4 x Volume da esfera = (4
raio
3) x
raio
5) Um menino deseja pegar sua pipa que ficou agarrada em uma rvore a uma altura de X metros. Devido a alguns obstculos ele precisar colocar a escada a exatamente Y metros da rvore. Faa um algoritmo que calcule e mostre o tamanho da escada que ter que conseguir para poder atingir exatamente o local onde est a pipa. Onde: Z X Y X Altura onde se encontra a pipa (entrada); Y Distncia que a escada ter que ser colocada da rvore (entrada); Z Tamanho da escada (calcular).
Z X 2 Y 2
A C B
Pgina 9 de 10
4. O preo de um automvel calculado pela soma do preo de fbrica com o preo dos impostos (45% do preo de fbrica) e a percentagem do revendedor (28% do preo de fbrica). Faa um algoritmo que leia a marca do automvel e o preo de fbrica e calcule e escreva seu preo final. 5. Uma empresa possui, para um determinado funcionrio, uma ficha contendo: o nome, nmero de horas trabalhadas e o n de dependentes de um funcionrio. Considerando que: a) A empresa paga 12 reais por hora e 40 reais por dependentes. b) Sobre o salrio so feito descontos de 8,5% para o INSS e 5% para IR. Faa um algoritmo para ler o Nome, nmero de horas trabalhadas e nmero de dependentes de um funcionrio. Aps a leitura e os devidos clculos escreva qual o Nome, salrio bruto, os valores descontados para cada tipo de imposto e finalmente qual o salrio lquido do funcionrio. 2 6. Sabe-se que so necessrios 0,2L de tinta para pintar 1m de parede. Construa um algoritmo que, com base nas medidas de uma parede retangular, escreva a rea a ser pintada e a quantidade de tinta necessria para pintar esta parede. 7. Exerccios do livro Texto: pgina 39 n 6, 7, 12 e 14; pgina 40 n: 17, 24 e 25. 8. Analise o programa abaixo e faa o rastreio do mesmo, representando tela e memria. program Aval1; var Peso, Altura, IMC: real; Nome: string; begin write('Informe o nome da pessoa:'); readln(Nome); write('Informe a altura desta pessoa: '); readln(Altura); writeln('Informe o peso desta pessoa: '); readln(Peso); IMC := Peso / SQR(Altura); write('O ndice de massa corporal do(a) ', Nome, ' de ', IMC:0:2); end. 9. Faa um programa que leia um valor representando o gasto realizado por um cliente do restaurante COMABEM e imprima o valor total a ser pago, considerando os 10% do garom 10. Construa um fluxograma e um programa utilizando linguagem Pascal que resolva o seguinte problema:Um proprietrio de um veculo recebeu a informao que o carro que deseja comprar faz 11,5 km/litro. Como precisar fazer uma viagem, deseja saber quantos litros de gasolina ir gastar e quanto gastar em dinheiro(R$). OBS: informaes necessrias sero informadas pelo usurio do programa. 11. Faa um programa que leia o valor de uma mercadoria e a porcentagem de desconto. O programa deve imprimir o novo valor com desconto. 12. Sabe-se que so necessrios 0,2L de tinta para pintar 1m2 de parede. Construa um algoritmo que, com base nas medidas de uma parede retangular, escreva a rea a ser pintada e a quantidade de tinta necessria para pintar esta parede. 13. Faa um programa que receba o valor do salrio mnimo, o nmero de horas trabalhadas, o nmero de dependentes do funcionrio. Calcule e mostre o salrio bruto e o salrio lquido do funcionrio de acordo com as regras a seguir. O valor da hora trabalhada igual a um quinto (1/5) do salrio mnimo; O salrio do ms igual ao nmero de horas trabalhadas multiplicado pelo valor da hora trabalhada; Como auxlio famlia, para cada dependente acrescentar R$ 50,00; O salrio bruto igual ao salrio do ms, acrescido do auxlio famlia; Calcular o valor do imposto de renda retido na fonte (IRPF), que ser de 20%; O salrio lquido igual ao salrio bruto menos o IRPF; 14. Construa um programa que obtenha os seguintes dados de uma cidade: nome, populao e rea. Com base nesses dados calcule a densidade populacional desta cidade (Hab/Km2).
Pgina 10 de 10