CURSO TÉCNICO EM TELECOMUNICAÇÕES LÓGICA E LINGUAGEM DE PROGRAMAÇÃO MARIA DANIELA SANTAMBAIA CAVALCANTI PRONATEC



Documentos relacionados
3. Tipos de Dados, Constantes e Variáveis.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Algoritmos com VisuAlg

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Dadas a base e a altura de um triangulo, determinar sua área.

Introdução à Lógica de Programação (cont.)

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos

ICC Introdução para JavaScript

Resolução de problemas e desenvolvimento de algoritmos

Lógica. Everson Santos Araujo

Algoritmos e Programação de Computadores

Orientação a Objetos

Aula 10 Introdução à Algoritmos. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Introdução à Lógica de Programação

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

Introdução a Algoritmos Parte 04

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof. Fábio Nelson.

e à Linguagem de Programação Python

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

1.1. Organização de um Sistema Computacional

ALGORITMOS. Supervisão: Prof. Dr.º Denivaldo Lopes

Introdução à Lógica de Programação

INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO. Isac Aguiar isacaguiar.com.br

Introdução à Programação e Algoritmos. Aécio Costa

Programação 1. Rafael Vargas Mesquita. ftp://ftp.ci.ifes.edu.br/informatica/mesquita/

ESTRUTURA CONDICIONAL

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP

Programação de Computadores I Pseudocódigo PROFESSORA CINTIA CAETANO

1 Lógica de Programação

Programação para Computação

Conceitos Importantes:

Exercícios de Fixação Pseudocódigo e Estruturas Básicas de Controle

EXERCÍCIOS. 2. Faça um algoritmo que receba dois números e ao final mostre a soma, subtração, multiplicação e a divisão dos números lidos.

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

2. ALGORITMOS. Unesp Campus de Guaratinguetá. Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro

ALGORITMOS E FLUXOGRAMAS

UFRPE Prof. Gustavo Callou

Linguagem algorítmica: Portugol

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos

Algoritmos Computacionais ( Programas )

Algoritmos. Cláudio Barbosa

Algoritmos e Programação. Prof. Tarcio Carvalho

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

TÉCNICAS DE PROGRAMAÇÃO

OPERADORES E ESTRUTURAS DE CONTROLE

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Exercícios Teóricos Resolvidos

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Lição 1 - Criação de campos calculados em consultas

Programação 1. Rafael Vargas Mesquita. ftp://ftp.ci.ifes.edu.br/informatica/mesquita/

1. Introdução ao uso da calculadora

COMPUTADOR SIMPLIFICADO E COMPUTADOR DIGITAL. Algoritmos e Programação APG0001

Construção de tabelas verdades

Aluísio Eustáquio da Silva

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

CAPÍTULO 6 - ESTRUTURA DE SELEÇÃO

Equações do primeiro grau

Introdução aos cálculos de datas

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

CURSO DE PROGRAMAÇÃO EM JAVA

Arquitetura de Rede de Computadores

AUXILIAR ADMINISTRATIVO GESTÃO DE PROCESSOS ADMINISTRATIVOS PROF.: YSRAEL MOURA GARCIA

Engenharia de Software III

VisuALG Estruturas de Repetição. Professores: Vilson Heck Junior Felipe Schneider Costa

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos.

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Lógica de Programação

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

UTILIZANDO PROGRAMAS EDUCACIONAIS

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

CURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Introdução a linguagem C Estruturas de decisão

UNIDADE 6 - PROGRAMAÇÃO MODULAR

Este material traz a teoria necessária à resolução das questões propostas.

2. Representação Numérica

BARRAMENTO DO SISTEMA

ULA Sinais de Controle enviados pela UC

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Programação WEB I Estruturas de controle e repetição

Capítulo 7 Medidas de dispersão

1. NÍVEL CONVENCIONAL DE MÁQUINA

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES - CONCEITUAL

Iniciação à Informática

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

Estrutura do Trabalho: Fazer um resumo descrevendo o que será visto em cada capítulo do trabalho.

Computadores XXI: Busca e execução Final

1. Estrutura de seleção. Seleção: algumas etapas (passos) do algoritmo são executadas dependendo do resultado de uma condição

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO

Algoritmos e Programação de Computadores I. Prof. Eduardo

Transcrição:

Ministério da Educação - MEC Secretaria de Educação Profissional e Tecnológica (SETEC) Instituto Federal de Educação, Ciência e Tecnologia do Ceará CURSO TÉCNICO EM TELECOMUNICAÇÕES LÓGICA E LINGUAGEM DE PROGRAMAÇÃO MARIA DANIELA SANTAMBAIA CAVALCANTI PRONATEC

CRÉDITOS Presidente Dilma Vana Rousseff Ministro da Educação Aloizio Mercadante Oliva Supervisor(es) Curso(s) Odilon Monteiro da Silva Neto Orientador(es) Curso(s) Renata Maria Paiva Secretaria de Educação Profissional e Tecnológica Marco Antonio de Oliveira Reitor do IFCE Cláudio Ricardo Gomes de Lima Pró-Reitor de Extensão Francisco Gutenberg Albuquerque Filho Pró-Reitor de Ensino Gilmar Lopes Ribeiro Pró-Reitor de Administração Virgilio Augusto Sales Araripe Coordenador Geral Jose Wally Mendonça Menezes Coordenador Adjunto Armênia Chaves Fernandes Elaboração do conteúdo Edson Watanabe Equipe Técnica Carlos Henrique da Silva Sousa David Moraes de Andrade Coordenador Adjunto Campus Juliana Silva Liberato

O QUE É O PRONATEC? Criado no dia 26 de Outubro de 2011 com a sanção da Lei nº 12.513/2011 pela Presidenta Dilma Rousseff, o Programa Nacional de Acesso ao Ensino Técnico e Emprego (Pronatec) tem como objetivo principal expandir, interiorizar e democratizar a oferta de cursos de Educação Profissional e Tecnológica (EPT) para a população brasileira. Para tanto, prevê uma série de subprogramas, projetos e ações de assistência técnica e financeira que juntos oferecerão oito milhões de vagas a brasileiros de diferentes perfis nos próximos quatro anos. Os destaques do Pronatec são: Criação da Bolsa-Formação; Criação do FIES Técnico; Consolidação da Rede e-tec Brasil; Fomento às redes estaduais de EPT por intermédio do Brasil Profissionalizado; Expansão da Rede Federal de Educação Profissional Tecnológica (EPT). A principal novidade do Pronatec é a criação da Bolsa-Formação, que permitirá a oferta de vagas em cursos técnicos e de Formação Inicial e Continuada (FIC), também conhecidos como cursos de qualificação. Oferecidos gratuitamente a trabalhadores, estudantes e pessoas em vulnerabilidade social, esses cursos presenciais serão realizados pela Rede Federal de Educação Profissional, Científica e Tecnológica, por escolas estaduais de EPT e por unidades de serviços nacionais de aprendizagem como o SENAC e o SENAI. Objetivos Expandir, interiorizar e democratizar a oferta de cursos de Educação Profissional Técnica de nível médio e de cursos e programas de formação inicial e continuada de trabalhadores; Fomentar e apoiar a expansão da rede física de atendimento da Educação Profissional e Tecnológica; Contribuir para a melhoria da qualidade do Ensino Médio Público, por meio da Educação Profissional; Ampliar as oportunidades educacionais dos trabalhadores por meio do incremento da formação profissional. Ações Ampliação de vagas e expansão da Rede Federal de Educação Profissional e Tecnológica; Fomento à ampliação de vagas e à expansão das redes estaduais de Educação Profissional; Incentivo à ampliação de vagas e à expansão da rede física de atendimento dos Serviços Nacionais de Aprendizagem; Oferta de Bolsa-Formação, nas modalidades: Bolsa-Formação Estudante; Bolsa-Formação Trabalhador. Atendimento a beneficiários do Seguro-Desemprego;

Lógica e Programação de Computadores Edson Watanabe Florianópolis 2010

Copyright 2010, Instituto Federal de Santa Catarina / Sistema ETEC. Nenhuma parte deste material poderá ser reproduzida, transmitida e gravada, por qualquer meio eletrônico, por fotocópia e outros, sem prévia autorização, por escrito, dos autores. Watanabe, Edson Lógica de Programação de Computadores / Edson Watanabe / Florianópolis : Publicações do IF-SC, 2010. 87 p. : il. ; 00 cm. Inclui Bibliografia ISBN: Sistema de Bibliotecas Integradas do IF-SC Biblioteca Dr. Hercílio Luz Campus Florianópolis Catalogado por:

Organização de conteúdo: Andrino Fernandes Elaine Luz Barth André de Oliveira Leite Comissão Editorial: Hamilcar Boing Andrino Fernandes Elaine Luz Barth Produção e design instrucional: André de Oliveira Leite Elaine Luz Barth Diagramação: Hudson Ricardo Borges Capa: Lucio Baggio Revisão ortográfica: Marcos Pessoa

Sumário Capítulo 1 - Introdução à Lógica de Programação... 9 1.2 O que é Lógica de Programação... 12 1.3 O que é Seqüência Lógica... 12 1.4 O que são Instruções?... 13 1.5 O que é Algoritmo?... 14 1.6 O que são Programas de Computadores?... 18 Capítulo 2 - Criação de Algoritmos... 21 2.1 O que é Pseudocódigo?... 23 2.2 Existem regras para a construção do Algoritmo?... 24 2.3 Etapas... 24 2.4 Exemplo de Algoritmo... 25 2.5 Verificação do Algoritmo... 25 2.6 O que é um diagrama de bloco?... 26 2.7 Simbologia Padrão... 26 Capítulo 3 - Tipos de Dados, Constantes e Variáveis... 31 3.1 Tipos de Dados... 33 3.2 Operadores... 36 Capítulo 4 - Estrutura de Controle... 45 4.1 Estrutura de Controle Sequencial... 47 4.2 Estrutura de Controle Condicional ou de Seleção... 48 4.3 Estrutura de Controle de Repetição... 52 Capítulo 5 - Estrutura de Dados... 61 5.1 Vetores... 63 5.2 Matrizes... 66 5.3 Registros... 69 Capítulo 6 - Modularização de algoritmos... 75 6.1 Para que serve a Modularização ou Sub-Rotinas?... 77 6.2 O que é um Procedimento?... 78 6.3 O que são as Variáveis Globais e Locais?... 79 6.4 O que é um Parâmetro?... 81 6.5 O que é uma Função?... 84

Apresentação Caro estudante, Para que você chegasse a esta etapa do curso, a sua caminhada envolveu vários assuntos que o capacitaram a aprender e escrever programas de computadores. Você vai perceber o quanto é valioso lembrar todos os conceitos que foram estudados até agora, para você obter um bom desempenho. O que é Lógica? O que significa estudar Lógica? Qual a sua definição? Estas perguntas serão logo respondidas, a medida que estivermos estudando e abordando os novos conteúdos. Segundo André Forbellone, A lógica, em geral, trata da correção do pensamento. Como filosofia, ela procura saber por que pensamos assim e não de outro jeito. Como arte ou técnica, ela nos ensina a usar corretamente as leis do pensamento. Pode-se dizer também que a lógica é a arte de pensar corretamente. Visto que a forma mais complexa do pensamento é o raciocínio, a lógica estuda ou tem em vista a correção do raciocínio.pode- -se ainda dizer que a lógica tem em vista a ordem da razão. Por isso, a lógica ensina a colocar ordem no pensamento. Portanto, nesta unidade curricular denominada Lógica de Programação, vamos abordar conteúdos instrucionais que tratam desde aspectos introdutórios de Lógica de Programação, até uma breve amostra de estruturas mais complexas de dados, dando-nos subsídios para criarmos programas mais complexos. Seja bem-vindo (a)!. É um prazer acompanhá-lo (a) em mais uma etapa no mundo maravilhoso dos computadores. Realize todas as atividades recomendadas e planeje os seus estudos. Sucesso e boas aulas! Um abraço Prof. Edson Watanabe

CAPÍTULO 1 INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO

Objetivo Neste capítulo serão apresentados alguns conceitos básicos para uma melhor compreensão dos mecanismos utilizados na escrita de programas de computador.

Introdução à Lógica de Programação 1.1 O que é Lógica? A palavra lógica está normalmente relacionada com o modo de pensar de um indivíduo em termos de racionalidade e coerência. Apesar de ela estar freqüentemente associada à matemática, a lógica também tem a sua aplicação em outras ciências. DEFINIÇÕES DE LÓGICA Podemos relacionar a lógica com a correção do pensamento, pois uma de suas preocupações é determinar quais operações são válidas e quais não são, fazendo análises das formas e leis do pensamento. Como filosofia, ela procura saber por que pensamos assim e não de outro jeito. Com arte ou técnica, ela nos ensina a usar corretamente as leis do pensamento. Lógica de Programação André Luiz Villar Forbellone Fig.1: Ilustração de Lógica Leia com atenção os exemplos abaixo, eles se referem à lógica proposicional: Todo cachorro é um mamífero. Todo mamífero é um animal. Portanto, todo cachorro é um animal. Poderíamos dizer que a lógica é a arte de bem pensar, que é a ciência das formas do pensamento. Visto que a forma mais complexa do pensamento é o raciocínio, a lógica estuda a correção do raciocínio. Podemos ainda dizer que a lógica tem em vista a ordem da razão. Isto dá a entender que a nossa razão pode funcionar desordenadamente. Por isso a lógica estuda e ensina a colocar ordem no pensamento. Lógica de Programação André Luiz Villar Forbellone Japão é um país do continente asiático. Todos os japoneses são de Japão. Logo, todos os japoneses são asiáticos. Os exemplos acima representam um argumento composto por duas premissas e uma conclusão. Está sendo estabelecida uma relação que pode ser válida ou não, aliás, este é um dos objetivos da lógica - estudar técnicas de formalização, dedução e análise com o intuito de verificar a validade de argumentos. Devemos ressaltar que apesar da aparente coerência de um encadeamento lógico, ele pode ser válido ou não em sua estrutura. Neste sentido, a lógica também objetiva a criação de uma representação mais formal, que se contrapõe à linguagem natural, 11

Lógica e Programação de Computadores que é suscetível a argumentações informais. A lógica proposicional é bastante utilizada no dia a dia, muitas vezes as pessoas não se dão conta disso porque no momento de uma argumentação em uma conversa ou em uma justificativa por escrito, tudo parece seguir a normalidade. Este tipo de lógica é geralmente utilizada quando se quer provar que não se cometeu nenhum erro. 1.2 O que é Lógica de Programação Lógica de programação Pessoas que querem trabalhar na área da informática como desenvolvedor de programas e sistemas, precisam conhecer a respeito da lógica de programação, pois ela ajudará a definir uma seqüência lógica de desenvolvimento. Isto envolve pelas duas características importantes que um programador deve possuir: ordem e clareza. Técnica de encadear pensamentos para atingir um determinado objetivo. Fig.2: Ilustração de Lógica de Programação 1.3 O que é Seqüência Lógica Seqüência Lógica Passos executados até atingir um objetivo ou solução de um problema. Para se executar qualquer atividade na vida é preciso desenvolver uma mente que possa pensar em todas as etapas de trabalho necessárias e planejar os passos para se alcançar a meta final com êxito. Este processo de raciocinio pode ser descrito como uma seqüência de instruções, que devem ser seguidas para se cumprir uma determinada tarefa. 12 Fig.3: Ilustração de Seqüência Lógica

Introdução à Lógica de Programação 1.4 O que são Instruções? Inicialmente, se pesquisarmos no dicionário Miichaelis encontraremos a seguinte definição para Instrução: Conjunto das formalidades e informações necessárias para elucidar uma causa e pô-la em estado de ser julgada. Porém, se pesquisarmos no dicionário especificamente a área de informática encontraremos que instrução é uma: palavra ou expressão única que representa uma operação. (Michaelis). Instruções Conjunto de regras ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma ação elementar a executar. Vale aqui ressaltar que uma ordem isolada não permite realizar o processo completo, é necessário um conjunto de instruções colocadas em ordem seqüencial lógica. Por exemplo, se quisermos preparar uma omelete de batatas, é necessário seguir uma seqüência de instruções: descascar as batatas, quebrar e bater os ovos, esquentar o óleo, fritar as batatas, etc... Claro que essas instruções têm que ser executadas em uma ordem coerente não se podem descascar as batatas depois de fritá-las. Por isto, uma instrução tomada isoladamente não faz sentido; para atingirmos o resultado desejado, é preciso colocar em prática o conjunto de todas as instruções, na ordem correta. Fig.4: Ilustração de Instrução 13

Lógica e Programação de Computadores 1.5 O que é Algoritmo? A seguir estão alguns dos vários os conceitos que se encontram citados em literaturas especializadas sobre o Algoritmo : Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico (KNUTH] Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado problema (TREMBLAY) Processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, as regras formais para a obtenção do resultado ou da solução do problema (AURÉLIO) A busca de melhora no desempenho é conseguido através da implementação da automação nos processos envolvidos nas atividades, assim uma tarefa deixa de ser desempenhada pelo homem e passa a ser executada por máquinas. Estes dispositivos podem ser de natureza mecânica, eletrônica ou mista. Para que o processo de automatização de uma tarefa tenha sucesso faz-se necessário que a máquina que vai atuar para este fim, seja capaz de desempenhar com eficiência para garantir a repetibilidade do seu trabalho. Os passos devem ser especificados com clareza e exatidão e devem ser realizados em cada uma das fases do processo a ser automatizado, bem como a seqüência em que estas fases devem ser realizadas. A especificação da seqüência ordenada de passos que deve ser seguida para a realização de uma tarefa, garantindo a sua repetibilidade, dá-se o nome de algoritmo. a) Para que servem os algoritmos? Serve como modelo para programas, pois sua linguagem é intermediária à linguagem humana e às linguagens de programação, sendo então, uma boa ferramenta na validação da lógica de tarefas a serem automatizadas. Os algoritmos servem para representar a solução de qualquer problema, mas no caso do Processamento de Dados, eles devem seguir as regras básicas de programação para que sejam compatíveis com as linguagens de programação. Fig.5: Exemplos de Algoritmos 14 A palavra algoritmo (sistema particular de notação), à primeira vista, parece-nos estranha. Embora possua designação desconhecida, fazemos uso constantemente de algoritmos em nosso cotidiano, por exemplo, a maneira como uma pessoa toma banho é um algoritmo.

Veja logo abaixo, exemplos de algoritmos freqüentemente encontrados: instruções para montagem de um móvel; descrição de uma receita para preparo de um assado; preenchimento do formulário de declaração do imposto de renda; procedimento para dirigir um veículo; cálculo mensal das contas de água, luz e telefone; etc. Segundo alguns autores da área da Ciência da Computação o uso de algoritmos é fundamental: A noção de algoritmo é básica para toda a programação de computadores. (KNUTH - Professor da Universidade de Stanford, autor da coleção The art of computer pro-gramming ) O conceito central da programação e da ciência da computação é o conceito de algoritmo. (WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e responsável pela criação de linguagens de programação como ALGOL, PASCAL e MODULA-2) Agora que você já sabe que o computador executa operações em uma seqüência, vamos destacar a necessidade de especificar uma seqüência de passos lógicos para que o computador possa executar uma tarefa solicitada qualquer - a máquina não tem vontade própria e inteligência, ela faz apenas o que é proposto. Utilizando as várias ferramentas algorítmicas existentes no mercado, é possível se produzir soluções para os problemas encontrados, sem se importar com o modelo de computador e mesmo sem se preocupar com a linguagem de programação a ser utilizada. b) Características de um Algoritmo Todo algoritmo deve apresentar algumas características básicas: Introdução à Lógica de Programação Ter um início; Ter um fim; Não dar margem à dupla interpretação (não ter duplo sentido); Ter a capacidade de receber dado(s) de entrada do mundo exterior; Poder gerar informações de saída para o mundo externo ao do ambiente do algoritmo; Ser efetivo (todas as etapas especificadas no algoritmo devem ser alcançáveis em um tempo finito). 15

Lógica e Programação de Computadores c) Formas de representação de um Algoritmo As representações mais comuns dos passos de um algoritmo serão mostradas a seguir. São elas: a descrição narrativa e o fluxograma, Descrição narrativa Nesta forma o algoritmo é descrito, passo a passo, e todas as tarefas a devem ser executados na língua mãe, no nosso caso em português. Exemplo: Receita de Bolo: 1- Providenciar manteiga, ovos, 2 Kg de massa, etc. 2- Misturar os ingredientes 3- Despejar a mistura na fôrma de bolo 4- Levar a fôrma ao forno 5- Esperar 20 minutos 6- Retirar a fôrma do forno 7- Deixar esfriar 8- Provar Pontos fortes: escrito na língua mãe, facilitando o entendimento; cada passo utiliza um verbo indicando a ação; uso de termos corriqueiros; Pontos fracos: imprecisão; pouco confiável, a imprecisão acarreta a desconfiança; extenso, normalmente escreve-se muito para dizer pouca coisa. Fluxograma Fig.6: Ilustração de Algoritmo com Descrição Narrativa 16 A representação através de símbolos gráficos que mostram a seqüência de execução é uma das maneiras possíveis de se representar os algoritmos. Esta representação é chamada de fluxograma. Existem símbolos padronizados para início, entrada de dados, cálculos, saída de dados, fim e outras funções.

Um algoritmo é uma seqüência ordenada e finita de passos que representam o modo de execução de uma tarefa. Como uma receita, é realizada. a descrição de um procedimento, bem como, é seguida uma seqüência de instruções que devem ser obedecidas para atingir-se a meta desejada. Estes procedimentos não podem ser redundantes nem subjetivos na sua definição - devem ser claros e precisos. Temos alguns algoritmos já memorizados na nossa mente por isso, as executamos automaticamente, por exemplo, as operações básicas de matemática - adição, multiplicação, divisão e subtração de números reais decimais. Também podemos citar os manuais de instalações de equipamentos eletrônicos, como um computador, que explica passo-a-passo como interligar as partes que o compõe, gabinete, monitor, teclado, mouse, a impressora e a conexão à rede elétrica e a Internet. Você sabia que as coisas mais simples da vida também podem ser descritas por seqüências lógicas? Veja os exemplos a seguir: Chutar um pênalti : 1) Pegar a bola; 2) Colocar na marca do Pênalti; 3) Dar alguns passos para trás da bola; 4) Correr em direção a bola 5) Chutar a bola em direção ao gol e longe do goleiro 6) Sair para o abraço; Calcular a média aritmética de duas notas : Introdução à Lógica de Programação Fig.7: Ilustração de Diagrama de Bloco - Obter o primeiro número (colocá-lo na caixa B - Obter o segundo número (colocá-lo na caixa B2) 1) Soma o número B1 com número B2 2) Divide o resultado da soma por 2 3) Verifica se o a média é maior ou igual a 7 4) Se sim o aluno está aprovado 5) Se não o aluno está reprovado Fig.8: Exemplo de Diagrama de Bloco 17

Lógica e Programação de Computadores 1.6 O que são Programas de Computadores? Um programa segue rigorosamente a estrutura definida por um algoritmo, por isto a importância de se fazer uma boa análise do problema e traduzi- -la em uma seqüência lógica de execução. Os programas de computadores são compostos por comandos para a execução de uma atividade (algoritmos) escritos em diversas linguagens de programação, tais como, Pascal, C, Cobol, Java, Visual Basic e outras que podem ser interpretadas e/ou executadas por um computador ou uma outra máquina programável. Programa de Computador Fig.:9 Programas de Computador Uma coleção de instruções que descrevem uma tarefa a ser realizada por um computador. O termo pode ser uma referência ao código fonte, escrito em alguma linguagem de programação, ou ao arquivo que contém a forma executável deste código fonte. (Fonte: Wikipédia) RESUMO Neste capítulo você foi introduzido a Lógica de Programação e a sua real importância em nossas vidas, conheceu Algoritmos e obteve noções sobre Programação. 18

Introdução à Lógica de Programação ATIVIDADES DE APRENDIZAGEM 1) Crie uma seqüência lógica para tomar banho. 2) Faça um algoritmo para somar dois números e multiplicar o resultado pelo primeiro número. 3) Descreva a seqüência lógica para trocar um pneu de um carro. 4) Faça um algoritmo para trocar uma lâmpada. 19

CAPÍTULO 2 CRIAÇÃO DE ALGORITMOS

Objetivo Neste capítulo vamos focalizar o desenvolvimento de um algoritmo, regras, etapas e simbologias.

Criação de Algoritmos O algoritmo ocupa uma posição intermediária entre a linguagem falada e a linguagem de programação. Ele deve possuir uma estrutura fácil de ser interpretada e fácil de ser codificada. 2.1 O que é Pseudocódigo? Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome é uma referência à implementação que será feita em alguma linguagem de programação, assim quando for programar em uma linguagem, por exemplo, C++, estará sendo gerado o código em C++. Desta forma, os algoritmos são independentes das linguagens de programação. Diferentemente de uma linguagem de programação, escrever um algoritmo, não exigirá um formalismo rígido. Pseudocódigo também pode ser definido como uma técnica textual de representação de um algoritmo. Ele é também conhecido como Português Estruturado ou Portugal. Nele os verbos, ações, disponíveis para utilização são restritos e empregados no imperativo, deve-se evitar as expressõeés excessivamente longas, tais restrições existem para eliminar a possibilidade de ambigüidade. Pseudocódigo Forma genérica de escrever um algoritmo, utilizando uma linguagem simples (nativa a quem o escreve, de forma a ser entendida por qualquer pessoa) sem necessidade de conhecer a sintaxe de nenhuma linguagem de programação. (Fonte:Wikipédia) Exemplo de Pseudocódigo: Fig.10: Ilustração Pseudocódigo Fonte : Internet 23

Lógica e Programação de Computadores 2.2 Existem regras para a construção do Algoritmo? Para escrever um algoritmo precisa-se listar a seqüência de instruções, de maneira simples e objetiva. Para isso algumas técnicas: 1) Usar somente um verbo por frase e no imperativo; 2) Usar sentenças fáceis de serem entendidas por pessoas leigas no assunto; 3) Usar frases simples e curtas; 4) Ser direto e objetivo; 5) Usar palavras que não tenham sentido duplo. 2.3 Etapas Já foi visto que Algoritmo é uma seqüência lógica de instruções que podem ser executadas. É importante destacar que qualquer tarefa que siga um certo padrão pode ser representada por um algoritmo; entretanto, para montá-lo é necessário dividir a tarefa em três fases fundamentais. Onde temos: Fig. 11: Etapas de um algoritmo Fonte : Internet Entrada: São as informações que iniciam o algoritmo. Processamento: São os passos necessários para atingir a meta. Saída: São os resultados do processamento. Fazendo uma analogia entre o algoritmo e o ser humano ficaria assim: 24 Fig.12: Ilustração de um algoritmo

Criação de Algoritmos 2.4 Exemplo de Algoritmo Problema: Calcular a média final dos alunos da 8ª Série. Os alunos realizarão quatro provas: P1, P2, P3 e P4. Onde: Para montar o algoritmo proposto, fazem-se três perguntas: 1) Quais são os dados de entrada? Resp.: P1, P2, P3 e P4. 2) Qual será o processamento a ser utilizado? Resp.: Somar todos os dados de entrada e dividi-los por 4 3) Qual será o dado de saída? Resp.: A média final Algoritmo: Recebe a nota da prova P1 Recebe a nota de prova P2 Recebe a nota de prova P3 Recebe a nota da prova P4 Some todas as notas e divida o resultado por 4 Mostre o resultado da divisão 2.5 Verificação do Algoritmo Ao desenvolver um algoritmo, em seguida ele deverá sempre ser testado para verificar o seu bom funcionamento. Esta verificação chama-se: Teste de Mesa, onde é simulada a execução das instruções do algoritmo para provar se os passos utilizados levarão ao resultado esperado ou não. Do exemplo anterior: Nota da Prova P1 Nota da Prova P2 Nota da Prova P3 Nota da Prova P4 Dá-se valores à tabela abaixo: P1 P2 P3 P3 Média 8.0 7.6 9.5 8.4 8.4 7.3 8.8 5.7 6.9 7.2 6.6 5.5 9.8 10 8.0 25

Lógica e Programação de Computadores 2.6 O que é um diagrama de bloco? Uma forma eficiente de representar os passos lógicos de uma determinada tarefa é a utilização de um diagrama de blocos porque ele segue um padrão, fazendo com que o seu entendimento ( mesmo não estando a par do problema em questão) torne-se bastante facilitado. Através do uso do diagrama pode-se definir uma seqüência de símbolos, com significado bem definido, assim a su(a principal função é a de facilitar a visualização dos passos de execução de uma tarefa. Porque ele Fig.13: Diagrama de Blocos 2.7 Simbologia Padrão Em um diagrama de blocos existem diferentes símbolos e no quadro a seguir, são mostrados alguns dos principais símbolos utilizados: No interior do símbolo é escrito uma expressão matemática ou lógica, uma ação, um índice e etc., o que for relevante mostrar, pois somente os símbolos vazios não significarão nada. Veja o exemplo na Tabela. 26

Criação de Algoritmos Tabela1: Simbologia Símbolo Descrição Função Terminal Processamento Símbolo que indica o inicio ou o fim de um processamento. Ex: inicio do algoritmo Símbolo de processamento em geral. Ex: cálculo de dois números Entrada de dado manual Exibir Símbolo que indica a entrada de dados através do teclado. Ex: digitar a nota da prova 1 Símbolo que mostra informações ou exibe resultados. Ex: mostre o resultado do cálculo Conectar Símbolo utilizado para conectar duas partes do digrama de bloco. Comparar Símbolo utilizado para comparação entre expressões. Ex: código <= 1000 (sim/não) 27

Lógica e Programação de Computadores Exemplos de Diagrama de Bloco: Fig.14: Exemplo de Diagrama de Blocos Fonte : Internet Percebe-se que no primeiro exemplo (da bala) uma seqüência lógica foi seguida, utilizando somente as informações diretas, porém no segundo exemplo (da média) foi utilizado um cálculo e a seguir, foi exibido o seu resultado final. RESUMO Você acabou de conhecer Algoritmos e suas regras, etapas de desenvolvimento e simbologias. Você também foi levado a discorrer sobre o desenvolvimento da estruturação de um problema em forma de comandos visando facilitar a sua compreensão. 28

Criação de Algoritmos ATIVIDADES DE APRENDIZAGEM 1) Construa um diagrama de blocos que: Leia a cotação do dólar Leia um valor em dólares Converta esse valor para Real Mostre o resultado 2) Desenvolva um diagrama que: Leia 4 (quatro) números Calcule o quadrado para cada um Somem todos e Mostre o resultado 3) Construa um algoritmo para pagamento de comissão de vendedores de peças, levando-se em consideração que sua comissão será de 5% do total da venda e que você tem os seguintes dados: Identificação do vendedor Código da peça Preço unitário da peça Quantidade vendida A seguir, construa o diagrama de blocos do algoritmo desenvolvido, e ao final, faça um teste de mesa. 4) Identifique os dados de entrada, processamento e saída no algoritmo abaixo: Receba código da peça Receba valor da peça Receba Quantidade de peças Calcule o valor total da peça (Quantidade * Valor da peça) Mostre o código da peça e seu valor total 29

CAPÍTULO 3 TIPOS DE DADOS, CONSTANTES E VARIÁVEIS

Objetivo No capítulo 3 vamos apresentar a classificação dos dados de acordo com o tipo de informação contida nele, sem a necessidade de especificar uma linguagem de programação porque esta classificação sintetiza padrões utilizados na maioria das linguagens conhecidas.

O computador realiza a sua tarefa trabalhando as informações contidas em sua memória. Tais informações podem ser classificadas conforme dois tipos básicos: as instruções e os dados. Entende-se por instruções os comandos de funcionamento da máquina que determinam o modo como devem ser tratados os dados, e os dados correspondem as informações a serem processadas pelas instruções. Tipos de Dados, Constantes e Variáveis Assim: Informação = Instrução + Dados Fig.15: Ilustração sobre a busca de Informações 3.1 Tipos de Dados As informações utilizadas em um algoritmo podem ser classificadas como: Dados Constantes não sofrem alterações durante a execução do programa. Ex: velocidade da luz=300.000 Km/s, moeda US = dólar. As variáveis e as constantes podem ser basicamente de quatro tipos: Numéricas, caracteres, alfanuméricas ou lógicas. Dados Variáveis eles podem sofrer alterações durante a execução do programa,. Ex: temperatura, velocidade do vento. 33

Lógica e Programação de Computadores OBSERVAÇÃO IMPORTANTE!! Uso Em programas de computador é necessário armazenar dados para posterior utilização. Estes dados são armazenados nas variáveis e constantes. Os dados de entrada e de saída e os resultados de quaisquer processamentos intermediários devem ser armazenados em variáveis, casos contrários serão perdidos e não poderão ser utilizados. Regras Os identificadores de variáveis e constantes devem obedecer a certas regras, em geral: - O primeiro caractere deve ser uma letra e nunca um algarismo - Não devem ser utilizados espaços em branco ou caracteres acentuados - Cada linguagem de programação tem suas regras próprias para identificadores, consulte as que devem ser aplicadas em cada caso. Existem ainda os TIPOS PRIMITIVOS DE DADOS, tais como: Inteiro: informação pertencente ao conjunto dos números inteiros relativos (positiva ou negativa). Ex.: Ele tem 13 irmãos Real: informação pertencente ao conjunto dos números reais. Ex.: O meu saldo bancário é de R$ 128,50. Caractere: informação alfanumérica (caracteres alfabéticos, numéricos e especiais).ex: Constava no edital: Use somente caneta!. Lógico: informação que admitem dois estados, biestável (admite apenas 2 valores). Ex.: A janela pode estar aberta ou fechada. AGORA, QUE VOCÊ JÁ CONHECE OS TIPOS PRIMITIVOS, IDEN- TIFIQUE QUAL É O TIPO DE DADO CONTIDO EM CADA UMA DAS SENTENÇAS ABAIXO? a) A placa Pare! tinha 2 furos de bala ABAIXO b) Josefina subiu 5 degraus para pegar uma maçã boa. c) Alberta levou 3,5 horas para chegar ao hospital. d) Astrogilda pintou em sua camisa: Preserve o meio ambiente, e ficou devendo $100,59 ao vendedor de tintas. a) O que são cosntantes? Em informática, a constante é um espaço físico na memória, ela é identificada por um nome, também chamado de identificador, e pode conter dados de algum determinado tipo primitivo. O conteúdo armazenado não pode variar durante a execução do programa à qual ele pertença, e isto a distingue das variáveis. Constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um programa. Conforme o seu tipo, a constante é classificada como sendo numérica, lógica e literal As constantes também são chamadas de variáveis constantes, apesar de este nome ser um aparente paradoxo. As constantes suportam os mesmos tipos de dados que as variáveis 34

Tipos de Dados, Constantes e Variáveis Exemplo de constantes: O valor do número PI (π) A velocidade da luz 5 Não fume b) O que são Variáveis? A variável é um espaço na memória que pode conter dados de algum determinado tipo primitivo. Os dados armazenados em uma variável são os seus conteúdos, e estes podem variar durante a execução do programa à qual eles pertençam. A variável também é conhecida como identificador, Fig.16: Ilustração de Informação Variável: saldo bancário ATENÇÂO!! Embora uma variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante. Exemplos de variáveis: Fig.17: Ilustração de Representação de Variáveis Para você compreender melhor, vamos fazer uma analogia com uma vaga de estacionamento de um Shopping Center. A vaga é um espaço físico, cujo identificador é um código que nos permite voltar à mesma vaga após as compras. Existem vagas para veículos de diferentes tipos como veículos de passeio, motos e caminhões. O conteúdo da vaga é o veículo ali estacionado ou nada, quando ela está vazia. Esse conteúdo não é o mesmo no decorrer do dia. 35

Lógica e Programação de Computadores 3.2 Operadores Os operadores são os mecanismos de relacionamento de valores ( em um programa de computador) com a função de executar as seguintes tarefas: comparação, incremento, decremento e verificação. Existem três tipos de operadores: Operadores Aritméticos Operadores Relacionais Operadores Lógicos a) Operadores Aritméticos Os operadores aritméticos têm a função de realizar operações matemáticas entre dois valores numéricos resultando assim na obtenção de um valor numérico final. Além das quatro operações padrões( adição, subtração, multiplicação e divisão) pode-se também utilizar o operador para exponenciação. A tabela 2 mostra as operações matemáticas e os seus respectivos símbolos gráficos: Tabela 2: Operadores Aritméticos Operação Símbolo Adição + Subtração - Multiplicação * Divisão / Exponenciação ** 36 Fig.18: Ilustração sobre operadores aritméticos

b) Prioridade de execução das Operações Aritméticas 1 º) ( ) Parênteses 2 º) Exponenciação 3 º) Multiplicação, divisão (o que vier primeiro) 4 º) + ou (o que vier primeiro) Exemplo: TOTAL = PREÇO * QUANTIDADE 1 + 7 * 2 ** 2 1 = 28 3 * (1 2) + 4 * 2 = 5 Tipos de Dados, Constantes e Variáveis c) Operadores Relacionais Os operadores relacionais têm a sua utilização na operação de comparação entre String (seqüência) de caracteres e números. Os valores a serem comparados podem ser constantes ou variáveis. Estes tipos de operadores sempre retornam os valores lógicos: verdadeiro ou falso/ True ou False (veja tabela 4). Na necessidade de estabelecer prioridades nas operações a ser executada, basta utilizar o sinal de parênteses para demarcar as operações a serem executadas primeiro. A tabela 3 mostra os operadores relacionais: Tabela 3: Operadores Relacionais Exemplo: Tendo-se duas variáveis A = 5 e B = 3, as possibilidades de resultados das combinações das expressões é que segue na tabela 4: 37

Lógica e Programação de Computadores Tabela 4: Resultado dos Operadores Relacionais Expressão Resultado A = B Falso A <> B Verdadeiro A > B Verdadeiro A < B Falso A >= B Verdadeiro A <= B Falso A seguir, observe a figura 19. O símbolo utilizado para comparação (também chamado de tomada de decisão) de uma determinada condição estabelecida: Fig.19: Ilustração de Representação de Símbolo de Decisão d) Operadores Lógicos Fig.20: Ilustração de Tomada de Decisão Os operadores lógicos (veja tabela 5) são utilizados para combinar resultados de expressões, retornando o resultado final como verdadeiro ou falso. 38

Tipos de Dados, Constantes e Variáveis Tabela 5: Operadores Lógicos E AND OU OR NÃO NOT AND/E: Uma expressão AND é verdadeira se, e somente se, todas as condições forem verdadeiras OR/OU: Uma expressão OR é verdadeira se pelo menos uma condição for verdadeira NOT/NÃO: Uma expressão NOT, também conhecida como negação, inverte o valor da expressão ou condição apresentada, se ela for verdadeira inverte para falsa e vice-versa. Os operadores lógicos e sua ordem de precedência são mostrados na tabela 6: Tabela 6: Prioridade dos Operadores Operador Descrição Prioridade OU AND 3 E OR 2 NÃO NOT 1 A tabela 7 mostra todos os valores possíveis gerados pelos operadores lógicos: OR, AND e NOT. Tabela 7: Resultado das Operações Lógicas A B A ou B A e B não A falso falso falso falso verdadeiro falso verdadeiro verdadeiro falso verdadeiro verdadeiro falso verdadeiro falso falso verdadeiro verdadeiro verdadeiro verdadeiro falso Exemplos: Suponha ter as seguintes variáveis e atribuídos os seus respectivos valores: A = 5, B = 8 e C =1. Os resultados das expressões está sendo mostrado na tabela 8: 39

Lógica e Programação de Computadores Tabela 8: Resultado das Expressões Lógicas Expressões Resultado A = B AND B > C Falso A <> B OR B < C Verdadeiro A > B NOT Verdadeiro A < B AND B > C Verdadeiro A >= B OR B = C Falso A <= B NOT Falso e) Operações Lógicas As Operações Lógicas são utilizadas quando se é necessário tomar decisões dentro do diagrama de bloco. Assim, em um diagrama de bloco, toda decisão tomada terá sempre como resposta um dos dois resultados: Verdadeiro ou Falso. A seguir será apresentado o exemplo do algoritmo CHUPAR UMA BALA. Lembre da possibilidade de se ter pessoas que não gostam de um determinado sabor de bala (por exemplo, o sabor de morango) o algoritmo terá um ponto de tomada de decisão. Na seqüência segue a resolução deste problema: ALGORITMO: CHUPAR UMA BALA. 1) Pegar a bala 2) A bala é de morango? 3) Se Verdade, não chupe a bala 4) Se Falso, continue com o algoritmo 5) Retirar o papel 6) Chupar a bala 7) Jogar o papel no lixo Exemplo: Algoritmo Chupar Bala utilizando diagrama de Blocos (veja fig.21). 40 Fig.21: Ilustração do Algoritmo Chupar Bala

Tipos de Dados, Constantes e Variáveis RESUMO Neste capitulo estudamos Tipo de Dados e as noções de Constantes e, Variáveis. Também foram abordamos os tipos de Informação que um programa de computador manipula. AT IVIDADES DE APRENDIZAGEM 1) O que é uma constante? Dê dois exemplos. 2) O que é uma variável? Dê dois exemplos. 3) Sabendo-se que José tem direito a 15% de reajuste de salário, complete o diagrama e simule um teste de mesa: Nome Salário Reajuste VALOR Salário Novo José 1200,00 15% 180,00 1380,00 Antônio 900,00 15% Suely 1750,00 15% 41

Lógica e Programação de Computadores 4) Sabendo que A=3, B=7 e C=4, informe se as expressões a seguir são verdadeiras ou falsas. a) (A+C) > B ( ) b) B >= (A + 2) ( ) c) C = (B A) ( ) d) (B + A) <= C ( ) e) (C+A) > B ( ) 5) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expressões a seguir são verdadeiras ou falsas. a) (A > C) AND (C <= D) ( ) b) (A+B) > 10 OR (A+B) = (C+D) ( ) c) (A>=C) AND (D >= C) ( ) 6) Tendo como dados de entrada a altura e o sexo de uma pessoa. Construa um algoritmo que calcule seu peso ideal, utilizando as seguintes fórmulas: Para homens: (72.7*h) - 58 Para mulheres: (62.1*h) - 44.7 (h = altura) 7) Faça um teste de mesa do diagrama apresentado ao lado, de acordo com os dados fornecidos: 42

Tipos de Dados, Constantes e Variáveis 8) Elabore um algoritmo levando-se em conta o diagrama apresentado abaixo: Teste o diagrama com os dados da tabela: SAL BASE GRATIF 3.000,00 1.200,00 1.200,00 400,00 500,00 100,00 Memória SALBASE GRATIF SALBRUTO IR SALLIQ Dados de Saída SALLIQ 43

CAPÍTULO 4 ESTRUTURA DE CONTROLE

Objetivo No capítulo 4 você vai conhecer e identificar as estruturas básicas de controle do fluxo de execução de um programa.

Estrutura de Controle Os algoritmos são criados para solucionar problemas propostos utilizando conceitos de bloco lógico, entrada e saída de dados, constantes, variáveis, expressões lógicas, atribuições e comandos. Dentro do algoritmo, existe a necessidade de tomadas de decisões que vão interferir diretamente no andamento do programa. As estruturas básicas de controle do fluxo de execução são as seguintes: seqüencial, condicional/ de seleção e repetição. 4.1 Estrutura de Controle Sequencial Fig.22: Ilustração de Estrutura de Controle Refere-se ao conjunto de comandos que são executados numa seqüência linear, de cima para baixo, ou seja, na mesma ordem em que aparecem. Cada comando é executado somente após o término do comando anterior. Uma estrutura de Controle Sequencial é delimitada pelas palavras reservadas Inicio e Fim e é constituída de comandos de atribuição, comandos de entrada e comandos de saída. Sintaxe Geral: Fig.23: Ilustração de Estrutura Seqüencial inicio Comando 1; Comando 2; Comando 3;... Comando n fim 47

Lógica e Programação de Computadores 4.2 Estrutura de Controle Condicional ou de Seleção Conheça mais sobre George Boole, o criador da Álgebra Boolema em http://pt.wikipedia.org/wiki/ george_boole. Esta estrutura permite a escolha de um grupo de ações (blocos) a serem executadas de acordo com a aceitação ou não, de certas condições representadas por expressões lógicas ou relacionais. São testados os parâmetros e dependendo dos seus valores, toma-se um caminho ou outro. As condições que são testadas num algoritmo são do tipo lógica booleana (Verdadeiro ou Falso). Portanto, a seleção de ações pode ter, no máximo, duas alternativas: uma se a condição for verdadeira e outra se a condição testada for falsa. Fig.24: Ilustração de Estrutura de Controle Condicional ou de Seleção A Estrutura de Controle Condicional ou de Seleção pode ser de: seleção simples, seleção composta, seleção encadeada/aninhada, seleção de múltipla escolha. Edentação É o recuo do texto para melhor organização e visualização do código. a) Seleções Simples (Se... Então) Sintaxe Geral: se <condição> então // início do bloco verdade comando 1; comando 2;... comando n; // fim do bloco verdade fimse; Quando a <condição> for verdadeira o bloco verdade é executado Quando a <condição> for falsa o bloco verdade não é executado 48

Estrutura de Controle Exemplo: Construir um algorítmo que obtenha 4 notas, calcule sua média e apresente a mensagem Aprovado caso a média seja igual ou maior que 7. início fim. // declaração de variáveis real: N1, N2, N3, N4, // notas bimestrais MA; // média anual // entrada de dados leia (N1, N2, N3, N4); // processamento MA = (N1 + N2 + N3 + N4) / 4; // saída de dados escreva (MA); se (MA >= 7) então escreva ( Aluno Aprovado! ); fimse; b) Seleção Composta (Se...então...senão) Nesta estrutura uma única condição (expressão lógica) é avaliada e dependendo do resultado, um comando ou um conjunto de comandos serão executados se a avaliação for verdadeira ou não serão executados se a avaliação for falsa. Sintaxe Geral: se <condição> então // início do bloco verdade comando 1; comando n; // fim do bloco verdade senão // início do bloco falsidade comando 1; comando n; // fim do bloco falsidade fimse; Quando a <condição> for verdadeira o bloco verdade é executado Quando a <condição> for falsa o bloco falsidade é Executado 49

Lógica e Programação de Computadores Exemplo: Construir um algoritmo que obtenha 4 notas, calcule er mostre sua média e, se a média>=7, emitir a mensagem Aluno Aprovado, caso contrário escreva a mensagem Aluno Reprovado! início fim. // declaração de variáveis real: N1, N2, N3, N4, // notas bimestrais MA; // média anual leia (N1, N2, N3, N4); MA = (N1 + N2 + N3 + N4) / 4; escreva (MA); se (MA >= 7) então escreva ( Aluno Aprovado! ); escreva ( Parabéns! ); senão escreva ( Aluno Reprovado! ); escreva ( Estude mais! ); fimse; c) Seleção Encadeada ou Aninhada Esta estrutura apresenta um grande conjunto de possibilidades ou combinações formando uma seleção encadeada ou aninhada. Ocorre quando uma seleção tem como ação, uma outra seleção. Exemplo: Construa um algoritmo que leia os três lados de um triângulo e determine se o triângulo é equilátero (3 lados iguais), isóceles (2 lados iguais) ou escaleno (3 lados diferentes). 50 início inteiro: A, B, C; // tamanho dos lados leia (A, B, C); se (A<B+C) e (B<A+C) e (C<A+B) então se (A=B) e (B=C) então escreva ( Triangulo Equilátero ); senão se (A=B) ou (B=C) ou (A=C) então escreva ( Triângulo Isósceles ); senão escreva ( Triangulo Escaleno );

Estrutura de Controle fim. senão fimse; fimse; fimse; escreva ( Estes valores não formam um triângulo ); d) Seleção de Múltipla Escolha Esta estrutura é uma generalização da construção SE, onde somente uma condição é avaliada e dois caminhos podem ser seguidos. Nesta estrutura de Seleção de Múltipla Escolha pode haver uma ou mais condições a serem testadas e um comando diferente associado a cada uma dessas. Sintaxe Geral: escolha X caso V1: C1; caso V2: C2; caso V3: C3; caso V4: C4; fimescolha; Exemplo: Construa um algoritmo que leia o preço e a origem de um produto e na sequência, mostre o preço juntamente com a especificação da região conforme a origem. A origem está definida como segue. 1 - Produto do Sul 2 - Produto do Norte 3 - Produto do Leste 4 - Produto do Oeste 7 ou 8 ou 9 - Produto do Sudeste de 10 à 20 - Produto do Centro-oeste 5 ou 6 ou de 25 à 50 - Produto do Nordeste Caso a origem não esteja contemplada nas citadas acima, o produto é importado. 51

Lógica e Programação de Computadores início fim. real: Preço; inteiro: Origem; leia (Preço, Origem); escolha Origem caso 1: escreva (Preço, produto do Sul ); caso 2: escreva (Preço, produto do Norte ); caso 3: escreva (Preço, produto do Leste ); caso 4: escreva (Preço, produto do Oeste ); caso 7, 8, 9: escreva (Preço, produto do Sudeste ); caso 10..20: escreva (Preço, produto do Centro-Oeste ); caso 5, 6, 25..50: escreva (Preço, produto do Nordeste ); caso contrário: escreva (Preço, produto importado ); fimescolha; 4.3 Estrutura de Controle de Repetição A estrutura de Controle de Repetição é utilizada quando desejamos que um mesmo conjunto de instruções ou comandos sejam executados mais de uma vez. As estruturas de repetição são também chamadas de Laços ou Loops. Quanto ao critério de parada, os laços podem utilizar: Repetição com Teste no Início, Repetição com Teste no Final ou Repetição com Variável de Controle. Fig.25: Ilustração de Estrutura de Controle de Repetição 52

Estrutura de Controle a) Repetição com Teste no Início (enquanto...faça) Verifica antes de cada execução, se é permitido executar o trecho do algoritmo. Trata-se de um laço que se mantém repetindo enquanto uma dada condição permanecer verdadeira. Sintaxe Geral: enquanto <condição> faça comando 1; comando 2;... comando n; fimenquanto; A elaboração de algoritmos com estas estruturas torna-se necessário o uso de dois tipos de variáveis: as variáveis contadoras e as acumuladoras. Uma variável contadora é uma variável que recebe um valor inicial antes do início de uma estrutura de repetição e é incrementada no interior da estrutura de um valor constante, geralmente 1 (um), conforme o exemplo a seguir: Incremento Significa aumentar o que já existe em uma variável. Normalmente o incremento é de 1. Ex: x=x+1 início fim. inteiro: CON; CON = 0; //Contadora => inicialização com valor 0 (zero) enquanto CON < 3 faça CON = CON + 1; //Contadora é incrementada da constante 1 (um) fimenquanto; 53

Lógica e Programação de Computadores Exemplo: Calcular a média aritmética para 50 alunos sendo que são fornecidos suas 4 notas. Espera-se, para cada aluno, o cálculo e resultado da sua média e a mensagem Aluno aprovado, Parabéns! Quando a média for >=7 ou Aluno reprovado, estude mais! quando contrário. Utilize o enquanto faça. início fim. // declaração de variáveis real: N1, N2, N3, N4, // notas bimestrais MA; // média anual inteiro: CON; // contador CON = 0; // inicialização do contador enquanto (CON < 50) faça // teste da condição de parada leia (N1, N2, N3, N4); MA = (N1 + N2 + N3 + N4) / 4; escreva (MA); se (MA >= 7) então escreva ( Aluno Aprovado. Parabéns! ); senão escreva ( Aluno Reprovado. Estude mais! ); fimse; COM = CON + 1; // incremento do contador fimenquanto; Uma variável acumuladora é uma variável que recebe um valor inicial, geralmente 0 (zero) antes do início de uma estrutura de repetição, e é incrementada no interior da estrutura de um valor variável, geralmente a variável usada na estrutura de controle, conforme o exemplo abaixo: início fim. inteiro: CON, X, ACM; CON = 0; ACM = 0; //ACM é o acumulador enquanto CON < 3 faça CON = CON + 1; leia (X); ACM = ACM + X; fimenquanto; 54

Estrutura de Controle Exemplo: Obter a média aritmética para 50 alunos, sendo que é lido a média da cada aluno. Utilize a estrutura de repetição enquanto-faça. início fim. // declaração de variáveis real: MA, // média anual de dado aluno ACM, // Acumulador MAT; // Média Anual da Turma inteiro: CON; // contador CON = 0; // inicialização do contador ACM = 0; // inicialização do acumulador enquanto (CON < 50) faça // teste da condição de parada leia (MA); ACM = ACM + MA; // soma em ACM os valores lidos em MA CON = CON + 1; // incremento do contador fimenquanto; MAT = ACM / 50; // calculo da média anual da turma escreva ( média anual da turma =, MAT); b) Repetição com Teste no Final (Repita...até) Esta estrutura verifica depois de cada execução, se é permitido continuar executando o trecho do algoritmo. Trata-se de um laço que se mantém repetindo até que uma dada condição se torne verdadeira. Sintaxe Geral: repita comando 1; comando 2;... comando n; até <condição>; 55

Lógica e Programação de Computadores Exemplo: Obter a média aritmética para 50 alunos, sendo que é lido a média da cada aluno. Utilize a estrutura de repetição com teste no final (repita...até) início // declaração de variáveis real: MA, // média anual de dado aluno ACM, // Acumulador MAT; // Média Anual da Turma inteiro: CON; // contador CON = 0; // inicialização do contador ACM = 0; // inicialização do acumulador repita leia (MA); ACM = ACM + MA; // soma em ACM os valores lidos em MA CON = CON + 1; // incremento do contador até (CON >= 50); // teste da condição de parada MAT = ACM / 50; // calculo da média anual da turma escreva ( média anual da turma =, MAT); fim. c) Repetição com Variável de Controle (para...faça) Decremento É o inverso do Incremento, ou seja, reduz-se o valor existente. Ex: x=x-1 É o Laço simplificado para utilização em repetições de quantidade predeterminada. Incorpora internamente o funcionamento de um contador de repetições (incremento/decremento) Sintaxe Geral: para V de vi até vf passo p faça comando 1; comando 2;... comando n; fimpara; 56

Estrutura de Controle Exemplo: Obter a média aritmética para 50 alunos, sendo que é lido a média da cada aluno. Utilize a estrutura de repetição para-faça. início fim. // declaração de variáveis real: MA, // média anual de dado aluno ACM, // Acumulador MAT; // Média Anual da Turma inteiro: V; // contador ACM = 0; // inicialização do acumulador para V de 1 até 50 passo 1 faça leia (MA); ACM = ACM + MA; // soma em ACM os valores lidos em MA fimpara; MAT = ACM / 50; // calculo da média anual da turma escreva ( média anual da turma =, MAT); RESUMO Você acabou de conhecer a função da Estrutura de Controle e como se cria um controle de fluxo de informações e tomadas de decisões dentro da execução de tarefas. ATIVIDADES DE APRENDIZAGEM 1) Elabore um algoritmo que gere e escreva os números ímpares inteiros entre 100 e 200. 2) Elabore um algoritmo que dada a idade de um nadador classifique- -o em uma das seguintes categorias: Infantil A = 5 a 7 anos Infantil B = 8 a 11 anos Juvenil A = 12 a 13 anos Juvenil A = 14 a 17 anos Adultos = Maiores de 18 anos 57