Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas Estrutura de um Programa em Linguagem Algorítmica Nesse curso nós vamos utilizar a linguagem algorítmica para treinar a programação de computadores. A linguagem algorítmica que nós vamos utilizar é muito similar às demais linguagens de programação imperativas. As principais diferenças entre a linguagem algorítmica e as demais linguagens de programação são: 1. A linguagem algorítmica pode ser escrita em português, portanto, é mas simples de compreender os conceitos iniciais. 2. A linguagem algorítmica é mais simples sintaticamente do que as demais linguagens de programação. Isso significa que podemos nos preocupar menos com regras sintáticas como, por exemplo, as regras que definem identificadores válidos. 3. A linguagem algorítmica não possui algumas restrições de implementação presentes nas linguagens de programação reais. Por exemplo, não existe faixa de valores válidos para um determinado tipo de variável na linguagem algorítmica. 4. Portanto, essas simplificações nos ajudam a focar na resolução do problema em si, e não em detalhes de sua codificação. Um algoritmo em linguagem algorítmica tem a seguinte estrutura mínima: Algoritmo primeiro; { } Esse é o algoritmo mais simples que pode ser criado em linguagem algorítmica. Ele inicia com a palavra algoritmo e é seguido de um nome para o algoritmo, escolhido pelo programador. Esse nome é mais formalmente chamado de identificador, pois ele identifica algo, neste caso o algoritmo. O identificador do algoritmo serve para nos ajudar a lembrar para que serve esse algoritmo. Nesse caso, esse é o nosso primeiro algoritmo, por isso o identificador primeiro. Sempre utilize identificadores que sejam sugestivos, no caso de algoritmos, que ajudem a lembrar qual é a função do algoritmo. As palavras { e } marcam o início e o final dos comandos presentes no algoritmo. Entre essas duas palavras nós devemos inserir os comandos que devem ser executados no algoritmo. As palavras { e } delimitam um bloco de comandos. Todo algoritmo tem pelo menos um bloco de comandos, chamado de corpo principal do algoritmo. O corpo principal do algoritmo termina com um ponto final após a palavra }. O algoritmo acima não faz absolutamente nada. Isso ocorre porque não existe nenhum comando dentro do corpo principal do algoritmo. Assim que nós começarmos a aprender alguns comandos, os nossos algoritmos ficarão mais interessantes. Para ajudar na explicação dos algoritmos, aqui nesse texto, são inseridos à esquerda do algoritmo, números que correspondem às posições das linhas. Por exemplo, o algoritmo anterior ficaria assim: 01 | Algoritmo primeiro; 02 | 03 | { 04 | } Variáveis Todos nós já ouvimos falar que os computadores são excelentes para armazenar e processar informações. Entretanto, o que deve ser feito para armazenar um determinado valor na memória do computador? Uma das formas de fazê-lo é através das variáveis. As variáveis são componentes de um algoritmo que permitem armazenar valores na memória do computador. O valor de uma variável pode ser modificado no decorrer da execução do algoritmo, daí a origem do nome "variável". As variáveis também possuem um tipo associado. O tipo da variável limita o valor que a variável pode receber. Existem diversos tipos de variáveis, os mais utilizados são: • inteiro: uma variável inteira pode receber um valor inteiro, como por exemplo: 2, 5, -6, 11 ou 15423; • real: uma variável real pode rececer um valor real, ou seja, um número com ou sem parte fracionária, como por exemplo: -1.43, 0.001, 5 ou 2111.99; • caracter: uma variável do tipo caracter pode receber como conteúdo um caracter (ou seja, um único símbolo que pode ser entrado pelo teclado), como por exemplo: %, #, q, A, 7 ou {. Em um algoritmo é necessário declarar as variáveis antes de utilizá-las. Declarar uma variável significa dizer qual é o identificador e o tipo da variável. Na linguagem algorítmica, a palavra variáveis indica o início do bloco de declaração de variáveis. 01 | Algoritmo segundo; 02 | 03 | { 04 | a: inteiro; 05 | 06 | 07 | } O algoritmo anterior dá um exemplo de como declarar um variável. Essa variável possui um identificador a e é do tipo inteiro. As variáveis devem ser declaradas entre a palavra variáveis e a palavra {, que indica o início do corpo principal do algoritmo. Por fim, as variáveis sempre são declaradas da forma: <Identificador da variável> : <Tipo da variável> ; No qual <Identificador da variável> deve ser substituído pelo nome da variável e <Tipo da variável> deve ser substituído pelo tipo da variável. Como por exemplo: a: inteiro; ou média: real; Repare que a declaração da variável a no algoritmo segundo está a alguns espaços em branco à direita. Isso é chamado de indentação e ajuda na legibilidade do programa. A indentação ajuda as pessoas que forem ler (incluindo você mesmo) o algoritmo. Nesse caso, fica bastante visível que a declaração a: inteiro; está dentro do bloco de declaração de variáveis. Portanto, a declaração a: inteiro cria uma variável com identificador a do tipo inteiro. Após declarar a variável a, é necessário executar os comandos presentes no corpo principal do algoritmo. Entretanto, no nosso segundo algoritmo o corpo principal está vazio. Sendo assim, o algoritmo termina. Nós já sabemos como declarar uma variável na linguagem algorítmica. Mas, como é possível ler ou alterar o valor dessa variável? As duas formas mais comuns para alterar o conteúdo de uma variável são: 1. através de uma atribuição; 2. através de um comando de entrada. Vamos ver agora como fazer uma atribuição. Mais tarde, vamos ver como os comandos de entrada funcionam. Uma atribuição é feita através do símbolo " ". Através desse símbolo é possível armazenar um valor (possivelmente resultado de uma expressão aritmética, como veremos logo a seguir) em uma variável. Vamos modificar o nosso segundo algoritmo para que ele armazene o valor 10 na variável a: 01 | Algoritmo terceiro; 02 | 03 | { 04 | a: inteiro; 05 | 06 | 07 | a 10; 08 | } O algoritmo acima possui um único comando dentro do corpo principal do algoritmo, esse comando é a atribuição na linha 07 (repare no símbolo ). Nesse caso, o valor 10 está sendo atribuído à variável a. Em português lê-se "a recebe 10". Como foi declarado, a variável de identificador a é uma variável que pode receber valores inteiros. Na linha 07, essa variável passará a ter como conteúdo o valor 10. Uma atribuição segue sempre a mesma sintaxe. À esquerda do símbolo de atribuição ( ) deve ser colocado o identificador de um variável. Essa variável irá receber o valor especificado à direita do símbolo de atribuição. Como veremos na próxima seção, pode-se utilizar, no lado direiro da atribuição, uma expressão matemática. Isso faz com que o programa possa realizar alguns cálculos matemáticos e atribuir o resultado à variável. Até agora nós somente sabemos como atribuir um valor a uma variável. Mais interessante seria se nós pudessemos realizar cálculos matemáticos com essas variáveis. Esse é o assunto da próxima seção. Expressões Aritméticas Podemos fazer um algoritmo que utilize as variáveis para realizar cálculos, como se o computador fosse uma calculadora. Por exemplo, podemos calcular a média anual de um estudante a partir de 4 notas bimestrais. O algoritmo ficaria assim: 01 | Algoritmo Média; 02 | 03 | { 04 | B1, B2, B2, B4: real; 05 | Média: real; 06 | 07 | 08 | B1 7; // Nota da primeira prova bimestral: 7 09 | B2 5; // Nota da segunda prova bimestral: 5 10 | B3 8; // Nota da terceira prova bimestral: 811 | B4 7; // Nota da quarta prova bimestral: 7 12 | Média (B1 + B2 + B3 + B4) / 4; 13 | } O algoritmo acima possui algumas novidades. Na linha 04 são declaradas 4 variáveis inteiras. Repare que para não repetir 4 vezes a mesma declaração "nome da variável: inteiro", nós podemos fazer uma simplificação e declarar na mesma linha as quatro variáveis. Isso é válido para qualquer número de variáveis e qualquer tipo. Entretanto, todas as variáveis declaradas na mesma linha precisam ser necessariamente do mesmo tipo. As linhas 08, 09, 10 e 11 fazem quatro atribuições às variáveis B1, B2, B3 e B4, respectivamente. B1, B2, B3, e B4 são as variáveis que armazenam as quatro notas bimestrais dos respectivos bimestres. Outra novidade são os textos iniciados por duas barras diagonais (//). Esses textos são chamados de comentários, e a sua função é simplesmente explicar algo para a pessoa que está lendo o algoritmo. Um comentário nunca é levado em consideração pelo algoritmo. A sua função é unicamente tornar o algoritmo mais simples de ser entendido pelas pessoas que o lêem. Um comentário inicia por // e se estende até o final da linha. Uma segunda forma fazer um comentário é colocar o texto entre os caracteres /* e */. Por exemplo: /* Nota da primeira prova bimestral: 7 */ Na linha 12 é atribuído à variável Média um valor resultante da expressão aritmética: (B1 + B2 + B3 + B4) / 4 Essa expressão aritmética precisa primeiro ser avaliada, ou seja, é necessário fazer os cálculos para ver qual valor resulta dessa expressão. Dado os valores das variáveis, o algoritmo realiza o seguinte cálculo. (7 + 5 + 8 + 7) / 4 Essa expressão resulta no valor 6,75. Por fim, esse valor é atribuído à variável Média. Repare que o valor 6,75 não é um valor inteiro. Portanto a variável Média não pode ser uma variável do tipo inteiro, mas sim uma variável do tipo real, exatamente como está declarado na linha 05. Existem vários tipos de operações que podem ser realizadas através de expressoões aritméticas. Para realizar essas operações é necessário conhecer os operadores aritmétidos da linguagem algorítmica. Eles são: • + (adição); • - (subtração); • * (multiplicação); • / (divisão); • div (divisão inteira); • % (resto de divisão inteira). Você já deve estar acostumado com as operações de adição, subtração, multiplicação e divisão. Mas, o que são as operações divisão inteira e resto de divisão inteira? Divisão inteira (operador div) calcula uma divisão entre dois números inteiros, mas o resultado fica restrito à parte inteira do quociente. Por exemplo: 7 / 2 = 3,5 Mas, 7 div 2 = 3 O operador resto de divisão inteira (%), faz, de certa forma, a operação complementar a operação de divisão inteira. Esse operador realiza uma divisão inteira e retorna o resto dessa divisão. Portanto: 7 % 2 = 1 Não é permitido omitir o operador de multiplicação, como é feito normalmente nos textos de matemática. Isso é feito para evitar confusões com os identificadores das variáveis. Na matemática a expressão AB+C quer dizer "multiplique A por B e some com C", mas na linguagem algorítmica AB pode ser entendido como um identificador de uma variável. Portanto, é obrigatório escrever A*B+C. Na linguagem algorítmica, os operadores possuem uma relação de prioridade entre si. Essa relação de prioridade está resumida na tabela a seguir: Prioridade Operador 1ª * / div % 2ª + - Para modificar a precedência dos operadores, basta utilizar parênteses. Por exemplo: (2 + 7) * (5 + 5) Na expressão acima, as parcelas (2 + 7) e (5 + 5) serão calculadas primeiro, resultando em 9 e 10. Só então a multiplicação será calculada, resultando em 90. Voltando ao algoritmo que calcula a média anual de um estudante, ele ainda pode ser melhorado. Por exemplo, o algoritmo não é capaz de informar ao usuário qual foi o resultado da média calculada. Para fazer isso, é necessário utilizar os comandos de entrada e saída. Esse é o assunto da próxima seção. Comandos de Entrada e Saída É importante que um algoritmo tenha mecanismos de comunicação com o usuário. As formas mais simples de fazê-lo é escrever mensagens na tela do computador e ler valores do teclado. Em linguagem algorítmica, os comandos utilizados para essas finalidades são os comandos escreva e leia. O comando escreva é um comando de saída. Na sua forma mais simples, esse comando permite que mensagens ou valores de variáveis sejam impressos na tela do computador. Toda mensagem a ser impressa na tela deve estar entre aspas. Por exemplo: escreva("Olá mundo"); imprime a mensagem "Olá mundo" na tela do computador. É possível imprimir também valores de variáveis, como por exemplo: escreva(Média); Nesse caso, o valor da variável Média é impresso na tela. Repare que o identificador da variável Média não está entre aspas. Isso indica que o valor da variável Média deve ser impresso na tela, e não a mensagem "Média". Podemos, então, refazer o nosso algoritmo de cálculo da média anual de forma que o algoritmo informe ao usuário qual foi o resultado do cálculo da média anual: 01 | Algoritmo Média; 02 | 03 | { 04 | B1, B2, B2, B4: real; 05 | Média: real; 06 | 07 | 08 | B1 7; // Nota da primeira prova bimestral: 7 09 | B2 5; // Nota da segunda prova bimestral: 5 10 | B3 8; // Nota da terceira prova bimestral: 8 11 | B4 7; // Nota da quarta prova bimestral: 7 12 | Média (B1 + B2 + B3 + B4) / 4; 13 | escreva(Média); 14 | } Ao algoritmo anterior foi adicionada apenas a linha 13, a qual utiliza o comando de saída escreva para escrever na tela do computador a valor da variável Média. Ainda, é possível mesclar mensagens e valores de variáveis em um mesmo comando escreva, para isso basta separar as mensagens e os nomes de variáveis com vírgulas, como por exemplo: escreva("O valor da sua média anual é ", Média); Com isso, o nosso algoritmo ficaria ainda mais fácil de ser utilizado pelo usuário. Podemos, portanto, modificar a linha 13 para escrever a mensagem anterior, o algoritmo ficaria assim: 01 | Algoritmo Média; 02 | 03 | { 04 | B1, B2, B2, B4: real; 05 | Média: real; 06 | 07 | 08 | B1 7; // Nota da primeira prova bimestral: 7 09 | B2 5; // Nota da segunda prova bimestral: 5 10 | B3 8; // Nota da terceira prova bimestral: 8 11 | B4 7; // Nota da quarta prova bimestral: 7 12 | Média (B1 + B2 + B3 + B4) / 4; 13 | escreva("O valor da sua média anual é ", Média); 14 | } Esse algoritmo imprime na tela do computador a mensagem: O valor da sua média anual é 6,75 O nosso algoritmo ainda possui um defeito. Ele calcula a média sempre sobre os mesmos valores das notas bimestrais. Seria bem mais interessante se esses valores pudessem ser fornecidos pelo usuário. Dessa forma, a cada execução do algoritmo, o usuário informaria quais são os valores das suas provas bimestrais. Para fazer isso é necessário utilizar o comando de entrada leia. Ele permite que informações externas (do teclado, por exemplo) sejam entradas em um algoritmo. Na sua forma mais simples o comando leia possui a seguinte sintaxe: leia(<identificador da variável>); Sendo que <identificador da variável> deve ser substituído por um identificador de uma variável declarada no algoritmo. Quando o comando leia é executado, a execução do algoritmo pára e fica esperando o usuário digitar um valor seguido da tecla ENTER. Enquanto o usuário não digita um valor seguido de ENTER o algoritmo não irá prosseguir. Tão logo o usuário digite um valor seguido da tecla ENTER, o valor digitado é automaticamente armazenado na variável especificada entre os parênteses do comando leia. É possível alterar o nossoalgoritmo de cálculo da média de forma que ele leia os valores das provas bimestrais do teclado, ao invés do programador atribuir esses valores diretamente no programa. Assim o usuário será capaz de fornecer diferentes valores para as notas das provas bimestrais, a cada execução do algoritmo. O algoritmo fica assim: 01 | Algoritmo Média; 02 | 03 | { 04 | B1, B2, B2, B4: real; 05 | Média: real; 06 | 07 | 08 | leia(B1); // Nota da primeira prova bimestral 09 | leia(B2); // Nota da segunda prova bimestral 10 | leia(B3); // Nota da terceira prova bimestral 11 | leia(B4); // Nota da quarta prova bimestral 12 | Média (B1 + B2 + B3 + B4) / 4; 13 | escreva("O valor da sua média anual é ", Média); 14 | } Nesse último algoritmo, o usuário será responsável por fornecer os valores das notas bimestrais. Quando o comando leia, na linha 08, é executado, o computador pára a execução e fica esperando o usuário digitar um valor no teclado. Vamos supor que o usuário digite 10. O valor 10 é então atribuído à variável B1. Na seqüência, são executados os comandos leia nas linhas 09, 10 e 11. Para cada comando leia o usuário terá que digitar um valor. Vamos supor que ele digite 5 para o comando leia na linha 09, 4 para o comando leia na linha 10 e 9 para o comando leia na linha 11. Então as variáveis B1, B2, B3 e B4 terão os seguintes valores: B1 = 10 B2 = 5 B3 = 4 B4 = 9 Na linha 12 é calculada a média anual. Essa média será: (B1 + B2 + B3 + B4) / 4 = (10 + 5 + 4 + 9) / 4 = 7 Portanto, o valor 7 é atribuído na linha 12 à variável Média. Por fim, o comando escreva, na linha 13, irá escrever na tela do computador a seguinte mensagem: O valor da sua média anual é 7 E o algoritmo termina. Um último melhoramento no nosso algoritmo de calcular a média anual. Repare que o algorimo não informa ao usuário o que deve ser feito. Seria mais interessante se o algoritmo escrevesse na tela do computador mensagens que indicassem o que o usuário deve fazer. Como por exemplo: Entre com o valor da sua primeira nota bimestral: E assim por diante. Vamos então modificar o nosso algoritmo para escrever mensagens de ajuda ao usuário: 01 | Algoritmo Média; 02 | 03 | { 04 | B1, B2, B2, B4: real; 05 | Média: real; 06 | 07 | 08 | escreva("Entre com o valor da primeira nota bimestral: "); 09 | leia(B1); // Nota da primeira prova bimestral 10 | escreva("Entre com o valor da segunda nota bimestral: "); 11 | leia(B2); // Nota da segunda prova bimestral 12 | escreva("Entre com o valor da terceira nota bimestral: "); 13 | leia(B3); // Nota da terceira prova bimestral 14 | escreva("Entre com o valor da quarta nota bimestral: "); 15 | leia(B4); // Nota da quarta prova bimestral 16 | Média (B1 + B2 + B3 + B4) / 4; 17 | escreva("O valor da sua média anual é ", Média); 18 | } Dicas Quando você criar os seus algorimtos lembre-se: • Utilize sempre identificadores sugestivos. Evite, por exemplo, chamar as variáveis que armazenam as notas bimestrais de X, Y, Z, W, pois esses identificadores não são sugestivos das funcionalidades dessas variáveis no algoritmo. • Sempre comente os seus algoritmos. Utilize os comentários para facilitar o entendimento do algoritmo. • Mantenha o seu algoritmo sempre legível. Evite escrevê-lo totalmente em letra maiúsculas. Utilize a indentação para mostrar que certos comandos fazem parte de blocos de comandos, por exemplo. Resumo Algumas coisas que você deve lembrar da aula de hoje: • Uma variável possui um identificador (nome), um tipo e um valor. O nome da variável é utilizado para ler ou modificar o valor dessa variável. O tipo da variável limita os valores que podem ser atribuídos à ela. Por exemplo, uma variável do tipo inteiro somente pode receber valores inteiros. • Os comandos de entrada e saída permitem que o programa se comunique com o mundo exterior. Em linguagem algorítmica o comando leia permite ler valores do teclado e atribuir esses valores às variáveis. O comando escreva escreve mensagens e valores de variáveis na tela do computador. • Expressões aritméticas fazem com o um algoritmo faça cálculos aritméticos. Esses cálculos podem envolver valores, variáveis e operadores, entre outras coisas. Exercícios 1. Faça um algoritmo que leia dois números, calcule e escreva na tela a soma, a multiplicação, a divisão e a subtração desses números. 2. Faça um algoritmo que leia dois valores: base e altura. Calcule e escreva na tela as áreas do retângulo (base * altura) e do triângulo (base * altura) / 2. 3. Faça um algoritmo que leia três valores do teclado, os quais correspondem a uma determinada hora (hora, minuto e segundo). Calcule e imprima na tela, quantos segundos a partir da hora zero, correspondem a hora fornecida pelo usuário.
Compartilhar