




























































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Lógica de Programação
Tipologia: Notas de estudo
1 / 110
Esta página não é visível na pré-visualização
Não perca as partes importantes!





























































































É um conjunto de instruções ou comandos que, quando executados , levam a um conjunto finito de ações. É um conjunto ordenado de instruções que quando seguidas desempenham uma tarefa especifica.
È rigoroso em sua definição Legibilidade Portabilidade
É uma adaptação ou codificação de um algoritmo atendendo as regras de uma linguagem especifica.
Um Algoritmo é normalmente dividido em 2 partes:
A Primeira parte é aonde será declaradas tudo o que é necessário para a execução do algoritmo. Esta parte vai desde a palavra INICIO até a Paravra PROCEDA. A segunda parte é aonde serão colocados os comandos que serão executados pelo Algoritmo.Esta parte se inicia com a Palavra PROCEDA e vai até a palavra FIM.
Exemplo:
INICIO
Primeira Parte
PROCEDA
Segunda Parte
FIM.
É algo muito parecido com uma receita de bolo, aonde primeiro colocamos os ingredientes, e depois colocamos o modo de preparo , aonde detalhamos os procedimentos necessários para o preparo da receita. A única diferença é que no lagoritmo procuramos fazer a “receita” de acordo com uma linguagem especifica. O uso desta linguagem evita que sejam feitas interpretações diferentes da mesma sentença como veremos a seguir:
Utilização do Não, somente, mas, e/ou, A menos que:
Conforme as palavra utilizadas para descrever uma função , poderão surgir interpretações diversas como nos exemplos abaixo: “Somar A e B a menos que A seja menor que B aonde neste caso subtrair A de B”
“Somar A e B , entretanto se a for menor que B a resposta será a diferença entre A e B”
“Somar A e B mas subtrair A de B quando A for menor que B”
“O Total é a soma de A e B , somente quando A for menor é que a diferença deve ser utilizada no total”
Até , acima, abaixo:
“Abaixo de 20 unidades não há desconto, acima de 20 unidades da direito a 5% de desconto” O que acontece com exatamente vinte unidades? Para solucionar este problema utilizar os operadores relacionais:
Ambigüidade do E/OU
“Clientes regulares que adquirirem mais de 1 Milhão e que tem um bom histórico de pagamento ou que estão conosco a mais de 20 anos devem receber tratamento especial”
Dependendo da entonação da frase podem surgir interpretações diferentes.
Adjetivos indefinidos: O que é um bom Histórico? O que é um cliente regular?
A frase “bom histórico” implica na existência de um Mau histórico, ambos deverão ser definidos?
Como pode ser visto acima a utilização da linguagem coloquial pode gerar diversas interpretações, e também muitas duvidas. Desta forma faz-se necessário a utilização de uma linguagem mais próxima a lógica dos computadores. E também , com uma linguagem bem parecida com as linguagens de programação, fica mais facil a transformação do algoritmo em um programa. O Algoritmo é então um intermediário entre a lingagem coloquial utilizada normalmente , e as linguagens de programação em outras palavras “Portugol”
Para que possamos entender e desenvolver algoritmos vamos precisar de alguns conceitos básicos:
Uma variável corresponde a uma área de memória , cujo conteúdo varia durante a execução do algoritmo. Devemos encarar uma variável como o endereço de memória aonde esta guardada uma determinada informação. Esta informação pode ser de diversões tipos, mas somente um tipo de cada vez. O algoritmo poderá alterar este valor, de acordo com as suas instruções, quantas vezes forem necessárias, por isto elas são chamadas variáveis.
Todos os dados processados por um algoritmo devem ser previamente definidos, isto porque o computador precisa saber previamente o tipo e o tamanho da informação que será processada. Como já foi visto anteriormente, nós vamos armazenar estes dados dentro de variáveis, para que possamos alterar o seu valor durante a execução do algoritmo. Sendo assim , cada variável deverá ser declarada previamente e com um tipo já definido que deverá ser um dos tipos abaixo, ou uma de suas variações que serão vistas posteriormente.
Para que possamos declarar uma variável devemos dar-lhe um nome. Dentro do algoritmo , toda vez que eu precisar usar o valor armazenado nesta variável , eu vou referencia-la pelo seu nome.
Os nomes das variáveis devem representar o que será guardado dentro dela O primeiro caracter de um nome deverá ser sempre alfabético Não podem ser colocados espaços em branco no nome de variáveis, usar o UNDERSCORE. A declaração de uma variável é feita no algoritmo informando o seu nome, seguido pelo seu tipo, separados por ":"
São os tipos de dados mais comuns, e que podem dar origem a outros tipos de dados mais complexos.
Números inteiros maiores ou menores que 0 representados por 2 bytes, em uma faixa que vai de -32.768 até 32.767.
NUMERO : INTEIRO
No exemplo acima foi declarada uma variável do tipo INTEIRO que atende pelo nome de " NUMERO "
Conjunto dos números racionais. representado por 4 bytes.
SALÁRIO : REAL
No exemplo acima foi declarada uma variável do tipo REAL com o nome de " SALÁRIO ".
Conjunto dos caracteres alfanuméricos (números , letras , símbolos, etc).Representado por apenas um byte. Note que as variáveis do tipo CHAR podem armazenar apenas 1 caracter.
SEXO : CHAR
No exemplo acima foi declarada uma variável do tipo CHAR com o nome " SEXO "
Quando assume apenas 2 valores: FALSO VERDADEIRO
FLAG : LÓGICO
No exemplo acima, foi declarada uma variável do tipo LÓGICO com o nome de FLAG.
É o único agregado de dados heterogêneo, ou seja pode combinar dados de diferentes tipos em uma única estrutura.
Note que o REGISTRO é formado por 4 CAMPOS , e cada campo é de um tipo diferente, entretanto , todos os campos fazem parte de uma única estrutura, que atende pelo nome de REG_DADOS.
Além das variáveis existem outros elementos que irão fazer parte dos algoritmos.
Declaração de Variáveis:
Declare variáveis que sejam capazes de armazenas as seguintes informações
Sua Idade A Média entre 2 numeros O seu Salário Seu nome, numero, nota do primeiro bimestre, nota do segundo bimestre e media final Os 12 meses dos ano (Só o numro do mês) com os sues respeqtivoas números de dias
Variaveis: Nome; String; Media: real Salario:real
O comentário é um texto delimitado por chaves, cuja função é explicar com mais clareza alguma parte especifica do algoritmo. O comentário é um texto que não deve ser levado em consideração na hora de executar o algoritmo, ele serve apenas para dar informações adicionais a leitura do algoritmo.
Operadores são sinais utilizados nos algoritmos para indica a realização de operações que podem ser de três categorias:
Aritméticas Relacionais Lógicas
Servem para realizar operações com números inteiros ou reais. são eles:
OPERADOR SINAL PRIORIDADE ADIÇÃO + 3 SUBTRAÇÃO - 3 MULTIPLICAÇÃO * 2 DIVISÃO / 2 POTÊNCIA (^) 1
São operadores que servem para estabelecer relações entre variáveis do mesmo tipo. São eles
OPERADOR SINAL PRIORIDADE IGUAL = 1 DIFERENTE < > 1 MENOR QUE < 1 MAIOR QUE > 1 MAIOR OU IGUAL > = 1 MENOR OU IGUAL < = 1
As funções são algoritmos pré-definidos que irão retornar valores normalmente resultantes de operações aritméticas. Estas funções têm por finalidade agilizar o desenvolvimento dos nossos algoritmos, já que os procedimentos para calculo destas funções não são de grande importância. Mais tarde estudaremos mais a fundo as funções , por hora basta saber como elas são utilizadas em nossos algoritmos.
São elas:
É o comando usado para atribuir um valor a uma variável. A natureza deste valor deve ser compatível com o tipo da variável declarada. O sinal utilizado para indicar uma atribuição é o : = (dois pontos igual) É importante neste ponto esclarecer com é que funciona o processo de atribuição: Caso eu esteja atribuindo para uma variável o resultado de uma expressão, o algoritmo primeiro deverá resolver a expressão para depois fazer a atribuição.
O resultado deste comando será 15, porque o algoritmo primeiro resolve a expressão e depois guardou o valor conseguido na variável especificada (A). Também podem ser utilizados os valores armazenados em outras variáveis, para se fazer uma atribuição:
No final desta seqüência de comandos o valor dentro da variável c será 4, pois o algoritmo utilizou o valor das variáveis A e B para calculara o valor da expressão e depois o armazenou em C. Também pode ser utilizado o valor da própria variável que receberá a atribuição:
No final desta seqüência o valor de C será 7 , pois o algoritmo primeiro utiliza o valor 9 armazenado em C para resolver a expressão, e depois de resolvida , o novo valor será armazenado em C , apagando o valor anterior. Isto fica mais claro no exemplo abaixo:
A variável CONTADOR foi inicializada com o valor 1 , e logo abaixo este valor foi utilizado em uma expressão, e o resultado desta expressão foi armazenado dentro da própria variável CONTADOR. Mas é importante notar que o algoritmo primeiro utilizou o valor 1 para resolver a expressão , e somente após ter a resposta é que ele alterou o valor da variável CONTADOR. Na verdade eu apenas somei 1 ao valor que já existia na variável.
As expressões literais são frases ou outro tipo de expressões que são colocadas no algoritmo com mensagens ou para atribuição em variáveis do tipo STRING ou CHAR. Estas expressões são identificadas por estarem entre aspas ( " " ). É importante notar que nada impede que um numero seja colocado dentro de uma expressão literal, ou em uma variável STRING ou CHAR , mas note que este tipo de numero não vai possuir o valor numérico, ou seja, este numero não vai poder ser usado para realizar operações aritméticas. Para este caso nós devemos utilizar números armazenados em variáveis do tipo inteiro ou real.
Note que no exemplo acima eu declarei 2 variáveis, uma do tipo INTEIRO e outra do tipo STRING , e que eu atribui para ambas o valor 999999, mas no caso da variável do tipo STRING eu usei as aspas para indicar que este valor é uma expressão literal, e que por isso não tem valor numérico. Este tipo de expressão é muito útil no caso de termos que armazenar informações como endereço ou telefones, que exigem a presença de números e letras. No caso da variável do tipo INTEIRO o valor 999999 foi atribuído sem as aspas, já que a eu estou utilizando o valor numérico, e poderei usar este numero em qualquer operação aritmética.
São as formas como serão executados os comandos do algoritmo, são elas.
É a mais simples, eficiente e legível das estruturas de controle. Estabelece que uma declaração passa a ser analisada imediatamente após o termino de sua predecessora. Um algoritmo se inicia com a palavra INICIO , após o que, aparecem as declarações de variáveis, seguidas de comandos que, se não houverem indicações ao contrario , serão executados um depois do outro em seqüência. A finalização do algoritmo é feita com a palavra FIM.
O comando SE ainda permite que seja associado a ele um segunda opção, o comando SENÃO. O comando senão pode ou não ser associado ao comando SE, uma vez associado, ele especifica que os comandos a ele subordinados só serão executado no caso da condição lógico relaciona for falsa, ou seja, só será executado caso os comandos associados ao comando SE não forem executados.
B L O CO D E COM AN D O S
B L O CO D E COM AN D O S
No comando acima, o bloco de comandos A só será executado no caso da condição lógico relaciona for verdadeira, e o bloco de comando B só será executado no caso da condição lógico relacional for falsa. De qualquer forma, após executar tanto o bloco A como o bloco B o algoritmo seguirá normalmente a partir da palavra FIM_SE.
É o comando que permite a opção entre várias alternativas de acordo com a verificação de uma condição lógico relacional.
Note que no comando CASO , a mesma variável será testada com várias condições, caso uma delas seja atendida, o comando, ou bloco de comandos associados a esta condição será executado, e logo após o algoritmo seguirá normalmente após a palavra FIM_CASO. No caso de nenhuma condição ser verdadeira, o algoritmo seguirá normalmente após a palavra FIM_CASO sem executar nenhum comando associado ao comando CASO. O comando Caso é Equivalente a uma sequancia de comando SE SENÂO
Uma estrutura se seleção pode ter uma outra estrutura de seleção dentro dela, e assim por diante. Neste caso nós podemos colocar um comando SE subordinado a outro comando SE , ou um comando SE subordinado a um comando CASO , ou vice e versa, sem limite de encadeamento.
É importante ressaltar que para formação das condições dos comandos de seleção serão utilizados operadores relacionais associados ou não a operadores lógicos.
São usadas sempre que for necessário repetir um conjunto de declarações para manter a abstração de controle do algoritmo. São as mais complicadas, e as que exigem o maior cuidado na sua escolha e aplicação.
Prescreve que os comandos a ele subordinados deverão ser repetidos ENQUANTO uma condição lógico relacional for verdadeira. O teste é feito no inicio do comando , e caso o resultado for verdadeiro os comandos serão executados , logo em seguida outro teste será feito. Caso o teste seja falso, o algoritmo continua normalmente após a palavra FIM_ENQUANTO. Note que se o primeiro teste de falso , os comando não serão executados nenhuma vez, e o algoritmo continuará normalmente após a palavra FIM_ENQUANTO.
B L OCO D E COM AN D OS
A S E R E M
R E P E TID OS
E N QU AN TO < CON D IÇÃO >
FIM _ E N QU AN TO
V E R D A D E I R O
FAL S O
Faça um algoritmo capaz de somar todos os números inteiros compreendidos entre 1 e 10, e mostrar o resultado da soma. INICIO SOMA,CONT : INTEIROS PROCEDA SOMA CONT : = 1 SOMA : = 0 ENQUANTO CONT < = 10 SOMA : = SOMA + CONT CONT : = CONT + 1 FIM_ENQUANTO MOSTRE ( SOMA) FIM.
Prescreve que os procedimentos a ele subordinados deverão ser repetidos ATÉ que uma condição lógico relacional seja verdadeira. O teste será feito no final do comando, e caso seja FALSO , os comando que estão entre o REPITA , e o FIM_REPITA ,serão repetidos, e novamente será feito um teste. Quando o resultado do teste for verdadeiro, o algoritmo continua normalmente a partir da palavra FIM_REPITA. Note que sendo o teste feito no final do comando, os comando subordinados ao repita serão executados pelo menos uma vez.
COM AN D OS
A S E R E M R E P E TID OS
FIM _ R E P ITA
R E P ITA
ATÉ < CON D IÇÃO >
FAL S O
VE R D AD E IR O
Idem ao execicío 03 só que utilizando o comando REPITA.