Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

ALGORITMAS E VARIAVEIS, Resumos de Algoritmos

Um algoritmo nada mais é que uma sequência de instruções ou comandos realizados de forma sistemática com a finalidade de resolver um problema ou executar uma determinada tarefa. Ou seja, é criado para resolver “problemas”, com instruções bastante simples e exatas.

Tipologia: Resumos

2023

Compartilhado em 27/04/2023

fernando-faria-54
fernando-faria-54 🇧🇷

3 documentos

1 / 18

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Constantes e Variáveis
Uma constante é um item de dados nomeado com um valor predefinido,
enquanto que uma variável é um item de dados nomeado cujo valor pode ser
alterado durante a execução do programa. As variáveis podem ser globais ou
locais.
Todos os dados são representados como um de três tipos de dados básicos:
Int
Tipo de dados inteiro (+ - seguido por 1 ou mais dígitos de 0–9).
Real
Ponto flutuante (+ - seguido por zero ou mais dígitos 0–9). Ponto decimal
seguido por 1 ou mais dígitos 0–9. Observe que todos os números são
armazenados internamente como Flutuantes.
Sequência
Qualquer sequência Unicode válida colocada entre aspas.
Constantes
Uma constante é um item de dados denominado com um valor
predefinido. Não é possível alterar o valor designado a uma constante
predefinida. As constantes predefinidas são:
NULL
Uma referência vazia. Semelhante a um ponteiro vazio. Observe que não
é igual a uma cadeia nula "".
Verdadeiro
Equivalente ao número 1.
Falso
Equivalente ao número 0.
Definições de Variável
--Toda variável tem
– um nome (identificador)
– um tipo de dado, definido na declaração da variável
– um valor
Uma variável é um item de dados denominado cujo valor pode ser
alterado durante a execução do programa. Um nome de variável deve
seguir a convenção de nomenclatura de um Identificador (caractere
alfabético, caractere numérico e o sublinhado.) Quando mais de uma
variável é definida em uma única declaração, o nome deve ser separado
por vírgulas. Cada declaração de variável deve finalizar com ponto-e-
vírgula. Os nomes de variáveis não podem ser iguais a uma palavra
reservada.
Nota::Identificadores e Nomes na linguagem script são case-insensitive.
Assim, abc é igual a ABC.
Variáveis globais e locais
As variáveis podem ser globais ou locais. Uma variável é global a menos
que seja declarada em uma definição de função. As variáveis globais são
visíveis e estão disponíveis para todas as instruções de um script. As
variáveis locais estão visíveis e disponíveis somente nas funções onde
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12

Pré-visualização parcial do texto

Baixe ALGORITMAS E VARIAVEIS e outras Resumos em PDF para Algoritmos, somente na Docsity!

Constantes e Variáveis

Uma constante é um item de dados nomeado com um valor predefinido, enquanto que uma variável é um item de dados nomeado cujo valor pode ser alterado durante a execução do programa. As variáveis podem ser globais ou locais. Todos os dados são representados como um de três tipos de dados básicos: Int Tipo de dados inteiro (+ - seguido por 1 ou mais dígitos de 0–9). Real Ponto flutuante (+ - seguido por zero ou mais dígitos 0–9). Ponto decimal seguido por 1 ou mais dígitos 0–9. Observe que todos os números são armazenados internamente como Flutuantes. Sequência Qualquer sequência Unicode válida colocada entre aspas. Constantes Uma constante é um item de dados denominado com um valor predefinido. Não é possível alterar o valor designado a uma constante predefinida. As constantes predefinidas são: NULL Uma referência vazia. Semelhante a um ponteiro vazio. Observe que não é igual a uma cadeia nula "". Verdadeiro Equivalente ao número 1. Falso Equivalente ao número 0. Definições de Variável --Toda variável tem

**- um nome (identificador)

  • um tipo de dado, definido na declaração da variável
  • um valor** Uma variável é um item de dados denominado cujo valor pode ser alterado durante a execução do programa. Um nome de variável deve seguir a convenção de nomenclatura de um Identificador (caractere alfabético, caractere numérico e o sublinhado.) Quando mais de uma variável é definida em uma única declaração, o nome deve ser separado por vírgulas. Cada declaração de variável deve finalizar com ponto-e- vírgula. Os nomes de variáveis não podem ser iguais a uma palavra reservada. Nota: Identificadores e Nomes na linguagem script são case-insensitive. Assim, abc é igual a ABC. Variáveis globais e locais As variáveis podem ser globais ou locais. Uma variável é global a menos que seja declarada em uma definição de função. As variáveis globais são visíveis e estão disponíveis para todas as instruções de um script. As variáveis locais estão visíveis e disponíveis somente nas funções onde

foram definidas. Apesar de nomes e identificadores de variáveis precisarem ser exclusivos, é válido declarar uma variável local que tem o mesmo nome que a global ou o mesmo nome que uma variável local definida em outra função. Os nomes de parâmetro em uma definição de função são considerados como variáveis locais. Os dados transmitidos a uma função são por valor. Uma variável global transmitida a uma função não será alterada pela função.

IDENTIFICADORES

Identificadores são conjuntos de caracteres regido por determinadas leis que representam constantes, variáveis, tipos, procedimentos, unidades, programas e campos de um registro (estes itens serão analisados mais adiante no curso). As leis que regem este conjunto de caracteres são:  Podem ter qualquer tamanho, mas somente os 63 primeiros caracteres são significativos, porém recomenda-se o uso de no máximo 8 caracteres;  O primeiro caracter do identificador obrigatoriamente tem que ser uma letra;  No conteúdo do identificador não pode conter caracteres especiais (!@#$%&*/-+<>?), ou seja no identificador só podemos ter, após o primeiro caracter, letras, números e sublinhada ( _ );  Nos identificadores não pode conter espaços em branco;  Não podem haver nenhum identificador repetido;  E também não ter o mesmo nome de palavras reservadas.

Palavras Reservadas

Palavras reservadas, são identificadores que já foram usados pelo programa, ou seja se caso utilizarmos uma destas palavras iremos infringir a regra de que não se pode haver identificadores repetidos. Segue abaixo uma tabela de palavras reservadas pelo Pascal (programa utilizado para estudo de algoritmos em nosso curso), que já foram destinadas a identificar outros elementos. ABSOLUTE AND ARRAY BEGIN CASE CONST DIV DO DOWTO ELSE EXTERNAL FILE FOR FORWARD FUNCTION GOTO IF IMPLEMENTATION IN INTERFACE INTERRUPT LABEL MOD NIL NIT OF OR PACKED PROGRAM RECORD REPEAT SET SHL SHR STRING THEN TO UNIT UNTIL USES VAR WHILE WITH XOR Estes são apenas alguns exemplos de identificadores contidos do Pascal, mais adiante será apresentados algumas funções onde seu nomes se enquadram nesta lista.

‘A’, ‘a’, ‘1’, ‘% Classe de dados “Lógica” Boolean – recebe apenas valores lógicos. True (verdadeiro) ou False (falso) Ex.: Casado := Sim ou Não. Classe de dados “Estruturados” String – recebe dados alfanuméricos. Ou seja, recebe um conjuntos de dados simples ( Char ). O tamanho máximo deste tipo de dados é de 255 caracteres. Ex.: ‘anna’, ‘paula’, ‘teste123’ O que é um operador?

Na construção de nossos algoritmos, utilizaremos com frequência

operadores para realizar o trabalho de entrada, processamento e saída de

dados.

Um operador, em termos gerais, simboliza uma operação efetuada sobre

variáveis e constantes, executando cálculos e manipulação sobre os

dados.

As operações realizadas pelo computador são as mesmas encontradas na

matemática. A ressalva que fazemos é quanto aos operadores, que

diferem entre sim em algumas operações, como mostrado nas tabelas

abaixo.

Os operadores são classificados em três tipos:

 Operadores Aritméticos;

 Operadores Relacionais;

 Operadores Lógicos.

Operadores Aritméticos

São utilizados para executar operações numéricas (aritméticas) e podem

atuar sobre duas variáveis ou constantes – neste caso, são chamados de

operadores binários – ou sobre apenas uma variável ou constante – neste

outro caso, são chamados de operadores unários , indicando uma

inversão de sinal (positivo ou negativo), por exemplo.

Operadores Aritméticos

Observações:

 Símbolos diferentes dos da tabela acima não são aceitos

na construção de nossos algoritmos;

 Alguns símbolos matemáticos não existem nos teclados

atuais, daí a necessidade de utilização de outro símbolos,

como os sinais de divisão e multiplicação, por exemplo;

 As expressões matemáticas devem ser escritas em linha

( in line ).

16 Horizontalização de Fórmulas (Linearização) Para o desenvolvimento de algoritmos que possuam cálculos matemáticos, as expressões aritméticas devem estar horizontalizadas, ou seja, linearizadas e, para isso, deve-se utilizar os operadores corretamente. Na Tabela 8 a seguir, é apresentado um exemplo de uma expressão aritmética na forma tradicional e como deve ser utilizada nos algoritmos e em programação em geral (linearmente). Matemática Tradicional Algoritmo (ou Programa) M ← (N1 + N2) / 2 Tabela 8: Exemplo de Horizontalização de Expressões Aritméticas As expressões matemáticas na forma horizontalizada não são apenas utilizadas em algoritmos, mas também na maioria das linguages de programação. Ordem de precedência entre operadores

Você já aprendeu na escola que há uma ordem a ser seguida quando são

feitos cálculos utilizando fórmulas ou expressões numéricas e algébricas.

Iniciamos calculando as potenciações e radiciações , em

seguida, divisões e multiplicações e finalmente adições e

subtrações , na ordem em que os operadores aparecem.

Além disso, em expressões numéricas, as operações podem ser

agrupadas com a utilização de parêntesis , (), colchetes , [], ou chaves ,

{}, sendo que os cálculos são feitos de “dentro para fora” , isto é:

primeiramente iniciamos com as operações dentro dos parêntesis, depois

as que estão entre os colchetes e finalizamos com as que restaram entre

as chaves, sempre respeitando a precedência de operadores citada

acima.

Exemplo: Resolva a expressão numérica { [ 20 + ( 10 + 2 x 4 ) ] / 2 } x

Solução:

Primeiramente, resolvemos a expressão mais “interna” (dentro dos

parêntesis):

{ [ 20 + ( 10 + 2 x 4 ) ] / 2 } x 10 =

Como a expressão dentro dos parêntesis é (10 + 2 x 4), primeiramente

multiplicamos 2 por 4:

{ [ 20 + ( 10 + 8 ) ] / 2 } x 10 =

Continuamos com uma expressão dentro dos parêntesis, (10 + 8).

Somamos então 10 com 8 e obtemos:

{ [ 20 + 18 ] / 2 } x 10 =

Os parêntesis foram eliminados, restando-nos colchetes e chaves.

Resolvemos, então, a expressão entre os colchetes, somando 20 com 18:

{ [ 20 + 18 ] / 2 } x 10 =

{ [ 38 ] / 2 } x 10 =

MÉDIA = 14,

No cálculo acima, não utilizamos os parêntesis para “forçar” a soma das

duas notas e, de acordo com as regras de precedência matemática das

operações, obtivemos obviamente um resultado “errado”: note que

primeiro foi realizada a divisão de 8,0 por 2, resultando em 4,0, e este

valor foi adicionado a 10,0, resultando em 14,0.

Em Algoritmos…

Portanto, o que você deve saber é que as mesmas regras lá da

matemática são aplicadas aqui no desenvolvimento de algoritmos.

Os cálculos que serão realizados por nossos algoritmos devem ser

executados segundo a seguinte ordem de precedência de operadores

aritméticos, na ordem em que aparecem (como na matemática):

1. Potenciação e Radiciação

2. Divisão e Multiplicação

3. Subtração e Adição

IMPORTANTE: Uma diferença que deve ser observada é que não

utilizamos colchetes, [ ], ou chaves, { }, dentro de algoritmos; apenas os

parêntesis, ( ), são utilizados para indicar quais expressões devem ser

calculadas primeiro, sempre aplicando a ordem de precedência acima.

Resumindo…

Em algoritmos, utilizamos as seguintes regras de precedência de

operadores:

 Executamos as operações de dentro para fora:

o primeiramente, os cálculos dentro dos parêntesis, ();

 Resolvendo-as sempre de acordo com a sequência abaixo e na

ordem em que aparecem:

o

1. Potenciação e Radiciação

2. Divisão e Multiplicação

3. Subtração e Adição

PORTUGOL: INTRODUÇÃO AO

PSEUDOCÓDIGO

Olá desenvolvedores, hoje com o portugol vamos de fato começar a dar nossos primeiros passos em lógica de programação. Para tanto, antes de começarmos a escrever nossos programas em linguagem codificada, vamos usar um recurso mais amigável e próximo da nossa linguagem, o pseudocódigo.

VÍDEO AULA – PORTUGOL: INTRODUÇÃO AO

PSEUDOCÓDIGO.

Por meio do Portugol, poderemos escrever algoritmos estruturados em português, e isso, independente da linguagem de programação. Então se você ainda não é aluno do Formação Java Web, não tem problema, fique com a gente e comece agora a desenvolver sua mentalidade de desenvolvedor. “Portugol, também conhecido como Português estruturado, é um pseudocódigo escrito em português”. Apesar de sucinta, esta definição da Wikipédia cumpre o seu papel de elucidar a ideia de que, apesar de não ser uma linguagem de computador real, o Portugol auxilia de forma didática no desenvolvimento de algoritmos. No entanto, sem a preocupação com a sintaxe correta do Java, ou qualquer outra linguagem. Apesar de não ser uma linguagem de computador real, o Portugol ou português estruturado, nos possibilitará escrever nossos pseudocódigos obedecendo a estrutura de algoritmos. Estrutura esta a partir da qual escreveremos instruções de entrada, saída e processamento dos dados. Tais instruções representam as ações que ocorrem em um sistema real. Começar com o Portugol vai auxiliar você, programador iniciante, a formar sua mentalidade de programador. E vai ajudá-lo a entender os princípios fundamentais que dão sustentação a aprendizagem de lógica de programação e algoritmos. Veja um exemplo prático do Portugol.

EXEMPLO DE UM PSEUDOCÓDIGO

Algoritmo "soma" var num01, num02, soma: REAL Início ESCREVAL("Entre com o 1º número") leia(num01) ESCREVAL("Entre com o 2º número")

Contamos um pouco de história e curiosidades, na próxima postagem esteja pronto para colocar a mão na massa. Nos vemos lá.

Indentação

Legibilidade do código

A organização é um fator crucial para a construção de um software. Sem ela a codificação não reagiria aos padrões de desenvolvimento que contribui para a legibilidade e escalação do código. Imagine que

um módulo, nunca visto anteriormente, precise ser analisado por um programador. Por mais que ele domine a linguagem em exercício é provável que a interpretação seja prejudicada se não houver um conjunto de coeficientes, envolvendo métodos de estandardização, que intensifiquem a compreensão do documento. Um dos requerimentos imprescindíveis para isso é a indentação de código que promove a hierarquização dos blocos instrucionais.

Indentação de código

A Indentação é uma técnica baseada em “ recuos ” que permite distinguir os arranjos do programa para deixar o código visualmente organizado. Em algumas linguagens como Pascal, JavaScript, C, Elixir, Lua, C++ e Java, a indentação não faz a menor diferença, ou seja, não altera o desempenho do programa. Ela só serve para coadjuvar o programador na leitura dos módulos durante a análise do algoritmo. Mas em outras linguagens como Python e Haskell a indentação é uma tarefa obrigatória para o desempenho do programa. A maioria dos ambientes de desenvolvimento oferecem recursos que identificam os blocos e suas hierarquias para automatizar o processo de indentação.

Espaço vs. Tab

Normalmente, para fazer a indentação, pode-se usar algumas teclas como “ tab ” ou “ espaço “. Todavia, ambas as preferências são bastante discutidas entre os programadores. Na medida em que alguns preferem usar o “ tab “, argumentando ser um recuo ágil e admissível,

Além disso, o término de cada instrução deve ser indicado com o símbolo de ponto e vírgula “;” e comentários para melhorar a compreensão do pseudocódigo podem ser adicionados ao final de qualquer linha de comando, precedidos de duas barras “//”. Comando de entrada de dados O comando de entrada de dados tem como objetivo enviar para uma variável, um valor informado pelo usuário através de dispositivos de entrada. Caso você não saiba o que são esses dispositivos, acesse agora a aula sobre a arquitetura de um computador digital para ficar por dentro do assunto. A utilização do comando de entrada de dados acontece através da instrução “leia (identificador)” e é ilustrada nos dois casos a seguir. a) inteiro: x; leia (x); b) real: y; caracter: z; leia (y,z); No primeiro exemplo, o usuário deverá fornecer um valor inteiro que será atribuído à variável x. Já no segundo exemplo, duas informações deverão ser enviadas pelo usuário, a primeira delas, do tipo real, enviada para a variável y , enquanto que a segunda é do tipo caracter, atribuída à variável z. Comando de saída de dados O último comando que veremos nessa aula é o comando de saída de dados, utilizado para enviarmos uma determinada informação para o usuário via dispositivos de saída. Novamente, recomendamos que acesse nossa aula sobre a estrutura de um computador digital caso ainda não conheça esses dispositivos. O comando de saída de dados é representado pela instrução “escreva (informação)”. Essa informação pode estar tanto contida em variáveis quanto em formato de texto, conforme podemos observar nos dois exemplos abaixo. a) escreva (x); b) escreva (“Hoje é dia”, x, “de maio”); Os caracteres que representam informação no formato de texto devem estar contidos entre aspas duplas para que o algoritmo seja capaz de diferenciá-los dos identificadores de variáveis. Além disso, devemos separar as informações por vírgulas “,” sempre que desejarmos alternar entre texto e variável. Para entendermos melhor a utilização de cada um desses comandos, vejamos agora um exemplo de um algoritmo completo, que lê e imprime o nome do usuário na tela do computador. Nosso primeiro algoritmo Problema para ler e imprimir um nome 1 inicio; //Início do algoritmo 2 caracter: nome[1…10]; //Declara a variável nome como carac

3 escreva (“digite o seu nome: “); //Exibe a mensagem na tela para o us 4 leia (nome); //Armazena o nome digitado na variáv 5 escreva (“o seu nome é: “, nome); //Exibe a mensagem e o nome digitado 6 fim. //Fim do algoritmo Nesse exemplo, adicionamos comentários e numeramos cada uma das linhas do algoritmo. Apesar de não serem obrigatórios, esses elementos facilitam a compreensão e a simulação do pseudocódigo, conforme veremos mais adiante. Todo algoritmo deve ser iniciado com o comando “inicio” na linha 1 e finalizado com o comando “fim” na última linha. Além disso, de forma a melhorar a visualização e localização de qualquer informação dentro de pseudocódigos mais longos, é uma boa prática indentarmos (deslocarmos para a direita) o conteúdo do algoritmo entre esses comandos de “inicio” e “fim”. Mais um exemplo de atribuição, entrada e saída de dados Problema do cálculo da idade em dias 1 inicio; //Início do algoritm 2 inteiro: idade_dias, idade_anos; //Declara as variáve 3 escreva (“Informe a sua idade em anos: “); //Exibe a mensagem n 4 leia (idade_anos); //Armazena a idade e 5 idade_dias idade_anos*365; //Calcula a idade em 6 escreva (“Você viveu”, idade_dias, “dias.”); //Exibe a mensagem n 7 fim. //Fim do algoritmo Um outro exemplo de algoritmo é apresentado acima, dessa vez, para lermos a idade em anos de um usuário e calcularmos a idade em dias. A informação do usuário é enviada à variável idade_anos. O valor contido nessa variável é multiplicado por 365 e o resultado atribuído à variável idade_dias. Ao final, uma mensagem é impressa na tela do computador informando o resultado. Vamos aproveitar esse exemplo para aprendermos a simular a execução de um pseudocódigo. Essa técnica é útil para que possamos procurar por eventuais erros de lógica dentro dos algoritmos que viermos a desenvolver. Como simular um algoritmo Para simularmos a execução de um algoritmo, devemos criar uma tabela parecida com a Tabela 1 abaixo. A primeira coluna indica a sequência de execução do algotimo, linha por linha. As outras colunas mostram cada uma das variáveis do pseudocódigo e a tela do computador. Simulando a execução do algoritmo para cálculo da idade em dias de um usuário