67
Noções Preliminares de Lógica e Construção de Algoritmos Lógica: - Relacionada à capacidade de raciocinar - Vinculada à capacidade de pensar - Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo. Algoritmo: - Um algoritmo é formalmente uma seqüência finita de passos que levam a execução de uma tarefa. Um pequeno exemplo: Torre de Hanoi Descreva detalhadamente os procedimentos necessários para passar os 3 discos do Pino 1 para um dos outros Pinos, obedecendo às seguintes regras: o Mover somente um disco por vez; o Nunca poderá ficar um disco maior sobre um menor; Disco 3 Disco 2 Disco 1 Canibais e Jesuítas Descreva passo a passo os procedimentos necessários para passar os 3 canibais e os 3 jesuítas da margem A para a margem B do rio, obedecendo às seguintes regras: o No barco só cabem duas pessoas; o Sempre terá que voltar alguém para buscar os demais; o O número de canibais nunca poderá ser superior ao de jesuítas em qualquer uma das margens (considerando-se quem está no barco também).

Apostila logica algoritmos e estrutuara de dados

Embed Size (px)

Citation preview

Page 1: Apostila  logica algoritmos e estrutuara de dados

Noções Preliminares de Lógica e Construção de Algoritmos

Lógica: - Relacionada à capacidade de raciocinar - Vinculada à capacidade de pensar - Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.

Algoritmo: - Um algoritmo é formalmente uma seqüência finita de passos que levam a execução de uma tarefa.

Um pequeno exemplo: Torre de Hanoi

Descreva detalhadamente os procedimentos necessários para passar os 3 discos do Pino 1 para

um dos outros Pinos, obedecendo às seguintes regras: o Mover somente um disco por vez;

o Nunca poderá ficar um disco maior sobre um menor;

Disco 3

Disco 2

Disco 1

Canibais e Jesuítas

Descreva passo a passo os procedimentos necessários para passar os 3 canibais e os 3 jesuítas

da margem A para a margem B do rio, obedecendo às seguintes regras:

o No barco só cabem duas pessoas;

o Sempre terá que voltar alguém para buscar os demais;

o O número de canibais nunca poderá ser superior ao de jesuítas em qualquer uma das

margens (considerando-se quem está no barco também).

Page 2: Apostila  logica algoritmos e estrutuara de dados

Algoritmos

Conceituando:

Algoritmo consiste em um conjunto lógico e finito de ações ( instruções ) que

objetivam resolver um determinado problema.

Um algoritmo desenvolvido não é a única solução possível de um problema, pois, se assim fosse, cada problema teria um único algoritmo. Algoritmo é um dos caminhos para a solução de um problema e, em geral, os caminhos que levam a uma solução são muitos. O aprendizado de algoritmos só é conseguido através de muitos exercícios.

Não se aprende Algoritmos: Só se aprende Algoritmos:

- Copiando Algoritmos - Construindo Algoritmos

- Estudando Algoritmos - Testando Algoritmos

Fases de um Algoritmo

Quando temos um problema e vamos utilizar um computador para resolvê-lo, inevitavelmente temos que passar pelas seguintes etapas:

a) Definir o problema;

b) Realizar um estudo de qual(is) a(s) forma(s) de resolver o problema;

c) Terminada a fase de estudo, elaborar um algoritmo contendo os passos lógicos a serem seguidos para a solução do problema;

d) Codificar os passos do algoritmo na linguagem de programação mais adequada;

e) Analisar junto aos usuários se o problema foi resolvido. Se a solução não foi encontrada, dever-ser-á retornar à fase de estudos a fim de localizar-se a falha.

Page 3: Apostila  logica algoritmos e estrutuara de dados

Estas são, de forma bem geral, as etapas que um analista passa, desde a apresentação do problema até a sua efetiva solução. Iremos, neste curso, nos ater à etapa de estudo, também chamada de análise, e à etapa de programação. Mas, antes, vamos definir o seguinte conceito: programar um computador consiste em elaborar um conjunto finito de instruções, reconhecidas pelo mesmo, de forma que consiga executá-las. Estas instruções possuem regras e uma sintaxe próprias, como o português ou o inglês - sendo chamadas de linguagem de programação.

No mundo computacional existe uma grande variedade de linguagens: Pascal, C, C++, C#, Cobol, Fortran, Delphi, Visual Basic, Java, ASP, PHP, Phyton, Perl, etc.

Page 4: Apostila  logica algoritmos e estrutuara de dados

Diagrama de Chapin

A 1

B 2

A > B

F V

A 10 A 5

Exemplificando o algoritmo acima em uma linguagem de programação , como e m Pascal, a solução apresentada pelos algoritmos acima ficaria da seguinte forma:

Program Teste ;

Var

A , B : Integer

;

Begin

A := 1 ;

B := 2 ;

if ( A > B ) then

A := 5

else

A := 10 ;

End.

Page 5: Apostila  logica algoritmos e estrutuara de dados

Variáveis

O computador possui uma área de armazenamento conhecida como memória. Todas as

informações existentes no computador estão ou na memória primária (memória RAM – Random Access Memory - memória de acesso aleatório) ou na memória secundária (discos, fitas, CD-ROM, etc). Nós iremos trabalhar, neste curso, somente com a memória primária, especificamente com as informações armazenadas na RAM.

A memória do computador pode ser entendida como uma seqüência finita de caixas, que num dado

momento, guardam algum tipo de informação, como um número, uma letra, uma palavra, uma frase, etc. Não importa ao usuário conhecer todas as informações contidas, basta apenas saber que lá sempre existe alguma informação.

O computador, para poder trabalhar como algumas destas informações, precisa saber onde, na memória, o dado está localizado. Fisicamente, cada caixa, ou cada posição de memória, possui um endereço, ou seja, um número que indica onde cada informação está localizada. Este número é

representado através da notação hexadecimal, tendo o tamanho de quatro ou mais bytes. Abaixo seguem alguns exemplos:

Endereço Físico Informação

3000 : B712 ‘João’

2000 : 12EC 12345

3000 : 0004 ‘H’

Como pode ser observado, o endereçamento das posições de memória através de números hexadecimais é perfeitamente compreendido pela máquina, mas para nós humanos torna-se uma tarefa complicada. Pensando nisto, as linguagens de programação de computadores facilitaram o

manuseio das posições de memória da máquina, permitindo que, ao invés de trabalhar diretamente com os números hexadecimais, fosse possível dar nomes diferentes a cada posição de memória.

Os nomes são de livre escolha do usuário. Com este recurso, os usuários ficaram livres dos endereços físicos (números hexadecimais) e passaram a trabalhar com endereços lógicos (nomes dados pelos próprios usuários). Desta forma, o exemplo acima poderia ser alterado para ter o seguinte aspecto:

Endereço Físico Informação

Nome ‘João’

Número 12345

Letra ‘H’

Page 6: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 6/67

Como tínhamos falado, os endereços lógicos são como caixas, que num dado instante guardam

algum tipo de informação. Mas é importante saber que o conteúdo desta caixa não é algo fixo ou

permanente. Na verdade, uma caixa pode conter diversas informações, ou seja, como no exemplo

acima, a caixa (Endereço Lógico) rotulada de “Nome” num dado momento contém a informação

“João”, mas em um outro momento poderá conter uma outra informação, por exemplo “Pedro”.

Com isto queremos dizer que o conteúdo destas caixas ( endereços lógicos ) podem variar, isto é,

podem sofrer alterações em seu conteúdo. Tendo este conceito em mente, a partir de agora iremos

chamar de forma genérica, as caixas ou endereços lógicos, de variáveis.

Conceituando:

Desta forma, é possível afirmar que uma variável é uma posição de memória, representada por um nome simbólico (atribuído pelo usuário), a qual contém, num dado instante, uma informação.

Nomes de Variáveis

Memória

Posição de Memória

Page 7: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 7/67

O nome de uma variável é formado por uma letra ou por uma letra seguida de letras ou números (quaisquer números);

Não é permitido o uso de espaços em branco ou de qualquer outro caractere, que não seja letra ou número;

Se utilizar mais de uma palavra para compor o nome da variável utilize o “_“ (underline) para separar as palavras. Exemplo: data_nasc ;

Não pode iniciar com um número.

Conteúdo de uma Variável

As variáveis podem armazenar:

Valores numéricos;

Textos (letras, palavras) ou até frases.

Identificadores: Variáveis e Constantes

Considere a fórmula matemática do cálculo do volume de uma esfera:

4 3

V R 3

onde são encontrados valores que podem ser classificados como:

a) valores constantes, invariantes em todas as aplicações da fórmula, como são os casos dos

valores 4, 3 e denominam-se CONSTANTES;

b) valores a serem substituídos na fórmula, em cada aplicação; a representação desses valores, usualmente é feita através de letras, que recebem o nome de VARIÁVEIS e tornam a fórmula

genérica, possível de ser aplicada para resolver uma certa classe de problemas e não apenas um problema específico;

c) operações a serem feitas sobre determinados operandos (valores), para a obtenção da solução do problema.

Page 8: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 8/67

Tipos de Dados

As Linguagens de Programação exigem que no momento que formos trabalhar com variáveis, indiquemos o tipo de dado que a mesma poderá conter, isto é, se uma dada posição de memória armazenará um número ou uma letra, etc.

A linguagem Pascal, por exemplo, possui a definição de alguns tipos que deverão ser usados para se trabalhar com variáveis. Esses tipos são:

Principais tipos de variáveis e dados que armazenam (relembrando...):

Algoritmo

Pascal Dados que podem armazenar (Portugol)

Representa números entre –32.768 até +32.767. Ocupa 2

a) Inteiro a) INTEGER bytes na memória.

Representa os números entre 2,9 x 10-39 até 1,7 x 1038 .

b) Real b) REAL

Ocupa 6 bytes na memória.

Representa um dos caracteres, da tabela ASCII. Ocupa 1

e) Caracter e) CHAR byte na memória.

Conjunto de caracteres ( CHAR ). Ocupa de 1 a 255 bytes na

d) Cadeia f) STRING memória.

Valor lógico. Assume somente dois valores:

g) Lógica g) BOOLEAN TRUE(Verdadeiro) ou FALSE(Falso). Ocupa 1 byte na memória.

Outros tipos de Variáveis

Pascal Dados que podem armazenar

h) WORD Números de 0 até 65.535. Ocupa 2 bytes na memória.

i) BYTE Números de 0 até 255. Ocupa 1 byte na memória.

j) ShortInt Representa os números entre -128 até 128 . Ocupa 1 bytes na memória.

Representa os números entre - 2.147.483.648 até 2.147.483.648 . Ocupa l) LongInt

4 bytes na memória.

Page 9: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 9/67

Representa os números entre 1,5 x 10 -45 até 3,4 x 1038 . Ocupa 4 bytes na m) Single memória.

Representa os números entre 5 x 10-324 até 1,7 x 10308 . Ocupa 8 bytes na n) Double

memória.

Iremos gradativamente trabalhar com alguns destes tipos e mostrar as suas características.

Declaração de Variáveis

É necessário informar, logo no início do programa, quais as variáveis que serão utilizadas e que tipo de dados cada uma armazenará.

Para declarar uma ou mais variáveis, devemos utilizar, em Pascal, a palavra VAR. Nos algoritmos feitos em Portugol pode-se utilizar a mesma nomenclatura.

Nos algoritmos construídos com Fluxograma (Diagrama de Blocos) não é necessário declarar as variáveis. Apenas indicamos a atribuição de valores às variáveis necessárias (Fig. 1) ou a leitura dos dados para as mesmas( Fig. 2).

Figura 1 Figura 2

Inicio

A 10

> < Comandos

Fim

Leia A

Inicio

< Comandos >

Fim

Page 10: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 10/67

Abaixo seguem exemplos de algumas declarações de variáveis em Pascal:

a) PROGRAM Teste ; b) PROGRAM Teste ;

VAR VAR

A : INTEGER ; Num : REAL ;

BEGIN BEGIN

<comandos> ; <comandos> ;

END .

END .

c) PROGRAM Teste ; d) PROGRAM Teste ;

VAR VAR

X, Palavra : STRING ; B, Letra : CHAR ;

BEGIN BEGIN

<comandos> ; <comandos> ;

END .

END .

e) PROGRAM Teste ; f) PROGRAM Teste ;

VAR VAR

Y : REAL ; Letra, Caractere : CHAR

;

N : INTEGER ; Número : INTEGER ;

BEGIN BEGIN

<comandos> ; <comandos> ;

END .

END .

Obs: Os nomes dados às variáveis não podem ser os mesmos nomes de palavras reservadas do Pascal, tais como PROGRAM, BEGIN, END, VAR, etc…

Page 11: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 11/67

Comandos de Atribuição

Quando definimos uma variável, é natural atribuirmos a ela uma informação. Uma das formas de colocar um valor dentro de uma variável, conseqüentemente colocando este dado na memória do computador, é através da atribuição direta do valor desejado à

variável. Para isso são utilizados os símbolos : = (dois pontos igual) no Pascal e (seta

para esquerda) em Algoritmos, que significam: atribuir, ou seja, a posição de memória

que uma variável representa receberá uma informação, que será armazenada no interior desta variável. Exemplos:

Algoritmo Pascal

PROGRAM Teste;

VAR

X : INTEGER;

BEGIN

X : = 10;

END.

O Exemplo anterior nos informa que:

a) Foi definida uma variável, a qual demos o Nome de “ X ”, e informamos que esta

variável, ou posição de memória, só poderá aceitar dados que sejam numéricos e que estejam entre -32768 a +32767 ( tipo INTEGER );

b) Atribuímos à variável “ X ” o valor 10.

A memória se comportaria da seguinte forma, de acordo com os itens acima:

Logo após a declaração da variável e antes da atribuição de valor:

Variável Conteúdo X Indefinido

Após a atribuição de valor:

Variável Conteúdo

X 10

Variáveis do tipo CHAR (Caractere) e STRING (Cadeia)

As definições de variáveis como sendo do tipo CHAR e STRING, possuem algumas curiosidades que merecem um cuidado especial por parte do usuário.

Uso do apóstrofro ( ‘ )

X 10

Page 12: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 12/67

Quando estivermos fazendo a atribuição de um valor para uma variável do tipo CHAR (Caractere) ou STRING (Cadeia), temos que ter o cuidado de colocar o valor (dado)

entre apóstrofos ( ‘ ) - chamados por alguns de “aspas simples” - pois esta é a forma de dizer que a informação é caractere.

Exemplos: Algoritmo Pascal

PROGRAM AtribuiString;

VAR

Letra : CHAR ; Nome : STRING ;

BEGIN Letra := ‘ A ‘ ;

Nome := ‘ João ’ ;

END.

Manipulação de caracteres individuais em STRING’s (Cadeias)

Muitas vezes é necessário manipular caracteres individuais em uma STRING (Cadeia) . O Pascal possui uma forma toda especial de permitir tal operação, através do uso de colchetes( [ ] ) logo após o Nome da variável do tipo STRING (Cadeia) , e o número do caractere que se deseja manipular entre os colchetes.

Formas de representação de algoritmos:

Diagrama de Chapin (pronuncia-se “Chapã”)

Diagrama de Blocos ou Fluxograma: representação gráfica do algoritmo

Portugol, pseudocódigo ou português estruturado: descrição narrativa do

algoritmo

Diagrama de Blocos ou Fluxograma É um dos métodos utilizados para o desenvolvimento de algoritmos. Com esta

técnica definimos os passos lógicos, a serem seguidos para a solução de um problema,

com o auxílio de figuras geométricas. Posteriormente, codificarmos esses passos em

uma linguagem de programação em um computador.

Letra ‘A’

Nome ‘João’

Inicio

Fim

Page 13: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 13/67

Há muitas figuras para construção de Diagramas de Blocos/Fluxogramas. As

principais que utilizaremos, são:

Terminal - para indicar Início ou Fim do programa;

Processamento - para cálculos, classificações, atribuições de valor, etc.;

Entrada e Saída de Dados - é utilizado sempre em conjunto com os

verbos Leia, para indicar a leitura de valores para variáveis, ou Escreva, para indicar a exibição de mensagens e/ou conteúdo de variáveis;

Entrada de Dados via teclado

Saída ou Exibição de Dados em Vídeo - para indicar a exibição dos

valores contidos nas variáveis e mensagens (textos) contidas nos programas;

Saída de Dados Impressos;

Decisão - para efetuar um desvio condicional, uma “pergunta”, para definir se o programa deve seguir numa direção ou em outra;

Estrutura de controle: repetição (laço para)

Conector - para ligar as seqüências de solução do problema vindas de diferentes pontos do Fluxograma;

Conector de Página - para ligar pontos do Fluxograma na mesma página ou

em páginas diferentes; normalmente utiliza-se um número junto, para indicar de que ponto vem e para qual ponto deve seguir o fluxo;

Setas de Orientação do Fluxo - para indicar o sentido a ser seguido.

3

Page 14: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 14/67

Operadores Aritméticos + (Adição)

Tipo de operandos permitidos: inteiros, reais, cadeias de caracteres.

Operação executada: no caso de inteiros e reais o operando à esquerda do + é

somado ao operando a sua direita, sendo o tipo do resultado dessa operação dependente de seus operandos:

• Se os dois operandos são inteiros, o resultado da soma é um valor inteiro;

• Se os dois operandos são reais, o resultado da soma é um valor real;

• Se um dos operandos é real e o outro é inteiro, o resultado da soma é um valor

real;

• No caso dos operandos serem ambos cadeias de caracteres o resultado da

operação é dado pela cadeia obtida pela concatenação da cadeia dada pelo primeiro operando com a cadeia dada pelo segundo operando.

- (Subtração)

Tipo de operandos permitidos: inteiros, reais.

Operação executada: o operando à esquerda do - é subtraído do operando a sua

direita, sendo o tipo do resultado dessa operação dependente de seus operandos:

• Se os dois operandos são inteiros, o resultado da operação é inteiro;

• Se os dois operandos são reais, o resultado da operação é real;

• Se um dos operandos é real e o outro é inteiro, o resultado da operação é real.

* (Multiplicação)

Tipo de operandos permitidos: inteiros, reais.

Operação executada: o operando à esquerda do * é multiplicado pelo operando a

sua direita, sendo o tipo do resultado dessa operação dependente de seus

operandos:

• Se os dois operandos são inteiros, o resultado da operação é um valor inteiro;

• Se os dois operandos são reais, o resultado da operação é um valor real;

• Se um dos operandos é real e o outro é inteiro, o resultado da operação é um valor real.

/ (Divisão)

Tipo de operandos permitidos: inteiros, reais.

Operação executada: o operando à esquerda do / é dividido pelo operando a sua direita, sendo o resultado dessa operação real.

DIV

Tipo de operandos permitidos: ambos do tipo inteiro.

Operação executada: o operando à esquerda do DIV é dividido pelo operando à sua

direita, sendo o resultado desta operação um valor inteiro resultante da divisão.

Exemplo: 7 DIV 3 resulta 2 (vide abaixo).

Page 15: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 15/67

MOD

Tipo de operandos permitidos: ambos do tipo inteiro.

Operação executada: o operando à esquerda do MOD é dividido pelo operando à

sua direita, sendo o resultado desta operação o resto inteiro da divisão.

Exemplo: 7 MOD 3 resulta 1 (vide abaixo).

Dividendo 7 3 Divisor

MOD 1 2 DIV

Programas Seqüenciais

São programas onde são

executadas as linhas de

instruções uma após a outra,

seqüencialmente, sem desvios.

1) Faça um algoritmo

para ler dois números

inteiros, efetuar e mostrar a

SOMA dos mesmos.

Declaração de variáveis do algoritmo

Inicio

X , A , B

Escreva “Digite o 1 º numero : “

Leia A

Escreva “Digite o 2 º numero : “

Leia B

X A + B

Escreva “A Soma

é“ , X

Fim

Page 16: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 16/67

Programa SOMA_INTEIROS

Var

X, A, B : Inteiro

Inicio

Escreva “Digite o 1º número: “

Leia A

Escreva “Digite o 2º número: “

Leia B

X A + B

Escreva “A soma é “ , X Fim.

Outro exercício:

2) Faça um algoritmo que leia 2 números reais, efetue e mostre a SOMA e a MÉDIA:

Page 17: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 17/67

Programa SOMA_MEDIA_REAIS

Var

X, A, B, MED : real

Inicio

Escreva “Digite o 1º número: “

Leia A

Escreva “Digite o 2º número: “

Leia B

X A + B

Escreva “A soma é “ , X

MED X/2

Escreva “A Média é “, MED Fim.

3) Faça um algoritmo que receba dois números inteiros, calcule e mostre o dobro do primeiro e o triplo do segundo.

P rograma Dobro_triplo NUM1, NUM2, DOBRO, TRIPLO: Inteiro Início Leia NUM1 Leia NUM2 DOBRO NUM1 * 2 TRIPLO NUM 3 * 2 Escreva “O DOBRO DE ”, NUM1, “E IGUAL A”, DOBRO Escreva “O TRIPLO DE ”, NUM2, “E IGUAL A”, TRIPLO Fim.

INICIO

NUM1, NUM2, DOBRO, TRIPLO

LEIA NUM1

LEIA NUM2

DOBRO <-- NUM1 * 2

TRIPLO <-- NUM2 * 3

A

A

"O DOBRO DE", NUM1, "E

IGUAL A", DOBRO

"O TRIPLO DE", NUM2, "E

IGUAL A", TRIPLO

FIM

Page 18: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 18/67

Nota-se no diagrama acima que foi usada uma representação para declarar as variáveis do

algoritmo. Essa prática é recomendada para dar mais clareza ao algoritmo. Veja a seguir a

figura (retângulo):

Mais um exercício

4) Faça um algoritmo que receba pelo teclado as notas de duas provas, dois trabalhos e uma

lista de exercícios. Calcule e mostre a média, sabendo que as provas têm peso 6, os trabalhos,

peso 3 e a lista, peso 1.

INICIO

P1, P2, T1, T2, EX, MED

"PROVA " 1:

P1

"PROVA 2: "

P2

"TRAB 1:"

T1

"TRAB 2:"

T2

"EXERC.:"

EX

A

Page 19: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 19/67

Exercícios - Programas Seqüenciais 1. Fazer o algoritmo que leia dois números inteiros, calcule e exiba a subtração do primeiro

pelo segundo.

2. Fazer o algoritmo que leia dois números inteiros, calcule e exiba a subtração do segundo pelo primeiro.

3. Fazer o algoritmo que leia dois números inteiros, calcule e exiba a multiplicação dos

dois números.

Reais

4. Fazer o algoritmo que receba duas notas de um aluno e seus respectivos pesos, calcule e exiba a média ponderada dessas notas.

MP = (N1 * P1 + N2 * P2) / (P1 + P2)

5. Fazer o algoritmo que leia o valor de um depósito e o valor da taxa de juros. Calcule e exiba o valor do rendimento e o valor total (depósito + rendimento).

6. Fazer o algoritmo que leia um número inteiro, calcule e exiba:

a) a raiz quadrada desse número; b) esse número elevado ao quadrado.

7. Fazer o algoritmo que leia o valor do salário de um funcionário e o valor do salário mínimo. Calcule e exiba quantos salário mínimos ganha esse funcionário.

8. Fazer o algoritmo e o programa Pascal que calcule e exiba a área de um triângulo.

9. Fazer o algoritmo que calcule e exiba a área de um quadrado.

10. Fazer o algoritmo que calcule e exiba a área de um círculo.

11. Fazer o algoritmo que calcule e exiba a área de um trapézio.

12. Fazer o algoritmo que calcule e exiba a área de um retângulo.

13. Fazer o algoritmo que calcule e exiba a área de um losango.

14. Fazer o algoritmo que leia o salário de um funcionário, calcule e exiba o valor do imposto de renda a ser pago, sabendo-se que o imposto equivale a 5% do salário.

15. Fazer o algoritmo que leia o salário de um funcionário, calcule e exiba o novo salário, sabendo-se que este sofreu um aumento de 25%.

Page 20: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 20/67

16. Sabe-se que o quilowatt de energia custa um quinto do salário mínimo. Fazer o algoritmo que leia o valor do salário mínimo e a quantidade de quilowatts gasta por residência. Calcule e exiba:

a) valor, em reais, de cada quilowatt;

b) valor, em reais, a ser pago por essa residência;

c) novo valor a ser pago por essa residência, a partir de um desconto de 15%.

17. Fazer o algoritmo que leia o peso de uma pessoa em quilograma, um valor inteiro, calcule e exiba:

a) peso dessa pessoa em gramas;

b) se essa pessoa engordar 15%, qual será seu novo peso em gramas.

18. Fazer o algoritmo que leia a quantidade de litros de uma represa, um valor inteiro, calcule e exiba;

a) a quantidade total em litros se ocorrer um aumento de 34% na sua capacidade,

após um período de chuvas;

b) a quantidade total em mililitros se ocorrer uma redução de 40% na sua capacidade, após um período de seca.

19. Construa o algoritmo que leia dois nºs inteiros, calcule a soma e mostre o resultado.

20. Construa o algoritmo que leia três nºs inteiros, calcule a soma e mostre o resultado.

21. Construa o algoritmo que leia dois números reais, calcule a média aritmética entre eles e mostre o resultado.

22. Construa o algoritmo que leia três nºs reais, calcule a média aritmética entre eles e mostre o resultado.

23. Construa o algoritmo que leia o preço unitário e a quantidade vendida de um produto. Calcule e mostre o valor total vendido.

24. Construa o algoritmo que calcule e mostre a média aritmética entre quatro notas bimestrais quaisquer fornecidas por um aluno.

25. Construa o algoritmo que leia uma temperatura em graus Centígrados e apresentem-na convertida em graus Fahrenheit. A fórmula de conversão é F = (9 * C + 160) / 5. Onde F é a temperatura em Fahrenheit e C é a temperatura em Centígrados.

26. Construa o algoritmo que leia uma temperatura em graus Fahrenheit e apresentem-na convertida em graus Centígrados. A fórmula de conversão é C = (F – 32) * (5 / 9). Onde

F é a temperatura em Fahrenheit e C é a temperatura em Centígrados.

Page 21: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 21/67

27. Construa o algoritmo que calcule e apresente o valor do volume de uma lata de óleo, utilizando a fórmula: VOLUME = 3.14159 * (RAIO * RAIO) * ALTURA.

28. Construa o algoritmo e o programa Pascal que efetuem o cálculo da quantidade de litros de combustível gastos em uma viagem, utilizando-se um automóvel que faz 12 km por litro. Para obter o cálculo, o usuário deverá fornecer o tempo gasto na viagem e a velocidade média durante a mesma. Desta forma, será possível obter a distância percorrida com a fórmula DISTÂNCIA = TEMPO * VELOCIDADE. Tendo o valor da distância, basta calcular a quantidade de litros de combustível utilizada na viagem com

a fórmula: LITROS_USADOS = DISTÂNCIA / 12. O algoritmo e o programa Pascal deverão apresentar os valores da velocidade média, tempo gasto na viagem, a distância percorrida e a quantidade de litros utilizada na viagem.

Programação condicional ou desvios

condicionais

A partir daqui você verá algoritmos que trabalharão com

situações de desvios condicionais, tomadas de decisões

Operadores Relacionais

Operador Resultado

= Igual a Verdadeiro se os dois operandos para o operador forem

iguais. Falso em caso contrário.

<> Diferente de Verdadeiro se os dois operandos para o operador forem

diferentes.Falso em caso contrário.

< Menor que Verdadeiro se o operando à esquerda do operador for menor

que o operando à direita. Falso em caso contrário.

<= Menor ou igual a Verdadeiro se o operando à esquerda do operador for menor

ou igual o operando à direita. Falso em caso contrário

> Maior que Verdadeiro se o operando à esquerda do operador for maior

do que o operando à direita. Falso em caso contrário.

>= Maior ou Igual a Verdadeiro se o operando à esquerda do operador for maior

ou igual que o operando à direita. Falso em caso contrário.

Page 22: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 22/67

Estes operadores são fundamentais para que se possa comparar situações e

tomar decisões. Dessa forma, a partir da compreensão das funcionalidades desses

operadores é possível começar a utilizar um recurso muito importante em

programação: os desvios condicionais, que são um tipo de Estrutura de Controle.

Os desvios condicionais podem ser simples, compostos ou encadeados, conforme será visto a seguir.

Desvio Condicional Simples ( se ... então )

O Desvio Condicional Simples testa uma determinada condição através do comando SE e dos operadores relacionais. Caso a resposta à condição seja VERDADEIRA, o

programa sairá pelo (ENTÃO), executando a linha de instruções, ou bloco de instruções,

que vem logo a seguir (ao ENTÃO). Caso a resposta para a condição seja FALSA, o

programa pulará a linha de instruções, ou bloco de instruções, que pertencem ao ENTÃO e continuará sua execução após os mesmos.

O Fluxograma (Diagrama de Blocos) pode tornar-se bem mais simplificado usandose o método de Decisão Composta ou seja, Desvio Condicional Composto. Este procedimento será visto no próximo tópico.

Procure codificar os programas sempre utilizando a endentação (disposição das

linhas com recuos diferentes) pois esta técnica facilita a depuração de eventuais erros de codificação e de lógica, além de facilitar a visualização e testes de mesa.

Veja a seguir um exemplo de desvio condicional simples: Leia 2 números inteiros, determinar e exibir o maior deles.

Page 23: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 23/67

Programa MAIOR_NUM;

Var //declaração de variáveis N1, N2

: Inteiro

Inicio

Escreva “1º número: “

Leia N1

Escreva “2º número: “

Leia N2

Se (N1 > N2) então

Escreva “O maior é o N1: “, N1

Fim_se

Se (N2 > N1) então

Escreva “O maior é o N2: “, N2

Fim_se

Se (N1 = N2) então

Escreva “Os números são iguais” Fim_se

Fim

Page 24: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 24/67

Desvio Condicional Composto ( Se ... Então ... Senão )

O Desvio Condicional Composto testa uma determinada condição através do comando (SE) e dos operadores relacionais.

Caso a resposta à condição proposta seja VERDADEIRO, o programa sairá pelo (ENTÃO), executando a linha de instruções, ou bloco de instruções, que vem logo a seguir.

Caso a resposta para a condição seja FALSA, o programa sairá pelo (SENÃO) e executará a linha de instrução, ou bloco de instruções, que vem logo a seguir (ao SENÃO).

Após ter executado as instruções do ENTÃO ou do SENÃO, o programa continuará sua execução na linha seguinte aos mesmos.

Page 25: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 25/67

Outro exemplo: faça o algoritmo para Ler 2 números inteiros, efetuar e exibir a SOMA dos

mesmos, obedecendo aos critérios:

a) se a SOMA for maior ou igual a 10, então ao valor da SOMA será adicionado 5;

b) caso contrário, do valor da SOMA será subtraído o valor 7.

Proposta: Faça o portugol para o exercício

Desvio Condicional Encadeado

Page 26: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 26/67

Existem situações em que necessitamos fazer teste de uma condição dentro de outra, isto é, se uma determinada condição for satisfeita então será feito uma segundo teste, um

terceiro, etc... Nesses casos utilizamos o Desvio Condicional Encadeado (ou SE’s encadeados, ou Ninho de SE’s).

No primeiro modelo, se a condição1 for satisfeita, será executada a linha depois do primeiro ENTÃO e o programa continuará. Senão, será testada uma segunda condição, depois do primeiro SENÃO. Se a segunda condição for satisfeita, será executada a linha depois do segundo ENTÃO e o programa continuará. Se a segunda condição também não for satisfeita, será executada a linha depois do segundo SENÃO e o programa continuará.

Se (condição1) Então

<instruções para condição1 verdadeira>

Senão Se (condição2) Então <instruções para condição1 falsa e condição2 verdadeira>

Senão

<instruções para condições 1 e 2 falsas>;

Fim_se Fim_Se

No segundo modelo, se a condição1 for satisfeita será testada uma segunda condição, depois do primeiro ENTÃO. Se a segunda condição também for satisfeita, será executada a linha depois do segundo ENTÃO e o programa continuará. Se a primeira

condição for satisfeita e a segunda não, o programa executará a linha depois do primeiro SENÃO e continuará. Se a primeira condição não for satisfeita o programa executará a linha depois do segundo SENÃO e continuará, ou seja, não verificará a segunda condição (vide modelo abaixo).

/76

Se (condição1) Então

Se (condição2) Então

<instruções para condições 1 e 2 verdadeiras>

Senão

<instruções para condição1 verdadeira e condição2 falsa>

Fim_se

Senão

Observações:

A utilização de blocos de instruções é feita como explicado anteriormente;<instruções

para condição1 falsa>

Fim_se

Neste caso a condição 2 nem será analisada.

Page 27: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 27/67

Em uma série de comandos SE aninhados, a cláusula SENÃO está ligada ao SE

mais próximo no aninhamento. Podemos utilizar vários SE aninhados, combinando

os formatos descritos.

Programa MAIOR_NUM;

Var //declaração de variáveis

N1, N2 : Inteiro

Inicio

Escreva “1º número: “

Leia N1

Escreva “2º número: “

Page 28: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 28/67

Leia N2

Se (N1 > N2) então

Escreva “O maior é o N1: “, N1

Senão

Se (N1 = N2) então

Escreva “Os números são iguais“

Senão

Escreva “O maior é o N2: “, N2

Fim_se

Fim_se

Fim

Outro exemplo: ler 2 números inteiros e mostrá-los em ordem crescente. Se os números

lidos forem iguais, mostrar uma mensagem “OS NÚMEROS SÃO IGUAIS”.

Program ORDENA

Var

A, B: Inteiro Inicio

Leia A, B Se (A =

B) Então

Escreva “Os números são iguais: “

‘ Os números são Iguais

V F

Inicio

Leia A , B

Fim

A = B

A , “ “, B

A < B

V F

B , “ “, A

A , “ “, B

Page 29: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 29/67

Escreva A, “ “, B Senão

Se (A < B) Então Escreva

A, “ “, B

Senão

Escreva B, “ “, A

Fim_se

Fim_se

Fim.

Programa ORDENA2;

‘ Os números

são

V F

Inicio

Leia A , B

Fim

A = B

A , “ “,

B

A > B

V F

X B

B A

A X

Page 30: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 30/67

Var

A, B, X: Inteiro

Início Leia

A

Leia B

Se (A = B) Então

Escreva “Os números são iguais: “

Senão

Se (A > B) Então

X B

B A

A X

Fim_se

Fim_se

Escreva A , “ “, B Fim.

Foi empregada acima outra forma de ordenação: método de substituição de valores. Precisamos de uma variável auxiliar (geralmente X ou AUX), que armazena temporariamente os valores trocados, para o sucesso da ordenação

Teste de Mesa: teste do programa O Teste de Mesa consiste em adotarmos valores fictícios para as variáveis do programa, como se tivessem sido digitadas, verificando passo a passo o funcionamento do mesmo. Devemos analisar

todas as situações possíveis, para eliminarmos eventuais erros de lógica.

Se adotarmos os valores para o último programa codificado: A = 15 e B = 7 1. Os números não são iguais, portanto iremos testar se A > B;

2. A é maior que B, então:

X = A (ou seja, X passa a ter o valor 15);

A = B (ou seja, A passa a ter o valor 7);

B = X (ou seja, B passa a ter o valor 15).

3. Assim, logo após a ordenação, os valores serão: A = 7 e B = 15

4. Os valores são exibidos em ordem crescente.

Page 31: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 31/67

Notas:

a) Quando A for menor que B, os valores serão apresentados de acordo com a sua ordem natural de entrada, pois A não será > que B.

b) Quando A e B forem iguais, será exibida a mensagem “Os números são iguais”.

Operadores Lógicos (E, OU e NÃO)

Operador E

Faz com que somente seja executada uma determinada operação se todas as condições mencionadas forem simultaneamente verdadeiras.

Ler um número inteiro e informar se o mesmo está entre 20 e 90 ou não.

V F

Inicio

Leia NUM

Fim

NUM >= 20 E

NUM <= 90

‘ O número está fora da faixa de 20 a

90 ‘

‘ O número está na faixa de 20 a 90 ‘

Page 32: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 32/67

Programa TESTA_LOGICA_E

Var

NUM : Inteiro

Inicio

Leia NUM

Se (NUM >= 20 .E. NUM <= 90) Então Escreva

“O número está na faixa de 20 a 90”

Senão

Escreva “O número está fora da faixa de 20 a 90”

Fim_se

Fim.

Operador OU

Utilizado quando pelo menos um dos relacionamentos lógicos de uma condição necessita ser verdadeiro.

Ex.: Solicitar a digitação do sexo de uma pessoa e informar se o mesmo existe ou não.

V F

Inicio

Leia INF

Fim

INF = ‘ M ‘ OU

INF = ‘ F ‘

‘Sexo inválido

‘Sexo válido‘

Page 33: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 33/67

Program TESTA_LOGICA_OU

Var

INF : caractere

Inicio Leia

INF

Se (INF = ‘M’ .OU. INF = ‘F’ ) Então Escreva

“Sexo válido”

Senão

Escreva “Sexo inválido”

Fim_se

Fim.

Operador NÃO

Utilizado quando se necessita estabelecer que uma determinada condição deve ser não verdadeira ou deve ser não falsa. Inverte o estado lógico de uma condição.

Solicitar a digitação da média de um estudante e verificar: se a média não for maior que 5 informar

que o mesmo deverá fazer exame, senão informar que está aprovado.

Page 34: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 34/67

Programa TESTA_LOGICA_NÃO

Var

M : Real

Inicio

Leia M

Se NÃO(M > 5) Então

Escreva “Exame”

Senão

Escreva “Aprovado”

Fim_se

Fim.

Page 35: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 35/67

Exercícios - Programas Condicionais

1. Fazer o algoritmo que leia dois números inteiros distintos e mostrem o maior deles.

2. Fazer o algoritmo que leia dois números inteiros distintos e mostrem o menor deles.

3. Fazer o algoritmo que leia dois números inteiros e mostrem o maior deles. Se os números lidos

forem iguais, deverão mostrar a mensagem: “Os números digitados são iguais”.

4. Fazer o algoritmo que leia dois números inteiros e mostrem o menor deles. Se os números lidos

forem iguais, deverão mostrar a mensagem: “Os números digitados são iguais".

5. Fazer o algoritmo que leia os quocientes de uma equação do 1° grau, calculem e mostrem a

sua raiz. Obs: equação do 1° grau ax + b (a 0).

6. Fazer o algoritmo que leia os quocientes de uma equação do 2° grau, calculem e mostrem as

suas raízes. Obs: equação do 2° grau ax2 + bx + c (a 0). Se o Delta for menor que zero

deverão informar que não existem raízes reais.

7. Fazer o algoritmo que leia três valores. Verificar se eles podem ser lados de um triângulo (um

lado não pode ser maior que a soma dos outros dois). Em caso afirmativo, informar qual o tipo

de triângulo formado escaleno (quando possui todos os lados diferentes), eqüilátero (todos os

lados iguais) ou isósceles (dois lados iguais e um diferente)]. Caso não formem um triângulo,

informar com a mensagem “ Não formam um triângulo”.

8. Fazer o algoritmo que leia as duas notas de um aluno e calculem a média aritmética. Se a

média for maior ou igual a 7,0 o aluno está aprovado. Se a média for menor do que 4,0 o aluno

está reprovado. Se o aluno estiver no intervalo de 4,0 a 7,0, ele estará de exame. Informar a

média e a situação do aluno após os cálculos.

9. Fazer o algoritmo e o programa Pascal que efetuem o cálculo do reajuste de salário de um

funcionário. Considere que o funcionário deverá receber um reajuste de 15% caso o seu salário

seja menor que 500,00. Se o salário for maior ou igual a 500,00 mas menor ou igual a 1000,00,

o reajuste será de 10%. Caso o salário seja maior que 1000,00, o reajuste será de 5%. Informar

no final o novo salário.

10. Fazer o algoritmo que leia três números inteiros distintos e exibam o menor deles.

11. Fazer o algoritmo que leia três números reais distintos e exibam-nos em ordem crescente.

12. Fazer o algoritmo que leia três números inteiros distintos e exibam o maior deles.

13. Fazer o algoritmo que leia três números inteiros distintos e exibam-nos em ordem decrescente.

Page 36: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 36/67

14. Fazer o algoritmo que leia quatro notas de um aluno, calculem e exibam a média aritmética das

notas e a mensagem “aprovado”, para média superior ou igual a 7,0, ou a mensagem

“reprovado”, para média inferior a 7,0.

15. Fazer o algoritmo que leia a idade de uma pessoa e exibam uma mensagem de maioridade ou

não.

16. Fazer o algoritmo que leia dois números inteiros distintos e exibam o menor deles.

17. Fazer o algoritmo que leia três notas de um aluno. Calculem e exibam a média aritmética entre essas três notas e uma das mensagens da tabela abaixo:

Média Mensagem

0 5 reprovado

5 7 exame

7 10 aprovado

inclusive exclusive

18. Fazer o algoritmo que leia as 3 notas de um estudante e seus respectivos pesos ( N1:

peso 1 - N2: peso 2 – N3: peso 2 ). Calculem e exibam a média final (média ponderada) e o conceito final desse estudante. Os conceitos seguem a tabela abaixo:

Média final

(ponderada)

Conceito

8.0 10.0 A

7.0 8.0 B

6.0 7.0 C

5.0 6.0 D

< 5.0 E inclusive exclusive

19. Fazer o algoritmo que leia a idade de uma pessoa e classifiquem-na segundo o critério a seguir:

Idade Classificação

0 a 2 anos Recém-nascido

3 a 11 anos Criança

12 a 19 anos Adolescente

20 a 60 anos Adulto

acima de 60 anos Idoso

Page 37: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 37/67

20. Fazer o algoritmo que leia o código correspondente ao cargo de um funcionário e exibam o seu cargo e o percentual de aumento ao qual este funcionário tem direito, segundo a tabela abaixo:

Código Cargo Percentual

1 Escriturário 50%

2 Secretária 35%

3 Caixa 20%

4 Gerente 10%

5 Diretor 5%

21. Uma companhia de seguros tem três categorias de seguros baseadas na idade e

ocupação do segurado. Somente pessoas com pelo menos 18 anos e não mais de 70 anos

podem adquirir apólices de seguros. Quanto às classes de ocupações, foram definidos três

grupos de risco. A tabela a seguir fornece as categorias, em função da faixa de idade e do grupo

de risco:

Idade Grupo de Risco

baixo médio alto

18 a 24 7 8 9

25 a 40 4 5 6

41 a 70 1 2 3

Fazer o algoritmo que leia a idade e o grupo de risco (b – baixo, m – médio ou a – alto) e determinem e exibam o número do grupo de risco (1 a 9).

22. Fazer o algoritmo e o programa Pascal que recebam a medida de um ângulo em graus

(um número inteiro) e determinem e exibam em que quadrante se localiza esse ângulo. Considere os quadrantes abaixo:

Ângulo Quadrante

0 90 1 quadrante

90 180 2 quadrante

180 270 3 quadrante

270 360 4 quadrante inclusive exclusive

Page 38: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 38/67

23. Uma empresa decidiu dar uma gratificação de Natal aos seus funcionários, baseada no número de horas-extras e no número de horas que o funcionário faltou ao trabalho. O valor do prêmio é obtido consultando-se a tabela a seguir, em que:

H = (número de horas-extras) – (2/3 * (números de horas-faltas))

H (minutos) Prêmio ($)

> 2400 500

1800 2400 400

1200 1800 300

600 1200 200

<= 600 100 inclusive exclusive

Fazer o algoritmo que leia o número de horas-extras e o número de horas-faltas de um funcionário, em minutos. Em função desses valores, deverão exibir o número de horasextras e o número de horas-faltas, em horas, e o valor do prêmio.

Page 39: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 39/67

REVISÃO

Vamos fazer agora uma revisão do conceito que acabamos de ver. O assunto estruturas de Controle, chamado de Condicional ou Decisão é muito importante em programação. Portanto, vamos relembrar algumas passagens, para tudo ficar bem claro.

Conforme foi dito anteriormente, uma estrutura de seleção permite a escolha de um conjunto de ações e/ou estruturas que serão executadas a partir do resultado de uma condição (simples, composta ou encadeada), representada por uma expressão lógica. Vale a pena explorar um pouco mais um tipo em particular, de estruturas de decisão.

Como também foi citado anteriormente, é necessário o uso dos Operadores relacionais, para serem estabelecidas comparações e/ou testes lógicos:

Exemplo de aplicação de operadores relacionais – tabela verdade: Tendo duas variáveis A = 5 e B = 3, os resultados das expressões seriam:

Page 40: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 40/67

Além dos operadores relacionais, ao lado, é possível combinar as decisões com outros operadores: os lógicos.

Exemplo de aplicação de operadores lógicos –

tabela verdade mostrada abaixo

Exemplo de aplicação de operadores lógicos – tabela verdade:

Estrutura de decisão simples: Faça um algoritmo que leia dois valores numéricos, efetue a adição e apresente o seu

resultado, somente se o valor somado for maior que 10.

Page 41: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 41/67

Estrutura de decisão composta:

Se (condição) então

Instruções para condição seja verdadeira Senão

Instruções para a condição seja falsa Fim_se

Se (sexo = ‘M’) então

Escreva “Masculino” Senão

Escreva “Feminino” Fim_se

INÍCIO

A, B, C

"Digite o 1º valor: "

A

"Digite o 2º valor: "

B

A + B X

X > 10

X

FIM

N S

Programa Maior_que_10

Var

A: inteiro

B: inteiro

X: inteiro

Início

Escreva “Digi te o 1º valor: “

Leia A

Escreva “Digite o 2º valor: “

Leia B

X A + B Se (X > 10) então

Escreva X Fim_se

Fim.

Page 42: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 42/67

Exercício: Faça um algoritmo que leia dois valores numéricos e efetue a adição. Se a soma for

maior ou igual a 10, uma variável de resultado R receberá X + 5, caso contrário a variável

R receberá X – 5.

Programa Maior_igual_10

Var

A, B, X, R: inteiro

Início

Escreva “Digite o 1º valor: “

Leia A

Escreva “Digite o 2º valor: “

Leia B

X A + B

Se (X >= 10) então

R X + 5

Senão

R X - 5

Fim_se

Escreva “Resultado = “, R Fim.

INÍCIO

A, B, C

"Digite o 1º valor: "

A

"Digite o 2º valor: "

B

A + B X

X >= 10 N S

R X + 5 R

X - 5

"Resultado = ", R

Page 43: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 43/67

Outro exercício: Verificar uma variável “Sexo” digitada

Estrutura de decisão encadeada (Se’s aninhados): Nestas estruturas de decisão tem-se uma ou mais decisões que estão subordinadas a uma primeira. Dessa forma, no exemplo abaixo, a segunda condição será testada apenas se a primeira condição

for verdadeira.

Page 44: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 44/67

Se (1ª condição) então

Instruções para 1ª condição verdadeira

Senão

Se (2ª condição) então

Instruções para a 2ª condição verdadeira

Senão

Instruções para a 2ª condição falsa

Fim_se

Fim_se

Veja exemplo:

Se (sexo = ‘M’) então

Escreva “Masculino”

Senão

Se (sexo = ‘F’) então

Escreva “Feminino”

Senão

Escreva “Letra Inválida”

Fim_se

Fim_se

Page 45: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 45/67

Exercício: Receber duas notas e calcular a média aritmética e mostrar o resultado:

Page 46: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 46/67

Ex.: Fazer um algoritmo que ao receber o salário atual de um funcionário, calcule o valor do novo salário reajustado de acordo com a tabela abaixo:

Page 47: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 47/67

A seguir, um algoritmo que mostra a solução de um problema de

verificação de SEXO com estrutura encadeada, com 3 possibilidades:

Page 48: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 48/67

Exercícios:

1) O critério de avaliação semestral de determinada Faculdade segue a regra:

P1 – primeira avaliação do semestre. P2 – segunda avaliação do semestre.

Ativ – nota atribuída pelas atividades realizadas no semestre.

Média = P1 x 4 + P2 x 4 + Ativ x 2

10

Faça um algoritmo que leia as notas das provas (P1 e P2) e da atividade (Ativ), calcule e mostre a média, seguindo o cálculo acima e o resultado de acordo com a tabela:

Page 49: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 49/67

2) Uma Universidade tem problemas com arredondamento das médias dos alunos, pois cada professor estipula um critério de arredondamento. Devemos elaborar um algoritmo,

para a secretaria da Universidade, resolvendo esse problema. O programa deve solicitar uma nota e fazer o devido ao arredondamento. Regras:

Notas que ultrapassem 0,5 de resto serão arredondas para CIMA. Ex: 4,6 5,0

Notas que abaixo ou igual a 0,5 de resto serão arredondas para BAIXO. Ex: 4,5 4,0

3) Faça um algoritmo que leia 4 números e imprima: O maior número; O menor número; O número do meio.

4) Um pediatra elaborou uma lista com pesos prováveis para meninos e meninas entre 1 e

3 anos e, freqüentemente, precisa consultar a lista. Escreva um algoritmo que, dada a idade de uma criança de 1 a 3 anos, mostre na tela os pesos prováveis para meninos e meninas da mesma idade, seguindo a tabela:

dade Meninos Meninas

1 ano De 8.5 kg a 12.5kg De 7.5kg a 11.5kg

2 anos De 10.1 kg a 15.2kg De 9.8kg a 14.5kg

3 anos De 11.7 kg a 18 kg De 11.4kg a 17.950kg

Exemplo:

Escolha uma idade de 1 a 3 anos: 2 Pesos Prováveis: Meninos Pesos Prováveis: Meninas De 10.1 kg a 15.2kg De 9.8kg a 14.5kg

5) Desenvolva um algoritmo que atenda à seguinte necessidade: uma cooperativa de leite paga, a cada um de seus produtores cooperados, por volume de leite entregue

diariamente. Devido à grande quantidade de fraudes (adicionamento de água ao leite, por exemplo) e erros na leitura do volume dos tarros de leite, a cooperativa começará a pagá-los por massa. Para isso comprou uma balança e um densímetro e necessitará de um programa para cálculo. Na balança serão jogados e misturados os conteúdos de todos os tarros de leite de um determinado produtor. A balança informará a massa e o densímetro a densidade. O programa receberá, via teclado, esses dois dados mais o preço por kg de leite vigente naquele dia. Após isto, o programa deverá apresentar em tela:

1) Os valores digitados;

2) O volume de leite calculado (volume = massa / densidade);

3) O valor em Reais a ser pago a aquele cooperado;

4) Classificar o leite do cooperado dentro de uma das 3 faixas de densidade existentes:

• Categoria I (abaixo de 1,14 kg/l);

• Categoria II (entre 1,14 e 1,20 kg/l);

• Categoria III (acima de 1,20 kg/l);

Page 50: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 50/67

6) Este exercício possibilitará a utilização dos novos recursos aprendidos, através dessa

aplicação pedagógica: faça um algoritmo que leia três valores numéricos, verifique se eles formam um triângulo. Se sim, mostre o tipo do triângulo. Condições para existência de um triângulo:

1) A > 0 e B > 0 e C > 0 2) A < B + C e B < A + C e C < A + B 3) A = B e A = C Triângulo Equilátero 4) A = B ou A = C ou B = C Triângulo Isósceles 5) A <> B e A <> C e B <> C Triângulo Escaleno

Para uma reflexão...sempre Antes dos estudos...

O Bambu Chinês (Autor desconhecido) Depois

de plantada a semente do bambu, não se vê nada por aproximadamente 5 anos, exceto um lento

desabrochar de um diminuto broto a partir do bulbo.

Durante 5 anos, todo o crescimento é subterrâneo, invisível a olho nu, mas uma maciça e fibrosa estrutura

de raiz que se estende vertical e horizontalmente pela terra está sendo construída.

Então, no final do 5º ano, o bambu chinês cresce até atingir a altura de 25 metros.

O escritor Stephen Covey escreveu: "Muitas coisas na vida pessoal e profissional são iguais ao bambu

chinês. Você trabalha, investe tempo, esforço, faz tudo o que pode para nutrir seu crescimento, e às vezes

não vê nada por semanas, meses ou anos. Mas se tiver paciência para continuar trabalhando, persistindo

e nutrindo, o seu 5.º ano chegará, e com ele virão um crescimento e mudanças que você jamais esperava..."

O bambu chinês nos ensina que a persistência e a paciência são os caminhos para alcançarmos nossos sonhos e que é preciso muita fibra para chegar às alturas, e ao mesmo tempo, muita humildade e flexibilidade para se curvar ao chão.

Bons estudos

Page 51: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 51/67

Estruturas de Controle Laços de Repetição

Estruturas de Controle: estrutura de seleção (Escolha/caso)

• O escolha/caso é um comando de tomada de decisão. • Pode ser comparado com o se/senão, porém o escolha/caso não aceita expressões, apenas variáveis.

• O escolha/caso testa a variável e executa a declaração cujo caso corresponda ao valor atual da variável.

• Sem dúvida alguma o mais importante dos dois é o se/senão, mas o comando escolha/caso tem aplicações

valiosas. Mais uma vez vale lembrar que devemos usar o comando certo no local certo. Isto assegura um

código limpo e de fácil entendimento.

• O comando escolha/caso é próprio para se testar uma variável em relação a diversos valores préestabelecidos

Usando a estrutura de decisão (se/senão)

SEXO = ‘M’

“Masculino”

S N

SEXO

SEXO = ‘m’

“Masculino” SEXO

= ‘F’

“Feminino” SEXO

= ‘f’

“Feminino” “Sexo Inválido”

S

S

S

N

N

N

... Leia SEXO Se (SEXO = ‘M’) então Escreva “Masculino” Senão Se (SEXO = ‘m’) então Escreva “Masculino” Senão Se (SEXO = ‘F’) então Escreva “Feminino” Senão Se (SEXO = ‘f’) então Escreva “F eminino” Senão Escreva “Sexo Inválido” Fim_se Fim_se Fim_se Fim_se ...

Page 52: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 52/67

Usando a estrutura de seleção (escolha/caso)

Usando a estrutura de seleção (escolha/caso)

... Leia SEXO Escolha (SEXO) Caso ‘M’: Escreva “Masculino” Caso ‘m’: Escreva “Masculino” Caso ‘F’: Escreva “Feminino” Caso ‘f’: Escreva “Feminino” Senão Escreva “Sexo Inválido” Fim_escolha ...

... Leia MES Escolha (MES) Caso 1: Escreva “Janeiro” Caso 2: Escreva “Fevereiro” Caso 3: Escreva “Março”

... Caso 12: Escreva “Dezembro” Senão Escreva “Mês Inválido” Fim_escolha ...

Page 53: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 53/67

Estruturas de Controle: Teste lógico no início do looping (Enquanto) É uma estrutura que repete um processamento durante um certo número de vezes. Caracteriza-se por

repetir a execução do trecho de instruções subordinado a esse looping enquanto é obedecida a condição

de controle.

Ex: Faça um algoritmo que leia cinco números, multiplique-os por três e exiba-os:

Programa Numeros

Var

I, N, R: inteiro

Início

I 1

Enquanto (I< = 5) faça

Leia N

R N * 3

Escreva R

I I + 1 Fim_enquanto

Fim.

E nquanto ( > condição < ) faça < instruções executadas enqua nto a condição é verdadeira>

demais instruções e procedimentos < > Fim _enquanto

CONDIÇÃO

INSTRUÇÕES EXECUTADAS ENQUANTO A CONDIÇÃO É VERDADEIRA

DEMAIS INSTRUÇÕES E PROCEDI-

MENTOS

N

S

Page 54: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 54/67

Ex: Faça um algoritmo que leia N números quaisquer, enquanto o usuário desejar, multiplique-os

por três e exiba-os:

Programa Numeros2

Var

N, R: inteiro

RESP: caractere

Início

RESP ‘S’

Enquanto (RESP = ‘S’ ou RESP = ‘s’) faça

Leia N

R N * 3

Escreva R

Escreva “Deseja Continuar?”

Leia RESP

Fim_enquanto

Fim.

Page 55: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 55/67

Ex.: Faça um algoritmo que escreva os valores pares existentes de 1 a 100:

Programa Numeros_Pares

Var

CONT : inteiro

Início

CONT 1

Enquanto (CONT < = 100) faça

Se (CONT mod 2 = 0) então

Escreva CONT, “eh par”

Fim_se

CONT CONT + 1

Fim_enquanto

Fim.

Inicio

CONT

CONT 1

CONT < = 100

CONT MOD 2 = 0

CONT , “ eh par”

CONT CONT + 1

Fim

S S

N

N

Page 56: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 56/67

Veja dois exercícios aplicando o conceito de repetição:

1. Faça um algoritmo que calcule o fatorial de um número N.

0! = 1

1! = 1

N! = N * N-1 * ...

Exemplo: 3! = 3 * 2 * 1 6

2. Receber notas de N alunos e no final mostrar:

• A menor nota

• A maior nota e

• A nota média

N FAT FAT = FAT * CONT

1 3 1 1 * 1 1

2 3 1 1 * 2 2

3 3 2 2 * 3 6

4 3 6 ----

Page 57: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 57/67

Programa Fatorial_de_N

Var

FAT, CONT, N: inteiro

RESP: caractere

Início

RESP ‘S’

Enquanto (RESP = ‘S’ ou RESP = ‘s’) faça

FAT 1

CONT 1

Escreva “Informe o nº para calcular:

Leia N

Enquanto (CONT <= N) faça

FAT FAT * CONT

CONT CONT + 1

Fim_enquanto

Escreva “Fatorial de “, N, “ = “, FAT

Escreva “Deseja Continuar? ”

Leia RESP

Fim_enquanto

Fim.

Teste de mesa:

Page 58: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 58/67

Programa Maior_Menor_Nota Var NT, ME, MA, MED: real N, I: inteiro RESP: caractere Inicio RESP ‘S’ Enquanto (RESP=‘S’ ou RESP=‘s’) faça ME 0 MA 0 MED 0 I 1 Escreva “Digite o numero de alunos: “ Leia N Faça Escreva “Digite a”, I, “ª nota: “ Leia NT Se (I = 1) então ME NT MA NT Senão Se (NT < ME) então ME NT Fim_se Se (NT > MA) então MA NT Fim_se Fim_se MED MED + NT I I + 1 Enquanto (I <= N) MED MED/N Escreva “Menor nota: “, ME Escreva “Maior nota: “, MA Escreva “Média.......: “, MED Escreva “Digite S para continuar: “ Leia RESP Fim_enquanto Fim

Page 59: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 59/67

Desenvolva o portugol referente ao diagrama acima

Exercícios Propostos:

6) Faça um algoritmo que calcule o resultado de S na série dada abaixo. O

usuário deve informar, via teclado, o número inteiro que representa o valor

de n:

7) Elaborar um algoritmo que calcule a média das notas dos alunos de uma

sala de aula qualquer, sendo que em primeiro lugar deverá ser solicitada a

digitação da quantidade de alunos existentes nessa sala e, posteriormente,

a digitação de todas as notas dos alunos da mesma.

Média = ( N1 + N2 + N3 + N4 + N5 + ... + Nm ) / m

Exemplo: Digite a quantidade de alunos da sala (m): 5 <Enter>

Digite N1: 5.5 <Enter>

Digite N2: 4.5 <Enter>

Digite N3: 3.0 <Enter>

Digite N4: 5.0 <Enter>

Digite N5: 7.0 <Enter>

Média da sala: 5.0

Estruturas de controle

Page 60: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 60/67

Estruturas de repetição/laços de repetição (faça-enquanto)

• Idem estrutura enquanto/faça • A diferença está no controle da repetição que ocorre no final

• As instruções serão executadas pelo menos uma vez

Faça

Instrução1

Instrução2

Enquanto (condição)

Instruçã3

do {

Instrução1; Instrução2;

} while(condição);

Observa-se que a diferença fundamental em relação à forma Enquanto/faça, está no controle das

repetições, que ocorre no final. Por conta disso, mesmo que a condição não seja satisfeita, a(s) instrução (ões) do laço será (ao) executada(s) pelo menos uma vez. Veja agora, como fica o algoritmo que escreve os valores pares existentes de 1 a 100, usando a nova

estrutura de controle:

INSTRUÇÃO 1

INSTRUÇÃO 2

CONDIÇÃO

N

INSTRUÇÃO 3

S

Page 61: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 61/67

Page 62: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 62/67

Exercícios Propostos:

1) Faça um algoritmo para calcular e exibir o resultado de S na série:

S = x / 1 - x / 2 + x / 3 - x / 4 + x / 5 - ..... + x / 19 - x / 20 2) Faça um algoritmo para calcular e exibir o resultado de S para os N primeiros

termos da série:

S = 1/(35+36) – 2/(36+37) + 3/(37+38) - ... + N

3) calcular o MMC entre três números.

Exemplo: MMC entre 2, 3 e 4

2, 3, 4

1, 3, 2

1, 3, 1

1, 1, 1

Relembrando: nas páginas anteriores, foram estudadas as estruturas de controle

Enquanto e Faça/enquanto nas memórias de aulas anteriores Teste lógico no início do looping (Enquanto)

É uma estrutura que repete um processamento durante um certo número de vezes. Caracteriza-se

por repetir a execução do trecho de instruções subordinado a esse looping enquanto é obedecida a condição de controle.

2

2

3

MMC = 12

Page 63: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 63/67

Teste lógico no fim do looping (faça-enquanto)

• Idem estrutura enquanto/faça

• A diferença está no controle da repetição que ocorre no final

• As instruções serão executadas pelo menos uma vez

Faça

Instrução1

Instrução2

Enquanto (condição)

Instruçã3

Observa-se que a diferença fundamental em relação à forma Enquanto/faça, está no controle das

repetições, que ocorre no final. Por conta disso, mesmo que a condição não seja satisfeita, a(s) instrução

(ões) do laço será (ao) executada(s) pelo menos uma vez.

E nquanto ( > condição < ) faça < instruções executadas enquanto a condição é verdadeira>

> demais instruções e procedimentos < Fim _enquanto

CONDIÇÃO

INSTRUÇÕES EXECUTADAS ENQUANTO A CONDIÇÃO É VERDADEIRA

DEMAIS INSTRUÇÕES E PROCEDI-

MENTOS

N

S

Page 64: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 64/67

Agora veremos a última estrutura de controle que é o laço PARA

• Tem a mesma finalidade das estruturas anteriores, ou seja,

processar instruções por “n” vezes de acordo com o desejo do

programador

• A variável de controle possui previamente os valores de início e fim.

...

Início

...

Para X de 1 até 10 passo 1 faça

Instrução 1

Instrução 2

Fim_para

...

Fim

Na linguagem C:

for (x=1; x<=10; x++)

{

Instrução1;

Instrução 2;

}

Onde: X variável de controle

1 valor inicial da variável X

10 valor final da variável X

1 passo/salto/variação/incremento de X

Ex.: mostrar todos os valores de 1 a 1250:

Page 65: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 65/67

Programa Números_1_a_1250

Inicio

Var

VAL: inteiro

Para VAL de 1 até 1250 passo 1 faça

Escreva “Valor = “, VAL

Fim_para

Fim

for (VAL = 1; VAL<=1250;VAL++)

printf(“Valor = %d”,VAL);

Ex.: mostrar todos os valores de 1 a 1250 que sejam múltiplos de 7:

Próximo exercício:

VAL 1 , 1250 , 1

INÍCIO

FIM

VAL

VAL , “é multiplo

de 7 ”

VAL mod 7 = 0

N S

Programa Números_Multiplos_7

Var

VAL: inteiro

Inicio

Para VAL de 1 até 1250 passo 1 faça Se ( VAL mod 7 = 0) então

Escreva VAL, “é múltiplo de 7 ” Fim_se

Fim_para

Fim

for (...)

if (VAL % 7 == 0)

printf(“....”);

VAL 1 , 1250 , 1

INÍCIO

FIM

VAL

“Valor = “ , VAL

Page 66: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 66/67

Calcular o fatorial de um número N qualquer:

Programa Fatorial_N

Var

RESP, N, FAT, VAL: inteiro

Inicio

RESP 1

Enquanto (RESP = 1) faça

FAT 1

Escreva “Numero para calculo: “

Leia N Para VAL de 1 até N passo 1 faça

FAT FAT * VAL

Fim_para Escreva “Fatorial de “, N, “ = “, FAT

Escreva “Digite [1] para continuar: “

Leia RESP

Fim_enquanto

Fim

Exercício: Definir a seqüência de Fibonacci para os N termos abaixo:

1,1,2,3,5,8,13,...N

Page 67: Apostila  logica algoritmos e estrutuara de dados

www.pronatecvja.blogspot.com.br – Lógica de Programação – Algoritmos e Estruturas de Dados - Página: 67/67

Exercícios Propostos – faça-os usando o laço PARA:

1) Faça um algoritmo para calcular e exibir o resultado de S na série: S

= x / 1 - x / 2 + x / 3 - x / 4 + x / 5 - ..... + x / 19 - x / 20 2) Faça um algoritmo para calcular e exibir o resultado de S para os N

primeiros termos da série: S = 1/(35+36) – 2/(36+37)+3/(37+38) - ... + N 3) calcular o MMC entre três números. Exemplo: MMC entre 2, 3 e 4

2, 3, 4

1, 3, 2

1, 3, 1

1, 1, 1

4) Faça um algoritmo que receba um numero qualquer como base e o

enésimo expoente faça os cálculos. Veja exemplo:

Número = 5 e expoente = 3

50 = 1

51 = 5

52 = 25

53 = 125

5) Desenvolva um algoritmo que receba dados para uma pesquisa

entre N alunos, para verificar acessos a redes de relacionamentos:

1 – Orkut

2 – twitter

3 – facebook

4 – outros

Para encerrar deve ser digitado 0 (zero) e no final devem ser

mostrados:

Rede Nº de alunos %

-------------------------------------------------------

Orkut

Twitter

Facebook

Outros

-------------------------------------------------------

Totais 100

2

2

3

MMC = 12