·
Engenharia de Produção ·
Introdução à Lógica e Programação
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
29
Representação de Algoritmos em Fluxograma
Introdução à Lógica e Programação
FUCAP
43
Conceitos Básicos e Tipos de Dados em Algoritmos
Introdução à Lógica e Programação
FUCAP
34
Programação do Arduino: Estrutura e Comandos
Introdução à Lógica e Programação
FUCAP
23
Expressões e Atribuições em Programação: Operadores Aritméticos, Lógicos e Relacionais
Introdução à Lógica e Programação
FUCAP
26
Introdução a Algoritmos e Lógica de Programação
Introdução à Lógica e Programação
FUCAP
35
Estrutura de Repetição Para Pseudocódigo
Introdução à Lógica e Programação
FUCAP
Texto de pré-visualização
Representação de problemas através de algoritmos em fluxograma e descritiva Apresentação O conceito de algoritmo não surgiu na computação Surgiu há milhares de anos juntamente com a matemática Os algoritmos podem ser explicados como uma sequência de passos finitos e bem definidos cujo objetivo é resolver algum problema Executamos algoritmos o tempo todo no nosso cotidiano sem perceber Por exemplo quando nos levantamos da cama todo o processo de higiene pessoal pode ser considerado um algoritmo Fazer um bolo trocar um pneu de carro ir para a faculdade ou para o trabalho todos são exemplos de algoritmos Existem diversas formas de se representar algoritmos As mais utilizadas são linguagem natural fluxograma e pseudocódigo Na primeira o algoritmo é escrito em uma linguagem informal que utilizamos para nos comunicarmos Já a segunda representa o algoritmo usando um conjunto de símbolos gráficos Por fim na terceira utilizamos palavras e regras específicas para a escrita do algoritmo Nesta Unidade de Aprendizagem você vai estudar as formas de representação dos algoritmos e a construção de algoritmos básicos utilizando descrição narrativa fluxograma e pseudocódigo A representação dos algoritmos possibilitará que você demonstre a solução construída para os problemas Bons estudos Ao final desta Unidade de Aprendizagem você deve apresentar os seguintes aprendizados Identificar as diferentes formas de representação de algoritmos Construir algoritmos básicos utilizando linguagem descritiva fluxogramas e pseudocódigo Resolver problemas por meio da construção de algoritmos Desafio Vamos construir algoritmos Você é estudante e faz estágio em computação em uma grande empresa brasileira de desenvolvimento de software Vendo seu potencial tal empresa te presenteou com um curso de aperfeiçoamento no Google nos Estados Unidos com duração de 12 meses Para ajudar na sua estadia a empresa vai fornecer uma bolsa mensal de R 150000 Porém sabemos que a moeda norteamericana é o dólar e todos os custos devem ser calculados na moeda local Ficar convertendo o dinheiro toda hora é uma tarefa árdua e monótona Você com toda sua experiência decidiu fazer um algoritmo que converte automaticamente o valor em reais para dólar e assim facilitar a sua estadia Dado o valor do dólar taxa cambial informado pelo usuário apresente o algoritmo que converta o valor da sua bolsa para dólar Represente a solução em descrição narrativa fluxograma e pseudocódigo Infográfico Fluxograma é um diagrama que utiliza símbolos gráficos para representar o funcionamento do algoritmo Os símbolos utilizados são Conteúdo do livro A atividade de programação é desafiante e conectada ao processo de organização das ideias construção da solução e sua representação Assim o desenvolvimento das habilidades de programação é contínuo e realizado por meio da dedicação em construir algoritmos Para auxiliar nos estudos acompanhe um trecho da obra Algoritmos e programação com exemplos em Pascal e C base teórica desta Unidade de Aprendizagem Boa leitura s é r i e l i v r o s d i d á t i c o s i n f o r m á t i c a u f r g s 23 s é r i e l i v r o s d i d á t i c o s i n f o r m á t i c a u f r g s volume 3 Linguagens Formais e Autômatos 6ed de Paulo Blauth Menezes volume 4 Projeto de Banco de Dados 6ed de Carlos Alberto Heuser volume 5 Teoria da Computação Máquinas Universais e Computabilidade 3ed de Tiarajú Asmuz Diverio e Paulo Blauth Menezes volume 6 Arquitetura de Computadores Pessoais 2ed de Raul Fernando Weber volume 7 Concepção de Circuitos Integrados 2ed de Ricardo Augusto da Luz Reis e cols volume 8 Fundamentos de Arquitetura de Computadores 4ed de Raul Fernando Weber volume 10 Tabelas Organização e Pesquisa de Clesio Saraiva dos Santos e Paulo Alberto de Azeredo volume 11 Sistemas Operacionais 4ed de Rômulo Silva de Oliveira Alexandre da Silva Carissimi e Simão Sirineo Toscani volume 12 Teoria das Categorias para Ciência da Computação 2ed de Paulo Blauth Menezes e Edward Hermann Haeusler volume 13 Complexidade de Algoritmos 3ed de Laira Vieira Toscani e Paulo A S Veloso volume 16 Matemática Discreta para Computação e Informática 4ed de Paulo Blauth Menezes volume 18 Estruturas de Dados de Nina Edelweiss e Renata Galante volume 19 Aprendendo Matemática Discreta com Exercícios de Paulo Blauth Menezes Laira Vieira Toscani e Javier García López volume 20 Redes de Computadores de Alexandre da Silva Carissimi Juergen Rochol e Lisandro Zambenedetti Granville volume 21 Introdução à Abstração de Dados de Daltro José Nunes volume 22 Comunicação de Dados de Juergen Rochol COMPUTAÇÃO wwwgrupoacombr A Bookman é um dos selos editoriais do Grupo A Educação empresa que oferece soluções em conteúdo tecnologia e serviços para a educação acadêmica e profissional algoritmos e programação com exemplos em Pascal e C nina edelweiss maria aparecida castro livi Material didático para professores Visite wwwgrupoacombr nina edelweiss maria aparecida castro livi l i v r o s d i s p o n í v e i s algoritmos e programação com exemplos em Pascal e C 23 edelweiss livi 23 algoritmos e programação com exemplos em Pascal e C Aprender programação não é uma tarefa simples Requer um entendimento perfeito do problema a análise de como solucionálo e a escolha da forma de implementação da solução algoritmos e programação apresenta o processo de construção de algoritmos e de programas enfatizando as etapas de abstração organização análise e crítica na busca de soluções eficientes Os elementos de um programa são introduzidos pouco a pouco ao longo do texto inicialmente apresentados em pseudolinguagem e em seguida exemplificados nas linguagens de programação Pascal e C Este é um livrotexto para disciplinas iniciais de programação de duração de um semestre Pode ser utilizado sobretudo em cursos de bacharelado e licenciatura em ciência da computação análise de sistemas e engenharia da computação E22a Edelweiss Nina Algoritmos e programação com exemplos em Pascal e C recurso eletrônico Nina Edelweiss Maria Aparecida Castro Livi Dados eletrônicos Porto Alegre Bookman 2014 Editado também como livro impresso em 2014 ISBN 9788582601907 1 Informática 2 Algoritmos Programação I Livi Maria Aparecida Castro II Título CDU 004421 as autoras Nina Edelweiss é engenheira eletricista e doutora em Ciência da Computação pela Uni versidade Federal do Rio Grande do Sul Durante muitos anos lecionou em cursos de Enge nharia e de Ciência da Computação na UFRGS na UFSC e na PUCRS Foi ainda orientadora do Programa de PósGraduação em Ciência da Computação da UFRGS É coautora de três livros tendo publicado diversos artigos em periódicos e em anais de congressos nacionais e internacionais Participou de diversos projetos de pesquisa financiados por agências de fomento como CNPq e FAPERGS desenvolvendo pesquisas nas áreas de bancos de dados e desenvolvimento de software Maria Aparecida Castro Livi é licenciada e bacharel em Letras e mestre em Ciência da Computação pela Universidade Federal do Rio Grande do Sul Desenvolveu sua carreira pro fissional na UFRGS onde foi programadora e analista de sistema antes de ingressar na carreira docente Ministrou por vários anos a disciplina de Algoritmos e Programação para alunos dos cursos de Engenharia da Computação e Ciência da Computação Sua área de interesse prioritário é o ensino de Linguagens de Programação tanto de forma presencial quanto a distância Catalogação na publicação Ana Paula M Magnus CRB 102052 EdelweissIniciaiseletronicaindd ii EdelweissIniciaiseletronicaindd ii 140514 1651 140514 1651 Capítulo 1 Fundamentos 11 112 comandos básicos executados por um computador Analisando o exemplo anterior identificamos as primeiras ações que podem ser executadas por um computador obter um dado de uma unidade de entrada de dados também chamada de leitura de um dado informar um resultado através de uma unidade de saída também chamada de escrita de uma informação ou saída de um dado resolver expressões aritméticas e lógicas colocar o resultado de uma expressão em uma variável Essas ações são denominadas instruções ou comandos Outros comandos serão vistos ao longo deste livro 113 da necessidade do desenvolvimento de algoritmos para solucionar problemas computacionais Nas atividades cotidianas já vistas é sem dúvida necessária alguma organização por parte de quem vai realizar a tarefa No uso do telefone retirar o fone do gancho e digitar o número e só depois inserir o cartão não será uma boa estratégia assim como no caso da livraria levar o livro sem passar pelo caixa também resultará em problemas Nessas atividades no entanto grande parte das pessoas não necessita colocar por escrito os passos a realizar para cumprir a tarefa Porém quando se trata de problemas a solucionar por computador a sequência de Unidade de entrada Unidade de saída Unidade de memória auxiliar Memória principal Unidade Central de Processamento UCP Sistema central Unidade aritmética e lógica Unidade de controle figura 13 Esquema simplificado de um computador Edelweiss01indd 11 Edelweiss01indd 11 120314 0859 120314 0859 12 Algoritmos e Programação com Exemplos em Pascal e C ações que o computador deve realizar é por vezes bastante extensa e nem sempre conhecida e óbvia Para a programação de computadores a análise cuidadosa dos elementos envolvidos em um problema e a organização criteriosa da sequência de passos necessários à sua solução algoritmo devem obrigatoriamente preceder a escrita do programa que busque solucionar o problema Para problemas mais complexos o recomendável é desenvolver um algoritmo detalhado antes de passar à etapa de codificação mas para problemas mais simples o algo ritmo pode especificar apenas os passos principais 114 formas de expressar um algoritmo Em geral no desenvolvimento de algoritmos computacionais não são utilizadas nem as lin guagens de programação nem a linguagem natural mas formas mais simplificadas de lingua gens As formas mais usuais de representação de algoritmos são a linguagem textual alguma pseudolinguagem e o fluxograma Para exemplificar cada uma delas vamos usar o seguinte exemplo obter a soma de dois valores numéricos quaisquer linguagem textual Foi a forma utilizada para introduzir o conceito de algoritmo nos exem plos anteriores Analisando o problema aqui colocado para obter a soma de dois valores é preciso realizar três operações na ordem a seguir 1 obter os dois valores 2 realizar a soma 3 informar o resultado pseudolinguagem Para padronizar a forma de expressar algoritmos são definidas pseu dolinguagens Uma pseudolinguagem geralmente é bastante semelhante a uma linguagem de programação sem entretanto entrar em detalhes como por exemplo formatação de in formações de entrada e de saída As operações básicas que podem ser executadas pelo com putador são representadas através de palavras padronizadas expressas na linguagem falada no nosso caso em Português Algumas construções também são padronizadas como as que especificam onde armazenar valores obtidos e calculados bem como a forma de calcular expressões aritméticas e lógicas Antecipando o que será visto nos capítulos a seguir o algoritmo do exemplo recémdiscutido é expresso na pseudolinguagem utilizada neste livro como Algoritmo 11 Soma2 INFORMAR A SOMA DE 2 VALORES Entradas valor1 valor2 real Saídas soma real início ler valor1 valor2 ENTRADA DOS 2 VALORES soma valor1 valor2 CALCULA A SOMA escrever soma INFORMA A SOMA fim Edelweiss01indd 12 Edelweiss01indd 12 120314 0859 120314 0859 Capítulo 1 Fundamentos 13 fluxograma Tratase de uma representação gráfica que possibilita uma interpretação visual do algoritmo Cada ação é representada por um bloco sendo os blocos interligados por linhas dirigidas setas que representam o fluxo de execução Cada forma de bloco representa uma ação A Figura 14 mostra alguns blocos utilizados em fluxogramas neste livro juntamente com as ações que eles representam São adotadas as formas propostas na padronização feita pela ANSI American National Standards Institute em 1963 Chapin 1970 com algumas adaptações Outras formas de blocos serão introduzidas ao longo do texto A representação do algoritmo do exemplo acima está na Figura 15 A representação através de fluxogramas não é adequada para algoritmos muito extensos com grande número de ações a executar Utilizaremos a representação de fluxogramas so mente como apoio para a compreensão das diferentes construções que podem ser utilizadas nos algoritmos 115 eficácia e eficiência de algoritmos Dois aspectos diferentes devem ser analisados quando se constrói um algoritmo para ser exe cutado em um computador sua eficácia exatidão e sua eficiência eficácia corretude de um algoritmo Um algoritmo deve realizar corretamente a tarefa para a qual foi construído Além de fazer o que se espera o algoritmo deve fornecer o resul tado correto para quaisquer que sejam os dados fornecidos como entrada A eficácia de um algoritmo deve ser exaustivamente testada antes que ele seja implementado em um compu tador o que levou ao desenvolvimento de diversas técnicas de testes incluindo testes formais A forma mais simples de testar um algoritmo é através de um teste de mesa no qual se si ENTRADA lista de variáveis variável expressão Ponto em que inicia a execução do algoritmo Ponto em que termina a execução do algoritmo Entrada de dados leitura de informações para preencher a lista de variáveis Saída de dados informa conteúdos das variáveis da lista Atribuição variável recebe o resultado da expressão início fim SAÍDA lista de variáveis figura 14 Blocos de fluxograma Edelweiss01indd 13 Edelweiss01indd 13 120314 0859 120314 0859 14 Algoritmos e Programação com Exemplos em Pascal e C mula com lápis e papel sua execução com conjuntos diferentes de dados de entrada No final de cada capítulo deste livro são indicados alguns cuidados a adotar para verificar a exatidão dos algoritmos durante os testes eficiência de um algoritmo A solução de um problema através de um algoritmo não é necessariamente única Na maioria dos casos algoritmos diferentes podem ser construídos para realizar uma mesma tarefa Neste livro será enfatizada a utilização de técnicas que levam à construção de algoritmos mais eficientes Entretanto em alguns casos não se pode dizer a priori qual a melhor solução Podese sim calcular qual a forma mais eficiente com base em dois critérios tempo de execução e espaço de memória ocupado Aspectos de eficiência de algoritmos são vistos em outro livro desta série Toscani Veloso 2012 Um exemplo da diferença entre eficácia e eficiência pode ser observado na receita de ovo mexido mostrada a seguir 1 ligar o fogão em fogo baixo 2 separar 1 ovo 1 colher de sobremesa de manteiga e sal a gosto 3 quebrar o ovo em uma tigela 4 colocar sal na tigela 5 misturar levemente o ovo e o sal com um garfo 6 aquecer a manteiga na frigideira até que comece a derreter 7 jogar o ovo na frigideira mexendo com uma colher até ficar firme 8 retirar da frigideira e servir ENTRADA valor1 valor2 soma valor1 valor2 início fim SAÍDA soma figura 15 Fluxograma da soma de dois números Edelweiss01indd 14 Edelweiss01indd 14 120314 0859 120314 0859 Capítulo 1 Fundamentos 15 Se analisarmos o algoritmo acima podemos observar que embora o ovo mexido seja obtido garantindo a eficácia da receita existe uma clara ineficiência em relação ao gasto de gás uma vez que ligar o fogão não é prérequisito para a quebra do ovo e mistura do ovo e do sal Já em outras ações como as especificadas nos passos 3 e 4 a sequência não é relevante Se modificarmos apenas a sequência das ações conforme indicado abaixo então teremos um algoritmo eficaz e mais eficiente 1 separar 1 ovo 1 colher de sobremesa de manteiga e sal a gosto 2 quebrar o ovo em uma tigela 3 colocar sal nesta tigela 4 misturar levemente o ovo e o sal com um garfo 5 ligar o fogão em fogo baixo 6 aquecer a manteiga na frigideira até que comece a derreter 7 jogar o ovo na frigideira misturando com uma colher até ficar firme 8 retirar da frigideira e servir Edelweiss01indd 15 Edelweiss01indd 15 120314 0859 120314 0859 Encerra aqui o trecho do livro disponibilizado para esta Unidade de Aprendizagem Na Biblioteca Virtual da Instituição você encontra a obra na íntegra Dica do professor A representação dos algoritmos é uma importante atividade para desenvolver a habilidade de programação Assista ao vídeo da Dica do Professor para conhecer mais sobre alternativas de representação de algoritmos Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Exercícios 1 Algoritmos são uma importante ferramenta para especificar a solução de problemas A escolha da forma de representação do algoritmo determinará seu detalhamento e a precisão da especificação Escolha a alternativa que apresenta formas de representação de algoritmos no contexto computacional em ordem crescente de capacidade de detalhamentoprecisão do algoritmo construído A Linguagem natural pseudolinguagem fluxograma B Descrição narrativa fluxograma pseudocódigo C Fluxograma descrição narrativa pseudocódigo D Pseudocódigo fluxograma descrição narrativa E Nenhuma das alternativas 2 Algoritmos são uma sequência de passos finitos e bem definidos utilizados para resolver algum problema A utilização de um conjunto de palavraschave para escrever o algoritmo é característica doa A fluxograma B descrição narrativa C pseudocódigo D linguagem de programação E diagrama de sequência 3 Fluxogramas são diagramas gráficos desenhos que podem ser utilizados para a representação de algoritmos Analise as afirmativas a seguir e selecione aquela que NÃO se refere aos fluxogramas A Permitem o detalhamento dos passos de um algoritmo B São ambíguos e imprecisos C Têm estruturas diferentes para decisão e processos D São um conjunto finito de passos E Especificam a ordem clara de execução dos passos 4 Qual é o nome usado para a forma de representação de algoritmos expressos por meio de um diagrama gráfico com o uso de blocos elipses retângulos paralelogramos e losangos e setas de direção A Fluxograma B Descrição narrativa C Pseudocódigo D Diagrama de classes E Português estruturado 5 A representação de algoritmos tem por objetivo obter uma especificação clara que permita a comunicação e a análise do processo especificado Considerando isso assinale a alternativa FALSA A O poder de expressão da descrição narrativa dos fluxogramas e do pseudocódigo é exatamente o mesmo B Os losangos nos fluxogramas representam o processo de tomada de decisão um teste C No pseudocódigo os dados que serão utilizados pelo algoritmo podem ser lidos pelo comando leiavariável D A lógica básica de um algoritmo é entrada processamento saída E O pseudocódigo pode ser considerado uma linguagem de programação simplificada Na prática Diariamente realizamos diversas atividades e seguimos procedimentos estruturados ou não para realizálas Quando somos convidados para uma festa se aceitamos logo pedimos o endereço e as orientações passos etapas para chegar ao local Lembre das suas aulas de matemática você perceberá que o processo de resolução de problemas sempre pode ser organizado em um conjunto de etapas A organização e a representação de processos não são atividades exclusivas da área de informática muitos profissionais especificam suas atividades através de um conjunto de passos Portanto a representação de algoritmos é uma forma de organizar a solução de problemas ou processos deixandoos compreensíveis para quem for consultálos eou executálos O fluxograma a seguir apresenta o processo para resolução de equações de 2o grau utilizando a fórmula de Bhaskara Saiba Para ampliar o seu conhecimento a respeito desse assunto veja abaixo as sugestões do professor Lógica de programação Apresentação e definições Assista a este vídeo e saiba mais sobre o assunto Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Lógica de programação Algoritmos e fluxogramas Assista a este vídeo e saiba mais sobre o assunto Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Lógica de programação Português estruturado e visualG Assista a este vídeo e saiba mais sobre o assunto Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
29
Representação de Algoritmos em Fluxograma
Introdução à Lógica e Programação
FUCAP
43
Conceitos Básicos e Tipos de Dados em Algoritmos
Introdução à Lógica e Programação
FUCAP
34
Programação do Arduino: Estrutura e Comandos
Introdução à Lógica e Programação
FUCAP
23
Expressões e Atribuições em Programação: Operadores Aritméticos, Lógicos e Relacionais
Introdução à Lógica e Programação
FUCAP
26
Introdução a Algoritmos e Lógica de Programação
Introdução à Lógica e Programação
FUCAP
35
Estrutura de Repetição Para Pseudocódigo
Introdução à Lógica e Programação
FUCAP
Texto de pré-visualização
Representação de problemas através de algoritmos em fluxograma e descritiva Apresentação O conceito de algoritmo não surgiu na computação Surgiu há milhares de anos juntamente com a matemática Os algoritmos podem ser explicados como uma sequência de passos finitos e bem definidos cujo objetivo é resolver algum problema Executamos algoritmos o tempo todo no nosso cotidiano sem perceber Por exemplo quando nos levantamos da cama todo o processo de higiene pessoal pode ser considerado um algoritmo Fazer um bolo trocar um pneu de carro ir para a faculdade ou para o trabalho todos são exemplos de algoritmos Existem diversas formas de se representar algoritmos As mais utilizadas são linguagem natural fluxograma e pseudocódigo Na primeira o algoritmo é escrito em uma linguagem informal que utilizamos para nos comunicarmos Já a segunda representa o algoritmo usando um conjunto de símbolos gráficos Por fim na terceira utilizamos palavras e regras específicas para a escrita do algoritmo Nesta Unidade de Aprendizagem você vai estudar as formas de representação dos algoritmos e a construção de algoritmos básicos utilizando descrição narrativa fluxograma e pseudocódigo A representação dos algoritmos possibilitará que você demonstre a solução construída para os problemas Bons estudos Ao final desta Unidade de Aprendizagem você deve apresentar os seguintes aprendizados Identificar as diferentes formas de representação de algoritmos Construir algoritmos básicos utilizando linguagem descritiva fluxogramas e pseudocódigo Resolver problemas por meio da construção de algoritmos Desafio Vamos construir algoritmos Você é estudante e faz estágio em computação em uma grande empresa brasileira de desenvolvimento de software Vendo seu potencial tal empresa te presenteou com um curso de aperfeiçoamento no Google nos Estados Unidos com duração de 12 meses Para ajudar na sua estadia a empresa vai fornecer uma bolsa mensal de R 150000 Porém sabemos que a moeda norteamericana é o dólar e todos os custos devem ser calculados na moeda local Ficar convertendo o dinheiro toda hora é uma tarefa árdua e monótona Você com toda sua experiência decidiu fazer um algoritmo que converte automaticamente o valor em reais para dólar e assim facilitar a sua estadia Dado o valor do dólar taxa cambial informado pelo usuário apresente o algoritmo que converta o valor da sua bolsa para dólar Represente a solução em descrição narrativa fluxograma e pseudocódigo Infográfico Fluxograma é um diagrama que utiliza símbolos gráficos para representar o funcionamento do algoritmo Os símbolos utilizados são Conteúdo do livro A atividade de programação é desafiante e conectada ao processo de organização das ideias construção da solução e sua representação Assim o desenvolvimento das habilidades de programação é contínuo e realizado por meio da dedicação em construir algoritmos Para auxiliar nos estudos acompanhe um trecho da obra Algoritmos e programação com exemplos em Pascal e C base teórica desta Unidade de Aprendizagem Boa leitura s é r i e l i v r o s d i d á t i c o s i n f o r m á t i c a u f r g s 23 s é r i e l i v r o s d i d á t i c o s i n f o r m á t i c a u f r g s volume 3 Linguagens Formais e Autômatos 6ed de Paulo Blauth Menezes volume 4 Projeto de Banco de Dados 6ed de Carlos Alberto Heuser volume 5 Teoria da Computação Máquinas Universais e Computabilidade 3ed de Tiarajú Asmuz Diverio e Paulo Blauth Menezes volume 6 Arquitetura de Computadores Pessoais 2ed de Raul Fernando Weber volume 7 Concepção de Circuitos Integrados 2ed de Ricardo Augusto da Luz Reis e cols volume 8 Fundamentos de Arquitetura de Computadores 4ed de Raul Fernando Weber volume 10 Tabelas Organização e Pesquisa de Clesio Saraiva dos Santos e Paulo Alberto de Azeredo volume 11 Sistemas Operacionais 4ed de Rômulo Silva de Oliveira Alexandre da Silva Carissimi e Simão Sirineo Toscani volume 12 Teoria das Categorias para Ciência da Computação 2ed de Paulo Blauth Menezes e Edward Hermann Haeusler volume 13 Complexidade de Algoritmos 3ed de Laira Vieira Toscani e Paulo A S Veloso volume 16 Matemática Discreta para Computação e Informática 4ed de Paulo Blauth Menezes volume 18 Estruturas de Dados de Nina Edelweiss e Renata Galante volume 19 Aprendendo Matemática Discreta com Exercícios de Paulo Blauth Menezes Laira Vieira Toscani e Javier García López volume 20 Redes de Computadores de Alexandre da Silva Carissimi Juergen Rochol e Lisandro Zambenedetti Granville volume 21 Introdução à Abstração de Dados de Daltro José Nunes volume 22 Comunicação de Dados de Juergen Rochol COMPUTAÇÃO wwwgrupoacombr A Bookman é um dos selos editoriais do Grupo A Educação empresa que oferece soluções em conteúdo tecnologia e serviços para a educação acadêmica e profissional algoritmos e programação com exemplos em Pascal e C nina edelweiss maria aparecida castro livi Material didático para professores Visite wwwgrupoacombr nina edelweiss maria aparecida castro livi l i v r o s d i s p o n í v e i s algoritmos e programação com exemplos em Pascal e C 23 edelweiss livi 23 algoritmos e programação com exemplos em Pascal e C Aprender programação não é uma tarefa simples Requer um entendimento perfeito do problema a análise de como solucionálo e a escolha da forma de implementação da solução algoritmos e programação apresenta o processo de construção de algoritmos e de programas enfatizando as etapas de abstração organização análise e crítica na busca de soluções eficientes Os elementos de um programa são introduzidos pouco a pouco ao longo do texto inicialmente apresentados em pseudolinguagem e em seguida exemplificados nas linguagens de programação Pascal e C Este é um livrotexto para disciplinas iniciais de programação de duração de um semestre Pode ser utilizado sobretudo em cursos de bacharelado e licenciatura em ciência da computação análise de sistemas e engenharia da computação E22a Edelweiss Nina Algoritmos e programação com exemplos em Pascal e C recurso eletrônico Nina Edelweiss Maria Aparecida Castro Livi Dados eletrônicos Porto Alegre Bookman 2014 Editado também como livro impresso em 2014 ISBN 9788582601907 1 Informática 2 Algoritmos Programação I Livi Maria Aparecida Castro II Título CDU 004421 as autoras Nina Edelweiss é engenheira eletricista e doutora em Ciência da Computação pela Uni versidade Federal do Rio Grande do Sul Durante muitos anos lecionou em cursos de Enge nharia e de Ciência da Computação na UFRGS na UFSC e na PUCRS Foi ainda orientadora do Programa de PósGraduação em Ciência da Computação da UFRGS É coautora de três livros tendo publicado diversos artigos em periódicos e em anais de congressos nacionais e internacionais Participou de diversos projetos de pesquisa financiados por agências de fomento como CNPq e FAPERGS desenvolvendo pesquisas nas áreas de bancos de dados e desenvolvimento de software Maria Aparecida Castro Livi é licenciada e bacharel em Letras e mestre em Ciência da Computação pela Universidade Federal do Rio Grande do Sul Desenvolveu sua carreira pro fissional na UFRGS onde foi programadora e analista de sistema antes de ingressar na carreira docente Ministrou por vários anos a disciplina de Algoritmos e Programação para alunos dos cursos de Engenharia da Computação e Ciência da Computação Sua área de interesse prioritário é o ensino de Linguagens de Programação tanto de forma presencial quanto a distância Catalogação na publicação Ana Paula M Magnus CRB 102052 EdelweissIniciaiseletronicaindd ii EdelweissIniciaiseletronicaindd ii 140514 1651 140514 1651 Capítulo 1 Fundamentos 11 112 comandos básicos executados por um computador Analisando o exemplo anterior identificamos as primeiras ações que podem ser executadas por um computador obter um dado de uma unidade de entrada de dados também chamada de leitura de um dado informar um resultado através de uma unidade de saída também chamada de escrita de uma informação ou saída de um dado resolver expressões aritméticas e lógicas colocar o resultado de uma expressão em uma variável Essas ações são denominadas instruções ou comandos Outros comandos serão vistos ao longo deste livro 113 da necessidade do desenvolvimento de algoritmos para solucionar problemas computacionais Nas atividades cotidianas já vistas é sem dúvida necessária alguma organização por parte de quem vai realizar a tarefa No uso do telefone retirar o fone do gancho e digitar o número e só depois inserir o cartão não será uma boa estratégia assim como no caso da livraria levar o livro sem passar pelo caixa também resultará em problemas Nessas atividades no entanto grande parte das pessoas não necessita colocar por escrito os passos a realizar para cumprir a tarefa Porém quando se trata de problemas a solucionar por computador a sequência de Unidade de entrada Unidade de saída Unidade de memória auxiliar Memória principal Unidade Central de Processamento UCP Sistema central Unidade aritmética e lógica Unidade de controle figura 13 Esquema simplificado de um computador Edelweiss01indd 11 Edelweiss01indd 11 120314 0859 120314 0859 12 Algoritmos e Programação com Exemplos em Pascal e C ações que o computador deve realizar é por vezes bastante extensa e nem sempre conhecida e óbvia Para a programação de computadores a análise cuidadosa dos elementos envolvidos em um problema e a organização criteriosa da sequência de passos necessários à sua solução algoritmo devem obrigatoriamente preceder a escrita do programa que busque solucionar o problema Para problemas mais complexos o recomendável é desenvolver um algoritmo detalhado antes de passar à etapa de codificação mas para problemas mais simples o algo ritmo pode especificar apenas os passos principais 114 formas de expressar um algoritmo Em geral no desenvolvimento de algoritmos computacionais não são utilizadas nem as lin guagens de programação nem a linguagem natural mas formas mais simplificadas de lingua gens As formas mais usuais de representação de algoritmos são a linguagem textual alguma pseudolinguagem e o fluxograma Para exemplificar cada uma delas vamos usar o seguinte exemplo obter a soma de dois valores numéricos quaisquer linguagem textual Foi a forma utilizada para introduzir o conceito de algoritmo nos exem plos anteriores Analisando o problema aqui colocado para obter a soma de dois valores é preciso realizar três operações na ordem a seguir 1 obter os dois valores 2 realizar a soma 3 informar o resultado pseudolinguagem Para padronizar a forma de expressar algoritmos são definidas pseu dolinguagens Uma pseudolinguagem geralmente é bastante semelhante a uma linguagem de programação sem entretanto entrar em detalhes como por exemplo formatação de in formações de entrada e de saída As operações básicas que podem ser executadas pelo com putador são representadas através de palavras padronizadas expressas na linguagem falada no nosso caso em Português Algumas construções também são padronizadas como as que especificam onde armazenar valores obtidos e calculados bem como a forma de calcular expressões aritméticas e lógicas Antecipando o que será visto nos capítulos a seguir o algoritmo do exemplo recémdiscutido é expresso na pseudolinguagem utilizada neste livro como Algoritmo 11 Soma2 INFORMAR A SOMA DE 2 VALORES Entradas valor1 valor2 real Saídas soma real início ler valor1 valor2 ENTRADA DOS 2 VALORES soma valor1 valor2 CALCULA A SOMA escrever soma INFORMA A SOMA fim Edelweiss01indd 12 Edelweiss01indd 12 120314 0859 120314 0859 Capítulo 1 Fundamentos 13 fluxograma Tratase de uma representação gráfica que possibilita uma interpretação visual do algoritmo Cada ação é representada por um bloco sendo os blocos interligados por linhas dirigidas setas que representam o fluxo de execução Cada forma de bloco representa uma ação A Figura 14 mostra alguns blocos utilizados em fluxogramas neste livro juntamente com as ações que eles representam São adotadas as formas propostas na padronização feita pela ANSI American National Standards Institute em 1963 Chapin 1970 com algumas adaptações Outras formas de blocos serão introduzidas ao longo do texto A representação do algoritmo do exemplo acima está na Figura 15 A representação através de fluxogramas não é adequada para algoritmos muito extensos com grande número de ações a executar Utilizaremos a representação de fluxogramas so mente como apoio para a compreensão das diferentes construções que podem ser utilizadas nos algoritmos 115 eficácia e eficiência de algoritmos Dois aspectos diferentes devem ser analisados quando se constrói um algoritmo para ser exe cutado em um computador sua eficácia exatidão e sua eficiência eficácia corretude de um algoritmo Um algoritmo deve realizar corretamente a tarefa para a qual foi construído Além de fazer o que se espera o algoritmo deve fornecer o resul tado correto para quaisquer que sejam os dados fornecidos como entrada A eficácia de um algoritmo deve ser exaustivamente testada antes que ele seja implementado em um compu tador o que levou ao desenvolvimento de diversas técnicas de testes incluindo testes formais A forma mais simples de testar um algoritmo é através de um teste de mesa no qual se si ENTRADA lista de variáveis variável expressão Ponto em que inicia a execução do algoritmo Ponto em que termina a execução do algoritmo Entrada de dados leitura de informações para preencher a lista de variáveis Saída de dados informa conteúdos das variáveis da lista Atribuição variável recebe o resultado da expressão início fim SAÍDA lista de variáveis figura 14 Blocos de fluxograma Edelweiss01indd 13 Edelweiss01indd 13 120314 0859 120314 0859 14 Algoritmos e Programação com Exemplos em Pascal e C mula com lápis e papel sua execução com conjuntos diferentes de dados de entrada No final de cada capítulo deste livro são indicados alguns cuidados a adotar para verificar a exatidão dos algoritmos durante os testes eficiência de um algoritmo A solução de um problema através de um algoritmo não é necessariamente única Na maioria dos casos algoritmos diferentes podem ser construídos para realizar uma mesma tarefa Neste livro será enfatizada a utilização de técnicas que levam à construção de algoritmos mais eficientes Entretanto em alguns casos não se pode dizer a priori qual a melhor solução Podese sim calcular qual a forma mais eficiente com base em dois critérios tempo de execução e espaço de memória ocupado Aspectos de eficiência de algoritmos são vistos em outro livro desta série Toscani Veloso 2012 Um exemplo da diferença entre eficácia e eficiência pode ser observado na receita de ovo mexido mostrada a seguir 1 ligar o fogão em fogo baixo 2 separar 1 ovo 1 colher de sobremesa de manteiga e sal a gosto 3 quebrar o ovo em uma tigela 4 colocar sal na tigela 5 misturar levemente o ovo e o sal com um garfo 6 aquecer a manteiga na frigideira até que comece a derreter 7 jogar o ovo na frigideira mexendo com uma colher até ficar firme 8 retirar da frigideira e servir ENTRADA valor1 valor2 soma valor1 valor2 início fim SAÍDA soma figura 15 Fluxograma da soma de dois números Edelweiss01indd 14 Edelweiss01indd 14 120314 0859 120314 0859 Capítulo 1 Fundamentos 15 Se analisarmos o algoritmo acima podemos observar que embora o ovo mexido seja obtido garantindo a eficácia da receita existe uma clara ineficiência em relação ao gasto de gás uma vez que ligar o fogão não é prérequisito para a quebra do ovo e mistura do ovo e do sal Já em outras ações como as especificadas nos passos 3 e 4 a sequência não é relevante Se modificarmos apenas a sequência das ações conforme indicado abaixo então teremos um algoritmo eficaz e mais eficiente 1 separar 1 ovo 1 colher de sobremesa de manteiga e sal a gosto 2 quebrar o ovo em uma tigela 3 colocar sal nesta tigela 4 misturar levemente o ovo e o sal com um garfo 5 ligar o fogão em fogo baixo 6 aquecer a manteiga na frigideira até que comece a derreter 7 jogar o ovo na frigideira misturando com uma colher até ficar firme 8 retirar da frigideira e servir Edelweiss01indd 15 Edelweiss01indd 15 120314 0859 120314 0859 Encerra aqui o trecho do livro disponibilizado para esta Unidade de Aprendizagem Na Biblioteca Virtual da Instituição você encontra a obra na íntegra Dica do professor A representação dos algoritmos é uma importante atividade para desenvolver a habilidade de programação Assista ao vídeo da Dica do Professor para conhecer mais sobre alternativas de representação de algoritmos Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Exercícios 1 Algoritmos são uma importante ferramenta para especificar a solução de problemas A escolha da forma de representação do algoritmo determinará seu detalhamento e a precisão da especificação Escolha a alternativa que apresenta formas de representação de algoritmos no contexto computacional em ordem crescente de capacidade de detalhamentoprecisão do algoritmo construído A Linguagem natural pseudolinguagem fluxograma B Descrição narrativa fluxograma pseudocódigo C Fluxograma descrição narrativa pseudocódigo D Pseudocódigo fluxograma descrição narrativa E Nenhuma das alternativas 2 Algoritmos são uma sequência de passos finitos e bem definidos utilizados para resolver algum problema A utilização de um conjunto de palavraschave para escrever o algoritmo é característica doa A fluxograma B descrição narrativa C pseudocódigo D linguagem de programação E diagrama de sequência 3 Fluxogramas são diagramas gráficos desenhos que podem ser utilizados para a representação de algoritmos Analise as afirmativas a seguir e selecione aquela que NÃO se refere aos fluxogramas A Permitem o detalhamento dos passos de um algoritmo B São ambíguos e imprecisos C Têm estruturas diferentes para decisão e processos D São um conjunto finito de passos E Especificam a ordem clara de execução dos passos 4 Qual é o nome usado para a forma de representação de algoritmos expressos por meio de um diagrama gráfico com o uso de blocos elipses retângulos paralelogramos e losangos e setas de direção A Fluxograma B Descrição narrativa C Pseudocódigo D Diagrama de classes E Português estruturado 5 A representação de algoritmos tem por objetivo obter uma especificação clara que permita a comunicação e a análise do processo especificado Considerando isso assinale a alternativa FALSA A O poder de expressão da descrição narrativa dos fluxogramas e do pseudocódigo é exatamente o mesmo B Os losangos nos fluxogramas representam o processo de tomada de decisão um teste C No pseudocódigo os dados que serão utilizados pelo algoritmo podem ser lidos pelo comando leiavariável D A lógica básica de um algoritmo é entrada processamento saída E O pseudocódigo pode ser considerado uma linguagem de programação simplificada Na prática Diariamente realizamos diversas atividades e seguimos procedimentos estruturados ou não para realizálas Quando somos convidados para uma festa se aceitamos logo pedimos o endereço e as orientações passos etapas para chegar ao local Lembre das suas aulas de matemática você perceberá que o processo de resolução de problemas sempre pode ser organizado em um conjunto de etapas A organização e a representação de processos não são atividades exclusivas da área de informática muitos profissionais especificam suas atividades através de um conjunto de passos Portanto a representação de algoritmos é uma forma de organizar a solução de problemas ou processos deixandoos compreensíveis para quem for consultálos eou executálos O fluxograma a seguir apresenta o processo para resolução de equações de 2o grau utilizando a fórmula de Bhaskara Saiba Para ampliar o seu conhecimento a respeito desse assunto veja abaixo as sugestões do professor Lógica de programação Apresentação e definições Assista a este vídeo e saiba mais sobre o assunto Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Lógica de programação Algoritmos e fluxogramas Assista a este vídeo e saiba mais sobre o assunto Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar Lógica de programação Português estruturado e visualG Assista a este vídeo e saiba mais sobre o assunto Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar