unisul – universidade do sul de santa catarina file · web viewunisul – universidade do sul de...

76
APOSTILA DE LÓGICA DE PROGRAMAÇÃO I

Upload: vuongkhue

Post on 15-Nov-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

APOSTILA DE LÓGICA DE PROGRAMAÇÃO I

Page 2: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

Índice1. Índice....................................................................................................................22. Introdução.............................................................................................................43. Cronograma de aulas...........................................................................................54. Introdução ao Algoritmo........................................................................................6

4.1. Descrição Narrativa.......................................................................................64.2. Fluxograma Convencional.............................................................................64.3. Pseudocódigo................................................................................................7

5. Dados...................................................................................................................85.1. Numéricos.....................................................................................................85.2. Dados Lógicos...............................................................................................95.3. Dados literais.................................................................................................95.4. Dados caracter............................................................................................105.5. Exercícios....................................................................................................10

6. Variáveis.............................................................................................................126.1. Exercícios....................................................................................................13

7. Expressões.........................................................................................................147.1. Expressões aritméticas...............................................................................147.2. Expressões Lógicas....................................................................................157.3. Expressões Literais.....................................................................................187.4. Exercícios....................................................................................................18

8. Estrutura de um algoritmo..................................................................................218.1. Nome do algoritmo......................................................................................218.2. Declarando variáveis...................................................................................21

Nome da variável: Tipo.......................................................................................218.3. Corpo do algoritmo......................................................................................21

9. Instruções Primitivas...........................................................................................229.1. Instrução Primitiva de Atribuição.................................................................229.2. Instrução Primitiva de Saída de Dados.......................................................229.3. Instrução Primitiva de Entrada de Dados....................................................249.4. Exercícios....................................................................................................25

10. Exemplos........................................................................................................2610.1. Exercícios................................................................................................29

11. Armazenado literais........................................................................................3211.1. Exercícios................................................................................................32

12. Estruturas de decisão.....................................................................................3312.1. Estruturas de decisão do Tipo Se............................................................3312.1.1. Exemplos..............................................................................................3412.1.2. Exercícios.............................................................................................3612.2. Estruturas de decisão do Tipo Escolha....................................................3812.2.1. Exemplos..............................................................................................4012.2.2. Exercícios.............................................................................................40

13. Estruturas de Repetição..................................................................................4213.1. Laços Contados.......................................................................................4213.1.1. Exemplos..............................................................................................4313.1.2. Exercícios.............................................................................................4513.2. Laços Condicionais..................................................................................4713.2.1. Enquanto..............................................................................................4713.2.2. Exemplos..............................................................................................47

2

Page 3: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

13.2.3. Exercícios.............................................................................................4913.3. Repita.......................................................................................................5013.3.1. Exemplos..............................................................................................5013.3.2. Exercícios.............................................................................................51

14. Cartão Bandeira..............................................................................................5214.1. Exercícios................................................................................................53

15. Trabalhando com literais.................................................................................5415.1.1. Exemplos..............................................................................................5415.2. Exercícios................................................................................................55

Apêndice A................................................................................................................56

3

Page 4: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

1. Introdução

4

Page 5: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

2. Cronograma de aulas

5

Page 6: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

3. Introdução ao Algoritmo

Um algoritmo pode ser definido como sendo uma seqüência de passos,

logicamente colocados, que resolvem um problema.

Existem várias formas de se representar um algoritmo:

3.1. Descrição Narrativa

Nesta forma de representação os algoritmos são expressos diretamente em

linguagem natural. Como exemplo, tem-se o algoritmo seguinte:

Receita de Bolo:

Misture os Ingredientes

Unte a forma com manteiga

Despeje a mistura na forma

Se houver coco ralado

Então despeje sobre a mistura

Leve a forma ao forno

Enquanto não corar

Deixe a forma no forno

Retire do forno

Deixe esfriar

3.2. Fluxograma Convencional

É uma representação gráfica de algoritmos onde formas geométricas diferentes

implicam ações (instruções, comandos) distintos. Tal propriedade facilita o

entendimento das idéias contidas nos algoritmos e justifica sua popularidade.

Esta forma é aproximadamente intermediária a descrição narrativa e ao

pseudocódigo, pois é menos imprecisa que a primeira e, no entanto, não se

preocupa com detalhes de implementação do programa, como o tipo das variáveis

usadas.

6

Page 7: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

Ha vários padrões que definem as formas geométricas das figuras que devem

ser usadas para representar cada um dos diversos tipos de instruções; contudo,

nenhum deles se sobressai com relação aos demais no que diz respeito à aceitação

por parte dos usuários.

Nota-se que os fluxogramas convencionais preocupam-se com detalhes de

nível físico da implementação do algoritmo. Por exemplo, figuras geométricas

diferentes são adotadas para representar operações de saída de dados realizadas

em dispositivos distintos, como uma fita magnética ou um monitor de vídeo.

3.3. Pseudocódigo

Antes de utilizarmos uma linguagem de computador, é necessário organizar as

ações a serem tomadas pela máquina de forma organizada e lógica, sem nos

atermos às regras rígidas da Sintaxe de uma linguagem. Para isto utilizaremos uma

forma de escrever tais ações, conhecida como algoritmo, ou pseudocódigo.

Esta forma de representação de algoritmos é rica em detalhes, como a

definição dos tipos das variáveis usadas no algoritmo e, por assemelhar-se bastante

à forma em que os programas são escritos, encontra muita aceitação.

Na verdade, esta representação é suficientemente geral para permitir que a

tradução de um algoritmo nela representada para uma linguagem de programação

específica seja praticamente direta.

7

Page 8: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

4. Dados

Semelhante ao que acontece em uma calculadora, por exemplo, um sistema de

computador manipula informações, como os números que digitamos na calculadora.

Em um sistema de computador estas informações são classificadas em tipos

dependendo da forma que são formadas, a essas informações passaremos a

chamá-las de DADOS. Devemos fazer essa distinção pelo motivo de a memória do

computador trabalhar de forma diferente com dados diferentes.

Os tipos de dados existentes são:

4.1. Numéricos

Inteiros: São aos valores numéricos (positivos ou negativos) que não possuem

casas decimais. São dados do tipo inteiro:

Idade de uma pessoa (não podemos dizer que alguém tenha 20,3 anos);

Dia (não existe o dia 15,2);

Exemplos:

24 número inteiro positivo;0 número inteiro;-12 número inteiro negativo;

Reais: São aos valores numéricos (positivos ou negativos) que poderão possuir

casas decimais. São dados do tipo real:

Peso de uma pessoa (alguém pode ter tranqüilamente ter 53,2 kg);

Comprimento de um terreno (uma área pode ter 74,2 m);

Exemplos:

24.01 número real positivo com duas casas decimais;

144.0 número real positivo com uma casa decimal;

-13.3 número real negativo com uma casa decimal;

0.0 número real com uma casa decimal;

Como forma de melhor representarmos os números reais, os trabalharemos

sempre com as casas decimais, independente de ser um valor zero.

Por exemplo:8

Page 9: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

1,2 – Valor real;

2,0 – Valor real;

2 – Valor inteiro;

4.2. Dados Lógicos

A existência deste tipo de dado é, de certo modo, um reflexo da maneira como

os computadores funcionam. Muitas vezes, estes tipos de dados são chamados de

booleanos.

O tipo de dados lógico e usado para representar dois únicos valores lógicos

possíveis: verdadeiro e falso. E comum encontrar-se em outras referências outros

tipos de pares de valores lógicos como sim/não, 1/0, true/false.

Nos algoritmos apresentados neste texto os valores lógicos serão

representados conforme abaixo, inclusive com os pontos:

.V. - valor lógico verdadeiro;

.F. - valor lógico falso;

4.3. Dados literais ou caracter

São caracterizadas como tipo literal às seqüências contendo letras, números e

símbolos especiais. Uma seqüência de caracteres deve ser indicada entre aspas

duplas (“”). Este tipo de dado também pode ser conhecido como alfanumérico, string

ou cadeia.

Exemplos:

"QUAL ?" - literal de comprimento 6;

" " - literal de comprimento 1;

"qUaL ?!$" - literal de comprimento 8;

"AbCdefC Hi" - literal de comprimento 10;

"1-2+3=" - literal de comprimento 6;

"0" - literal de comprimento 1 ;

Note que, por exemplo, "1.2" representa um dado do tipo literal de comprimento 3, constituído pelos caracteres "1","." e "2", diferindo de 1.2 que e um dado do tipo real.

9

Page 10: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

4.4. Dados caracter

São dados semelhantes aos literais diferindo que este aceita apenas um único

caractere. Um dado do tipo caracter deve ser indicado entre aspas simples (‘’)

Exemplo:

Para representar o sexo de uma pessoa podemos utilizar apenas uma

letra (‘M’ ou ‘F’);

4.5. Exercícios

1) Classifique os dados a seguir conforme o seu tipo.

I - Inteiros

R - Reais

L - Literais

B - Lógicos (ou Booleanos)

N - Aqueles que a principio não podemos definir o tipo

C - Caracter

a) ( ) 0b) ( ) 1c) ( ) 0.0d) ( ) -1e) ( ) -32f) ( ) "Fim de Questão"g) ( ) -0.001h) ( ) +0.05i) ( ) .V.j) ( ) 'a'k) ( ) “abc”l) ( ) Vm) ( )”+3257”n) ( ) Fo) ( ) '+3257.”p) ( ).Fq) ( ) +36r) ( ) “-0.0”s) ( ) 'V't) ( ) '.F.'u) ( ).F.

2) Classifique os dados a seguir conforme o seu tipo.

I - Inteiros10

Page 11: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

R - ReaisL - LiteraisB - Lógicos (ou Booleanos)C - Caracter

a) ( ) Nome b) ( ) Idadec) ( ) Sexod) ( ) Pesoe) ( ) Dataf) ( ) CPFg) ( ) Altura

11

Page 12: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

5. Variáveis

Vimos no capitulo anterior que em um algoritmo trabalhamos dados de vários

tipos, agora precisamos saber como iremos trabalhar com ela.

Quando algum dado é processado pelo computador ele será armazenado na

memória, mas não podemos colocar lá de qualquer forma, pois corremos o perigo de

quando precisar dela não a encontrar. Imaginamos uma grande estante com muitas

gavetas onde guardamos nossas coisas. Quando precisarmos de algo será

complicado de acharmos, mas se de alguma forma identificarmos cada gaveta (com

uma etiqueta, por exemplo) tudo fica mais fácil, pois poderemos ir direto no local

correto sem precisar procurar por tudo. Com a memória funciona de forma

semelhante, daremos nomes para áreas onde iremos guardar as informações e

quando precisarmos saberemos onde ela se encontra. A essa área da memória

damos o nome de Variável.

Para utilizarmos essas variáveis devemos definir que tipo de dado será

armazenado nela (inteiro, real, literal, caracter ou lógico), pois uma variável do tipo

inteiro não pode, por exemplo, armazenar um valor lógico.

Devemos também dar um nome para essa variável, nome esse que possui

algumas regras para ser formado:

a) Começar com uma letra;

b) Os demais caracteres podem ser letras, números ou ‘_’;

c) Não podemos colocar como nome variáveis palavras utilizadas pelo algoritmo

como comandos como escreva, leia, var, etc..

d) Procure dar nomes “sugestivos” para suas variáveis, fica muito mais fácil

saber o que guardamos na variável chamada Idade, já em uma variável

chamada PARALELEPIPEDO fica complicado.

Exemplos:

Salário Correto

1ano Errado (não começou com uma letra)

Ano1 Correto

A casa Errado (contém o caractere branco)

12

Page 13: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

Sal/hora Errado (contém o caractere "/")

Sal_hora Correto

_desconto Errado (não começou com uma letra)

5.1. Exercícios

1) Na lista a seguir, assinale com V os nomes de variáveis válidos e com I os inválidos.

a) ( ) ABCb) ( ) 123Ac) ( ) _d) ( ) A123e) ( ) ABCDEf) ( ) 3ABCg) ( ) _Ah) ( ) Aai) ( ) _1j) ( ) _a123k) ( ) Etc...l) ( ) Am) ( ) Acd1n) ( ) 1o) ( ) A0123p) ( ) B312q) ( ) Variavel

13

Page 14: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

6. ExpressõesO conceito de expressão em termos computacionais esta intimamente ligado

ao conceito de expressão (ou fórmula) matemática, onde um conjunto de variáveis e

constantes numéricas relacionam-se, por meio de operadores, compondo uma

formula que, uma vez avaliada, resulta num valor.

Dependendo desse valor resultante, definimos 3 tipos de expressões:

Aritméticas;

Literais;

Lógicas;

6.1. Expressões aritméticas

Expressões aritméticas são aquelas cujo resultado da avaliação é do tipo

numérico, seja inteiro ou real. Somente o uso de operadores aritméticos e variáveis

numéricas é permitido em expressões deste tipo.

Os operadores aritméticos relacionados às operações aritméticas básicas estão

sumarizados na tabela.

Operador Operação+ Adição- Subtração* Multiplicação/ Divisão+ Manutenção de sinal- Inversão de sinal

Div Parte inteira da divisãoResto Resto da divisão

As variáveis usadas em expressões aritméticas podem somente ser do tipo

inteiro ou real.

Resultados de expressões aritméticas:

Inteiro+-*

Inteiro = Inteiro

Inteiro+-*

Real = Real

Real + Inteiro = Real14

Page 15: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

-*

Real +-*

Real = Real

InteiroInteiroRealReal

/

InteiroRealInteiroReal

= Real

Inteiro DIV Inteiro = InteiroInteiro RESTO Inteiro = Inteiro

Repare pela tabela acima que sempre que tivermos um valor real na

expressão, o resultado será real, e em uma divisão o resultado sempre será real.

6.2. Expressões Lógicas

Expressões lógicas são aquelas cujo resultado da avaliação e um valor lógico.

(.V. ou .F.).

Os operadores lógicos são mostrados na tabela.

Operador Prioridade.OU. 3.E. 2

.NÃO 1

Para exemplificar o uso de operadores lógicos, a tabela verdade a seguir

apresenta duas variáveis lógicas A e B. Uma vez que cada variável lógica possui

somente dois valores possíveis, então há exatamente quatro combinações para

estes valores, razão pela qual a tabela tem quatro linhas. As diversas colunas

contêm os resultados das operações lógicas sobre as combinações possíveis dos

valores das variáveis A e B.

A B .NÃO. A .NÃO.B A .OU. B A .E. B.F. .F. .V. .V. .F. .F..F. .V. .V. .F. .V. .F..V. .F. .F. .V. .V. .F..V. .V. .F. .F. .V. .V.

- O operador lógico .NÃO. sempre inverte o valor de seu operando.

Ex.: .NÃO..V. =.F. e .NÃO. .F. = .V.;

- Para que a operação lógica .OU. tenha resultado verdadeiro basta que um de

seus operandos seja verdadeiro; Para melhor visualizar este efeito, podemos

15

Page 16: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

imaginar que as variáveis lógicas A e B são como dois interruptores ligados em

paralelo num circuito de acionamento de uma lâmpada.

Neste exemplo, um interruptor fechado (e que, portanto, permite a passagem

de corrente elétrica) representa uma variável lógica cujo valor é verdadeiro (.V.). Por

outro lado, um interruptor aberto representa uma variável lógica com valor falso (.F.).

No circuito, para que a lâmpada acenda basta que um dos interruptores esteja

fechado. Analogamente, para que a operação lógica .OU. tenha resultado verdadeiro

(.V.) basta que apenas um dos operandos possua valor lógico .V. Por outro lado,

para que a operação lógica .OU. possua resultado .F. (para que a lâmpada esteja

apagada) e necessário que os dois operandos possuam valor .F. (e necessário que

os dois interruptores estejam abertos).

Para que a operação lógica .E. tenha resultado verdadeiro é necessário que

seus dois operandos tenham valor lógico .V.. Em termos de um circuito elétrico, uma

operação lógica .E. pode ser representada por dois interruptores ligados em série.

Nota-se no circuito acima que a lâmpada somente estará acessa quando os

dois interruptores (A e B) estiverem fechados. Por outro lado, basta que um dos

interruptores (A ou B) esteja aberto para que a lâmpada não acenda. Da mesma

forma, a operação lógica .E. só resulta em .V. quando A e B forem iguais a .V.,

ainda, para que a operação lógica .E. resulte em .F. basta que um de seus

16

Page 17: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

operadores seja .F..

Ha, ainda, outro tipo de operador que pode aparecer em operações lógicas os

operadores relacionais, mostrados na tabela.

Operador Comparação= Igual

< > Diferente< Menor

< = Menor ou igual> Maior

> = Maior ou igual

Estes operadores são somente usados quando se deseja efetuar

comparações. Comparações só podem ser feitas entre objetos de mesma natureza,

isto e, variáveis do mesmo tipo de dado. O resultado de uma comparação é sempre

um valor lógico.

O uso de operadores relacionais possibilita o aparecimento em expressões

lógicas de variáveis de outros tipos de dados que não o lógico.

Exemplo: sejam A e B variáveis lógicas, X e Y variáveis reais, e R. S e T variáveis literais, com os respectivos valores:

A = .V. , B = .F.,X = 2.5, Y = 5.0,R = "JOSÉ", S = "JOÃO" e T = "JOÃOZINHO"

A tabela seguinte contém algumas expressões lógicas contendo estas

variáveis.

Expressão ResultadoA .OU. B .V.A .E. B .F.

. NÃO. A .F.X = Y .F.

X = (Y/2) .V.R = S .F.S = T .F.

R < > S .V.R > S .V.S > T .F.

(( A .OU. B) .OU. (XY) .OU. (ST))

.V.

17

Page 18: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

Um resultado interessante de ser observado e o da expressão S > T. ou seja,

"JOÃO" > "JOÃOZINHO", cujo resultado é falso. A primeira pergunta que surge deve

ser com relação à maneira como é feita tal comparação. Para tal, deve-se recorrer à

tabela de códigos ASCII. Tal tabela estabelece para cada caractere um código

diferente. De acordo com este código e possível comparar dois dados de tipo literal,

comparando os caracteres dos mesmos da esquerda para a direita. Ao comparar os

literais "JOSÉ" e "JOÃO", verificamos que seus dois primeiros caracteres (J e o) são

iguais, mas que "S" é maior que "A", segundo a tabela ASCII. Portanto "JOSÉ" e

maior que "JOÃO". Estes tipos de comparação são muito úteis na ordenação

alfabética de variáveis literais. Outra forma é imaginar as duas palavras em um

dicionário, a primeira viria primeiro que a segunda, então a segunda é maior.

6.3. Expressões Literais

Expressões literais são aquelas cujo resultado da avaliação é um valor literal.

Este tipo de expressão é bem menos freqüente que os anteriores. Os tipos de

operadores existentes variam de uma linguagem de programação para outra, não

havendo uma padronização.

Para que o assunto não passe em branco, considere-se como exemplo a

operação de concatenação de strings: tome-se duas strings e acrescenta-se

(concatena-se) a segunda delas ao final da primeira. Em algumas linguagens esta

operação é representada pelo símbolo (operador) (+). Por exemplo, a concatenação

das strings "REFRIGERA" e "DOR" e representada por "REFRIGERA" + "DOR" e o

resultado de sue avaliação e "REFRIGERADOR".

6.4. Exercícios

1) Dada a declaração de variáveis

VAR A, B, C : inteiro

X, Y, Z : real

NOME, RUA : literal

L1, L2 : lógico

Classifique as expressões seguintes de acordo com o tipo de dado do

resultado de sua avaliação:

I - Inteiros18

Page 19: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

R - Reais

L - Literais

B - Lógicos (ou Booleanos)

N - Aqueles que a principio não podemos definir o tipo

a) ( ) A + B + C

b) ( ) A + B + Z

c) ( ) A > Y

d) ( ) NOME > RUA

e) ( ) NOME + RUA

f) ( ) L1.OU. L2

g) ( ) A > B = L1

h) ( ) X + Y / Z

i) ( ) (RUA <> NOME) .E. (. NÃO. (A = B))

j) ( ) A + B / C

k) ( ) X + Z / A

l) ( ) A + X / Z

m) ( ) A + Z / A

n) ( ) A > B

2) Para as mesmas variáveis declaradas no exercício anterior, às quais são dados os valores seguintes:

A = 1 X = 2.0 NOME = “X”

B = 2 Y = 10.0 RUA = “Y”

C = 3 Z = -1.0 L1 = .V.

L2 = .F.

Determine o resultado da avaliação das expressões abaixo:

a) A + C / B

b) A + B / C

c) C / B / A

d) X * B

e) NOME + RUA

f) NOME = RUA

g) L1 .OU. L2

19

Page 20: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

h) (L1 .E. (.NÃO. L2))

i) (L2 .E. (.NÃO. L1))

j) (L1 .E. (.NÃO. L2)) .OU. (L2 .E. (.NÃO. L1))

k) X > Y .E. C <= B

l) (C - 3 * A) < (X + 2 * Z)

3) Indique o resultado das seguintes expressões:

a) 5/2

b) 5 DIV 2

c) 5 RESTO 2

d) (200 DIV 10) RESTO 4

e) 5 > 7

f) (7<8) .OU. (9<8)

g) (((10 DIV 2) RESTO 6)>5) .E. (3<(2 RESTO 2)) .E. (.NÃO.(2<3))

4) Crie tabelas verdade para as expressões lógicas a seguir:

a) (A .OU. B).E.(.NÃO. A)

b) (A .OU. B).E.(.NÃO. (A .OU. B))

c) (A .E. (NÃO .B.))

20

Page 21: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

7. Estrutura de um algoritmo

Como comentado anteriormente, na construção de um algoritmo devemos

seguir regras, além disso, devemos seguir a estrutura dele.

Algoritmo <nomedoalgoritmo>

Var

<Variáveis>

inicio

<comandos>

fim.

7.1. Nome do algoritmo

Na estrutura acima temos na primeira linha o nome do algoritmo. Para darmos

esse nome devemos utilizar as mesmas regras utilizadas para nomes de variáveis.

7.2. Declarando variáveis

Na declaração Var devemos declarar as variáveis (aquelas áreas de memória,

lembram?).

Para declararmos deveremos utilizar a seguinte sintaxe:

Nome da variável: Tipo

Exemplos:

var

Nome: Literal

Idade: inteiro

Peso, altura: Real

Rua: Literal

Reparem que no terceiro exemplo foram declaradas duas variáveis de uma

única vez, isso pode ser feito com várias variáveis desde que elas sejam do mesmo

tipo.

7.3. Corpo do algoritmo

Entre os comando Inicio e Fim será desenvolvido nosso algoritmo. Nele todo a

seqüência lógica para a resolução do problema.

21

Page 22: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

8. Instruções PrimitivasComo o próprio nome diz, instruções primitivas são os comandos básicos

que efetuam tarefas essenciais para a operação dos computadores, como entrada e

saída de dados (comunicação com o usuário e com os dispositivos periféricos), e

movimentação dos mesmos na memória. Estes tipos de instrução estão presentes

na absoluta maioria das linguagens de programação. De fato, um programa que não

utilize nenhuma instrução primitiva - como as que serão definidas neste capítulo - é

incapaz de se comunicar com o mundo exterior e, portanto não tem utilidade

alguma.

8.1. Instrução Primitiva de Atribuição

A instrução primitiva de atribuição, ou simplesmente atribuição, é a principal

maneira de se armazenar uma informação numa variável. Sua sintaxe é:

<nome_de_variável> <expressão>

Exemplo:ALGORITMO TesteVar

Número: INTEIROInício

Número 10Fim.

O Exemplo acima nos informa que:

a) Foi definida uma variável, a qual demos o Nome de “Número”, e informamos

que esta variável, ou posição de memória, só poderá aceitar dados que sejam

inteiros.

b) Atribuímos à variável “Número” o valor 10

8.2. Instrução Primitiva de Saída de Dados

O algoritmo anterior não é prático, pois, apesar do computador ter calculado

um determinado valor ou armazenado o mesmo na variável Número, este valor ficou

retido na memória do computador e não foi mostrado ao usuário, o maior

interessado no mesmo.

As instruções primitivas de saída de dados são o meio pela qual

22

Page 23: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

informações contidas na memória dos computadores são colocadas nos dispositivos

de saída, pare que o usuário posse apreciá-las.

Ha duas sintaxes possíveis pare esta instrução:

Escreva <lista_de_variáveis> ouEscreva <literal>

Algoritmo EXEMPLOVar

Preço_unit Preço_tot : realQuant : inteiro

InícioPreço_unit 5.0Quant 10Preço_tot Preço_unit * QuantEscreva Preço_tot

Fim.

Algoritmo EXEMPLOVar

Preço_unit Preço_tot : realQuant : inteiro

InícioPreço_unit 5.0Quant 10Preço_tot Preço_unit * QuantEscreva “Resultado ”, Preço_tot

Fim.

Algoritmo EXEMPLOVar

Preço_unit Preço_tot : realQuant : inteiro

InícioPreço_unit 5.0Quant 10Preço_tot Preço_unit * QuantEscreva “Resposta”Escreva Preço_tot

Fim.

Daqui por diante, Escreva será considerada uma palavra reservada não mais

poderá ser utilizada como nome de variável, de modo que toda vez que for

encontrada em algoritmos será identificada como um comando de saída de dados.

Uma lista_de_variáveis é um conjunto de nomes de variáveis separados por

vírgulas. Um literal é simplesmente um dado do tipo literal delimita por aspas, e

23

Page 24: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

aparecerá exatamente como foi escrito.

8.3. Instrução Primitiva de Entrada de Dados

O algoritmo anterior ainda carece de uma melhoria essencial. Toda vez que ele

é executado, o mesmo valor é calculado, já que os valores das variáveis Preço_unit e Quant permanecem inalterados. Seria interessante que estes valores pudessem

ser fornecidos ao computador pelo usuário do programa toda vez que o programa

fosse executado, pare que o usuário tivesse um maior controle sobre o valor

calculado. A instrução primitiva de entrada de dados foi criada para suprir esta

necessidade.

Sua sintaxe é:

Leia <lista_de_variáveis>

1 Algoritmo EXEMPLO2 Var3 Preço_unit Preço_tot : real4 Quant : inteiro5 Início6 Escreva “Informe valor unitário: ”7 Leia Preço_unit8 Escreva “Quantidade: ”9 Leia Quant10 Preço_tot Preço_unit * Quant11 Escreva Preço_tot12 Fim.

Neste exemplo as linhas foram numeradas para um melhor entendimento.

A execução do algoritmo acima é inicializado pela declaração das variáveis

(linhas 2 á 4), onde elas serão criadas em memória. Depois disso é que a execução

propriamente dita irá iniciar.

Linha 6 - Uma mensagem é enviada para o vídeo.

Linha 7 – Neste momento a execução é parada esperando uma resposta do

usuário, já que o comando leia pede que seja digitado algo e pressionado enter a

seguir o dado informado será armazenado na variável Preço_unit.

Linha 10 – Um calculo é realizado e atribuído a variável Preço_tot.

Linha 11 – É mostrado o valor armazenado da Preço_tot.

Um erro que muitos tem na construção de algoritmos é associar os comandos

Escreva e Leia, ou seja, acham que toda vez que tivermos um comando Escreva

temos que ter um Leia, e vice-versa. Cuidado ambos os comandos são

24

Page 25: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

independentes um do outro.

8.4. Exercícios

1) Faça um algoritmo/programa para atribuir a variáveis as seguintes informações:

a) 12345.0

b) 123456

c) -1122

d) 10

e) .V.

f) 12345605

2) No seguinte algoritmo existem erros, encontre e comente-os.

Algoritmo teste

var

Maria: Literal

Idade: Inteiro

Letra: Literal

Maria: Real

Inicio

Idade 23

Idade 678

Idade letra

Letra ABC

Letra A

Letra 2

Fim.

3) Qual a diferença entre as seguintes atribuições?

a) Letra 'A'

Nome “João”

b) Letra ANome João

25

Page 26: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

9. Exemplos

Neste capitulo serão mostrados alguns exemplos para melhor continuidade do

conteúdo.

Antes de tentar resolver qualquer algoritmo você deve:

Ler o enunciado e tentar entende-lo;

Procurar descobrir quais as informações que o usuário possui e quais

ele quer receber como resposta.

Além disso, não adianta saber todos os comandos do algoritmo ou de uma

linguagem se não sabemos como usa-lo.

a) Faça um algoritmo que leia o código e o nome de uma pessoa

Algoritmo um

VarCod: inteiroNome: Literal

InicioEscreva “Código: ”

Leia Cod

Escreva “Informe nome: ”

Leia Nome

Fim

b) Faça um algoritmo que leia um numero e multiplique pelo numero seguinte a

ele.

Algoritmo dois

VarN1, N2, N3: Real

InicioEscreva “Informe Número”

Leia N1

N2N1+1

N3N2 * N1

26

Page 27: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

Escreva “Resultado: ”, N3

FimO exemplo acima também pode ser resolvido da seguinte maneira.

Algoritmo dois

VarN1, N3: Real

InicioEscreva “Informe Número”

Leia N1

N3(N1+1) * N1

Escreva “Resultado: ”, N3

FimRepare nos parênteses, caso eles não existissem a multiplicação seria feita

primeiro, tornando a resposta incorreta.

c) Um cliente comprou em uma loja dois produtos (A e B). O usuário deverá

entrar com o preço unitário e quantidade dos produtos. Ao final, mostrar o

valor a ser pago e o valor do desconto dado (17% de desconto).

Algoritmo tres

VarP1, P2, Q1, Q2, T1, T2: Real

InicioEscreva “Primeiro preço: ”

Leia P1

Escreva “Segundo preço: ”

Leia P2

Escreva “Primeira qtde: ”

Leia Q1

Escreva “Segunda qtde: ”

Leia Q2

T1 P1 * Q1 + P2 * Q2

T2 T1 * 0.17

Escreva “Total: ”, T1

Escreva “Total do desconto: ”, T2

27

Page 28: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

Fim

d) Faça um algoritmo para calcular a comissão do vendedor de dois produtos. O

usuário entra com o preço unitário, quantidade dos produtos e comissão. Ao

final, mostrar o total das vendas e a comissão que o vendedor ganhou.

Algoritmo quatro

VarP1, P2, Q1, Q2, T1, T2, C: Real

InicioEscreva “Primeiro preço: ”

Leia P1

Escreva “Segundo preço: ”

Leia P2

Escreva “Primeira qtde: ”

Leia Q1

Escreva “Segunda qtde: ”

Leia Q2

Escreva “Comissão: ”

Leia C

T1 P1 * Q1 + P2 * Q2

T2 T1 * (C/100)

Escreva “Total: ”, T1

Escreva “Total da comissão: ”, T2

FimNote que não podemos trabalhar diretamente com as percentagens em um

algoritmo. Para realizarmos deveremos imaginar como faríamos um calculo desse

tipo caso não haja a tecla “%” na mesma. Exemplos:

a) Temos um valor A e queremos adicionar 10%;

X A * 1.1

b) Temos um valor A e queremos adicionar uma percentagem B;

X A * (1+B/100)

c) Temos um valor A e queremos retirar 10%;

X A * 0.9

d) Temos um valor A e queremos retirar uma percentagem B;

28

Page 29: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

X A * (1-B/100)

Para entender esses exemplos apresentados poderemos utilizar uma

regra de 3 da matemática

Para o exemplo A seria a seguinte:

100% – 1

110% – X

100 X=110

x=1.1

Para o exemplo C seria a seguinte:

100% – 1

100% - B% – X

100X = 100 – B

X=1-B/100

9.1. Exercícios

1) Faça um algoritmo/programa para ler as seguintes informações de uma pessoa: Nome, Idade, Sexo, Peso, Telefone.

2) Faça um algoritmo/programa para fazer o cálculo do quadrado de um número, ou seja, o produto de um número por si mesmo.

3) Escreva um algoritmo/programa para calcular a média entre dois números quaisquer.

4) Escreva um algoritmo/programa pare calcular o valor de y na seguinte função y= 3x + 2.

5) Faça um algoritmo/programa para ler a base e a altura de um triângulo. Em seguida, escreva a área do mesmo.

Obs.: Área = ( Base * Altura ) / 2

6) Dado um valor em graus Fahrenheit transforme-o para graus Celsius (lembre-se que a fórmula para transformar um valor dado em graus Celsius para graus Fahrenheit é a seguinte):

7) Dado um valor de hora, minuto e segundo, faça um algoritmo/programa que transforme em segundos todas estas informações e mostre este resultado no vídeo.

8) Escreva um algoritmo/programa pare calcular o consumo médio de um automóvel (media em Km/l), dado que são conhecidos a distância total percorrida e o volume de combustível consumido pare percorrê-la.

29

Page 30: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

9) Dado nome e três (3) notas de um aluno, onde as notas têm os respectivos pesos: 1, 2 e 3, faça um algoritmo/programa que mostre o nome e a média do aluno. Lembre-se que a fórmula para calcular a média é:

10)Dado nome, as três (3) notas de um aluno, e o peso de cada uma das notas, faça um algoritmo/programa que mostre o nome e a média do aluno.

11)Dado nome, preço de compra e o preço de venda de uma mercadoria, faça um algoritmo/programa que mostre o nome e o lucro obtido com a venda da mesma.

12)Dado nome do vendedor, quantidade de produtos que o mesmo vendeu durante o mês e o preço unitário do produto, faça um algoritmo/programa que mostre nome do vendedor e o valor total obtido com as vendas.

13)Dado nome do vendedor, quantidade de produtos que o mesmo vendeu durante o mês, preço unitário do produto e o percentual de comissão pago para o vendedor, faça um algoritmo/programa que mostre nome do vendedor, o total obtido com as vendas e o valor de comissão a ser pago.

14)Um caixa eletrônico possui apenas notas de 1, 10 e 100. Um cliente digita um determinado valor neste caixa eletrônico e espera receber uma determinada quantidade de notas. Faça o algoritmo/programa para calcular a quantidade de notas de cada um dos tipos acima citados que o cliente deverá receber (você poderá facilmente resolver este exercício se usar os operadores DIV e RESTO).

Exemplo: Valor digitado: 348

Notas de 100 : 3

Notas de 10 : 4

Notas de 1 : 8

15)Ler as seguintes informações de um funcionário: Nome, idade cargo e o seu salário bruto. Considere:

a) O salário bruto teve um reajuste de 38%.

b) O Salário total é descontado em 15%

E escrever os seguintes resultados:

Escreva nome, idade e cargo.

Escreva o salário bruto.

Escreva o salário líquido.

16)Uma empresa tem para um determinado funcionário uma ficha contendo o nome, número de horas trabalhadas e o n0 de dependentes de um funcionário.

Considerando que:

a) A empresa paga 12 reais por hora e 40 reais por dependentes.

b) Sobre o salário são feito descontos de 8,5% para o INSS e 5% para IR.

30

Page 31: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

Leia o Nome, número de horas trabalhadas e número de dependentes de um funcionário. Após a leitura, escreva o nome, salário bruto, os valores descontados para cada tipo de imposto e finalmente qual o salário líquido do funcionário.

17)O preço de um automóvel é calculado pela soma do preço de fábrica com o preço dos impostos (45% do preço de fábrica) e a percentagem do revendedor (28% do preço de fábrica). Leia o nome do automóvel e o preço de fábrica e escreva o nome do automóvel e o preço final.

18)Peça para o usuário digitar: Nome, salário bruto e o percentual de desconto de um funcionário qualquer. Após, imprima no vídeo o nome digitado, salário bruto e o salário líquido.

19)Peça para o usuário digitar: Nome, salário bruto e o percentual de acréscimo de um funcionário qualquer. Após, imprima no vídeo o nome digitado, salário bruto e o salário líquido.

20)Peça para o usuário digitar: Nome, quantidade de horas trabalhadas, o valor pago pôr hora de trabalho e o percentual de desconto de um funcionário qualquer. Após, imprima no vídeo o nome digitado, salário bruto e o salário líquido.

21)Em uma fábrica trabalham uma quantidade X de homens e uma quantidade Y de mulheres. Peça para o usuário digitar estas quantidades, e após a entrada destes dados imprima: Total de pessoas que trabalham nesta fábrica, o percentual de homens e o percentual de mulheres com relação ao total de funcionários.

31

Page 32: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

10. Armazenado literaisUma informação do tipo literal nada mais é do que um conjunto de caracteres

que podem ser letras, dígitos ou símbolos especiais.Exemplificando, a informação do tipo literal "BANANA" possui seis caracteres

e, portanto, seis posições são utilizadas. Estes caracteres terão suas posições numeradas de forma continua e partir de 0.

Posição Informação0 B1 A2 N3 A4 N5 A

A figura mostra o caso em que se armazena a literal "BANANA". Tendo isso em mente, poderemos acessar quaisquer um dos elementos. Para isso utilizaremos:

nome da variável + [ +posição desejada + ]

Algoritmo um

VarP1: LiteralP2: Inteiro

InicioEscreva “Informe Palavra: ”

Leia P1

Escreva “Informe posição: ”

Leia P2

Escreva “Caracter: ”, P1[P2]

Fim

10.1. Exercícios

1) Ler um LITERAL em forma de data. Exemplo: “26/09/95” e escrever o dia, mês e ano desta data todos em separados.

2) Faça um programa que solicite ao usuário a data do dia na forma DD/MM/AA. Imprima a data na tela no seguinte formato: AA/MM/DD.

32

Page 33: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

11. Estruturas de decisãoNeste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em

função do resultado da avaliação de uma ou mais condições. Uma condição é uma expressão lógica.

A classificação das estruturas de decisão é feita de acordo com o número de condições que devem ser testadas pare que se decide qual o caminho a ser seguido. Segundo esta classificação temos dois tipos de estruturas de decisão:

Se Escolha

11.1. Estruturas de decisão do Tipo Se

Nesta estrutura uma única condição (expressão lógica) é avaliada. Se o resultado desta avaliação for verdadeiro (.V.), então um determinado conjunto de instruções (comando composto) é executado.

Caso contrário, ou seja, quando resultado da avaliação for falso (.F.), um comando diferente é executado. A execução do algoritmo prosseguirá necessariamente por um deles. Esta escolha e feita em função do resultado da expressão: um dos caminhos é rotulado com (.V.) e será seguido quando a condição for verdadeira o outro e rotulado com (.F.) e será seguido quando a condição for falsa.

Se <Condição> Então<Comando_Composto_1>

Senão<Comando_Composto_1>

Fimse

A semântica desta construção é a seguinte: a condição é avaliada, se o resultado for verdadeiro, então o comando_composto_1 é executado. Ao término de sua execução o fluxo do algoritmo prossegue pela instrução seguinte a construção, ou seja, o primeiro comando após o Fimse. Nos casos em que a condição e avaliada como falsa, o comando_composto_2 é executado e, ao

33

Page 34: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

término do mesmo, o fluxo de execução prossegue pela primeira instrução seguinte ao Fimse.

Há casos particulares e muito comuns desta construção, onde o comando_composto_2 e um conjunto vazio de instruções. Neste caso, a porção relativa ao Senão pode ser omitida, resumindo a sintaxe da construção forma mostrada a seguir.

Se <Condição> Então <Comando_Composto_1>Fimse

A semântica desta construção e a seguinte: no caso da condição seja verdadeira, o comando_composto_1 é executado e, após seu término, o fluxo de execução prossegue pela próxima instrução após o Fimse. Quando a condição e falso, o fluxo de execução prossegue normalmente pela primeira instrução após o Fimse.

11.1.1. Exemplos

a) Faça um algoritmo onde o usuário irá digitar a idade de uma pessoa, após de uma mensagem informando se a mesma é maior ou menor de idade.

Algoritmo umVar

Idade: inteiroInício

Escreva “Informe idade: ”Leia IdadeSe Idade >= 18 Então

Escreva "Maior de idade"Senão

Escreva "Menor de idade"Fimse

34

Page 35: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

Fim.

b) Em uma loja de CDs, cada item possui um estoque e também um estoque mínimo (caso o estoque estiver abaixo deverá ser reposto o estoque). Faça um algoritmo que leia o estoque e o estoque mínimo de um determinado CD após mostre no vídeo se existe ou não a necessidade de reposição, no case de sim, deverá avisar a quantidade necessária para regularizar o estoque.

Algoritmo doisVar

E1, E2, QN: RealInício

Escreva “Estoque: ”Leia E1Escreva “Estoque mínimo: ”Leia E2Se E1>= E2 Então

Escreva "Não existe necessidade de reposição"Senão

QNE1-E2Escreva “São necessários ”,QN,” CDs para regularizar o estoque”

FimseFim.

c) Uma papelaria faz cópias de documentos (xerox) pelos seguintes valores:a. De 1 a 10 cópias, R$ 0.10;b. De 11 a 50 cópias, R$ 0.08;c. De 51 a 100 cópias, R$ 0.06;d. Acima de 100 cópias, R$ 0.05;

Sendo que o usuário informará a quantidade de cópias e o valor da encadernação (todas cópias irão ser encadernadas juntas), mostre no vídeo o valor a receber pela papelaria.

Algoritmo TresVar

Qc: inteiroE, V :Real

InícioEscreva “Qtde de cópias: ”Leia QCEscreva “Valor encadernação: ”Leia ESe QC <=10 Então

VQC * 0.1 + ESenão

Se QC<= 50 EntãoVQC * 0.08 + E

SenãoSe QC<= 100 Então

35

Page 36: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

VQC * 0.06 + ESenão

VQC * 0.05 + EFimSe

FimSeFimSeEscreva “O valor a ser pago é :”,V

Fim.

11.1.2. Exercícios

1) Dado o preço de uma mercadoria, dê um desconto de 10% se este preço for superior a R$10,00.

2) Escreva um algoritmo/programa para determinar o maior entre dois números reais dados.

3) Faça um algoritmo/programa que leia os valores A, B, C, e diga se a soma de A + B é menor que C.

4) Faça um algoritmo/programa que leia dois valores inteiros A e B, e se os valores forem iguais deverá se somar os dois, caso contrário multiplique A por B.

5) Faça um algoritmo/programa que leia o nome e as três notas de uma disciplina de um aluno e ao final escreva o nome do aluno, sua média e se ele foi aprovado a média é 8.

6) Escreva um algoritmo/programa para determinar se uma pessoa é maior ou menor de idade.

7) Dado a quantidade de homens e mulheres em uma fábrica, mostre no vídeo qual destes dois grupos possui a maior quantidade de representantes. Imagine que as quantidades sejam diferentes.

8) Dado o nome e a média de dois alunos, imprima no vídeo o nome e a média do aluno que possui a maior média (considere que as médias sejam diferentes).

9) Dado um número qualquer, imprimir uma mensagem no vídeo informando se o mesmo é positivo ou negativo. Imagine que o número seja diferente de zero.

10)Dado um número inteiro positivo, imprimir uma mensagem no vídeo informando se o mesmo é par ou ímpar (utilize o operador RESTO para resolver esta questão).

11)Uma empresa decide dar um aumento de 30% aos funcionários cujo salário é inferior a 5.000. Escreva um algoritmo/programa que possa ser utilizado para efetuar o cálculo do salário reajustado de um funcionário.

12)Faça um algoritmo/programa que leia 3 números inteiros e escreva o menor deles.

13)Faça um algoritmo/programa que leia 3 números inteiros e escreva o maior deles.

36

Page 37: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

14)Dado nome e idade de uma pessoa, mostre no vídeo o seu nome e a seguinte mensagem:

a. Criança, se a idade for até 12 anos.

b. Adolescente se a idade estiver entre 12 e 20 anos

c. Adulta se a idade for igual ou superior a 20 anos

15)Dado o nome e a média de três alunos, imprima no vídeo o nome e a média do aluno que possui a maior média (considere que as médias sejam diferentes).

16)Uma empresa decide dar um reajuste a seus funcionários de acordo com os critérios seguintes, faça um algoritmo que leia o salário e mostre a novo valor:

a. 50% para aqueles que ganham menos de 3.000;

b. 20% para aqueles que ganham entre 3.000 e 10.000;

c. 15% para os demais.

17)Dados três valores distintos, fazer um algoritmo/programa que, após a leitura destes dados coloque-os na tela em ordem crescente.

18)Dados três valores distintos, fazer um algoritmo/programa que, após a leitura destes dados coloque-os na tela em ordem decrescente.

19)Dado o preço de uma mercadoria e a sua categoria (A ou B) dê um desconto em seu preço de acordo com a seguinte regra:

d. 5%: se for da categoria A e o preço for superior ou igual a $100,00

e. 8%: se for da categoria A e o preço for inferior a $100,00

f. 10%: se for da categoria B e o preço for superior ou igual a $50,00

g. 12%: se for da categoria B e o preço for inferior a $50,00

20)Dados três valores X, Y, Z, verificar se eles podem ser os comprimentos dos lados de um triângulo, e se forem, verificar se é um triângulo eqüilátero, isósceles ou escaleno. Se eles não formarem um triângulo, escrever uma mensagem.

Antes da elaboração do algoritmo/programa, torna-se necessária à revisão de algumas propriedades e definições.

h. O comprimento de cada lado de um triângulo é menor do que a soma dos comprimentos dos outros dois lados.

i. Chama-se triângulo eqüilátero aquele que tem os comprimentos dos três lados iguais,

j. Chama-se triângulo isósceles aquele que tem os comprimentos de dois lados iguais.

k. Chama-se triângulo escaleno aquele que tem os comprimentos dos três lados diferentes.

21)Uma locadora de filmes possui três categorias:

A – romance,

37

Page 38: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

B – Drama,

C – Terror,

Cada uma destas categorias, têm uma determinada quantidade de filmes em catálogo. Sabe-se que a locadora adquiriu uma determinada quantidade de filmes, todos de uma mesma categoria. Para isto tem-se: A quantidade comprada e a categoria (A,B ou C) a qual estes filmes se enquadram. Mostre no vídeo as quantidades de filmes que ficarão em catálogo, de cada categoria, após a compra ter sido feita.

22)Uma loja dividiu suas mercadorias dentro de categorias indicadas pôr cores: Azul, Verde e Vermelho. As cores têm pôr finalidade indicar um determinado desconto especial que o cliente irá pagar. Tais descontos são os seguintes:

Azul, a mercadoria tem 50% de desconto sobre o preço de venda.

Verde, a mercadoria tem 30% de desconto sobre o preço de venda.

Vermelho, a mercadoria tem 20% de desconto sobre o preço de venda.

Para enquadrar uma mercadoria dentro de uma das categorias acima, a loja utiliza a seguinte fórmula:

Onde PC = Preço de compra e PV = preço de venda

A relação de enquadramento é dada pela seguinte regra:

Grupo azul, se X for menor que 10.

Grupo verde, se X for de 10 até 25.

Grupo vermelho se X for maior que 25

Dado Nome da mercadoria, preço de compra e o preço de venda, imprima no vídeo o nome da mercadoria, grupo a qual ela pertence e o preço que o cliente deverá pagar, já com o desconto.

23)Para cada funcionário de uma loja sabe-se: número de horas trabalhadas, valor pago pela loja pôr hora de trabalho, nome do funcionário e o seu tempo de serviço. A loja irá dar um abono para os funcionários de acordo com o seguinte critério:

Abono de 5% se o tempo de serviço for inferior a cinco anos.

Abono de 10% se o tempo de serviço for de 5 a 10 anos.

Abono de 15% se o tempo de serviço for superior a 10 anos.Mostre no vídeo o nome de cada funcionário, salário bruto, tempo de serviço e

o salário líquido (com o abono).

11.2. Estruturas de decisão do Tipo Escolha

Este tipo de estrutura é uma generalização da estrutura Se, onde somente uma condição era avaliada e dois caminhos podiam ser seguidos. Na estrutura de decisão do tipo Escolha pode haver uma ou mais condições a serem testadas e um comando composto diferente associado a cada uma destas.

38

Page 39: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

EscolhaCaso <Condição_1>

<Comando_composto_1>Caso <Condição_2>

<Comando_composto_2>...

Caso <Condição_n><Comando_composto_n>

Senão<Comando_composto_s>

Fimescolha

Seu funcionamento é o seguinte: ao entrar-se numa construção do tipo Escolha, a Condição_1 é testada: se for verdadeira, o comando_composto_1 e executado e, após seu término, o fluxo de execução prossegue pela primeira

39

Page 40: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

instrução após o final da construção (Fimescolha); se a Condição 1 for falso, a condição_2 é testada: se esta for verdadeira, o comando_composto_2 e executado e, ao seu término, a execução prossegue normalmente pela instrução seguinte ao Fim escolha. O mesmo raciocínio e estendido a todas as condições da construção. No caso em que todas as condições são avaliadas como falsas, o Comando_composto_s (correspondente ao Senão da construção) e executado.

O teste a ser realizado deverá ser sempre de igualdade, utilizando apenas variáveis do tipo Caracter ou Inteiro e em todos os testes a serem apenas uma variável será usada.

11.2.1. Exemplos

Algoritmo Exemplo2Var

Salário, Sal_reaj: realCategoria: inteiro

InícioEscreva “Salário”Leia SalárioEscreva “Categoria”Leia CategoriaEscolha

Caso Categoria = 1Sal_reaj 1.5 * Salário

Caso Categoria = 2Sal_reaj 1.3 * Salário

SenãoSal_reaj 1.1 * Salário

FimescolhaEscreva “Salário Reajustado = ", Sal_reaj

Fim.

Um caso particular desta construção e aquele em que o comando_composto_s não contém nenhuma instrução. Isto ocorre nas situações em que não se deseja efetuar nenhuma ação quando todas as condições testadas são falsas. Assim, pode-se dispensar o uso do Senão na construção como acontece também na construção Se.

11.2.2. Exercícios

1) Faça um algoritmo/programa que leia um número que represente um determinado mês do ano. Após a leitura escreva por extenso qual o mês lido. Caso o número digitado não esteja na faixa de 1..12 escreva uma mensagem informando o usuário do erro da digitação.

2) Uma empresa irá dar um aumento de salário aos seus funcionários de acordo com a categoria de cada empregado. O aumento seguirá a seguinte regra:

a) Funcionários das categorias A ganharão 10% de aumento sobre o salário.

40

Page 41: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

b) Funcionários das categorias B ganharão 15% de aumento sobre o salário.

c) Funcionários das categorias C ganharão 25% de aumento sobre o salário

d) Funcionários das categorias D ganharão 35% de aumento sobre o salário.

e) Funcionários das categorias demais ganharão 50% de aumento sobre o salário.

Faça um algoritmo/programa que escreva Nome, categoria e salário reajustado de cada Empregado.

3) Faça um algoritmo/programa que leia 2 números reais, e peça a operação a ser realizada com eles : 1-Soma, 2- Subtração, 3- Multiplicação, 4- Divisão.

41

Page 42: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

12. Estruturas de RepetiçãoSão muito comuns as situações em que se deseja repetir um determinado

trecho de um programa um certo número de vezes. Por exemplo, pode-se citar o caso em que se deseja realizar um mesmo processamento para conjuntos de dados diferentes. Exemplo: processamento de folha de pagamentos de uma empresa, em que o mesmo cálculo e efetuado pare cada um dos funcionários.

As estruturas de repetição são muitas vezes chamadas de Laços ou, também, de Loops.

A classificação das estruturas de repetição e feita de acordo com o conhecimento prévio do número de vezes que o conjunto de comandos será executado. Assim, os laços dividem-se em:

laços contados, quando se conhece previamente quantas vezes o comando composto no interior da construção será executado;

laços condicionais, quando não se conhece de antemão o número de vezes que o conjunto de comandos no interior do laço será repetido, pelo fato de o mesmo estar amarrado a uma condição sujeita a modificação pelas instruções do interior do laço.

12.1. Laços Contados

Os laços contados são úteis quando se conhece previamente o número de vezes que se deseja executar um determinado conjunto de comandos, então, este tipo de laço nada mais e que uma estrutura dotada de mecanismos para contar o número de vezes que o corpo do laço (ou seja, o comando composto em seu interior) e executado.

Para <var> de <Início> até <final> incr <inc> faça <Comando_composto>Fimpara

A semântica do laço contado é a seguinte: no Início da execução da construção o valor <Início> é atribuído a variável <var>. A seguir, o valor variável <var> é comparado com o valor <final>. Se <var> for maior que <final>, então o comando composto não é executado e a execução do algoritmo prossegue pelo primeiro comando seguinte ao Fimpara. Por outro lado, se valor de <var> for menor ou igual a <final>, então o comando composto interior da construção e executado e, ao final do mesmo, o valor e adicionada variável <var>. Feito isso, retorna-se a comparação entre <var> e <final> repete-se o processo até que <var> tenha um valor maior que <final>, quando o laço é finalizado e a execução do algoritmo prossegue pela instrução imediatamente seguinte ao Fimpara.

Algumas observações interessantes devem ser feitas: <var> é necessariamente uma variável do tipo inteiro, uma vez que

seu valor é alterado a cada iteração (volta do laço); <Início>, <fim> e <inc> podem ser constantes ou variáveis. <inc> é o valor que é adicionado a variável <var> ao final de cada

iteração do laço. Há linguagens de programação que permitem que seja atribuído um valor negativo, de modo que o valor da variável <var> diminui a cada iteração. Neste caso, deve-se atentar à necessidade de inversão do sinal da comparação (de > para <) que e feito cada volta do laço, pare seu correto funcionamento.

42

Page 43: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

Na grande maioria dos casos <inc> tem o valor 1 (incremento unitário). Portanto, admite-se a omissão do trecho incr de <inc> da sintaxe do comando Para e, quando isto ocorre, assume-se um incremento de 1.

12.1.1. Exemplos

1) Ler um valor e listar os números a partir de um.

Algoritmo UmVar

A, I : InteiroInicio

Escreva “Digite um valor”Leia APara i de 1 até A faça

Escreva IFimPara

Fim.

2) Somar os números de um até um limite informado pelo usuário.

Algoritmo DoisVar

A, I, Soma : InteiroInicio

Escreva ”Digite um valor”Leia ASoma0Para I de 1 até A faça

Soma soma + IFimParaEscreva Soma

Fim.

3) Somar uma quantidade de números, informada pelo usuário, lidos pelo teclado.

Algoritmo TresVar

A, I, Soma : InteiroInicio

Soma0Para I de 1 até 10 faça

Escreva ”Digite um valor”Leia ASoma soma + A

FimParaEscreva Soma

Fim.

43

Page 44: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

4) Ler 10 números e somar os que são pares.

Algoritmo QuatroVar

A, I, Soma : InteiroInicio

Soma0Para I de 1 até 10 faça

Escreva ”Digite um valor”Leia ASe (A resto 2 ) = 0 então

Soma soma + AFimSe

FimParaEscreva Soma

Fim.

5) Ler um valor N e calcular:

Algoritmo CincoVar

N, I, Soma : InteiroInicio

Soma0Escreva ”Digite um valor”Leia NPara I de 1 até N faça

Soma soma + ( 1 / I )FimParaEscreva Soma

Fim.

6) Ler um valor N e calcular

Algoritmo SeisVar

N, I, Soma : InteiroInicio

Soma0Escreva ”Digite um valor”Leia NPara I de 1 até N faça

Se (I Resto 2) = 0 então Soma soma - ( 1 / I )

Senão Soma soma + ( 1 / I )

FimSeFimPara

44

Page 45: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

Escreva SomaFim.

7) Ler nome e idade de 10 pessoas e informar o mais velho deles.

Algoritmo SeteVar

I, Idade, Maior : InteiroNome, NomeMaior: Literal

InicioMaior0Para I de 1 até 10 faça

Escreva ”Digite o nome”Leia NomeEscreva ”Digite a idade”Leia IdadeSe Idade > Maior então

NomeMaior NomeMaior Idade

FimSeFimParaEscreva ”Mais Velho ”, NomeMaiorEscreva ”Idade mais velho ”,Maior

Fim.

12.1.2. Exercícios

1) Faça um algoritmo/programa que calcule: Y = 1 + 2 + 3 + 4 + 5 + ... + 1000.

2) Faça um algoritmo/programa que calcule: Y = 1 + 3 + 5 + 7 + 9 + ...+ 999.

3) Peça para o usuário digitar um número inteiro positivo qualquer, digamos N. Após calcule N!.

4) Peça para o usuário digitar dois valores inteiros positivos, digamos A e B. Após calcule “A elevado ao expoente B”.

5) Calcule Y na formula abaixo.

Y = 2 - 4 + 6 - 8 + ...± N

6) Um cliente comprou em uma loja N mercadorias, das quais é conhecido: Preço e categoria. A categoria possibilita um desconto especial de acordo com a seguinte tabela:

a) Categoria A: desconto de 5% no preço da mercadoria

b) Categoria B: desconto de 10% no preço da mercadoria

c) Categoria C: desconto de 15% no preço da mercadoria

Faça um algoritmo que mostre ao final o valor total desta compra.

7) Uma empresa possui N vendedores que ganham por comissão sobre cada produto vendido. Cada vendedor em um determinado mês vendeu X

45

Page 46: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

produtos, onde cada produto tem preço e quantidade. A empresa deseja obter um relatório com o Nome, o total de vendas e o valor a ser pago a cada vendedor. A comissão paga pela empresa é de 30% sobre o valor de cada produto vendido.

8) Dado um número indeterminado de palavras, sendo que cada palavra possui um tamanho indeterminado, o qual deverá ser lido pelo teclado, faça um algoritmo/programa que mostre a palavra informa de forma inversa.

9) Uma sala de aula possui N alunos, dos quais é conhecido: Nome, cidade onde mora e idade. Faça um algoritmo/programa que imprima:

a) A quantidade de alunos que residem em TUBARÃO

b) A quantidade de alunos que residem em CRICIUMA

c) A quantidade de alunos que possuem idade inferior a 17 anos

d) O nome dos alunos que morem em JAGUARUNA e que tenha idade entre 10 e 15 anos

10)Uma empresa possui N funcionários dos quais são conhecidos seus nomes e idades. Faça um algoritmo/programa que imprima o nome e a idade da pessoa mais idosa e a mais nova. Considere que não existem pessoas com idades iguais.

11)Uma empresa possui uma série de N funcionários, dos quais é conhecido: Nome, Idade e Sexo. Faça um algoritmo/programa que imprima:

a) O nome e idade do homem mais jovem;

b) O nome e idade da mulher mais idosa;

c) O percentual de homens, em relação ao total de funcionários, existentes na fábrica.

d) O percentual de mulheres, em relação ao total de funcionários, existentes na fábrica.

12)Faça um algoritmo/programa para cada formula a seguir:

a)

b)

c)

d) Y = 1 + (2 – 3) + 4 + (5 – 6) + 7 + (8 – 9) + ...

e)

46

Page 47: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

12.2. Laços Condicionais

Laços condicionais são aqueles cujo conjunto de comandos em seu interior e executado ate que uma determinada condição seja satisfeita. Ao contrário do que acontece nos laços contados, nos laços condicionais não se sabe de antemão quantas vezes o corpo do laço será executado.

As construções que implementam laços condicionais mais comuns nas linguagens de programação modernas são:

Enquanto Repita

12.2.1. Enquanto

Sua semântica é a seguinte: ao Início da construção Enquanto a condição é testada. Se seu resultado for falso, então o comando composto no seu interior não e executado e a execução prossegue normalmente pela instrução seguinte ao Fimenquanto.

Se a condição for verdadeira o comando composto é executado e ao seu término retorna-se ao teste da condição. Assim, o processo acima será repetido enquanto a condição testada for verdadeira. Quando for falsa, o fluxo de execução prosseguirá normalmente pelas instruções posteriores ao Fimenquanto.

Enquanto <condição> Faça<comando composto>

Fimenquanto

Uma vez dentro do corpo do laço, a execução somente abandonará o mesmo quando a condição for falsa. O usuário deste tipo de construção deve estar atento a necessidade de que em algum momento a condição deverá ser avaliada como falsa. Caso contrário, o programa permanecerá indefinidamente no interior do laço, o que e conhecido como Laço infinito ou Looping.

12.2.2. Exemplos

1) Ler uma quantidade indeterminada de números e ao final mostrar o somatório.

Algoritmo umVar

op: literalnum, soma: real

InicioSoma 0Op “s”Enquanto (op = “S”) .ou. (op = “s”) faça

Escreva “informe o numero para calculo”Leia numSoma soma + numEscreva “deseja continuar? (s/n) “Leia op

Fimenquanto

47

Page 48: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

Escreva somafim

2) Ler vários números para calcular o fatorial.

Algoritmo doisVar

op: literalI, tot: inteiro

InicioOp“s”Enquanto (op = “S”) .ou. (op = “s”) faça

Escreva “informe o numero para calculo”Leia numTot1Para i de 1 até num faça

Tot tot * iFimparaEscreva totEscreva “deseja continuar? (s/n)”Leia op

FimenquantoFim

3) Calcular a área de 50 triângulos de tamanhos diferentes.

Algoritmo tresVar

base, altura, area: realQuant: inteiro

InicioQuant 1Enquanto quant < 50 faça

Escreva “leia a base”Leia baseEscreva “leia a altura”Leia alturaÁrea base * alturaEscreva quant,”º triângulo “,áreaQuant quant + 1

FimenquantoFim

4) Calcular uma quantidade de números seqüenciais iniciados por 1 até que o somatório seja igual ou superior a 200.

48

Page 49: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

Algoritmo quatroVar

Soma, num: inteiroInicio

Soma 0Num 1Enquanto soma < 200 faça

Soma soma + numNum num + 1

FimenquantoEscreva somaEscreva num

Fim

5) Calcular o total de uma compra de uma quantidade indeterminada de produtos.

Algoritmo cincoVar

Op: literalValor, quant, tot: real

InicioOp “s”Tot 0Enquanto (op = “S”) .ou. (op = “s”) faça

Escreva “valor produto”Leia valorEscreva “quant produto”Leia quantTot tot + valor * quantEscreva “deseja continuar? (s/n) “Leia op

FimenquantoEscreva tot

Fim

12.2.3. Exercícios

1) Faça um algoritmo/programa para ler o Nome, idade e sexo de um número indeterminado de alunos. Ao final escreva o total de alunos lidos.

2) Faça um algoritmo/programa para somar os restos da divisão por 3 de 200 números.

3) Faça um algoritmo/programa para calcular a área de N quadriláteros. Fórmula: Área = Lado * Lado.

4) Faça um algoritmo/programa para calcular a área de N Círculos. Fórmula: Área = * raio * 2, sendo = 3,141592.

5) Faça um algoritmo/programa para ler N números inteiros e ao final escrever sua média.

49

Page 50: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

6) Uma empresa que possui X funcionários precisa saber a média de seus salários. Faça um algoritmo/programa para ler a quantidade de funcionários e o salário de cada um e escrever a média dos salários.

7) Faça um algoritmo/programa para:

a. Leia um valor X e um valor N.

b. Calcular: Y = 2X - 4X + 6X - 8X + 10X - … NX.

8) Faça um algoritmo/programa para ler um valor X e um Valor N. Após, calcule a seguinte expressão:

9) Fazer um algoritmo/programa que calcule escreva o valor de S onde:

10)Fazer um algoritmo/programa que calcule escreva o valor de S onde:

12.3. Repita

A estrutura de repetição Repita funciona semelhante à estrutura Enquanto, a diferença entre elas é a posição do teste lógico na estrutura, na estrutura Enquanto o teste lógico era logo no inicio, onde dependendo da situação o conteúdo do laço poderia não ser executado. Já na estrutura Repita o teste é realizado no final do laço, sendo que pelo menos uma vez o conteúdo será executado.

Repita <comando composto>

Enquanto <condição>

12.3.1. Exemplos

1) Ler uma quantidade indeterminada de números e ao final mostrar o somatório.

Algoritmo umVar

op: literalnum, soma: real

InicioSoma 0Repita

Escreva “informe o numero para calculo”Leia numSoma soma + numEscreva “deseja continuar? (s/n) “

50

Page 51: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

Leia opEnquanto (op = “S”) .ou. (op = “s”)Escreva soma

Fim

2) Ler vários números para calcular o fatorial.

Algoritmo doisVar

op: literalI, tot: inteiro

InicioRepita

Escreva “informe o numero para calculo”Leia numTot1Para i de 1 até num faça

Tot tot * iFimparaEscreva totEscreva “deseja continuar? (s/n)”Leia op

Enquanto (op = “S”) .ou. (op = “s”)Fim

3) Calcular a área de 50 triângulos de tamanhos diferentes.

Algoritmo tresVar

base, altura, area: realQuant: inteiro

InicioQuant 0Repita

Escreva “leia a base”Leia baseEscreva “leia a altura”Leia alturaÁrea base * alturaEscreva quant,”º triângulo “,áreaQuant quant + 1

Enquanto quant < 50 façaFim

12.3.2. Exercícios

Como forma de exercitar a estrutura de repetição Repita resolva novamente a lista de exercícios anterior (estrutura Enquanto).

51

Page 52: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

13. Cartão BandeiraPara melhor compreensão desta técnica mostramos primeiro o exemplo a

seguir já mostrado em capítulos anteriores:

Algoritmo cincoVar

Op: literalValor, quant, tot: real

InicioOp “s”Tot 0Enquanto (op = “S”) .ou. (op = “s”) faça

Escreva “valor produto”Leia valorEscreva “quant produto”Leia quantTot tot + valor * quantEscreva “deseja continuar? (s/n) “Leia op

FimenquantoEscreva tot

Fim

Nesta forma de trabalho além das informações pedidas pelo sistema (valor e quantidade) é necessária uma outra, a opção do usuário. Na utilização do cartão bandeira essa terceira não é necessária, mas sim uma das informações do sistema será trabalhado em um teste lógico. Para refazermos novamente o exemplo acima, primeiro devemos saber em que ordem os dados serão pedidos pelo usuário, no nosso caso primeiro valor depois quantidade, assim utilizaremos o valor no cartão bandeira. Sendo assim, o exemplo passara ficara da seguinte forma:

Algoritmo cincoVar

Op: literalValor, quant, tot: real

InicioTot 0Escreva “valor produto”Leia valorEnquanto (valor>=0) faça

Escreva “quant produto”Leia quantTot tot + valor * quantEscreva “valor produto”Leia valor

FimenquantoEscreva tot

Fim

52

Page 53: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

Na execução do algoritmo acima a informação “valor do produto” é pedida ao usuário por duas vezes, pois no momento que for digitado um valor negativo para a variável é sinal de que não existe mais nenhuma informação a ser digitada.

13.1. Exercícios

1) Dado um número indeterminado de funcionários, onde são fornecidos o Nome, número de dependentes e o número de horas trabalhadas. Pede-se que seja impresso, para cada funcionário, o seu Nome, salário bruto, salário líquido e o valor descontado. A empresa, paga R$ 25,00 por hora de trabalho, e R$ 125,55 por dependente, e ainda faz um desconto de 12% sobre o salário bruto. Pede-se ainda que seja impresso o total de funcionários da empresa, o total gasto com salários, e o total descontado. Utilize cartão bandeira.

2) Escreva um algoritmo/programa para calcular o reajuste salarial de uma empresa que possui vários funcionários (Utilize cartão bandeira), de acordo com os seguintes critérios:

Os funcionários com salário inferior a 1.000,00 devem ter um reajuste de 40%;

Os funcionários com salário entre 1.000,00 (inclusive) e 3.000,00 (inclusive) devem ter um reajuste de 30%;

Os funcionários com salário superior a 3.000,00 devem ter um reajuste de 20%.

3) Dado uma relação de N alunos (Utilize cartão bandeira), cada um possuindo a mesma quantidade Q de notas, faça um algoritmo/programa que mostre:

a) Nome e média dos alunos

b) Quantidade de alunos aprovados (média para aprovação: >= 7.0)

c) Quantidade de alunos reprovados (média para reprovação: <= 2.0)

d) Quantidade de alunos em recuperação (média de recuperação: 2 < média < 7.0)

4) Uma empresa possui uma série de N funcionários (Utilize cartão bandeira), dos quais é conhecido: Nome, Idade e Sexo. Faça um algoritmo/programa que imprima:

a) A média da idade dos homens;

b) A média da idade das mulheres;

c) A média da idade das pessoas com mais de 18 anos;

53

Page 54: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

14. Trabalhando com literaisEm algoritmo não temos nenhum comando que nos informe a quantidade de

caracteres existentes em um literal, o que pode tornar alguns problemas sem uma possível solução. Para a resolução deste problema utilizamos um método que ajuda bastante, que é a colocação de um “$” ao final deste literal, assim poderemos fazer a análise caracter a caractere e quando for encontrado o “$” é porque chegamos ao final.

14.1.1. Exemplos

1) Dado uma seqüência de caracteres qualquer (digitada pelo usuário) terminada pelo caractere “$”, faça um algoritmo que retire qualquer ocorrência de vogais.

Algoritmo umVar

P, P1: literalQ: Inteiro

InicioEscreva “Palavra: ”Leia PPP+’$’P1””Q0Enquanto (P[Q]<>’$’) faça

Se P[Q] <>’A’ .e. P[Q] <>’E’ .e. P[Q] <>’I’ .e. P[Q] <>’O’ .e. P[Q] <>’U’ .e. P[Q] <>’a’ .e. P[Q] <>’e’ .e. P[Q] <>’i’ .e. P[Q] <>’o’ .e. P[Q] <>’u’ então

P1P1+P[Q]FimSeQQ +1

FimenquantoEscreva P1

Fim2) Dado uma seqüência de caracteres qualquer terminada pelo caracter “$”

(imagine que o usuário digitou este caractere), faça um algoritmo/programa que imprima no vídeo a quantidade de caracteres existentes, excetuando-se o caracter “$”.

Algoritmo umVar

P: literalQ: Inteiro

InicioEscreva “Palavra: ”Leia PPP+’$’Q0Enquanto (P[Q]<>’$’) faça

54

Page 55: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

QQ +1FimenquantoEscreva P1

Fim

14.2. Exercícios

1) Dado uma quantidade indeterminada de palavras, sendo que as mesmas sempre terminam com o caractere “$”, escreva o tamanho de cada uma das mesmas (o sinal de “$” não deve ser considerado na contagem).

2) Dado uma seqüência de caracteres qualquer terminada pelo caracter “$” (imagine que o usuário digitou este caracter), faça um algoritmo/programa que copie uma determinada quantidade Q de caracteres desta seqüência de caracteres. Imagine que a cópia inicie pelo 1º caracter da seqüência de caracteres.

3) Dado uma seqüência de caracteres qualquer terminada pelo caracter “$” (imagine que o usuário digitou este caractere), faça um algoritmo/programa que transforme todos os caracteres da seqüência de caracteres para maiúsculo.

4) Dado uma seqüência de caracteres qualquer terminada pelo caracter “$” (imagine que o usuário digitou este caractere), faça um algoritmo/programa que mostre no vídeo uma mensagem informando ao usuário se a palavra digitada é palíndrome ou não. Obs; uma palavra é palíndrome quando lida de trás para frente fica igual a original, exemplos: ASA, MIRIM.

5) Dado uma seqüência de caracteres qualquer terminada pelo caracter “$” (imagine que o usuário digitou este caracter), faça um algoritmo/programa que imprima no vídeo a quantidade de vogais existentes.

6) Dado uma seqüência de caracteres qualquer terminada pelo caracter “$” (imagine que o usuário digitou este caracter), faça um algoritmo/programa que retire qualquer ocorrência do caracter espaço em branco.

55

Page 56: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

Apêndice AApós construirmos, como poderemos garantir que ele está correto? Isso é

muito difícil de termos certeza, pois ainda não existe (pelo menos nunca ouvi falar) de uma espécie de “compilador” de algoritmos. Mas para termos uma idéia, o que podemos fazer é uma técnica chamada de Teste de Mesa.

O Teste de Mesa consiste em listarmos, em forma de uma tabela, todas as variáveis existentes no algoritmo uma ao lado da outra e abaixo dela irmos colocando os valores delas durante a execução “imaginária” do algoritmo. Ai pergunta-se: e as informações que são pedidas ao usuário? Para essas informações deveremos simular valores que foram digitados para o usuário.

Vamos a um exemplo simples:

1 Algoritmo EXEMPLO2 Var3 Preço_unit Preço_tot : real4 Quant : inteiro5 Início6 Escreva “Informe valor unitário: ”7 Leia Preço_unit8 Escreva “Quantidade: ”9 Leia Quant10 Preço_tot Preço_unit * Quant11 Escreva Preço_tot12 Fim.

Neste exemplo temos 3 variáveis que estão listadas a seguir:

Preço_unit Preço_tot Quant5 15 3

Na execução imaginaria que fizemos o seguinte:1- Aparece na tela a mensagem da linha 6;2- O usuário digita um valor pedido na linha 7, simulamos que o

valor tenha sido 5 conforme no exemplo;3- Aparece na tela a mensagem da linha 8;4- O usuário digita um valor pedido na linha 9, simulamos que o

valor tenha sido 3 conforme no exemplo;5- É feito o calculo da expressão da linha 10 com os valores

“informados” pelo usuário, onde o resultado é armazenado na variável indicada.

6- A parece a mensagem da linha 11 com a resposta, no nosso caso, pelos valores simulados, a resposta deverá ser 15.

Este exemplo apresentado é bem simples, vamos a um mais complexo:

1 Algoritmo cinco2 Var3 Valor, quant, tot: real4 Inicio

56

Page 57: UNISUL – Universidade do Sul de Santa Catarina file · Web viewUNISUL – Universidade do Sul de Santa Catarina

5 Tot 06 Escreva “valor produto”7 Leia valor8 Enquanto (valor>=0) faça9 Escreva “quant produto”10 Leia quant11 Tot tot + valor * quant12 Escreva “valor produto”13 Leia valor14 Fimenquanto15 Escreva tot16 Fim

Valor quant Tot5 3 02 2 153 1 19-1 22

Como neste exemplo as variáveis trocam de valores constantementes, os novos valores são colocado sempre abaixo e os outros deixam de existir. Lembrando que os valores das variáveis Valor e Quant são imaginariamente informadas pelo usuário nos dando como resposta o valor 22. Agora pense: em uma ação real onde façamos uma compra de 3 produtos com os preços e quantidades como acima, teremos um valor 22? Se a resposta for não, então seu algoritmo esta errado, caso contrario ele estará correto.

Outro detalhe que devemos considerar é que quando realizamos um Teste de Mesa aprendemos mais ainda a lógica de programação.

Portanto faça Teste de Mesa em seus algoritmos, além de poder ter mais certeza se ele esta correto você estará aprendendo mais ainda.

57