Baixe o app para aproveitar ainda mais
Prévia do material em texto
1ºAula Relembrando Algoritmos Objetivos de aprendizagem Ao término desta aula, vocês serão capazes de: • relembrar o conceito de algoritmos; • relembrar conceitos importantes na matéria, como sintaxe básica, estruturas de repetição, estruturas de condição, vetores e matrizes. Prezados(as) alunos(as), estamos iniciando a disciplina de “Algoritmos II”. Nesta disciplina, vocês vão ver tópicos avançados de programação, como: registros, modularização e arquivos. No final da matéria, vocês verão alguns algoritmos de ordenação, para fecharmos a matéria. Mas antes de iniciarmos, vamos relembrar o que vimos em “Algoritmos I”, pois o conteúdo vai ser usado em nossa disciplina. Assim, leiam atentamente essa aula. Se achar necessário, façam uma revisão do conteúdo. E sempre que necessário, utilizem o “quadro de avisos” e o “fórum” para sanar as suas dúvidas. E lembrem-se, você é o protagonista da sua aprendizagem. Boa aula! Vamos lá? Bons estudos! 6Algoritmos II Seções de estudo 1 - Introdução e estruturas básicas 1 - Introdução e estruturas básicas 2 - Comandos básicos 3 - Estruturas Condicionais e de Repetição 4 - Vetores e Matrizes Antes de relembrarmos como escrevemos algoritmos, vamos relembrar o que é um algoritmo. Na disciplina anterior, vimos que Guimarães e Lages definem algoritmo como: “[...] descrição de um padrão de comportamento, expressão em termos de um repertório bem definido e finito de ações primitivas, das quais damos por certo que elas podem ser executadas” (GUIMARÃES; LAGES, 1994, p. 4). Farrer et. al. (1999, p. 14) descreve Algoritmo como: “um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações.” Assim, Algoritmo é uma série de passos que são executados para chegarmos a uma solução. Uma receita de bolo é um grande exemplo disso. Na computação, escrevemos algoritmos para ordenarmos ao computador o que deve ser feito. Para isso, usamos uma sintaxe bem definida para que a máquina entenda o que queremos. Nesta aula, vamos relembrar a sintaxe do PORTUGOL (adaptado ao programa Visualg) que é usada para construção de algoritmos. 1.1 - Tipos de dados Um algoritmo processa dados. Um algoritmo escrito em Portugol reconhece os seguintes tipos de dados. • Inteiros: Representa números inteiros, que não possui parte fracionada. Por exemplo: 2, -6, 999. Nos algoritmos, declaramos com a palavra inteiro. • Reais: Representa números reais, com parte fracionária. Ex: 3, 9.6, -90.2. É declarado através da palavra real. • Caracteres: É uma sequência de letras, números e símbolos, que é declarada entre aspas (“”). É usado para armazenar textos. Declarado através da palavra caractere. • Lógico: Representa valores verdadeiro ou falso. Declarado através da palavra logico. 1.2 - Operadores Podemos considerar um algoritmo como uma sequência de instruções. Em cada instrução, podemos ter expressões. Por sua vez, as expressões são formadas por operadores. São avaliadas da esquerda para a direita, da mesma forma que lemos um texto. Porém, existe uma ordem de precedência, que indica quais expressões serão avaliadas primeiro. Vejamos: • expressões dentro de parênteses e funções; • operador unário menos ou negação; • operadores aritméticos de divisão e multiplicação; • operadores aritméticos de subtração e soma; • operadores relacionais; • operadores lógicos. Há três tipos de operadores, que são: Operadores aritméticos: São usados para operações matemáticas a serem realizadas, para obter resultados numéricos. Quadro 1 - Operadores Aritméticos. Operadores relacionais: São usados para testar uma relação entre os elementos. Se houver, a expressão retorna verdadeiro, caso contrário, a expressão retorna falso. Quadro 2 - Operadores Relacionais. Operadores lógicos: São usados para combinar expressões relacionais, compondo expressões mais sofisticadas. Quadro 3 - Operadores Lógicos. 1.3 - Palavras reservadas São palavras que a linguagem utiliza para compor um algoritmo, assim, já tem um sentido definido. O usuário não pode usar essas palavras para nomear variáveis ou para estabelecer outro sentido. Quadro 4 - Palavras reservadas. 1.4 - Estrutura básica de um algoritmo Um algoritmo possui a seguinte estrutura básica: algoritmo “Nome do Programa” //Entre aspas você nomeia o algoritmo // isto é um comentário // abaixo você faz a declaração das variáveis do algoritmo var var01 : inteiro var02 : logico 7 var03 : real // (...) inicio // comeca a declaração das instruções do algoritmo <comando1> <comando2> fimalgoritmo 1.5 - Variáveis O conceito de variável é um dos conceitos mais importantes em algoritmos, pois por meio dele armazenamos dados a serem salvos para serem processados em um algoritmo. Cada variável tem um nome para sua identificação. E esse nome deve obedecer às seguintes regras: • deve ser iniciado por uma letra ou pelo sinal de sublinhado (underline); • a partir da segunda letra, podemos usar letras e números; • com exceção do sinal de sublinhado, outros símbolos são proibidos em nomes de variáveis; • não podem ter nomes iguais as palavras reservadas da sintaxe do PORTUGOL. As variáveis são declaradas em um algoritmo no bloco var, antes da declaração dos comandos do algoritmo. Em cada linha do bloco var, colocamos o nome da variável, depois escrevemos o sinal de dois-pontos (:) e depois colocamos o tipo dessa variável (inteiro, real, logico, caractere). Agora que vocês relembram as definições elementares de um algoritmo, vamos relembrar os comandos básicos. 2 - Comandos básicos 3 - Estruturas Condicionais e de Repetição Um algoritmo possui comandos básicos. Vamos relembrar? 2.1 - Atribuição Para colocarmos dados em uma variável, usamos o comando de atribuição. O identificador fica no lado esquerdo da expressão. O valor ou a expressão que computará o valor a ser atribuído fica no lado direito da expressão. Eles são separados pelo sinal de atribuição (<-). X <- 9 2.2 - Expressões Para calcular valores, usamos expressões. Essas expressões usam valores, variáveis e operadores. Seu resultado pode ser salvo em uma variável. SOMA <- x + 9 POTENCIA <- I ** 2 2.3 - Comentários Vocês podem deixar mais claro seu código explicando o que esse programa faz. Para isso, existem os comentários. Durante a execução, o computador vai descartar tudo o que você escrever em um comentário. Para escrevermos comentários, usamos as chaves para delimitar o início e o fim de um comentário ou usamos as duas barras para declarar que o restante da linha é um comentário. X <- 9 // atribui o valor 9 a variável X 2.4 - Comando de leitura Outra forma de definir valores em uma variável é usar o comando leia. Esse comando permite que o programa espere o usuário informar os valores para uma variável. Sua sintaxe é definida da seguinte forma: leia(<variaveis>) Onde <variaveis> é uma lista de variáveis que devem ter seus valores indicados pelo usuário. As variáveis são separadas por vírgulas. Exemplos: leia(X) leia(X, X1) 2.5 Comando de escrita Para que o algoritmo possa apresentar dados ao usuário, usamos o comando escreva. Sua sintaxe é semelhante ao comando leia, mas além de aceitar variáveis, o comando escreva aceita caracteres. Exemplos: escreva(X) escreva(“Valor de X=”, X) Há o comando escreval, onde depois de escrever todos os dados especificados, ele pula uma linha na exibição. Agora, vamos rever as estruturas condicionais e de repetição, que são também importantes em algoritmos. 3.1 - Estruturas Condicionais As estruturas condicionais permitem ao programador definir comandos que serão executados em determinadas condições. As condições são expressas por meio de valores, variáveis, operadores relacionaise operadores lógicos. As estruturas condicionais são expressas da seguinte forma: se <condição> entao //comandos caso resultado da condição seja verdadeira senao //opcional //comandos caso o resultado da condição seja falsa fimse Vamos a um exemplo: se media >= 7.0 entao escreva(“Aprovado!”) senao escreva(“Reprovado!”) fimse 3.2 - Estruturas de Repetição As estruturas de repetição permitem que o programador indique comandos que serão repetidos várias vezes. Em algoritmos, temos três tipos de estruturas de repetição, a saber: 8Algoritmos II ENQUANTO...FAÇA: Executa uma sequência de comandos repetidas vezes, enquanto que uma condição especificada seja verdadeira. Quando o algoritmo entra nesse loop, a condição especificada é testada. Caso a condição seja falsa, nenhuma interação é executada. Caso a condição estabelecida seja verdadeira, todos os comandos que estão nesse bloco são executados. Ao final da execução, o fluxo retorna ao teste da condição. Se o teste passar, os comandos são executados mais uma vez, caso contrário, a execução do laço é encerrada. Vejamos um exemplo: x <- 0 enquanto x < 10 faca escreva(x) x <- x + 1 fimenquanto REPITA...ATÉ: Semelhante ao laço enquanto, possui duas diferenças sutis. Ela executa todos os comandos dessa estrutura no mínimo uma vez, testando apenas no final da execução das instruções. Além disso, ela repete as instruções até que a condição seja verdadeira. Observe este exemplo: repita escreval(“Entre com um valor menor que 100: ”) leia(x) ate x < 100 PARA...ATÉ...FAÇA: Ao contrário dos dois loops apresentados, essa estrutura repete a sua execução sempre um número determinado de vezes (o que não ocorre usualmente em um laço enquanto). Nesse laço é usada uma variável contadora, onde tem um valor inicial, um valor a ser somado a cada iteração (o incremento, definido na cláusula passo) e o valor que o contador tem que chegar para que o laço seja interrompido. O incremento é realizado automaticamente pelo laço. para i de 1 ate 10 passo 1 faca escreva(i) fimpara Para finalizarmos, relembraremos agora como funcionam vetores e matrizes. 4 - Vetores e Matrizes Uma variável pode armazenar, de uma só vez, um conjunto de dados do mesmo tipo. A estas variáveis damos o nome de vetores e matrizes. Para declararmos um vetor: <identificador> : vetor [<inicial>..<final>] de <tipo> Onde: ● <identificador> é o nome do vetor; ● <inicial> e <final> são os números das posições inicial e final desse vetor; ● <tipo> é o tipo de dados desse vetor. Exemplo: idades : vetor[1..20] de inteiro Para declararmos uma matriz, usamos a seguinte notação: <identificador> : vetor [<inicial>..<final>, <inicial2>..<inicial2>] de <tipo> Onde: ● <identificador> é o nome da matriz; ● <inicial> e <final> são os números das posições inicial e final das linhas da matriz; ● <inicial2> e <final2> são os números das posições inicial e final das colunas da matriz; ● <tipo> é o tipo de dados dessa matriz. Exemplo: mat: vetor[1..20, 1..10] de inteiro Para acessarmos um elemento de um vetor ou de uma matriz, indicamos a posição do elemento na expressão. Vejamos alguns exemplos: idade[5] <- 30 soma <- mat[6][4] Assim, encerramos a nossa revisão. Na próxima aula, para iniciarmos os nossos estudos, estudaremos os registros. Retomando a aula Chegamos ao final da nossa revisão. Vamos recordar os principais pontos? 1- Introdução e estruturas básicas Relembramos, nessa seção, que o algoritmo é uma sequência de passos que deve ser executada para chegarmos a uma solução. Vocês relembraram aqui as definições elementares, como os operadores, as variáveis e a estrutura básica de um algoritmo em Portugol. 2 - Comandos básicos Nessa seção, você recordou dos comandos leia e escreva, lembramos também como criar comentários para deixar seu código mais legível, e como são escritas as expressões e as atribuições em um algoritmo. 3 - Estruturas Condicionais e de Repetição Relembramos aqui estruturas poderosas para os algoritmos, que permitem aos programas “tomar decisões” diante de um contexto ou repetir operações com poucas linhas de código. 4 - Vetores e Matrizes Você revisou como funciona a declaração e o uso de vetores e matrizes, que permitem que você salve um conjunto de dados em uma variável. GUIMARÃES, Ângelo de Moura; LAGES, Newton Alberto de Castilho. Algoritmos e Estrutura de Dados. Rio de Janeiro: LTC, 1994; Vale a pena Vale a pena ler 9 MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de Oliveira. Algoritmos - lógica para desenvolvimento de programação. 2. ed. São Paulo: Érica, 2014. VENANCIO, Claudio Ferreira. Desenvolvimento de Algoritmos: Uma Nova Abordagem. São Paulo: Érica, 2000. FARRER, Harry; et. al. Algoritmos Estruturados. 3. ed. São Paulo: LTC, 1999. Minhas anotações
Compartilhar