Você está na página 1de 15

# Conceitos bsicos de algoritmos e pseudocdigo ______________________________1

1.1 Algoritmo ______________________________________________________________ 1 1.2 O Pseudocdigo _________________________________________________________ 2 1.3 Variveis _______________________________________________________________ 2 1.4 Literais ________________________________________________________________ 3 1.5 Expresses Aritmticas ___________________________________________________ 3
1.5.1 Operadores Aritmticos ________________________________________________________ 3 1.5.2 Regras de hierarquia dos operadores aritmticos _____________________________________ 4

## 1.6 Expresses Lgicas ou booleanas ___________________________________________ 5 1.7 Instrues Algortmicas Bsicas____________________________________________ 6

1.7.1 Entrada _____________________________________________________________________ 6 1.7.2 Sada _______________________________________________________________________ 6 1.7.3 Corpo do algoritmo____________________________________________________________ 6 1.7.3.1 Atribuio __________________________________________________ 6 1.7.3.2 Deciso Simples______________________________________________ 7 1.7.3.3 Deciso com caso oposto _______________________________________ 7 1.7.3.4 Iterao para frente ___________________________________________ 7 1.7.3.5 Iterao para trs _____________________________________________ 7 1.7.3.6 Loops ______________________________________________________ 8 1.7.3.7 Verificao de Casos __________________________________________ 8

## Rotinas e Passagem de parmetros_________________________________________9

Variveis ________________________________________________________________________ 9 Parmetros _______________________________________________________________________ 9 Parmetros por valor _______________________________________________ 11 Parmetros por referncia ___________________________________________ 11

## Exemplos de Invocaes ____________________________________________________ 12

A Procedimentos _________________________________________________________________ 12 A Funes ______________________________________________________________________ 13

Concluses _______________________________________________________________ 14

## CONCEITOS BSICOS DE ALGORITMOS E PSEUDOCDIGO 1.1 Algoritmo

Um algoritmo um conjunto ordenado e finito de instrues que conduzem soluo de um problema. Na vida cotidiana executamos constantemente algoritmos. Por exemplo, ao instalar uma aparelho de som executamos as instrues contidas no manual do equipamento, este conjunto de instrues constituem um algoritmo. Outro caso de algoritmo o algoritmo matemtico de Euclides para a obteno do mximo divisor comum de dois nmeros. Quando um algoritmo pode ser executado por um computador, diz-se que um algoritmo computacional, caso contrrio, diz-se que um algoritmo no computacional. Segundo isto, o algoritmo de Euclides um algoritmo computacional, mas o algoritmo para instalar o aparelho de som um algoritmo no computacional. Para um algoritmo poder ser executado por um computador, ele precisa ser expresso em instrues compreensveis pelo computador, para isto necessria uma determinada linguagem de programao. O algoritmo expresso em uma determinada linguagem de programao, denomina-se programa. Em outras palavras, podemos dizer que um programa a implementao de um algoritmo em uma determinada linguagem de programao seguindo as regras estabelecidas pela linguagem escolhida. Na Figura a seguir, apresenta-se a relao entre problema, algoritmo e programa

Figura Problema, algoritmo e programa Todo algoritmo deve ter as seguintes caractersticas: Deve ser preciso, ou seja, cada instruo deve indicar em forma inequvoca o que deve ser feito. Deve ser finito, ou seja, deve ter um nmero limitado de passos. Deve ser definido, ou seja, deve produzir os mesmos resultados para as mesmas condies de entrada. Todo algoritmo pode se decompor em trs partes: 1. Entrada de dados. 2. Processo. 3. Sada de resultados

Exemplo: Algoritmo para preparar um molho de chocolate no microondas. ENTRADAS: 2 colheres de cacau 1/3 xcara de manteiga 2 colheres de gua 1 xcara de acar colherinha de baunilha 1 pitada de sal SADAS: O molho de chocolate pronto para servir.. INCIO Aquecer 1 minuto no microondas a gua, com a manteiga e o cacau (tudo misturado). Acrescentar batendo os demais ingredientes. Colocar no microondas mais 30 segundos.

FIM

Evidentemente este um algoritmo no computacional, no poder ser executado por um computador, mas sim por uma pessoa.

1.2 O Pseudocdigo
O pseudocdigo uma linguagem de pseudoprogramao utilizada para escrever algoritmos computacionais. Como linguagem de pseudoprogramao, o pseudocdigo uma imitao de uma ou mais linguagens de programao. Desta maneira podemos encontrar pseudocdigos orientados a linguagens de programao como Pascal, Java, C, C++, etc. No caso deste curso orientaremos os pseudocdigos linguagem Java. O objetivo do pseudocdigo permitir ao programador se focar nos aspectos lgicos da soluo, evitando as regras de sintaxe das linguagens de programao. tambm fcil modificar o pseudocdigo caso sejam encontrados erros ou anomalias na lgica do programa, alm disso, fcil sua traduo s linguagens de programao. No sendo o pseudocdigo uma linguagem formal, os pseudocdigos variam de um programador para outro, ou seja, no h um pseudocdigo padro.

1.3 Variveis
Uma varivel uma localizao ou casa na memria principal que armazena um valor que pode mudar no decurso da execuo do programa. Quando um programa precisa armazenar um dado, ele precisa de uma varivel. Toda varivel tem um nome, um tipo de dado e um valor. Antes de poder utilizar uma varivel necessrio declar-la especificando seu nome e seu tipo de dado. Para declarar variveis usaremos os seguintes formatos: Declarao de uma varivel: tipo nome Declarao de vrias variveis com o mesmo tipo de dado: tipo nome1, nome2, nome3, ..., nomen Na qual tipo o tipo de dado da varivel, que pode ser: INTEIRO (se a varivel ir armazenar um nmero inteiro), REAL (se a varivel ir armazenar um nmero decimal) , CARACTER (se a varivel ir armazenar um caractere), CADEIA (se a varivel ir armazenar um conjunto de caracteres) ou LOGICO (se a varivel ir armazenar o valor verdadeiro ou o valor falso). Nomes das variveis. O nome de uma varivel deve comear com uma letra, um smbolo de sublinhado ou um smbolo de dlar. Outros caracteres do nome podem ser letras, smbolos de sublinhado ou smbolo de dlar. Tambm deve se levar em conta que uma letra maiscula se considera diferente de uma letra minscula.

## nome1, nome2 nomen...,

Exemplo: Declarao de variveis A seguinte instruo declara a varivel idade de tipo INTEIRO e a varivel desconto de tipo REAL. INTEIRO idade REAL desconto Isto cria as casas de memria idade e desconto. Depois da criao, as variveis esto indefinidas ( ? ). idade desconto ? ?

A seguinte instruo declara as variveis nota1, nota2 e nota3, todas do tipo INTEIRO. INTEIRO nota1, nota2, nota3 Isto cria as casas de memria nota1, nota2 e nota3. Depois da criao, as variveis esto indefinidas ( ? ). nota1 nota2 nota3 ? ? ?

1.4 Literais
Denominam-se literais todos aqueles valores que figuram no pseudocdigo e podem ser: Literais inteiros 12, 20300, 15, etc. Literais reais 3.1416, 2345.456, etc. Literais de caracteres 'a', 'B', ';', '<', '+', etc. Literales de cadeia "Oi", "Algoritmos Computacionais", etc. Literais lgicos verdadeiro, falso

## 1.5 Expresses Aritmticas

Uma expresso aritmtica uma combinao de variveis, literais e operadores aritmticos. .

* / %

## a*b a/b a%b

Os operadores aritmticos podem utilizar-se com tipos inteiros e reais. Se em uma operao com dois operandos, ambos os operandos so inteiros, o resultado um inteiro; se algum deles real, o resultado real. Assim, 15/4 3 e no 3.75; no entanto, 15.0/4 3.75.

## 1.5.2 Regras de hierarquia dos operadores aritmticos

Quando uma expresso aritmtica tem mais de um operador aritmtico, a ordem de aplicao dos operadores segue uma ordem precisa determinada pelas regras de hierarquia dos operadores aritmticos apresentados na seguinte tabela. Tabela Regras de hierarquia dos operadores aritmticos Operador () *, /, % +, Ordem de avaliao Avaliam-se em primeiro lugar Avaliam-se em segundo lugar Avaliam-se em terceiro lugar

Se existirem parnteses aninhados, avalia-se primeiro a expresso no par mais interno. Se vrios operadores ou parnteses tm a mesma hierarquia, a avaliao ser de esquerda para a direita. Exemplo: Qual o equivalente em pseudocdigo da seguinte expresso algbrica?

Soluo e = a/b/c Como todos os operadores tm a mesma hierarquia, a avaliao ser de esquerda para a direita: Primeiro, ser dividido a entre b. Segundo, o resultado j obtido de a/b ser dividido entre c. Observe que a ordem desta execuo de acordo com a expresso algbrica, por isso no necessrio nenhum par de parntese.

a e= b c

## Exemplo: Qual o equivalente em pseudocdigo da seguinte expresso algbrica?

Soluo e = a*b*c/d/e Como todos os operadores tm a mesma hierarquia, a avaliao ser de esquerda para a direita: Primeiro, ser multiplicado a por b. Segundo, o resultado j obtido de a*b ser multiplicado por c. Terceiro, o resultado j obtido de a*b*c ser dividido entre d. Quarto, o resultado j obtido de a*b*c/d ser dividido entre e. Observe que a ordem desta execuo est de acordo com a expresso algbrica, por isso no necessrio nenhum par de parnteses.

abc e= d e

## 1.6 Expresses Lgicas ou booleanas

Uma expresso lgica combina variveis, literais, operadores aritmticos, operadores relacionais e operadores lgicos. Os operadores relacionais e os operadores lgicos so exibidos nas tabelas que apresentamos a seguir. Ambos geram um resultado booleano. Tabela Operadores relacionais Operador > >= < <= == != Significado maior que maior ou igual a menor que menor ou igual a igual a diferente de Exemplo a>b a >= b a<b a <= b a == b a != b

## 1.7 Instrues Algortmicas Bsicas

Existem trs instrues algortmicas bsicas que so as seguintes.

Consiste em obter um dado de um dispositivo de entrada, como o teclado, e armazen-lo em uma varivel. Em geral, a ao de ingressar um dado a uma varivel expressada no pseudocdigo mediante a palavra LER, da seguinte forma: LER varivel Por exemplo, a instruo: LER estatura solicita o ingresso de um valor de algum dispositivo de entrada (como o teclado), para guardar o valor digitado na varivel estatura.

Consiste em mostrar o valor de uma varivel em um dispositivo de sada, como a tela. Em geral, a ao de mostrar o valor de uma varivel expressada no pseudocdigo mediante a palavra IMPRIMIR da seguinte forma: IMPRIMIR (varivel) Por exemplo, a instruo: IMPRIMIR (ImportnciaCompra) mostra, em algum dispositivo de sada (como a tela), o valor da varivel ImportnciaCompra.

## 1.7.3 Corpo do algoritmo

No corpo (ou body, em ingls) onde escrevemos o que conforma o algoritmo como tal. Ou seja, onde escrevemos, em forma ordenada, os passos a seguir (as instrues) para resolver o problema que resolve o algoritmo. As instrues podem ser quaisquer das que se mencionam a seguir.

1.7.3.1 ATRIBUIO

LER M // Calcula a quantidade em centmetros e o atribui varivel C C = M*100 // Calcula a quantidade em polegadas e o atribui varivel P P = C/2.54 // Mostra os valores das variveis C e P IMPRIMIR (C, P) FIM

## 1.7.3.2 DECISO SIMPLES

SE condio ......... FIM SE (IF cond ENDIF)

## 1.7.3.3 DECISO COM CASO OPOSTO

SE condio .......... SE NO ......... FIM SE (IF cond ELSE ENDIF)

## 1.7.3.4 ITERAO PARA FRENTE

PARA valor inicial AT valor final ................ FIM PARA (FOR TO [STEP] ENDFOR)

## 1.7.3.5 ITERAO PARA TRS

PARA valor inicial AT valor final PASSO -1 ................ FIM PARA

1.7.3.6 LOOPS

1.

Com verificao de condio ao incio ENQUANTO condio FAZER .............. FIM ENQUANTO (DO WHILE cond)

2.

## 1.7.3.7 VERIFICAO DE CASOS

EM CASO QUE varivel SEJA CASO 1: ................. CASO 2: ................. CASO 3: ................. EM OUTRO CASO ................. FIM EM CASO (DO CASE CASE cond 1: ................. CASE cond 2: ................. OTHERWISE: ................. ENDCASE)

## ROTINAS E PASSAGEM DE PARMETROS

Variveis
Nas rotinas possvel utilizar e modificar variveis do escopo de um programa em determinadas condies. As variveis GLOBAIS so conhecidas ao longo de todo o programa e existem durante toda a execuo. As variveis que s tm significado em uma parte do programa chamam-se LOCAIS. So as que se declaram em um procedimento ou funo e so conhecidas s no mesmo e em qualquer outro que estiver aninhado dentro. Tm a existncia garantida s enquanto durar a execuo do procedimento ou funo na qual foram declaradas, depois, libera-se o espao que ocupavam em memria ficando disponvel para ser utilizado por outras. Em terceiro lugar, fala-se de variveis DO SISTEMA, fazendo referncia s que esto definidas na linguagem (compilador). Obviamente, estas so conhecidas em qualquer parte do programa.

Nestas condies, fica claro que em uma rotina (procedimento ou funo) possvel manejar qualquer objeto global e todos os que tiverem sido declarados localmente. Embora seja possvel, no convm atuar sobre variveis globais do interior dos subprogramas para no correr o risco de modificar inadvertidamente valores externos ao procedimento ou funo. prefervel trabalhar com variveis de mbito local e dispor de alguma via para relacion-las com as definidas a nvel global e com as que so locais de outras rotinas.

Parmetros
Em todos estes casos precisa-se dispor de algum mecanismo para intercambiar valores entre as rotinas e o resto do programa. Isso se obtm mediante as listas dos PARMETROS, chamados tambm ARGUMENTOS. Denominam-se parmetros ou argumentos de uma rotina (procedimento ou funo) aqueles dados (variveis ou expresses) que so necessrios para a execuo da rotina. A rotina ou subprograma podem ser vistos como uma caixa preta que realiza uma funo determinada,

SUBPROGRAMA

Quando -

Soma

Os parmetros indicados na declarao das rotinas chamam-se PARMETROS FORMAIS. So identificadores de variveis locais com as quais possvel introduzir e tirar valores nas rotinas. Nas funes, os parmetros formais s permitem a entrada, visto que a sada produz um valor nico que vai associado ao identificador da prpria funo. Os parmetros indicados na chamada s rotinas so os PARMETROS REAIS. A correspondncia entre os parmetros formais e os reais se estabelece pela posio que ocupam nas listas, e a substituio se realiza aplicando alguns dos mecanismos seguintes: por VALOR, por

## PARMETROS POR VALOR

Na substituio POR VALOR, avalia-se o parmetro real, e o valor resultante dessa avaliao atribui-se ao parmetro formal correspondente. O parmetro real pode se expressar como uma constante, uma varivel ou uma expresso. O uso de um parmetro passado por valor consiste na mera transferncia de um valor rotina invocada (chamada). Estes so parmetros de entrada. podem-se modificar dentro da rotina, mas isso no afeta o parmetro real correspondente. No permitem tirar informao da rotina.

## PARMETROS POR REFERNCIA

Permitem aplicar o mecanismo de substituio POR REFERNCIA, pelo que se produz uma associao entre parmetro real e parmetro formal que consiste em uma espcie de substituio. Na realidade atribuem-se ao identificador de parmetro formal os mesmos endereos de memria que correspondem ao parmetro real, de forma tal que qualquer modificao que se produzir dentro da rotina afeta os parmetros reais que so entidades externas ao mesmo. Para descrever graficamente a situao, pode se imaginar uma flecha para cada parmetro formal, que una seu nome com o endereo de memria no qual est armazenado seu parmetro real correspondente. Toda operao que afetar o parmetro formal na realidade realizada sobre o parmetro real. Com este mecanismo de substituio por referncia, pode-se conseguir a transferncia de informao com as rotinas nos dois sentidos: entrada e sada.

Exemplos de Invocaes
Conforme o que foi visto at agora, veremos exemplos de invocaes (chamadas) a procedimentos e funes.

A Procedimentos

A invocao de um subprograma realizada com parmetros reais. A esse respeito, necessrio dizer que:

invocar Somar(V2, V3, V2); - o parmetro real V2 uma varivel que se associa (no terceiro parmetro) com o parmetro formal de nome resultado; mas em invocar Somar(1,3,5) - um ERRO tentar associar um valor a um parmetro formal de sada.

A Funes

Por exemplo, em lugar de definir um procedimento Somar que receba dois parmetros de entrada (somando1 e somando2), e devolva o resultado no parmetro de sada (resultado) SUBPROGRAMA Somar (ENTRADA inteiro somando1, ENTRADA inteiro somando2, SADA inteiro resultado) pode-se definir a funo Somar, que receba os mesmos parmetros de entrada que o procedimento, mas

na especificao de uma funo deve-se indicar o tipo de dado de sada que devolve a funo: inteiro FUNO Somar (ENTRADA inteiro somando1, ENTRADA inteiro somando2)

## A implementao da funo Somar levemente diferente ao procedimento, dado que

inteiro incio

todas as funes devem devolver um valor do tipo que especificam em sua definio. FUNO Somar (ENTRADA inteiro somando1, ENTRADA inteiro somando2)