Baixe o app para aproveitar ainda mais
Prévia do material em texto
- -1 ALGORITMOS DE PROGRAMAÇÃO CAPÍTULO 4 - DESENVOLVIMENTO DE ALGORITMOS Rafael Alves Florindo - -2 Objetivos do capítulo Ao final deste capítulo, você será capaz de: • Desenvolver um algoritmo básico seguindo as regras apresentadas em forma de pseudocódigo. Tópicos de estudo • Variáveis. • Definição de variáveis. • Tipos de variáveis. • Memória. • Exemplos dirigidos. • Instruções básicas. • Início e fim de um algoritmo. • Declaração. • Leitura e escrita. • Exemplos dirigidos. • Operadores aritméticos. • Atribuição. • Soma e subtração ou inverso do sinal. • Multiplicação e divisão. • Resto. • Operadores relacionais e lógicos. • Igual e diferente. • Menor e menor igual. • Maior e maior igual. • Operadores And, OR e Not. Contextualizando o cenário Neste capítulo, será dado início ao desenvolvimento de algoritmos escritos no formato de “pseudocódigo”. Esses são os que mais se aproximam da linguagem nativa do programador, pois contêm traços de linguagem de programação, devido ao fato de serem utilizados comandos que estão escritos na linguagem natural do desenvolvedor. Dar-se-á início ao desenvolvimento de códigos aplicando conceito de variáveis, instruções básicas que proporcionaram subsídios para a estruturação do pseudocódigo. Por fim, o capítulo apresentará a aplicação dos operadores aritméticos, relacionais e lógicos, que são de grande importância para as tomadas de decisões. Diante desse cenário, surge como pergunta norteadora: como a correta interpretação do problema, separando- o em entrada, processamento e saída, auxilia o processo de construção do raciocínio lógico? 4.1 Variáveis Será abordado, neste tópico, o conteúdo de variáveis, que é empregado em todos os programas, desde os mais simples até os maiores sistemas ERP ( , ou Planejamento dos Recursos da Empresa). OsEnterprise Resource Planning conceitos que circundam as variáveis, seus tipos, como defini-las e o espaço que elas ocupam em memória são • • • • • • • • • • • • • • • • • • • • • - -3 assuntos discutidos aqui. Para fixar o conhecimento, serão resolvidos alguns exemplos; leia e revise o conteúdo quantas vezes forem necessárias, pois a prática o levará ao conhecimento e, em muitos momentos, a prática nada mais é do que a repetição. 4.1.1 Definição de variáveis Antes de se definir as variáveis, é preciso recorrer ao conceito que circunda o termo. Para Manzano (2002), Forbellone e Eberspacher (2005), uma variável é um espaço reservado em memória previamente identificada, que permite a leitura e a escrita de um valor que tem apenas um determinado tipo de dado, o qual armazenará um valor que está sujeito à variação no decorrer do algoritmo. O conteúdo dessas variáveis pode sofrer alterações (editado ou excluído), além de ser consultado no decorrer do algoritmo. Ainda conforme os autores, uma variável possui um identificador, ou seja, um nome, que é único para ela, e esses identificadores devem seguir uma certa nomenclatura, para que seja possível manter uma padronização e evitar erros nos códigos. Ao declarar uma variável com o nome de “nota” e atribuir a ela um valor 80, por exemplo, essa variável terá esse valor até que o seu valor seja alterado por um novo valor, seja ele atribuído ou resultado de um cálculo. Para a formação do nome de um identificador, atente-se aos itens clicando nos números abaixo. 1 Se ele é composto por uma sequência de caracteres, até um limite de x caracteres. 2 Não pode começar por números, mas, no meio da sequência de caracteres, pode ocorrer de ter números. 3 Não pode ser uma palavra reservada pela linguagem de programação. A palavra reservada quer dizer que existem palavras que as linguagens usam, mas que não podem ser usadas como variáveis. 4 Não pode conter caracteres especiais, acentos e espaços. 5 Não pode haver duas variáveis com mesmo nome dentro do mesmo escopo. 6 Pode conter “_” ( ) para separar variável com nome composto.underscore Observe a figura a seguir: - -4 Passo a passo para a formação do nome de um identificador. A declaração das variáveis no algoritmo possui uma seção específica, denominada “Seção de declaração de variáveis”; esta começa no início do algoritmo, com a palavra-chave var, e continua com as seguintes sintaxes: A palavra reservada var só pode ser utilizada uma única vez no algoritmo, ou seja, se, no decorrer do seu algoritmo, for necessário declarar outra variável, o programador recorre a esse local e faz a sua declaração. Para declarar uma variável, basta colocar o tipo, seguido de dois pontos “:”, e a declaração. Exemplo: Caso deseje declarar mais de uma variável do mesmo tipo, basta separá-las por vírgula, uma após a outra. Exemplo: - -5 Agora, se você precisar declarar várias variáveis de tipos diferentes, deverá inserir uma em cada linha. Exemplo: Neste momento, ainda não serão vistos detalhes do < >, mas sim a < >, porém deve-setipo-de-dado lista-de-variáveis saber que uma variável é um espaço reservado em memória, que armazenará uma informação e que terá um tipo de dado específico. Verifique alguns exemplos de nomes de variáveis que são válidas: casa, casa1, aluno_nome, rafael, nota Note que todas as variáveis estão seguindo os itens de construção de identificadores; no caso do identificador <casa1>, note que o número veio no fim da sequência, já no identificador <aluno_nome>, foi utilizado um “_”, .underscore Agora que os identificadores válidos foram analisados, é muito importante frisar os identificadores inválidos: 1aluno, leia, escreva, caso, se, multiplicação, c@asa, media aluno, x+y Note que a primeira variável < > é inválida, pois começa por numeral, enquanto o segundo, o terceiro, o1aluno quarto e o quinto identificadores são palavras reservadas da linguagem; já os identificadores < > e <multiplicação > possuem caracteres especiais, como acentuação e o símbolo do arroba. No identificador < >,c@asa media aluno por sua vez, há um espaço, e, por fim, o identificador <x+y> pode ser identificado como um processamento computacional ou com uso de caracteres especiais. Veja mais um exemplo de tipo de identificadores. São marcados V, para válido, e I, para inválido. Dessa maneira, as variáveis representam uma posição de memória, possuindo um nome único, cujo conteúdo é único, ou seja, só pode armazenar um valor a cada instante, contudo esse valor pode variar ao longo da execução do algoritmo ou de um programa. - -6 4.1.2 Tipos de variáveis Agora que já se sabe como nomear corretamente uma variável com um identificador, chegou a hora de estudar os possíveis tipos de dados. Em pseudocódigo, podem-se utilizar quatro tipos de dados, a saber: inteiro, real, cadeia e (ou booleano) (FORBELLONE; EBERSPACHER, 2005; MANZANO, 2002; ASCENCIO; CAMPOS,de caracteres lógico 2010). Confira a sintaxe para definição de variáveis. Sintaxe: Veja, nos próximos parágrafos, cada tipo de dado mencionado. • Inteiro: esse tipo define as variáveis numéricas do tipo inteiro; nesse tipo, é possível utilizar números positivos e negativos, sem componentes decimais. 10 ou -58 são exemplos de valores do tipo inteiro. Confira a sintaxe desse tipo de variável. Sintaxe: Exemplo: ao se definir a variável < >, assume-se que, nessa variável, será armazenada apenas a parte inteira deidade um número. Veja, a seguir, como definir uma variável do tipo real. • real: define variáveis numéricas do tipo real, que possuem casas decimais, ou seja, são números que podem conter frações, e o separador desses valores é o “.”. 12.59 ou 1.298 são exemplos do tipo real. Confira a sintaxe desse tipo de variável. Sintaxe: • • - -7 Exemplo: caso seja definida a variável < >, assume-se que, nessa variável, serão armazenadas a parte inteira enota fracionária de um número. Veja, a seguir, como definir uma variável do tipo caractere. • caractere: define variáveis do tipo , ou seja, cadeia de caracteres, que é formada por texto. Aqui, há string uma cadeia de caracteres definida pelo vetor nome_da_variavel, e a quantidade, pelo índice do vetor. Veja,a seguir, a sintaxe desse tipo. Sintaxe: Exemplo: • lógico: define variáveis do tipo , podendo ser (verdadeiras) ou (falsas). Outro valor, se booleano true false declarado em um contexto , será interpretado e convertido para ou . 0, por exemplo, é boolean true false false , e qualquer número diferente de 0 é convertido para . Confira, a seguir, a sintaxe desse tipo de variável.true Sintaxe: Exemplo: se for definida a variável < >, assume-se que, nessa variável, podem-se armazenar um dos doisstatus valores lógico possíveis. Veja, na sequência, como definir uma variável do tipo lógico. A seguir, é apresentado um exemplo prático de declaração de variáveis, para fixação do conteúdo. • • - -8 Exemplo: declarar as variáveis carro, modelo, porta e preço, cada uma com seu respectivo tipo. Note que as variáveis carro e modelo foram declaradas uma em cada linha, devido ao fato de o tamanho de caracteres ser diferentes. Neste tópico, foram abordados os identificadores e os tipos de dados que cada variável pode assumir; verificou-se, também, como declarar cada tipo de forma única ou múltipla (várias variáveis do mesmo tipo) no escopo do algoritmo. 4.1.3 Memória A referência à variável, em uma linguagem de programação, diz respeito a uma região de memória (do computador) que foi previamente identificada pelo desenvolvedor e que é reservada para guardar o valor e associá- lo ao nome criado para ela. Esse espaço corresponde a uma posição de na memória do computador,alocação contendo um identificador, um tipo, um tamanho e um valor. Ao declarar uma variável com o identificador , o programador usa a referência ou o seu endereço comonome variáveis, as quais estarão alocadas na Memória Ram do computador. Na maioria das linguagens de programação, não há necessidade de o programador definir ou manipular endereços de memória, deixando esse papel para o responsável. O processador e o sistema operacional se encarregam de reservar um espaço físico para variável em memória e, nesta, só se armazenará um único tipo de dado, salvo casos específicos de variáveis do tipo matriz, que aceitam dois tipos de dados (DEITEL; DEITEL, 2006). Quando se insere um valor dentro dessa variável, o compilador converte o que foi digitado para o tipo de dado da variável, por exemplo, <real>, e só após essa conversão o dado será armazenado. Verifique, na figura “Representação de armazenamentos de valores nas variáveis”, a localização do identificador e do conteúdo. Vale ressaltar que esse é apenas um exemplo didático, o objetivo não é mostrar a fundo como funcionam a alocação e o uso de memória pelo processador. AFIRMAÇÃO “Todo computador possui uma tabela de alocação que contém o nome da variável, o tipo da variável (para saber quantos bytes ocupará) e o seu endereço inicial de armazenamento” (PUGA; RISSETTI, 2003, p. 9). - -9 Representação de armazenamentos de valores nas variáveis. Ao se declarar uma variável, deve-se atentar para o seu uso real, ou seja, se uma variável só armazenará números inteiros, não a defina como real, pois cada tipo de variável possui um espaço, “tamanho”, de memória que é reservado para tal. Uma variável inteira pode ocupar 1, 2 ou 4 bytes, enquanto uma variável real chega a ocupar 4 ou 8 bytes (LOPES; GARCIA, 2002). Nos dias atuais, parece insignificante, mas é necessário tomar esse tipo de cuidado, pois se aloca espaço em memória desnecessário. Tanenbaum (2016, p. 125) afirma que “A memória principal (RAM) é um recurso importante que deve ser cuidadosamente gerenciado”. Há tipos de constantes que armazenam informações que não variam com o tempo, ou seja, o conteúdo é um valor fixo durante toda execução do algoritmo. Em constantes, não se defini o tipo, pois, ao receber o valor, ele assumirá, de forma implícita, o seu tipo, proveniente do valor declarado na constante. O comando utilizado para definir constantes é o CONST, e sua definição é dada por: AFIRMAÇÃO “Apesar de o computador pessoal médio, hoje em dia, ter 10.000 vezes mais memória do que o IBM 7094, o maior computador no mundo no início da década de 1960, os programas estão ficando maiores mais rapidamente do que as memórias” (TANENBAUM, 2016, p. 125). - -10 Com o conceito de memória definido, ficou mais concreto o que é uma variável, pois as variáveis correspondem, na realidade, às posições na memória do computador, e cada uma delas tem um nome, um tipo e o seu valor correspondente. 4.1.4 Exemplos dirigidos A seguir, serão apresentados exemplos, para que seja possível internalizar os conceitos trabalhados. 1. Declare três variáveis com os seguintes identificadores: nome_produto, quantidade e preco, cada qual com o seu respectivo peso. Resolução: Para declarar as variáveis, é necessário acessar o setor direcionado para a declaração de variáveis e, depois, os identificadores e os seus tipos. Para o identificador nome_produto, utiliza-se o tipo caractere. Para o identificador , atribui-se o tipo inteiro, pois não se pode colocar à venda um produto pela metade, aquantidade não ser em caso específico, quando se trabalha com peso, que não é o caso aqui. Por fim, para o identificar ,preco atribui-se o tipo real. 2. Identifique os identificadores das variáveis válidas com (V), e das inválidas com (I). Note que há vários identificadores que atendem às normas estabelecidas, sendo que as variáveis “$nome” e “guarda-chuva” têm caracteres especiais, enquanto as variáveis “1file” e “3produto_mes” iniciam com numeral, restando, assim, as variáveis “file1”, “guarda_chuva”, “produtoCliente” e “somatório”. - -11 3. Dado certo problema computacional, necessita-se que o algoritmo tenha as seguintes informações armazenadas, para que possam ser acessadas futuramente pela gerência da empresa: nome, idade, peso, altura, telefone e e-mail. Resolução: Na contextualização do exemplo, foram dados os identificadores que devem ser declarados, sendo que, para as variáveis “nome”, “telefone” e “email”, utiliza-se o tipo caractere. Você deve estar se perguntando: por que o telefone é inserido com caractere, e não com inteiro? A resposta é simples: o número do telefone não é número, até pode ser confundido com inteiro, mas não há um número inteiro tão grande assim para armazená-lo; seria, então, inviável pelo tamanho em memória, por esse motivo, é utilizado o tipo caractere mesmo. Para a variável “idade”, utiliza-se o tipo inteiro, já para o “peso” e “altura” é usado o tipo real. 4.2 Instruções básicas Serão estudadas, agora, as instruções, de forma abrangente, de um algoritmo em pseudocódigo. Para Manzano (2002), as instruções básicas são consideradas comandos que um computador executará para alcançar um determinado objetivo, por exemplo, declaração de variável, operações aritméticas, estruturas de decisão e repetição etc. As linguagens de programação, tais como Java, PHP, Python, apesar de parecidas, apresentam algumas instruções quais diferenciam umas das outras. Já foram estudadas a definição e a declaração de variáveis, a partir de agora, serão vistos os demais itens para a construção de um algoritmo em pseudocódigo. Forbellone e Eberspacher (2005) destacam algumas instruções básicas, tais como: início, fim, var, programa, enquanto, se, então, senão, para, escreva, leia, repita e até_que. Uma boa prática de programação é a utilização dos comentários, que tem por objetivo documentar os programas, auxiliando as pessoas leigas a lerem e compreenderem o que o desenvolvedor programou. Além de auxiliar qualquer pessoa o comentário, é de grande importância durante a manutenção, pois diminui o tempo de ter que estudar linha por linha, a fim de encontrar o problema (DEITEL; DEITEL, 2006). Os compiladores ignoram essa linha, ou seja, não a executam. Cada linguagem de programação tem a sua sintaxe para a utilização do recurso de comentário: em pseudocódigo, há um tipo de comentário de única linha, que sempre é precedido pela marcação “//”. Quando utilizado, é ignorado, até se atingir o fim da linha. Por esse motivo, - -12 os comentários nãose estendem por mais de uma linha: quando se deseja escrever comentários mais longos, que ocupem várias linhas, cada uma delas deverá começar por "//". 4.2.1 Início e fim de um algoritmo Todo algoritmo deve ter um início e um fim, no qual se delimita a seção reservada para o conjunto de instruções de um algoritmo em pseudocódigo. Essas instruções comandam o funcionamento da máquina e determinam a maneira como devem ser tratados os dados (FORBELLONE; EBERSPACHER, 2005). Confira, a seguir, a sintaxe e um exemplo. Sintaxe: Em que: 1. algoritmo é uma palavra que indica o início da definição de um algoritmo em forma de pseudocódigo; 2. <nome_do_algoritmo> é um nome simbólico dado ao algoritmo; 3. seção de declaração de variáveis consiste em uma porção opcional, em que são declaradas as variáveis globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos; 4. <subalgoritmos> consiste em uma porção opcional do pseudocódigo, em que são definidos os subalgoritmos; 5. início e fim são, respectivamente, as palavras que delimitam o início e o término do conjunto de instruções do corpo do algoritmo. DICA Comentários ajudam a documentar os códigos e auxiliam o entendimento de outros desenvolvedores sobre os objetivos com relação à estrutura do código. - -13 Tome nota Note que, na sintaxe abordada, há um espaço no início das linhas, isso se dá pela chamada de indentação de código, uma prática muito utilizada pelos programadores, deixando o código mais legível e com uma boa aparência. Também foi utilizada função “escreva()” para impressão de mensagem em tela. Exemplo 1: crie um algoritmo que imprima “Olá, seja bem-vindo!”. Exemplo 2: crie um algoritmo que armazene a idade de 10 anos de uma pessoa e imprima a idade na tela. - -14 Note que, neste tópico, iniciou-se a montagem do algoritmo em pseudocódigo, delimitando o início, a declaração de variáveis e o fim. 4.2.2 Declaração A seção de declaração de variáveis é realizada logo após a linha de identificação do programa e antes do início do conjunto de instruções. Deve haver apenas uma seção de declaração de variáveis, na qual devem constar todas as variáveis e seus respectivos tipos de dados, conforme o exemplo a seguir. Exemplo: declarar as variáveis e idade, do tipo inteiro, e as variáveis , e , do tipo real.codigo nota soma media De acordo com o exemplo, declaram-se as variáveis solicitadas, contudo, caso se queira declarar cada variável em uma linha, também é possível, não haverá diferença na execução do algoritmo, apenas na quantidade de linhas. 4.2.3 Leitura e escrita O recurso de leitura e escrita de sistemas pode ser entendido como entrada ( ) e saída ( ) de dados. Umainput output vez que é realizada a entrada do dado no sistema, ele é processado e, depois, escrito em um formato de saída. Na figura “Entrada, processamento e saída”, é possível visualizar esse processo. - -15 Entrada, processamento e saída. Fonte: Bakhtiar Zein / / 123RF. Os comandos de entrada de dados são o meio pelo qual as informações dos usuários são transferidas para a memória dos computadores, para que possam ser usadas nos programas. Podem-se utilizar de duas forma as entradas de dados no algoritmo, seja individualmente, seja em grupos (FORBELLONE; EBERSPACHER, 2005). Clique nas abas e veja como ler apenas uma variável ou mais do que uma variável de uma só vez, de forma sequencial. • Uma variável Sintaxe: leia (<variável>). Exemplo: leia (idade); leia (nome); leia (sexo); • Lista de variáveis Sintaxe: leia (<lista_de_variáveis>) Exemplo: leia (idade, nome, sexo); A palavra “leia” será tratada como uma palavra reservada, e não poderá ser usada como nome de variável em algoritmos. Na figura “Dados de entrada para a autenticação de usuário”, está sendo solicitado ao usuário que informe os dados de “username”, “password”. Além desses campos de preenchimento, o usuário ainda pode assinalar o recurso de “lembrar-me” no sistema “Remember me”, ou, caso ele tenha esquecido a sua senha, o sistema pode fornecer a dica ao clicar em “Forgot password”. • • - -16 Dados de entrada para a autenticação de usuário. Fonte: © siridhata // 123RF. Os comandos de saída de dados são o meio pelo qual informações contidas na memória dos computadores são colocadas nos dispositivos de saída, para que os usuários possam apreciá-las. Pode-se realizar a saída de quatro formas: variável, lista de variáveis, literal ou intercalando literal com variável. Veja, na sequência, cada uma delas com sintaxe e exemplo. A primeira forma que será estudada é a impressão de apenas uma variável por vez. Sintaxe: escreva (<variável>) Exemplo: A segunda forma que será estudada é a impressão de uma lista de variáveis, ou seja, quando é necessário imprimir mais do que uma variável por vez. Sintaxe: escreva (<lista_de_variáveis>) Exemplo: A terceira forma a ser estudada é a literal de um texto, ou seja, são as chamadas para as entradas, saídas ou, ainda, informações adicionais no decorrer do algoritmo. Sintaxe: escreva (<literal>); Exemplo: - -17 Por fim, um dos tipos mais utilizados serve para montar uma resposta adequada na tela do usuário, intercalando dentro de uma frase as respostas para cada variável. Sintaxe: escreva (<literal>, <variável>, ... ,<literal>, <variável>) Exemplo: É possível, ainda, imprimir o salto de linha, ou seja, uma quebra de linha, levando, assim, o cursor para a próxima página. Para isso, utilize a função “escreval()”, em vez de “escreva()”. A palavra “escreva” será considerada uma palavra reservada e não poderá ser utilizada como nome de variável, de modo que toda vez que for encontrada em algoritmos será identificada como um comando de saída de dados. Na figura “Geração de relatórios como saída de dados”, é possível visualizar vários documentos impressos com diversos formatos de saídas, como texto, imagem, gráficos, dentre outros, que estão sendo utilizados para auxiliar o gerenciamento dos departamentos da organização. Geração de relatórios como saída de dados. Fonte: © pratyaksa / / 123RF. Agora que já você já aprendeu como realizar entradas e saídas das variáveis no algoritmo, pratique alguns exemplos de declaração e impressão de valores em tela, para se acostumar a colocar nomes nas variáveis e, principalmente, a criar variáveis com nomes válidos e coerentes. - -18 Não fique preso apenas às atividades propostas, você deve praticar muito a programação, pois só aprende quem programa, ou seja, erra e aprende com os erros. 4.2.4 Exemplos dirigidos Para praticar os algoritmos, será colocado em prática o conteúdo absorvido neste tópico, por meio dos exemplos dirigidos apresentados a seguir. 1. Construa um algoritmo em pseudocódigo que peça como dados de entrada duas notas e o nome do aluno. No fim, imprima o nome do aluno e as suas respectivas notas na tela. Para resolver esse problema, primeiramente, deve-se separar o que é entrada e saída, nesse caso: Entrada: ler as notas (nota1, nota2) do aluno (aluno). Saída: escrever na tela o nome do aluno e as notas (nota1 e nota2). Note que, nesse exemplo, não há processamento. 2. Construa um algoritmo para que o usuário informe o peso em quilos de duas pessoas. O algoritmo deverá mostrar para o usuário o nome e o seu peso. DICA Ao praticar, sugiro que, nos 30 primeiros minutos, você pense durante os primeiros 15 minutos, digite durante 5 minutos, teste durante 5 minutos e refatore (melhore) seu código nos últimos 5 minutos. - -19 Para resolver esse problema, primeiramente, separam-se o que é entrada e o que é saída, no caso, o peso e o nome de duas pessoas. Entrada: ler o peso e o nome de duas pessoas. Saída: escrever na tela o nome e o peso das duas pessoas. 3. Classifique os conteúdos das variáveis a seguir de acordo com seu tipo, assinalando I, para inteiros, R, para reais, L, para lógicos, e C, para caracteres. a. ( ) 10. b. ( ) Verdadeiro. c. ( ) 8.2. d. ( ) -10. e.( ) “casa”. a. (I) 10. b.(L) Verdadeiro. c. (R) 8.2. d. (I) -10. e. (C) “casa”. 4. Declare três variáveis com osseguinte identificadores: nome_produto, quantidade e preco, cada qual com o seu respectivo tipo. Para declarar as variáveis, é necessário acessar o setor direcionado para a declaração de variáveis e, depois, os identificadores e seus tipos. Para o identificador nome_produto, será utilizado o tipo caractere. Para o identificador quantidade, atribui-se o tipo inteiro, pois não se pode colocar à venda um produto pela metade, a não ser em caso específico, quando se trabalha com o peso, que não é o caso aqui . Por fim, oapresentado identificador , para o qual se atribui o tipo real.preco Entrada: ler o nome do produto, a quantidade e o preço. Saída: escrever na tela o nome do produto, a quantidade e o preço. - -20 4.3 Operadores aritméticos Após a familiarização com as instruções básicas, será estudado o processamento computacional com os operadores aritméticos. Os operadores aritméticos são formados por um conjunto de símbolos que representa os operadores matemáticos. Há, também, as expressões aritméticas, que são aquelas em que aparecem os operadores aritméticos (+, -, * e /) e os seus operandos, que são valores do tipo numérico (inteiro ou real). Esses valores numéricos podem ser acessados por meio de constantes ou por meio de variáveis, as quais são atribuídas a um outro identificador por meio do operador de atribuição que receberá as expressões aritméticas (FORBELLONE, EBERSPACHER, 2005; MANZANO, 2002). Cada operação aritmética deve ser escrita em apenas uma única linha, ou seja, é necessário utilizar parênteses para garantir que todas as operações sejam executadas na ordem adequada. As operações aritméticas que serão estudadas são: adição, subtração, multiplicação, divisão e o resto (módulo), além desses, há o inverso de sinal e o operador de atribuição. 4.3.1 Atribuição O operador de atribuição é responsável por atribuir ou alterar um valor para uma variável. Esse processo é representado pelo símbolo de uma seta invertida (<-), quando se trabalha com identificadores/variáveis, e pelo símbolo =, quando se trabalha com identificadores constantes. Note que uma variável pode armazenar apenas um único valor por vez, sendo que sempre que um novo valor é atribuído à variável o valor anterior que estava armazenado nela é perdido, ou seja, acontece uma substituição de valores. Sintaxe: - -21 Exemplo: Note que, nesse exemplo, atribui-se o nome de uma pessoa entre aspas duplas na variável , devido a esta sernome do tipo caractere. Após, atribui-se a variável à idade de 36 anos. Em seguida, é feita uma atribuição deidade variável, recurso muito utilizado, ou seja, inicia-se uma variável com o valor de outra, a fim de não substituir o valor original inicial, sendo assim, fez-se a variável receber o valor da variável . Por fim, atribui-se àprofessor nome variável uma expressão aritmética com o operador de subtração, para calcular o ano deanoNascimento nascimento de uma pessoa. A partir desse exemplo, é possível que você faça relação entre as áreas das exatas e os algoritmos, pois já tem conhecimento para construir algoritmos envolvendo atribuição de valores e cálculos matemáticos. 4.3.2 Soma e subtração ou inverso do sinal Dentro dos operadores da matemática, há os símbolos da adição e da subtração, que podem realizar a soma ou a subtração diretamente entre os valores ou entre identificadores. Sintaxe: Exemplo: - -22 Na operação de inversão de sinal, um valor inverso é ele mesmo com sinal invertido, ou seja, se há um valor inteiro positivo (10), o seu valor inverso seria um valor inteiro negativo (-10). O mesmo ocorre no caso contrário: se há um valor inteiro negativo (-10), o seu valor inverso será um valor inteiro positivo (10). Para fazer essa inversão, basta multiplicar o valor pelo número 1 com o sinal negativo e armazenar o valor na mesma variável. Sintaxe: Exemplo: A partir dessas operações, pode-se calcular “n” expressões aritméticas, agilizando e resolvendo os principais problemas computacionais. 4.3.3 Multiplicação e divisão Dentro dos operadores da matemática, há os símbolos da multiplicação e da divisão, que podem realizar a divisão ou a multiplicação entre valores ou entre identificadores. Sintaxe: PAUSA PARA REFLETIR Com o uso do operador de inversor do sinal, será que é possível calcular o valor absoluto de um número negativo qualquer? - -23 Exemplo: Com os operadores da multiplicação, é possível calcular os totais de itens de uma nota fiscal e, com o operador da divisão, pode-se calcular a média aritmética. Note que esses não são os únicos locais em que serão utilizados esses operadores, existe um campo vasto de uso na Matemática, na Geometria, na Trigonometria etc. 4.3.4 Resto Na programação de computadores, existe um operador que é muito utilizado, o operador de módulo, isto é, quando se desejar saber o resto da divisão entre duas variáveis. Por exemplo, 8 MOD 3 = 2. Esse operador é constantemente utilizado para cálculos de números ímpares, se um número é divisível ou multiplicador de outro. Exemplos: 4.4 Operadores relacionais e lógicos Para utilizar os operadores relacionais e lógicos, deve-se ter o conhecimento das instruções de .se...entao...fim_se Essas instruções verificam uma condição, ou seja, verificam o estado de uma determinada variável; esse estado pode resultar em verdadeiro ou falso. Dessa forma, os operadores relacionais servem para comparar dois valores do mesmo tipo, retornando o resultado da comparação, se foi verdadeiro ou falso. Por exemplo, a expressão 20 < 33 é uma expressão lógica válida, cujo valor é verdadeiro. Em contrapartida, a expressão 20 = 80 é uma expressão lógica também válida, mas cujo valor é falso. Confira o quadro “Operadores relacionais”. - -24 Operadores relacionais. Fonte: MANZANO, 2002. (Adaptado). Os operadores lógicos são usados para representar situações lógicas que não podem ser representadas por operadores aritméticos. Também são chamados conectivos lógicos, por unirem duas expressões simples em uma composta. Podem ser operadores binários, que operam em duas sentenças ou expressões, ou unários, que operam em uma sentença só. Confira o quadro “Operadores lógicos”. Operadores lógicos. Fonte: MANZANO, 2002. (Adaptado). A seguir, os operadores serão estudados separadamente e, depois, serão todos unidos em exemplos. 4.4.1 Igual e diferente Para representar o sinal de igualdade ou de diferente em um algoritmo, deve-se utilizar os símbolos de (=) e (<>), respectivamente. Sintaxe: - -25 Exemplo: Esse operador é constantemente utilizado para verificar, por exemplo, se um usuário informado é igual ao usuário cadastrado no banco de dados (autenticação de usuário), ou, enquanto é digitada a resposta diferente de n, para solicitar, novamente, o cadastro de outro usuário. 4.4.2 Menor e menor igual Para representar o sinal menor e menor igual em um algoritmo, devemos utilizar os símbolos (<) e (<=), respectivamente. O sinal de (<=) merece uma atenção especial, para que a expressão seja verdadeira; valor a ser testado pode ser menor ou igual ao número ou sequência. Sintaxe: Exemplo: Note que esses operadores funcionam como limitadores inferiores ou, ainda, terminadores de estruturas de repetições. 4.4.3 Maior e maior igual Para representar o sinal maior e maior igual em um algoritmo, utilizam-se os símbolos (>) e (>=), respectivamente. Como no caso do sinal (<=), o sinal (>=) merece uma atenção especial, para que a expressão seja verdadeira, o valor a ser testado pode ser maior ou igual ao número ou à sequência. Sintaxe: - -26 Exemplo: Note que esses operadores funcionam como limitadores superiores ou, ainda, terminadores de estruturas de repetições. Exemplo: dadas as variáveis A, B, C, D e E, substitua-as por 4, 5, 7, 9 e 1, respectivamente, e apresente o valor lógico das expressões. a. ( A > B) (4 > 5) = F b.( B < C) (5 < 7) = V c.( D >= B) (9 >= 5) = V d.( A <> E) (4 <> 1) = V e. ( A = B) (4 = 5) = F Com esses operadores lógicos e relacionais, é possível começar a construir regras de negócios,fazendo desvios de fluxo no código. 4.4.4 Operação , e And Or Not Os operadores lógicos são utilizados dentro da estrutura , com o intuito de validarem umase...entao...senao condição composta, ou seja, um condição que tenha dois valores lógicos, que podem ser obtidos por um operador relacional ou apenas pelo identificador. O primeiro operador é o And (e), o qual tem a função de conjunção. Para que se tenha um valor lógico verdadeiro (V), as duas entradas devem ser verdadeiras. Confira na “Tabela verdade do operador de conjunção”, o resultado do operador And. - -27 Tabela verdade do operador de conjunção. O segundo operador é o OR (ou), que tem a função de disjunção. Para que se tenha um valor lógico verdadeiro (V), basta uma das entradas ser verdadeira. Confira a “Tabela verdade do operador de disjunção”. Tabela verdade do operador de disjunção. Por fim, há o operador NAO, que tem a função de inverter o sinal lógico. Veja a “Tabela verdade do operador NAO”. Tabela verdade do operador NAO. Exemplo: dadas as variáveis A, B, C, D e E, substitua-as por 4, 5, 7, 9 e 1, respectivamente, e apresente o valor lógico da expressões a seguir. a. ( A > B) AND ( B < C) (4 > 5) AND (5 < 7) F e V F b. ( B < C) OR ( A > B) (5 < 7) OR (4 > 5) - -28 V OR F V c. ( D >= B) OR ( A <> E) (9 >= 5) OR (4 <> 1) V OR V V d.( A <> E) AND ( A = B) (4 <> 1) AND (4 = 5) V AND F F e. ( A = B) AND NAO ( A = B) (4 = 5) AND (NAO (4=5)) F AND (NAO F) F AND V F De acordo com Forbelllone e Eberspacher (2005), há a prioridade na ordem de execução dos operadores, conforme expõe a tabela “Prioridades de execução dos operadores”. Prioridades de execução dos operadores. Fonte: FORBELLONE; EBERSPACHER, 2005. (Adaptado). - -29 Após estudar todos os operadores, o uso deles será colocado em prática com os exemplos dirigidos. Exemplos dirigidos 1. Qual o valor lógico das expressões a seguir? a. 4 < 5 AND 8 = 8. Inicialmente, colocam-se parênteses, para que seja possível resolver as expressões: (4 < 5) AND (8=8) V AND V V Resultado: valor lógico (V). b. 4 < 5 OR 8 = 8. Inicialmente, colocam-se parênteses, para que seja possível resolver as expressões: (4 < 5) OR (8 = 8) V OR V V Resultado: valor lógico (V). c. F AND 45/5 <> 90 Inicialmente, colocam-se parênteses, para que seja possível resolver as expressões: F AND ((45/5) <> 90) F AND (9 <> 90) F AND V F Resultado: valor lógico (F). d. NAO F OR 45/5 <> 90 Inicialmente, colocam-se parênteses, para que seja possível resolver as expressões: (NAO F) OR ((45/5) <> 90) V OR (9 <> 90) V OR V V Resultado: valor lógico (V). Proposta de atividade Agora é a hora de rever tudo o que você aprendeu neste capítulo! Elabore um algoritmo em pseudocódigo, que calcule o salário líquido de um funcionário. Sabe-se que, para obter o salário líquido, devem-se ter os descontos de INSS, abordando as principais ideias apresentadas ao longo do capítulo. Ao produzir seu algoritmo, considere as leituras básicas e complementares realizadas. PAUSA PARA REFLETIR Com o uso dos operadores relacionais e lógicos, é possível que um programa de computador possa ter vida própria a partir de uma entrada? - -30 Recapitulando Neste capítulo, foi introduzido o conceito de algoritmos na forma de pseudocódigo, com suas regras específicas predefinidas. O pseudocódigo tende a auxiliar na transcrição ou na tradução do que se pretende programar em uma linguagem de programação, diminuindo assim o tempo de programação. No processo de construção de algoritmos, sugere-se separar as entradas (dados de entradas do sistema), o processamento (cálculos a serem realizados) e a saída (informações a serem impressas), a fim de auxiliar na codificação, resultando em uma assertividade nos valores obtidos com a execução do algoritmo. Foi possível aprender a armazenar os dados obtidos mediante entradas específicas, por meio do comando <leia> nas suas respectivas variáveis, que são espaços reservados na memória do computador, onde existem diversos tipos de dados (real, inteiro, lógico, caractere) para o correto armazenamento, pois os programas tendem a expandir-se, a fim de preencher a memória disponível. As variáveis devem seguir regras específicas para a sua identificação, evitando, assim, variáveis com nome de palavras reservadas. Além da entrada, há o comando <escreva>, que permite verificar a saída dos dados e informar o que deve ser informado. Por fim, foi apresentada a utilização dos operadores aritméticos (soma, subtração, multiplicação, divisão e inversor de sinal). Sobre o operador de inversão de sinal, é possível calcular o valor absoluto de um número negativo; o valor absoluto de um número negativo é positivo. Estudou-se, também, os operadores relacionais (maior, menor, diferente, maior igual, menor e igual e, por fim, o operador de igual) e os operadores lógicos ( , e ), que sãoAnd Or Not um recurso indispensável no desenvolvimento de códigos. No estudo desses operadores, foi visto que, a partir das entradas de valores nas variáveis, é possível realizar diversas comparações, as quais resultarão em valores lógicos e, com esses valores, é possível tomar decisões de forma automática, ou seja, o programa pode ficar executando suas funções pré-programadas por curto ou longo período de tempo. Referências ASCENCIO, A. F. G.; CAMPOS, E. A. V. . Fundamentos da Programação de Computadores 5. ed. São Paulo: Prentice Hall, 2010. DEITEL, H. M.; DEITEL, P. J. : como programar. 5. ed. São Paulo: Pearson Prentice Hall, 2006.C++ FORBELLONE, A. L. V.; EBERSPACHER, H. F. : a construção de algoritmos e estrutura deLógica de Programação dados. 3. ed. São Paulo: Pearson Prentice Hall, 2005. MANZANO, J. A. N. G. : Linguagem C. 7. ed. São Paulo: Érica, 2005.Estudo Dirigido de Algoritmos PUGA, S.; RISSETTI, G. – com aplicações em Java. 2. ed. São Paulo:Lógica de Programação e Estruturas de Dados Pearson, 2003. TANENBAUM, A. S.; BOS, H. . 4. ed. São Paulo: Pearson Education do Brasil, 2016.Sistemas Operacionais Modernos Objetivos do capítulo Tópicos de estudo Contextualizando o cenário 4.1 Variáveis 4.1.1 Definição de variáveis 4.1.2 Tipos de variáveis 4.1.3 Memória 4.1.4 Exemplos dirigidos 4.2 Instruções básicas 4.2.1 Início e fim de um algoritmo 4.2.2 Declaração 4.2.3 Leitura e escrita Uma variável Lista de variáveis 4.2.4 Exemplos dirigidos 4.3 Operadores aritméticos 4.3.1 Atribuição 4.3.2 Soma e subtração ou inverso do sinal 4.3.3 Multiplicação e divisão 4.3.4 Resto 4.4 Operadores relacionais e lógicos 4.4.1 Igual e diferente 4.4.2 Menor e menor igual 4.4.3 Maior e maior igual 4.4.4 Operação And, Or e Not Proposta de atividade Recapitulando Referências
Compartilhar