Você está na página 1de 25

Centro Universitário de Lins - Unilins

APOSTILA DE ALGORITMO E PROGRAMAÇÃO BÁSICA

Profª Cristiane Paschoali Prof. Hamilton Luiz de Souza

2010

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Sumário

Algoritmo e Lógica de Programação

4

Linguagens de Programação

4

Quanto ao paradigma

4

Quanto a estrutura de tipos

4

Quanto ao grau de abstração

5

Quanto à geração

5

Algoritmos

6

Descrição Narrativa

7

Fluxograma

7

Pseudocódigo

7

Exercício resolvido:

8

Exercícios Propostos

9

Conceito de Variável

9

Formação de Identificadores

9

Estrutura Sequencial

11

Tipos de Variáveis

12

Comandos de Entrada e Saída

13

Operadores e Funções

14

Exercícios

Propostos

16

Estrutura Condicional

16

Exercício Resolvido

18

Exercícios Propostos

18

Estrutura de Repetição

19

Estrutura de Repetição com Número Definido de Repetições – Para

19

Exercícios

Resolvidos

20

Exercícios

Propostos

21

Estrutura de Repetição com Número Indefinido de Repetições – Enquanto

22

Exercício Resolvido

23

Exercícios Propostos

24

Referências Bibliográficas

25

Índice de ilustrações

Ilustração 1: Exemplo de fluxograma

8

Ilustração 2: Resolução com fluxograma

10

Índice de tabelas

Tabela 1: Conjunto de símbolos utilizados no fluxograma

7

Tabela 2: Tipos de variáveis em Algoritmo e em Pascal

12

Tabela 3: Palavras reservadas em Algoritmo e em Pascal

13

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Tabela 4: Tabela de operadores para cálculos matemáticos

14

Tabela 5: Tabela de operadores comparativos

14

Tabela 6: Funções matemáticas em Pascal

15

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Algoritmo e Lógica de Programação

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

Linguagens de Programação

Uma linguagem de programação é um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador (WIKIPEDIA, 2010). O conjunto de palavras (tokens), composto de acordo com essas regras, constituem o código fonte de um software.

Linguagens de programação são importantes para que programadores e engenheiros de software possam escrever programas mais organizados e com maior rapidez. Elas também tornam os programas menos dependentes de computadores ou ambientes computacionais específicos. Isso porque os programas escritos podem ser traduzidos para o código de máquina do computador ou do ambiente específico onde será executado.

As linguagens podem ser classificadas quanto à várias características. Logo abaixo ve-se alguns exemplos (Wikipedia, 2010).

Quanto ao paradigma

Diferentes linguagens de programação podem ser agrupadas segundo o paradigma que seguem para abordar a sua sintaxe:

Linguagem funcional

Linguagem natural

Programação lógica

Programação imperativa

Programação estruturada

Linguagem orientada a objetos

Quanto a estrutura de tipos

Fracamente tipada, como Smalltalk, onde o tipo da variável muda dinamicamente conforme a situação.

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Fortemente tipada, como Java, Ruby, onde o tipo da variável, uma vez atribuído, se mantém o mesmo até ser descartada da memória.

Dinamicamente tipada, como Perl, Python ou Ruby, onde o tipo da variável é definido em tempo de execução.

Estaticamente tipada, como Java e C, onde o tipo da variável é definido em tempo de compilação.

Quanto ao grau de abstração

Linguagem de programação de baixo nível, cujos símbolos são uma representação direta do código de máquina que será gerado, onde cada comando da linguagem equivale a um "opcode" do processador, como Assembly.

Linguagem de programação de médio nível, que possui símbolos que podem ser convertidos diretamente para código de máquina (goto, expressões matemáticas, atribuição de variáveis), mas também símbolos complexos que são convertidos por um compilador. Exemplo: C, C++.

Linguagem de programação de alto nível, composta de símbolos mais complexos, inteligível pelo ser humano e não-executável diretamente pela máquina, no nível da especificação de algoritmos, como Pascal, Fortran, ALGOL e SQL.

Quanto à geração

Primeira geração, as linguagens de baixo nível (Assembly)

Segunda geração, as primeiras linguagens (Fortran, ALGOL,

Terceira geração, as procedurais e estruturadas (Pascal, C).

Quarta geração, linguagens que geram programas em outras linguagens (Java, C++), linguagens de consulta (SQL).

Quinta geração, linguagens lógicas (Prolog).

)

As etapas para o desenvolvimento de um programa são (ASCENCIO & CAMPOS,

2008):

1. Análise – Nesta etapa, estuda-se o enunciado do problema para definir os dados de entrada, o processamento e os dados de saída.

2. Algoritmo – Ferramentas do tipo descrição narrativa, fluxograma ou português estruturado são utilizadas para descrever o problema com suas soluções.

3. Codificação – O algoritmo é transformado em códigos da linguagem de programação escolhida para se trabalhar.

Portanto, um programa é a codificação de um algoritmo em uma linguagem de programação (ASCENCIO, 1999).

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Para que se desenvolva esses programas, é necessário usar o que se chama lógica de programação. Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.

Algoritmos

A ferramenta que auxilia a lógica de programação na resolução dos problemas são os algoritmos. A palavra algoritmo pode ter várias definições, entre elas:

Algoritmo é uma sequência de passos que visa atingir um objetivo bem definido. (FORBELLONE, 1999)

Algoritmo é a descrição de uma sequência de passos que deve ser seguida para a realização de uma tarefa. (ASCENCIO, 1999)

Algoritmo é uma sequência finita de instruções ou operações cuja execução, em tempo finito, resolve um problema computacional, qualquer que seja sua instância. (SALVETTI, 1999)

Analisando as definições, podemos concluir que algoritmos não são somente utilizados em problemas computacionais, mas podem ser aplicados a qualquer situação do dia a dia. No exemplo abaixo, vê-se um algoritmo para a troca de uma lâmpada. Algoritmo Trocar Lâmpada

1. Pegar uma lâmpada nova.

2. Pegar uma escada.

3. Posicionar a escada embaixo da lâmpada queimada.

4. Subir na escada com a lâmpada nova na mão.

5. Retirar a lâmpada queimada.

6. Colocar a lâmpada nova.

7. Descer da escada.

8. Testar o interruptor.

9. Guardar a escada.

10. Jogar a lâmpada velha no lixo.

Assim como as várias atividades podem ser realizadas de formas diferentes, também não existe somente um algoritmo correto. Algoritmos diferentes, desde que resolvam o problema proposto, estão corretos.

Para se construir um algoritmo, alguns passos são importantes. São eles:

Compreender o problema a ser resolvido.

Definir os dados de entrada, quais destes dados serão fornecidos e quais já fazem parte do cenário.

Definir os processamentos necessários para se resolver o problema. O processamento transforma os dados de entrada nos dados de saída.

Definir os dados de saída, ou seja, quais informações precisarão ser mostradas.

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Construir o algoritmo, utilizando uma das formas disponíveis (serão mostradas mais adiante).

Testar o algoritmo utilizando simulações.

Vale destacar que os algoritmos devem ser genéricos para o problema proposto, não importando quais serão os dados de entrada fornecidos.

Os três tipos de algoritmos mais utilizados são: descrição narrativa, fluxograma e pseudocódigo. Logo abaixo estão as características de cada um.

Descrição Narrativa

Consiste em analisar o enunciado do problema e escrever, utilizando uma linguagem natural, os passos a serem seguidos para sua resolução. Uma vantagem deste tipo de algoritmo é sua facilidade, pois não há necessidade de novos conhecimentos para empregá- lo. Uma desvantagem é a abertura para várias interpretações que a linguagem natural proporciona.

Fluxograma

Consiste em analisar o enunciado do problema e escrever, utilizando símbolos gráficos definidos, os passos para a solução do problema. Uma vantagem é a simplicidade que os elementos gráficos proporcionam para o entendimento. Uma desvantagem é a necessidade de aprender a simbologia do fluxograma. Para conhecimento da simbologia, vide tabela 1.

Pseudocódigo

Consiste em analisar o problema e escrever, por meio de regras predefinidas, os passos a serem seguidos para a resolução. Uma vantagem é a facilidade de transcrição para a linguagem de programação, bastando conhecer as palavras reservadas da linguagem a ser utilizadas. Uma desvantagem é a necessidade de aprender as regras do pseudocódigo.

Tabela 1: Conjunto de símbolos utilizados no fluxograma

Símbolo

Significado

 

Símbolo utilizado para indicar o início e o fim do algoritmo.

Permite indicar o sentido do fluxo de dados. Serve exclusivamente para conectar os símbolos ou

Permite indicar o sentido do fluxo de dados. Serve exclusivamente para conectar os símbolos ou blocos existentes.

 

Símbolo utilizado para indicar cálculos e atribuições de valores.

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Símbolo

Significado

Símbolo utilizado para representar a entrada de dados.

Símbolo utilizado para representar a entrada de dados.

 

Símbolo utilizado para representar a saída de dados.

Símbolo utilizado para indicar que deve ser tomada uma decisão, apontando a possibilidade de desvios.

Símbolo utilizado para indicar que deve ser tomada uma decisão, apontando a possibilidade de desvios.

Exercício resolvido:

Faça um algoritmo para mostrar o resultado da multiplicação de dois números.

Solução com descrição narrativa:

1. Obter os dois números que serão multiplicados

2. Multiplicar os números.

3. Mostrar o resultado obtido na multiplicação.

Solução em algoritmo:

Início

N1, N2
N1, N2

M = N1 * N2

Solução em algoritmo : Início N1, N2 M = N1 * N2 M Ilustração 1: Exemplo

M

Ilustração 1: Exemplo de fluxograma

Solução em pseudocódigo:

Algoritmo multiplicação Declaração de variáveis

Início

Real

N1, N2, M

Declaração de variáveis Início Real N1, N2, M Fim Escrever “Digite os números a serem multiplicados”

Fim

Escrever “Digite os números a serem multiplicados” Leia N1, N2

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

M ← N1 * N2 Escrever M

Fim

Exercícios Propostos

a) Faça um algoritmo que calcule a média aritmética de um aluno, dadas as notas de trabalho e de prova de um determinado bimestre.

b) Faça um algoritmo que receba dois números e mostre as quatro operações básicas (soma, subtração, multiplicação e divisão) realizadas com eles.

Conceito de Variável

Os algoritmos e programas recebem dados que precisam ser armazenados para posteriormente poderem ser processados. Esse armazenamento é feito na memória do computador, quando os algoritmos se transformam em programas. Dessa forma, uma variável é uma posição (ou endereço) de memória do computador. Possui um tipo e um nome, podendo o seu conteúdo variar ao longo da execução do programa. Embora uma variável possa assumir vários valores ao longo da execução do algoritmo ou programa, ela só pode armazenar um único valor em determinado instante. Os tipos de dados mais comuns são:

Numéricos – Dividem-se em dois grupos: reais e inteiros. Os inteiros podem ser positivos ou negativos e não possuem parte decimal. Os reais podem ser positivos ou negativos e possuem parte decimal. Exemplo de números inteiros: 3 -45 98 -423 34 -9 Exemplo de números reais: 45,2 -90,56 158,26 -324,8

Literais ou caracteres – São dados formados por um único caractere ou por uma cadeia de caracteres. Podem ser letras (maiúsculas ou minúsculas), caracteres especiais (* & % $ # @ ? ,) ou números (que, nesse caso, não podem ser utilizados para operações matemáticas).

Lógicos – Também são chamados de booleanos e só podem assumir um de dois valores: verdadeiro ou falso.

Formação de Identificadores

Identificadores são nomes de variáveis, dos programas, das constantes, das rotinas, etc. Existem algumas regras básicas para criação desses nomes devem ser seguidas, principalmente quando estivermos lidando com a linguagem de programação Pascal, para evitar problemas.

Os caracteres que podem ser utilizados são: letras maiúsculas e minúsculas, números

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

e underline.

O

primeiro caractere do nome não pode ser um número, deve ser uma letra.

Não podem ser utilizados espaços em branco e caracteres especiais.

Não podem ser utilizadas palavras reservadas da linguagem utilizada.

O

nome do programa não poder ter o mesmo nome de qualquer variável utilizada.

Pensando na resolução dos algoritmos voltados para posterior implementação em

Pascal, estamos pensando em soluções de problemas seguindo o paradigma estruturado, ou imperativo. Para soluções deste tipo, é necessário detalhar as ações para se chegar à resposta necessária.

A seguir vemos como calcular a área e o perímetro de um retângulo seguindo esses

passos.

1. Obter o valor da altura do retângulo.

2. Obter o valor da largura do retângulo.

3. Calcular a área.

4. Calcular o perímetro.

5. Mostrar os cálculos realizados.

Em fluxograma:

Início

Alt, Lar
Alt, Lar

Area = Alt * Lar

realizados. Em fluxograma: Início Alt, Lar Area = Alt * Lar Per = 2*Alt + 2*Lar

Per = 2*Alt +

2*Lar

Início Alt, Lar Area = Alt * Lar Per = 2*Alt + 2*Lar Area,Per Ilustração 2:

Area,Per

Início Alt, Lar Area = Alt * Lar Per = 2*Alt + 2*Lar Area,Per Ilustração 2:

Ilustração 2: Resolução com fluxograma

Fim

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Em algoritmo:

Algoritmo Retângulo Declaração de variáveis

Início

Real

Alt,Lar,Area,Per

Escrever “A altura e a largura do retângulo” Leia Alt,Lar Area ← Alt*Lar Per ← 2*Alt + 2*Lar Escrever Area,Per

Fim

Estrutura Sequencial

Pelo paradigma estruturado, qualquer problema pode ser resolvido utilizando três estruturas: sequencial, condicional e iterativa (repetição). Na estrutura sequencial, os passos para a resolução do problema são executados em sua integridade, um por um, sequencialmente. A estrutura sequencial em algoritmo segue o seguinte formato:

Algoritmo nome Declaração de Variáveis variáveis Início Bloco de instru ções

Fim

Em Pascal essa estrutura se transforma em:

Program nome; Var

variáveis; Begin Bloco de instru ções;

End.

Comando de atribuição

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

O comando de atribuição é utilizado para conceder valores ou operações a variáveis,

sendo representado pelo símbolo em algoritmos e por := em Pascal. Exemplos de atribuição:

x 4*2

x :=

y “aula”

x + 2

y := 'resposta'

Tipos de Variáveis

Os tipos de variáveis mais utilizados são: Inteiro, Real, Caractere, Cadeia de Caracteres e Lógicos para algoritmos. Em Pascal estes tipos ficam, respectivamente: Integer, Real, Char, String e Boolean.

A tabela 2 mostra quais os tamanhos e faixa de valores dessas e de outras variáveis.

Tabela 2: Tipos de variáveis em Algoritmo e em Pascal

Algoritmo

Pascal

Faixa de Valores

 

Tamanho (aprox)

Inteiro

Integer

-32.768 a 32.767

 

16

bits

 

Real

Real

2,9x10 -39 a 1,7x10 38 (11 a 12 dígitos com sinal)

6 bytes

 

Caractere

Char

1 caractere qualquer

 

1 byte

 

Cadeia

de

String

Cadeia

de

caracteres

(no

Tantos

quantos forem os caracteres

bytes

Caracteres

máximo 255)

 

Lógico

Boolean

Falso ou Verdadeiro. True ou False.

8

bits

 

Shortint

-128 a 127

 

8

bits

   

-2.147.483.648

 

a

 

Longint

2.147.483.647

 

32

bits

 
 

Double

5,0x10 -324 a 1,7x10 308 (15 a 16 dígitos com sinal)

8

bytes

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

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Tabela 3: Palavras reservadas em Algoritmo e em Pascal

Algoritmo

Pascal

Algoritmo

Program

Declaração de Variáveis

Var

Início

Begin

Fim

End

.E.

And

.OU.

Or

Se

If

Então

Then

Senão

Else

Para

For

Enquanto

While

Ler

Read

Escrever

Write

 

Do

 

To

 

Not

 

File

 

Object

 

Label

 

Repeat

Comandos de Entrada e Saída

O comando de entrada é utilizado para receber dados digitados pelo usuário, sendo armazenados em variáveis. Em Algoritmo utiliza-se o comando Ler e em Pascal Read. O comando de saída é utilizado para mostrar os dados na tela ou na impressora. Em Algoritmo usa-se o comando Escrever e em Pascal Write.

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Operadores e Funções

Existem vários operadores e funções predefinidas destinados a cálculos matemáticos, mostrados nas tabelas 4, 5 e 6.

Tabela 4: Tabela de operadores para cálculos matemáticos

Op. em Algoritmo

Op. em Pascal

 

Exemplo e comentário

:=

y ou x := y (o conteúdo da variável y é atribuído para a variável x)

x

+

+

x

+ y (Soma o conteúdo de x e de y)

   

x

y (Subtrai o conteúdo de y do

-

-

conteúdo de x)

*

*

* y (Multiplica o conteúdo de x pelo conteúdo de y)

x

/

/

/ y (Obtém o quociente da divisão de x por y)

x

Resto

mod

Resto(x,y) ou x mod y (Obtém o resto da divisão de x por y)

Divide

div

Divide(x,y) ou x div y (Obtém o quociente inteiro da divisão de x por y)

Observações:

a) Os operadores div e mod só podem ser aplicados com operandos do tipo inteiro.

b) O operador / sempre conduz a um resultado real.

c) Com os operadores +, - e *, se pelo menos um dos operandos for real, então o resultado também será real.

Tabela 5: Tabela de operadores comparativos

Op. em Algoritmo

Op. em Pascal

 

Exemplo e comentário

=

=

= y (Compara se o conteúdo de x é igual ao conteúdo de y)

x

   

x

y ou x

<>

y (Compara se o

<>

conteúdo de x é diferente do conteúdo de y)

   

x

y ou x

<=

y (Compara se o

<=

conteúdo de x é menor ou igual ao conteúdo de y)

   

x

y ou x

>=

y (Compara se o

>=

conteúdo de x é maior ou igual ao conteúdo de y)

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

<

<

< y (Compara se o conteúdo de x é menor do que o conteúdo de y)

x

>

>

> y (Compara se o conteúdo de x é maior do que o conteúdo de y)

x

 

Funções Matemáticas

 

Função

Exemplo

 

Comentário

 

abs

abx(x)

Obtém o valor absoluto de x.

 

log

log(x)

Obtém o logaritmo natural de x.

 
 

trunc(x)

Obtém a parte inteira do número real armazenado em

trunc

x.

frac

frac(x)

Obtém a parte fracionária do número real armazenado em x.

round

round(x)

Arredonda x.

 

sin

sin(x)

Calcula o seno de x (x deve ser passado em radianos)

 

cos(x)

Calcula

o

co-seno

de

x

(x deve

ser passado em

cos

radianos)

 

pi

pi

Retorna o valor de π.

 

sqrt

sqrt(x)

Calcula a raiz quadrada de x.

 

sqr

sqr(x)

Calcula x elevado ao quadrado.

 

inc

inc(x,y)

Incrementa a variável x com o valor da variável y.

dec

dec(x,y)

Decrementa a variável x com o valor da variável y.

Tabela 6: Funções matemáticas em Pascal

Observação:

Por não existir operador de potenciação, tem-se:

A B = Exp(B * Ln(A)) Exemplo: 5 10 = Exp(10 * Ln(5))

As prioridades entre operadores, incluindo as funções, são:

1. ( ) - parênteses

2. funções

3. * , / , div , mod

4. + , -

Quando se tem, em uma mesma expressão, vários operadores com a mesma prioridade, a expressão é resolvida da esquerda para a direita.

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Exercícios Propostos

(Obs.: os exercícios deverão ser resolvidos em fluxograma e algoritmo)

1) Faça um algoritmo que receba três notas e seus respectivos pesos, calcule e mostre a média ponderada dessas notas. 2) Faça um algoritmo que receba o salário de um funcionário, calcule e mostre o novo salário, sabendo que este sofreu um aumento de 25%. 3) Faça um algoritmo que receba o salário de um funcionário e o percentual de aumento, calcule e mostre o valor do aumento e o novo salário.

4) Faça um algoritmo que calcule e mostre a área de um círculo.

5) Faça um algoritmo que receba o valor de um depósito e o valor da taxa de juros, calcule e mostre o valor do rendimento e o valor total depois do rendimento. 6) Sabe-se que:

Área circulo = π*R 2

1 pé = 12 polegadas

1 jarda = 3 pés

1 milha = 1.760 jardas

Faça um algoritmo que receba uma medida em pés, vaça as conversões a seguir e mostre os resultados em polegadas, em jardas e em milhas. 7) Faça um algoritmo que receba o ano de nascimento de uma pessoa e o ano atual, calcule e mostre: a idade dessa pessoa e quantos anos ela terá em 2050.

8) Faça um programa que receba o número de horas trabalhadas e o valor do salário mínimo, calcule e mostre o salário a receber seguindo as seguintes regras:

- a hora trabalhada vale a metade do salário mínimo;

- o salário bruto equivale ao número de horas trabalhadas multiplicado pelo valor da hora trabalhada;

- o imposto equivale a 3% do salário bruto;

- o salário a receber equivale ao salário bruto menos o imposto.

Estrutura Condicional

A estrutura condicional modifica o curso das instruções, que deixam de ser sequenciais. A ideia dessa estrutura é executar uma entre duas instruções, dependendo do resultado de uma condição que só pode ter dois resultados: verdadeiro ou falso. A estrutura completa se compõem da seguinte forma:

SE condição ENTÃO

comando1

SENÃO

comando2

Tal estrutura deve ser entendida da seguinte forma: SE a condição a ser testada resultar em verdadeiro, ENTÃO o comando1 será executado. SENÃO, ou seja, se a condição resultar em falso, o comando2 será executado. Há casos em que se deseja executar

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

mais de um comando em uma, ou nas duas, situações. Neste caso, é necessário usar as instruções “Início – Fim” para delimitar o bloco de instruções a ser executado.

SE condição ENTÃO INÍCIO

comando1

comando2

comando3

FIM SENÃO INÍCIO

comando4

comando5

FIM

Também pode haver casos em que só será necessário executar algum comando quando a condição a ser testada for verdadeira. No caso dela resultar em falso, nada precisará ser feito. Neste caso, teremos a estrutura condicional incompleta, como exemplificado a seguir.

SE condição ENTÃO

comando1

ou

SE condição ENTÃO INÍCIO

comando1

comando2

comando3

FIM

No caso da condição a ser testada precisar ser formada por várias outras condições, o que se chama de condição composta, deve-se lembrar do uso dos operadores lógicos .E. e .OU. e a seguinte tabela verdade:

Tabela .E.

Tabela .OU.

V

e V = V

V

ou V = V

V

e F = F

V

ou F = V

F e V = F

F

ou V = V

F

e F = F

F ou F = F

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Exercício Resolvido

Fazer um algoritmo que determina e exibe se um número inteiro fornecido pelo usuário é igual a zero ou não.

Algoritmo Exemplo Declaração de Variáveis

Início

Inteiro

Num

Ler Num Se Num = 0 Então Escrever “Número igual a zero”

Senão

Escrever “Número diferente de zero”

Fim

Exercícios Propostos

1. Fazer um algoritmo que, dados os coeficientes e o termo independente de uma equação de segundo grau, determina e exibe suas raízes, se houver.

2. Fazer um algoritmo que receba as duas notas bimestrais, calcule a média aritmética e, caso a média seja igual ou maior a 6.0, exiba a mensagem “Aprovado”. Caso a média seja menor do que 6.0, a mensagem a ser exibida é “Reprovado”.

3. Fazer um algoritmo que receba três números diferentes e os exiba em ordem crescente.

4. Faça um algoritmo que receba três números e mostre o menor.

5. Faça um algoritmo que recebe um número e exibe uma mensagem dizendo se ele é par ou ímpar.

6. Fazer um algoritmo que calcule o novo salário do funcionário seguindo a seguinte regra: se o funcionário ganhar até R$ 1.000,00 o aumento será de 20%. Acima de R$ 1.000,00 o aumento será de 12%.

7. Fazer um algoritmo que recebe três valores e verifica se eles podem ser os lados de um triângulo. Obs.: o comprimento de cada lado de um triângulo é menor do que a soma dos outros dois lados.

8. Ainda considerando o exercício 6, caso os valores fornecidos possam ser os lados de um triângulo, exibir a mensagem se o triângulo é equilátero (possui os três lados iguais), isósceles (possui dois lados iguais) ou escaleno (possui os três lados diferentes).

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Estrutura de Repetição

A estrutura de repetição é utilizada quando uma série de instruções precisa ser repetida. Esta série de instruções pode abranger até mesmo o algoritmo todo. O número de repetições pode ter um número pré-fixado ou estar ligado a alguma condição. Dessa forma, existem duas estruturas de repetição para satisfazer a estas necessidades.

Estrutura de Repetição com Número Definido de Repetições – Para

Essa estrutura é usada quando se sabe, de antemão, qual será o número de vezes que as instruções precisarão ser repetidas. O formato da estrutura é:

PARA CONT ← ValorInicial ATÉ ValorFinal INÍCIO

Instrução1

Instrução2

Instrução3

FIM

As instruções 1, 2 e 3 serão repetidas levando em consideração o ValorInicial e o ValorFinal que são atribuídos à variável CONT. É a diferença entre eles que dirá o número de repetições que o laço irá executar. Caso só haja uma instrução a ser repetida, os comandos INÍCIO-FIM podem ser suprimidos. Logo abaixo, alguns exemplos de utilização.

Exemplo 1 PARA CONT ← 1 ATÉ 10 Escrever “Oi”

No Exemplo 1, a instrução 'Escrever “Oi”' será repetida 10 vezes, pois a variável de controle do laço (CONT), também chamada de contador do laço, assumirá valor inicial 1, que será incrementado de 1 em 1 até chegar ao valor 10, condição que fará com que o curso de instruções do algoritmo saia do laço e vá para a primeira instrução depois dele.

Exemplo 2 PARA CONT ← 1 ATÉ 5 INÍCIO qtde ← qtde + 1 x ← qtde * 5 FIM

Já no Exemplo 2, existem duas instruções que estão sendo repetidas. Este bloco de instruções será repetido 5 vezes, visto que o contador do laço assume valor inicial 1, indo

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

até 5. Neste caso, como há mais de uma instrução, o uso dos marcadores INÍCIO-FIM é obrigatório pois, caso não sejam utilizados, somente a primeira instrução será repetida 5 vezes, sendo a segunda instrução executada somente 1 vez, depois que o curso do algoritmo sair do laço.

Exercícios Resolvidos

1. Faça um algoritmo que receba 5 números inteiros fornecidos pelo usuário, um número de cada vez, e, para cada valor lido, diga se este número é par ou ímpar.

Algoritmo Exec_01

Declaração de variáveis

Início

Inteiro

Num,Cont

Para Cont ← 1 até 5 Início Ler Num Se Num Resto 2 = 0 Então Escrever “Número Par”

Senão

Escrever “Número Ímpar”

Fim

Fim

Obs.: A função resto, neste algoritmo, pode ser escrita na forma

Resto(Num,2).

Num Resto 2

ou

2. Fazer um algoritmo que recebe um conjunto de 50 valores, determina e exibe qual o maior valor do conjunto.

Algoritmo Exec_02

Declaração de Variáveis

Real

Num,Maior

Inteiro

Cont

Início

Para cont ← 1 até 50 Início Ler Num Se cont = 1 então

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

maior ← num

Senão Se num > maior então maior ← num

Fim Escrever maior

Fim

Exercícios Propostos

1. Faça um algoritmo que receba a idade de 35 pessoas, calcule e mostre a quantidade de pessoas em cada faixa etária, seguindo a tabela abaixo.

Faixa Etária

Idade

Até 15 anos

De 16 a 30 anos

De 31 a 45 anos

De 46 a 60 anos

Acima de 60 anos

2. Faça um algoritmo que receba um número, calcule e mostre a tabuada desse número.

3. Faça um algoritmo que mostre as tabuadas dos números de 1 a 10.

4. Faça um algoritmo que receba a idade, a altura e o peso de 25 pessoas, calcule e mostre:

a) a quantidade de pessoas com idade superior a 50 anos;

b) a média das alturas das pessoas com idade entre 10 e 20 anos;

c) a percentagem de pessoas com peso inferior a 40 quilos entre todas as pessoas

analisadas.

5. Faça um algoritmo que receba um número inteiro e diga se esse número é primo ou

não.

6. Faça um algoritmo que receba 100 números inteiros, calcule e mostre a soma dos números pares e dos números primos.

7. Faça um algoritmo que receba 200 números inteiros e mostre a quantidade de números primos dentre os números que foram digitados.

8. Cada espectador de um cinema respondeu a um questionário no qual constava sua

idade e sua opinião em relação ao filme: ótimo – 3; bom – 2; regular – 1. Faça um algoritmo que receba a idade e a opinião de 80 espectadores, calcule e mostre:

a) a média das idades das pessoas que responderam ótimo;

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

b) a quantidade de pessoas que responderam regular; c) a percentagem de pessoas que responderam bom, entre todos os espectadores analisados.

Estrutura de Repetição com Número Indefinido de Repetições – Enquanto

Use-se essa estrutura de repetição quando não não sabemos o número de vezes que uma instrução ou conjunto de instruções terá que ser repetido. Diferentemente do Para, o Enquanto não tem um contador na sua estrutura, ele é baseado em uma condição que será testada e, no caso do resultado ser verdadeiro, entra-se no laço para executar as instruções. No caso da condição testada dar falso, vai-se para a primeira instrução após o laço, não executando as instruções que estão no seu interior. Apesar dessa estrutura ser utilizada em casos para os quais não se sabe de antemão o número de repetições a serem executadas, também pode ser utilizada para casos em que se sabe o número de repetições. Existem dois detalhes importantes a serem observados:

1. Como a condição é testada antes de se entrar no laço, caso ela resulte em falso logo no primeiro teste, as instruções no interior do laço não serão executadas nenhuma vez.

2. No caso da condição resultar em verdadeiro e se entrar no laço, dentro do laço deve haver alguma instruções que possibilite mudar essa situação e fazer com que a condição testada resulte em falo em algum momento. Caso contrário, o curso das instruções não sairá mais do laço e cai-se em uma situação chamada “looping infinito”.

O formato da estrutura é o seguinte:

ENQUANTO <Condição> INÍCIO

Instrução1

Instrução2

Instrução3

FIM

A Condição é um teste a ser feito e seus resultados só podem ser Verdadeiro ou Falso.

Enquanto esta condição for testada e resultar em verdadeiro, as instruções dentro do laço serão executadas. A partir do momento que o teste resultar em falso, o curso das instruções passa para a primeira instrução após o laço.

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Exemplo resp ← 1 ENQUANTO resp = 1 INÍCIO LER num soma ← soma + num ESCREVER “Deseja continuar? 1- Sim | 2- Não” LER resp FIM

No exemplo acima, a resposta do usuário que dirá se o laço continuará a ser executado ou não. O valor 1 será digitado caso se deseje continuar e o valor 2 será digitado para parar a execução do laço. Para que se entrasse no laço a primeira vez, foi atribuído o valor 1 para a variável a ser testada antes do laço. Dentro do laço, essa variável tem a possibilidade de mudar de valor com o comando LER. Esses são os detalhes observados anteriormente.

Exercício Resolvido

1. Faça um algoritmo que receba um conjunto indeterminado de valores inteiros e exiba, ao final, quantos valores positivos, quantos negativos e quantos nulos foram digitados.

Algoritmo Exemplo

Declaração de Variáveis

Inteiro

Cadeia resp

Início

num,qtdep,qtden,qtde0

qtdep ← 0 qtden ← 0 qtde0 ← 0 resp ← 'Sim' Enquanto resp = 'Sim' Início Ler num Se num > 0 então qtdep ← qtdep + 1 Se num < 0 então qtden ← qtden + 1 Se num = 0 então qtde0 ← qtde0 + 1 Escrever 'Deseja continuar? <Sim | Não>' Ler resp

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Fim Escrever qtdep,qtden,qtde0

Fim

Exercícios Propostos

1. Dado um conjunto com n valores, fazer um algoritmo que calcule e exiba quantos valores dentro do conjunto digitado foram iguais a 5.

2. Fazer um algoritmo que receba um conjunto indeterminado de valores e, ao final, exiba quantos valores pares e quantos valores ímpares foram digitados.

3. Fazer um algoritmo que receba um conjunto indeterminado de valores e, ao final, exiba quantos valores primos foram digitados.

4. Faça um algoritmo que receba um conjunto de valores inteiros e positivos, calcule e

mostre o maior e menor valor do conjunto. Para encerrar a entrada de dados, deve ser digitado o valor zero.

5. Foi feita uma pesquisa entre os habitantes de uma região. Foram coletados a idade, sexo (M|F) e salário. Faça um algoritmo que calcule e mostre:

a) a média geral dos salários coletados;

b) e maior e a menor idade do grupo;

c) a quantidade de mulheres com salário até R$ 500,00;

d) a idade e o sexo da pessoa que possui o menor salário.

Uma idade negativa será digitada para finalizar a entrada de dados.

6. Uma agência bancária possui vários clientes que podem fazer investimentos por um mês, conforme a tabela a seguir:

TIPO

DESCRIÇÃO

RENDIMENTO MENSAL

1

Poupança

1,50%

2

Poupança plus

2,00%

3

Fundos de renda fixa

4,00%

Faça um algoritmo que leia o código do cliente, o tipo do investimento e o valor investido, e que calcule e mostre o rendimento de acordo com o tipo do investimento. No final, o programa deverá mostrar o total investido e o total de juros pagos. A leitura terminará quando o código do cliente digitado for menor ou igual a 0.

Apostila de Algoritmo e Lógica de Programação – Profª Cristiane Paschoali

Referências Bibliográficas

ASCENCIO, A. F. G. & CAMPOS, E. A. V. , Fundamentos da Programação de Computadores – Algoritmos, Pascal, C/C++ e Java. 2ª ed. São Paulo: Pearson Prentice Hall, 2008.