Introdução A Algoritmos Utilizando o Pascal

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 10

Introduo 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.

Representando a soluo em um fluxograma (diagrama de blocos) teramos:

Inicio

Leia Lado

Entrada

Area = Lado * Lado Processamento

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

4) Atividade Prtica 1 Primeiros exemplos prticos


a) Uso da ferramenta Pascal Zim: 1. Clique no cone referente ao Pascal Zim (Pzim) que est na rea de trabalho e/ou no menu iniciar. 2. O programa Pascal Zim ir aparecer como na tela ao lado:

3. neste ambiente que iremos transforma nossos algoritmos em programas


Pgina 4 de 10

b) Primeiro exemplo: Em Portugol Algoritmo Primeiro; inicio escreva "Al Mundo. Fim_algoritmo.

Em Pascal Program Primeiro; begin write('Alo Mundo'); end.

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:

5. A cada alterao no seu programa lembre sempre de salvar antes de executar.

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

5) Fundamentao Terica Outros Conceitos:


a) Comando de entrada: O comando de entrada de dados possui a seguinte sintaxe: leia (< varivel>); Exemplo: leia (x); leia (A, IDADE, NOTA); b) Comando de atribuio: Um comando de atribuio permite-nos fornecer um valor a uma certa varivel (guardar um objeto numa certa gaveta), onde o tipo dessa informao deve ser compatvel com o tipo da varivel, isto , somente podemos atribuir um valor caracter a uma varivel capaz de comport-lo, ou seja, uma varivel declarada do tipo caracter. O comando de atribuio possui a seguinte sintaxe: Varivel expresso; Em Pascal tal comando :=, caso prefira usar na teoria o comando igual ao da linguagem Pascal, ser permitido. Exemplo: VAR A, B : real; X : Inteiro; Nome: caracter; A 12.6; B A/2; X 8 + 13 - 5; Nome Ana Carolina; c) Regras para nomes (identificacores) de Variveis : Identificador o nome que podemos dar s variveis que iro armazenar os dados que precisamos no nosso programa. Para criarmos um identificador, ou seja, para dar nome a uma varivel temos que seguir determinadas regras: Devem comear por um caracter alfabtico (letra); Podem ser seguidos por mais caracteres alfabticos e/ou numricos, ou pelo caracter sublinhado _ No permitido o uso de caracteres especiais (@, #, $, % ,^, ~, ...); Exemplos: IDENTIFICADORES VLIDOS: Aroba, Media, Nota1, Nome_Aluno, A_10, Curso, Salario,. IDENTIFICADORES NO VLIDOS: @, Mdia, Nome Aluno, Nome-Aluno, Salrio, @luno, 1N, X-Y, Nota/2;

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.

Exemplo de Rastreio TELA Memoria RAM


Base 4 Altura 8 Area 16

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.

7) Atividade Prtica 2 Algoritmos Sequenciais


1) Faa um programa NOVO (File/New) que dever calcular e escrever a rea da casinha mostrada ao lado: (OBS.: Os valores de A, B e C sero fornecidos pelo usurio)

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).

Lembre-se que, para um tringulo retngulo, pelo teorema de pitgoras temos:

Z X 2 Y 2

Exerccios Complementares Algoritmos Sequenciais


1. Faa um algoritmo que calcule e mostre a rea de um quadrado. Sabe-se a rea de um quadrado Lado x Lado. 2. Acrescente no algoritmo anterior o clculo do permetro do quadrado. Mostrar o resultado. Sabe-se que permetro a soma de todos os lados. 3. Faa um algoritmo que leia o nome de uma pessoa, leia tambm o ano de nascimento e o ano atual. Calcule e escreva qual a idade dessa pessoa. O resultado dever ser exibido da seguinte forma: Fulano de tal tem X anos de vida.

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

Você também pode gostar