Anda di halaman 1dari 42

Implementao de Algoritmos

Professora Luclia Oliveira

Lgica de programao a tcnica de encadear pensamentos para atingir determinado objetivo


5/29/2009

Implementao de Algoritmos Professora Luclia Oliveira

Sumrio
I - CONCEITOS INICIAIS ..................................................................................................................................... 4 Lgica de programao ................................................................................................................................... 4 Algoritmo ......................................................................................................................................................... 4 Instruo.......................................................................................................................................................... 5 EXERCCIOS .................................................................................................................................................. 6 Programa de Computador ................................................................................................................................ 7 Fases .............................................................................................................................................................. 7 Diagrama de Blocos ......................................................................................................................................... 8 EXERCCIOS .................................................................................................................................................. 9 II - VARIVEIS ................................................................................................................................................... 10 Tipos de Variveis ......................................................................................................................................... 11 Numricas ................................................................................................................................................. 11 Cadeia ou String ou Alfanumricas ............................................................................................................ 11 Caractere .................................................................................................................................................. 12 Lgico ....................................................................................................................................................... 12 Constantes .................................................................................................................................................... 12 III - EXPRESSES ............................................................................................................................................ 13 Operadores Aritmticos ................................................................................................................................. 13 Operadores Relacionais ................................................................................................................................. 14 Operadores Lgicos ....................................................................................................................................... 15 EXERCCIOS ................................................................................................................................................ 17 IV COMANDOS BSICOS .............................................................................................................................. 19 Comando de Atribuio.................................................................................................................................. 19 Comando de Entrada ..................................................................................................................................... 19 Comando de Sada ........................................................................................................................................ 19 Primeiro Exemplo Portugus Estruturado e Pascal...................................................................................... 20 EXERCCIOS - Estrutura Seqencial ............................................................................................................. 21 V ESTRUTURAS DE SELEO ..................................................................................................................... 23 Conceitos ...................................................................................................................................................... 23 Seleo Simples ............................................................................................................................................ 23

Implementao de Algoritmos Professora Luclia Oliveira

Seleo Composta......................................................................................................................................... 23 Exemplo ........................................................................................................................................................ 24 EXERCCIOS Estrutura de Seleo ............................................................................................................ 25 Alternativa de Mltiplas Escolhas ................................................................................................................... 28 EXERCCIOS Alternativa de Mltiplas Escolhas .......................................................................................... 30 VI ESTRUTURAS DE REPETIO................................................................................................................. 32 Comando Enquanto (While - Do) ................................................................................................................... 32 Comando Repita (Repeat - Until) ................................................................................................................... 33 EXERCCIOS Comando Enquanto (WHILE) ............................................................................................... 34 Comando Para (For) ...................................................................................................................................... 37 EXERCCIOS Comando Para (For) ............................................................................................................. 38 ANEXO I Questes de Raciocnio Lgico ........................................................................................................ 41 ANEXO II - Transferncia de Comandos: Portugus Estruturado para Pascal .................................................... 42

Implementao de Algoritmos Professora Luclia Oliveira

I - CONCEITOS INICIAIS
Lgica de programao a tcnica de encadear pensamentos para atingir determinado objetivo. O aprendizado desta tcnica necessrio, para quem quer trabalhar com desenvolvimento de sistemas e programas.

Algoritmo uma seqncia de passos finitos com o objetivo de solucionar um problema.

O estudo da lgica o estudo dos mtodos e princpios usados para distinguir o raciocnio correto do incorreto. Naturalmente, essa definio no pretende afirmar que s possvel argumentar corretamente com uma pessoa que j tenha estudado lgica. Afirm-lo seria to errneo quanto pretender que s possvel correr bem, se estudou fsica e fisiologia, necessrias para a descrio dessa atividade. Alguns excelentes atletas ignoram completamente os processos complexos que se desenrolam dentro deles prprios quando praticam o esporte.

Assim tambm acontece no nosso dia-a-dia. Quantas vezes j vimos um algoritmo e no sabamos que aquela seqncia de passos chamava-se algoritmo.

Um exemplo bem freqente quando queremos falar em algum telefone pblico.

Exemplo de algoritmo para falar em um telefone pblico 1 Retirar o telefone do gancho; 2 Esperar o sinal; 3 Colocar o carto; 4 Discar o nmero; 5 Falar no telefone; 6 Colocar o telefone no gancho.

Implementao de Algoritmos Professora Luclia Oliveira

O algoritmo exatamente esse conjunto de passos que resolveu o problema de uma pessoa falar no telefone. como se fssemos ensinar uma mquina a fazer alguma tarefa especfica. Outro exemplo clssico um algoritmo para resolver o problema de fritar um ovo que poderia estar escrito em forma de uma receita. A receita um algoritmo, pois formada de aes que devem ser tomadas para fritar um ovo.

Exemplo de algoritmo para fritar um ovo 1 pegar frigideira, ovo, leo e sal; 2 colocar leo na frigideira; 3 acender o fogo; 4 colocar a frigideira no fogo; 5 esperar o leo esquentar; 6 colocar o ovo; 7 colocar o sal; 8 retirar quando estiver pronto.

Cada linha do algoritmo pode-se chamar de uma instruo, logo, podemos dizer que um algoritmo um conjunto de instrues. Assim como fritar um ovo, nos algoritmos computacionais no podemos trocar ou omitir certas instrues, caso contrrio no obteremos o resultado esperado. Por exemplo, se omitirmos a instruo acender o fogo, no teremos ao final do algoritmo um ovo frito.

Instruo Indica a um computador uma ao elementar a ser executada. At as coisas mais simples podem ser descritas por um algoritmo. Por exemplo:

Algoritmo para o fim de semana

1 vejo a previso do tempo; 5

Implementao de Algoritmos Professora Luclia Oliveira

2 se fizer sol vou praia; seno vou estudar; 3 almoar; 4 ver televiso; 5 dormir.

EXERCCIOS

1 Fazer um algoritmo para tomar banho:

2 Crie um algoritmo para fazer uma prova:

Implementao de Algoritmos Professora Luclia Oliveira

3 Faa um algoritmo para somar dois nmeros:

Programa de Computador Nada mais do que um algoritmo escrito numa linguagem de computador (C, Pascal, Fortran, Delphi, Cobol, Java e outras). a traduo para o ingls do algoritmo feito em portugus. O mais importante de um programa a sua lgica, o raciocnio utilizado para resolver o problema, que exatamente o algoritmo. A forma de escrever um algoritmo em pseudocdigo (algoritmo que no usa nenhuma linguagem de programao) vai variar de autor para autor, pois, um traduz ao p da letra a linguagem C, outro, o Pascal, outro, mistura as duas linguagens e assim por diante. importante lembrar que estas variaes vo sempre ocorrer, podemos dizer que uma variao de autores adotados.

Fases A principal finalidade de um computador realizar a tarefa de processamento de dados, isto , receber dados atravs de dispositivos de entrada que podem ser, por exemplo, teclado, mouse, scanner, entre outros; realizar operaes com estes dados e gerar uma resposta que ser expressa em um dispositivo de sada que pode ser, por exemplo, uma impressora, um monitor de vdeo, entre outros.

Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em trs fases fundamentais:

Implementao de Algoritmos Professora Luclia Oliveira

ENTRADA DE DADOS

PROCESSAMENTO DE DADOS

SADA DE DADOS

ENTRADA: So os dados de entrada do algoritmo. PROCESSAMENTO: So os procedimentos utilizados para chegar ao resultado final. SADA: So os dados j processados, os resultados, mostrados na tela do computador (monitor de vdeo) ou impressora.

Diagrama de Blocos uma forma padronizada para representar os passos lgicos de um determinado processamento. Com o diagrama, tambm conhecido como fluxograma, podemos definir uma seqncia de smbolos, com significado bem definido, portanto, sua principal funo a de facilitar a visualizao dos passos de um processamento.

Simbologia do Diagrama de Bloco Existem diversos smbolos em um diagrama de bloco. Veja no quadro abaixo alguns dos smbolos que iremos utilizar: Smbolo Funo

Indica o incio ou fim de um processamento TERMINAL Exemplo: Incio do algoritmo

Processamento em geral Exemplo: x<- 2+3 PROCESSAMENTO

Indica entrada de dados pelo usurio via teclado Exemplo: Digite a nota da prova 1 ENTRADA MANUAL DE DADO

Implementao de Algoritmos Professora Luclia Oliveira

Mostra informaes ou resultados Exemplo: Mostre o resultado do clculo EXIBIR

EXERCCIOS

1.

Construir um diagrama de blocos que: - leia quatro nmeros - calcule a mdia - mostre o resultado.

2.

Construa fluxograma que: - leia o salrio de um empregado - calcule o novo salrio sabendo que l teve um aumento de 15% - mostre o resultado na tela

3.

Agora faa um algoritmo para o exerccio 2.

Implementao de Algoritmos Professora Luclia Oliveira

II - VARIVEIS
um local na memria principal, isto , um endereo que armazena um contedo. O contedo de uma varivel pode ser de vrios tipos: inteiro, real, caractere (literal), String (cadeia), lgico, entre outros. Uma vez definidos o nome e o tipo de uma varivel, no podemos alter-los no decorrer de um algoritmo. Por outro lado, o contedo da varivel pode ser modificado no decorrer do programa, de acordo com a necessidade. Em algoritmos, as variveis so definidas no incio por meio do comando definido: Nome da varivel: tipo da varivel;

Exemplos: A: inteiro; X: real; Nome: string (ou cadeia);

Regras para formao do nome de uma varivel: 1 O primeiro caractere uma letra; 2 Se houver mais de um caractere, poderemos usar letras ou dgitos; 3 Nomes de variveis escritas com letras maisculas sero diferentes de letras minsculas em muitas linguagens de programao. Lembre-se: peso diferente de PESO; 4 Nenhuma palavra reservada poder ser nome de uma varivel.

Nomes Vlidos Nome, profissao,n, n1,PESO, A

Nomes No-Vlidos 2X -> Comea por algarismo peso do aluno -> espao no permitido

10

Implementao de Algoritmos Professora Luclia Oliveira

Tipos de Variveis

Numricas

So aquelas que armazenam dados numricos, podendo ser divididos em duas classes: Inteiro: so aqueles que no possuem componentes decimais ou fracionrios, podendo ser positivos ou negativos. Normalmente uma varivel do tipo inteira poder ocupar 1, 2 ou 4 bytes na MP. Exemplos: 10 -10 nmero inteiro positivo nmero inteiro negativo

Real: so aqueles que podem possuir componentes decimais ou fracionrios, podendo tambm ser positivos ou negativos. Normalmente uma varivel do tipo real poder ocupar 4 ou 8 bytes na MP. Exemplos: 25.03 235. -10.5 nmero real positivo com duas casas decimais nmero real positivo com zero casas decimais nmero real negativo com uma casa decimal

Cadeia ou String ou Alfanumricas So aquelas que possuem letras e/ou nmeros. Pode em determinados momentos conter somente dados numricos ou somente letras. Se usado somente para armazenamento de nmeros, no poder ser utilizado para operaes matemticas.

O nmero de bytes possveis para armazenamento de uma varivel desse tipo depender da quantidade de caracteres.

11

Implementao de Algoritmos Professora Luclia Oliveira

Exemplos: Maria 123 A String de comprimento 5 String de comprimento 3 String de comprimento 1

Caractere aquele que armazena apenas uma letra ou dgito, uma string de comprimento 1. Se usado para armazenar nmero no poder ser utilizado para operaes matemticas.

Normalmente uma varivel do tipo caractere ocupar 1 byte na MP.

Exemplos: A 5 caractere que armazena uma letra caractere que armazena um nmero

Lgico

Tambm conhecido como booleano. representado no algoritmo pelos dois nicos valores lgicos possveis: verdadeiro ou falso. Porm comum encontrar em outras referncias outros pares de valores lgicos como: sim/no, 1/0, true/false, verdadeiro/falso.

Constantes

Constante um determinado valor fixo que no se modifica ao longo do tempo, durante a execuo de um programa. Conforme seu tipo, a constante classificada como sendo numrica, lgica ou literal. As declaraes das constantes em um algoritmo so feitas antes das declaraes das variveis:

12

Implementao de Algoritmos Professora Luclia Oliveira

Sintaxe: Nome da constante = valor da constante;

III - EXPRESSES
O conceito de expresso em termos computacionais est intimamente ligado ao conceito de expresso (ou frmula) matemtica, onde um conjunto de variveis e constantes numricas relaciona-se por meio de operadores compondo uma frmula que, uma vez avaliada, resulta num valor.

Operadores Aritmticos Os operadores matemticos so:

Operador + * / Div Mod

Funo Somar Subtrair Multiplicar Dividir Quociente inteiro Resto da diviso

Os operadores Div e Mod s podem ser aplicados com operandos inteiros. O operador / sempre conduz a um resultado real. Com os operadores +, - e * , se pelo menos um dos operandos for real, ento o resultado ser real. Exemplos de expresses aritmticas: 3*3=9 9 / 2 = 4.5 9 DIV 2 = 4 9 MOD 2 = 1 2 / 9 = 0.22

13

Implementao de Algoritmos Professora Luclia Oliveira

2 + 4.6 = 6.6

Operadores Relacionais

Uma expresso relacional uma comparao realizada entre dois valores de mesmo tipo, tendo como resposta sempre um valor booleano (verdadeiro ou falso). Estes valores so representados na relao atravs de constantes, variveis ou expresses aritmticas.

Os operadores relacionais so:

Smbolo = <> <= >= > < Igual

Descrio

Diferente Menor ou igual Maior ou igual Maior que Menor que

Exemplo de relaes: X=1 y=2 z=5

X *X+Y>Z 1 * 1 +2>5 1 + 2 >5 3 > 5 Resultado desta expresso: FALSO

14

Implementao de Algoritmos Professora Luclia Oliveira

Operadores Lgicos Uma expresso lgica serve para combinar resultados de expresses aritmticas e/ou relacionais, variveis e/ou constantes, retornando verdadeiro ou falso. Exemplo de operadores lgicos, matematicamente conhecidos:

15

Implementao de Algoritmos Professora Luclia Oliveira

E Ou No

And Or Not

E / AND

Uma expresso AND (E) verdadeira se todas as condies forem verdadeiras.

OR / OU

Uma expresso OR (OU) verdadeira se pelo menos uma condio for verdadeira.

NOT / NO Uma expresso NOT (NO) inverte o valor da expresso ou condio, se verdadeira inverte para falsa e vice-versa.

Tabela E (AND) VeV=V VeF=F FeV=F FeF=F

Tabela OU (OR) V ou V = V V ou F = V F ou V = V F ou F = F

Tabela NO (NOT) No V = F No F = V

As prioridades entre os operadores so: 1 - ( ) 2 - funes 3 - No 4 - *, / , Div, Mod, E 5 - +, -, Ou 6 - =, < >, <, <=, >, >=.

Observao: em caso de empate entre as prioridades, resolver da esquerda para a direita.

16

Implementao de Algoritmos Professora Luclia Oliveira

EXERCCIOS 1. Identifique o tipo dos dados: (a) inteiro; (b) real; (c) lgico; (d) cadeia ou literal

( ) verdadeiro ( ) aula ( ) -0.342

( ) c*d ( ) 897 ( ) 35.23

( ) falso ( ) 345 ( ) -23

( ) 1 2 3 4 ( ) -18.589 ( ) Maria

2.

Indique os identificadores como vlidos ou invlidos: (a) identificador vlido (b) identificador invlido

( ) ano ( ) media_salario ( ) mdia

( ) ai! ( ) A15B34 ( ) aula

( ) 3/1 ( ) nome-aluno ( ) 5

3.

Faa a declarao de 2 variveis do tipo inteira, 2 do tipo real, 2 de um nico caractere e 2 do tipo cadeia de caracteres.

4.

Indique qual o resultado das expresses aritmticas abaixo: Sendo: x = 6.0 d = 12 y=2 p=4 z = 4.0 q=3 f) g) h) i) j) a=8 r = 10 b = 7.5 s = 2.5 c = 7.7

a) b) c) d) e)

x+yz*a= d div y = d mod y = y div d = y mod d =

((z / a) + b * a) d = 100 * (q div p) + r = p * (r mod q) q/2 raiz (r (q * q ) ) = (a + r) * r =

17

Implementao de Algoritmos Professora Luclia Oliveira

5.

Dadas as informaes abaixo, informe qual o valor das relaes (verdadeiro ou falso):

a)

a = 2.0,

b = 9.0,

nome = ana, ( ) ( ) ( )

profissao = advogado

a + 1 > = raiz (b) nome < > ana profissao = mdico

b)

a = 6.0,

b = 121.0,

nome = pedro, ( ) ( ) ( )

profissao = mdico

a + 1 > = raiz (b) nome < > ana profissao = mdico

c)

x = 3,

y = 4,

z = 16,

nome = maria,

resultado = verdadeiro ( ) ( ) ( ) ( )

( x + y > z ) and (nome = maria) (resultado) or ( y > = x ) (not resultado) and ( z div y + 1 = x ) (nome = jos) and ( x + y + z < ( y * y ))

18

Implementao de Algoritmos Professora Luclia Oliveira

IV COMANDOS BSICOS
Comando de Atribuio Este comando utilizado para atribuir valores a variveis e, em portugol (portugus estruturado), representado por <- (seta da direita para esquerda). Exemplos de comandos de atribuio: Cor <- verde; Teste <- falso; Media <- (n1 + n2) / 2; X <- raiz (16);

Comando de Entrada O comando de entrada LEIA utilizado para receber dados do teclado. o comando que permite que o usurio digite dados, possibilitando um dilogo com o computador. O dado digitado armazenado na varivel indicada no comando. Lembre-se de que o nome de uma varivel representa uma posio de memria. Sintaxe: Leia (nome de uma varivel);

Exemplo: Leia (n);

Comando de Sada o comando responsvel por enviar um resultado, uma informao ao usurio. O valor de cada varivel buscado na memria e mostrado em um dispositivo de sada. Atravs desse comando o computador pode emitir os resultados e outras mensagens para o usurio atravs da tela do computador (monitor) ou uma impressora. Sintaxe: Escreva (expresso ou varivel ou constantes);

19

Implementao de Algoritmos Professora Luclia Oliveira

Exemplos: Escreva ( Aprender lgica com esta apostila ficou bem mais fcil!); Escreva ( Digite o seu nome: ); Escreva ( A + B ); Escreva (A mdia das notas = , media);

Primeiro Exemplo Portugus Estruturado e Pascal Algoritmo que l um nome digitado pelo usurio e mostra uma mensagem.

Portugus Estruturado
Programa exemplo1; Var nome: literal; Incio Escreva (Digite um nome: ); Leia (nome); Escreva(nome, um nome muito bonito! ); Fim.

Pascal
Program exemplo1; Var nome: string; Begin Write (Digite um nome: ); Read (nome); Write (nome, um nome muito bonito! ); End.

20

Implementao de Algoritmos Professora Luclia Oliveira

EXERCCIOS - Estrutura Sequencial

1.

Faa um algoritmo que leia dois nmeros, calcule e imprima a soma desses dois nmeros.

2.

Faa um programa que receba dois nmeros reais, calcule e mostre a subtrao do primeiro nmero pelo segundo.

3.

Faa um programa que receba dois nmeros inteiros, calcule e imprima a diviso do primeiro nmero pelo segundo.

4.

Faa um programa que leia um nmero e informe a metade e o dobro desse nmero.

5.

Escreva um programa que receba um nmero via teclado e informe em seguida a metade e o quadrado desse nmero.

6.

Escrever um programa que permita receber o nome e a idade de uma pessoa e em seguida, informar o nome digitado e a idade da pessoa daqui a 30 anos.

7.

Faa um programa que leia trs notas de um aluno, calcule e imprima a mdia aritmtica entre essas notas.

8.

Faa um programa que receba dois nmeros inteiros, calcule e imprima: - soma do dois nmeros; - subtrao do primeiro pelo segundo; - subtrao do segundo pelo primeiro; - produto dos dois nmeros; - diviso do primeiro pelo segundo; - quociente inteiro da diviso do primeiro pelo segundo; - resto da diviso do primeiro pelo segundo.

21

Implementao de Algoritmos Professora Luclia Oliveira

9.

Faa um programa que receba quatro nmeros inteiros, calcule e mostre a soma desses nmeros.

10. Faa um programa que receba trs notas e seus respectivos pesos. Calcule e mostre a mdia ponderada dessas notas.

11. Faa um programa que receba o valor do salrio de um funcionrio. Calcule e mostre o novo salrio, sabendo-se que este sofreu aumento de 25%.

12. Faa um programa que receba o valor do salrio de um funcionrio e o percentual de aumento, calcule e mostre o valor do aumento e o novo salrio.

13. Faa um programa que receba o valor do salrio-base de um funcionrio, calcule e mostre o salrio a receber, sabendo-se que este funcionrio tem gratificao de 5% sobre o salrio-base e paga imposto de 7% sobre o salrio-base.

14. Faa um programa que receba o valor do salrio-base de um funcionrio, calcule e mostre o salrio a receber, sabendo-se que este funcionrio tem gratificao de R$ 1.000,00 e paga imposto de 10% sobre o salrio-base.

22

Implementao de Algoritmos Professora Luclia Oliveira

V ESTRUTURAS DE SELEO
Conceitos Os algoritmos at agora seguiram um mesmo padro: entrava-se com dados, estes eram processados e alguma informao era mostrada na tela. Dessa forma, o computador mais parecia uma mquina de calcular. O aprendizado de novos conceitos, como a estrutura de seleo, nos dar uma viso maior da complexidade de tarefas que ele poder executar. Um exemplo do nosso dia-a-dia: imagine-se diante de um caixa eletrnico e suponha que sua senha seja 1234: Na tela aparece a mensagem: - Digite sua senha : E o cursor ( ou | ) fica piscando:

Voc digita os algarismos da sua senha. Neste momento, a Unidade Lgica e Aritmtica (um dos componentes da CPU) verifica se os nmeros que voc digitou so iguais a 1234. Caso tenha sido, a transao bancria continua; mas, se voc digitou algo diferente, aparece na tela a mensagem: SENHA INVLIDA. Sintaxes: Seleo Simples Se condio ento Incio Comando (s); Fim Seno Fim; Incio Comando (s); Fim; Podemos constatar que esta estrutura faz parte do nosso cotidiano: Seleo Composta Se condio ento Incio Comando (s);

23

Implementao de Algoritmos Professora Luclia Oliveira

- Se eu no tiver prova, vou ao clube; seno vou estudar. - Se eu tiver aumento, troco de carro; seno espero o 13 salrio. - Se minha mdia for maior ou igual a sete, passo direto; seno fao exame final. A nica coisa diferente a forma como iremos escrev-la, vamos adaptar os algoritmos para uma linguagem especfica de um modo formal, obedecendo as regras da linguagem.

Exemplo Algoritmo que l um nmero e mostra uma mensagem dizendo se o nmero digitado ou no mltiplo de 5.

Portugus Estruturado:
Programa ExemploSe; Var num, resto: inteiro; Incio Escreva (Digite um nmero: ); Leia (num); resto <- num mod 5; Se resto = 0 ento Escreva (num, de 5) Seno Escreva (num, mltiplo de 5); Fim. mltiplo

Pascal:
Program ExemploSe; Var num, resto: integer; Begin Write (Digite um nmero: ); Read (num); resto := num mod 5; If resto = 0 then Write (num, mltiplo de 5) Else Write (num, no mltiplo de 5); End.

no

Observaes: Antes de Else no se usa ponto e vrgula; O Begin e o End so obrigatrios somente quando se tem mais de um comando dentro do If e do Else.

24

Implementao de Algoritmos Professora Luclia Oliveira

EXERCCIOS Estrutura de Seleo

1.

Faa um programa que leia um nmero e informe se o dobro do nmero maior que 35.

2.

Faa um programa que leia um nmero e informe se a metade do nmero menor que 12.

3.

Faa um programa que leia dois nmeros e informe apenas se o primeiro maior que o segundo.

4.

Faa um programa que leia dois nmeros e informa se o primeiro igual ao segundo.

5.

Faa um programa que leia dois nmeros e informe se o primeiro maior, menor ou igual ao segundo.

6.

Faa um programa que leia trs nmeros e informe qual dos trs o maior.

7.

Fazer um programa que receba um nmero e mostre se ele positivo, negativo ou nulo (0) .

8.

Elabore um algoritmo que leia um nmero e mostre o nmero com a mensagem par ou mpar.

9.

Faa um programa que leia a altura e o sexo de uma pessoa, calcule e imprima seu peso ideal, utilizando as seguintes frmulas: Para homens: (72.7 * h) 58 Para mulheres: (62.1 * h) 44.7 (h = altura)

25

Implementao de Algoritmos Professora Luclia Oliveira

10. Faa um programa que receba quatro notas de um aluno, calcule e imprima a mdia aritmtica das notas e a mensagem de aprovado para mdia superior ou igual a 7.0 ou a mensagem de reprovado para mdia inferior a 7.0.

11. Faa um programa que calcule e imprima o salrio reajustado de um funcionrio de acordo com a seguinte regra: - salrios at R$ 300,00, reajuste de 50% - salrios maiores que R$ 300,00, reajuste de 30%

12. A prefeitura do Rio de Janeiro abriu uma linha de crdito para os funcionrios municipais. O valor mximo da prestao no poder ultrapassar 30% do salrio bruto. Fazer um algoritmo que permita entrar com o salrio bruto e o valor da prestao e informar se o emprstimo pode ou no ser concedido.

13.

Ler um nmero qualquer e exibir na tela uma mensagem indicando se ele positivo, negativo ou nulo (zero). Se ele for positivo, exibir tambm a raiz quadrada deste nmero. Se ele for negativo voc deve escrever uma mensagem dizendo No possvel calcular a raiz deste nmero. Ler um nmero inteiro e exibir na tela a mensagem Par se ele for um nmero par, ou mpar se ele for um nmero mpar. Faa um programa que receba trs notas de um aluno, calcule e mostre a mdia aritmtica e as mensagens de acordo com a tabela abaixo. Para os alunos de exame, calcule e mostre a nota que dever ser tirada no exame para aprovao, considerando que a mdia no exame de 6,0. MDIA [ 0,0 a ] 3,0 [ 3,0 a ] 7,0 [ 7,0 a 10,0 ] MENSAGEM Reprovado Exame Aprovado

14.

15.

16. 17.

Faa um programa que receba trs nmeros e os mostre em ordem crescente. Dados trs valores X, Y e Z, verificar se eles podem ser os lados de um tringulo e, se forem, verificar se um tringulo eqiltero, issceles ou escaleno. Se eles no formarem um tringulo informar ao usurio tal situao. Considerar que:

26

Implementao de Algoritmos Professora Luclia Oliveira

Condio para ser tringulo: O comprimento de cada lado de um tringulo menor que a soma dos outros dois lados. Chama-se tringulo eqiltero o tringulo que tem os trs lados iguais; Chama-se tringulo issceles o que tem o comprimento de dois lados iguais; Chama-se tringulo escaleno o tringulo que tm os trs lados diferentes.

18.

Faa um programa que receba o cdigo de origem de um produto e informe a sua procedncia. A procedncia obedece a seguinte tabela: Cdigo de origem 1 2 3 4 5 ou 6 7, 8 ou 9 10 at 20 21 at 30 Sul Norte Leste Oeste Nordeste Sudeste Centro-oeste Noroeste Procedncia

27

Implementao de Algoritmos Professora Luclia Oliveira

Alternativa de Mltiplas Escolhas

uma alternativa para quando o algoritmo tiver muitos SEs, deixando o programa com uma estrutura melhor. Sintaxe: Portugus Estruturado Ou Caso <nome da varivel> seja Caso <nome da varivel> seja Alvo 1: comando 1; Alvo 2: comando 2; Alvo n: comando n; Fim; Fim; Alvo 1: comando 1; Alvo 2: comando 2; Alvo 3: comando 4; Seno comando 5;

Pascal Ou Case <nome da varivel> of Alvo 1: comando 1; Alvo 2: comando 2; Alvo n: comando n; End; Else comando 5; End; Case <nome da varivel> of Alvo 1: comando 1; Alvo 2: comando 2; Alvo 3: comando 4;

Observaes: No Case tambm pode fazer uso do Else; Antes do Else se usa ; (ponto e vrgula); O Case no tem Begin, mas, tem End;

28

Implementao de Algoritmos Professora Luclia Oliveira

A varivel que far a verificao dever ser declarada do tipo Integer, Char ou Boolean.

Exemplo: Este programa l a idade de um nadador e informa a sua categoria seguindo as seguintes regras: Infantil A (5 - 7 anos), Infantil B (8 10 anos), Juvenil A (11 13 anos), Juvenil B (14 17 anos), Snior (maiores de 18 anos).

Portugus Estruturado
Programa Exemplo; var idade: integer; Incio Escreva('Idade do nadador: '); Leia (idade); Caso idade seja

Pascal
Program Exemplo; var idade: integer; Begin Write ('Digite nadador: '); Read(idade); Case idade of

idade

do

5..7: Escreva ('Categoria Infantil A'); 8..10:Escreva ('Categoria Infantil B'); 11..13:Escreva('Categoria JuvenilA'); 14..17:Escreva('Categoria JuvenilB'); 18..99:Escreva('Categoria Snior'); Seno Escreva('Idade invlida!'); Fim; //Fim do Caso Fim.

5..7: Write ('Categoria Infantil A'); 8..10:Write ('Categoria Infantil B'); 11..13:Write('Categoria Juvenil A'); 14..17:Write ('Categoria Juvenil B'); 18..99:Write ('Categoria Snior'); Else Write('Idade invlida!'); End; //End do Case End.

29

Implementao de Algoritmos Professora Luclia Oliveira

EXERCCIOS Alternativa de Mltiplas Escolhas

1.

Faa um programa que receba o cdigo de origem de um produto e informe a sua procedncia. (Obs.: este o exerccio 14 da estrutura de seleo se, mas, agora ele ser feito utilizando o escolha caso.) A procedncia obedece a seguinte tabela: Cdigo de origem 1 2 3 4 5 ou 6 7, 8 ou 9 10 at 20 21 at 30 Procedncia Sul Norte Leste Oeste Nordeste Sudeste Centro-oeste Noroeste

2.

Faa um programa que leia um nmero digitado pelo usurio e o escreva por extenso

se ele estiver entre 1 e 5 inclusive, caso contrrio mostrar uma mensagem: Opo de nmero invlida!

3.

Escrever um algoritmo que leia um peso na Terra e o nmero de um planeta e imprima o valor do seu peso neste planeta. A relao de planetas dada a seguir juntamente com o valor das gravidade relativas Terra: N 1 2 3 4 5 6 gravidade relativa 0.37 0.88 0.38 2.64 1.15 1.17 Planeta Mercrio Vnus Marte Jpiter Saturno Urano

Para calcular o peso no planeta escolhido use a seguinte frmula:

30

Implementao de Algoritmos Professora Luclia Oliveira

Peso no Planeta = Peso / 10 * gravidade.

31

Implementao de Algoritmos Professora Luclia Oliveira

VI ESTRUTURAS DE REPETIO
Vamos supor que nossos algoritmos precisaro ser executados mais de uma vez e, para que no tenhamos que reescrever trechos idnticos que aumentariam

consideravelmente o tamanho do programa, utilizaremos as estruturas de repetio.

Comando Enquanto (While - Do)

Esta estrutura recomenda quando o nmero de repeties for desconhecido. Para que funcione corretamente necessrio observar: necessrio um teste (uma condio) para interromper a repetio, esta estrutura testa a condio e s executa o que est dentro dela se for verdadeira. A varivel que testa a condio dever ter seu valor atribudo no incio do programa atravs de um comando de leitura ou de atribuio, antes da estrutura do enquanto e dentro da estrutura, como ltimo comando. O Enquanto comea com Incio (Begin) e termina com Fim (End;) Pode-se usar outras estruturas dentro do Enquanto (While), como: If, Case, etc.

Sintaxe: Portugus Estruturado: ENQUANTO condio FAA INCIO Comando 1; Comando 2; Comando n; FIM; END; Pascal: WHILE condio DO BEGIN Comando 1; Comando 2; Comando n;

Exemplo: Faa um programa que leia vrios nmeros e imprima a metade de cada nmero, o programa termina quando o 0 (zero) for digitado:

32

Implementao de Algoritmos Professora Luclia Oliveira

PORTUGUS ESTRUTURADO:
PROGRAMA Enquanto1; VAR num: INTEIRO; metade:REAL; INCIO ESCREVA (Digite um nmero inteiro ); LEIA (num); ENQUANTO num <> 0 FAA INCIO metade <- num/2; ESCREVA (A metade de , num, , metade); ESCREVA (Digite outro nmero ou zero para sair do programa: ); LEIA (num); FIM; FIM.

PASCAL:
PROGRAM Enquanto1; VAR num: INTEGER; metade:REAL; BEGIN WRITE ('Digite um '); READ(num); WHILE num <> 0 DO BEGIN nmero inteiro

metade := num/2; WRITELN ('A metade de ', num, ' ', metade:0:1); WRITELN ('Digite outro nmero ou zero para sair do programa: '); READ(num); END; END.

Comando Repita (Repeat - Until)

Estrutura recomendada quando o nmero de repeties for desconhecido, sendo necessria uma chave (um teste) para interromper a repetio. Sua diferena em relao ao enquanto que ela testa a condio ao final, significando que ela executa o trecho pelo menos uma vez. Muitas pessoas no entendem por que existe esta estrutura se a estrutura Enquanto (While) pode fazer o que ela faz. Na verdade tem muito programador que no faz uso dela.

Sintaxe: Portugus Estruturado: Repita comandos; At condio;

33

Implementao de Algoritmos Professora Luclia Oliveira

Pascal Repeat

comandos; Until condio; EXERCCIOS Comando Enquanto (WHILE)

1.

Entrar com vrios nmeros e imprimir quantos nmeros foram digitados.

2.

O IBGE fez uma pesquisa, ele quer saber quantos dentistas foram entrevistados. Fazer um programa que pergunte aos entrevistados qual a sua profisso e ao final diga quantas pessoas foram entrevistadas e quantas so dentistas (considerar dentista, Dentista e DENTISTA).

3.

Dado um pas A, com 5.000.000 de habitantes e uma taxa de natalidade de 3% ao ano, e um pas B com 7.000.000 de habitantes e uma taxa de natalidade de 2% ao ano, calcular e imprimir o tempo necessrio para que a populao do pas A ultrapasse a populao do pas B.

4.

Uma pousada estipulou o preo da diria em R$ 40,00 e mais uma taxa de servios dirios de: - R$ 15,00, se o nmero de dias for menor que 10; - R$ 8,00, se o nmero de dias for maior ou igual a 10. Criar um algoritmo que imprima o nome, o valor da conta de cada cliente e ao final o total arrecadado pela pousada.

5.

Criar um algoritmo que entre com vrios nmeros inteiros e positivos e informe a quantidade de nmeros mltiplos de 3 (trs). O programa ser encerrado quando o usurio digitar 0 (zero) ou menos.

6.

Criar um algoritmo que entre com vrios nmeros inteiros e positivos e informe a mdia dos nmeros mltiplos de 3 (trs). usurio digitar 0 (zero) ou menos. O programa ser encerrado quando o

34

Implementao de Algoritmos Professora Luclia Oliveira

7.

Uma fbrica produz e vende vrios produtos e para cada um deles tem-se o nome, quantidade produzida e quantidade vendida. Criar um algoritmo que mostre: Para cada produto, nome, quantidade no estoque e uma mensagem se o produto tiver menos de 50 itens no estoque.

8.

Faa um programa que leia a idade e a altura de vrias pessoas. Calcule e informe a mdia das alturas das pessoas com mais de 50 anos. Para encerrar o programa digite zero para idade.

9.

Faa um programa que leia vrios nmeros, quando o zero for digitado o programa ser finalizado. Mostre no final desse programa a soma dos nmeros positivos, a soma dos negativos e a soma total dos positivos e negativos juntos.

10.

O GDF realizou uma pesquisa entre vrios habitantes do DF, coletando dados sobre o rendimento familiar e o nmero de filhos de cada famlia. O GDF quer saber: A mdia dos rendimentos da populao; Mdia do nmero de filhos.

11.

Uma empresa decidiu fazer um levantamento em relao aos candidatos que se apresentarem para preenchimento de vagas no seu quadro de funcionrios. Suponha que voc seja o programador dessa empresa, criar um programa que leia para cada candidato a idade, o sexo e se tem experincia no servio (S ou N). Para encerrar o programa, digite zero para idade. Calcule e escreva: O nmero de candidatos do sexo feminino; O nmero de candidatos do sexo masculino; A idade mdia dos homens que j tem experincia no servio.

12.

Uma empresa classifica seus funcionrios em trs nveis de acordo com um ndice de produtividade. So eles (1) Excelente, (2) Bom e (3) Regular. Cada nvel acrescenta um abono ao salrio base do funcionrio, de acordo com a seguinte tabela: Excelente Bom 80% do salrio base; 50% do salrio base;

35

Implementao de Algoritmos Professora Luclia Oliveira

Regular

30% do salrio base.

O programa deve ler a matrcula do funcionrio, seu salrio base e seu nvel de abono. Calcular e imprimir o salrio a ser pago (salrio a ser pago = salrio base + abono). O programa ser encerrado quando for digitado 0 para matrcula.

13.

Faa um programa que receba vrios nmeros positivos ou negativos, terminada por zero. O programa deve fornecer como sada, a soma dos nmeros positivos e a soma dos nmeros negativos. Faa um programa que leia os dados de vrios alunos, contendo o nmero da matrcula, as trs notas e a freqncia. Calcule e mostre: para cada aluno o nmero de matricula, a nota final e a mensagem (aprovado ou reprovado); a maior e a menor nota da turma; o total de alunos reprovados; Faa um programa que receba a idade, a altura e o peso de vrias pessoas. Calcule e mostre: A quantidade de pessoas com idade superior a 50 anos; A mdia das alturas das pessoas com idade entre 10 e 20 anos; A percentagem de pessoas com peso inferior a 40 quilos entre todas as pessoas analisadas.

14.

15.

16.

Uma empresa deseja aumentar seus preos em 20%. Faa um programa que leia o cdigo, o preo de custo de vrios produtos e que calcule o novo preo de cada um deles. Calcule tambm a mdia de preos com e sem aumento. Mostre o cdigo e o novo preo de cada produto e, no final, as mdias. A entrada de dados deve terminar quando for recebido um cdigo de produto menor ou igual a zero. Faa um programa que apresente um menu de opes para clculo das seguintes operaes entre dois nmeros: adio, subtrao, multiplicao e diviso. O programa deve permitir a escolha da operao desejada, a entrada dos nmeros, a exibio do resultado e a volta ao menu de opes. O programa s termina quando for escolhida a opo de sada.

17.

36

Implementao de Algoritmos Professora Luclia Oliveira

Comando Para (For)

Esta estrutura de repetio utilizada quando se sabe o nmero de vezes em que um trecho do programa deve ser repetido.

Sintaxe: Portugus Estruturado PASCAL

PARA a<-valor inicial AT valor final FAA INCIO Comando 1; Comando 2; FIM;

FOR a := valor inicial AT valor final DO INCIO Comando 1; Comando 2; END;

Observaes: 1. O identificador (a varivel a no exemplo anterior) tem que ser declarada do tipo inteiro (Integer). 2. A varivel que controla a repetio poder ser impressa se precisarmos dela para numerar uma lista, posicionar, etc. 3. A varivel que controla a repetio jamais aparecer num comando de leitura dentro do bloco de repetio.

Exemplo: Algoritmo para escrever os nmeros de 1 at 10:

37

Implementao de Algoritmos Professora Luclia Oliveira

Portugus Estruturado
Programa para1; Var I : Inteiro; Incio Para i <- 1 at 10 faa Incio Escreva ( - , i); fim; Fim.

PASCAL
Program para1; Var I : Integer; Begin For i := 1 to 10 do Begin Write ( - , i); End; End.

EXERCCIOS Comando Para (For)

1.

Imprimir todos os nmeros de 100 at 1.

2.

Criar um algoritmo que imprima todos os nmeros pares no intervalo de 1 a 100.

3.

Criar um algoritmo que entre com cinco nmeros e imprima o quadrado de cada nmero.

4.

Entrar com 10 nmeros e imprimir a metade de cada nmero.

5.

Criar um algoritmo que imprima todos os nmeros de 1 at 100 e a soma deles.

6.

Escreva um programa que receba a idade de 10 pessoas, calcule e imprima a quantidade de pessoas maiores de idade (idade >= 18 anos).

7.

Entrar com nome, idade e sexo de 10 pessoas. Imprimir o nome se a pessoa for do sexo masculino e tiver mais de 21 anos.

38

8.

Em uma eleio presidencial, existem trs candidatos. Os votos so informados atravs de cdigo. Os cdigos utilizados so: 1, 2, 3 0 outros cdigos votos para os respectivos candidatos; votos em branco votos nulos

Escreva um programa que calcule e imprima: - total de votos para cada candidato; - total de votos nulos; - total de votos em branco.

9.

Criar um algoritmo que entre com quatro notas de cada aluno de uma turma de 20 alunos e mostre: - A mdia de cada aluno; - A mdia da turma; - Quantos alunos foram aprovados (mdia 7.0)

10.

Imprimir as tabuadas de multiplicar de 1 at 10.

11.

Criar um algoritmo que deixe escolher qual a tabuada de multiplicar que se deseja imprimir

12.

Um empresa est fazendo a estatstica de seus funcionrios, ela precisa saber quantas funcionrias tm com mais de 40 anos para encaminh-las para exames de mamografia. Fazer um programa que leia o nome, a idade e o sexo de seus 10 funcionrios e imprima o nome se for do sexo feminino e tiver mais de 40 anos.

13.

Faa um programa que receba a idade de 10 pessoas. O programa deve calcular e mostrar a quantidade de pessoas com idade maior que 18 anos.

14.

Faa um programa que mostre a tabuada de multiplicao (de 1 a 10) para os 6 primeiros nmeros primos. Ao mudar de uma base para outra o programa deve

mostrar uma mensagem ao usurio e aguardar que alguma tecla seja pressionada para ento montar a tabuada para a prxima base. 15. Faa um programa que receba a idade de 15 pessoas, calcule e mostre a quantidade de pessoas em cada faixa etria. Faixa etria 1 2 3 4 5 Idade At 15 anos De 16 a 30 anos De 31 a 45 anos De 46 a 60 anos Acima de 61 anos

16.

Faa um programa que leia uma srie de nmeros positivos inteiros. Calcule e mostre o maior nmero digitado. A entrada de dados deve terminar quando um nmero negativo foi digitado.

17.

Faa um programa que receba um nmero, calcule e mostre o fatorial desse nmero. Sabe-se que: n! = 1*2*3*...*(n-1)*n; 0! = 1, por definio.

ANEXO I Questes de Raciocnio Lgico


1. Preencha o quadro a seguir de tal maneira que a soma dos nmeros que ficam sobre uma linha, ou sobre uma coluna, ou sobre uma diagonal, d sempre 15 e todos os nmeros t de ser diferentes:

2.

Entram num restaurante para jantar trs mulheres, cada uma com duas filhas. S existiam 7 lugares. Nenhuma ficou de p. Como isso possvel?

3.

Tenho 3 camisas: A, B e C. Uma VERDE, uma BRANCA e outra AZUL, no necessariamente nesta ordem. Sabe-se somanete que a a camisa A VERDE, B no VERDE e C No AZUL. Quais as cores de A, B, e C, nessa ordem?

4.

Dentro de uma caixa fechada, h uma bola branca e uma bola preta. Numa segunda caixa fechada, h duas bolas brancas e, numa terceira caixa fechada, h duas bolas pretas. Cada caixa possui uma etiqueta indicando o contedo das caixas, mas algum misturou as trs etiquetas de modo que todas as etiquetas esto erradas. Voc seria capaz de escolher apenas uma das seis bolas de modo tal que, olhando a sua cor, voc possa dizer o contedo de cada uma das caixas?

ANEXO II - Transferncia de Comandos: Portugus Estruturado para


Pascal

Veja como seria a transferncia de alguns comandos de Portugus Estruturado para Pascal:

OBS: Os dados da tabela esto em ordem alfabtica.

Portugus Estruturado (atribuio) Algoritmo ou Programa Cadeia (de caracteres) ou Literal Caracter E Enquanto n <> 0 faa Escreva (.....) Fim Incio Inteiro Leia (nome da varivel); Nome:arranjo [1..10] de cadeia (ou string); Ou Para i1 at 10 faa Se x > 10 ento Seno Var ou Variveis

Pascal := Program String Char And While n <> 0 do Write (.....); End Begin Integer Read (nome da varivel); Nome: array [1..10] of string; Or For i:= 1 to 10 do If x > 10 then Else Var

Anda mungkin juga menyukai