You are on page 1of 29

Curso: Processamento de Dados Prof.

Cludio Stein Junior

APOSTILA DE ALGORITMOS

NDICE
1. TCNICAS DE PROGRAMAO ESTRUTURADA - LINGUAGEM ALGORTMICA................................1 1.1. INTRODUO.................................................................................................................................................................1 1.2. LINGUAGENS DE PROGRAMAO.......................................................................................................................................1 1.3. DADOS, TIPOS DE DADOS E OPERAES PRIMITIVAS...........................................................................................................2 1.4. OPERADORES PRIMITIVOS ...............................................................................................................................................3 1.5. OPERADORES LGICOS....................................................................................................................................................3 1.6. OPERADORES RELACIONAIS..............................................................................................................................................4 1.7. PRIORIDADE DOS OPERADORES REAIS...............................................................................................................................4 1.8. PRIORIDADE DOS OPERADORES LGICOS............................................................................................................................4 1.9. EXERCCIOS...................................................................................................................................................................4 1.10. LINGUAGEM ALGORTMICA.............................................................................................................................................5 1.10.1. Programa (constantes, variveis, algoritmo):.................................................................................................5 1.10.2. Entrada e Sada................................................................................................................................................8 1.10.3. Processamento................................................................................................................................................10 1.10.4. Estrutura Linear (Exemplo)...........................................................................................................................12 1.11. EXERCCIOS...............................................................................................................................................................12 2. ESTRUTURAS DE CONTROLE (DECISO, MLTIPLA ESCOLHA).............................................................14 2.1. ESTRUTURA DE DECISO...............................................................................................................................................14 2.1.1. Exerccios.........................................................................................................................................................16 2.2. ESTRUTURA COM MLTIPLA ESCOLHA.............................................................................................................................17 2.2.1. Exerccios.........................................................................................................................................................18 3. FLUXOGRAMA...........................................................................................................................................................19 4. ESTRUTURAS DE REPETIO..............................................................................................................................19 4.1. COMANDO DE REPETIO (ENQUANTO...FAA).................................................................................................................20 4.2. COMANDO DE REPETIO (PARA...FAA)........................................................................................................................21 4.3. SUBALGORTMOS..........................................................................................................................................................24 4.3.1. Procedimentos..................................................................................................................................................24 4.3.2. Funes............................................................................................................................................................25 4.4. EXERCCIOS.................................................................................................................................................................25 BIBLIOGRAFIA.............................................................................................................................................................27

Introduo Lgica

Prof. Rodrigo Stein

1. TCNICAS DE PROGRAMAO LINGUAGEM ALGORTMICA


1.1.Introduo Definies Bsicas: O Raciocnio Lgico

ESTRUTURADA

Um conjunto de estudos que visa determinar os processos intelectuais que so as condies gerais do conhecimento verdadeiro. A seqncia coerente, regular e necessria de conhecimentos, de coisas ou fatos. A maneira do raciocnio particular que cabe a um indivduo ou a um grupo . Cincia dos princpios formais Necessidade do uso da lgica Usar a lgica um fator a ser considerado por todos, principalmente pelos profissionais de informtica (programadores, analistas etc.), pois seu dia-a-dia dentro das organizaes solucionar problemas e atingir os objetivos apresentados por seus usurios com eficincia e eficcia. Aplicabilidade da lgica no auxlio do desenvolvimento de programas. A tcnica mais importante no projeto da lgica de programa chamada programao estruturada, a qual consiste em uma metodologia de projeto objetivando: agilizar a codificao da escrita da programao facilitar a depurao da leitura da mesma permitir a verificao de possveis falhas apresentadas pelos programas. Facilitar as alteraes e atualizaes dos programas.

1.2.Linguagens de Programao O computador por s s no seria capaz de resolver o mais simples dos problemas que nos possa ocorrer. Para que ele o faa preciso descrever com detalhes na sua linguagem todos passos que devem ser executados para a resoluo do problema. 1.1. Baixo Nvel 1.2. Alto nvel (linguagem de mquina) (Gerenciamento, Cientfica, uso geral e especficos)

Antes de iniciarmos o estudo de algoritmos, necessrio considerar que um computador nada mais do que uma ferramenta utilizada para solucionar problemas que envolvam a manipulao de informaes, sendo que estas informaes classificam-se a grosso modo em dois tipos bsicos dados e instrues

Introduo Lgica

Prof. Rodrigo Stein

1.3.Dados, Tipos de Dados e Operaes Primitivas O objetivo principal do computados a manipulao de informaes ou dados. Estes dados podem ser vendas de uma loja, informaes pessoais de clientes, notas finais de alunos etc. A maior parte dos computadores pode lidar com diversos tipos de dados, sejam eles numricos ou no. As aplicaes envolvendo dados no numricos cresceram muito, editores de textos por exemplo.
Dados

Numrico

Cadeia

Lgico

Ponteiro

Inteiro

Real

a) Dados numricos: 1 - Inteiros (s vezes chamado de nmeros de ponto fixo) - No tm componentes decimais ou fracionrios - Podem ser negativos ou positivos Exemplo: 13, 7, -6, 3030, -295 2 - Reais - Domnio dos nmeros reais - As fraes so armazenadas na forma decimal - Podem ser negativos ou positivos Exemplo: 23.8, 3456.91, -69.567, (1.0) Em algumas aplicaes exige-se uma representao especial para nmeros muito grandes ou muito pequenos. Chamamos de NMEROS EM PONTO FLUTUANTE. b) Dados no-numricos 1 - Cadeia de caracteres - Pode ser formado por qualquer caracter ASCII - A cadeia inicia e termina com um Apstrofo - limite : 255 caracteres Exemplos: "Joo da Silva" "Sistemas de Computao 1" "333+444-555 = 222" obs: internamente o computador registra: os caracteres que compem a cadeia e seu tamanho. 2 - Dados lgicos S podem assumir dois valores: verdadeiro ou falso.

Introduo Lgica

Prof. Rodrigo Stein

Exemplos: PagarPrestao, FimDeArquivo, etc. As variveis lgicas citadas anteriormente podem assumir somente um dos dois valores: verdadeiro ou falso. 3 - Dados do tipo ponteiro um endereo ou uma referncia a uma estrutura de dados, isto , guarda o endereo de onde est armazenado um certo dado. Exemplo: ndice de um livro, no tem a informao propriamente dita, mas uma informao para saber onde est guardada a informao em si. 1.4.Operadores Primitivos - + * / Exemplos: 2-1=1 2+2=4 8 * 2 = 16 8/2=4 1.5.Operadores Lgicos OU, E e NO Exemplos: 75 > 60
Dado Lgico Verdadeiro

Subtrao Adio Multiplicao Diviso

Rua = Avenida
Dado Lgico Falso

Mdia >= 7,0 E Presena >= 75% V V V F F V F F

=> APROVADO! V F F F

Mdia >= 7,0 OU Monografia = 10,0=> APROVADO! V V V V F V F V V F F F

Introduo Lgica

Prof. Rodrigo Stein

NO Chuva => Ir ao Clube V V F F 1.6.Operadores relacionais =, #, <, >, <=, >= 1.7.Prioridade dos Operadores Reais Classe 1 2 3 4 Operador ^ *,/ +,mais esquerda Significado Exponenciao Multiplicao e diviso Adio e subtrao

Obs: Parnteses tm o objetivo de agrupar termos indicando mudanas de prioridade nas operaes da expresso a ser processada. Eles podem ser embutidos. Exemplos: (8+7) * (3 + 4) * 5 (3 + (6 + 2)) * 8 1.8.Prioridade dos Operadores Lgicos Classe 1 2 3 Operador NO E OU

Obs: Neste caso os parnteses tambm tm o objetivo de agrupar termos indicando prioridade nas operaes da expresso a ser processada e podem ser embutidos. 1.9.Exerccios 1. Dar o tipo de cada uma dos seguintes dados: a) 613 b) 613.0 c) -613 d) "613" e) "FIM" 2. Dados os valores abaixo:
pig vari 2 tot 10 banana 7 x 4 I 80 boston -1 a -4

Quais os valores resultantes depois da execuo dos passos a seguir:

Introduo Lgica

Prof. Rodrigo Stein

x:= tot/vari x:= x-x+1 x:= x+1 x:= x+1 x:= x+1 x:= x+1 x:= x+1 vari:= x tot:= vari+x+tot pig:= boston + banana

a:= a+banana+4 pig:= 3 i:= a/pig banana:= 2+x*x-2 boston:= a-15 tot:= pig-a*vari a:= pig pig:= vari vari:= a

i:= i * banana banana:= i / x banana:= banana + 7 pig:= vari - 10 pig:= boston i:= 0 i:= I+2 I:= I+2 I:= I+2 I:= I+2

3. Quais os valores resultantes de cada linha do quadro abaixo: A 1 4 1 3 5 B 2 3 -7 3 -1 C 3 2 1 3 5 D 4 1 3 9 0 CARRO "FUSCA" "UNO" "VECTRA" "GOL" "VECTRA" NOME "THESSALY" "THAMNA" "THARNIER" "THAMNA" "THAMNA" A+B*C>D CARRO = "GOL" NOME<> "THAMNA"

1.10.Linguagem algortmica A Linguagem Algortmica, no implementada computacionalmente, usada para descrever e documentar programas computacionais, sendo dirigidas s pessoas, mas de fcil traduo para as linguagens computacionais. Para realizar a Descrio do Algoritmo necessrio seguir os seguintes passos: a) Entender perfeitamente qual o problema e qual a soluo; b) Identificar as informaes que sero entrada, as que sero processadas e qual tipo de processamento, e quais sero as sadas; c) Identificar o tipo de cada informao; d) Descrever a soluo em Linguagem Algortmica. 1.10.1.Programa (constantes, variveis, algoritmo): Programa uma seqncia de passos a serem seguidos numa ordem cuidadosamente preparada.
PROGRAMA Definio dos dados (Constantes, Variveis)

Programa propriamente dito (Instrues)

Introduo Lgica

Prof. Rodrigo Stein

Podemos fazer analogia na construo de um Programa e de um Bolo: um programa necessita de Dados e Algoritmo assim como um bolo de Ingredientes e Modo de Fazer: Receita - Ingredientes - Modo de Fazer Programa - Dados - Algoritmo

Portanto: Ingredientes + Modo de Fazer = Bolo Dados + Algoritmo = Programa Os programas tm 2 blocos: a) Bloco de Definio de Dados Descrevem-se os dados a processar. b) Bloco de Definio do Algoritmo Descrevem-se os procedimentos a serem executados com os dados. A Linguagem Algortmica tem comandos (palavras) para representar as aes relativas s definies de dados e do algoritmo. A descrio dos dados, atravs de palavras adequadas em Linguagem Algortmica, deve preceder a descrio do algoritmo. A Linguagem Algortmica, imitando as linguagens computacionais, classificam os dados em constantes e variveis: CONSTANTE um dado cujo valor no pode ser alterado durante a execuo do programa. A definio de uma constante define seu tipo e valor, que so imutveis durante a execuo do programa. As constantes devem ser definidas antes das variveis, pois: a) mais fcil localizar as constantes no texto do programa para eventuais alteraes; b) as constantes podem ser usadas na definio das variveis estruturadas (colees); Exemplo: taxa := 0,23 VARIVEL um dado cujo tipo definido na definio dos dados e cujo contedo deve ser definido durante a execuo do programa. A definio de uma varivel define apenas o seu tipo, que imutvel durante a execuo, deixando as definies e redefinies de valores a cargo do algoritmo. Exemplos: a^2 = b^2 + c^2 5^2= 4^2 + c c = 1,56 Regras para se dar nome variveis e constantes (Identificador) Identificador uma palavra para identificar uma entidade computacional: programas, constantes, variveis, funes, procedimentos. Um identificador uma cadeia de caracteres, que:

Introduo Lgica

Prof. Rodrigo Stein

a) Deve comear com letra b) Alguns caracteres especiais no so aceitos. c) No usar caracteres brancos, no lugar usar under score (_), como caracter de ligao. Exemplos: SalrioMnimo Salrio_Mnimo Limite15
Identificadores Vlidos

13.Salrio Custo+5 Sr.Joo Rio de Janeiro


Identificadores Invlidos

DG. NUMRICO LETRA LETRA SUB-LINHA


Definio das Constantes em Linguagem Algortmica Sintaxe: Constantes <identificador> = <valor>

Identificador

Nivel1Nivel2

Exemplos: Constantes SalMin = 5500,00 Empresa = FPTE Definio das Variveis em Linguagem Algortmica Sintaxe: Variveis <lista de identificadores separados por vrgula> : <tipo> ou <tipo> : <lista de identificadores separados por vrgula>
Nivel1Nivel2

Introduo Lgica

Prof. Rodrigo Stein

Exemplos: Variveis Nome, Endereco, Bairro: Cadeia Custo, Frete, Imposto: Real Dia, Ms, Ano, Idade: Inteiro Definio do Algoritmo Entrada e Sada 1- Leia (entrada) 2- Escreva (sada) Processamento 3 - Atribuio Controle 4 - Se... ento... seno (deciso) 5 - Enquanto (repetio) 6 - Para (repetio) 1.10.2.Entrada e Sada Entrada - Comando Leia: Utilidade: entrada de dados do mundo exterior (atravs de perifricos) na CPU
ENTRADA PROCESSAMENTO

PERIFRICO (teclado, mouse...)

dados

CPU (Unidade Central de Processamento)

Sintaxe: Leia( <lista de identificadores de variveis, separados por vrgula>) [no perifrico] [ ] => o contedo em geral, opcional, havendo um contedo default, isto , padro por omisso. Exemplo: Leia(consumo) [teclado] ou somente Leia(consumo) j que teclado default por omisso. Apenas identificadores de variveis podem fazer parte do comando Leia, pois esse comando altera o contedo dos dados. Este comando no possui restrio de nvel, isto , no se subordina a nenhum comando.

Introduo Lgica

Prof. Rodrigo Stein

Funcionamento: Ao encontrar o comando Leia, o programa suspende a execuo, espera que o perifrico envie CPU os dados solicitados e armazena esses dados em variveis. o nico comando que suspende a execuo do programa, a espera do envio dos dados requisitados. Sada - Comando Escreva: Utilidade: sada de dados da CPU para o mundo exterior (atravs de perifricos)

PROCESSAMENTO

SADA

CPU (Unidade Central de Processamento)

dados

PERIFRICO (vdeo, impressora, ...)

Sintaxe: Escreva( <lista de expresses, separadas por vrgula >) [no perifrico] Este comando no possui restrio de nvel, isto , no se subordina a nenhum comando. Exemplos: Escreva(Digite o consumo: ) na impressora Escreva(Valor a pagar: , Consumo * Tarifa, DataVenc)
Expresso Constante (cadeia) Expresso Numrica Expresso (somente uma varivel)

Comando Posiciona: Utilidade: posiciona o cursor na linha e coluna especificadas. Sintaxe: Posiciona(linha, coluna) Este comando no possui restrio de nvel, isto , no se subordina a nenhum comando. Exemplo: Incio Posiciona(5, 10) Escreva('****') Posiciona(6, 10) Escreva('*') Posiciona(7, 10) Escreva('*')

**** * * * * ****

Introduo Lgica

Prof. Rodrigo Stein

Fim

Posiciona(8, 10) Escreva('****') Posiciona(6, 13) Escreva('*') Posiciona(7, 13)

1.10.2.1.Exerccios 1) Faa um algoritmo que mostre a seguinte mensagem na tela: Processamento de Dados 2) Faa um algoritmo que mostre a seguinte mensagem na tela: Processamento de Dados e a data de hoje. 3) Faa um algoritmo que mostre o seu nome e a sua idade. 4) Faa um algoritmo que calcule a seguinte expresso: 2 + 2 * 4 e apresente o resultado na tela. 5) Faa um algoritmo que apresente as seguintes informaes na tela: **** Processamento de Dados **** Nome do Funcionrio - Joaquim do Amaral Salrio Atual - R$ 1000,00 Reajuste Salarial - 25% Valor do Reajuste - R$ 250,00 Salrio aps Reajuste -R$ 1250,00 6) Faa um algoritmo que apresente o seguinte logotipo na tela: */*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ ****** * * ****** * * ****** * ****** * ****** ****** * * ****** * *

*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ 1.10.3.Processamento Atribuio Utilidade: processar dados e armazenar o resultado em uma varivel. Ser usado o sinal dois pontos igual (:=). Sintaxe: <identificador de varivel> := <expresso> A <expresso> quem, na realidade, faz o processamento, cujo resultado seria perdido se no fosse armazenado. <expresso> e <varivel> devem ser do mesmo tipo; exceo feita atribuio de <expresso inteira> a <varivel real>.

10

Introduo Lgica

Prof. Rodrigo Stein

Funcionamento: 1) A <expresso> processada; 2) o resultado armazenado na rea de memria reservada para a varivel cujo identificador est esquerda do sinal de atribuio (:=). Exemplo1: NUMERO:= 16 NUMERO:= -27 C:= "UMA CONSTANTE CADEIA" C:= "FEF" VALOR_REAL:= -17 VALOR_INTEIRO:= -1 + 5 + 6 Exemplo2: TERMO1:= 13.6 + 7.4 TERMO2:= 0.7 * 28.6 RESULTADO:= TERMO1 / TERMO2 RESULTADO:= RESULTADO - 1 Sadas: termo1 termo2 resultado 1.10.3.1.Exerccios 1. Dar o valor da varivel RESULTADO aps execuo da seguinte seqncia de operaes (suponha que todas as variveis sejam reais.) a) resultado := 3.0 * 6 b) x:= 2.0 y:= 3.0 resultado := x^y-x c) resultado := 4 x:= 2 resultado := resultado * x 2. Suponha que as variveis a,b e c sejam reais, e d e e inteiras, qual seriam os resultados para: a := 4.0 b := 6.0 c := a*b-1 d := TRUNC(b/a + 4.7) e := ROUND(a/(5/3)) e := ABS(a - b) * 2 + 1 21.0 20.02 0.048951

11

Introduo Lgica

Prof. Rodrigo Stein

Expresso uma combinao vlida de constantes, variveis e operadores. Exemplo: 5,2 * x + 0,75 Nome + ", Dr." FimDeArquivo (Linhas > 60) 1.10.4.Estrutura Linear (Exemplo) Variveis numero1, numero2, resultado : inteiro Inicio Leia(numero1, numero2); resultado := numero1 * numero2 Escreva(Valor da multiplicao dos nmeros, numero1, e, numero2, =, resultado) Fim Rastrear o Algoritmo 1.11.Exerccios 1) Escrever um algoritmo para ler e escrever nome e sobrenome como no exemplo: Carvalho, Augusto 2) Calcular a mdia de 4 notas. 3) Escrever um algoritmo para calcular a multiplicao de dois nmeros inteiros. 4) Determine os resultados que sero impressos depois de executado o algoritmo abaixo: Variveis nmero, d1, d2, d3, d4: inteiro numero := 1352 d4:= numero MOD 10 d3:= (numero DIV 10) d2:= (numero DIV 100) * d4 d1:= d4 + d3 + d2 d4:= d1 * 2 d1:= d4 - d3 escreva(d1, d2, d3, d4) 5) Em muitos pases esto passando a utilizar o sistema mtrico. Prepara um algoritmo para executar a seguinte converso: Ler uma quantidade de chuva dada em polegadas e imprimir a equivalente em milmetros (25,4 mm= 1 pol.) 6) Prepara um algoritmo para ler um nome de pessoa na forma "nome" seguido do "sobrenome" e imprimir "sobrenome" seguido do "nome". 7) O cardpio de uma casa de hamburguer dado abaixo. Preparar um algoritmo para ler a quantidade de cada item comprado e calcular a conta final.

12

Introduo Lgica

Prof. Rodrigo Stein

x-salada x-frango catupiry x-azeitonado refrigerante

R$ 2,30 R$ 4,50 R$ 1,99 R$ 1,00

8) O custo ao consumidor de um carro novo a soma do custo de fbrica com a percentagem do distribuidor e dos impostos (aplicados ao custo de fbrica). Supondo que a percentagem do distribuidor seja de 12% e dos impostos de 45%, preparar um algoritmo para ler o custo de fbrica do carro e imprimir o custo ao consumidor. 9) Voc foi encarregado pelos organizadores de uma competio internacional de preparar um servio de traduo simultnea para resultados de uma competio relatados em unidades mtricas. Desenvolver um algoritmo para para: Converter resultados de salto em altura, relatados em metros, para ps e polegadas (1 p = 12 polegadas e 1m = 39.37 polegadas) 10) Uma lista de taxas de cmbio de 1977, para troca de moeda estrangeira, fornece a seguinte tabela de equivalncia: 100 francos franceses = 21.55 dlares canadenses 1 dlar americano = 1.06 dlares canadenses 100 marcos alemes = 43.20 dlares canadenses 1 libra inglesa = 1.48 dlares canadenses 100 coroas suecas = 24.25 dlares canadenses 100 dracmas gregos = 2.95 dlares canadenses Desenvolver algoritmos para fazer as seguintes converses: a) Ler uma quantidade em francos franceses e imprimir o equivalente em dlares canadenses. b) Ler uma quantidade em dlares americanos e imprimir o equivalente em ambos, coroas suecas e francos franceses. c) Ler uma quantidade em dracmas gregos e imprimir o equivalente em libras inglesas. d) Ler uma quantidade em dlares canadenses e imprimir o equivalente em ambos, dlares americanos e marcos alemes.

13

Introduo Lgica

Prof. Rodrigo Stein

2.ESTRUTURAS DE CONTROLE (DECISO, MLTIPLA ESCOLHA)


2.1.Estrutura de Deciso Comando de Deciso (Se...ento....Seno) Utilidade: O comando Se...ento...Seno no realiza processamento, mas controla a forma de processar. Permite a escolha automtica, em tempo de execuo, de uma entre duas formas possveis de processamento. Sintaxe: Se <expresso lgica> ento <bloco de comandos para resultado da expresso = verdadeiro> Seno <bloco de comandos para resultado da expresso = falso>
nvel N

FimSe

nvel + 1

Os blocos de comandos que esto entre os sinais < > so seqncias de comandos, com qualquer quantidade de comando. Funcionamento: 1. A <expresso lgica> avaliada; 2. Caso o resultado seja Verdadeiro, o bloco de comandos para resultado da expresso = verdadeiro executado e o bloco de comandos para resultado da expresso = falso abandonado; 3. Caso o resultado seja Falso, o bloco de comandos para resultado da expresso = falso executado e o bloco de comandos para resultado da expresso = verdadeiro abandonado; 4. A execuo continua no prximo comando do mesmo nvel que o comando Se. Obs: Leia (....) x := ... y : = .... Leia Um conjunto, no interrompido de comandos de mesmo nvel, define um Bloco de Comandos

nvel

Os comandos de um bloco so sempre executados na seqncia em que aparecem no programa.

14

Introduo Lgica

Prof. Rodrigo Stein

Exemplo: Constantes ... Variveis ... Leia (....) Escreva(...) x : = .... Leia (...) y := ... Se .... ento ... V Seno ....F Fime Escreva(...)

1 2 3 4 5 6

Seqncia de Execuo 1, 2, 3, 4, 5, 6, 7. Depois de 6 ser sempre executado 7. Exerccio: Rastrear o programa a seguir com valores para x < 0 e > 0.
Seq. Exec.

1 2 3

Variveis x, y, z, m: inteiro Leia (x) y := 2 * x Se x < 0 ento z := y + x Escreva(z) Seno z := y - x m := z * z Escreva(m) FimSe Escreva(FIM)

Suponhamos que duas variveis, A e B cujos valores so diferentes, e que desejamos imprimir o maior.

15

Introduo Lgica

Prof. Rodrigo Stein

Incio

Leia( a, b )

Falso

Se a > b

Verdadeiro

Escreva( b )

Escreva( a )

Fim
Figura: Fluxograma do algoritmo a seguir

Variveis a, b : real Inicio Leia( a, b) Se a > b ento Escreva(a) Seno Escreva(b) FimSe Fim

2.1.1.Exerccios 1) Faa um algoritmo que leia a idade de uma pessoa e imprima as mensagens Maior de Idade ou Menor de Idade . 2) A tabela abaixo indica as fases da vida de um indivduo: Criana Adolescente Adulto 0 - 12 anos 13 - 17 anos 18 anos

Faa um algoritmo que leia a idade de uma pessoa e imprima, de acordo com a idade, Criana, Adolescente ou Adulto 3) Faa um algoritmo que, dado um nmero, informe se este PAR ou MPAR.

16

Introduo Lgica

Prof. Rodrigo Stein

4) Fao um algoritmo, em que, dado trs nmeros, determine qual o menor. 5) Faa um programa para ler o consumo de energia eltrica e calcular a conta, de acordo com a tabela. Faixa Consumo at 50 excesso de 50 de Preo por Kwts R$ 6,00 R$ 10,00

6) Repita o problema anterior com a nova tabela: Faixa de Consumo at 50 excesso de 50 at 180 excesso de 180 Preo por Kwts R$ 6,00 R$ 12,00 R$ 15,80

7) A tabela a seguir mostra a classificao dos nadadores quanto a idade: Idade 5-7 8-10 11-13 14-17 18 ou mais Categoria Infantil A Infantil B Juvenil A Juvenil B Snior

Faa um algoritmo para ler a idade do nadador e imprimir sua categoria. 8) O programa deve decidir entre Leo, Boi, guia, Morcego, Baleia, Tartaruga e Jacar, diante das respostas s perguntas: quadrpede? mamfero ? Carnvoro? 9) Uma confeco vende conjuntos de malha em dois tamanhos pequeno a R$ 50.00 e grande R$ 70,00 cada. Para pedidos superiores a 200 conjuntos os valores so reduzidos em 10 %. Se o pedido for superior a 1000 unidades a confeco oferece um desconto de 15 % para o tamanho grande e 13 % para o tamanho pequeno. Faa um algortmo para ler o nome do cliente e um pedido (tamanho e quantidade) e imprimir o nome do cliente, o valor bruto, o desconto concedido e o valor a pagar. 2.2.Estrutura com Mltipla Escolha Comando com Mltipla Escolha (Selecione ... Caso...seno) Quando houver a necessidade de se construir um programa, e neste seja necessrio utilizar uma seqncia grande de instrues do tipo se, sejam estas, uma aps a outra ou mesmo encadeadas, poder ser simplificada com a utilizao da instruo selecione...caso...seno, que possui a seguinte sintaxe:

17

Introduo Lgica

Prof. Rodrigo Stein

Selecione <varivel ou constante> caso <constante 1>: <comando> caso < constante 2> : < comando > caso < constante 3> : < comando > ... seno 8 < comando > fim Onde varivel ou constante ser o valor a ser controlado, constante 1 ser o valor a ser comparado com a varivel ou constante informada e comando poder ser a chamada de uma subrotina (sub-algortmo (procedimento ou funo)), a execuo de qualquer operao matemtica ou de qualquer outra instruo. 2.2.1.Exerccios 1) Escrever um algortmo para realizar as funes bsicas de uma calculadora (+, -, /, *) e imprimir os resultados. 2) Refazer o programa da lanchonete utilizando a estrutura com mltipla escolha para a escolha da leitura dos tens comprados.

18

Introduo Lgica

Prof. Rodrigo Stein

3.FLUXOGRAMA
Fluxograma uma representao grfica de algoritmos onde formas geomtricas diferentes implicam aes (instrues, comandos) distintos. Tal propriedade facilita o entendimento das idias contidas nos algoritmos e justifica sua popularidade. De modo geral, um fluxograma se resume a um nico smbolo inicial, por onde a execuo do algoritmo comea, e um ou mais smbolos finais, que so pontos onde a execuo do algoritmo se encerra. Partindo do smbolo inicial, h sempre um nico caminho orientado a ser seguido, representando a existncia de uma nica seqncia de execuo das instrues. Nos smbolos finais, no h nenhum fluxo saindo deles. Nos smbolos de deciso pode haver mais de um caminho de sada (usualmente dois caminhos), representando uma bifurcao no fluxo. As principais formas geomtricas usadas em fluxograma so exibidas na figura a seguir:

= Incio e final do fluxograma

= Operao de entrada de dados

= Operao de sada de dados

= Operaes de atribuio e chamada ou retorno de subalgoritmo

= Deciso

4.ESTRUTURAS DE REPETIO
Os computadores so particularmente bem adequados a aplicaes nas quais uma operao ou srie de operaes deve ser repetida muitas vezes. Com este propsito, introduzimos uma nova estrutura de controle. O LAO uma construo fundamental na programao e, como veremos ocorre numa variedade de formas.

19

Introduo Lgica

Prof. Rodrigo Stein

1 - Enquanto <condio> faa ... 2 - Para <var de controle>:=<valor inicial> at <valor final> ... 3 - Repita ... At que <condio> 4.1.Comando de Repetio (Enquanto...faa) Utilidade: O comando Enquanto no faz processamento; controla a execuo, isto , associado idia de repetio de um certo conjunto de aes de processamento (bloco de comandos). Os comandos de controle (Se...ento...Seno e Enquanto ...) sempre usam uma expresso lgica cujo resultado usado para decidir sobre o tipo de processamento que ser executado. Sintaxe: Enquanto <expresso lgica> faa <bloco de comandos para resultado da expresso = verdadeiro> fim eqto
nvel N nvel + 1

Funcionamento: Objetivo: Executar, repetida e controladamente o <bloco de comandos> 1. A <expresso lgica> avaliada; 1. Caso o resultado seja Falso, o comando Enquanto terminado; Caso o resultado seja Verdadeiro, o <bloco de comandos> executado e o processo retorna ao item 1. A figura a seguir mostra o funcionamento do comando Enquanto...

F Condio <expr. lgica> ENQUA NTO

V Comandos

20

Introduo Lgica

Prof. Rodrigo Stein

Tcnica de Controle do Comando Enquanto Considerando que: para iniciar a repetio, a <expresso lgica> deve ser verdadeira; para encerrar a repetio, a <expresso lgica> deve ser falsa. Conclui-se que, entre o incio e o trmino da repetio, alguma varivel contida na <expresso lgica> mudou de contedo, fazendo com que o resultado passasse de Verdadeiro para Falso. Portanto, o <bloco de comandos> deve, de alguma forma, alterar o contedo de alguma varivel usada na <expresso lgica> para que o resultado da <expresso lgica> possa mudar, de Verdadeiro para Falso. Exemplo: Variveis m, n, x: inteiro m := 1 n := 1 Enquanto n < 50 faa Escreva(m) x := SQRT(m) Escreva(x) m := m + 1

repetio descontrolada o contedo de n no alterado neste bloco

4.2.Comando de Repetio (Para...faa) Sintaxe: Para <var de controle>:=<valor inicial> at <valor final> incrementa <incr>faa <bloco de comandos> Fim para Observaes: 3 <var de controle> necessariamente uma varivel, uma vez que seu valor alterado a cada iterao (volta da repetio); 3 <valor inicial>, <valor final> e <incr> podem ser constantes ou variveis. No segundo caso, algumas linguagens de programao probem que seus valores sejam modificados durante a execuo da repetio; 3 <incr> o valor que adicionado varivel <var de controle> ao final de cada iterao na repetio. 3 na maioria dos casos <incr> tem valor 1 (incremento unitrio). Portanto, admite-se a omisso do trecho incrementa <incr> da sintaxe do comando Para e, quando isto ocorre, assume-se um incremento de 1. Funcionalidade: 1) No incio da execuo da construo o valor <valor inicial> atribudo varivel <var de controle>. A seguir, o valor da varivel <var de controle> comparado com <valor final>. Se <var de controle> for maior que <valor final>, ento o <bloco de comandos> no executado e a execuo do algoritmo prossegue pelo primeiro comando seguinte ao Fim para.

21

Introduo Lgica

Prof. Rodrigo Stein

2) Por outro lado, se o valor de <var de controle> for menor ou igual a <valor final>, ento o <bloco de comandos> executado e, ao final do mesmo, o valor de <incr> adicionado varivel <var de controle>. Feito isso, retorna-se comparao entre <var de controle> e <valor final> e repete-se o processo at que <var de controle> tenha um valor maior que <valor final>, quando a repetio finalizada e a execuo do algoritmo prossegue pela instruo (comando) imediatamente seguinte ao Fim para. O comando PARA permite que um comando ou bloco de comandos seja repetido um nmero especfico de vezes. A figura a seguir mostra o funcionamento do comando Para...

<var controle> := <valor inicial> <var controle> := <var controle> + <incr>

V <var controle> > <valor final> F <bloco de comandos>

Exemplo: Programa para calcular a media de 10 nmeros inteiros Variveis num, media, i : inteiro Inicio media:= 0 Para i:= 1 at 10 faa leia(num) media:= media + num fim para Escreva(Media = , media/10) fim

22

Introduo Lgica

Prof. Rodrigo Stein

Controle (Se... Enquanto...Para...Repita), Indentao1 e Subordinao Controle implica em subordinao, obedincia. A subordinao indicada para indentao (deslocamento de 1 nvel a direita). Os blocos de comandos de controle: Se...ento...Seno e Enquanto..., devem ser indentados, para identificar o bloco e sua subordinao. Esses blocos so executados ou no pela vontade do comando de controle. Apenas blocos dentro dos comandos Se...ento...Seno e Enquanto... podem estar indentados, pois esses so um dos comandos que podem subordinar outros. Exemplo: V ariveis nom e, endereco: cadeia Leia (nom e) correto Leia(nom e) incorreto Se nom e = ltim o faa Escreva(Fimdos Dados) Seno Leia(endereco) Escreva(nom e, endereco) fimse

Qualquer comando pode estar subordinado a um comando de controle, inclusive a um comando de controle. Comandos que no so de controle (Leia e Escreva) no podem subordinar apenas serem subordinados. Obs: Construo de Programas A construo de bons programas tem algumas exigncias bsicas, entre bom-senso, tnica, criatividade e iniciativa. Bom-Senso: assegure-se de que voc sabe resolver o problema sem o computador, com todas as variaes possveis; seja organizado no trabalho de coletar informaes necessrias, colecione exemplos que voc mesmo resolveu. Tcnica: use apenas o conjunto de comandos da Linguagem Algortmica, fuja de comandos v para, go to, que podem desestruturar completamente o seu trabalho; identifique corretamente as estruturas de controle do programa (Se...ento...Seno, Enquanto...); pense do genrico para o especfico. Programas simples que possuem apenas comandos de ler, processar e escrever, sem estruturas de controle, quase no existem na prtica.

palavra utilizada na Linguagem Algortmica para definir a subordinao

23

Introduo Lgica

Prof. Rodrigo Stein

4.3.Subalgortmos Procedimentos e Funes Podemos afirmar que um problema complexo melhor abordado dividindo-o primeiramente em vrios subproblemas. O subalgortmo uma importante ferramenta no desenvolvimento de algortmos e programas. Veremos formas diferentes de subalgortmos e como pode nos ajudar na soluo de problemas. Modularizao Os subalgortmos podem facilitar o processo de produo atravs do uso de componentes de programas (subalgortmos) escritos previamente. Grandes bibliotecas so formadas por subalgortmos para reutilizao evitando retrabalho. Subalgortmos podem ser blocos de programas com os quais montamos um algortmo. Podem ser pr-codificados como no caso de uma biblioteca ou codificados como parte de um algortmo. Subalgortmos so miniaturas de programas dentro de programas. 4.3.1.Procedimentos Os blocos de procedimentos so realmente miniaturas de programas-dentro-de-programas e so escritos justamente como um programa principal. Declarao de procedimentos:
Algoritm o Procedim entos e e Funes

Program a Principal

Exemplo: Constantes autor =Jos de Alencar Variveis teste: cadeia Procedimento Cabecalho Variveis cab: cadeia Incio cab:= Cabecalho do programa exemplo de procedimentos Escreva(cab)

24

Introduo Lgica

Prof. Rodrigo Stein

Fim Inicio (programa principal) Teste:= Testando Cabecalho Escreva(autor, teste) Fim 4.3.2.Funes Uma funo, embora seja bastante semelhante a um procedimento, tem a caracterstica especial de retornar ao programa que a chamou um NICO valor associado ao nome da funo. A forma geral de declarao a seguinte: Funo NOME(<lista de parmetros>) <declarao de variveis> Inicio <Bloco de Comandos> Fim Exemplo: Programa Soma Variveis a, b, resultado : real Funo SOMAR(c, d : real):real Inicio Somar := c + d Fim Leia(a, b) resultado := somar(a, b) Escreva(O resultado da soma : , resultado) 4.4.Exerccios 1) Escrever um algortmo para ler n nmeros inteiros, calcular a mdia e imprimi-la. A condio de sada o caracter 'f' ou 'F'. 2) Num frigorfico existem 90 bois. Cada boi, traz preso em seu pescoo, um carto contendo seu nmero de indicao e seu peso. Fazer um algoritmo que escreva o nmero do boi mais gordo e do boi mais magro.

(chamada ao procedimento)

25

Introduo Lgica

Prof. Rodrigo Stein

3) Faa um algoritmo que leia um nmero indeterminado de indivduos, fornecendo apenas a idade. Para terminar a leitura dos dados necessrio que o usurio digite o nmero zero. Calcule e escreva a idade mdia deste grupo de indivduos. 4) Faa um algoritmo que leia e escreva o nome e idade de 50 pessoas. 5) Tem-se um conjunto de dados contendo a altura e o sexo (masculino ou feminino) de 50 pessoas. Fazer um algoritmo que calcule e escreva: a) a maior e a menor altura do grupo; b) a mdia de altura das mulheres; c) o nmero de homens; 6) Em uma empresa existem 20 empregados. Faa um algoritmo que leia o nome e o salrio de cada empregado, e calcule e imprima o nome e o novo salrio com 15% de aumento. (utilize comando PARA). 7) Leia o valor de x da unidade de entrada e calcule e escreva o valor do seguinte somatrio: Obs: (utilize comando PARA). X25 + X24 + X23 + X22 + ... + X1 1 2 3 4 25 8) Faa um algoritmo que calcule e escreva a soma dos 30 primeiros termos da srie: Obs: (utilize comando PARA). 480 x 1 + 475 x 2 + 470 x 3 + 465 x 4 + ... 10 12 14 16 9) Faa um programa que imprima as tabuadas do 1 ao 10. (utilize comando PARA). 10) Escrever um algortmo para imprimir os nmeros de 1 a 10 e seus correspondentes em potncias de 2. Utilize o comando PARA. 11) Fazer um algoritmo que calcule e escreva o valor de S: Obs: (utilize comando PARA). S = (1/1) + (3/2) + (5/3) + (7/4) + ..... + (99/50) 12) Uma pessoa aplicou seu capital a juros e deseja saber, trimestralmente, a posio de seu investimento C (capital) inicial. Chamando de i a taxa de juros do trimestre, escrever uma tabela que d para cada trimestre o rendimento e o saldo acumulado durante um perodo de X anos, supondo-se que nenhuma retirada tenha sido feita. Observaes: a) Os valores de C, I e X esto disponveis em uma unidade de entrada; b) A frmula para capitalizao composta dada por: M = C * (1 + i) ^ n onde: M = montante aps terem decorridos n trimestres C = capital inicial investido

26

Introduo Lgica

Prof. Rodrigo Stein

n = nmero de perodos decorridos (trimestres) 13) Uma certa firma fez uma pesquisa de mercado para saber se as pessoas gostaram ou no de um novo produto lanado no mercado. Para isso, fornecer o sexo do entrevistado e sua resposta (sim ou no). Sabendo-se que foram entrevistadas 2000 pessoas, fazer um algoritmo que calcule e escreva: a) o nmero de pessoas que responderam sim; b) o nmero de pessoas que responderam no; c) o nmero total de entrevistados; d) a porcentagem de pessoas do sexo feminino que responderam sim d) a porcentagem de pessoas do sexo masculino que responderam no

BIBLIOGRAFIA
TREMBLAY, J; BUNT, R. B. - Cincia dos Computadores: Uma abordagem algortmica. Editora McGraw-Hill. FARRER, H.; et al. - Algortmos Estruturados, Editora Guanabara Koogan, Rio de Janeiro. WIRTH, N. - Algortmos e Estruturas de Dados, Editora Prentice-Hall do Brasil.

27