Вы находитесь на странице: 1из 16

Centro Universitrio de Lins - Unilins

APOSTILA DE ALGORITMO E PROGRAMAO BSICA

Prof Cristiane Paschoali Prof. Hamilton Luiz de Souza


2010

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Sumrio
Algoritmo e Lgica de Programao....................................................................................................3 Linguagens de Programao............................................................................................................3 Quanto ao paradigma..................................................................................................................3 Quanto a estrutura de tipos..........................................................................................................3 Quanto ao grau de abstrao.......................................................................................................4 Quanto gerao.........................................................................................................................4 Algoritmos.......................................................................................................................................5 Descrio Narrativa....................................................................................................................6 Fluxograma................................................................................................................................6 Pseudocdigo.............................................................................................................................6 Exerccio resolvido: ...................................................................................................................7 Exerccios Propostos...................................................................................................................8 Conceito de Varivel........................................................................................................................8 Estrutura Sequencial......................................................................................................................10 Tipos de Variveis..........................................................................................................................11 Comandos de Entrada e Sada.......................................................................................................12 Operadores e Funes....................................................................................................................13 Exerccios Propostos .........................................................................................................................15 Referncias Bibliogrficas..................................................................................................................16

ndice de ilustraes
Ilustrao 1: Exemplo de fluxograma...................................................................................................7 Ilustrao 2: Resoluo com fluxograma.............................................................................................9

ndice de tabelas
Tabela 1: Conjunto de smbolos utilizados no fluxograma..................................................................6 Tabela 2: Tipos de variveis em Algoritmo e em Pascal....................................................................11 Tabela 3: Palavras reservadas em Algoritmo e em Pascal..................................................................12 Tabela 4: Tabela de operadores para clculos matemticos...............................................................13 Tabela 5: Tabela de operadores comparativos....................................................................................13 Tabela 6: Funes matemticas em Pascal.........................................................................................14

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Algoritmo e Lgica de Programao


Quando queremos criar ou desenvolver um software para realizar determinado tipo de processamento de dados, devemos escrever um programa ou vrios programas interligados. No entanto, para que o computador compreenda e execute esse programa, devemos escrev-lo usando uma linguagem que tanto o computador quanto o criador de software entendam. Essa linguagem chamada de linguagem de programao (ASCENCIO & CAMPOS, 2008).

Linguagens de Programao
Uma linguagem de programao um conjunto de regras sintticas e semnticas usadas para definir um programa de computador (WIKIPEDIA, 2010). O conjunto de palavras (tokens), composto de acordo com essas regras, constituem o cdigo fonte de um software. Linguagens de programao so importantes para que programadores e engenheiros de software possam escrever programas mais organizados e com maior rapidez. Elas tambm tornam os programas menos dependentes de computadores ou ambientes computacionais especficos. Isso porque os programas escritos podem ser traduzidos para o cdigo de mquina do computador ou do ambiente especfico onde ser executado. As linguagens podem ser classificadas quanto vrias caractersticas. Logo abaixo ve-se alguns exemplos (Wikipedia, 2010).

Quanto ao paradigma
Diferentes linguagens de programao podem ser agrupadas segundo o paradigma que seguem para abordar a sua sintaxe: Linguagem funcional Linguagem natural Programao lgica Programao imperativa Programao estruturada Linguagem orientada a objetos

Quanto a estrutura de tipos


Fracamente tipada, como Smalltalk, onde o tipo da varivel muda dinamicamente conforme a situao.
3

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Fortemente tipada, como Java, Ruby, onde o tipo da varivel, uma vez atribudo, se mantm o mesmo at ser descartada da memria. Dinamicamente tipada, como Perl, Python ou Ruby, onde o tipo da varivel definido em tempo de execuo. Estaticamente tipada, como Java e C, onde o tipo da varivel definido em tempo de compilao.

Quanto ao grau de abstrao


Linguagem de programao de baixo nvel, cujos smbolos so uma representao direta do cdigo de mquina que ser gerado, onde cada comando da linguagem equivale a um "opcode" do processador, como Assembly. Linguagem de programao de mdio nvel, que possui smbolos que podem ser convertidos diretamente para cdigo de mquina (goto, expresses matemticas, atribuio de variveis), mas tambm smbolos complexos que so convertidos por um compilador. Exemplo: C, C++. Linguagem de programao de alto nvel, composta de smbolos mais complexos, inteligvel pelo ser humano e no-executvel diretamente pela mquina, no nvel da especificao de algoritmos, como Pascal, Fortran, ALGOL e SQL.

Quanto gerao
Primeira gerao, as linguagens de baixo nvel (Assembly) Segunda gerao, as primeiras linguagens (Fortran, ALGOL,...) Terceira gerao, as procedurais e estruturadas (Pascal, C). Quarta gerao, linguagens que geram programas em outras linguagens (Java, C++), linguagens de consulta (SQL). Quinta gerao, linguagens lgicas (Prolog). As etapas para o desenvolvimento de um programa so (ASCENCIO & CAMPOS, 2008):
1. Anlise Nesta etapa, estuda-se o enunciado do problema para definir os dados de

entrada, o processamento e os dados de sada. 2. Algoritmo Ferramentas do tipo descrio narrativa, fluxograma ou portugus estruturado so utilizadas para descrever o problema com suas solues. 3. Codificao O algoritmo transformado em cdigos da linguagem de programao escolhida para se trabalhar. Portanto, um programa a codificao de um algoritmo em uma linguagem de programao (ASCENCIO, 1999).

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Para que se desenvolva esses programas, necessrio usar o que se chama lgica de programao. Lgica de programao a tcnica de encadear pensamentos para atingir determinado objetivo.

Algoritmos
A ferramenta que auxilia a lgica de programao na resoluo dos problemas so os algoritmos. A palavra algoritmo pode ter vrias definies, entre elas: Algoritmo uma sequncia de passos que visa atingir um objetivo bem definido. (FORBELLONE, 1999) Algoritmo a descrio de uma sequncia de passos que deve ser seguida para a realizao de uma tarefa. (ASCENCIO, 1999) Algoritmo uma sequncia finita de instrues ou operaes cuja execuo, em tempo finito, resolve um problema computacional, qualquer que seja sua instncia. (SALVETTI, 1999) Analisando as definies, podemos concluir que algoritmos no so somente utilizados em problemas computacionais, mas podem ser aplicados a qualquer situao do dia a dia. No exemplo abaixo, v-se um algoritmo para a troca de uma lmpada. Algoritmo Trocar Lmpada 1. Pegar uma lmpada nova. 2. Pegar uma escada. 3. Posicionar a escada embaixo da lmpada queimada. 4. Subir na escada com a lmpada nova na mo. 5. Retirar a lmpada queimada. 6. Colocar a lmpada nova. 7. Descer da escada. 8. Testar o interruptor. 9. Guardar a escada. 10. Jogar a lmpada velha no lixo. Assim como as vrias atividades podem ser realizadas de formas diferentes, tambm no existe somente um algoritmo correto. Algoritmos diferentes, desde que resolvam o problema proposto, esto corretos. Para se construir um algoritmo, alguns passos so importantes. So eles: Compreender o problema a ser resolvido. Definir os dados de entrada, quais destes dados sero fornecidos e quais j fazem parte do cenrio. Definir os processamentos necessrios para se resolver o problema. O processamento transforma os dados de entrada nos dados de sada. Definir os dados de sada, ou seja, quais informaes precisaro ser mostradas.
5

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Construir o algoritmo, utilizando uma das formas disponveis (sero mostradas mais adiante). Testar o algoritmo utilizando simulaes.

Vale destacar que os algoritmos devem ser genricos para o problema proposto, no importando quais sero os dados de entrada fornecidos. Os trs tipos de algoritmos mais utilizados so: descrio narrativa, fluxograma e pseudocdigo. Logo abaixo esto as caractersticas de cada um. Descrio Narrativa Consiste em analisar o enunciado do problema e escrever, utilizando uma linguagem natural, os passos a serem seguidos para sua resoluo. Uma vantagem deste tipo de algoritmo sua facilidade, pois no h necessidade de novos conhecimentos para empreglo. Uma desvantagem a abertura para vrias interpretaes que a linguagem natural proporciona. Fluxograma Consiste em analisar o enunciado do problema e escrever, utilizando smbolos grficos definidos, os passos para a soluo do problema. Uma vantagem a simplicidade que os elementos grficos proporcionam para o entendimento. Uma desvantagem a necessidade de aprender a simbologia do fluxograma. Para conhecimento da simbologia, vide tabela 1. Pseudocdigo Consiste em analisar o problema e escrever, por meio de regras predefinidas, os passos a serem seguidos para a resoluo. Uma vantagem a facilidade de transcrio para a linguagem de programao, bastando conhecer as palavras reservadas da linguagem a ser utilizadas. Uma desvantagem a necessidade de aprender as regras do pseudocdigo.
Tabela 1: Conjunto de smbolos utilizados no fluxograma Smbolo Significado Smbolo utilizado para indicar o incio e o fim do algoritmo. Permite indicar o sentido do fluxo de dados. Serve exclusivamente para conectar os smbolos ou blocos existentes. Smbolo utilizado para indicar clculos e atribuies de valores.

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali Smbolo Significado Smbolo utilizado para representar a entrada de dados. Smbolo utilizado para representar a sada de dados. Smbolo utilizado para indicar que deve ser tomada uma deciso, apontando a possibilidade de desvios.

Exerccio resolvido:
Faa um algoritmo para mostrar o resultado da multiplicao de dois nmeros. Soluo com descrio narrativa: 1. Obter os dois nmeros que sero multiplicados 2. Multiplicar os nmeros. 3. Mostrar o resultado obtido na multiplicao. Soluo em algoritmo: Incio

N1, N2

M = N1 * N2

M
Ilustrao 1: Exemplo de fluxograma

Fim

Soluo em pseudocdigo: Algoritmo multiplicao Declarao de variveis Real N1, N2, M Incio Escrever Digite os nmeros a serem multiplicados Leia N1, N2
7

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

M N1 * N2 Escrever M Fim

Exerccios Propostos
a) Faa um algoritmo que calcule a mdia aritmtica de um aluno, dadas as notas de trabalho e de prova de um determinado bimestre. b) Faa um algoritmo que receba dois nmeros e mostre as quatro operaes bsicas (soma, subtrao, multiplicao e diviso) realizadas com eles.

Conceito de Varivel
Os algoritmos e programas recebem dados que precisam ser armazenados para posteriormente poderem ser processados. Esse armazenamento feito na memria do computador, quando os algoritmos se transformam em programas. Dessa forma, uma varivel uma posio (ou endereo) de memria do computador. Possui um tipo e um nome, podendo o seu contedo variar ao longo da execuo do programa. Embora uma varivel possa assumir vrios valores ao longo da execuo do algoritmo ou programa, ela s pode armazenar um nico valor em determinado instante. Os tipos de dados mais comuns so: Numricos Dividem-se em dois grupos: reais e inteiros. Os inteiros podem ser positivos ou negativos e no possuem parte decimal. Os reais podem ser positivos ou negativos e possuem parte decimal. Exemplo de nmeros inteiros: 3 -45 98 -423 34 -9 Exemplo de nmeros reais: 45,2 -90,56 158,26 -324,8 Literais ou caracteres So dados formados por um nico caractere ou por uma cadeia de caracteres. Podem ser letras (maisculas ou minsculas), caracteres especiais (* & % $ # @ ? ,) ou nmeros (que, nesse caso, no podem ser utilizados para operaes matemticas). Lgicos Tambm so chamados de booleanos e s podem assumir um de dois valores: verdadeiro ou falso. Formao de Identificadores Identificadores so nomes de variveis, dos programas, das constantes, das rotinas, etc. Existem algumas regras bsicas para criao desses nomes devem ser seguidas, principalmente quando estivermos lidando com a linguagem de programao Pascal, para evitar problemas. Os caracteres que podem ser utilizados so: letras maisculas e minsculas, nmeros
8

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

e underline. O primeiro caractere do nome no pode ser um nmero, deve ser uma letra. No podem ser utilizados espaos em branco e caracteres especiais. No podem ser utilizadas palavras reservadas da linguagem utilizada. O nome do programa no poder ter o mesmo nome de qualquer varivel utilizada.

Pensando na resoluo dos algoritmos voltados para posterior implementao em Pascal, estamos pensando em solues de problemas seguindo o paradigma estruturado, ou imperativo. Para solues deste tipo, necessrio detalhar as aes para se chegar resposta necessria. A seguir vemos como calcular a rea e o permetro de um retngulo seguindo esses passos. 1. 2. 3. 4. 5. Obter o valor da altura do retngulo. Obter o valor da largura do retngulo. Calcular a rea. Calcular o permetro. Mostrar os clculos realizados.

Em fluxograma: Incio

Alt, Lar

Area = Alt * Lar

Per = 2*Alt + 2*Lar

Area,Per
Ilustrao 2: Resoluo com fluxograma

Fim

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Em algoritmo: Algoritmo Retngulo Declarao de variveis Real Alt,Lar,Area,Per Incio Escrever A altura e a largura do retngulo Leia Alt,Lar Area Alt*Lar Per 2*Alt + 2*Lar Escrever Area,Per Fim

Estrutura Sequencial
Pelo paradigma estruturado, qualquer problema pode ser resolvido utilizando trs estruturas: sequencial, condicional e iterativa (repetio). Na estrutura sequencial, os passos para a resoluo do problema so executados em sua integridade, um por um, sequencialmente. A estrutura sequencial em algoritmo segue o seguinte formato: Algoritmonome DeclaraodeVariveis variveis Incio Blocodeinstrues Fim Em Pascal essa estrutura se transforma em: Programnome; Var variveis; Begin Blocodeinstrues; End. Comando de atribuio

10

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

O comando de atribuio utilizado para conceder valores ou operaes a variveis, sendo representado pelo smbolo em algoritmos e por := em Pascal. Exemplos de atribuio: x4*2 x:=x+2 yaula y:='resposta'

Tipos de Variveis
Os tipos de variveis mais utilizados so: Inteiro, Real, Caractere, Cadeia de Caracteres e Lgicos para algoritmos. Em Pascal estes tipos ficam, respectivamente: Integer, Real, Char, String e Boolean. A tabela 2 mostra quais os tamanhos e faixa de valores dessas e de outras variveis.
Tabela 2: Tipos de variveis em Algoritmo e em Pascal

Algoritmo Inteiro Real Caractere Cadeia Caracteres Lgico de

Pascal Integer Real Char String Boolean Shortint Longint Double

Faixa de Valores -32.768 a 32.767

Tamanho (aprox) 16 bits

2,9x10-39 a 1,7x1038 (11 a 12 6 bytes dgitos com sinal) 1 caractere qualquer Cadeia de caracteres mximo 255) (no 1 byte Tantos bytes quantos forem os caracteres

Falso ou Verdadeiro. True ou 8 bits False. -128 a 127 -2.147.483.648 2.147.483.647 a 8 bits 32 bits

5,0x10-324 a 1,7x10308 (15 a 16 8 bytes dgitos com sinal)

A tabela 3 mostra quais as palavras reservadas em Algoritmo e em Pascal.

11

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Tabela 3: Palavras reservadas em Algoritmo e em Pascal

Algoritmo Algoritmo Declarao de Variveis Incio Fim .E. .OU. Se Ento Seno Para Enquanto Ler Escrever Program Var Begin End And Or If Then Else For While Read Write Do To Not File Object Label Repeat

Pascal

Comandos de Entrada e Sada


O comando de entrada utilizado para receber dados digitados pelo usurio, sendo armazenados em variveis. Em Algoritmo utiliza-se o comando Ler e em Pascal Read. O comando de sada utilizado para mostrar os dados na tela ou na impressora. Em Algoritmo usa-se o comando Escrever e em Pascal Write.

12

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Operadores e Funes
Existem vrios operadores e funes predefinidas destinados a clculos matemticos, mostrados nas tabelas 4, 5 e 6.
Tabela 4: Tabela de operadores para clculos matemticos

Op. em Algoritmo + * / Resto Divide

Op. em Pascal := + * / mod div

Exemplo e comentrio xy ou x:=y (o contedo da varivel y atribudo para a varivel x) x+y (Soma o contedo de x e de y) x y (Subtrai o contedo de y do contedo de x) x * y (Multiplica o contedo de x pelo contedo de y) x/y (Obtm o quociente da diviso de x por y) Resto(x,y) ou xmody (Obtm o resto da diviso de x por y) Divide(x,y) ou x div y (Obtm o quociente inteiro da diviso de x por y)

Observaes: a) Os operadores div e mod s podem ser aplicados com operandos do tipo inteiro. b) O operador / sempre conduz a um resultado real. c) Com os operadores +, - e *, se pelo menos um dos operandos for real, ento o resultado tambm ser real.
Tabela 5: Tabela de operadores comparativos

Op. em Algoritmo =

Op. em Pascal = <> <=

Exemplo e comentrio x=y (Compara se o contedo de x igual ao contedo de y) x y ou x <> y (Compara se o contedo de x diferente do contedo de y) x y ou x <= y (Compara se o contedo de x menor ou igual ao contedo de y) x y ou x >= y (Compara se o contedo de x maior ou igual ao contedo de y)
13

>=

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

< >

< >

x < y (Compara se o contedo de x menor do que o contedo de y) x > y (Compara se o contedo de x maior do que o contedo de y)

Funes Matemticas Funo abs log trunc frac round sin cos pi sqrt sqr inc dec Exemplo abx(x) log(x) trunc(x) frac(x) round(x) sin(x) cos(x) pi sqrt(x) sqr(x) inc(x,y) dec(x,y) Comentrio Obtm o valor absoluto de x. Obtm o logaritmo natural de x. Obtm a parte inteira do nmero real armazenado em x. Obtm a parte armazenado em x. Arredonda x. Calcula o seno de x (x deve ser passado em radianos) Calcula o co-seno de x (x deve ser passado em radianos) Retorna o valor de . Calcula a raiz quadrada de x. Calcula x elevado ao quadrado. Incrementa a varivel x com o valor da varivel y. Decrementa a varivel x com o valor da varivel y. fracionria do nmero real

Tabela 6: Funes matemticas em Pascal

Observao: Por no existir operador de potenciao, tem-se: AB = Exp(B * Ln(A)) Exemplo: 510 = Exp(10 * Ln(5)) As prioridades entre operadores, incluindo as funes, so: 1. ( ) - parnteses 2. funes 3. * , / , div , mod 4. + , Quando se tem, em uma mesma expresso, vrios operadores com a mesma prioridade, a expresso resolvida da esquerda para a direita.

14

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Exerccios Propostos (Obs.: os exerccios devero ser resolvidos em fluxograma e algoritmo) 1) Faa um algoritmo que receba trs notas e seus respectivos pesos, calcule e mostre a mdia ponderada dessas notas. 2) Faa um algoritmo que receba o salrio de um funcionrio, calcule e mostre o novo salrio, sabendo que este sofreu um aumento de 25%. 3) Faa um algoritmo que receba o salrio de um funcionrio e o percentual de aumento, calcule e mostre o valor do aumento e o novo salrio. 4) Faa um algoritmo que calcule e mostre a rea de um crculo. reacirculo = *R2 5) Faa um algoritmo que receba o valor de um depsito e o valor da taxa de juros, calcule e mostre o valor do rendimento e o valor total depois do rendimento. 6) Sabe-se que: 1 p = 12 polegadas 1 jarda = 3 ps 1 milha = 1.760 jardas Faa um algoritmo que receba uma medida em ps, vaa as converses a seguir e mostre os resultados em polegadas, em jardas e em milhas. 7) Faa um algoritmo que receba o ano de nascimento de uma pessoa e o ano atual, calcule e mostre: a idade dessa pessoa e quantos anos ela ter em 2050. 8) Faa um programa que receba o nmero de horas trabalhadas e o valor do salrio mnimo, calcule e mostre o salrio a receber seguindo as seguintes regras: - a hora trabalhada vale a metade do salrio mnimo; - o salrio bruto equivale ao nmero de horas trabalhadas multiplicado pelo valor da hora trabalhada; - o imposto equivale a 3% do salrio bruto; - o salrio a receber equivale ao salrio bruto menos o imposto.

15

Apostila de Algoritmo e Lgica de Programao Prof Cristiane Paschoali

Referncias Bibliogrficas

16

Вам также может понравиться