Programação Estruturada

Propaganda
Carlos J E de Campos
LÓGICA
Programação Estruturada
Algoritmos, Lógicas de Conceitos Lógicos
Pseudocódigo, Fluxograma, Macro fluxo e DHF
Exemplos e Pensamentos
Desenvolvimento COBOL Mainframe
Guia de Referência
Terceira edição
Revisada
São Paulo
2013
 Carlos J E de campos, 2013
Capa: Alexandra Hardt Carlini
Diagramação: Carlos J E de Campos
Revisão: Neusa Pallione
É proibida a reprodução total ou parcial desta obra, de qualquer forma ou por qualquer meio
sem a autorização prévia e por escrito do autor. A violação dos Direitos Autorais (Lei n.º
9610/98) é crime estabelecido pelo artigo 184 do Código Penal.
2013
Todos os direitos desta obra pertencem a
Carlos J E de Campos
www.carloscamposinfo.com
LÓGICA
Agradecimentos
Agradeço a Deus por ter-me colocado na trilha do conhecimento.
Agradeço à minha filhota, Vanessa Soares de Campos, por ser a minha fonte de esperança e
por mostrar compreensão e paciência em muitos momentos da nossa vida.
Agradeço, também, à Ana Maria Alves Justino, pelo apoio e incentivo para a criação desta
obra.
Agradeço aos meus pais Alice de Assunção Esteves Costa e José Manuel Lopes Moreira de
Campos, por terem-me dado a vida, educação, formação moral e muito apoio.
Agradeço ao amigo Roberto Azem, que sempre esteve por perto, nos momentos de estudo e
naqueles em que precisava de ouvidos e conselhos.
Agradeço ao companheiro Benedito Aparecido Alves, pelo apoio que tem me dado nesta
segunda fase dos meus livros, acompanhando-me no dia a dia do trabalho, ouvindo-me e
apoiando-me com o seu conhecimento e sabedoria. Benê, como é conhecido, tem sido um
grande conselheiro.
Reflexão
“Para adquirir conhecimento é preciso estudar, para adquirir sabedoria é preciso observar.”
Autor: William Arthur Ward
www.carlos-campos.net
Página 3
Não estamos aqui para pagar nem
sobreviver, mas sim, para vencer,
adquirindo saber.
&
Usemos o conhecimento com ética e moral.
LÓGICA
Introdução
O aprendizado da Lógica é essencial para formação de um bom programador, sendo a base
para o aprendizado de todas as linguagens de programação, porque a lógica de programação
é a técnica utilizada na elaboração de algoritmos, com o objetivo de automatizar tarefas. A
partir dos algoritmos, dos conceitos das lógicas e dos tipos de lógicas de programação
apresentados aqui, a construção de programas passará a ser uma tarefa mais fácil. Os
programas desenvolvidos serão mais eficientes, passando a consumir o menor tempo na sua
execução. Outro beneficio é a redução do tempo necessário para a sua alteração e teste. A
aplicação do conhecimento da lógica de programação estruturada, na criação de algoritmos,
é importante, porque o computador precisa deles para executar as sequências de instruções
(passos lógicos), para realizar a tarefa para o qual foi criado; independentemente da
linguagem de programação.
O objetivo deste livro é oferecer uma base teórica e prática, suficientemente boa, para que o
leitor domine a criação de algoritmos e a técnica da lógica de programação estruturada,
preparando-o para o aprendizado de uma linguagem de programação. Por isso, é
apresentado o passo a passo da criação de algoritmos até à elaboração dos principais tipos
de lógica que vão ser necessários para a criação de soluções mais eficientes.
Os conceitos do método estruturado e as lógicas são apresentados de forma a facilitar a
compreensão, sendo acompanhados por figuras, a fim de ilustrar e aumentar a clareza das
informações.
Com a finalidade de reforçar e consolidar o aprendizado, foram elaborados exemplos com
cenários perfeitos para ajudar a compreender a criação e aplicação das lógicas, além de
questionários para possibilitar a retenção das informações recebidas, que são fornecidos no
site www.carloscamposinfo.com. Possuem, também, os pensamentos do autor como forma
de mostrar a aplicabilidade dos conceitos de forma isenta.
É recomendado para quem deseja possuir sólidos conhecimentos na arte de criar programas
com eficiência, a partir do desenvolvimento de uma forma de raciocínio que, com certeza,
será muito útil e benéfico para uma brilhante carreira, qualquer que seja a área: mainframe
ou internet (WEB), com qualquer linguagem de programação: COBOL, JAVA, PHP, entre
tantas outras.
Reflexão
“E conhecereis a verdade e a verdade vos libertará.”
João 8:32
www.carlos-campos.net
Página 5
Guia de Referência
Este livro busca ser uma obra didática e um Guia de Referência para ajudar o aprendizado e
para ser consultado no dia a dia de todo profissional. Seu conteúdo está organizado de forma
a facilitar a busca das informações.
Aderência à Certificação
Esta obra está aderente ao programa de certificação para desenvolvedor COBOL Mainframe,
CMCPDS (Certified Mainframe COBOL Program Development Specialist) do Instituto ICPDUG
(www.icpdug.org.br).
Forma de Estudo
O conteúdo do livro está organizado de forma a orientá-lo a realizar o estudo de
forma sequencial e continua de todo o conteúdo, ou dividido pelos módulos básico
e avançado.
Sugestão de Curso
Para maior aproveitamento do aprendizado, faça o curso Ead através de vídeo
aulas. Para a pessoa que adquire o livro e deseja fazer o curso é oferecido um valor
muito especial. O curso pode ser presencial, à distância ou na modalidade Ead
através de video aulas.
Contato
Para mais informações sobre esta e outras obras acesse o site carlos-campos.net ou entre em
contato através dos e-mail: [email protected].
Nota: Muita dedicação, empenho e grande cuidado foram aplicados na elaboração desta
obra. No entanto, podem ocorrer erros de digitação, impressão ou dúvida conceitual. Em
qualquer das hipóteses, peço a comunicação para que esta obra esteja, sempre, melhorando.
Reflexão
“Muitos homens iniciaram uma nova era na sua vida a partir da leitura de um livro”.
Autor: Henry Thoreau
LÓGICA
Resenha
Paulo César de Lira Banar
Ao ser convidado para ajudar na revisão desta obra, surpreendi-me positivamente ao
constatar como o autor se preocupou em desenvolver um curso que conseguisse transmitir,
de forma gradativa, os conceitos necessários para o entendimento e aplicação prática, tanto
da “lógica” de programação como na utilização da linguagem COBOL, necessária para a
construção de programas utilizados no desenvolvimento de sistemas de TI, em ambiente
mainframe. Para os estudantes ou profissionais que estão iniciando no aprendizado da
utilização da linguagem COBOL, cabe ressaltar que, apesar de estarmos evoluindo
constantemente em novas tecnologias, envolvendo principalmente os softwares
relacionados a Web, para o desenvolvimento de sistemas que necessitam controlar grandes
quantidades de informações, sigilosas ou não, como no caso dos grandes computadores
comerciais (Alta plataforma) utilizados, principalmente, por bancos e grandes corporações, a
linguagem COBOL é amplamente utilizada, uma vez que ainda não surgiu uma linguagem que
ofereça, dentre outras vantagens, o controle de segurança de acesso e/ou atualização de
informações que o COBOL oferece, quando utilizado em conjunto com softwares
desenvolvidos, especificamente para este fim. Desta forma, o curso apresentado, a seguir,
oferecerá uma excelente oportunidade para as pessoas que estão procurando se
desenvolver, através do aprendizado de uma profissão ainda carente de bons profissionais.
Paulo César de Lira Banar possui mais de 24 anos de experiência em sistemas da informação
e estudou na Faculdade Oswaldo Cruz, de São Paulo. Atuando principalmente, em empresas
do ramo bancário como funcionário e, posteriormente, como consultor, atuou, também, em
empresas do ramo aéreo e de seguros, participando no desenvolvimento de sistemas para o
ambiente mainframe e híbrido (mainframe/web), tais como: Banco Itaú, Transbrasil, AGF
Seguros, Banco BCN, Banco Bradesco, Unibanco e Banco ABN.
www.carlos-campos.net
Página 7
José Aparecido Vital
O autor, ao editar esta obra, surpreendeu-me por ter conseguido colocar os conhecimentos
de lógica numa sequência que ajuda, em muito, o entendimento do conteúdo apresentado.
Isto porque é muito comum a oferta de livros e cursos onde os alunos têm grandes
dificuldades para elaborar lógicas que serão necessárias na construção de programas de
computador. Para superar esta deficiência, a obra foi elaborada para apresentar a
construção do raciocínio, passo a passo, e aumentando a complexidade, um após o outro,
preparando totalmente o leitor para trabalhar com a construção de lógicas de programação.
Neste sentido, o livro apresenta, na sua parte final, a construção de tipos de lógicas de
programação que, sem dúvida alguma, representam a base para a criação da maior parte das
lógicas que serão necessárias no mundo de trabalho das grandes empresas. Outro grande
feito desta obra é a criação dos tipos de lógicas, descritas na linguagem chamada de
pseudocódigo e na representação padronizada de símbolos chamada de diagrama de blocos
ou fluxograma, o que desenvolve o raciocínio de cada um. Estas lógicas serão utilizadas, mais
adiante, no livro e curso de COBOL para a construção de programas, fechando o ciclo de
aprendizado na criação de programas. Assim, entendo que o livro e o curso apresentados,
fornecem uma excelente oportunidade para todo aquele que está procurando aprender e se
desenvolver como programador de computador, uma profissão ainda carente de bons
profissionais e, cada vez mais, necessita de mão de obra especializada.
José Aparecido Vital possui 25 anos de experiência em Sistemas da Informação. Estudou na
Faculdade ESAN – Escola Superior de Administração de Negócios de São Paulo, onde,
posteriormente, concluiu a Pós em Recursos Humanos, totalmente voltado para
Gerenciamento e Liderança. Atuando em empresas do ramo bancário, seguros, previdência
privada, consórcio, cartões de crédito, comércio, químico e farmacêutico, onde participou no
desenvolvimento de sistemas para o ambiente mainframe, RISC, e híbrido (mainframe/web),
tais como: Bradesco, Itaú, Unibanco, Porto Real, Baneb, Cacique, BCN, Safra, Sudameris e
Real, Marítima, Brasilprev, Martins, Pernanbucanas, Grupo Matarazzo, Alba Química, Asea
Brow Boveri e Produtos ROCHE. Estudante e praticante de Programação Neurolinguística,
participa e coordena grupos de estudos. Realizou os treinamentos de Desenvolvimento e
Liderança, Águia Real (fire walking),Negociação e Vendas, Introdução à PNL e Coaching,
Practitioner e Máster Practitioner, todos pelo INEXH – Instituto Nacional de Excelência
Humana. Também realizou treinamentos Destiny Quest Ciclos Azul e Vermelho pela Matrix
University.
LÓGICA
Luis Otavio Roveratti
Esta obra surpreendeu-me pelo fato de constatar a preocupação do autor no
desenvolvimento de um livro e curso que consigam transmitir, de forma sequencial e
gradativa, os conceitos necessários para construir algoritmos, e pela aplicação prática na
criação da “lógica de programação”, com foco na utilização da linguagem de programação
COBOL para o ambiente mainframe. É surpreendente a forma como o autor apresenta as
lógicas e a importância que dá ao descrever os algoritmos na linguagem pseudocódigo, e na
forma de fluxogramas, dois métodos que desenvolvem o raciocínio lógico. O livro apresenta
uma excelente oportunidade para que o leitor possa tornar-se especialista, na arte de criar
programas de computadores, uma área muito carente de profissionais especializados.
Luis Otavio Roveratti possui mais de 24 anos de experiência em sistemas da informação.
Atuando, principalmente, em empresas do ramo bancário e como instrutor, há mais de dez
anos, nos cursos de Lógica de programação e COBOL. Atuou, também, em empresas do ramo
metalúrgico, participando, tanto no desenvolvimento de sistemas para o ambiente
mainframe (alta plataforma) como híbrido (mainframe / web (baixa plataforma)).
www.carlos-campos.net
Página 9
Benedito Aparecido Alves
Pude comparar esta obra com outros da mesma área, e observei a maneira como está
organizado o ensino da lógica. Gostei muito da forma como colocou, passo a passo, o
desenvolvimento do raciocínio para elaborar os algoritmos e de como estão elaboradas as
dezenas de exercícios. Uma inovação que o autor usa é a identificação de vários conceitos,
utilizados na criação das lógicas dos programas, de forma, isolada que ele chamou de "tipos
de lógicas". O conteúdo está organizado, de forma a direcionar o leitor, desde os princípios
básicos até os conceitos essenciais para desenvolver a maioria dos programas. Tive o
privilégio de assistir ao treinamento de lógica de programação, e vi que o conteúdo e a
metodologia levam o aluno a possuir a completa capacitação no desenvolvimento das lógicas
de programação. Entendi que a preocupação do autor é o de fornecer um material didático e
um treinamento com uma metodologia que leva a uma boa formação das bases para ser um
bom programador.
Benedito Aparecido Alves tem mais de 25 anos de experiência, no ambiente de produção
Mainframe, atuando no setor financeiro, tais com: Bradesco, Unibanco, Caixa Federal,
Boston e IBM. Atualmente, trabalha na Sonda IT como Suporte a Produção (Mainframe).
LÓGICA
Ademir Nelson Marinho
Grande parte dos iniciantes em programação se preocupa em aprender a desenvolver uma
linguagem de programação, no entanto, na fase inicial de aprendizado, o mais importante é
conhecer a lógica da programação, a qual norteia todo o desenvolvimento do raciocínio
lógico por parte do programador. Não existem “fórmulas” em informática, o que existe é o
aperfeiçoamento organizado de nossa forma de pensar e raciocinar sobre um problema,
podendo extrair do mesmo uma solução eficiente e eficaz, sob um determinado ângulo de
visão.
O livro de LÓGICA, escrito pelo Dr. Carlos Joaquim E. de Campos, é um livro didático, visando
capacitar o aluno a desenvolver o raciocínio lógico, apresenta a parte teórica sempre
associada à parte prática. O programador iniciante que coloca o carro na frente dos bois, não
vai atingir seu objetivo e consequentemente vem a desanimar de ser um programador, e os
programadores experientes ouvem a célebre frase, “programação é pra louco”, e eu digo
dizendo que programação não é pra quem quer, é preciso gostar e muito, quando se gosta
de algo a dedicação chega ao extremo.
Ao programador iniciante que fizer uso desta obra, recomendo que leia com atenção o
prefácio do livro onde o Dr. Carlos faz uma abordagem simples, clara e direta sobre lógica, a
mente do leitor se abre como um leque e o caro leitor pode então vislumbrar um horizonte e
chegar à conclusão de que lógica é a simplicidade colocada em ordem.
Ademir Nelson Marinho iniciou a carreira profissional em TI em 1974 em uma indústria
multinacional têxtil Alemã, onde, em seguida, foi para a Alemanha fazer curso de Assembler,
em 1982 fez o curso de COBOL na IBM, em 1985 passou no concurso para o Banco de
Desenvolvimento do Paraná (BADEP), para programador Natural/ADABAS. Em 1988 terminou
a faculdade de Análise de Sistema pela faculdade ESEEI em Curitiba/PR e, em 1996 fez o
curso de Solucion Povider Microsoftware NT 4.0, onde acumulou o cargo de gerente de
Administração de Rede até a presente data. Em 2005 fez especialização em Engenharia de
software. De 1996 até 2006 foi professor na área de TI nas disciplinas: Linguagem técnica de
programação (Algoritmo), Técnica de projeto, Lógica de programação, Engenharia de Sistema
e Administração de Banco de Dados.
www.carlos-campos.net
Página 11
Página deixada em branco
LÓGICA
Formação de especialista COBOL
A
formação
de
um
desenvolvedor especialista em
COBOL Mainframe envolve
diversas
áreas
do
conhecimento,
necessárias
para a atuação que o
profissional precisa ter no
desempenho da sua atuação.
São seis módulos específicos
de conhecimento que se
completam: Lógica, COBOL,
DB2, CICS, JCL e TSO.
A formação completa segue
uma sequência, de acordo com um planejamento, para a integração de todos os módulos e,
com isso, potencializar a sinergia vinda de cada área de conhecimento. Por exemplo,
primeiro se desenvolve o racíocino e se aprende a construir algoritmos e lógicas de
programação; depois, se aprende a estrutura de linguagem de programação com os seus
comandos e constrói-se programa com base nas lógicas de programação aprendidas. A
seguir, aprende-se o banco de dados onde estarão armazenados os dados e, finalmente,
aprende-se a estrutura do ambiente online do Mainframe, a forma de programação
pseudoconversacional e, o JCL, linguagem de administra a execução de programas batch.
No módulo de LÓGICA, são abordados como se constrói algoritmos e lógicas de
programação.
No módulo de COBOL, são vistos toda a teoria e estrutura da linguagem de programação e
todos os comandos principais e básicos para desenvolver a grande maioria dos programas.
No módulo de DB2, são abordados a teoria e estrutura básica de um banco de dados e,
todos os comandos principais e básicos para desenvolver programas que utilizam o banco de
dados DB2 em programas COBOL.
No módulo de CICS, são vistos toda a teoria e estrutura do ambiente, a forma de
programação pseudoconversacional e, todos os comandos principais e básicos para
desenvolver a grande maioria dos programas online.
No módulo de JCL, são vistos toda a teoria e estrutura da linguagem de programação e todos
os comandos principais e básicos para desenvolver a grande maioria das soluções necessárias
para a execução dos programas batch.
www.carlos-campos.net
Página 13
Metodologia dos cursos
O
assunto
novo
é
apresentado
ao
aluno,
Apresentar
através da apresentação de
Conceito
SLIDES animados e coloridos
e tiradas as dúvidas sobre o
Tirar
Rever
tópico. Para praticar o
dúvidas
conceitos
conhecimento novo, o aluno
é solicitado a realizar o
exercício, no caso: criar
algoritmo ou programa.
Consolidar
Praticar
Após o tempo para criar a
Exercícios
exercícios
primeira
solução,
é
apresentado; via SLIDES
Apresentar
animados e coloridos, a
Solução
solução do exercício, tirando
todas as dúvidas possíveis.
Para consolidar e poder tirar novas dúvidas do tópico do conhecimento, são solicitados, em
média de dois a quatro exercícios na aula. A solução dos exercícios propostos é apresentada,
via SLIDES animados e coloridos. E para tentar consagrar o conhecimento, é solicitado, em
média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para tentar
tirar possíveis dúvidas remanescentes, são reservados os primeiros minutos de cada aula,
para tirar dúvidas.
Objetivo do método
Este método tem como objetivo alcançar os mais diversos indivíduos (visual, auditivo ou
cinestésico) para que tomem consciência dos conceitos. Todo o método está baseado na
indução do raciocínio, para que se crie a lógica necessária. Com isto, a energia necessária
gasta com o esforço para criar a lógica é gasta durante o treinamento. Depois de formado, o
individuo passa a raciocinar automaticamente com muito menor esforço. Por exemplo,
quando houver uma solicitação que seja necessária à criação de duas quebras, uma dentro
da outra, o raciocínio vem automaticamente e, à medida que vai elaborando a lógica, o seu
formato já vem no padrão aprendido.
Benefícios do método
Os benefícios do método aplicado podem se resumir no seguinte:





Ampliação das possibilidades de aprendizagem
Aumento do desempenho no raciocínio lógico
Acomodação crescente do conhecimento
Consolidação das estruturas lógicas
Facilidade de criar a solução lógica
LÓGICA
Certificação COBOL
O instituto ICPDUG (INTERNATIONAL COBOL PROGRAM DEVELOPER USERS GROUP), para
valorizar a área de desenvolvimento de sistema, fornece o exame de certificação para
desenvolvedor COBOL Mainframe, com o objetivo de identificar o especialista em
desenvolvimento de sistemas COBOL Mainframe.
Objetivo da certificação
A certificação vem agregar valor para a empresa, na medida em que vai avaliar o
conhecimento para a necessidade específica que o profissional precisa ter, possibilitando a
criação de um quadro de profissionais altamente qualificados e nivelados com o objetivo de
planejar, definir e criar sistemas e programas com eficiência e qualidade.
E para o profissional, vem para valorizar a sua capacitação, a sua formação, diferenciando-o
dos demais profissionais, fornecendo-lhe as credencias de um profissional especialista,
aderente com as necessidades de conhecimento específico.
Como é a certificação
O certificado de Especialista em COBOL Mainframe, CMCPDS - Certified Mainframe COBOL
Program Development Specialist (Especialista em Desenvolvimento de Programação COBOL
Mainframe). O especialista máster recebe o título, após ter obtido todas as certificações para
as seguintes especialidades:





LÕGICA - Programação estruturada
COBOL - Linguagem de programação
DB2 - Sistema Gerenciador de Banco de Dados Relacional
CICS - Sistema Gerenciador de ambiente ONLINE
JCL - Linguagem de controle Batch
Para mais informações,
[email protected].
acesse o
site
www.icpdug.org.br
ou
utilize o
Reflexão
“Em algum lugar, algo incrível está esperando para ser descoberto.”
Autor: Carl Seagan
www.carlos-campos.net
Página 15
e-mail
Página deixada em branco
LÓGICA
Sumário
Agradecimentos ...................................................................................3
Introdução ..........................................................................................5
Resenha .............................................................................................7
Formação de especialista COBOL ............................................................. 13
Metodologia dos cursos ..................................................................... 14
Objetivo do método ......................................................................... 14
Benefícios do método ....................................................................... 14
Certificação COBOL ............................................................................. 15
Objetivo da certificação .................................................................... 15
Como é a certificação ....................................................................... 15
Sumário ........................................................................................... 17
Computador ...................................................................................... 23
Funcionamento de um computador ....................................................... 24
Como é feita a memória do computador ................................................ 25
Fluxo dos dados em um computador ..................................................... 25
Programa ...................................................................................... 26
Sistema Operacional ......................................................................... 26
Lógica ............................................................................................. 27
Módulo: Básico................................................................................ 27
Raciocínio lógico ............................................................................. 28
Proposições(frases, expressões) ........................................................... 29
Operadores .................................................................................... 38
Questionário .................................................................................. 41
Estruturas de dados ............................................................................. 43
Módulo: Básico................................................................................ 43
Dado ............................................................................................ 44
Item de grupo................................................................................. 49
Tipos de dados................................................................................ 52
www.carlos-campos.net
Página 17
Estrutura de dados heterogênea .......................................................... 53
Estrutura de dados homogênea (tabela) ................................................. 54
Módulo: Avançado ........................................................................... 55
Organização da estrutura homogênea (tabela) ......................................... 55
Questionário .................................................................................. 61
Algoritmos ........................................................................................ 63
O que é algoritmo ............................................................................ 64
Verbo de ação como instrução ............................................................ 65
A importância dos algoritmos .............................................................. 65
Características dos algoritmos ............................................................. 66
Regras para construção do algoritmo .................................................... 66
Nome e hierarquia do algoritmo .......................................................... 66
Fases do algoritmo ........................................................................... 67
Orientações para construir algoritmo .................................................... 68
Formas de representação dos algoritmos ................................................ 69
Como construir algoritmos ................................................................. 72
Algoritmo: calcular a soma de dois números ............................................ 72
A lg o rit m o : CA LC UL A R - D O BR O ..................................................... 77
A lg o rit m o : CA LC UL A R -M E D IA ...................................................... 78
Ide nt ifi c a r as fa ses d o a lgo ri t mo ............................................... 79
Testes do Algoritmo ......................................................................... 80
Questionário .................................................................................. 83
Estruturas do algoritmo ........................................................................ 85
Estruturas básicas dos algoritmos ......................................................... 85
Módulo: Básico................................................................................ 86
Estrutura de SEQUÊNCIA .................................................................... 86
Estrutura de DECISÃO ....................................................................... 87
Estrutura de REPETIÇÃO .................................................................... 91
Exercícios ...................................................................................... 99
Módulo: Avançado .......................................................................... 100
Exercícios ..................................................................................... 102
Exercícios ..................................................................................... 103
LÓGICA
Exercícios ..................................................................................... 104
Ques ti on á rio ............................................................................. 105
Armazenamento de dados .................................................................... 107
Módulo: Básico............................................................................... 107
Necessidade de armazenamento de dados ............................................. 107
O que é arquivo ............................................................................. 108
Estruturas de armazenamento de dados ................................................ 110
Estrutura Sequencial ....................................................................... 111
Módulo: Avançado .......................................................................... 113
Estrutura Relativa e Indexada ............................................................ 113
Tipos de acesso .............................................................................. 117
Métodos de acesso .......................................................................... 118
Tipos de acesso por tipo de arquivo ..................................................... 121
Questionário ................................................................................. 123
Manusear arquivos ............................................................................. 125
Módulo: Básico............................................................................... 125
Abertura de arquivo ........................................................................ 126
Fechamento de arquivo .................................................................... 126
Leitura de arquivo .......................................................................... 126
Gravação de arquivo ....................................................................... 126
Ponteiro do arquivo......................................................................... 127
Movimentação de registro ................................................................. 127
Como codificar ações no arquivo ......................................................... 127
Como utilizar o nome de arquivo no algoritmo ........................................ 127
Como utilizar o nome de campo no algoritmo ......................................... 128
Como ler registros de um arquivo no algoritmo ....................................... 128
Exemplo: contar registro do arquivo .................................................... 130
Exemplo: contar e exibir funcionário ................................................... 131
Questionário ................................................................................. 132
Metodologia de programação ................................................................ 133
Módulo: Básico............................................................................... 133
Necessidade de metodologia de programação ......................................... 134
www.carlos-campos.net
Página 19
Programação modular ...................................................................... 136
Programação estruturada.................................................................. 137
Fases básicas de um programa ........................................................... 138
Como criar módulos em um programa .................................................. 139
Raciocínio TOP-DOWN ...................................................................... 141
Modelos de estruturação .................................................................. 141
Exemplo com módulos: contar registros do arquivo .................................. 145
Teste do p r og r a ma .................................................................... 147
Questionário ................................................................................. 150
Conceitos usados em lógicas de programação ............................................ 151
Conceito – FIM-DE-ARQUIVO ............................................................... 152
Conceito – FLAG ............................................................................. 152
Conceito – HEADER-E-TRAILLER........................................................... 152
Conceito – CABEÇALHO-E-RODAPÉ ....................................................... 152
Conceito – CÓDIGO-DE-RETORNO......................................................... 152
Módulo: Básico............................................................................... 153
Controlar FIM-DE-ARQUIVO ................................................................ 153
Questionário ................................................................................. 158
Módulo: Avançado .......................................................................... 159
Controlar com FLAG ........................................................................ 159
Questionário ................................................................................. 169
Módulo: Avançado .......................................................................... 171
Controlar HEADER-E-TRAILLER ............................................................ 171
Questionário ................................................................................. 182
Módulo: Avançado .......................................................................... 183
Controlar CABEÇALHO-E-RODAPÉ ........................................................ 183
Questionário ................................................................................. 191
Módulo: Básico............................................................................... 193
Controlar CÓDIGO-DE-RETORNO .......................................................... 193
Questionário ................................................................................. 199
Lógicas de programação ...................................................................... 201
Tipos de lógica de programação ......................................................... 201
LÓGICA
Objetivos dos tipos de lógica de programação ........................................ 202
LER-E-FAZER ................................................................................. 207
Módulo: Básico............................................................................... 207
LER-E-TOTALIZAR ........................................................................... 213
Módulo: Básico............................................................................... 213
LER-E-SUMARIZAR ........................................................................... 219
Módulo: Básico............................................................................... 219
LER-E-SELECIONAR .......................................................................... 227
Módulo: Básico............................................................................... 227
Questionário ................................................................................. 232
LER-E-CONSISTIR ............................................................................ 233
Módulo: Básico............................................................................... 233
LER-E-QUEBRAR-UM-NIVEL ................................................................ 241
Módulo: Avançado .......................................................................... 241
LER-E-QUEBRAR-DOIS-NIVEIS .............................................................. 251
Módulo: Avançado .......................................................................... 251
BALANCE-LINE UM-PARA-UM .............................................................. 261
Módulo: Avançado .......................................................................... 261
BALANCE-LINE UM-PARA-MUITOS ......................................................... 275
Módulo: Avançado .......................................................................... 275
BALANCE-LINE MUITOS-PARA-MUITOS ................................................... 283
Módulo: Avançado .......................................................................... 283
QUEBRA
PÁGINA-RELATÓRIO .......................................................... 291
Módulo: Avançado .......................................................................... 291
QUEBRA PAGINAÇÃO-DE-TELA ............................................................ 301
Módulo: Avançado .......................................................................... 301
Bibliografia ...................................................................................... 315
Outras obras do autor ......................................................................... 317
Índice Geral ..................................................................................... 321
www.carlos-campos.net
Página 21
Página deixada em branco
LÓGICA
Computador
1
Este capítulo tem como objetivo apresentar, de forma básica, o conceito sobre o computador
e não esgota o assunto. Os programas existem, porque existem os computadores, que os
executam, e isso lhes dá vida.
Os programas são executados no computador, uma máquina que é composta de
componentes eletrônicos, entre outros. Mesmo com a tecnologia evoluindo constantemente
das válvulas aos circuitos integrados, os computadores mantêm as mesmas características,
desde os primeiros que foram criados na década de 1940 com a arquitetura proposta por
John Von Neumann que descreve o computador como uma máquina com quatro seções
principais que são interconectadas por fios o "barramento do computador", são elas:




A Unidade lógica e aritmética (ULA),
A Unidade de controle,
A memória, e
Os dispositivos de entrada e saída (E/S ou I/O).
www.carlos-campos.net
Página 23
Vejamos o que representa cada uma das partes que compõem o modelo de computador
apresentado:
Unidade Lógica e Aritmética (ULA): parte responsável pelas operações matemáticas e
avaliações lógicas.
Unidade de Controle (UC): área que exerce o controle sobre as demais partes do
computador, gerenciando e distribuindo as tarefas às outras unidades. Esta unidade é
responsável pela movimentação dos dados, entre as partes do computador e entre o
computador e os dispositivos a ele ligados.
Memória: área onde é guardado (armazenado) o algoritmo a ser executado e os dados a
serem utilizados pelo mesmo. Todos os dados fornecidos ao computador e o resultado de
suas operações ficam guardados na memória. A memória pode ser comparada a um armário
cheio de gavetas, onde cada dado a ser guardado vai para as gavetas e cada uma delas
recebe um nome único, por exemplo: a gaveta das meias, a das fotos, e assim por adiante.
Na informática, essas gavetas possuem o nome de variáveis (campos). É a partir do manuseio
das variáveis pelos programas de computador que são gerados os resultados desejados.
Dispositivo de entrada: é o meio pelo qual os dados são inseridos no algoritmo para que o
programa os processe. Um exemplo é o teclado por onde se informa ao computador o que
desejamos. É necessário fornecer um nome, responder a uma questão ou pressionar a tecla
<Entra> para representar uma ação.
Dispositivo de saída: é o meio pelo qual o computador apresenta os dados, resultante do
processamento do algoritmo. Pode ser uma impressora, um monitor (vídeo, tela, ecrã) ou um
dispositivo de armazenamento de dados (CD, DVD, HD, disco rígido), entre outros.
Funcionamento de um computador
Todos os computadores, independentemente do tamanho, são
conceitualmente semelhantes ao esquema da figura apresentada, onde são
executadas 4 (quatro) operações básicas. Elas são as seguintes:
Operações de entrada e saída: estas operações servem para introduzir dados na memória do
computador ou para exibi-las, através de qualquer dispositivo de saída, onde se pode tomar
contato com elas. Ler dados do teclado é uma operação de entrada e escrever dados na tela
(monitor, ecrã), é de saída.
Operações aritméticas: são utilizadas na realização de operações matemáticas (adição,
subtração, multiplicação, exponenciação e divisão).
Operações lógicas e relacionais: são utilizadas para efetuar comparações, como verdadeiro e
falso.
Movimentação de dados entre os vários componentes: transferência dos dados entre as
partes do computador. Por exemplo, instruções que são passadas pela unidade de controle
para a unidade lógica aritmética; para a realização das operações aritméticas e, depois, o
resultado transferido para a memória para ser guardada (armazenada).
LÓGICA
Como é feita a memória do computador
A memória é um dispositivo eletrônico, utilizado em um computador ou em qualquer
equipamento eletrônico, é uma sequência de células numeradas onde cada uma delas pode
possuir informação. A informação pode ser uma instrução ou um dado. A instrução,
conhecida como comando, é uma ação que diz ao computador o que fazer. O dado é
qualquer coisa que representa o mundo que desejamos representar, poder ser uma bola,
carro, um número, um nome que é utilizado pelas instruções. Qualquer célula pode conter
instrução ou dado em qualquer momento, mas sempre uma de cada vez. O tamanho de cada
célula e a quantidade que cabe numa memória dependem de cada uma das máquinas.
Fluxo dos dados em um computador
Os computadores possuem um método para tratamento dos dados entre os seus
componentes, onde recebem, processam e devolvem o resultado da execução do algoritmo
pelo programa.
Para ilustrar, vamos supor que desejamos resolver o seguinte problema:
Calcular a soma (adição) de dois números informados .
A partir da colocação dos problemas, podemos começar a montar um raciocínio, como por
exemplo:
a) Receber os números.
b) Calcular a soma dos números informados.
c) Apresentar o resultado.
Vejamos como é o fluxo dos dados entre as partes do computador, considerando as
operações básicas do computador apresentado.
a) Receber os números e movimentá-los para a memória.
b) 1 - Mover os números e a operação a ser realizada (soma) da memória para
a ULA;
2 - Realizar a operação de soma dos dois números;
3 – Devolver para a memória.
c) Mover o resultado da memória para o dispositivo de saída.
Pela observação do fluxo de dados do computador, podemos entender que a construção do
algoritmo é feita através da divisão do problema, em pequenos passos. Esses passos, que
compõem o algoritmo são denominados (chamados) de comandos (instruções) e passam
para as linguagens de programação.
O algoritmo pode ser elaborado da seguinte forma:
www.carlos-campos.net
Página 25
Ler X, Y
Resultado = X + Y
Exibir resultado.
Programa
Os programas de computadores nada mais são do que algoritmos escritos em uma
linguagem de computador (COBOL, Java, PHP, Pascal, C, Fortran, Visual Basic, entre outras) e
que são interpretados e executados por uma máquina (Hardware, computador). O
computador interpreta, de forma rigorosa, cada linha do algoritmo que existe no programa.
Pode-se dizer que os programas são grandes listas de instruções para o computador
executar. O Programa tem que ser "carregado" na memória principal do computador para
ser executado.
O bom desempenho de um computador está na capacidade de executar bilhões de
instruções por segundo que estão escritos em programas e no modo como esses programas
foram escritos. Desenvolva programas péssimos e veja o resultado decepcionante que é o
computador. O segredo cada vez mais importante está em escrever programas cada vez mais
eficientes, independente do seu tamanho, e isso só bons programadores é que fazem.
Sistema Operacional
Para que o computador funcione, é necessário que, no mínimo, um programa esteja sempre
em execução, desde o momento em que ele é ligado. Este programa que está o tempo todo
em execução é chamado de programa operacional, que compõe o chamado sistema
operacional (ou sistema operativo). O sistema operacional controla todo o computador,
fazendo-o parecer que “trabalha”. Ele determina quais programas vão executar, quando e
que recursos (como memória e E/S) ele poderá utilizar. Um sistema operacional muito
conhecido e utilizado pelos computadores pessoais é o Windows.
Reflexão
“Para adquirir conhecimento é preciso estudar; para adquirir sabedoria é preciso observar.”
Autor: William Arthur Ward
LÓGICA
Lógica
2
Módulo: Básico
Neste capítulo, será vista a diferença entre lógica e raciocínio lógico e qual a sua importância
na elaboração de algoritmos; Como materializar os pensamentos de forma organizada
através de frases e a utilização de operadores como forma de associar frases para obter
respostas. O raciocínio lógico e a lógica como arte de organizá-lo é o início do grande desafio
de elaborar algoritmos.
O desenvolvimento das sociedades humanas é uma consequência do desenvolvimento do
raciocínio lógico. E isto nada tem a ver com a matemática. É certo que a matemática é
guardiã da lógica, porque, está muito vinculada com o desenvolvimento de uma área do
conhecimento que engloba fazer contas, conceituando de maneira simplória.
Há muitos séculos, o homem começou a ver que o rio Nilo vazava periodicamente. Observou,
também, que a lua repetia-se em suas diversas formas alternando com o sol e, assim,
começou a deduzir e a relacionar os fatos. Vejamos: se o Nilo termina de vazar, num
determinado momento, e somente depois de determinadas luas é que ele volta a vazar,
então é neste período que devemos plantar o trigo. Está aí uma das mais antigas formas de
aplicar um raciocínio para criar uma lógica com um fim específico. E, assim, a civilização
humana cresceu e floresceu.
Pensando um pouco: será que a civilização humana floresce assim? E se tantas
civilizações cresceram e floresceram, por que não existem mais? Por que as
civilizações não sobreviveram? Por que o comportamento do ser humano muda,
conforme a quantidade de posses? Por que o comportamento humano muda, de
acordo com o poder que ele possui na sociedade? Por que você estuda? Para que você quer
dinheiro e mais dinheiro?
Antes de aceitar as coisas deste mundo, questione!
Reflexão
“Não julgueis segundo a aparência, e sim segundo a reta justiça.”
Autor: João 7:24
www.carlos-campos.net
Página 27
Raciocínio lógico
Raciocinar é pensar logicamente. O raciocínio está
O raciocínio pode estar
ligado ao processo de encadeamento dos
correto ou incorreto.
pensamentos para obter uma determinada conclusão.
O raciocínio pode estar correto ou incorreto e depende dos argumentos envolvidos nele.
O que é lógica
Raciocínio é o ato de pensar e lógica é a
Lógica é a técnica de encadear
forma de como é organizado (encadeado) o
pensamentos para atingir
raciocínio. A lógica estuda as formas ou
determinado objetivo.
estruturas do pensamento. Como existem
várias definições para o que é lógica vamos ver uma que diz:
“A lógica é uma ciência do raciocínio”, disse Irving Copi.
Sequência lógica
Uma resposta ou uma conclusão pode ser obtida a partir de um ou mais pensamentos, e
quantos
mais
pensamentos
forem
Sequência lógica são passos
necessários para obter a resposta, mais
executados
até que se atinja um
complexo se torna o raciocínio.
objetivo ou a solução de um
problema.
Quando se precisa pensar em várias
possibilidades, notamos que precisamos
encadear os nossos pensamentos, isto é, dar-lhes uma sequência lógica para obter-se a
resposta. As respostas sempre são o resultado de uma ou de várias questões formuladas
numa determinada sequência.
Sequência lógica são passos executados para se atingir um objetivo.
Instruções
Normalmente, nossos pensamentos estão associados a ações. “Vou esperar que chegue o
domingo para ir ao cinema”. Veja que a frase está mencionando as seguintes instruções:
Vou esperar até o domingo.
No domingo vou ao cinema.
Na linguagem comum, entende-se por instruções
Instrução é um conjunto de
um conjunto de regras ou normas que definem os
regras ou normas definidas
procedimentos necessários para realizar ou atingir
para atingir um objetivo.
um objetivo específico. Executar uma instrução
específica (passo, etapa) da lógica não garante a
realização do objetivo da execução. Para isso, é necessário executar um conjunto de
instruções e, estas instruções, devem estar em ordem sequencial lógica. Veja o exemplo de
uma instrução:
LÓGICA
Abrir a lata de sardinha.
Abrir a lata de sardinha representa uma instrução, isto é, um procedimento a ser executado
para atingir o objetivo específico. O que vai ser feito com a sardinha, após a lata aberta,
ainda é desconhecido.
Instruções são ações que determinam procedimentos necessários para realizar ou atingir um
objetivo. As instruções podem estar vinculadas a regras ou normas.
Proposições(frases, expressões)
Para comunicar uma ideia a terceiros, é preciso elaborar um conjunto de símbolos ou
palavras para expressarem um pensamento com sentido completo. Esse conjunto pode ser
uma frase, que chamaremos de proposição, por exemplo: quatro é maior que dois, mas
também pode ser uma expressão matemática. Exemplo:
4>2
 Lê-se: quatro é maior que dois.
Uma proposição pode ser expressa em mais de uma forma. Por exemplo:
Carlos é maior que a Ana.
Mas também podemos falar:
Ana é menor que o Carlos.
As duas frases, acima, expressam o mesmo pensamento, a conclusão é a mesma. Neste caso,
a conclusão é que Carlos é mais alto que a Ana.
Exemplos de proposições




O número cinco é maior que o número dois. Proposição verdadeira.
O número dois é menor que o número cinco. Proposição verdadeira.
O número quatro é maior que o número oito. Proposição falsa.
O número seis é diferente do número sete. Proposição verdadeira.
Princípios das p roposições
Independente da forma como é elaborada, a proposição segue os seguintes princípios:
 O princípio da identidade,
 O princípio da não contradição,
 O principio do terceiro excluído.
www.carlos-campos.net
Página 29
Princípio da identidade
O princípio da identidade diz que uma proposição verdadeira é verdadeira e uma proposição
falsa é falsa.
Por exemplo: sete é maior de seis. Esta é uma proposição verdadeira, pelo nosso
conhecimento matemático.
Princípio da não contradição
O princípio da não contradição diz que uma proposição não pode ser verdadeira e falsa ao
mesmo tempo, independentemente da sua forma de construção.
Por exemplo: sete é maior de seis. Esta é uma proposição verdadeira, então não pode ser
falsa.
Princípio do terceiro excluído
O princípio do terceiro excluído diz que uma proposição só pode ser verdadeira (V) ou falsa
(F). Não pode existir outro valor.
Por exemplo: sete é maior de seis. Esta proposição só pode ser analisada sob o ponto de ser
verdadeira ou, então, ela é uma proposição verdadeira.
Pensando um pouco: quando criar uma frase ou uma expressão, pense sempre
nestes princípios e o entendimento das lógicas e os seus resultados sempre serão
bem mais fáceis de serem identificados.
Reflexão
“Não te furtes de fazer o bem a quem de direito, estando na tua mão o poder de fazê-lo.”
Autor: Salomão. Sl 3: 27
LÓGICA
Formas de criar a proposição
Uma proposição é uma sentença declarativa elaborada na forma afirmativa ou negativa, na
qual podemos atribuir um dos valores: verdadeiro (V) ou falso (F). Uma proposição pode ser
criada na forma positiva e na forma negativa e, ainda assim, possuírem o mesmo resultado.
Cuidado para não confundir a forma de criar uma proposição com a negação da proposição.
Forma afirmativa
Na forma afirmativa, a frase está elaborada como o sentido direto.
Por exemplo: quatro é maior que dois. Outro exemplo, Brasília é a capital do Brasil. Mais um;
Lisboa é a capital de Portugal. Estas sentenças declarativas estão expressas na forma
afirmativa e possuem o valor verdadeiro.
Podem-se construir também sentenças na forma afirmativa, mas que tenham o valor falso.
Por exemplo: dois é maior que cinco.
Forma negativa
Na forma negativa, a frase está elaborada como o sentido indireto. Normalmente, se usa a
palavra “Não”. Esta é uma forma que torna difícil encontrar o verdadeiro valor da sentença.
Por exemplo: Brasil não é um país do continente Europeu. É uma sentença declarativa,
expressa de forma negativa com o valor verdadeiro.
Podem-se construir também sentenças na forma negativa, mas que tenham o valor falso. Por
exemplo: dois não é menor que quatro.
Cuidado ao criar proposição na forma negativa
Em muitos casos, uma única proposição não dá o resultado pretendido.
Por exemplo: dois não é maior que quatro. Esta proposição possui o valor verdadeiro, mas
seu resultado possui duas possibilidades: a de ser menor e a de ser igual. Neste caso, para
poder se obter o único resultado verdadeiro, seria elaborar a seguinte proposição: dois não é
maior que quatro e dois não é igual a quatro. Agora sim. Depois que juntadas as duas
proposições, é que podemos garantir que dois é realmente menor que quatro. A junção de
proposições será abordada mais adiante.
A questão aqui é o seu resultado. O resultado das expressões na forma positiva e na forma
negativa são os mesmos? Se não forem os mesmos, então o algoritmo está errado.
Pensando um pouco: quando criar uma frase ou uma expressão, faça sempre pela
forma afirmativa que é sempre mais fácil de ser elaborada e de ser entendida.
www.carlos-campos.net
Página 31
Não é uma proposição
Uma expressão só pode ser considerada uma proposição, quando se pode atribuir um dos
valores: verdadeiro ou falso. Se não for o caso, não pode ser considerada como proposição.
Por exemplo: 5 – X = 3. A expressão não pode ser declarada uma proposição porque não se
pode lhe atribuir um valor verdadeiro ou falso. Neste caso, é chamada de sentença aberta.
Quando se atribuir um valor para “X” aí, ela passa a ser uma proposição verdadeira ou falsa.
Pensando um pouco: na elaboração de algoritmos ou de lógicas de programação,
use somente proposições que vão assumir um dos valores: verdadeiro ou falso, de
acordo com os dados atribuídos. Se for diferente disto, algo vai dar errado.
Negação da proposição
As proposições podem ser elaboradas na forma positiva ou na forma negativa, e podem ser
negadas. Negar uma proposição quer dizer que se quer obter o seu sentido oposto.
Cuidado para não confundir a forma de criar uma proposição na forma negativa com a
negação da proposição.
Por exemplo: temos a seguinte proposição. Carlos é maior que André. Vamos, então, negar.
Fica assim: Carlos não é maior que André.
Negar uma proposição
Negar uma proposição significa desejar obter um resultado deferente daquele que se tem.
Por exemplo. Temos a seguinte proposição:
Haverá aula no horário previsto.
Negando a proposição:
Não haverá aula no horário previsto.
LÓGICA
Cuidados para negar uma proposição
Foi fácil negar uma proposição. Mas é que os exemplos eram simples. Vejamos algo um
pouco mais complexo.
O número cinco é maior que o número dois.
Depois de convertida para a negação fica:
O número cinco não é menor que o número dois.
Será que está correta a negação? Neste caso, claro que está. Mas, e o resultado? É o que se
deseja?
Quando elaboramos uma proposição na forma negativa podemos ter duas intenções:
 Desejar obter resultados diferentes, e isto significa negar algo.
 Desejar obter o mesmo resultado, mas através de uma expressão diferente.
Observar que na expressão “cinco não é menor que dois”, a conclusão é que cinco pode ser
maior ou igual a dois. Neste caso, a frase nos deixa duas possibilidades. É isso mesmo ou
desejamos obter a certeza de que cinco é maior?
Supondo que desejamos obter a certeza que cinco é maior, temos, então, que fazer outra
pergunta. Cinco não é igual a dois. Agora sim, podemos concluir, com certeza,
que cinco é maior que dois.
Combinação de proposições
As proposições podem ser combinadas para atingir um determinado resultado. A
combinação deve seguir uma forma organizada, seguindo determinadas regras, para que o
resultado possa ser alcançado. Na combinação, utilizam-se conectores, que são símbolos,
analisados, mais adiante, como operadores lógicos.
Quando as proposições forem combinadas, a sua execução deve ser da esquerda para a
direita e obedecer à precedência definida pela utilização dos parênteses.
Para facilitar, as proposições podem ser representadas, neste caso, pelas letras “a, b, c, p, q”
ou qualquer outra letra.
Tipos de combinações de proposições
As combinações podem ser dos tipos:
 Conjunções (e)
 Disjunções (ou)
 Condicionais (então)
 Bicondicionais (e somente se)
www.carlos-campos.net
Página 33
Conjunções (e)
A operação de conjunção (conhecido como operador lógico “e”) é representada
tecnicamente pelo símbolo “Λ” e está relacionada
Conjunções
à união de duas proposições.
Símbolo
Representação
Lê-se
Λ
aΛb
a “e” b
A execução das conjunções dá-se da esquerda
para a direita, a partir do resultado de cada
combinação executada.
O resultado das conjunções fica verdadeiro se, e
somente se, todas as proposições envolvidas forem
verdadeiras, senão a resposta será falsa.
Fica assim: se “A” e “B” forem verdadeiros, então o
resultado será verdadeiro.
Tabela da Verdade das Conjunções
a
V
V
F
F
Operador
e
e
e
e
b
V
F
V
F
Resultado
V
F
F
F
Legenda: (V) Verdadeiro; (F) Falso
Exemplo de conjunções
a = “ser do sexo feminino”.
b = “ter mais que 16 anos”.
Questão:
“ser do sexo feminino” e “ter mais que 16 anos”.
Fica assim:
a Λ b
Algoritmo:
Se “a” e “b” forem verdadeiros, então “pode passear com a Mônica”.
Reflexão
“Não julgueis se não quiserdes ser julgado.”
Autor: Abraham Lincoln
LÓGICA
Disjunções (ou)
A operação de disjunção (operador “ou”) é representada tecnicamente pelo símbolo “V” e
está relacionada à união de proposições.
A execução das disjunções dá-se da esquerda
para a direita, a partir do resultado de cada
proposição executada.
Disjunções
Símbolo
Representação
Lê-se
V
aVb
a “ou” b
O resultado das disjunções é verdadeiro quando,
pelo menos, uma proposição envolvida for
verdadeira; senão, será falso.
Fica assim: se “A” for verdadeira ou “B”, então o
resultado será verdadeiro.
Tabela da Verdade das Disjunções
a
V
V
F
Operador
ou
ou
ou
b
V
F
V
Resultado
V
V
V
F
ou
F
F
Exemplo de disjunções
a = “ser do sexo feminino”.
b = “ser do sexo masculino”.
Questão:
“ser do sexo feminino” ou “ser do sexo masculino”.
Fica assim:
a V b
Algoritmo:
Se “a” for verdadeira ou “b” for verdadeira, então “pode passear com a turma
da Mônica”.
Reflexão
“Não julgueis se não quiserdes ser julgado.”
Autor: Abraham Lincoln
www.carlos-campos.net
Página 35
Condicionais (então)
A operação lógica condicional (operador “se... então...”) é representada tecnicamente pelo
símbolo “” e está relacionada à tomada de
decisão.
Tabela da Verdade das Condicionais
A execução das conjunções dá-se da esquerda
para a direita, a partir do resultado de cada
proposição executada.
A operação lógica condicional é uma expressão
que condiciona a execução de uma ação ao
resultado de uma condição.
Fica assim: se “A” for verdadeira, então implica que
“B” será verdadeira.
a
V
V
F
F
Operador
Se, Então
Se, Então
Se, Então
Se, Então
b
V
F
V
F
Resultado
V
F
V
V
Condicionais
Representação
Lê-se
ab
“Se” a “então” b
Exemplo de condicionais
a = “ser estudiosa ”.
b = “passar de ano escolar”.
Questão:
Se for “estudiosa” então “ vai passar de ano escolar”.
Fica assim:
a => b
Algoritmo:
Se for “a” então fica “b”
Reflexão
“Não falarei mal de nenhum homem mas falarei tudo de bom que souber de cada pessoa.”
Autor: Benjamim Franklin
LÓGICA
Bicondicionais
A operação lógica condicional (operador “se e somente se”) é representada tecnicamente
pelo símbolo “” e está relacionada à união
Bicondicionais
de proposições. A execução das conjunções dáse da esquerda para a direita, a partir do Representação
Lê-se
resultado de cada proposição executada.
a <==> b
a “se e somente se”
O resultado da operação somente será
verdadeiro se as proposições forem verdadeiras ou
se ambas forem falsas.
Fica assim: somente se “A” e “B” forem verdadeiras
ou falsas é que a resposta será verdadeira.
Tabela da Verdade das
Bicondicionais
a
V
b
V
Resultado
V
V
F
F
F
V
F
F
F
V
Exemplo de bicondicionais
a = “passar de ano escolar”.
b = “ser estudiosa”.
Questão:
“passar de ano” se e somente se for “estudiosa”.
Fica assim:
a <==> b
Algoritmo:
Somente vai passar de ano, se e somente se, for estudiosa “b”.
Reflexão
“Há pessoas que transformam o SOL numa simples mancha amarela, mas há aquelas que
fazem de uma simples mancha amarela o próprio sol.”
Autor: Pablo Picasso
www.carlos-campos.net
Página 37
Operadores
Os operadores são meios pelos quais incrementamos, decrementamos, comparamos e
avaliamos dados dentro dos programas. Existem três tipos de operadores:
 Operadores Aritméticos
 Operadores Relacionais
 Operadores Lógicos
Operadores aritméticos
Operadores Aritméticos
Os operadores aritméticos servem para realizar
cálculos e operações matemáticas entre
números. Existem os seguintes operadores
numéricos:








Adição
Subtração
Multiplicação
Divisão
Exponenciação
Raiz quadrada
Resto da divisão
Quociente da divisão
Símbolo
Descrição
+
Adição
-
Subtração
*
Multiplicação
/
Divisão
**
Exponenciação
SQR
Raiz quadrada
MOD
Resto da divisão
DIV
Quociente da divisão
Exemplo de operadores aritméticos
Somar 2 com 4
Multiplicar 5 por 3
Dividendo
Resto


2+4
5X3
7
2
1
3
Divisor
Quociente
Vejamos
como
é
composta uma divisão e
quais são seus nomes.
LÓGICA
Operadores lógicos
Os operadores lógicos servem para combinar
expressões com o objetivo de obter um único
resultado, verdadeiro ou falso.
Operadores lógicos
Símbolo
Condição
Os operadores lógicos são conectores baseados
na teoria conhecida como Álgebra Booleana, do
matemático inglês George Boole.
AND
E
OR
OU
Esta teoria baseia-se na lógica binária onde
somente existem duas possibilidades:
NOT
NÃO (negação)
 Verdadeiro
 Falso
Na arquitetura de computadores os termos verdadeiro é representado por 1 (um) e falso é
representado por 0 (zero).
Os operadores lógicos são:
 AND
 OR
 NOT
Exemplo de operadores lógicos
A>B E B>C
N1 > 2 OU N1 < 9


A maior que B E B maior que C
N1 maior que 2 OU N1 menor que 9
Os conectores ligam duas ou mais expressões cujo resultado final da interpretação é obter o
resultado verdadeiro ou falso. Para identificar se o resultado é verdadeiro ou falso, utiliza-se
a tabela da verdade das conjunções.
Reflexão
“Se quer tirar mel, não espante a colmeia.”
Autor: desconhecido
www.carlos-campos.net
Página 39
Operadores relacionais
Os operadores relacionais servem para realizar comparações entre caracteres, variáveis e
expressões. Estes operadores sempre retornam
Operadores Relacionais
valores lógicos (verdadeiros ou falsos / true ou
Símbolo
Descrição
false).
É a partir da utilização de operadores relacionais
que se tomam decisões para realizar objetivos.
Existem os seguintes operadores relacionais:






Igual
Maior
Maior ou Igual
Menor
Menor ou Igual
Diferente
=
Igual
>
Maior
>=
Maior ou Igual (Não é
menor)
Menor
<
<=
<>
Menor ou Igual (Não é
maior)
Diferente
Exemplo de operadores relacionais
X=2
 X igual a 2
X>Y
 X maior que Y
Y >= (A * 3)
 Y maior ou igual ao resultado da expressão (A * 3)
(Y + 1) < (A * 3)  Resultado da expressão (Y + 1) menor que o
resultado da expressão (A * 3)
Os operadores lógicos permitem que mais de uma condição seja avaliada (testada) em uma
única expressão, ou seja, pode-se realizar mais de uma comparação (teste) ao mesmo
tempo.
Reflexão
“Nunca ande pelo caminho traçado, pois ele conduz somente até onde os outros foram.”
Autor: G.Bel
LÓGICA
Questionário
Lógica
1.
Podemos falar que lógica:
A.
B.
C.
D.
2.
A frase é regida por dois princípios. Quais são?
A.
B.
C.
D.
3.
É a ciência do raciocínio.
É a capacidade de pensar.
É a capacidade de elaborar equações matemáticas.
Nenhuma das opções.
Do certo ou errado.
Somente pode ser verdadeiro ou errado.
Somente pode ser verdadeiro.
Não-contradição e do terceiro excluído.
Podemos falar que raciocínio lógico:
A. É uma sequência de instruções matemáticas.
B. É o meio pelo qual o ser humano interage com o computador.
C. É uma sequência de pensamentos com o objetivo de obter uma conclusão que pode
estar certa ou errada.
D. Nenhuma das opções.
4.
O que é o princípio da “não-contradição”?
A. Não pode ser verdadeiro e falso ao mesmo tempo.
B. Somente pode estar no positivo ou na negação.
C. Quando for verdadeiro tem que estar no positivo, e quando for falso tem que estar
na negação.
D. Nenhuma das opções.
5.
O que quer dizer o princípio do “terceiro excluído”?
A.
B.
C.
D.
Somente pode ser verdadeiro ou falso.
Não pode ser verdadeiro e falso ao mesmo tempo.
Pode estar no positivo ou na negação.
Nenhuma das opções.
www.carlos-campos.net
Página 41
6.
Das expressões apresentadas, quais podem ser consideradas corretas?
A.
B.
C.
D.
7.
A partir da conjunção: "p e q", aponte qual opção é verdadeira.
A.
B.
C.
D.
8.
Se p for verdadeiro e q for falso, então resultado falso.
Se p for falso e q for verdadeiro, então resultado verdadeiro.
Se p for verdadeiro e q for verdadeiro, então resultado falso.
Nenhuma das opções.
A partir da proposição apresentada, indique a opção que apresenta a versão na
negativa. “A aula será no horário previsto.”.
A.
B.
C.
D.
9.
Se A > B e B > C Então C maior.
Se A > B e B > C Então A maior.
Se A > B e B > C Então B maior.
Nenhuma das opções.
Não há previsão de aula.
A aula será no horário previsto.
A aula não será no horário previsto.
Nenhuma das opções.
Aponte que opção abaixo pode ser considerada como combinação de proposição,
utilizando a disjunção.
A.
B.
C.
D.
p V q.
a Λ b Λ c.
p Λ q.
Todas as opções.
10. Aponte que opção abaixo pode ser considerada como combinação de proposição,
utilizando a condicional de forma errada.
A.
B.
C.
D.
Se A > B, então A é maior, senão B é menor.
Se A > B, então A é maior.
Se (A > B) e (B > C), então A é maior.
Nenhuma das opções.
11. Que opção utiliza a conjunção para combinar duas proposições?
A.
B.
C.
D.
p V q.
a Λ b.
a ou b.
Nenhuma das opções.
LÓGICA
3
Estruturas de dados
Módulo: Básico
Neste capítulo é abordado o dado como a menor unidade da informação, quais seus tipos e
como ele pode ser agrupado para se construir conjuntos de dados e todas as suas formas de
utilização pelos algoritmos e programas de aplicação.
Analisaremos o dado visto como estático e dinâmico, variáveis e itens de grupo, e como pode
ser a sua estrutura homogênea, vetores e tabelas, e heterogênea, registros, como utilizados
pelos arquivos.
Os algoritmos manipulam dados que estão soltos ou organizados. Os dados soltos são
aqueles que estão sozinhos, não pertencem a ninguém. Os dados organizados são dados que
estão dispostos de uma forma coerente, caracterizam uma forma de estrutura de dados. A
forma de organização e o método de acesso aos mesmos é que lhe conferem a singularidade.
Estrutura de dados é um modo particular de organização de dados, em um computador, de
modo que possam ser utilizados eficientemente, e são chamados de tipos de dados
compostos: homogêneos (vetores, matrizes, tabelas) e heterogêneos (registros).
Reflexão
“A mente que se abre a uma nova ideia jamais voltará ao seu tamanho normal.”
Autor: Einstein
www.carlos-campos.net
Página 43
Dado
Dado é a menor unidade da informação com significado. Por exemplo: bola, martelo.
O dado pode ser dividido, e este, por sua vez, pode ser subdividido para fornecer maior
detalhe na referência do dado. Por exemplo: data de aniversário, como um dado único; pode
ser dividido em dia do aniversário, mês do aniversário e ano do aniversário.
O dado pode ser identificado como um “dado elementar” ou um “item de grupo” e pode ser
considerado como dado interno ou dado externo.
Dentro de algoritmos ou programas, existem dados que podem ser alterados e outros que
não podem. Os que podem ser são denominados como dados dinâmicos e os que não
podem ser alterados são denominados como dados estáticos.
Já reparou que quando vai preencher uma ficha de cadastro existem palavras e frases, como
os títulos e os nomes dos capos que deverá preencher?
Por exemplo: na ficha de cadastro aparece a palavra “NOME” e, em baixo ou ao lado, um
espaço para que seja escrito o nome de quem está preenchendo a ficha. Para a ficha que
estamos preenchendo, o título é uma informação que nunca vai mudar. Já o nome é uma
informação que vai mudar, de acordo com a pessoa que está preenchendo. Neste caso, o
título é considerado com um dado estático e o nome um dado dinâmico.
Os dados são representados pelos caracteres. Caracteres são basicamente as letras
minúsculas, maiúsculas, algarismos, sinais de pontuação, etc. Em computação, caracteres são
representados por códigos binários.
Dado interno
Quando o programa é executado, os dados são inseridos na memória física do computador
(memória RAM) para poderem ser manuseados e, assim são considerados dados internos. Os
dados internos são aqueles que existem somente enquanto o programa é executado ou
enquanto o computador está ligado. Estes dados estão guardados na memória do
computador e, após o desligamento do mesmo, eles desaparecem.
Dado externo
Quando o programa manuseia dados que precisam ser guardados para, posteriormente,
serem manuseados novamente, quer pelo mesmo programa ou não, é necessário armazenálos em um lugar que não seja a RAM, chamado de dispositivo externo, ou arquivo de dados.
Estes dados, chamados de dados externos, serão abordados no capítulo "Armazenamento de
dado externo", mais adiante.
LÓGICA
Dado elementar
O dado elementar é o nome atribuído ao dado, quando ele é tratado de forma independente
de outro dado.
Por exemplo:
BOLA
NOME
DIA-DE-NASCIMENTO
MES-DE-NASCIMENTO
ANO-DE-NASCIMENTO
Estático
Dado estático é aquele que está incorporado no próprio algoritmo. Por exemplo. Imagine
que, num algoritmo, precisemos exibir diretamente o nome da pessoa, através da seguinte
proposição:
EXIBIR “Vanessa”
Neste exemplo, o objetivo é informar que deve ser exibido (mostrado, escrito) o nome de
uma pessoa: “Vanessa”.
Dado estático é chamado de constante, porque não sofre alteração, no decorrer da execução
do algoritmo.
Constantes
Constantes são dados estáticos que não podem ser identificados na memória, quando da
execução do programa. São valores fixos.
Tipos de constantes
As constantes podem ser classificadas em: numérica, alfanumérica e lógica. Somente a
constante do tipo numérica é que
pode ser utilizada em cálculos. Uma
Variáveis
N1 + N2 + N3
constante também pode ser
chamada de literal. A constante
3
Constante
alfanumérica também é conhecida
como STRING.
www.carlos-campos.net
Página 45
Dinâmico
O dado dinâmico é aquele que precisa ser guardado (armazenado) na memória do
computador para ser utilizado, modificado, em tempo de execução do programa. Para se
conseguir identificar o dado, na memória do computador, é necessário definir um espaço e
atribuir-lhe um nome. A este espaço onde fica o dado que pode ser modificado dá-se o nome
de variável.
Imagine que a memória de um computador é um armário com diversas gavetas, onde cada
gaveta pode conter somente um tipo de valor (aqui chamado de tipo de variável).
Suponhamos que desejamos guardar o nome de uma pessoa para ser mais tarde utilizado.
Veja como utilizar dado dinâmico, guardando-o numa variável. Imaginemos que desejamos
guardar o nome de uma pessoa, no caso, "Vanessa". Pode ficar assim:
NOME = “Vanessa”
No caso, foi criado um espaço com o nome “NOME” para receber o nome “Vanessa”. Neste
caso, “NOME” será considerado como uma variável. O sinal de igual (=) significa atribuição,
isto é, o valor é movimentado para a variável. Existe mais de um símbolo para representar a
atribuição de valores para as variáveis. Por exemplo: a seta " " ou igual ":=". O nome de uma
variável referencia o endereço físico da memória.
Variável de memória
Variável é um espaço reservado na memória do computador para
armazenar um determinado tipo de dado dinâmico. As variáveis
são definidas nos algoritmos e nos programas. Cada metodologia
e linguagem programação possuem a sua forma de criar
variáveis.
As variáveis recebem um nome para que possam ser referenciadas e modificadas, quando
necessário, durante a execução do algoritmo ou programa.
Imaginemos
que
desejamos
armazenar (guardar) na memória do
computador os seguintes dados:
 O nome de uma pessoa
“Vanessa”, e
ano
de
nascimento da pessoa.
 1998,
Download