Apostila Algoritmo e Lógica I

25
Algoritmo e Programação de Computadores 1. Introdução à Programação 1.1 Organização Básica de um Computador O computador é composto basicamente de 4 unidades: unidade de entrada, unidade de saída, unidade de processamento e memória. A unidade de entrada, é um dispositivo utilizado para fazer a interação entre o usuário e o computador. A unidade de saída, por sua vez, serve para que o usuário veja os resultados do processamento realizado pelo computador. A unidade central de processamento, também conhecida como CPU, é responsável por todo o processamento requerido, transformando os dados de entrada em dados de saída. Na memória são armazenados os dados e informações temporariamente, que serão utilizados no processamento. E ntrada P rocessam ento Saída M emória 1.2 Linguagem de Máquina As unidades componentes de um computador precisam se comunicar entre si. Para que haja comunicação é necessário que se estabeleça uma linguagem. A linguagem utilizada para comunicação entre os componentes de um computador é chamada de linguagem de máquina, constituída por dois símbolos básicos (zero e um), cada um deles denominados de bit (binary digit). Uma linguagem de máquina, portanto, é constituída, por uma seqüência de bits, ou seja, seqüências de dígitos zero e um. Para que haja a comunicação do homem com o computador, é necessário que as palavras da linguagem escrita seja traduzida para a linguagem de máquina. 1

Transcript of Apostila Algoritmo e Lógica I

Page 1: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

1. Introdução à Programação

1.1 Organização Básica de um Computador

O computador é composto basicamente de 4 unidades: unidade de entrada, unidade de saída, unidade de processamento e memória. A unidade de entrada, é um dispositivo utilizado para fazer a interação entre o usuário e o computador. A unidade de saída, por sua vez, serve para que o usuário veja os resultados do processamento realizado pelo computador. A unidade central de processamento, também conhecida como CPU, é responsável por todo o processamento requerido, transformando os dados de entrada em dados de saída. Na memória são armazenados os dados e informações temporariamente, que serão utilizados no processamento.

Entrada Processamento Saída

Memória

1.2 Linguagem de Máquina

As unidades componentes de um computador precisam se comunicar entre si. Para que haja comunicação é necessário que se estabeleça uma linguagem. A linguagem utilizada para comunicação entre os componentes de um computador é chamada de linguagem de máquina, constituída por dois símbolos básicos (zero e um), cada um deles denominados de bit (binary digit). Uma linguagem de máquina, portanto, é constituída, por uma seqüência de bits, ou seja, seqüências de dígitos zero e um.Para que haja a comunicação do homem com o computador, é necessário que as palavras da linguagem escrita seja traduzida para a linguagem de máquina.

1.3 Algoritmo

Um algoritmo nada mais é do que “um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito”.Ex.:

1

Page 2: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

Considerando o seguinte problema, dados três valores não nulos, a, b, c, determinar a sua média aritmética. As tarefas a serem executadas para a solução deste problema, podem ser descritas da seguinte forma:

1. Obter os valores de a, b, c2. Calcular a média aritmética através da fórmula: (a+b+c)/33. Comunicar o resultado obtido: média aritmética4. Terminar

A seqüência de tarefas acima, especificadas passo a passo, é um algoritmo, pois é formado por um conjunto finito de regras que podem ser consideradas bem definidas e cuja execução produz a solução do problema proposto, após um tempo finito.

1.4 Linguagem

Uma linguagem escrita (ou linguagem de programação) pode ser definida como um conjunto de símbolos e regras (instruções), utilizados no processo de comunicação homem-máquina. O computador foi concebido para executar instruções escritas em linguagens de máquina, portanto, o computador é capaz de executar um algoritmo escrito nesta linguagem (programa).

1.5 Programa

Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de computador (Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que são interpretados e executados por uma máquina, no caso um computador.Um algoritmo escrito numa linguagem de computador é chamado de programa fonte ou simplesmente programa. As instruções de um programa fonte são chamadas comandos. O programa fonte é traduzido para a linguagem de máquina. Há dois tipos que programas que fazem esta tradução: os interpretadores e os compiladores. Os interpretadores traduzem os comandos para a linguagem de máquina um a um enquanto que os compiladores traduzem todo o programa para a linguagem de máquina.

2. Introdução à Linguagem Algorítimica

2.1 Constante

Uma informação é constante quando não sofre nenhuma alteração no decorrer do tempo.Uma constante pode ser:

- um número (inteiro ou real)- um valor lógico- um caractere

Ex.: PI, NP, 5, 6.3, 0, “Aprovado”, falso

2.2 Variável

Uma informação é variável quando tem a possibilidade de ser alterada em algum instante no decorrer do tempo.Uma variável é uma posição de memória a qual estão associados um identificador e um tipo de dado. Pelo nome dado a essa variável temos acesso a seu conteúdo, podendo manipulá-lo (alterar, consultar, apagar, etc).

Sintaxe: Var<lista de identificadores> : <tipo de dado>

Onde:

- Lista de identificadores: se tiver mais de um identificador basta separá-los por vírgula e será usada no programa para fazer referência àquela variável. O primeiro caractere do identificador deverá sempre começar por uma letra, somente composto por letras, números e

2

Page 3: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

sublinhado ( _ ), não deve conter caracteres especiais (espaço em branco, hífen, asterisco, etc.Ex.: media_aluno, soma, ax, y, nomedoaluno

Cuidado: nome de identificadores não podem conter palavras reservadas.

- Tipo de dado: associado a uma variável é o conjunto de elementos que nela podem ser armazenados.Utilizaremos quatro tipos de dados: inteiro, real, cadeia de caracteres e lógico (ou booleano). Serão definidos como(observe que não possuem acentos): inteiro: define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais.

real: define variáveis numéricas do tipo real, ou seja, com casas decimais. caractere: define variáveis do tipo string, ou seja, cadeia de caracteres.

logico: define variáveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO.

2.3 Expressões Aritméticas

O Visualg 2.0 é capaz de avaliar as seguintes expressões aritméticas que envolvam os seguintes operadores:

Operadores unários( - e +): isto é, são aplicados a um único operando. São os operadores aritméticos de maior precedência.Ex.: -3, +x.Enquanto o operador unário - inverte o sinal do seu operando, o operador + não altera o valor em nada o seu valor.

Operador Significado^ Potenciação* Multiplicação/ Divisão+ Soma- Subtração\ Operador de divisão inteira. Por exemplo, 5 \ 2 = 2. Tem a mesma

precedência do operador de divisão tradicionalMod Operador de módulo (isto é, resto da divisão inteira). Por exemplo, 8 % 3 = 2.

Tem a mesma precedência do operador de divisão tradicional.

Prioridade das operações- Parênteses mais internos- Efetuar as funções- Efetuar as potências e raízes- Efetuar a multiplicações e divisões- Efetuar as adições e subtrações

2.4 Expressões Lógicas

Operadores RelacionaisUtilizamos os operadores relacionais para realizar comparações entre dois valores de mesmo tipo de dado. Tais valores são representados por constantes, variáveis (identificadores) ou expressões aritméticas. O resultado obtido de uma relação é sempre um valor lógico (verdadeiro ou falso).

Maior que >Menor que <Maior igual a >=Menor igual a <=

3

Page 4: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

Igual a =Diferente de <>

Ex.:2*4 = 24/8(15%4) < (19%6)

Operadores Lógicos

R1 R2 (R1) e (R2) (R1) ou (R2)Verdadeiro Verdadeiro Verdadeiro VerdadeiroVerdadeiro Falso Falso Verdadeiro

Falso Verdadeiro Falso VerdadeiroFalso Falso Falso Falso

R1 nao (R1)Verdadeiro Falso

Falso VerdadeiroPrioridade entre operadores lógicos

naoe ou

Prioridades entre todos os operadores

Parênteses mais internosFunções matemáticasOperadores aritméticosOperadores relacionaisOperadores lógicos

2.5 Comando de atribuiçãoÉ o ato de colocar um valor dentro de uma variável. O valor a ser atribuído deve ser compatível com o tipo de variável.Sintaxe:

Identificador de variável <- expressãoEx.:

a <- 3Valor1 <- 1.5Valor2 <- Valor1 + avet[1] <- vet[1] + (a * 3)matriz[3,9] <- a/4 - 5nome_do_aluno <- "José da Silva"sinalizador <- FALSO

2.6 Estrutura/Execução de um programa na Linguagem Algorítmica

A estrutura de um programa escrito em linguagem algorítmica terá a seguinte estrutura.

Algoritmo "<nome do algoritmo>"var< declaração de variáveis>

4

Page 5: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

inicio< lista de comandos>fimalgoritmo

As palavras algoritmo e fimalgoritmo fazem parte da sintaxe da linguagem e sempre delimitam o inicio e fim de um algoritmo; a < declaração de variáveis> é a seção ou parte do algoritmo onde descrevemos os tipos de dados que serão usados na lista de comandos.; inicio indica o fim das declarações e o início da seção de comandos; < lista de comandos > é apenas uma indicação de que entre as palavras inicio e fimalgoritmo podemos escrever uma lista com uma ou mais instruções ou comandos. É importante salientar que, quando um algoritmo é “executado”, as instruções ou comandos de um algoritmo são sempre executados na ordem em que aparecem no mesmo. As palavras que fazem parte da sintaxe da linguagem são palavras reservadas, ou seja, não podem ser usadas para outro propósito em um algoritmo que não seja aquele previsto nas regras de sintaxe. A palavra algoritmo, por exemplo, é uma palavra reservada.

2.7 Comando de Entrada

Vimos anteriormente que a maioria dos programas manipula dados que são fornecidos pelo usuário durante a execução do programa. Estes dados, repetindo, constituem a entrada do programa e, naturalmente, devem ser armazenados em variáveis. O comando do Visualg que permite que o usuário digite no teclado algum dado durante a execução de um programa e que armazena este dado na memória é chamado de comando de entrada e deve ser escrito com a seguinte sintaxe:Sintaxe:

Leia (identificador de variável)Exemplo:

leia (NumeroConta)leia (NumeroAgencia)leia (NomeCliente)

É incorreto usar:

leia (NumeroConta+60)leia (12345)leia (NomeCliente+Sobrenome)

2.8 Comando de Saída

Um comando de saída é utilizado quando necessitamos apresentar os resultados da execução do algoritmo no vídeo (monitor do computador).

Sintaxe:Escreva (identificador de variável)

ouEscreva (expressão)

ouEscreva (“mensagem”)

ou uma combinação destes casos.

No primeiro caso, o conteúdo da variável associada ao comando é exibido na tela do vídeo; Ex.:

Algoritmo “Exibir uma variável”Var

Frase : caracterInicio

Leia (Frase)

5

Page 6: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

Escreva (Frase)Fimalgoritmo

6

Page 7: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

No segundo caso, a expressão é avaliada e o seu resultado é exibido;Ex.:Algoritmo “Exibir uma expressão”

Vara, b, c : real

InicioLeia aLeia bLeia cEscreva ((a+b+c)/3)

Fimalgoritmo

No terceiro caso, a mensagem escrita entre aspas é exibida.Ex.:Algoritmo “Exibir uma mensagem”

InicioEscreva (“Estou aprendendo a programar”)

Fimalgoritmo

OBS.: No Visualg existem dois comandos escreva com finalidades diferentes quando usado consecutivamente.

Escreval (<expressão ou identificador ou constante>)Mostra o primeiro resultado na mesma linha depois em linhas diferentes.

Escreva (<expressão ou identificador ou constante>)Mostra o resultado na mesma linha, mas em colunas diferentes.

Exemplo X <- 3.5Y <- 4Escreva ("O valor de X é", X)Escreva (" E o valor de Y é ", Y)Escreval (" A soma de X e Y é", X+Y)Escreval ("O valor de X é", X)Escreval ("E o valor de Y é ", Y)Escreval ("A soma de X e Y é", X+Y)

Faria com que aparecesse na tela:O valor de X é 3.5 E o valor de Y é 4 A soma de X e Y é 7.5O valor de X é 3.5E o valor de Y é 4A soma de X e Y é 7.5

2.9 Métodos para construção de algoritmosa) Ler atentamente o enunciado do problema;

b) Retirar do enunciado a relação das entradas de dados;

c) Retirar do enunciado a relação das saídas de dados;

d) Determinar o que deve ser feito para transformar as entradas determinadas nas saídas especificadas. Nesta fase teremos a construção do algoritmo propriamente dito;

e) Executar o algoritmo. Implica em executar todas as ações descritas seguindo um fluxo de execução estabelecido, verificando a existência de possíveis erros no desenvolvimento do algoritmo. Essa atividade é conhecida como “teste de mesa”.

7

Page 8: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

2.10 Exercícios (Ler, Escrever, Atribuição e Funções)

Todos os exercícios deverão ser feitos obedecendo as regras do Português Estruturado utilizado pelo interpretador Visualg. Somente utilize os comandos vistos, anteriormente, em aula.

1. Imprimir a mensagem: ALGORITMO SÓ SE APRENDE PRATICANDO.

2. Imprimir seu nome.

3. Ler um número e imprimi-lo.

4. Ler três números inteiros e imprimi-los.

5. Ler um número inteiro e imprimir seu sucessor e seu antecessor.

6. Ler nome, endereço e telefone e imprimi-los.

7. Entrar com um número e imprimir a seguinte saída:NUMERO:QUADRADO:RAIZ QUADRADA:

8. Entrar com nome e idade. Imprimir a seguinte saída:NOME:IDADE:

9. Efetuar a leitura de um número inteiro e apresentar o resultado do quadrado deste número.

10. Ler dois valores inteiros (variáveis A e B) e efetuar as operações de adição, subtração, multiplicação e divisão de A por B, apresentando ao final os quatro resultados obtidos.

11. Escreva um algoritmo que forneça o valor em graus Fahrenheit, de uma temperatura expressa em graus Celcius.

12. Faça um algoritmo para calcular o volume de uma esfera de raio r.

13. Faça um algoritmo que, para quatro valores reais, a, b, c e d determine:a) a média aritmética (MA);b) a média harmônica (MH);c) a média geométrica (MG);d) a média quadrática (MQ).

14. Construir um programa que efetue o cálculo do salário líquido de um professor. Para fazer este programa você deverá possuir alguns dados, tais como: valor da hora aula, número de aulas dadas no mês e percentual de desconto do INSS. Em primeiro lugar, deve-se estabelecer qual será o seu salário bruto para efetuar o desconto e ter o valor do salário líquido.

ht = horas trabalhadas no mêsvh = valor hora aulapd = percentual de desconto

8

Page 9: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

sb = salário brutotd = total de descontosl = salário líquido

15. Efetuar o cálculo da quantidade de litros de combustível gasta 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 programa deverá apresentar os valores da velocidade média, tempo gasto na viagem, a distância percorrida e a quantidade de litros utilizada na viagem.

16. Ler a temperatura em graus Fahrenheit e apresentá-la 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.

17. Ler dois valores para as variáveis A e B, efetuar a troca de valores de forma que a variável A passe a possuir o valor da variável B e que a variável B passe a possuir o valor da variável A. Apresentar os valores trocados.

18. Efetuar o cálculo do valor de uma prestação em atraso, utilizando a fórmula:PRESTAÇÃO = VALOR + (VALOR * (TAXA / 100) * TEMPO).

19. Uma loja de animais precisa de um programa para calcular os custos de criação de coelhos. O custo é calculado com a fórmula CUSTO = (NUM_COELHOS * 0.70) / 18 + 10. O programa deve ler um valor para a variável NUM_COELHOS e apresentar o valor da variável CUSTO.

3. Iniciando o Visualg 2.0 (Interpretador de Linguagem Algorítmica)Fonte: Ajuda do Visualg 2.0

O Visualg 2.0 é uma ferramenta que permite ao aluno escrever um programa num ambiente próximo da realidade, ou seja, o aluno poderá executar o seu algoritmo utilizando o computador, vendo na prática o que acontece com um programa. Esta ferramenta simula o que acontece na tela do computador com o uso dos famosos comandos "leia" e "escreva", bem como possibilitar a verificação dos valores das variáveis, o acompanhamento passo a passo da execução de um algoritmo (pelo seu grande valor didático), e até mesmo suportar um modo simples de depuração. Aliado a tudo isto, deveria estar um editor de texto com recursos razoáveis (tais como abrir e salvar arquivos) e que dispusesse de todos os principais recursos de um ambiente gráfico do Visualg.

9

Page 10: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

3.1 A Tela Principal do VisuAlg

A tela do VisuAlg compõe-se da barra de tarefas, do editor de textos (que toma toda a sua metade superior), do quadro de variáveis (no lado esquerdo da metade inferior), do simulador de saída (no correspondente lado direito) e da barra de status. Quando o programa é carregado, já apresenta no editor um "esqueleto" de pseudocódigo, com a intenção de poupar trabalho ao usuário e de mostrar o formato básico que deve ser seguido. Explicaremos a seguir cada componente da interface do

3.2 A Barra de Tarefas

Contém os comandos mais utilizados no VisuAlg (estes comandos também podem ser acessados pelo menu ou por atalhos no teclado).

Abrir (Ctrl-A): Abre um arquivo anteriormente gravado, substituindo o texto presente no editor. Se este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.

10

Page 11: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

Novo (Ctrl-N): Cria um novo "esqueleto" de pseudocódigo, substituindo o texto presente no editor. Se este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.Salvar (Ctrl-S): Grava imediatamente o texto presente no editor. Na primeira vez que um novo texto é gravado, o VisuAlg pede seu nome e localização.Imprimir: Imprime imediatamente na impressora padrão o texto presente no editor. Para configurar a impressão, use o comando Imprimir do menu Arquivo (acessível também pelo atalho Ctrl-P).Cortar (Ctrl-X): Apaga texto selecionado, armazenando-o em uma área de transferência.Copiar (Ctrl-C): Copia o texto selecionado para a área de transferência.Colar (Ctrl-V): Copia texto da área de transferência para o local em que está o cursor.Gravar bloco de texto: Permite a gravação em arquivo de um texto selecionado no editor. A extensão sugerida para o nome do arquivo é .inc.Inserir bloco de texto: Permite a inserção do conteúdo de um arquivo. A extensão sugerida para o nome do arquivo é .inc.Desfazer (Ctrl-Z): Desfaz último comando efetuado.Refazer (Shift-Ctrl-Z): Refaz último comando desfeito.Localizar (Ctrl-L): Localiza no texto presente no editor determinada palavra especificada.Substituir (Ctrl-U): Localiza no texto presente no editor determinada palavra especificada, substituindo-a por outra.Corrigir Indentação (Ctrl-G): Corrige automaticamente a indentação (ou tabulação) do pseudocódigo, tabulando cada comando interno com espaços à esquerda.Numerar linhas: Ativa ou desativa a exibição dos números das linhas na área à esquerda do editor. A linha e a coluna do editor em que o cursor está em um determinado momento também são mostradas na barra de status (parte inferior da tela). Por motivos técnicos, esta opção é automaticamente desativada durante a execução do pseudocódigo, mas volta a ser ativada logo em seguida.Mostrar variáveis modificadas: Ativa ou desativa a exibição da variável que está sendo modificada. Como o número de variáveis pode ser grande, muitas podem estar fora da janela de visualização; quando esta característica está ativada, o VisuAlg rola a grade de exibição de modo que cada variável fique visível no momento em está sendo modificada. Este recurso é especialmente útil quando se executa um pseudocódigo passo a passo. Por questões de desempenho, a configuração padrão desta característica é desativada, quando o pseudocódigo está sendo executado automaticamente. No entanto, basta clicar este botão para executá-lo automaticamente com a exibição ativada. No final da execução, a configuração volta a ser desativada.Restaurar tela inicial:

Executar (F9): Inicia (ou continua) a execução automática do pseudocódigo.Executar com timer (Shift-F9):: Insere um atraso (que pode ser especificado no intervalo ao lado) antes da execução de cada linha. Também realça em fundo azul o comando que está sendo executado, da mesma forma que na execução passo a passo.Intervalo do timer: Atraso em cada linha, para quando se deseja executar o pseudocódigo com timer.Passo (F8): Inicia (ou continua) a execução linha por linha do pseudocódigo, dando ao usuário a oportunidade de acompanhar o fluxo de execução, os valores das variáveis e a pilha de ativação dos subprogramas.Parar (Ctrl-F2): Termina imediatamente a execução do pseudocódigo. Evidentemente, este botão fica desabilitado quando o pseudocódigo não está sendo executado.a linha em que esteja o cursor. Estes pontos de parada são úteis para a depuração e acompanhamento da execução dos

11

Page 12: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

pseudocódigos, pois permitem a verificação dos valores das variáveis e da pilha de ativação de subprogramas. Desmarcar todos os breakpoints (Ctrl-F5): Desativa todos os breakpoints que estejam ativados naquele momento. Executar em modo DOS: Com esta opção ativada, tanto a entrada como a saída-padrão passa a ser uma janela que imita o DOS, simulando a execução de um programa neste ambiente. Gerar valores aleatórios: Ativa a geração de valores aleatórios que substituem a digitação de dados. A faixa padrão de valores gerados é de 0 a 100 inclusive, mas pode ser modificada (basta alterar intervalo ao lado). Para a geração de dados do tipo caractere, não há uma faixa pré-estabelecida: os dados gerados serão sempre strings de 5 letras maiúsculas.Intervalo dos valores aleatórios: Faixa de valores que serão gerados automaticamente, quando esta opção estiver ativada.Perfil (F7): Após a execução de um pseudocódigo, exibe o número de vezes que cada umas das suas linhas foi executada. É útil para a análise de eficiência (por exemplo, nos métodos de ordenação).Mostrar pilha de ativação (Ctrl-F3): Exibe a pilha de subprogramas ativados num dado momento. Convém utilizar este comando em conjunto com breakpoints ou com a execução passo a passo.Ajuda (F1): Possibilita acesso às páginas de ajuda e às informações sobre o VisuAlg.

3.4 Quadro de Variáveis

É formado por uma grade na qual são mostrados o escopo de cada variável (se for do programa principal, será global; se for local, será apresentado o nome do subprograma onde foi declarada), seus nomes (também com os índices, nos casos em que sejam vetores), seu tipo ("I" para inteiro, "R" para real, "C" para caractere e "L" para lógico) e o seu valor corrente. A versão atual do VisuAlg permite a visualização de até 500 variáveis (contando individualmente cada elemento dos vetores).

3.5 A Barra de Status

Situada na parte inferior da tela, esta barra contém dois painéis: o primeiro mostra a linha e a coluna onde o cursor está, e o segundo mostra a palavra Modificado no caso em que o pseudocódigo tenha sido alterado desde que foi carregado ou salvo pela última vez. Nesta barra, há ainda um terceiro painel disponível, que ainda não tem um uso específico na atual versão.

4. Estruturas de Seleção

4.1 Estrutura simples

Uma estrutura de seleção vai analisar se uma dada seqüência de comandos será ou não executada.

Sintaxe: estrutura simples

SE (expressão lógica) ENTAO

Seqüência de comandos

FIMSE

A seqüência de comandos só será executada se a expressão lógica for verdadeira, se for falsa a referida seqüência não é executada e o sistema passa a executar o comando seguinte ao comando SE.Ex.: Elaborar um algoritmo que leia 2 valores e imprima a sua soma caso o resultado seja igual ou superior a 15.

Algoritmo “condição simples”Var

a, b, soma : inteiroInicio

Escreva (“Entre com dois valores”)

12

Page 13: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

Leia (a)Leia (b)Soma <- a + bSe (soma >= 15) entao

Escrever somaFimse

Fimalgoritmo

4.2 Estrutura Composta

Sintaxe: estrutura composta

SE (expressão lógica) ENTAO

Seqüência de comandos 1

SENAO

Seqüência de comandos 2

FIMSE

A seqüência de comandos 1 só será executada se a expressão lógica for verdadeira, se for falsa, será executada a seqüência de comandos 2.Ex.: Elaborar um algoritmo que leia dois números inteiros, efetuar a soma desses números, se o resultado for maior que 10, multiplique o resultado por 2, caso contrário multiplique o resultado por 3. Exiba os resultados encontrados.

Algoritmo “Condição composta”Var

a, b, soma : inteiroInicio

Escreva (“Entre com dois valores”)Leia (a)Leia (b)Soma <- a + bSe (soma > 10) entao

Escreva soma*2Senao

Escreva soma*3Fimse

Fimalgoritmo

4.3 Comando de seleção múltipla

Sintaxe:escolha <expressão-de-seleção>caso <exp11>, <exp12>, ..., <exp1n>

<seqüência-de-comandos-1>caso <exp21>, <exp22>, ..., <exp2n>

<seqüência-de-comandos-2>outrocaso

<seqüência-de-comandos-extra>fimescolha

Comentário:Cada comando ESCOLHA poderá conter uma lista de mais de um procedimento CASO

<expressão>, e apenas um dos <bloco-de-comandos...> será executado caso seja satisfeita a condição <expressão> ou, se nenhuma condição for satisfeita, OUTROCASO será executado.

13

Page 14: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

Exemplo: Fazer um algoritmo para ler um valor numérico. Se este valor for igual a 1 então imprimir o valor lido, se o valor for igual a 2 então imprimir o seu dobro, se o valor for igual a 3 então imprimir o seu triplo e se o valor for igual a 4 então imprimir o seu quádruplo.

algoritmo "escolha"varval : inteiroinicioleia (val)escolha valcaso 1

escreva ("simples = ",val)caso 2

escreva ("dobro = ",val*2)caso 3

escreva ("triplo = ",val*3)caso 4

escreva ("quadruplo = ",val*4)outrocaso

escreva ("outro caso ", val)fimescolhafimalgoritmo

Exercícios

1. Um hotel cobra R$ 60,00 a diária e mais uma taxa de serviços.A taxa de serviços é de:- R$ 5,50 por diária, se o número de diárias for maior que 15;- R$ 6,00 por diária, se o número de diárias for igual a 15;- R$ 8,00 por diária, se o número de diárias for menor que 15;Construa um algoritmo que mostre o nome a conta de um cliente.

2. Entrar com o salário de uma pessoa e imprimir o desconto do INSS segundo a tabela abaixo:- menor ou igual a R$ 600,00 - isento- maior que R$ 600,00 e menor ou igual a R$ 1200,00 - 20%- maior que R$ 1200,00 e menor ou igual a R$2000,00 - 25%- maior que R$ 2000,00 - 30%

3. Faça um algoritmo que possa imprimir o menu abaixo:

1 – solteiro(a)2 – desquitado(a)3 – casado(a)4 – divorciado(a)5 – viúvo(a)OPCAO:

O usuário deverá selecionar uma das opções, digitando um número e este deverá escrever o estado civil da pessoa. Emitir mensagem de erro caso seja escolhida uma opção inexistente.

14

Antes de começar a programar é preciso entender bem o enunciado do problema. Leia-o várias vezes, se necessário.

Page 15: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

5. Estruturas de Repetição

Todo o algoritmo que possui um ou mais de seus passos repetidos um determinado número de vezes denomina-se algoritmos de repetição.

5.1 Variável Contador

É uma variável que recebe um valor inicial (geralmente 0) e é incrementado em algum passo do algoritmo, de um valor constante (geralmente 1).Ex.:

cont <- 0 //Atribuição de um valor para a variável cont...

cont <- cont + 1 //Incremento de 1 para a variável cont

5.2 Variável Acumulador:

É uma variável que recebe um valor inicial (geralmente 0) e é incrementada em algum outro passo do algoritmo, de um valor variável.Ex.:

acum <- c...

acum <- acum + v

Onde v é uma variável qualquer e c é uma constante que geralmente é zero.

A diferença básica entre uma variável contador e uma variável acumulador está no valor do incremento, que no caso do contador é um valor constante e no caso do acumulador é um valor variável.

5.3 Comando ENQUANTO FACA (repetição com teste no início)

Este comando faz com que o conjunto de instruções colocado no seu interior, seja repetido enquanto o valor da expressão lógica for verdadeiro.

ENQUANTO <expressão lógica ou relacional> FACA

bloco de comandos

FIMENQUANTO

Ex.: Pedir a leitura de um valor para a variável X, multiplicar este valor por 3, implicando-o à variável de resposta R e apresentar o valor de R obtido, repetindo esta seqüência por 5 vezes.

Algoritmo “enquanto..faca”Var

x, r, cont : inteiroInicio

cont <- 1enquanto cont <= 5 faca

leia (x)r <- x * 3escreva (r)cont <- cont + 1

fimenquantoFimalgoritmo

15

Page 16: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

5.4 Repetição controlada pelo usuário

algoritmo”repetição controlada”var

x, r : inteiroresp : caracter

inicioresp <- “sim”enquanto (resp = “sim”) ou (resp = “s”) ou (resp = “S”) faca

leia (x)r <- x * 3escreva (r)escreva (“deseja continuar (sim / não)?”)leia (resp)

fimenquantofimalgoritmo

5.5 Exercícios

1. Elaborar um algoritmo que efetue o calculo do fatorial do número 5.2. Faça um algoritmo para apresentar o total da soma dos cinco primeiros números inteiros.3. Desenvolva os algoritmos abaixo utilizando o comando FACA ENQUANTO

a) Apresentar todos os valores numéricos inteiros ímpares situados na faixa de 0 a 20. Para verificar se o número é ímpar, efetuar dentro da malha a repetição desta condição com a instrução SE, perguntando se o número é ímpar; sendo, mostre-o, não sendo, passe para o próximo passo.

b) Faça um algoritmo que apresente todos os valores numéricos inteiros pares situados na faixa de 100 a 200.

c) Apresentar o total da soma obtido dos cem primeiros números inteiros (1+2+3+4+...98+99+100).

d) Apresentar as potências de 3 variando de 0 a 15. Deve ser considerado que qualquer número elevado a zero é 1, e elevado a um é ele próprio. Deverá ser apresentado, observando a seguinte definição:

30 = 1

31 = 3

32 = 9

(...)

315 = 14348907

5.6 Comando PARA..FACA

O comando PARA PROXIMO é uma estrutura de repetição que repete a execução de uma dada seqüência de comandos um número de vezes determinado pelo próprio programa.Sintaxe:

para <variável> de <valor inicial> ate <valor final> [passo] faca<lista de comandos>fimpara

Onde:<variável> Representa a variável que controlará o processo de repetição.<valor inicial> Consiste do valor inicial que deverá ser assumido pela variável de controle.<valor final> Constitui-se do valor final da variável de controle.<passo> Representa qual o incremento que deve ser sofrido pela variável de controle.

16

Page 17: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

Ex.: Pedir a leitura de um valor para a variável X, multiplicar este valor por 3, implicando-o à variável de resposta R e apresentar o valor de R obtido, repetindo esta seqüência por 5 vezes.

Algoritmo “para..faca”var

x, r, i : inteiroinicio

para i de 1 ate 5 passo 1 faca //incrementa i de 1 em 1leia (x)r <- x * 3escreva (r)

fimparafimalgoritmo

5.7 Exercícios: Utilize o comando PARA PROXIMO

4. Elaborar um algoritmo que efetue o cálculo do fatorial do número 5.5. Apresentar todos os valores numéricos inteiros ímpares situados na faixa de 1000 a 1500.6. Apresentar o total da soma obtido de N números inteiros.7. Apresentar o fatorial de um número qualquer.8. Elaborar um algoritmo que apresente no final, o somatório dos valores pares existentes entre 10

até 20.9. Elabore um algoritmo que, utilizando as duas estruturas de repetição, imprima a tabuada do 5.

10. Escrever um algoritmo que gera e escreve os números ímpares entre 100 e 200.

11. Escrever um algoritmo que lê 10 valores, um de cada vez, e conta quantos deles estão no intervalo [10,20] e quantos deles estão fora deste intervalo, escrevendo estas informações.

12. Escrever um algoritmo que lê um número não conhecido de valores, um de cada vez, e conta quantos deles em cada um dos intervalos [0,25], (25,50], (50,75], (75,100].

13. Faça o teste de mesa para os trechos de algoritmos a seguir:

Trecho 1A <- 1S <- 0Enquanto A < 5 faca

S <- S + AA <- A + 2

Fimenquanto

Trecho 2

A <- 1N <- 0S <- 0Enquanto S < 12 faca

S <- S + AA <- A + 1N <- N + 1

Fimenquanto

Trecho 3A <- 1B <- 4S <- 0Enquanto A <= 6 faca

Se A <= B entaoS <- S + A * B

SenaoS <- S + A * B

FimseA <- A + 1B <- B - 1

Fimenquanto

Trecho 4Para G de 1 ate 5 passo 1 faca

C <- 0Enquanto C < G faca

C <- C + 1Fimenquanto

Fimpara

14. Faça um algoritmo que imprima todos os números pares compreendidos entre 85 e 907. O algoritmo deve também calcular a soma destes valores.

15. Construa um algoritmo que verifique se um número fornecido pelo usuário é primo ou não.

16. Construa um algoritmo que leia três valores inteiros e os coloque em ordem crescente.

17

Page 18: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

17. Para os funcionários de uma empresa, construir um algoritmo que, determine qual sexo que apresenta maior média salarial.

18. A série de Fibonacci é formada pela seguinte seqüência: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55...etc. Escreva um algoritmo que gere a série de Fibonacci até o vigésimo termo.

19. Construa um algoritmo que, para cada grupo de 50 valores inteiros, determine:a. A soma dos números positivos;b. A quantidade de valores negativos.

20. Construir um algoritmo que tome como entrada, N números inteiros, e mostre o menor deles.

21. Foi feita uma pesquisa com um grupo de alunos de uma universidade, onde se perguntou para cada aluno, o número de vezes que utilizou o restaurante da universidade, no último mês.

Construa um algoritmo que determine:a. O percentual de alunos que utilizaram menos que 10 vezes o restaurante.b. O percentual de alunos que utilizaram entre 10 e 15 vezes.c. O percentual de alunos que utilizaram o restaurante acima de 15 vezes.

22. Considere que em uma eleição para prefeito, concorrem três candidatos. Cada candidato é identificado pó um número inteiro (1,2,3). Em uma pesquisa eleitoral, perguntou-se a cada entrevistado, em quem votaria na próxima eleição para prefeito.Cada entrevistado deu seu voto conforme abaixo:1,2 ou 3 : voto para os respectivos candidatos;4 : voto nulo;5 : indeciso;Faça um algoritmo que calcule e escreva:

a. Percentual de votos de cada candidato;b. Percentual de eleitores indecisos.

23. A conversão de graus Fahrenheit para centígrados é obtida pela fórmula C=5/9(F-32). Escreva um algoritmo que calcule e escreva uma tabela de graus centígrados em função de graus Fahenheit que variem de 50 a 150 de 1 em 1.

18

Page 19: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

6. Fluxograma

O fluxograma é uma representação gráfica de algoritmos onde formas geométricas diferentes implicam ações distintas. É composto de um conjunto de símbolos pré-definidos.

Simbologia básica:

Obs.: Existem vários outros símbolos, cada qual com seu significado e função. Para esta disciplina utilizaremos os indicados na lista acima com suas respectivas variações (quando houver).

19

Terminal: símbolo utilizado para indicar inicio/fim do fluxo do programa.

Seta de fluxo de dados: indica o sentido do fluxo de dados. Conecta os

símbolos ou blocos existentes.

Teclado: indica a entrada de dados recebidas ou fornecidas de ou por um

computador.

Display: símbolo utilizado para exibir informações no vídeo ou monitor.

Condição: indica uma condição, podendo resultar em uma resposta

verdadeira ou falsa.

Repetição: símbolo utilizado para repetir uma determinada seqüência do

programa.

Conector: utilizado quando é necessário particionar o diagrama.

Processamento: símbolo ou bloco utilizado para indicar cálculos a

efetuar, atribuições de valores ou qualquer manipulação de dados que

tenha bloco específico para sua descrição

Conector: indica a conexão do fluxo em outra página.

Page 20: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

7. Palavras reservadas

As palavras reservadas não podem ser usadas como identificador de variáveis, ou seja, não podem ser declaradas como variáveis.

PALAVRAS RESERVADASaleatório e grauprad passoabs eco inicio pausaalgoritmo enquanto int piarccos entao interrompa posarcsen escolha leia procedimentoarctan escreva literal quadarquivo exp log radpgrauasc faca logico raizqate falso logn randcaracter fimalgoritmo maiusc randicaso fimenquanto mensagem repitacompr fimescolha minusc secopia fimfuncao nao sencós fimpara numerico senaocotan fimprocedimento numpcarac timercronometro fimrepita ou tandebug fimse outrocaso verdadeirodeclare função para xou

20

Page 21: Apostila Algoritmo e Lógica I

Algoritmo e Programação de Computadores

8. Referências Bibliográficas

- CRESPO, SÉRGIO; EVARISTO, JAIME; aprendendo a Programar, programando numa linguagem algorítmica executável (ILA), Book Express, Rio de Janeiro, 2000.

- FARRER, H. et al. Programação estruturada e computadores: algoritmos estruturados. Rio de Janeiro: LTC, 1989.

- FORBELLONE, A. L. V.; EVERSPACHER, H. F. Lógica de Programação: a construção de Algoritmos e Estrutura de Dados. São Paulo: Makron Books, 1993.

- GUIMARÃES, A.; LAGES, N. Algoritmos e estrutura de dados. Rio de Janeiro: LTC, 1985.

- MANZANO, J. A. Estudo Dirigido de Algoritmos. São Paulo: Érica, 1997.

- OLIVEIRA, A. B. Introdução à Programação: algoritmos. Florianópolis: Bookstore, 1999.

- SALVETI, D. D. Algoritmos. São Paulo: Makron Books, 1998.

- WIRTH, N. Algoritmos e Estrutura de Dados. Rio de Janeiro: Prentice-Hall, 1989.

21