Algoritmos e Lógica de Programação Juliana Schiavetto Dauricio © 2015 por Editora e Distribuidora Educacional S.A Todos os direitos reservados. Nenhuma parte desta publicação poderá ser reproduzida ou transmitida de qualquer modo ou por qualquer outro meio, eletrônico ou mecânico, incluindo fotocópia, gravação ou qualquer outro tipo de sistema de armazenamento e transmissão de informação, sem prévia autorização, por escrito, da Editora e Distribuidora Educacional S.A. Presidente: Rodrigo Galindo Vice-Presidente Acadêmico de Graduação: Rui Fava Gerente Sênior de Editoração e Disponibilização de Material Didático: Emanuel Santana Gerente de Revisão: Cristiane Lisandra Danna Coordenação de Produção: André Augusto de Andrade Ramos Coordenação de Disponibilização: Daniel Roggeri Rosa Editoração e Diagramação: eGTB Editora Dados Internacionais de Catalogação na Publicação (CIP) Dauricio, Juliana Schiavetto D243a Algoritmos e lógica de programação / Juliana Schiavetto Dauricio. – Londrina : Editora e Distribuidora Educacional S.A., 2015. 260 p. ISBN 978-85-8482-227-0 1. Programação (Computadores). 2. Algoritmos. 3. Estruturas de dados (Computação). I. Título. CDD 005.1 2015 Editora e Distribuidora Educacional S.A Avenida Paris, 675 – Parque Residencial João Piza CEP: 86041-100 — Londrina — PR e-mail: [email protected] Homepage: http://www.kroton.com.br/ Sumário Unidade 1 | Algoritmos e Programação Contextos e Práticas 7 Seção 1.1 - Histórico e definição de algoritmos: perspectivas de linguagem 11 Seção 1.2 - Tipos de dados e expressões: literais, lógicas e aritméticas 25 Seção 1.3 - Representação de algoritmos e o ambiente de programação 39 Seção 1.4 - Declaração de variáveis e constantes 51 Unidade 2 | Estruturas de Decisão ou Seleção 67 Seção 2.1 - Instruções primitivas: entrada de dados, atribuição e saída 71 Seção 2.2 - Estrutura condicional simples 87 Seção 2.3 - Estrutura condicional composta 103 Seção 2.4 - Estrutura condicional sequencial e encadeada 115 Unidade 3 | Estruturas de seleção (case) e repetição 131 Seção 3.1 - Estrutura de múltipla escolha (CASE) 133 Seção 3.2 - Repetição condicional com teste no início 147 Seção 3.3 - Repetição condicional com teste no final 161 Seção 3.4 - Repetição controlada por variável 175 Unidade 4 | Vetores e Matrizes 193 Seção 4.1 - Aplicações utilizando vetores e matrizes 195 Seção 4.2 - Operações sobre vetores e matrizes 211 Seção 4.3 - Os vetores como estruturas de dados 225 Seção 4.4 - As matrizes como estruturas de dados 241 Palavras do autor Olá, aluno, seja bem-vindo. Nesta unidade de ensino você conhecerá o que é algoritmo e a sua relação com as linguagens de programação, assim como o modo como esses auxiliam no desenvolvimento do raciocínio lógico. A partir de agora, você será apresentado aos conceitos e conteúdos componentes deste tema. Iniciamos com uma breve definição do que é algoritmo, seguido de um resgate de como ocorreu a evolução dos computadores e a importância dos algoritmos para os sistemas computacionais. Você também conhecerá como são os ambientes de programação, as formas de representação e como é que se desenvolve um algoritmo. Saber distinguir as expressões literais, lógicas e aritméticas também é importante no âmbito computacional e faz parte dos nossos estudos nesta primeira etapa. Além disso, conheceremos os tipos de dados, variáveis e constantes, no decorrer da leitura do seu material. O foco da Unidade 2 são as operações e comandos que permitem a entrada e saída de dados, o ponto de partida para se aprender a manipular os dados e informações nos sistemas computacionais. Associados a esses conceitos, estão a atribuição de valores e a forma de realizar os procedimentos para a declaração das variáveis e constantes. Finalmente, iniciam-se os estudos em estruturas de decisão e seleção como “if/else” (se/então/senão e CASE), respectivamente. Com elas, você pode compreender a lógica envolvida nas estruturas de programação condicionais simples, compostas, encadeadas e também como é possível, em programação, oferecer opções ao usuário através da estrutura de seleção CASE ou CASO. A Unidade 3 é responsável por promover a imersão em situações reais para aplicar os conhecimentos mais específicos, tais como: Switch-CASE, que permite ao usuário escolher dentre as opções predeterminadas e, ainda, estruturas de repetição como “for” (para), “do” (fazer) e “do/while” (faça enquanto). Na Unidade 4, a atenção está sobre o entendimento dos vetores e matrizes, sua estrutura, eficiência e aplicações. Após todos os conceitos, o material de estudos ainda contribui para que você possa treinar os conhecimentos adquiridos, realizando exercícios orientados, que visam aproximar a situação real e os problemas enfrentados no dia a dia do desenvolvimento de software. Desejamos a você, desde já, bons estudos e dedicação para a conclusão desta etapa. Unidade 1 ALGORITMOS E PROGRAMAÇÃO: CONTEXTOS E PRÁTICAS Convite ao estudo Para iniciar os estudos em algoritmos e programação, é interessante refletir sobre o que são e quais algoritmos influenciam diretamente nas transações comerciais que se estabelecem na atualidade e que detêm uma relevância no desenvolvimento de soluções práticas e inovadoras. Esses trazem possibilidades de empreendimentos entre os mais diversos segmentos do mercado. A partir de tais informações e compreendendo a relevância do tema, conheça a competência de fundamento de área que se pretende desenvolver com este estudo e os objetivos específicos desta unidade. Competência de fundamento de área • Conhecer os princípios e conceitos que envolvem o aprendizado em construção de algoritmos e programação e a sua importância para o universo do desenvolvimento de sistemas. Objetivos específicos • Conhecer o que são, como se aplicam e a quem se destina a elaboração dos algoritmos; • Conhecer como são desenvolvidas as estruturas computacionais com expressões literais, lógicas e aritméticas, além dos tipos de dados; • Conhecer o ambiente de programação e como se dá o raciocínio lógico computacional, bem como os tipos e formas de representação de algoritmos através da elaboração do fluxograma, do pseudocódigo em VisuAlg e a sua aplicação em uma linguagem de programação conhecida como C. U1 • Conhecer e saber identificar o que são variáveis e constantes e como se faz a declaração de variáveis. Importante trazer as definições pertinentes ao tema: algoritmo pode ser definido como um conjunto de processos ou ações, que seguem uma sequência lógica, para executar uma tarefa. Por exemplo, baixar um aplicativo em seu celular requer que você execute um passo a passo para realizar aquela instalação e o configure para poder utilizá-lo. A esse passo a passo dá-se o nome de algoritmo. Para desenvolver algumas das atividades aqui apresentadas, você poderá considerar, entre outros, o cenário que envolve os comerciantes do Litoral Sul do país. Suponha que eles estejam se organizando em cooperativa para angariar recursos e melhorar as transações comerciais desse mercado e contrataram uma consultoria para desenvolver um aplicativo; você faz parte dessa consultoria. O grande desafio dos comerciantes e da empresa contratada para o desenvolvimento do aplicativo é encontrar uma solução que atenda à necessidade de divulgação, organização das informações, facilidade de uso e acesso para os seus clientes os encontrarem, agendarem ou mesmo tomarem conhecimento daquele determinado estabelecimento de hotelaria ou gastronomia. Um ponto de atenção é que será preciso realizar todos os processos, desde a determinação das ações do sistema e tarefas até a escolha das ferramentas de análise e desenvolvimento do aplicativo. Uma das propostas da empresa é disponibilizar um protótipo do aplicativo para celular que informe aos usuários quais são os serviços de hotelaria e gastronomia disponíveis naquela região. A partir dessa situação, os comerciantes esperam obter soluções que apresentem uma forma de contabilizar o índice de satisfação do usuário quanto à facilidade de navegação e uso do aplicativo. Para tal, após realizar a consulta, o usuário é direcionado a um painel com os ícones que representam o seu índice de satisfação: insatisfeito, satisfeito ou plenamente satisfeito. O prazo para desenvolvimento desse protótipo é de seis meses. O primeiro passo é compreender o que realmente será possível fazer e estipular as ações do sistema. Para tal, você precisa entender que é necessário identificar quais são as suas variáveis, bem como as estruturas que precisarão ser desenvolvidas para trabalhar com os dados, armazená-los, atribuir, excluir e alterar valores, verificar se há variáveis ou se serão declaradas como constantes, entre outros conceitos que precisam ser aplicados. Com o estudo de algoritmos e programação, a identificação desses passos será facilitada e você ainda poderá compreender as formas de representação, além de sua definição. 8 Algoritmos e programação: contextos e práticas U1 Atente-se também aos tipos de dados, às expressões literais, aritméticas e lógicas que serão necessárias para realizar um cálculo específico, como a média dos acessos, por exemplo, ou ainda, se deverá executar algum teste para informar os resultados aos comerciantes. Estabeleça um processo de verificação e controle de como possibilitar que o sistema contabilize os acessos, realize o cálculo da média através da indicação de sua expressão aritmética, indique uma forma de registrar essas informações e enviá-las aos interessados. Muito importante, nesta primeira entrega, é que seja especificado o fluxograma dos processos que algoritmo deverá contemplar e os passos a seguir para o seu desenvolvimento. Essa é uma tarefa que requer a leitura dos materiais didáticos e dos artigos e vídeos que complementam os seus estudos. Fica a sugestão do desenvolvimento das estruturas do algoritmo em pseudocódigo, o que permite que você identifique os processos e a necessidade de alterações, antes do desenvolvimento efetivo do aplicativo. Encontre a lógica necessária para otimizar o processamento e uso dos recursos. Então, bons estudos e práticas a você. Algoritmos e programação: contextos e práticas 9 U1 10 Algoritmos e programação: contextos e práticas